From ffe55f29549d80078e289543904953e21a218e9a Mon Sep 17 00:00:00 2001 From: cuijiaming <1410452759@qq.com> Date: Sat, 1 Apr 2023 00:52:56 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=AF=94=E5=A1=AB=E9=A1=B9=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E5=B8=82=E5=9C=BA=E6=B8=85=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E3=80=81=E5=AF=BC=E5=87=BA=E3=80=81=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=A2=9E=E4=BA=A4=E4=BB=98=E7=89=A9=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/AuthDummyInventoryInfoEO.java | 14 +- .../entity/AuthDummyInventoryInfoEOEn.java | 22 +- .../AuthDummyInventoryInfoEOServiceImpl.java | 185 ++++--- .../ProjectCertificationInventoryEO.java | 21 +- .../ProjectCertificationInventoryEOEn.java | 19 +- ...ctCertificationInventoryEOServiceImpl.java | 489 +++++++++--------- .../ProjectLawsInventoryEOServiceImpl.java | 5 +- .../ProjectRelatedPersonnelServiceImpl.java | 26 +- 8 files changed, 425 insertions(+), 356 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java index c587bb7a1..d4e9f4589 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEO.java @@ -63,34 +63,34 @@ public class AuthDummyInventoryInfoEO implements Serializable { private java.lang.String sysOrgCode; /**类别*/ - @Excel(name = "*类别", width = 15) + @Excel(name = "类别", width = 15) @ApiModelProperty(value = "类别") private java.lang.String category; /**检验项目*/ - @Excel(name = "*检验项目", width = 15) + @Excel(name = "检验项目", width = 15) @ApiModelProperty(value = "检验项目") private java.lang.String inspectionItem; /**配置项*/ - @Excel(name = "*配置项", width = 15) + @Excel(name = "配置项", width = 15) @ApiModelProperty(value = "配置项") private java.lang.String configItem; /**WVTA ID*/ - @Excel(name = "*WVTA ID", width = 15) + @Excel(name = "WVTA ID", width = 15) @ApiModelProperty(value = "WVTA ID") private java.lang.String wvtaId; /**标准编号*/ - @Excel(name = "*编号", width = 15) + @Excel(name = "编号", width = 15) @ApiModelProperty(value = "编号") private java.lang.String serialNumber; /**责任领域*/ @ApiModelProperty(value = "责任领域") private java.lang.String dutyTerritory; - @Excel(name = "*责任领域", width = 15) + @Excel(name = "责任领域", width = 15) @TableField(exist = false) // 责任领域名称 private String dutyTerritoryName; @@ -107,7 +107,7 @@ public class AuthDummyInventoryInfoEO implements Serializable { @ApiModelProperty(value = "交付物类型") private String deliverableType; @TableField(exist = false) - @Excel(name = "*交付物类型", width = 15) + @Excel(name = "交付物类型", width = 15) // 交付物类型名称 private String deliverableTypeName; // 交付物类型名称-英文 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java index e7f53d6c4..4cbe07987 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryInfoEOEn.java @@ -60,27 +60,27 @@ public class AuthDummyInventoryInfoEOEn implements Serializable { private String sysOrgCode; /**类别*/ - @Excel(name = "*Category", width = 15) + @Excel(name = "Category", width = 15) @ApiModelProperty(value = "类别") private String category; /**检验项目*/ - @Excel(name = "*Inspection Items", width = 15) + @Excel(name = "Inspection Items", width = 15) @ApiModelProperty(value = "检验项目") private String inspectionItem; /**配置项*/ - @Excel(name = "*Configuration Item", width = 15) + @Excel(name = "Configuration Item", width = 15) @ApiModelProperty(value = "配置项") private String configItem; /**WVTA ID*/ - @Excel(name = "*WVTA ID", width = 15) + @Excel(name = "WVTA ID", width = 15) @ApiModelProperty(value = "WVTA ID") private String wvtaId; /**标准编号*/ - @Excel(name = "*Number", width = 15) + @Excel(name = "Number", width = 15) @ApiModelProperty(value = "标准编号") private String serialNumber; @@ -88,7 +88,7 @@ public class AuthDummyInventoryInfoEOEn implements Serializable { @ApiModelProperty(value = "责任领域") private String dutyTerritory; @TableField(exist = false) - @Excel(name = "*Responsible Field", width = 15) + @Excel(name = "Responsible Field", width = 15) // 责任领域名称 private String dutyTerritoryName; /**责任领域名称-英文**/ @@ -100,11 +100,19 @@ public class AuthDummyInventoryInfoEOEn implements Serializable { @ApiModelProperty(value = "交付物") private String deliverable; + /**交付物模板*/ + @ApiModelProperty(value = "交付物模板") + private java.lang.String deliverableTemplate; + /**交付物模板名称**/ + @TableField(exist = false) + @Excel(name = "Deliverable Template", width = 40) + private String deliverableTemplateName; + /**交付物类型*/ @ApiModelProperty(value = "交付物类型") private String deliverableType; @TableField(exist = false) - @Excel(name = "*Deliverable Type", width = 15) + @Excel(name = "Deliverable Type", width = 15) // 交付物类型名称 private String deliverableTypeName; // 交付物类型名称-英文 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java index 6fb49863b..517f60ac3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java @@ -62,6 +62,7 @@ import org.jeecgframework.poi.excel.entity.enmus.ExcelType; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import java.io.*; @@ -515,9 +516,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl 1){ @@ -659,43 +660,6 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl 1) { dataList.add(rowList); } @@ -736,6 +700,44 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl 300){ - String message = ""; - if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ - message = errorMsg + "WVTA ID不能超过300个字符, "; - }else{ - message = errorMsg + " The WVTA ID cannot contain more than 300 characters, "; - } - msgList.add(message); - } - } //类别 - if(StringUtils.isNotBlank(category)){ if(category.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ - message = errorMsg + "类别不能超过300个字符, "; + message = errorMsg + "类别不能超过300个字符"; }else{ - message = errorMsg + " The Category cannot contain more than 300 characters, "; + message = errorMsg + " The Category cannot contain more than 300 characters"; } msgList.add(message); } } //检验项目 - if(StringUtils.isNotBlank(inspectionItem)){ if(inspectionItem.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ - message = errorMsg + "检验项目不能超过300个字符, "; + message = errorMsg + "检验项目不能超过300个字符"; }else{ - message = errorMsg + " The InspectionItem cannot contain more than 300 characters, "; + message = errorMsg + " The InspectionItem cannot contain more than 300 characters"; } msgList.add(message); } } //配置项 - if(StringUtils.isNotBlank(configItem)){ if(configItem.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ - message = errorMsg + "配置项不能超过300个字符, "; + message = errorMsg + "配置项不能超过300个字符"; }else{ - message = errorMsg + " The ConfigItem cannot contain more than 300 characters, "; + message = errorMsg + " The ConfigItem cannot contain more than 300 characters"; + } + msgList.add(message); + } + } + //WVTA ID + if(StringUtils.isNotBlank(wvtaId)){ + if(wvtaId.length() > 300){ + String message = ""; + if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEOTemp.getCut())){ + message = errorMsg + "WVTA ID不能超过300个字符"; + }else{ + message = errorMsg + " The WVTA ID cannot contain more than 300 characters"; } msgList.add(message); } @@ -891,6 +894,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl msgList, String nameCn, String nameEn) { + String value = ""; + if (StringUtils.isNotBlank(deliverableTemplate)) { + StringBuilder sb = new StringBuilder(); + for (String fileName : deliverableTemplate.split(",")) { + List nowFileList = new ArrayList<>(); + + nowFileList = FileUnZip.readFileByFilename(zipEntryName, fileName,authDummyInventoryInfoEO.getCut(),errorMsg,msgList,nameCn,nameEn); + + if (nowFileList.size() == 0) { +// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ +// errorMsg += "压缩包中没有" + fileName + "文件; "; +// }else{ +// errorMsg += " Not in the zip package" + fileName + "file; "; +// } +// msgList.add(errorMsg); + } else { + try { + FileInputStream input = new FileInputStream(nowFileList.get(0)); + MultipartFile multipartFile = + new MockMultipartFile(nowFileList.get(0).getName(), nowFileList.get(0).getName(), "text/plain", input); + //文件存入文件表 + OSSFile ossFile = iOSSFileService.uploadLocalOfCos(multipartFile, "", null,null); + if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(ossFile)) { + sb.append(ossFile.getId() + ","); + } + } catch (IOException e) { + log.error("市场认证清单导入"+e.getMessage()); + } + } + } + if (StringUtils.isNotBlank(sb)) { + value = sb.substring(0, sb.length() - 1); + } + } + return value; + } + private String getTreeId(List categoryList, AuthDummyInventoryInfoEO authDummyInventoryInfoEOTemp, List treeNameList, String value) { StringBuilder sb = new StringBuilder(); @@ -940,9 +987,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl finalValueList = valueList; List diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList()); if (CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())) { - errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, "; + errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配"; } else { - errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary, "; + errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary"; } msgList.add(errorMsg); } @@ -1121,6 +1168,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl list = Arrays.asList(title.split(",")); int index = 0; @@ -1242,7 +1291,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl listUserName = new ArrayList<>(); +// listUserName = sysUserMapper.getListUserName(); +// listUserName = listUserName.stream().distinct().collect(Collectors.toList()); + + //获取当前的责任人 + String dutyPerson = projectCertificationInventoryEO.getDutyPerson(); + //获取当前的责任领域 + List dutyTerritoryList = new ArrayList<>(); + dutyTerritoryList = Arrays.asList(projectCertificationInventoryEO.getDutyTerritory().split(",")); + dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList()); + //获取当前的projectId + String projectId = projectCertificationInventoryEO.getProjectLibraryId(); + //根据责任领域个projectId去查相关人员名单 + List projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectId, dutyTerritoryList); + + //根据相关人员名单获取的工程接口人 + List enginnerList = new ArrayList<>(); + for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){ + enginnerList.add(relatedPersonnel.getEngineeringInterfacePerson()); + } + for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){ + //如果工程接口人不为空的话 + if(enginnerList.size()>0){ + //判断哪个不存在 再去去存入 + if(!enginnerList.contains(dutyPerson)){ + relatedPersonnel.setEngineerAttSet(dutyPerson); +// projectRelatedPersonnelService.editById(relatedPersonnel); + } + }else { + //工程接口人为空的话,直接将责任设置到认证工程师下 + relatedPersonnel.setEngineerAttSet(dutyPerson); +// projectRelatedPersonnelService.editById(relatedPersonnel); + } + } + + this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList); + //设置权限 先删后加 List adds = new ArrayList<>(); if (ObjectUtils.isNotEmpty(projectCertificationInventoryEO.getSdt())) { @@ -2757,13 +2803,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 1) { dataList.add(rowList); } @@ -2987,6 +2990,50 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl listUserName = new ArrayList<>(); +// listUserName = sysUserMapper.getListUserName(); +// listUserName = listUserName.stream().distinct().collect(Collectors.toList()); + + List userNameList = datas.stream().map(ProjectCertificationInventoryEO::getDutyPersonName).distinct().collect(Collectors.toList()); + List listUserName = this.sysUserService.querySysUserByUserNameList(userNameList); + //编号验证 verifySerialNumber(datas,projectCertificationInventoryEOTemp); for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) { @@ -3095,159 +3149,69 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 200){ + + + //类别 + if(StringUtils.isNotBlank(category)){ + if(category.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "报告编号不能超过200个字符, "; + message = errorMsg + "类别不能超过300个字符"; }else{ - message = errorMsg + " The Report No cannot contain more than 200 characters, "; + message = errorMsg + " The Category cannot contain more than 300 characters"; } msgList.add(message); } } - //产品型号 - if(StringUtils.isNotBlank(productModel)){ - if(productModel.length() > 200){ + //检验项目 + if(StringUtils.isNotBlank(inspectionItem)){ + if(inspectionItem.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "产品型号不能超过200个字符, "; + message = errorMsg + "检验项目不能超过300个字符"; }else{ - message = errorMsg + " The Product Model cannot contain more than 200 characters, "; + message = errorMsg + " The InspectionItem cannot contain more than 300 characters"; } msgList.add(message); } } - //生产企业名称 - if(StringUtils.isNotBlank(productionEnterpriseName)){ - if(productionEnterpriseName.length() > 200){ + //配置项 + if(StringUtils.isNotBlank(configItem)){ + if(configItem.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "生产企业名称不能超过200个字符, "; + message = errorMsg + "配置项不能超过300个字符"; }else{ - message = errorMsg + " The Name Of Manufacturer cannot contain more than 200 characters, "; + message = errorMsg + " The ConfigItem cannot contain more than 300 characters"; } msgList.add(message); } } //WVTA ID - if(StringUtils.isNotBlank(wvtaId)){ if(wvtaId.length() > 300){ String message = ""; if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "WVTA ID不能超过300个字符, "; + message = errorMsg + "WVTA ID不能超过300个字符"; }else{ - message = errorMsg + " The WVTA ID cannot contain more than 300 characters, "; + message = errorMsg + " The WVTA ID cannot contain more than 300 characters"; } msgList.add(message); } } -// else { -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "WVTA ID不能为空, "; -// }else{ -// message = errorMsg + " The WVTA ID cannot null, "; -// } -// msgList.add(message); -// } - //类别 - - if(StringUtils.isNotBlank(category)){ - if(category.length() > 300){ - String message = ""; - if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "类别不能超过300个字符, "; - }else{ - message = errorMsg + " The Category cannot contain more than 300 characters, "; - } - msgList.add(message); - } - } -// else { -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "类别不能为空, "; -// }else{ -// message = errorMsg + " The Category cannot null, "; -// } -// msgList.add(message); -// } - //检验项目 - - if(StringUtils.isNotBlank(inspectionItem)){ - if(inspectionItem.length() > 100){ - String message = ""; - if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "检验项目不能超过300个字符, "; - }else{ - message = errorMsg + " The InspectionItem cannot contain more than 300 characters, "; - } - msgList.add(message); - } - } -// else { -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "检验项目不能为空, "; -// }else{ -// message = errorMsg + " The InspectionItem cannot null, "; -// } -// msgList.add(message); -// } - //配置项 - - if(StringUtils.isNotBlank(configItem)){ - if(configItem.length() > 300){ - String message = ""; - if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ - message = errorMsg + "配置项不能超过100个字符, "; - }else{ - message = errorMsg + " The ConfigItem cannot contain more than 300 characters, "; - } - msgList.add(message); - } - } -// else { -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "配置项不能为空, "; -// }else{ -// message = errorMsg + " The ConfigItem cannot null, "; -// } -// msgList.add(message); -// } //责任领域 - if(StringUtils.isNotBlank(dutyTerritory)){ value = pullMore(dictItemList, projectCertificationInventoryEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory"); if(StringUtils.isNotBlank(value)){ projectCertificationInventoryEO.setDutyTerritory(value); } } -// else { -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "责任领域不能为空, "; -// }else{ -// message = errorMsg + " The Responsible Field cannot null, "; -// } -// msgList.add(message); -// } //工程接口人(责任领域下的工程接口人) Map objectMap = iProjectRelatedPersonnelService.queryPersonByProjectId(projectCertificationInventoryEOTemp.getProjectLibraryId(), value); //工程接口人 List> mapPersonList = (List>) objectMap.get("engineeringInterfacePersonList"); - //所有人 -// List> allPersonList = (List>) objectMap.get("allPersonList"); - - List listUserName = new ArrayList<>(); - listUserName = sysUserMapper.getListUserName(); - listUserName = listUserName.stream().distinct().collect(Collectors.toList()); String nameCn = ""; @@ -3259,15 +3223,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 200){ + String message = ""; + if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ + message = errorMsg + "报告编号不能超过200个字符"; + }else{ + message = errorMsg + " The Report No cannot contain more than 200 characters"; + } + msgList.add(message); + } + } + //产品型号 + if(StringUtils.isNotBlank(productModel)){ + if(productModel.length() > 200){ + String message = ""; + if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ + message = errorMsg + "产品型号不能超过200个字符"; + }else{ + message = errorMsg + " The Product Model cannot contain more than 200 characters"; + } + msgList.add(message); + } + } + //生产企业名称 + if(StringUtils.isNotBlank(productionEnterpriseName)){ + if(productionEnterpriseName.length() > 200){ + String message = ""; + if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ + message = errorMsg + "生产企业名称不能超过200个字符"; + }else{ + message = errorMsg + " The Name Of Manufacturer cannot contain more than 200 characters"; + } + msgList.add(message); + } + } } return msgList; @@ -3367,29 +3334,33 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpllongdate){ - flag = false; - if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ - errorMsg += nameCn + "不能导入今天之前的日期, "; - }else{ - errorMsg += nameEn + " Cannot import dates before today, "; + }else{ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date now = new Date(); + String nowStr = sdf.format(now); + Date now1 = null; + Date field1 = null; + try { + now1 = sdf.parse(nowStr); + field1 = sdf.parse(field); + long day = now1.getTime()-field1.getTime(); + if(day>0){ + flag = false; + if(CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())){ + errorMsg += nameCn + "不能导入今天之前的日期"; + }else{ + errorMsg += nameEn + " Cannot import dates before today"; + } + msgList.add(errorMsg); } - msgList.add(errorMsg); + } catch (ParseException e) { + e.printStackTrace(); } - } catch (ParseException e) { - e.printStackTrace(); } } return flag; @@ -3474,9 +3445,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl finalValueList = valueList; List diffList = list.stream().filter(e -> !finalValueList.contains(e)).collect(Collectors.toList()); if (CutEnum.CN.getValue().equals(projectCertificationInventoryEO.getCut())) { - errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配, "; + errorMsg += nameCn + "中的" + StringUtils.join(diffList,",") + "与数据字典不匹配"; } else { - errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary, "; + errorMsg += nameEn + " " + StringUtils.join(diffList,",") + " does not match the data dictionary"; } msgList.add(errorMsg); } @@ -3651,13 +3622,14 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl collect = bussDocumentLibraryEOList.stream() - .filter(e -> e.getSerialNumber().equals(projectCertificationInventoryEO.getSerialNumber())).collect(Collectors.toList()); - projectCertificationInventoryEO.setBussDocumentLibraryId(collect.get(0).getId()); - } } +// else{ +// for (ProjectCertificationInventoryEO projectCertificationInventoryEO : datas) { +// List collect = bussDocumentLibraryEOList.stream() +// .filter(e -> e.getSerialNumber().equals(projectCertificationInventoryEO.getSerialNumber())).collect(Collectors.toList()); +// projectCertificationInventoryEO.setBussDocumentLibraryId(collect.get(0).getId()); +// } +// } } } @@ -3706,29 +3678,40 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(title.split(",")); @@ -4008,7 +3991,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl engineerAttSetUsers = new ArrayList<>(); + if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineerAttSet())){ + List engineerAttSetIdList = Arrays.asList(projectRelatedPersonnel.getEngineerAttSet().split(",")); + if (CollectionUtils.isNotEmpty(engineerAttSetIdList)) { + engineerAttSetIdList=engineerAttSetIdList.stream().distinct().collect(Collectors.toList()); + QueryWrapper userqueryWrapper = new QueryWrapper<>(); + userqueryWrapper.in("id ", engineerAttSetIdList); + certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper); + } + if(CollectionUtils.isNotEmpty(engineerAttSetUsers)) { + String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet(); + String engineerAttSetName = null; + StringBuilder certificationName = new StringBuilder(); + for (String data : engineerAttSetIdList) { + if (StringUtils.isNotEmpty(engineerAttSetId)) { + engineerAttSetName = engineerAttSetUsers.stream().filter(e -> data.equals(e.getId())) + .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); + } + certificationName.append(engineerAttSetName).append(","); + } + projectRelatedPersonnel.setEngineerAttSetName(certificationName.substring(0,certificationName.toString().length()-1)); + } + } } } @@ -564,7 +587,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq("project_id",projectId).in("duty_territory",dutyTerritoryList); List projectRelatedPersonnels = baseMapper.selectList(wrapper); - return projectRelatedPersonnels; From 509c6e91d9cf35ea4f32476ef27cfa78e5eeaffc Mon Sep 17 00:00:00 2001 From: cuijiaming <1410452759@qq.com> Date: Sat, 1 Apr 2023 11:04:55 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5-=E6=97=A5=E6=9C=9F=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ctCertificationInventoryEOServiceImpl.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 9aa4bbe37..8521a21db 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -3250,19 +3250,22 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 200){ @@ -3343,9 +3346,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl Date: Sat, 1 Apr 2023 20:14:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?bug66869=E5=92=8C67164=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectRelatedPersonnelController.java | 4 +- .../entity/ProjectRelatedPersonnel.java | 6 +- .../mapper/ProjectRelatedPersonnelMapper.java | 4 +- .../xml/ProjectRelatedPersonnelMapper.xml | 12 +++- .../IProjectRelatedPersonnelService.java | 3 +- ...ctCertificationInventoryEOServiceImpl.java | 6 +- .../ProjectLawsInventoryEOServiceImpl.java | 56 ++++++++--------- .../impl/ProjectLibraryBaseServiceImpl.java | 4 +- .../ProjectRelatedPersonnelServiceImpl.java | 60 ++++++++++++++----- 9 files changed, 98 insertions(+), 57 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java index 2574ed923..a8af91796 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java @@ -59,7 +59,9 @@ public class ProjectRelatedPersonnelController extends JeroController certificationEngineerNameList; /**备注*/ - @Excel(name = "备注,Comments", width = 15,orderNum = "5") + @Excel(name = "备注,Comments", width = 15,orderNum = "6") private java.lang.String remark; /**创建人*/ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java index fb4d2d269..ce5557e25 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java @@ -19,7 +19,9 @@ public interface ProjectRelatedPersonnelMapper extends BaseMapper queryById(@Param("id")String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml index 107fe1a72..961232976 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectRelatedPersonnelMapper.xml @@ -22,6 +22,8 @@ prp.law_engineer, prp.engineering_interface_person, prp.certification_engineer, + prp.engineer_law_set, + prp.engineer_att_set, prp.remark, prp.create_by, prp.create_time, @@ -51,8 +53,14 @@ AND prp.engineering_interface_person like concat(concat('%',#{engineeringInterfacePerson}),'%') - - AND prp.certification_engineer like concat(concat('%',#{certificationEngineer}),'%') + + + + + AND prp.engineer_law_set like concat(concat('%',#{engineerLawSet}),'%') + + + AND prp.engineer_att_set like concat(concat('%',#{engineerAttSet}),'%') AND sd.dict_code = #{dictCode} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java index f19b5f1e1..29f18ec42 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java @@ -67,7 +67,8 @@ public interface IProjectRelatedPersonnelService extends IService queryList(); - List queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer); +// List queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String certificationEngineer); + List queryPageList(String projectId,String dutyTerritory,String lawEngineer,String engineeringInterfacePerson,String engineerLawSet,String engineerAttSet); Map queryPersonByProjectId(String projectId, String dutyTerritory); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 8521a21db..39445e708 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -1074,7 +1074,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null); + List projectRelatedPersonnels = this.projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null,null); List lawEngineerNameList = new ArrayList<>(); if(projectRelatedPersonnels.size() != 0){ for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { @@ -3705,9 +3705,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl engineeringInterfacePersonList = new ArrayList<>(); -// engineeringInterfacePersonList = Arrays.asList(projectLawsInventoryEO.getEngineeringInterfacePerson().split(",")); -// engineeringInterfacePersonList = engineeringInterfacePersonList.stream().distinct().collect(Collectors.toList()); - - List projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList); //enginnerList为每一条的工程接口人的集合 List enginnerList = new ArrayList<>(); + for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){ + enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson()); + } if(projectRelatedPersonnelList.size()>0){ for(ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList){ - if(StringUtils.isEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())){ + if(enginnerList.size()<0){ //直接将allList存入到 String all = String.join(",",allList); projectRelatedPersonnel.setEngineerLawSet(all); // projectRelatedPersonnelService.editById(projectRelatedPersonnel); }else { - enginnerList.add(projectRelatedPersonnel.getEngineeringInterfacePerson()); enginnerList = enginnerList.stream().distinct().collect(Collectors.toList()); //比较allList中有而enginnerList中没有的工程接口人 - boolean flag = false; - List resultList = new ArrayList<>(); - if(allList.size()>0){ - flag = CollectionUtils.isEqualCollection(allList,enginnerList); - if(!flag){ - //进行遍历两个list,将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里 - - for(String all : allList){ - boolean flag1 = true; - for(String enginner : enginnerList){ - if(all.equals(enginner)){ - flag1 = false; - break; - } - } - if(flag1){ - resultList.add(all); - } - } - } - } + allList.removeAll(enginnerList); +// if(allList.size()>0){ +// flag = CollectionUtils.isEqualCollection(allList,enginnerList); +// if(!flag){ +// //进行遍历两个list,将allList中有的而enginnerList没有的存入到相关人员名单中的法规那里 +// +// for(String all : allList){ +// boolean flag1 = true; +// for(String enginner : enginnerList){ +// if(all.equals(enginner)){ +// flag1 = false; +// break; +// } +// } +// if(flag1){ +// resultList.add(all); +// } +// } +// } +// } //将相关人员名单中没有的resultList添加到相关人员记录表中 - String result = String.join(",",resultList); + String result = String.join(",",allList); projectRelatedPersonnel.setEngineerLawSet(result); // projectRelatedPersonnelService.editById(projectRelatedPersonnel); } @@ -10200,7 +10196,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null); + List projectRelatedPersonnels = projectRelatedPersonnelService.queryPageList(projectLibraryId,null,null,null,null,null); List lawEngineerNameList = new ArrayList<>(); if(projectRelatedPersonnels.size() != 0){ for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnels) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index af60b7006..d876d9694 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -252,7 +252,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl relatedPersonnelPermissionList = new ArrayList<>(); for (ProjectRelatedPersonnel projectRelatedPersonnel : projectRelatedPersonnelList) { @@ -518,7 +518,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), - DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null); + DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null,null); //项目的认证工程师 String certificationEngineer = projectLibraryBase.getCertificationEngineer(); //一个都不选的情况下 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 779329e1e..4de2a9337 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -287,14 +287,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl result = projectRelatedPersonnelMapper.queryPageList(projectId, DictCodeEnum.DUTY_TERRITORY.getValue(), dutyTerritoryTemp, lawEngineer, engineeringInterfacePerson, - certificationEngineer); +// certificationEngineer + engineerLawSet, + engineerAttSet); //查询数据里的责任领域 List dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList()); //查标签内容里的责任领域数据 @@ -303,7 +306,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl engineerLawSetUsers = new ArrayList<>(); + if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineerLawSet())){ + List engineerLawSetIdList = Arrays.asList(projectRelatedPersonnel.getEngineerLawSet().split(",")); + if (CollectionUtils.isNotEmpty(engineerLawSetIdList)) { + engineerLawSetIdList=engineerLawSetIdList.stream().distinct().collect(Collectors.toList()); + QueryWrapper userqueryWrapper = new QueryWrapper<>(); + userqueryWrapper.in("id ", engineerLawSetIdList); + engineerLawSetUsers = sysUserMapper.selectList(userqueryWrapper); + } + if(CollectionUtils.isNotEmpty(engineerLawSetUsers)) { + String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet(); + String engineerLawSetName = null; + StringBuilder lawSetName = new StringBuilder(); + for (String data : engineerLawSetIdList) { + if (StringUtils.isNotEmpty(engineerAttSetId)) { + engineerLawSetName = engineerLawSetUsers.stream().filter(e -> data.equals(e.getId())) + .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); + } + lawSetName.append(engineerLawSetName).append(","); + } + projectRelatedPersonnel.setEngineerLawSetName(lawSetName.substring(0,lawSetName.toString().length()-1)); + } + } //认证工程师设置 List engineerAttSetUsers = new ArrayList<>(); if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineerAttSet())){ @@ -413,20 +443,20 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl userqueryWrapper = new QueryWrapper<>(); userqueryWrapper.in("id ", engineerAttSetIdList); - certificationEngineerUsers = sysUserMapper.selectList(userqueryWrapper); + engineerAttSetUsers = sysUserMapper.selectList(userqueryWrapper); } if(CollectionUtils.isNotEmpty(engineerAttSetUsers)) { String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet(); String engineerAttSetName = null; - StringBuilder certificationName = new StringBuilder(); + StringBuilder AttSetName = new StringBuilder(); for (String data : engineerAttSetIdList) { if (StringUtils.isNotEmpty(engineerAttSetId)) { engineerAttSetName = engineerAttSetUsers.stream().filter(e -> data.equals(e.getId())) .map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); } - certificationName.append(engineerAttSetName).append(","); + AttSetName.append(engineerAttSetName).append(","); } - projectRelatedPersonnel.setEngineerAttSetName(certificationName.substring(0,certificationName.toString().length()-1)); + projectRelatedPersonnel.setEngineerAttSetName(AttSetName.substring(0,AttSetName.toString().length()-1)); } } } @@ -611,7 +641,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl Date: Sun, 2 Apr 2023 06:10:05 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E4=B8=AD=E6=9B=B4=E6=96=B0log=E7=9B=B8=E5=85=B3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthDummyInventoryInfoEOServiceImpl.java | 382 +++++++++++++++++- 1 file changed, 376 insertions(+), 6 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java index 517f60ac3..0099558a7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/service/impl/AuthDummyInventoryInfoEOServiceImpl.java @@ -27,9 +27,11 @@ import com.jero.modules.dummy.entity.DummyInventoryInfoEO; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl; import com.jero.modules.dummy.util.DeepCopyListUtil; +import com.jero.modules.dummy.util.ListDiff; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.project.entity.ProjectCertificationInventoryEO; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.enums.ProjectInventoryFieldEnum; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.system.entity.SysCategory; @@ -41,7 +43,9 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import lombok.SneakyThrows; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.SerializationUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; @@ -153,18 +157,371 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl"; - String enContentLog = username+" edited the “" + serialNumber + "” in the list:
"; - authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue()); - authDummyLogService.updateLog(enContentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.EN.getValue()); + String contentLog = username+"编辑了清单中的“" + serialNumber + "”:"; + String enContentLog = username+" edited the “" + serialNumber + "” in the list:"; +// authDummyLogService.updateLog(contentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.CN.getValue()); +// authDummyLogService.updateLog(enContentLog, authDummyInventoryInfoEO.getAuthDummyInventoryBaseId(),CutEnum.EN.getValue()); + + List infoEOList = new ArrayList<>(); + infoEOList.add(authDummyInventoryInfoEO); + List infoEOListCopy = new ArrayList<>(); + infoEOListCopy.add(authDummyInventoryInfoEOcopy); + + //查询数据库里原来的数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + List dataList = list(queryWrapper.eq("id", authDummyInventoryInfoEO.getId())); + List dataListCopy = DeepCopyListUtil.depCopy(dataList); + + + saveOrUpdate(authDummyInventoryInfoEO); + + + //翻译-中文 + translateData(infoEOList); + translateData(dataList); + //翻译-英文 + translateDataToEn(infoEOListCopy); + translateDataToEn(dataListCopy); + + //比对不同字段 + Map infoDiff = ListDiff.compareObject(dataList.get(0),authDummyInventoryInfoEO); + Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),authDummyInventoryInfoEO); + + //设置更新log + setContentLog(infoDiff,contentLog,infoDiffEn,enContentLog,authDummyInventoryInfoEO.getAuthDummyInventoryBaseId()); } + private void setContentLog(Map infoDiff, String contentLog, Map infoDiffEn, String enContentLog, + String authDummyInventoryBaseId) { + //设置维护清单的修改消息 + if(MapUtils.isNotEmpty(infoDiff)){ + //类别 + if (StringUtils.isNotBlank(infoDiff.get("category"))) { + List list = Arrays.asList(infoDiff.get("category").split(",")); + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"类别" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("category"))){ + List listEn = Arrays.asList(infoDiffEn.get("category").split(",")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Category" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //检验项目 + if (StringUtils.isNotBlank(infoDiff.get("inspectionItem"))) { + List list = Arrays.asList(infoDiff.get("inspectionItem").split(",")); + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"检验项目" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("inspectionItem"))){ + List listEn = Arrays.asList(infoDiffEn.get("inspectionItem").split(",")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Inspection Items" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //配置项 + if (StringUtils.isNotBlank(infoDiff.get("configItem"))) { + List list = Arrays.asList(infoDiff.get("configItem").split(",")); + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"配置项" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("configItem"))){ + List listEn = Arrays.asList(infoDiffEn.get("configItem").split(",")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Configuration Item" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //WVTA ID + if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) { + List list = Arrays.asList(infoDiff.get("wvtaId").split(",")); + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"WVTA ID" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("wvtaId"))){ + List listEn = Arrays.asList(infoDiffEn.get("wvtaId").split(",")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"WVTA ID" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //责任领域 + if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) { + List list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|")); + + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"责任领域" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("dutyTerritory"))){ + List listEn = Arrays.asList(infoDiffEn.get("dutyTerritory").split("\\|")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Responsible Field" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //交付物类型 + if (StringUtils.isNotBlank(infoDiff.get("deliverableTypeName"))) { + List list = Arrays.asList(infoDiff.get("deliverableTypeName").split("\\|")); + + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"交付物类型" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("deliverableTypeNameEn"))){ + List listEn = Arrays.asList(infoDiffEn.get("deliverableTypeNameEn").split("\\|")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Deliverable Type" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + //交付物模板 + if (StringUtils.isNotBlank(infoDiff.get("deliverableTemplateName"))) { + List list = Arrays.asList(infoDiff.get("deliverableTemplateName").split("\\|")); + + if(list.size() > 1){ + String infoDiffOld = list.get(0); + String infoDiffNew = list.get(1); + contentLog += "'"+"交付物模板" + "'由" + infoDiffOld + "改为了" + infoDiffNew + "
"; + } + if(StringUtils.isNotBlank(infoDiffEn.get("deliverableTemplateName"))){ + List listEn = Arrays.asList(infoDiffEn.get("deliverableTemplateName").split("\\|")); + if(listEn.size() > 1){ + String infoDiffOldEn = listEn.get(0); + String infoDiffNewEn = listEn.get(1); + enContentLog += "'"+"Deliverable Template" +"' has been changed from " + infoDiffOldEn + " to " + infoDiffNewEn + "
"; + } + } + } + contentLog = contentLog.substring(0, contentLog.length()-1); + enContentLog =enContentLog.substring(0, enContentLog.length()-1); + authDummyLogService.updateLog(contentLog, authDummyInventoryBaseId,CutEnum.CN.getValue()); + authDummyLogService.updateLog(enContentLog, authDummyInventoryBaseId,CutEnum.EN.getValue()); + } + } + + private void translateDataToEn(List infoEOListCopy) { + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : infoEOListCopy) { + //类别 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getCategory())){ + authDummyInventoryInfoEO.setCategory("null"); + } + //检验项目 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getInspectionItem())){ + authDummyInventoryInfoEO.setInspectionItem("null"); + } + //配置项 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getConfigItem())){ + authDummyInventoryInfoEO.setConfigItem("null"); + } + //WVTA ID + if (StringUtils.isBlank(authDummyInventoryInfoEO.getWvtaId())) { + authDummyInventoryInfoEO.setWvtaId("null"); + } + //责任领域 + if (StringUtils.isNotBlank(authDummyInventoryInfoEO.getDutyTerritory())) { + List dutyTerritory = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue()); + List dutyTerritoryList = Arrays.asList(authDummyInventoryInfoEO.getDutyTerritory().split(",")); + StringBuilder dutyTerritoryBuilder = new StringBuilder(); + for (String midDutyTerritory : dutyTerritoryList) { + String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getItemText()).collect(Collectors.joining(",")); + dutyTerritoryBuilder.append(dutyTerritoryName).append(","); + } + authDummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1)); + } else { + authDummyInventoryInfoEO.setDutyTerritory("null"); + } + + //交付物类型 + Set deliverableTypeSet = new HashSet<>(); + List deliverableTypeIdList= new ArrayList<>(); + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())){ + deliverableTypeIdList = Arrays.asList(authDummyInventoryInfoEO.getDeliverableType().split(",")); + deliverableTypeSet.addAll(deliverableTypeIdList); + } + //树形结构 + List deliverableTypeList = new ArrayList<>(); + if (deliverableTypeSet.size() != 0) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysCategory::getId, deliverableTypeSet); + deliverableTypeList = sysCategoryService.list(wrapper); + } + + if (deliverableTypeList.size() != 0 && StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())) { + StringBuilder deliverableBuilder = new StringBuilder(); + for(String id : deliverableTypeIdList){ + List designList = deliverableTypeList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()); + if (designList.size() != 0) { + deliverableBuilder.append(designList.get(0).getName() + ","); + } + } + String designName = null; + if (StringUtils.isNotBlank(deliverableBuilder)) { + designName = deliverableBuilder.substring(0, deliverableBuilder.length() - 1); + } + authDummyInventoryInfoEO.setDeliverableTypeName(designName); + } else { + authDummyInventoryInfoEO.setDeliverableTypeName("null"); + } + + //文件 + List deliverableList = new ArrayList<>(); + //交付物模板 + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){ + deliverableList.addAll(Arrays.asList(authDummyInventoryInfoEO.getDeliverableTemplate().split(","))); + }else { + authDummyInventoryInfoEO.setDeliverableTemplateName("null"); + } + List fileInfos = new ArrayList<>(); + if(deliverableList.size() != 0){ + fileInfos = iOSSFileService.getFileInfos(org.apache.commons.lang3.StringUtils.join(deliverableList, ",")); + } + //交付物类型模板 + if(fileInfos.size() != 0){ + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){ + String fileName = getFileName(authDummyInventoryInfoEO, fileInfos,authDummyInventoryInfoEO.getDeliverableTemplate()); + if(org.apache.commons.lang3.StringUtils.isNotBlank(fileName)){ + authDummyInventoryInfoEO.setDeliverableTemplateName(fileName); + } + } + } + } + } + + private void translateData(List infoEOList) { + for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : infoEOList) { + //类别 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getCategory())){ + authDummyInventoryInfoEO.setCategory("空"); + } + //检验项目 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getInspectionItem())){ + authDummyInventoryInfoEO.setInspectionItem("空"); + } + //配置项 + if(StringUtils.isBlank(authDummyInventoryInfoEO.getConfigItem())){ + authDummyInventoryInfoEO.setConfigItem("空"); + } + //WVTA ID + if (StringUtils.isBlank(authDummyInventoryInfoEO.getWvtaId())) { + authDummyInventoryInfoEO.setWvtaId("空"); + } + //责任领域 + if (StringUtils.isNotBlank(authDummyInventoryInfoEO.getDutyTerritory())) { + List dutyTerritory = sysDictItemMapper.selectItemsByDictCode(ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue()); + List dutyTerritoryList = Arrays.asList(authDummyInventoryInfoEO.getDutyTerritory().split(",")); + StringBuilder dutyTerritoryBuilder = new StringBuilder(); + for (String midDutyTerritory : dutyTerritoryList) { + String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getItemText()).collect(Collectors.joining(",")); + dutyTerritoryBuilder.append(dutyTerritoryName).append(","); + } + authDummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0, dutyTerritoryBuilder.toString().length() - 1)); + } else { + authDummyInventoryInfoEO.setDutyTerritory("空"); + } + + //交付物类型 + Set deliverableTypeSet = new HashSet<>(); + List deliverableTypeIdList= new ArrayList<>(); + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())){ + deliverableTypeIdList = Arrays.asList(authDummyInventoryInfoEO.getDeliverableType().split(",")); + deliverableTypeSet.addAll(deliverableTypeIdList); + } + //树形结构 + List deliverableTypeList = new ArrayList<>(); + if (deliverableTypeSet.size() != 0) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysCategory::getId, deliverableTypeSet); + deliverableTypeList = sysCategoryService.list(wrapper); + } + + if (deliverableTypeList.size() != 0 && StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableType())) { + StringBuilder deliverableBuilder = new StringBuilder(); + for(String id : deliverableTypeIdList){ + List designList = deliverableTypeList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()); + if (designList.size() != 0) { + deliverableBuilder.append(designList.get(0).getName() + ","); + } + } + String designName = null; + if (StringUtils.isNotBlank(deliverableBuilder)) { + designName = deliverableBuilder.substring(0, deliverableBuilder.length() - 1); + } + authDummyInventoryInfoEO.setDeliverableTypeName(designName); + } else { + authDummyInventoryInfoEO.setDeliverableTypeName("空"); + } + + //文件 + List deliverableList = new ArrayList<>(); + //交付物模板 + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){ + deliverableList.addAll(Arrays.asList(authDummyInventoryInfoEO.getDeliverableTemplate().split(","))); + }else { + authDummyInventoryInfoEO.setDeliverableTemplateName("空"); + } + List fileInfos = new ArrayList<>(); + if(deliverableList.size() != 0){ + fileInfos = iOSSFileService.getFileInfos(org.apache.commons.lang3.StringUtils.join(deliverableList, ",")); + } + //交付物类型模板 + if(fileInfos.size() != 0){ + if(StringUtils.isNotBlank(authDummyInventoryInfoEO.getDeliverableTemplate())){ + String fileName = getFileName(authDummyInventoryInfoEO, fileInfos,authDummyInventoryInfoEO.getDeliverableTemplate()); + if(org.apache.commons.lang3.StringUtils.isNotBlank(fileName)){ + authDummyInventoryInfoEO.setDeliverableTemplateName(fileName); + } + } + } + } + } + + private String getFileName(AuthDummyInventoryInfoEO authDummyInventoryInfoEO, List fileInfos, String deliverableTemplate) { + StringBuilder sb = new StringBuilder(); + for (String s : deliverableTemplate.split(",")) { + List collect = fileInfos.stream().filter(e -> s.equals(e.getId())).collect(Collectors.toList()); + if(collect.size() != 0){ + sb.append(collect.get(0).getFileName() + ","); + } + } + String sbStr = ""; + if(org.apache.commons.lang3.StringUtils.isNotBlank(sb)){ + sbStr = sb.substring(0, sb.length() - 1); + } + return sbStr; + } + /** * 通过id删除 * @@ -224,6 +581,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap()); + queryWrapper.orderByDesc("create_time"); List authDummyInventoryInfoEOList = this.list(queryWrapper); return authDummyInventoryInfoEOList; } @@ -780,6 +1138,18 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl