diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java index 8316f757f..c06edc7ee 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java @@ -63,6 +63,7 @@ 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 org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -1813,6 +1814,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl> configDataList, String paramsManifestId) { List newConfigDataEOList = new ArrayList<>(); List updateDetailEOList = new ArrayList<>(); @@ -1824,6 +1826,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl map : configDataList) { + String paramsCollectManifestId = (String) map.get("id"); // 操作记录 StringBuilder logCnContent = new StringBuilder(); @@ -1831,36 +1834,14 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl entry : map.entrySet()) { + String key = entry.getKey(); if ("id".equals(key)) { continue; } - if ("remarks".equals(entry.getKey()) && StringUtils.isNotEmpty((String) entry.getValue())) { ParamsReportDetailEO updateDEtailEO = new ParamsReportDetailEO(); updateDEtailEO.setId(paramsCollectManifestId); @@ -1873,17 +1854,13 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl paramsReportConfigDataMap = (Map) entry.getValue(); - // 无法转ParamsConfigDataVO(遍历会出现该异常 : LinkedHashMap cannot be cast to ParamsConfigDataVO) - // List> configDataVOList = (List>) paramsReportConfigDataMap.get("list"); - - logCnContent.append("将"); - logEnContent.append(" set "); - - logCnContent.append(paramsReportConfigEO.getConfigName()).append("的"); - logEnContent.append(paramsReportConfigEO.getConfigName()); Map paramsConfigDataVOMap = (Map) paramsReportConfigDataMap.get("paramsConfigData"); + + int count = 0; + StringBuilder valueOldMsg = new StringBuilder(); + StringBuilder valueNewMsg = new StringBuilder(); for (Map.Entry paramsConfigDataMap : paramsConfigDataVOMap.entrySet()) { //顺序号不存在ID中,查询的时候会拼接 String configDataId = paramsConfigDataMap.getKey(); @@ -1899,62 +1876,40 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl paramsConfigDataVO : configDataVOList) { String type = (String) paramsConfigDataVO.get("type"); String dataValue = ""; if(ObjectUtils.isNotEmpty(paramsConfigDataVO.get("dataValue"))){ dataValue = String.valueOf(paramsConfigDataVO.get("dataValue")); } - // 判断是新增还是修改 ParamsConfigDataEO oldConfigDataEO = getConfigDataEOByConfigIdAndCollectManifestId(paramsReportConfigEOId, paramsCollectManifestId, paramsReportConfigDataEOList,configDataId); if (ObjectUtil.isNotEmpty(oldConfigDataEO)) { - paramsReportConfigDataEO.setId(oldConfigDataEO.getId()); + String fileConnectIdOld = oldConfigDataEO.getFileConnectId(); + String textData = oldConfigDataEO.getTextData(); + String pullData = oldConfigDataEO.getPullData(); - if (type.equals(ConfigDataTypeEnum.TEXT.getValue())) { - // paramsReportConfigDataEO.setTextData(dataValue); - if (StringUtils.isEmpty(oldConfigDataEO.getTextData()) && StringUtils.isNotEmpty(dataValue)) { - logCnContent.append("\"").append("空").append("\"").append("改为").append("\"").append(dataValue).append("\"").append(","); - logEnContent.append(" from ").append("\"").append("Null").append("\"").append(" to ").append("\"").append(dataValue).append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getTextData()) && StringUtils.isEmpty(dataValue)) { - logCnContent.append("\"").append(oldConfigDataEO.getTextData()).append("\"").append("改为").append("\"").append("空").append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldConfigDataEO.getTextData()).append("\"").append(" to ").append("\"").append("Null").append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getTextData()) && StringUtils.isNotEmpty(dataValue) && !oldConfigDataEO.getTextData().equals(dataValue)) { - logCnContent.append("\"").append(oldConfigDataEO.getTextData()).append("\"").append("改为").append("\"").append(dataValue).append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldConfigDataEO.getTextData()).append("\"").append(" to ").append("\"").append(dataValue).append("\"").append(", "); - - changeFlag = true; + if (type.equals(ConfigDataTypeEnum.FILE.getValue())){ + //判断修改前后的文件是否发生变化 + if(StringUtils.isNotBlank(fileConnectIdOld) + && StringUtils.isNotBlank(dataValue) + && !fileConnectIdOld.equals(dataValue)){ + count++; + } + if(StringUtils.isBlank(fileConnectIdOld) && StringUtils.isNotBlank(dataValue)){ + count++; + } + if(StringUtils.isNotBlank(fileConnectIdOld) && StringUtils.isBlank(dataValue)){ + count++; } - } else if (type.equals(ConfigDataTypeEnum.PULL.getValue()) - || type.equals(ConfigDataTypeEnum.PULL_MORE.getValue())) { - // paramsReportConfigDataEO.setPullData(dataValue); - - if (StringUtils.isEmpty(oldConfigDataEO.getPullData()) && StringUtils.isNotEmpty(dataValue)) { - logCnContent.append("\"").append("空").append("\"").append("改为").append("\"").append(dataValue).append("\"").append(","); - logEnContent.append(" from ").append("\"").append("Null").append("\"").append(" to ").append("\"").append(dataValue).append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getPullData()) && StringUtils.isEmpty(dataValue)) { - logCnContent.append("\"").append(oldConfigDataEO.getPullData()).append("\"").append("改为").append("\"").append("空").append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldConfigDataEO.getPullData()).append("\"").append(" to ").append("\"").append("Null").append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getPullData()) && StringUtils.isNotEmpty(dataValue) && !oldConfigDataEO.getPullData().equals(dataValue)) { - logCnContent.append("\"").append(oldConfigDataEO.getPullData()).append("\"").append("改为").append("\"").append(dataValue).append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldConfigDataEO.getPullData()).append("\"").append(" to ").append("\"").append(dataValue).append("\"").append(", "); - - changeFlag = true; + if(StringUtils.isNotBlank(fileConnectIdOld)){ + String oldFileNames = ossFileService.getFileInfosByConnectId(fileConnectIdOld).stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + //文件修改前的参数项 + valueOldMsg.append(oldFileNames+","); } - - } else if (type.equals(ConfigDataTypeEnum.FILE.getValue())) { - String newFileNames = ""; - if (StringUtils.isNotEmpty(dataValue) && dataValue.contains(",")) { // 新加多个文件. 目前没用到这段代码 - // 处理文件connectId + if(StringUtils.isNotBlank(dataValue)){ String[] fileIdList = dataValue.split(","); List ossFiles = ossFileService.getFileInfosByConnectId(fileIdList[0]); if(CollectionUtil.isEmpty(ossFiles)) { // 新加了一个文件 @@ -1968,62 +1923,64 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl ossFiles = ossFileService.getFileInfosByConnectId(dataValue); - if(CollectionUtil.isEmpty(ossFiles)){ // 新加了一个文件 - String connectId = UUID.randomUUID().toString().replace("-", ""); - //修改文件表关联信息connect_id - List oSSFileList = new ArrayList<>(); - for (String fileId : dataValue.split(",")) { - OSSFile ossFile = new OSSFile(); - ossFile.setId(fileId); - ossFile.setConnectId(connectId); - oSSFileList.add(ossFile); - } - ossFileService.updateFileInfo(oSSFileList); - dataValue = connectId; - newFileNames = ossFileService.getFileInfosByConnectId(connectId).stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + String newFileNames = ossFileService.getFileInfosByConnectId(connectId).stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + //文件修改后的参数项 + valueNewMsg.append(newFileNames+","); } } - // paramsReportConfigDataEO.setFileConnectId(dataValue); - if (StringUtils.isEmpty(oldConfigDataEO.getFileConnectId()) && StringUtils.isNotEmpty(dataValue)) { - logCnContent.append("\"").append("空").append("\"").append("改为").append("\"").append(newFileNames).append("\"").append(","); - logEnContent.append(" from ").append("\"").append("Null").append("\"").append(" to ").append("\"").append(newFileNames).append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getFileConnectId()) && StringUtils.isEmpty(dataValue)) { - String oldFileNames = ossFileService.getFileInfosByConnectId(oldConfigDataEO.getFileConnectId()).stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - logCnContent.append("\"").append(oldFileNames).append("\"").append("改为").append("\"").append("空").append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldFileNames).append("\"").append(" to ").append("\"").append("Null").append("\"").append(", "); - - changeFlag = true; - } else if (StringUtils.isNotEmpty(oldConfigDataEO.getFileConnectId()) && StringUtils.isNotEmpty(dataValue)) { - String oldFileNames = ossFileService.getFileInfosByConnectId(oldConfigDataEO.getFileConnectId()).stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - if (!oldConfigDataEO.getFileConnectId().equals(dataValue)) { - logCnContent.append("\"").append(oldFileNames).append("\"").append("改为").append("\"").append(newFileNames).append("\"").append(","); - logEnContent.append(" from ").append("\"").append(oldFileNames).append("\"").append(" to ").append("\"").append(newFileNames).append("\"").append(", "); - - changeFlag = true; + }else{ + if(type.equals(ConfigDataTypeEnum.TEXT.getValue())){ + //判断修改前后的文件是否发生变化 + if(StringUtils.isNotBlank(textData) + && StringUtils.isNotBlank(dataValue) + && !textData.equals(dataValue)){ + count++; + } + if(StringUtils.isBlank(textData) && StringUtils.isNotBlank(dataValue)){ + count++; + } + if(StringUtils.isNotBlank(textData) && StringUtils.isBlank(dataValue)){ + count++; + } + //文本框修改前的参数项 + if(StringUtils.isNotBlank(oldConfigDataEO.getTextData())){ + valueOldMsg.append(oldConfigDataEO.getTextData()+","); + } + } + if(type.equals(ConfigDataTypeEnum.PULL.getValue())){ + //判断修改前后的文件是否发生变化 + if(StringUtils.isNotBlank(pullData) + && StringUtils.isNotBlank(dataValue) + && !pullData.equals(dataValue)){ + count++; + } + if(StringUtils.isBlank(pullData) && StringUtils.isNotBlank(dataValue)){ + count++; + } + if(StringUtils.isNotBlank(pullData) && StringUtils.isBlank(dataValue)){ + count++; + } + //输入框修改前的参数项 + if(StringUtils.isNotBlank(oldConfigDataEO.getTextData())){ + valueOldMsg.append(oldConfigDataEO.getPullData()+","); } - } + //文本框和输入框的修改后的参数项 + if(StringUtils.isNotBlank(dataValue)){ + valueNewMsg.append(dataValue+","); + } } + paramsReportConfigDataEO.setId(oldConfigDataEO.getId()); } - - if (type.equals(ConfigDataTypeEnum.TEXT.getValue())) { - paramsReportConfigDataEO.setTextData(dataValue); } else if (type.equals(ConfigDataTypeEnum.PULL.getValue()) || type.equals(ConfigDataTypeEnum.PULL_MORE.getValue())) { paramsReportConfigDataEO.setPullData(dataValue); } else if (type.equals(ConfigDataTypeEnum.FILE.getValue())) { - String newFileNames = ""; if (StringUtils.isNotEmpty(dataValue) && dataValue.contains(",")) { // 新加多个文件. 目前没用到这段代码 // 处理文件connectId String[] fileIdList = dataValue.split(","); @@ -2039,7 +1996,6 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl ossFiles = ossFileService.getFileInfosByConnectId(dataValue); @@ -2055,7 +2011,6 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl prcdQueryWrap = new QueryWrapper<>(); - prcdQueryWrap.lambda().eq(ParamsReportConfigDataEO::getParamsConfigId,paramsReportConfigEOId); - prcdQueryWrap.lambda().eq(ParamsReportConfigDataEO::getParamsCollectManifestId,paramsCollectManifestId); - List prcdEoList = this.paramsReportConfigDataEOService.list(prcdQueryWrap); - if(CollectionUtils.isNotEmpty(prcdEoList)){ - List paramsConfigDataIdList = paramsConfigDataVOMap.entrySet().stream().map(e -> e.getKey().split("\\+")[0]).distinct().collect(Collectors.toList()); + if(count != 0 && StringUtils.isNotBlank(valueOldMsg) && StringUtils.isNotBlank(valueNewMsg) && !valueOldMsg.equals(valueNewMsg)){ + logCnContent.append("将"); + logEnContent.append(" set "); - List newAddPcdDataIdList = paramsConfigDataVOMap.entrySet().stream().map(e -> e.getKey()).filter(e -> { - boolean flag = false; - // 如果key的长度是16位,则是新添加的 - if (e.length() == 16) { - flag = true; - } - return flag; - }).distinct().collect(Collectors.toList()); + logCnContent.append(paramsReportConfigEO.getConfigName()).append("的"); + logEnContent.append(paramsReportConfigEO.getConfigName()+" "); - if(CollectionUtils.isNotEmpty(newAddPcdDataIdList)){ - StringBuilder dataValueSb = new StringBuilder(); - for (String newAddPcdDataId : newAddPcdDataIdList) { - List> configDataVOList = (List>) paramsConfigDataVOMap.get(newAddPcdDataId); - for (Map paramsConfigDataVO : configDataVOList) { - String type = (String) paramsConfigDataVO.get("type"); - - String dataValue = ""; - if(ObjectUtils.isNotEmpty(paramsConfigDataVO.get("dataValue"))){ - dataValue = String.valueOf(paramsConfigDataVO.get("dataValue")); - } - // 如果是附件 单独处理 - if(StringUtils.equals(type,ConfigDataTypeEnum.FILE.getValue())){ - - } - dataValueSb.append("\"").append(dataValue).append("\","); - } - } - - String dataValue = ""; - if(StringUtils.isNotBlank(dataValueSb.toString())){ - dataValue = dataValueSb.toString().substring(0,dataValueSb.length()-1); - } - - addLogCnContent.append("在").append(paramsReportConfigEO.getConfigName()).append("中添加了").append(dataValue).append(","); - addLogEnContent.append("在").append(paramsReportConfigEO.getConfigName()).append("中添加了").append(dataValue).append(","); - - addFlag = true; - } - - // 判断有没有被减掉的(删除的) - List deletePrcdEoList = prcdEoList.stream().filter(prcdEo -> { - boolean flag = true; - for (String paramsConfigDataId : paramsConfigDataIdList) { - if(StringUtils.equals(prcdEo.getId(),paramsConfigDataId)){ - flag = false; - break; - } - } - return flag; - }).collect(Collectors.toList()); - - // 如果有被删的数据 增加log记录 - if(CollectionUtils.isNotEmpty(deletePrcdEoList)){ - StringBuilder dataValueSb = new StringBuilder(); - for (ParamsReportConfigDataEO paramsReportConfigDataEO : deletePrcdEoList) { - if(StringUtils.isNotBlank(paramsReportConfigDataEO.getTextData())){ - dataValueSb.append("\"").append(paramsReportConfigDataEO.getTextData()).append("\","); - } - if(StringUtils.isNotBlank(paramsReportConfigDataEO.getPullData())){ - dataValueSb.append("\"").append(paramsReportConfigDataEO.getPullData()).append("\","); - } - if(StringUtils.isNotBlank(paramsReportConfigDataEO.getFileConnectId())){ - dataValueSb.append("\"").append(paramsReportConfigDataEO.getFileConnectId()).append("\","); - } - } - String dataValue = ""; - if(StringUtils.isNotBlank(dataValueSb.toString())){ - dataValue = dataValueSb.toString().substring(0,dataValueSb.length()-1); - } - deleteLogCnContent.append("在").append(paramsReportConfigEO.getConfigName()).append("中删除了").append(dataValue).append(","); - deleteLogEnContent.append("在").append(paramsReportConfigEO.getConfigName()).append("中删除了").append(dataValue).append(","); - - deleteFlag = true; - } + logCnContent.append(valueOldMsg+"改为"+valueNewMsg); + logEnContent.append(valueOldMsg+" to "+valueNewMsg); } - QueryWrapper removeConfigDataWrap = new QueryWrapper<>(); removeConfigDataWrap.lambda().eq(ParamsReportConfigDataEO::getParamsConfigId,paramsReportConfigEOId); removeConfigDataWrap.lambda().eq(ParamsReportConfigDataEO::getParamsCollectManifestId,paramsCollectManifestId); this.paramsReportConfigDataEOService.remove(removeConfigDataWrap); - - //******************这里是当前配置的循环结束了****************** - //判断结尾是不是该配置的名字--如果是(说明该配置没有被改变)需要从logCnContent中删除该配置名字 - //configNameCn = paramsReportConfigEO.getConfigName()+"的"; - //configNameEn = paramsReportConfigEO.getConfigName(); - String cnContent = logCnContent.toString(); - String enContent = logEnContent.toString(); - if(!configNameCn.isEmpty() && !configNameEn.isEmpty() - && cnContent.contains(configNameCn) && enContent.contains(configNameEn)){ - int cnStar = cnContent.length() - configNameCn.length(); - int enStar = enContent.length()-configNameEn.length(); - String logCnContentLast = logCnContent.substring(cnStar, logCnContent.length()); - String logEnContentLast = logEnContent.substring(enStar, logEnContent.length()); - - //logCnContent的最后是configName时 - if(logCnContentLast.equals(configNameCn) && logEnContentLast.equals(configNameEn)) { - logCnContent.delete(cnStar, cnContent.length() + 1); - logEnContent.delete(enStar,enContent.length()+1); - } - } } - - - if(changeFlag){ - ParamsReportDetailLogEO insertLogEO = new ParamsReportDetailLogEO(); - String ramarks = ""; - if(map.get("remarks") != null){ - ramarks = map.get("remarks").toString(); - } - int i = logCnContent.lastIndexOf(","); - insertLogEO.setLogCnContent(logCnContent.toString().substring(0, logCnContent.lastIndexOf(","))); - insertLogEO.setLogEnContent(logEnContent.toString().substring(0, logEnContent.lastIndexOf(","))); + ParamsReportDetailLogEO insertLogEO = new ParamsReportDetailLogEO(); + String ramarks = ""; + if(map.get("remarks") != null){ + ramarks = map.get("remarks").toString(); + } + if(!loginUser.getUsername().equals(logCnContent.toString()) && !loginUser.getUsername().equals(logEnContent.toString())){ + insertLogEO.setLogCnContent(logCnContent.toString().substring(0, logCnContent.length()-1)); + insertLogEO.setLogEnContent(logEnContent.toString().substring(0, logCnContent.length()-1)); insertLogEO.setParamsReportId(paramsManifestId); insertLogEO.setParamsReportDetailId(paramsCollectManifestId); insertLogEO.setRemarks(ramarks); insertLogEOList.add(insertLogEO); } - - if(deleteFlag){ - ParamsReportDetailLogEO insertLogEO = new ParamsReportDetailLogEO(); - String ramarks = ""; - if(map.get("remarks") != null){ - ramarks = map.get("remarks").toString(); - } - insertLogEO.setLogCnContent(deleteLogCnContent.toString().substring(0, deleteLogCnContent.lastIndexOf(","))); - insertLogEO.setLogEnContent(deleteLogEnContent.toString().substring(0, deleteLogEnContent.lastIndexOf(","))); - - insertLogEO.setParamsReportId(paramsManifestId); - insertLogEO.setParamsReportDetailId(paramsCollectManifestId); - insertLogEO.setRemarks(ramarks); - insertLogEOList.add(insertLogEO); - } - - if(addFlag){ - - ParamsReportDetailLogEO insertLogEO = new ParamsReportDetailLogEO(); - String ramarks = ""; - if(map.get("remarks") != null){ - ramarks = map.get("remarks").toString(); - } - insertLogEO.setLogCnContent(addLogCnContent.toString().substring(0, addLogCnContent.lastIndexOf(","))); - insertLogEO.setLogEnContent(addLogEnContent.toString().substring(0, addLogEnContent.lastIndexOf(","))); - - insertLogEO.setParamsReportId(paramsManifestId); - insertLogEO.setParamsReportDetailId(paramsCollectManifestId); - insertLogEO.setRemarks(ramarks); - insertLogEOList.add(insertLogEO); - } - - } // 批量更新 - if (CollectionUtil.isNotEmpty(updateDetailEOList)) { + if (CollectionUtil.isNotEmpty(updateDetailEOList)) {//编辑备注 paramsReportDetailEOService.updateBatchById(updateDetailEOList); } - if (CollectionUtil.isNotEmpty(insertLogEOList)) { + if (CollectionUtil.isNotEmpty(insertLogEOList)) {//更新历史 paramsReportDetailLogEOService.saveBatch(insertLogEOList); } return paramsReportConfigDataEOService.saveBatch(newConfigDataEOList);