From 1ed7d9f6847f587227bda85211766bf9d6a13179 Mon Sep 17 00:00:00 2001 From: cuijiaming <1410452759@qq.com> Date: Sun, 2 Apr 2023 06:10:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B8=85=E5=8D=95=E4=B8=AD?= =?UTF-8?q?=E6=9B=B4=E6=96=B0log=E7=9B=B8=E5=85=B3=E4=BF=AE=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