diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 6796ead..b9c02e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.exception.ExcelDataConvertException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -113,7 +114,6 @@ private String operatorRoleTip; - @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -188,53 +188,53 @@ // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有连的;否则查当前用户所在连的 List userDeptList = systemDeptService.getUserDeptList(null); List userDeptIds = new ArrayList<>(); - if(ObjectUtil.isNotEmpty(userDeptList)) { + if (ObjectUtil.isNotEmpty(userDeptList)) { userDeptIds.add(permissionContext.getAuthService().getLoginUser().getDeptId()); userDeptIds = userDeptList.stream().map(Dept::getId).collect(Collectors.toList()); } - if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + if (ObjectUtil.isNotEmpty(queryForm.getDeptIds())) { userDeptIds.retainAll(queryForm.getDeptIds()); } - if(ObjectUtil.isNotEmpty(userDeptIds)){ + if (ObjectUtil.isNotEmpty(userDeptIds)) { queryForm.setDeptIds(userDeptIds); - }else { + } else { // userDeptIds 查询结果应为空 - queryWrapper.eq("0","1"); + queryWrapper.eq("0", "1"); } - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()), "model", queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()), "manufacture_no", queryForm.getManufactureNo()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()), "company_id", queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); - if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ - String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)", queryForm.getGroupId()); queryWrapper.exists(existSql); } - if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); + if (ObjectUtil.isNotEmpty(queryForm.getTaskId())) { + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)", queryForm.getTaskId()); queryWrapper.exists(existSql); } - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()),"meter_identify",queryForm.getMeterIdentify()); - queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCheckDateStart()),"check_date",queryForm.getCheckDateStart()); - queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCheckDateEnd()),"check_date",queryForm.getCheckDateEnd()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCheckDateStart()), "check_date", queryForm.getCheckDateStart()); + queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCheckDateEnd()), "check_date", queryForm.getCheckDateEnd()); } queryWrapper.eq("is_del", 0); return queryWrapper; @@ -311,16 +311,33 @@ @Override public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { InputStream inputStream = file.getInputStream(); - List list = EasyExcel.read(inputStream) //调用read方法 - //注册自定义监听器,字段校验可以在监听器内实现 - .registerReadListener(new CommonExcelListener<>()) - .head(EquipmentImportDTO.class) //对应导入的实体类 - .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 - .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 - .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 + List list = null; + try { + list = EasyExcel.read(inputStream) //调用read方法 + //注册自定义监听器,字段校验可以在监听器内实现 + .registerReadListener(new CommonExcelListener<>()) + .head(EquipmentImportDTO.class) //对应导入的实体类 + .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 + .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 + .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 + } catch (Exception ex) { + if (ex instanceof ExcelDataConvertException) { + String rowStr = StringUtils.substringBetween(ex.getMessage(), "rowIndex=", ","); + String colStr = StringUtils.substringBetween(ex.getMessage(), "columnIndex=", ")"); + Integer rowIndex = 0, colIndex = 0; + try { + rowIndex = Integer.valueOf(rowStr) + 1; + colIndex = Integer.valueOf(colStr) + 1; + } catch (NumberFormatException nfx) { + throw new BusinessException(1500, String.format("导入日期格式错误,获取日期位置信息转换异常,行:", rowStr, "列:", colStr)); + } + throw new BusinessException(1500, String.format("第"+ rowIndex+ "行,第"+colIndex+ "列"+"日期格式不正确")); + } + } + validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); - if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ + if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { saveImport(checkResult.getUnDuplicationResult(), equipmentType); } return checkResult; @@ -333,17 +350,17 @@ List modelInfoList = modelInfoService.list(); QueryWrapper userQueryWrapper = new QueryWrapper<>(); - userQueryWrapper.eq("STATUS","1").eq("DEL_FLAG","0"); + userQueryWrapper.eq("STATUS", "1").eq("DEL_FLAG", "0"); List userList = permissionContext.getUserService().list(null); List locationList = locationService.list(); List positionList = positionService.list(); - Map> dictTotalMap = new HashMap<>(); - dictTotalMap.put(MeterDictCode.EQUIPMENT_USAGE_STATUS,dictService.findInDictByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS)); - dictTotalMap.put(MeterDictCode.EQUIPMENT_CATEGORY,dictService.findInDictByCode(MeterDictCode.EQUIPMENT_CATEGORY)); - dictTotalMap.put(MeterDictCode.EQUIPMENT_LEVEL,dictService.findInDictByCode(MeterDictCode.EQUIPMENT_LEVEL)); - dictTotalMap.put(MeterDictCode.EQUIPMENT_METER_IDENTITY,dictService.findInDictByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY)); - dictTotalMap.put(MeterDictCode.EQUIPMENT_IN_USE,dictService.findInDictByCode(MeterDictCode.EQUIPMENT_IN_USE)); + Map> dictTotalMap = new HashMap<>(); + dictTotalMap.put(MeterDictCode.EQUIPMENT_USAGE_STATUS, dictService.findInDictByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS)); + dictTotalMap.put(MeterDictCode.EQUIPMENT_CATEGORY, dictService.findInDictByCode(MeterDictCode.EQUIPMENT_CATEGORY)); + dictTotalMap.put(MeterDictCode.EQUIPMENT_LEVEL, dictService.findInDictByCode(MeterDictCode.EQUIPMENT_LEVEL)); + dictTotalMap.put(MeterDictCode.EQUIPMENT_METER_IDENTITY, dictService.findInDictByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY)); + dictTotalMap.put(MeterDictCode.EQUIPMENT_IN_USE, dictService.findInDictByCode(MeterDictCode.EQUIPMENT_IN_USE)); Long companyId = null; List parentDeptIds = permissionContext.getDeptService().getParentListById(user.getDeptId()); @@ -368,13 +385,13 @@ if (StrUtil.isBlank(importDTO.getModel())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "型号规格不能为空")); } - List itemModels = modelInfoList.stream().filter(m->m.getEquipmentName().equals(importDTO.getEquipmentName()) - && m.getModel().equals(importDTO.getModel())).collect(Collectors.toList()); - if(CollUtil.isEmpty(itemModels)){ + List itemModels = modelInfoList.stream().filter(m -> m.getEquipmentName().equals(importDTO.getEquipmentName()) + && m.getModel().equals(importDTO.getModel())).collect(Collectors.toList()); + if (CollUtil.isEmpty(itemModels)) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备规格型号不存在")); - }else if(itemModels.size() == 1){ - if(ObjectUtil.isNotEmpty(importDTO.getHelpInstruction()) && - !importDTO.getHelpInstruction().equals(itemModels.get(0).getHelpInstruction())){ + } else if (itemModels.size() == 1) { + if (ObjectUtil.isNotEmpty(importDTO.getHelpInstruction()) && + !importDTO.getHelpInstruction().equals(itemModels.get(0).getHelpInstruction())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "辅助字段不存在")); } importDTO.setModelId(itemModels.get(0).getId()); @@ -382,7 +399,7 @@ importDTO.setCheckCycle(itemModels.get(0).getCheckCycle()); importDTO.setEquipmentType(itemModels.get(0).getEquipmentType()); - }else { + } else { if (StrUtil.isBlank(importDTO.getHelpInstruction())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "需要填写辅助字段")); } else { @@ -410,18 +427,18 @@ if (field.isAnnotationPresent(DictCodeField.class) && field.get(importDTO) != null) { DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; List subDicts = dictTotalMap.get(dictCodeField.cacheName()); - if(CollUtil.isEmpty(subDicts) || subDicts.stream().noneMatch(s-> { + if (CollUtil.isEmpty(subDicts) || subDicts.stream().noneMatch(s -> { try { return s.getCode().equals(field.get(importDTO)); } catch (IllegalAccessException e) { log.error(e.getMessage()); } return false; - })){ + })) { throw new BusinessException(1500, String.format(validMsg, i + 1, dictCodeField.message())); } } - }catch (IllegalAccessException exception){ + } catch (IllegalAccessException exception) { log.error(exception.getMessage()); } } @@ -443,7 +460,7 @@ throw new BusinessException(1500, String.format(validMsg, i + 1, "所在单位不合法")); } // 所属部门(必须是所在单位的下级部门,或者就是所在单位) - List subDeptIds = deptList.stream().filter(d->d.getId().equals(importDTO.getCompanyId()) || (StrUtil.isNotEmpty(d.getPids()) && d.getPids().contains(importDTO.getCompanyId().toString()))).collect(Collectors.toList()); + List subDeptIds = deptList.stream().filter(d -> d.getId().equals(importDTO.getCompanyId()) || (StrUtil.isNotEmpty(d.getPids()) && d.getPids().contains(importDTO.getCompanyId().toString()))).collect(Collectors.toList()); for (Dept dept : subDeptIds) { if (ObjectUtil.isEmpty(importDTO.getDeptId()) && dept.getFullName().equals(importDTO.getDeptName().trim())) { importDTO.setDeptId(dept.getId()); @@ -454,56 +471,56 @@ } // 使用岗位 - if(ObjectUtil.isNotEmpty(importDTO.getUsePosition())){ - Optional positionOpt = positionList.stream().filter(p->p.getCompanyId().equals(importDTO.getCompanyId()) - && p.getDeptId().equals(importDTO.getDeptId()) - && p.getPositionName().trim().equals(importDTO.getUsePosition().trim())).findFirst(); - if(positionOpt.isPresent()){ + if (ObjectUtil.isNotEmpty(importDTO.getUsePosition())) { + Optional positionOpt = positionList.stream().filter(p -> p.getCompanyId().equals(importDTO.getCompanyId()) + && p.getDeptId().equals(importDTO.getDeptId()) + && p.getPositionName().trim().equals(importDTO.getUsePosition().trim())).findFirst(); + if (positionOpt.isPresent()) { importDTO.setUsePositionId(positionOpt.get().getId().toString()); - }else { + } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "使用岗位不存在")); } } // 负责人 todo 根据部门过滤? - if(ObjectUtil.isNotEmpty(importDTO.getDirectorName())){ - Optional userOpt = userList.stream().filter(p->p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); - if(userOpt.isPresent()){ + if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { + Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); + if (userOpt.isPresent()) { importDTO.setDirectorId(userOpt.get().getId().toString()); - }else { + } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } } // 安装位置 - if(ObjectUtil.isNotEmpty(importDTO.getInstallLocation())){ - Optional locationOpt = locationList.stream().filter(p->p.getCompanyId().equals(importDTO.getCompanyId()) + if (ObjectUtil.isNotEmpty(importDTO.getInstallLocation())) { + Optional locationOpt = locationList.stream().filter(p -> p.getCompanyId().equals(importDTO.getCompanyId()) && p.getDeptId().equals(importDTO.getDeptId()) && p.getInstallLocation().trim().equals(importDTO.getInstallLocation().trim())).findFirst(); - if(locationOpt.isPresent()){ + if (locationOpt.isPresent()) { importDTO.setInstallLocationId(locationOpt.get().getId()); - }else { + } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "安装位置不存在")); } } // rfid - if(StrUtil.isNotBlank(importDTO.getRfid())){ - if(list.stream().filter(r->importDTO.getRfid().equals(r.getRfid())).count()>1){ - throw new BusinessException(5001,String.format(validMsg,i+1,"RFID标签编号重复")); - }else if(infoApprovalMapper.checkRfid(importDTO.getRfid(),null) > 0){ - throw new BusinessException(5001,String.format(validMsg,i+1,"RFID标签已使用")); + if (StrUtil.isNotBlank(importDTO.getRfid())) { + if (list.stream().filter(r -> importDTO.getRfid().equals(r.getRfid())).count() > 1) { + throw new BusinessException(5001, String.format(validMsg, i + 1, "RFID标签编号重复")); + } else if (infoApprovalMapper.checkRfid(importDTO.getRfid(), null) > 0) { + throw new BusinessException(5001, String.format(validMsg, i + 1, "RFID标签已使用")); } } } } - private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + private EquipmentImportDuplicationResult checkImportDuplication(List importList) { //根据设备名称、型号规格、辅助字段、出厂编号、生产厂家 判重; - importList.forEach(i->{ - i.setCheckDuplication(String.format("%s%s%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction(),i.getManufactureNo(),i.getManufacturer())); + importList.forEach(i -> { + i.setCheckDuplication(String.format("%s%s%s%s%s", i.getEquipmentName(), i.getModel(), i.getHelpInstruction(), i.getManufactureNo(), i.getManufacturer())); }); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("is_del","0"); + queryWrapper.eq("is_del", "0"); List equipmentInfos = this.list(queryWrapper); List unDuplicationResult = new ArrayList<>(); @@ -511,22 +528,22 @@ List tableDuplication = new ArrayList<>(); for (int i = 0; i < importList.size(); i++) { EquipmentImportDTO importDTO = importList.get(i); - if(equipmentInfos.stream() - .filter(e-> (StrUtil.isBlank(e.getEquipmentName())&&StrUtil.isBlank(importDTO.getEquipmentName())) - ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) - .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) - ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) - .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) - ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) - .filter(e-> (StrUtil.isBlank(e.getManufactureNo())&&StrUtil.isBlank(importDTO.getManufactureNo())) - ||(StrUtil.isNotBlank(e.getManufactureNo())&&e.getManufactureNo().equals(importDTO.getManufactureNo()))) - .filter(e-> (StrUtil.isBlank(e.getManufacturer())&&StrUtil.isBlank(importDTO.getManufacturer())) - ||(StrUtil.isNotBlank(e.getManufacturer())&&e.getManufacturer().equals(importDTO.getManufacturer()))) - .count()>0){ - hasExist.add(i+1); - }else if(importList.stream().filter(e->e.getCheckDuplication().equals(importDTO.getCheckDuplication())).count()>1){ - tableDuplication.add(i+1); - }else { + if (equipmentInfos.stream() + .filter(e -> (StrUtil.isBlank(e.getEquipmentName()) && StrUtil.isBlank(importDTO.getEquipmentName())) + || (StrUtil.isNotBlank(e.getEquipmentName()) && e.getEquipmentName().equals(importDTO.getEquipmentName()))) + .filter(e -> (StrUtil.isBlank(e.getModel()) && StrUtil.isBlank(importDTO.getModel())) + || (StrUtil.isNotBlank(e.getModel()) && e.getModel().equals(importDTO.getModel()))) + .filter(e -> (StrUtil.isBlank(e.getHelpInstruction()) && StrUtil.isBlank(importDTO.getHelpInstruction())) + || (StrUtil.isNotBlank(e.getHelpInstruction()) && e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) + .filter(e -> (StrUtil.isBlank(e.getManufactureNo()) && StrUtil.isBlank(importDTO.getManufactureNo())) + || (StrUtil.isNotBlank(e.getManufactureNo()) && e.getManufactureNo().equals(importDTO.getManufactureNo()))) + .filter(e -> (StrUtil.isBlank(e.getManufacturer()) && StrUtil.isBlank(importDTO.getManufacturer())) + || (StrUtil.isNotBlank(e.getManufacturer()) && e.getManufacturer().equals(importDTO.getManufacturer()))) + .count() > 0) { + hasExist.add(i + 1); + } else if (importList.stream().filter(e -> e.getCheckDuplication().equals(importDTO.getCheckDuplication())).count() > 1) { + tableDuplication.add(i + 1); + } else { unDuplicationResult.add(importDTO); } } @@ -538,6 +555,7 @@ return checkResult; } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -572,7 +590,7 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { EquipmentInfo equipmentInfo = this.getById(equipmentId); - if(ObjectUtil.isNotEmpty(equipmentInfo)){ + if (ObjectUtil.isNotEmpty(equipmentInfo)) { equipmentInfo.setUsageStatus(usageStatus); } this.updateById(equipmentInfo); @@ -581,13 +599,13 @@ @Override public void updateByModel(EquipmentModelInfo modelInfo) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("model_id",modelInfo.getId()); - updateWrapper.set("equipment_name",modelInfo.getEquipmentName()); - updateWrapper.set("model",modelInfo.getModel()); - updateWrapper.set("help_instruction",modelInfo.getHelpInstruction()); - updateWrapper.set("category",modelInfo.getCategory()); - updateWrapper.set("check_cycle",modelInfo.getCheckCycle()); - updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); + updateWrapper.eq("model_id", modelInfo.getId()); + updateWrapper.set("equipment_name", modelInfo.getEquipmentName()); + updateWrapper.set("model", modelInfo.getModel()); + updateWrapper.set("help_instruction", modelInfo.getHelpInstruction()); + updateWrapper.set("category", modelInfo.getCategory()); + updateWrapper.set("check_cycle", modelInfo.getCheckCycle()); + updateWrapper.set("instructions_file", modelInfo.getInstructionsFile()); this.update(updateWrapper); } @@ -650,11 +668,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + queryWrapper.in("usage_status", Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, EquipmentStatusTypeEnum.DISABLE, EquipmentStatusTypeEnum.DELAY)); - List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, - SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + List list = this.baseMapper.selectRemindListPage(page, null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK, CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -663,11 +681,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + queryWrapper.in("usage_status", Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, EquipmentStatusTypeEnum.DISABLE, EquipmentStatusTypeEnum.DELAY)); List list = this.baseMapper.selectRemindList(null, queryWrapper, - SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK, CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -675,34 +693,34 @@ @Override public void remind(Long equipmentId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); - if(ObjectUtil.isNotEmpty(equipmentInfo)){ + if (ObjectUtil.isNotEmpty(equipmentInfo)) { boardMessageService.remindEquipment(equipmentInfo); } } - private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有连的;否则查当前用户所在连的 List userDeptList = systemDeptService.getUserDeptList(null); List userDeptIds = new ArrayList<>(); - if(ObjectUtil.isNotEmpty(userDeptList)) { + if (ObjectUtil.isNotEmpty(userDeptList)) { userDeptIds.add(permissionContext.getAuthService().getLoginUser().getDeptId()); userDeptIds = userDeptList.stream().map(Dept::getId).collect(Collectors.toList()); } - if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + if (ObjectUtil.isNotEmpty(queryForm.getDeptIds())) { userDeptIds.retainAll(queryForm.getDeptIds()); } - if(ObjectUtil.isNotEmpty(userDeptIds)){ + if (ObjectUtil.isNotEmpty(userDeptIds)) { queryForm.setDeptIds(userDeptIds); - }else { + } else { // userDeptIds 查询结果应为空 - queryWrapper.eq("0","1"); + queryWrapper.eq("0", "1"); } // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); - if(authUser.getRoleTips().contains(operatorRoleTip)){ + if (authUser.getRoleTips().contains(operatorRoleTip)) { queryForm.setDirectorId(authUser.getId()); } // else { @@ -717,34 +735,33 @@ // } - if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()), "company_id", queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()), "model", queryForm.getModel()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()), "manufacture_no", queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); - queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); - queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); + queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) @@ -757,20 +774,20 @@ } } queryWrapper.eq("is_del", 0); - queryWrapper.and(i->i.le("remind_valid",new Date()).or().isNull("remind_valid")); + queryWrapper.and(i -> i.le("remind_valid", new Date()).or().isNull("remind_valid")); return queryWrapper; } @Override public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + queryWrapper.in("usage_status", Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, EquipmentStatusTypeEnum.DISABLE, EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); - queryWrapper.eq("check_status",0); //未送检设备 - List list = this.baseMapper.selectRemindListPage(page,null, queryWrapper, - SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + queryWrapper.eq("check_status", 0); //未送检设备 + List list = this.baseMapper.selectRemindListPage(page, null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK, CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -778,7 +795,7 @@ @Override public List expireTrend(String type) { - switch (type){ + switch (type) { case "month": return expireTrendByMonth(); case "year": @@ -788,62 +805,62 @@ } } - private List expireTrendByYear(){ + private List expireTrendByYear() { Calendar startCal = Calendar.getInstance(); - startCal.add(Calendar.MONTH,1); - startCal.set(Calendar.DAY_OF_MONTH,1); - startCal.set(Calendar.HOUR_OF_DAY,0); - startCal.set(Calendar.MINUTE,0); - startCal.set(Calendar.SECOND,0); + startCal.add(Calendar.MONTH, 1); + startCal.set(Calendar.DAY_OF_MONTH, 1); + startCal.set(Calendar.HOUR_OF_DAY, 0); + startCal.set(Calendar.MINUTE, 0); + startCal.set(Calendar.SECOND, 0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,13); - endCal.set(Calendar.DAY_OF_MONTH,1); - endCal.add(Calendar.DATE,-1); - endCal.set(Calendar.HOUR_OF_DAY,23); - endCal.set(Calendar.MINUTE,59); - endCal.set(Calendar.SECOND,59); + endCal.add(Calendar.MONTH, 13); + endCal.set(Calendar.DAY_OF_MONTH, 1); + endCal.add(Calendar.DATE, -1); + endCal.set(Calendar.HOUR_OF_DAY, 23); + endCal.set(Calendar.MINUTE, 59); + endCal.set(Calendar.SECOND, 59); - return getEquipmentCommonAggrs(startCal, endCal, "yyyy-MM",Calendar.MONTH); + return getEquipmentCommonAggrs(startCal, endCal, "yyyy-MM", Calendar.MONTH); } - private List expireTrendEquipmentList(String startTime,String endTime){ + private List expireTrendEquipmentList(String startTime, String endTime) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ge("certificate_valid", startTime); queryWrapper.le("certificate_valid", endTime); - queryWrapper.eq("is_del",0); + queryWrapper.eq("is_del", 0); - queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + queryWrapper.in("usage_status", Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, EquipmentStatusTypeEnum.DISABLE, EquipmentStatusTypeEnum.DELAY)); // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); - if(authUser.getRoleTips().contains(operatorRoleTip)){ - queryWrapper.eq("director_id",authUser.getId()); - }else { - List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if (authUser.getRoleTips().contains(operatorRoleTip)) { + queryWrapper.eq("director_id", authUser.getId()); + } else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(), null); scopeIds.add(authUser.getDeptId()); - queryWrapper.in("dept_id",scopeIds); + queryWrapper.in("dept_id", scopeIds); } - return this.baseMapper.selectList(null,queryWrapper); + return this.baseMapper.selectList(null, queryWrapper); } - private List expireTrendByMonth(){ + private List expireTrendByMonth() { Calendar startCal = Calendar.getInstance(); - startCal.add(Calendar.DATE,1); - startCal.set(Calendar.HOUR_OF_DAY,0); - startCal.set(Calendar.MINUTE,0); - startCal.set(Calendar.SECOND,0); + startCal.add(Calendar.DATE, 1); + startCal.set(Calendar.HOUR_OF_DAY, 0); + startCal.set(Calendar.MINUTE, 0); + startCal.set(Calendar.SECOND, 0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,3); - endCal.set(Calendar.HOUR_OF_DAY,23); - endCal.set(Calendar.MINUTE,59); - endCal.set(Calendar.SECOND,59); + endCal.add(Calendar.MONTH, 3); + endCal.set(Calendar.HOUR_OF_DAY, 23); + endCal.set(Calendar.MINUTE, 59); + endCal.set(Calendar.SECOND, 59); - return getEquipmentCommonAggrs(startCal, endCal, "yyyy-MM-dd",Calendar.DATE); + return getEquipmentCommonAggrs(startCal, endCal, "yyyy-MM-dd", Calendar.DATE); } @NotNull @@ -864,16 +881,16 @@ // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 List userDeptList = systemDeptService.getUserDeptList(null); List userDeptIds = new ArrayList<>(); - if(ObjectUtil.isNotEmpty(userDeptList)) { + if (ObjectUtil.isNotEmpty(userDeptList)) { userDeptIds.add(permissionContext.getAuthService().getLoginUser().getDeptId()); userDeptIds = userDeptList.stream().map(Dept::getId).collect(Collectors.toList()); } - if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + if (ObjectUtil.isNotEmpty(queryForm.getDeptIds())) { userDeptIds.retainAll(queryForm.getDeptIds()); } - if(ObjectUtil.isNotEmpty(userDeptIds)){ + if (ObjectUtil.isNotEmpty(userDeptIds)) { queryForm.setDeptIds(userDeptIds); - }else { + } else { // userDeptIds 查询结果应为空 return page; } @@ -887,18 +904,18 @@ queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); - queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()), "e.model", queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()), "e.manufacture_no", queryForm.getManufactureNo()); queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "e.dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()), "e.company_id", queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "e.use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); - queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "e.director_id", queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "e.director_name", queryForm.getDirectorName()); queryWrapper.orderByDesc("c.create_time"); List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); @@ -913,15 +930,15 @@ @Override public void bindTask(EquipmentTaskBindForm bindForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("is_del",0); - queryWrapper.in(CollUtil.isNotEmpty(bindForm.getEquipmentIds()),"id",bindForm.getEquipmentIds()); - queryWrapper.in(CollUtil.isNotEmpty(bindForm.getEquipmentNames()),"equipment_name",bindForm.getEquipmentNames()); + queryWrapper.eq("is_del", 0); + queryWrapper.in(CollUtil.isNotEmpty(bindForm.getEquipmentIds()), "id", bindForm.getEquipmentIds()); + queryWrapper.in(CollUtil.isNotEmpty(bindForm.getEquipmentNames()), "equipment_name", bindForm.getEquipmentNames()); List equipmentInfos = this.list(queryWrapper); List relationList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : equipmentInfos) { for (Long taskId : bindForm.getTaskIds()) { - relationList.add(new EquipmentTaskRelation(equipmentInfo.getId(),taskId)); + relationList.add(new EquipmentTaskRelation(equipmentInfo.getId(), taskId)); } } taskRelationService.saveBatch(relationList); @@ -934,12 +951,12 @@ if (!field.isAccessible()) { field.setAccessible(true); } - if(fieldName.equals(field.getName())){ - if(field.isAnnotationPresent(ApiModelProperty.class)){ + if (fieldName.equals(field.getName())) { + if (field.isAnnotationPresent(ApiModelProperty.class)) { ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; String notes = apiModelProperty.notes(); - if(StrUtil.isNotEmpty(notes)){ - notes = notes.replace("id","").replace("code",""); + if (StrUtil.isNotEmpty(notes)) { + notes = notes.replace("id", "").replace("code", ""); } return notes; } @@ -950,7 +967,7 @@ @Override public String getFieldValue(String fieldName, String fieldValue) { - if(StrUtil.isBlank(fieldValue)){ + if (StrUtil.isBlank(fieldValue)) { return fieldValue; } Field[] fields = EquipmentInfo.class.getDeclaredFields(); @@ -958,12 +975,12 @@ if (!field.isAccessible()) { field.setAccessible(true); } - if(fieldName.equals(field.getName())){ - if(field.isAnnotationPresent(ApiModelProperty.class)){ + if (fieldName.equals(field.getName())) { + if (field.isAnnotationPresent(ApiModelProperty.class)) { ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; String notes = apiModelProperty.notes(); - if(StrUtil.isNotEmpty(notes)){ - if(notes.contains("code")){ + if (StrUtil.isNotEmpty(notes)) { + if (notes.contains("code")) { DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; if (StringUtils.isEmpty(dictCodeField.cacheName())) { throw new BusinessException(500, "缓存名不能为空"); @@ -971,8 +988,8 @@ AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); } - if(notes.contains("id")){ - switch (notes){ + if (notes.contains("id")) { + switch (notes) { case "所在单位id": case "使用部门id": fieldValue = permissionContext.getDeptService().getDeptName(fieldValue);