diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 30900ff91..94ee0320d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -676,40 +676,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl dummyInventoryInfoEOList) { -// Set technologyTerritorySet = new HashSet<>(); -// Set designDeliverableTypeSet = new HashSet<>(); -// Set PrehomoDeliverableTypeSet = new HashSet<>(); -// Set verifyDeliverableTypeSet = new HashSet<>(); + List deliverableList = new ArrayList<>(); if(dummyInventoryInfoEOList.size() != 0){ for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) { -// //技术领域 -// if(StringUtils.isNotBlank(record.getTechnologyTerritory())){ -// List list = Arrays.asList(record.getTechnologyTerritory().split(",")); -// technologyTerritorySet.addAll(list); -// } -// //设计交付物类型 -// if(StringUtils.isNotBlank(record.getDesignDeliverableType())){ -// List list = Arrays.asList(record.getDesignDeliverableType().split(",")); -// designDeliverableTypeSet.addAll(list); -// } -// //pre交付物类型 -// if(StringUtils.isNotBlank(record.getPrehomoDeliverableType())){ -// List list = Arrays.asList(record.getPrehomoDeliverableType().split(",")); -// PrehomoDeliverableTypeSet.addAll(list); -// } -// -// //验证交付物类型 -// if(StringUtils.isNotBlank(record.getVerifyDeliverableType())){ -// List list = Arrays.asList(record.getVerifyDeliverableType().split(",")); -// verifyDeliverableTypeSet.addAll(list); -// } - - //对应标准 -// if(StringUtils.isNotBlank(record.getCorrespondingStandard())){ -// List list = Arrays.asList(record.getCorrespondingStandard().split(",")); -// correspondingStandardSet.addAll(list); -// } //设计符合性确认交付物模板 if(StringUtils.isNotBlank(record.getDesignDeliverableTemplate())){ deliverableList.addAll(Arrays.asList(record.getDesignDeliverableTemplate().split(","))); @@ -731,12 +701,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList = categoryList = sysCategoryService.list(); -// if(technologyTerritorySet.size() != 0){ -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.in(SysCategory::getId, technologyTerritorySet); -// categoryList = sysCategoryService.list(wrapper); -// } + List categoryList = sysCategoryService.list(); for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) { //技术领域 @@ -745,21 +710,21 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl designDeliverableTypeList = Arrays.asList(record.getDesignDeliverableType().split(",")); String name = getTreeName(dummyInventoryInfoEO, categoryList, designDeliverableTypeList); record.setDesignDeliverableTypeName(name); } - //pre交付物模板 + //pre交付物类型 if(StringUtils.isNotBlank(record.getPrehomoDeliverableType())){ List prehomoDeliverableTypeList = Arrays.asList(record.getPrehomoDeliverableType().split(",")); String name = getTreeName(dummyInventoryInfoEO, categoryList, prehomoDeliverableTypeList); record.setPrehomoDeliverableTypeName(name); } - //验证交付物模板 + //验证交付物类型 if(StringUtils.isNotBlank(record.getVerifyDeliverableType())){ List verifyDeliverableTypeList = Arrays.asList(record.getVerifyDeliverableType().split(",")); String name = getTreeName(dummyInventoryInfoEO, categoryList, verifyDeliverableTypeList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java index 86f1e9751..bf73a7cf1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java @@ -200,6 +200,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "设计符合性确认-交付物类型") @Dict(dicCode ="deliverable_template") private String designDeliverableType; + @TableField(exist = false) + private String designDeliverableTypeName; /**设计符合性确认-交付物模板*/ @ApiModelProperty(value = "设计符合性确认-交付物模板") @@ -257,6 +259,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "prehomo确认-1") @Dict(dicCode ="deliverable_template") private String prehomoDeliverableType; + @TableField(exist = false) + private String prehomoDeliverableTypeName; /**prehomo确认-交付物模板*/ @ApiModelProperty(value = "prehomo确认-交付物模板") @@ -314,6 +318,8 @@ public class ProjectLawsInventoryEO implements Serializable { @ApiModelProperty(value = "验证符合性确认-交付物类型") @Dict(dicCode ="deliverable_template") private String verifyDeliverableType; + @TableField(exist = false) + private String verifyDeliverableTypeName; /**验证符合性确认-交付物模板*/ @ApiModelProperty(value = "验证符合性确认-交付物模板") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index a6041e592..3407baa63 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -47,6 +47,7 @@ import com.jero.modules.system.entity.SysAnnouncement; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.service.ISysAnnouncementService; @@ -194,6 +195,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl list,LoginUser currentUser,int isProjectRole,String cut){ if(CollectionUtils.isNotEmpty(list)){ + //树形结构数据字典(技术领域) + List categoryList = sysCategoryService.list(); List userIdList = new ArrayList<>(); List deliverableList = new ArrayList<>(); List correspondingStandardList = new ArrayList<>(); @@ -602,6 +607,28 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl designDeliverableTypeList = Arrays.asList(designDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, designDeliverableTypeList); + projectLawsInventoryEO.setDesignDeliverableTypeName(name); + } + //pre交付物类型 + if(StringUtils.isNotBlank(prehomoDeliverableType)){ + List prehomoDeliverableTypeList = Arrays.asList(prehomoDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, prehomoDeliverableTypeList); + projectLawsInventoryEO.setPrehomoDeliverableTypeName(name); + } + //验证交付物类型 + if(StringUtils.isNotBlank(verifyDeliverableType)){ + List verifyDeliverableTypeList = Arrays.asList(verifyDeliverableType.split(",")); + String name = getTreeName(cut, categoryList, verifyDeliverableTypeList); + projectLawsInventoryEO.setVerifyDeliverableTypeName(name); + } StringBuilder sb = new StringBuilder(); if(StringUtils.isNotBlank(projectLawsInventoryEO.getCorrespondingStandard()) && bussDocumentLibraryEOS.size() != 0){ for (String correspondingStandard : projectLawsInventoryEO.getCorrespondingStandard().split(",")) { @@ -827,6 +854,25 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl categoryList, List technologyTerritoryList) { + StringBuilder sb = new StringBuilder(); + for (String technologyTerritory : technologyTerritoryList) { + List collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if (CutEnum.CN.getValue().equals(cut)) { + sb.append(collect.get(0).getName() + ","); + } else { + sb.append(collect.get(0).getEnName()+ ","); + } + } + } + String technologyTerritoryName = ""; + if (StringUtils.isNotBlank(sb)) { + technologyTerritoryName = sb.substring(0, sb.length() - 1); + } + return technologyTerritoryName; + } + private String getFileName(ProjectLawsInventoryEO projectLawsInventoryEO, List fileInfos, String deliverableTemplate){ StringBuilder sb = new StringBuilder(); for (String s : deliverableTemplate.split(",")) { @@ -2150,7 +2196,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysUserList = sysUserService.list(); //数据转换(文件名称,对应标准) - dataTransition(dataList, fileInfos,sysUserList); + dataTransition(dataList, fileInfos,sysUserList,projectLawsInventoryEO); OutputStream os = null; try { @@ -2178,7 +2224,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataListEn){ + private void transition(List dataListEn,ProjectLawsInventoryEO projectLawsInventoryEOTemp){ //下拉选数据字典 List sysCategoryList = sysCategoryService.list(); //技术领域数据字典 List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); for (ProjectLawsInventoryEOEn projectLawsInventoryEOEn : dataListEn) { + + //设计交付物类型 inventoryInfoEO + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getDesignDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getDesignDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setDesignDeliverableType(substring); + } + } + //pre交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getPrehomoDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getPrehomoDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setPrehomoDeliverableType(substring); + } + } + //验证交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEOEn.getVerifyDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEOEn.getVerifyDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEOEn.setVerifyDeliverableType(substring); + } + } + + //适用地区 String region = projectLawsInventoryEOEn.getRegion(); String pullRegion = pull(sysDictItems, region,"region"); @@ -2533,9 +2606,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl categoryList = sysCategoryService.list(); //普通数据字典 List dictItemList = sysDictItemServiceImpl.selectItemsAll(); - importDatas(datas, dictItemList, zipEntryName,saveDirectory,projectLawsInventoryEO); + importDatas(datas, dictItemList, zipEntryName,saveDirectory,projectLawsInventoryEO,categoryList); //删除原上传文件 FileUnZip.deleteDir(saveDirectory); @@ -2633,7 +2707,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dictItemList, String zipEntryName, File saveDirectory, - ProjectLawsInventoryEO projectLawsInventoryEOTemp) { + ProjectLawsInventoryEO projectLawsInventoryEOTemp, + List categoryList) { + String dictId = sysCategoryMapper.getDictId("deliverable_template"); + List collect = categoryList.stream().filter(e -> e.getSysDictId().equals(dictId)).collect(Collectors.toList()); + List treeNameList = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(projectLawsInventoryEOTemp.getCut())){ + treeNameList = collect.stream().map(SysCategory::getName).collect(Collectors.toList()); + }else{ + treeNameList = collect.stream().map(SysCategory::getEnName).collect(Collectors.toList()); + } int i = 3; List msgList = new ArrayList<>(); String value = ""; @@ -2815,9 +2898,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl categoryList,List nameList,ProjectLawsInventoryEO projectLawsInventoryEO, + String errorMsg, String value,List msgList, + String nameCn,String nameEn,String dictCode) { + if (StringUtils.isNotBlank(value)) { + StringBuilder sb = new StringBuilder(); + for (String s : value.split(",")) { + if(!nameList.contains(s)){ + sb.append(s+","); + } + } + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + if (CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())) { + errorMsg += nameCn + "中的" + substring + "与数据字典不匹配, "; + } else { + errorMsg += nameEn + " " + substring + " does not match the data dictionary, "; + } + msgList.add(errorMsg); + }else{ + StringBuilder sbTemp = new StringBuilder(); + for (String s : value.split(",")) { + List collect = new ArrayList<>(); + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + collect = categoryList.stream().filter(e -> s.equals(e.getName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getName()+","); + } + }else{ + collect = categoryList.stream().filter(e -> s.equals(e.getEnName())).collect(Collectors.toList()); + if(collect.size() != 0){ + sbTemp.append(collect.get(0).getEnName()+","); + } + } + } + if(StringUtils.isNotBlank(sbTemp)){ + String substring = sbTemp.substring(0, sbTemp.length() - 1); + return substring; + } + } + } + return null; + } + + private String getTreeId(List categoryList, + ProjectLawsInventoryEO projectLawsInventoryEOTemp, List treeNameList, String value) { + StringBuilder sb = new StringBuilder(); + for (String valueTemp : value.split(",")) { + if (treeNameList.contains(valueTemp)) { + List sysCategoryList = new ArrayList<>(); + if (CutEnum.CN.getValue().equals(projectLawsInventoryEOTemp.getCut())) { + sysCategoryList = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList()); + } else { + sysCategoryList = categoryList.stream().filter(e -> e.getEnName().equals(valueTemp)).collect(Collectors.toList()); + } + if (sysCategoryList.size() != 0) { + sb.append(sysCategoryList.get(0).getId() + ","); + } + } + } + if (StringUtils.isNotBlank(sb)) { + String substring = sb.substring(0, sb.length() - 1); + return substring; + } + return null; + } + private void verifySerialNumber(List dataList,ProjectLawsInventoryEO projectLawsInventoryEOTemp){ //1. 验证标准号在文档库中是否存在 List serialNumberList = dataList.stream().map(ProjectLawsInventoryEO::getSerialNumber).collect(Collectors.toList()); @@ -3350,6 +3502,22 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl sysCategoryList, String technologyTerritory) { + StringBuilder sb = new StringBuilder(); + for (String s : technologyTerritory.split(",")) { + List collect = sysCategoryList.stream() + .filter(e -> s.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){ + sb.append(collect.get(0).getName()+","); + }else{ + sb.append(collect.get(0).getEnName()+","); + } + } + } + return sb; + } /** * 数据转换(文件名称,技术领域,对应标准) @@ -3358,9 +3526,37 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl dataList, List fileInfos, - List sysUserList) { + List sysUserList, + ProjectLawsInventoryEO projectLawsInventoryEOTemp) { + List sysCategoryList = sysCategoryService.list(); for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) { + //设计交付物类型 inventoryInfoEO + if(StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getDesignDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setDesignDeliverableType(substring); + } + } + //pre交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getPrehomoDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setPrehomoDeliverableType(substring); + } + } + //验证交付物类型 + if(StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDeliverableType())){ + StringBuilder sb = getStringBuilder(projectLawsInventoryEOTemp, sysCategoryList, projectLawsInventoryEO.getVerifyDeliverableType()); + if(StringUtils.isNotBlank(sb)){ + String substring = sb.substring(0, sb.length() - 1); + projectLawsInventoryEO.setVerifyDeliverableType(substring); + } + } + + //清单确认状态 inventoryAffirmStatus if(StringUtils.isNotBlank(projectLawsInventoryEO.getInventoryAffirmStatus())){ String stateName = stateTransition(projectLawsInventoryEO.getInventoryAffirmStatus());