diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index ea739fe22..dec5fd18d 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -436,4 +436,20 @@ ALTER TABLE `project_task_planning` -- 项目库-认证清单-认证目录 说明字段长度修改 2023-3-30 未同步生产环境 ALTER TABLE `project_certification_directory` - MODIFY COLUMN `explain_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`; \ No newline at end of file + MODIFY COLUMN `explain_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`; + +-- 项目库-法规清单-定版表增加字段 2023-3-30 未同步生产环境 +ALTER TABLE `project_version_info` + MODIFY COLUMN `inventory_affirm_status` varchar(100) CHARACTER SET utf32 NULL DEFAULT NULL COMMENT '清单确认状态' AFTER `task_affirm_status`, + ADD COLUMN `design_flow_status` varchar(255) NULL COMMENT '设计符合性确认-流程状态' AFTER `inventory_affirm_status`, + ADD COLUMN `verify_flow_status` varchar(255) NULL COMMENT '验证符合性确认-流程状态' AFTER `design_flow_status`; + +-- 项目库-法规清单-定版表增加字段 2023-3-30 未同步生产环境 +ALTER TABLE `project_version_info` + ADD COLUMN `project_laws_inventory_id` varchar(255) NULL COMMENT '法规清单数据id' AFTER `verify_flow_status`; +ALTER TABLE `project_version_info` + ADD COLUMN `applicable_supplement` varchar(255) NULL COMMENT '适用增补件' AFTER `project_laws_inventory_id`; + +-- 虚拟认证清单-增加字段 2023-3-30 未同步生产环境 +ALTER TABLE `auth_dummy_inventory_info` + ADD COLUMN `deliverable_template` varchar(500) NULL COMMENT '交付物模板' AFTER `auth_dummy_inventory_base_id`; \ No newline at end of file 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 fdda05dd9..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; // 交付物类型名称-英文 @@ -134,4 +134,12 @@ public class AuthDummyInventoryInfoEO implements Serializable { /**值类型,对应SysCategoryValueTypeEnum中value**/ @TableField(exist = false) private String valueType; + + /**交付物模板*/ + @ApiModelProperty(value = "交付物模板") + private String deliverableTemplate; + /**交付物模板名称**/ + @TableField(exist = false) + @Excel(name = "交付物模板", width = 20) + private String deliverableTemplateName; } 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 b72277131..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,8 +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; @@ -40,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; @@ -61,6 +66,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.*; @@ -151,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删除 * @@ -222,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; } @@ -444,9 +804,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl 1){ @@ -658,43 +1018,6 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl 1) { dataList.add(rowList); } @@ -735,6 +1058,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); } @@ -890,6 +1264,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(); @@ -939,9 +1357,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); } @@ -1120,6 +1538,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl list = Arrays.asList(title.split(",")); int index = 0; @@ -1241,7 +1661,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList = this.sysCategoryService.list(); List sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); + String deliverableTemplates = datas.stream().map(AuthDummyInventoryInfoEO::getDeliverableTemplate).distinct().collect(Collectors.joining(",")); + List deliverableTemplateFileList = iOSSFileService.getFileInfos(deliverableTemplates); for (AuthDummyInventoryInfoEO data : datas) { if(StringUtils.isNotEmpty(data.getDeliverableType())){ @@ -1312,6 +1734,20 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl { + boolean flag = false; + for (String deliverableTemplate : deliverableTemplateArr) { + if (StringUtils.equals(file.getId(),deliverableTemplate)) { + flag = true; + break; + } + } + return flag; + }).map(OSSFile::getFileName).collect(Collectors.joining(",")); + data.setDeliverableTemplateName(deliverableTemplateName); + } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index bc43e2ea1..7040c192e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -5495,12 +5495,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl 1) { - resultMap = validatePull(configMap.get(key), controlValues, value.split("#")[1], isMust, true, cut); + resultMap = validatePull(configMap.get(key), controlValues, value.split("#")[0], isMust, true, cut); errorMsg += (String) resultMap.get("errorMsg"); countError += (int) resultMap.get("countError"); configDataEO.setPullData(value.split("#")[1]); - resultMap = validateText(configMap.get(key), controlVerify, value.split("#")[0], ParamsIsMustEnum.NO.getValue(), "1000", cut); + resultMap = validateText(configMap.get(key), controlVerify, value.split("#")[1], ParamsIsMustEnum.NO.getValue(), "1000", cut); errorMsg += (String) resultMap.get("errorMsg"); countError += (int) resultMap.get("countError"); configDataEO.setTextData(value.split("#")[0]); @@ -5574,12 +5574,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl 1) { - resultMap = validatePull(configMap.get(key), controlValues, value.split("#")[1], isMust, false, cut); + resultMap = validatePull(configMap.get(key), controlValues, value.split("#")[0], isMust, false, cut); errorMsg += (String) resultMap.get("errorMsg"); countError += (int) resultMap.get("countError"); configDataEO.setPullData(value.split("#")[1]); - resultMap = validateText(configMap.get(key), controlVerify, value.split("#")[0], ParamsIsMustEnum.NO.getValue(), "1000", cut); + resultMap = validateText(configMap.get(key), controlVerify, value.split("#")[1], ParamsIsMustEnum.NO.getValue(), "1000", cut); errorMsg += (String) resultMap.get("errorMsg"); countError += (int) resultMap.get("countError"); configDataEO.setTextData(value.split("#")[0]); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/controller/BussDocumentLibraryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/controller/BussDocumentLibraryEOController.java index b0e836ff3..c27c46e44 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/controller/BussDocumentLibraryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/controller/BussDocumentLibraryEOController.java @@ -288,6 +288,14 @@ public class BussDocumentLibraryEOController extends JeroController>> getMenuList(@RequestParam(name="id",required=true) String id, + @RequestParam(name="cut",required=true) String cut) { + List> list = bussDocumentLibraryEOService.getMenuList(id,cut); + return Result.OK(list); + } + /** * 新增数据 * @param map diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java index 562e2337b..5a3989602 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/IBussDocumentLibraryEOService.java @@ -98,6 +98,7 @@ public interface IBussDocumentLibraryEOService extends IService> getInfoById(String id, String cut); + List> getMenuList(String id, String cut); /** * 新增数据 * diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index c12829455..03805e41e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -1030,6 +1030,53 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> getMenuList(String id, String cut) { + //字段属性 + List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); + //标准选择字段 + List standardOnlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List standFieldList = standardOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + List> result = new ArrayList<>(); // 要返回的结果 + + //区域管理 + OnlCgformArea onlCgformArea = new OnlCgformArea(); + onlCgformArea.setIsModel(ModuleEnum.DOCUMENT_LIBRARY.getValue()); + List areaList = onlCgformAreaServiceImpl.queryList(onlCgformArea); + + for (OnlCgformArea onlCgformAreaTemp : areaList) { + String areaName = ""; + if (CutEnum.CN.getValue().equals(cut)) { + areaName = onlCgformAreaTemp.getShowArea(); + } else { + areaName = onlCgformAreaTemp.getEnName(); + } + Map menuMap = new HashMap<>(); + menuMap.put("name",areaName); + result.add(menuMap); + List fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList()); + for (OnlCgformField onlCgformField : fieldListTemp) { + //字段 + String dbFieldName = onlCgformField.getDbFieldName(); + //字段类型 + String fieldShowType = onlCgformField.getFieldShowType(); + + if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) { + Map menuMap1 = new HashMap<>(); + menuMap1.put("pname",areaName); + if (CutEnum.CN.getValue().equals(cut)) { + menuMap1.put("name",onlCgformField.getDbFieldTxt()); + } else { + menuMap1.put("name",onlCgformField.getDbFieldEnName()); + } + result.add(menuMap1); + } + } + } + return result; + } + /** * 详情数据查询 * @@ -1098,7 +1145,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl表单是否显示0否 1是) fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(StringUtils.valueOf(e.getIsShowForm()))).collect(Collectors.toList()); } - for (OnlCgformArea onlCgformAreaTemp : areaList) { String areaName = ""; if (CutEnum.CN.getValue().equals(cut)) { @@ -1161,61 +1207,31 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl mapNew = new HashMap<>(); + List> listVal = new ArrayList<>(); List fileInfos = iOSSFileService.getFileInfosByConnectId(value); //多文件处理 - if (fileInfos.size() > 1) { - if (fileInfos.size() != 0) { - int i = 0; - for (OSSFile fileInfo : fileInfos) { - if (i == 0) { - Map mapNew = new HashMap<>(); - mapNew.put("value", fileInfo); - mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName, null); - mapNew.put("count", fileInfos.size()); - // 添加标准分解单跳转 - List infoEOList = sarFileSplitInfoService.queryByFileId(fileInfo.getId()); - if (CollectionUtil.isNotEmpty(infoEOList)) { - mapNew.put("splitFlag", 1); - mapNew.put("splitInfoId", infoEOList.get(0).getId()); - } else{ - mapNew.put("splitFlag", 0); - } - - resultTemp.add(mapNew); - i++; - } else { - Map mapNew = new HashMap<>(); - mapNew.put("value", fileInfo); - mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName, null); - // 添加标准分解单跳转 - List infoEOList = sarFileSplitInfoService.queryByFileId(fileInfo.getId()); - if (CollectionUtil.isNotEmpty(infoEOList)) { - mapNew.put("splitFlag", 1); - mapNew.put("splitInfoId", infoEOList.get(0).getId()); - } else{ - mapNew.put("splitFlag", 0); - } - resultTemp.add(mapNew); - } - } - } - } else if (fileInfos.size() == 1) { - //单个文件处理 - Map mapNew = new HashMap<>(); - mapNew.put("count", fileInfos.size()); - mapNew.put("value", fileInfos.get(0)); + if(ObjectUtils.isNotEmpty(fileInfos)){ mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName, null); - // 添加标准分解单跳转 - List infoEOList = sarFileSplitInfoService.queryByFileId(fileInfos.get(0).getId()); - if (CollectionUtil.isNotEmpty(infoEOList)) { - mapNew.put("splitFlag", 1); - mapNew.put("splitInfoId", infoEOList.get(0).getId()); - } else{ - mapNew.put("splitFlag", 0); + for (OSSFile fileInfo : fileInfos) { + Map mapValue = new HashMap<>(); + mapValue.put("id",fileInfo.getId()); + mapValue.put("fileName",fileInfo.getFileName()); + List infoEOList = sarFileSplitInfoService.queryByFileId(fileInfo.getId()); + // 添加标准分解单跳转 + if (CollectionUtil.isNotEmpty(infoEOList)) { + mapValue.put("splitFlag", 1); + mapValue.put("splitInfoId", infoEOList.get(0).getId()); + } else{ + mapValue.put("splitFlag", 0); + } + listVal.add(mapValue); } - resultTemp.add(mapNew); } + mapNew.put("value", listVal); + resultTemp.add(mapNew); } else { Map mapNew = new HashMap<>(); mapNew.put("value", ""); @@ -1973,11 +1989,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl add(@Validated @RequestBody OtaBaCxJbxx otaBaCxJbxx) { - OtaBaCxJbxx res = otaBaCxJbxxService.add(otaBaCxJbxx); + OtaBaCxJbxx res; + try { + res = otaBaCxJbxxService.add(otaBaCxJbxx); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(e.getMessage()); + } return Result.OK(res); } @@ -197,6 +203,7 @@ public class OtaBaCxJbxxController extends JeroController importData(@RequestParam(value = "file", required = false) MultipartFile file, @RequestParam(value = "cut", required = false) String cut) throws Exception { StringBuilder errMsg = new StringBuilder(); - errMsg.append("导入成功! 提示信息:"); + errMsg.append("导入成功! "); try { this.otaBaCxListService.importData(file, cut, errMsg); } catch (Exception e) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaCxZxsjyqController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaCxZxsjyqController.java index d43f3164e..deb7099f1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaCxZxsjyqController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaCxZxsjyqController.java @@ -198,6 +198,7 @@ public class OtaBaCxZxsjyqController extends JeroController importData(@RequestParam(value = "file", required = false) MultipartFile file, @RequestParam(value = "cut", required = false) String cut) throws Exception { StringBuilder errMsg = new StringBuilder(); + errMsg.append("导入成功!"); try { this.otaBaSjListService.importData(file, cut, errMsg); } catch (Exception e) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjfzbhController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjfzbhController.java index 53b0b05ee..3b147c89d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjfzbhController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjfzbhController.java @@ -201,6 +201,7 @@ public class OtaBaSjSjfzbhController extends JeroController { * @param otaBaCxJbxx * @return */ - OtaBaCxJbxx add(OtaBaCxJbxx otaBaCxJbxx); + OtaBaCxJbxx add(OtaBaCxJbxx otaBaCxJbxx) throws Exception; /** * 更新 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaCxSjmkService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaCxSjmkService.java index 0fb43b158..fd3877699 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaCxSjmkService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaCxSjmkService.java @@ -52,6 +52,7 @@ public interface IOtaBaCxSjmkService extends IService { */ OtaBaCxSjmk queryById(String id); + List setDefault(String otaId); List queryByOtaId(String otaId); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java index 2b36d28d4..cbb45b9b1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJbxxServiceImpl.java @@ -62,7 +62,16 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl xxList = this.list(); + for (OtaBaCxJbxx xx : xxList) { + if (ggpc.equals(xx.getGgpc())) { + throw new JeroBootException("公告批次重复"); + } + } + } //对比填写记录用的 OtaBaCxJbxx otaBaCxJbxxOld = new OtaBaCxJbxx(); Date now = new Date(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java index 8aa311690..2db0da522 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java @@ -80,6 +80,9 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl oldList = OtaBaCxSjmkService.queryByOtaId(otaId); + if (ObjectUtils.isEmpty(oldList)) { + oldList = OtaBaCxSjmkService.setDefault(otaId); + } OtaBaCxSjmkService.deleteByOtaId(otaId); JSONArray kzq = json.getJSONArray("kzq"); List sjmkList = parseKzqData(kzq, otaId); @@ -232,6 +235,9 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl(); - } ComparisonUtil cu = new ComparisonUtil(); List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KZXSJDJSFZGNMCYCS, OtaTitleEnum.GNMC.getName(), oldList, newList, sysDictService); saveOrUpdateBatch(newList); @@ -303,11 +300,11 @@ public class OtaBaCxKsjjsmccsServiceImpl extends ServiceImpl setDefault(String otaId) { + Date now = new Date(); + List res = new ArrayList<>(); + String[] titles = {"车端OTA升级功能模块"}; + for (String t : titles) { + OtaBaCxSjmk cs = new OtaBaCxSjmk(); + cs.setOtaId(otaId); + cs.setBjmc(t); + cs.setCreateTime(now); + cs.setId(UUID.randomUUID().toString().replace("-", "")); + res.add(cs); + } + saveBatch(res); + return res; + } + @Override public List queryByOtaId(String otaId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(OtaBaCxSjmk::getOtaId, otaId); List list = this.list(queryWrapper); + if (ObjectUtils.isEmpty(list)) { + list = setDefault(otaId); + } return list; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java index 737870be8..15aa77856 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ComparisonUtil.java @@ -62,13 +62,13 @@ public class ComparisonUtil { } public OtaBaCxTxjl addAttRecord(String otaId, OtaModuleEnum otaModuleEnum, String title, String attName) { - String content = title + "中添加了附件:'" + attName; + String content = title + "中添加了附件:'" + attName + ","; OtaBaCxTxjl jl = new OtaBaCxTxjl(otaId, otaModuleEnum.getName(), content); return jl; } public OtaBaCxTxjl delAttRecord(String otaId, OtaModuleEnum otaModuleEnum, String title, String attName) { - String content = title + "中删除了附件:'" + attName; + String content = title + "中删除了附件:'" + attName + ","; OtaBaCxTxjl jl = new OtaBaCxTxjl(otaId, otaModuleEnum.getName(), content); return jl; } @@ -178,8 +178,8 @@ public class ComparisonUtil { } public void checkAttError(String[] strs, StringBuilder errMsg, String title, String cut) { - for (String str:strs) { - if(!str.endsWith(".doc")&&!str.endsWith(".docx")&&!str.endsWith(".pdf")&&!str.endsWith(".DOC")&&!str.endsWith(".DOCX")&&!str.endsWith(".PDF")){ + for (String str : strs) { + if (!str.endsWith(".doc") && !str.endsWith(".docx") && !str.endsWith(".pdf") && !str.endsWith(".DOC") && !str.endsWith(".DOCX") && !str.endsWith(".PDF")) { errMsg.append(title + " 支持doc/docx/pdf格式 , "); } } @@ -203,8 +203,13 @@ public class ComparisonUtil { errMsg.append(title + " 的长度超过了 " + ote.getLen() + ", "); field.set(clazz, ""); } + } else if ("1".equals(ote.getType())) { + if (!"1".equals(str) && !"2".equals(str)) { + errMsg.append(title + " 必须填写有或无 , "); + field.set(clazz, ""); + } } else if ("2".equals(ote.getType())) { - if (!"是".equals(str) && !"否".equals(str)) { + if (!"1".equals(str) && !"2".equals(str)) { errMsg.append(title + " 必须填写是或否 , "); field.set(clazz, ""); } @@ -213,7 +218,7 @@ public class ComparisonUtil { } else { String[] strs = str.split(","); for (String s : strs) { - String res = sysDictService.queryDictItemByValue(ote.getType(), s, cut); + String res = sysDictService.queryDictTextByKeyEn(ote.getType(), s, cut); if (StringUtils.isEmpty(res)) { errMsg.append(title + " 填写了无法识别的选项 , "); field.set(clazz, ""); @@ -285,6 +290,14 @@ public class ComparisonUtil { if (ObjectUtils.isNotEmpty(newVal)) { res = newVal.toString(); } + } else if ("1".equals(ote.getType())) { + if (ObjectUtils.isNotEmpty(newVal)) { + if ("1".equals(newVal.toString())) { + res = "有"; + } else if ("2".equals(newVal.toString())) { + res = "无"; + } + } } else if ("2".equals(ote.getType())) { if (ObjectUtils.isNotEmpty(newVal)) { if ("1".equals(newVal.toString())) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java index 9d05199bb..549ca6f99 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java @@ -155,7 +155,7 @@ public class ImportFileUtil { return ""; } - public static Integer getCellValueYesOrNoInt(Cell cell, Workbook workbook) throws Exception { + public static Integer getCellValueHaveOrNotInt(Cell cell, Workbook workbook) throws Exception { Integer res = null; String str = getCellValueYesOrNo(cell, workbook); if (StringUtils.isNotEmpty(str)) { @@ -164,6 +164,32 @@ public class ImportFileUtil { return res; } + + public static String getCellValueHaveOrNot(Cell cell, Workbook workbook) throws Exception { + String res = ""; + String str = getCellValue(cell, workbook); + if (StringUtils.isNotEmpty(str)) { + if (str.equals("有")) { + res = "1"; + } else if (str.equals("无")) { + res = "2"; + } + } + return res; + } + + public static String getCellValueHaveOrNotInt(Integer val) throws Exception { + String res = ""; + if (ObjectUtils.isNotEmpty(val)) { + if (val.equals(1)) { + res = "有"; + } else if (val.equals(2)) { + res = "无"; + } + } + return res; + } + public static String getCellValueYesOrNo(Cell cell, Workbook workbook) throws Exception { String res = ""; String str = getCellValue(cell, workbook); @@ -189,6 +215,18 @@ public class ImportFileUtil { return res; } + public static String getCellValueHaveOrNot(String str) throws Exception { + String res = ""; + if (StringUtils.isNotEmpty(str)) { + if (str.equals("1")) { + res = "有"; + } else if (str.equals("2")) { + res = "无"; + } + } + return res; + } + public static String getCellValueYesOrNo(String str) throws Exception { String res = ""; if (StringUtils.isNotEmpty(str)) { 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/entity/ProjectVersionInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java index 2f4889a22..698eea852 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectVersionInfoEO.java @@ -271,7 +271,7 @@ public class ProjectVersionInfoEO implements Serializable { /**设计符合性确认-责任人名称*/ @TableField(exist = false) - private String designDutyName; + private String designDutyIdName; /**prehomo确认-发起人名称*/ @@ -288,7 +288,7 @@ public class ProjectVersionInfoEO implements Serializable { /**验证符合性确认-责任人名称*/ @TableField(exist = false) - private String verifyDutyName; + private String verifyDutyIdName; @@ -329,4 +329,32 @@ public class ProjectVersionInfoEO implements Serializable { private String verifyDeliverableTemplateName; + /**设计符合性确认-流程状态*/ + @ApiModelProperty(value = "设计符合性确认-流程状态") + private String designFlowStatus; + @TableField(exist = false) + @Excel(name = "流程状态", width = 20,groupName = "设计符合性确认") + private String designFlowStatusName; + + /**验证符合性确认-流程状态*/ + @ApiModelProperty(value = "验证符合性确认-流程状态") + private String verifyFlowStatus; + @TableField(exist = false) + @Excel(name = "流程状态", width = 20,groupName = "验证符合性确认") + private String verifyFlowStatusName; + + /**验证符合性确认-流程实例id*/ + @TableField(exist = false) + private String verifyPId; + + /**设计符合性确认-流程实例id*/ + @TableField(exist = false) + private String designPId; + + @ApiModelProperty(value = "法规清单数据id") + private String projectLawsInventoryId; + + /**适用增补件*/ + @ApiModelProperty(value = "适用增补件") + private java.lang.String applicableSupplement; } 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 404055c17..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 @@ -1,5 +1,8 @@ package com.jero.modules.project.service.impl; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -20,6 +23,8 @@ import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; import com.jero.modules.authDummy.service.IAuthDummyInventoryBaseEOService; import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService; +import com.jero.modules.cert.template.vo.ParamsInfoCnImport; +import com.jero.modules.cert.template.vo.ParamsInfoEnImport; import com.jero.modules.document.controller.BussDocumentLibraryEOController; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper; @@ -61,6 +66,7 @@ import org.apache.commons.io.FileUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.shiro.SecurityUtils; import org.aspectj.util.FileUtil; @@ -183,6 +189,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl flowStatusList = new ArrayList<>(); flowStatusList.add(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); + flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); QueryWrapper certificationQueryWrap = new QueryWrapper<>(); certificationQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getId,projectCertificationInventoryEO.getId()); @@ -205,6 +212,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl userIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")); List userInfoList = this.sysUserService.querySysUserListByIdList(userIdList); + editEndTimeCertificationInventoryEOS.get(0).setEndTime(projectCertificationInventoryEO.getEndTime()); + this.sendMessageByTemplateId( editEndTimeCertificationInventoryEOS, TemplateInfoEnum2.CERTIFICATION_MESSAGE14.getValue(), @@ -255,6 +264,46 @@ public class ProjectCertificationInventoryEOServiceImpl 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())) { @@ -1025,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) { @@ -1308,6 +1357,17 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl dutyPersonIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList()); List dutyPersonList = this.sysUserService.querySysUserListByIdList(dutyPersonIdList); try { + // 给责任人分配待办中心的任务 + List processInfoDetailEOList = new ArrayList<>(); + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(projectCertificationInventoryEO.getDutyPerson()); + processInfoDetailEO.setEndTime(projectCertificationInventoryEO.getEndTime()); + processInfoDetailEO.setProjectLawsInventoryId(projectCertificationInventoryEO.getId()); + processInfoDetailEOList.add(processInfoDetailEO); + } + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRTJRW.getKey()); + // 更新数据状态为 审查退回 this.updateBatchById(projectCertificationInventoryEOList); @@ -1491,7 +1551,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList()); // 将当前责任人的待办任务转为已办 LambdaUpdateWrapper detailUpdateWrap = new LambdaUpdateWrapper<>(); detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId()); detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey()); + detailUpdateWrap.in(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList); detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue()); this.processInfoDetailEOService.update(detailUpdateWrap); @@ -2741,13 +2803,13 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 1) { dataList.add(rowList); } @@ -2971,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) { @@ -3079,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 = ""; @@ -3243,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); } } -// else{ -// String message = ""; -// if(CutEnum.CN.getValue().equals(projectCertificationInventoryEOTemp.getCut())){ -// message = errorMsg + "截止时间不能为空, "; -// }else{ -// message = errorMsg + " The Due Date Type cannot null, "; -// } -// msgList.add(message); -// } } return msgList; @@ -3351,29 +3337,37 @@ 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); +// String fieldStr = sdf.format(field); + Date now1 = null; + Date field1 = null; + try { + if(!field.contains("-")){ + field = DateUtils.coverDate(field); } - msgList.add(errorMsg); + 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); + } + } catch (ParseException e) { + e.printStackTrace(); } - } catch (ParseException e) { - e.printStackTrace(); } } return flag; @@ -3458,9 +3452,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); } @@ -3635,13 +3629,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()); +// } +// } } } @@ -3690,29 +3685,40 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl list = Arrays.asList(title.split(",")); @@ -3992,7 +3998,11 @@ 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); +// 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); +// projectRelatedPersonnelService.editById(projectRelatedPersonnel); } } } + this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList); //翻译-中文 @@ -9649,62 +9646,61 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectLawsInventoryEOList = this.baseMapper.selectList(lawsInventoryEOQueryWrapper); - // 只有studio催办的时候,才会给法规工程师发消息 - if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_STUDIO_EXPEDITING.getValue())){ - // 如果设计符合性或验证符合性流程状态其中一个为 清单待校核,催办时就需要给这一条数据的法规工程师发消息 - List toBeCheckedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { - boolean flag =false; - if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) - || StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ - flag = true; - } - return flag; - }).collect(Collectors.toList()); - - if(CollectionUtils.isNotEmpty(toBeCheckedLawsInventoryList)){ - Map> regulationOwnerGroupMap = toBeCheckedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getRegulationOwnerId)); - for (Map.Entry> regulationOwnerMap : regulationOwnerGroupMap.entrySet()) { - String regulationOwnerId = regulationOwnerMap.getKey(); - List lawsInventoryEOList = regulationOwnerMap.getValue(); - if(StringUtils.isEmpty(regulationOwnerId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ - continue; - } - - this.lawsInventoryEOListSortByInventoryAffirmDueDate(lawsInventoryEOList); - Date inventoryAffirmDueDate = lawsInventoryEOList.get(0).getInventoryAffirmDueDate(); - String endTime = ""; - if(inventoryAffirmDueDate != null){ - endTime = DateUtils.formatDate(inventoryAffirmDueDate); - } - String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); - - List userIdList = Arrays.asList(regulationOwnerId.split(",")); - // 给法规工程师发消息 - Map params = new HashMap<>(); - params.put("contentCn","您好,请及时校核法规清单内容并发起符合性流程,谢谢!"); - params.put("contentEn","Please check the content of the regulation list and initiate the compliance process in a timely manner. Thank you!"); - params.put("projectLibraryId",projectLibraryId); - params.put("endTime",endTime); - params.put("userIdList",userIdList); - params.put("serialNumbers",serialNumbers); - - ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); - String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 - String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 - // 获取法规清单 - 飞书跳转链接 - Map hrefFeishuMap = this.getProjectLawsInventoryLinkHrefFeishu(projectLibraryBase.getId(), PRN_CN,PRN_EN); - params.put("hrefFeishu_CN",(String)hrefFeishuMap.get("hrefFeishu_CN")); - params.put("hrefFeishu_EN",(String)hrefFeishuMap.get("hrefFeishu_EN")); - params.put("Initiator",projectLibraryBase.getStudioEngineerName()); - - this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE1.getValue(),params); - } - } - } - // 催办类型 可以只催设计符合性 也可以只催验证符合性 String expeditingType = json.getString("expeditingType"); if(StringUtils.contains(expeditingType,OperatorTypeEnum.LAWS_INVENTORY_DESIGN_EXPEDITING.getValue())){ + // 只有studio催办的时候,才会给法规工程师发消息 + if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_STUDIO_EXPEDITING.getValue())){ + // 如果设计符合性流程状态为 清单待校核,催办时就需要给这一条数据的法规工程师发消息 + List toBeCheckedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(toBeCheckedLawsInventoryList)){ + Map> regulationOwnerGroupMap = toBeCheckedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getRegulationOwnerId)); + for (Map.Entry> regulationOwnerMap : regulationOwnerGroupMap.entrySet()) { + String regulationOwnerId = regulationOwnerMap.getKey(); + List lawsInventoryEOList = regulationOwnerMap.getValue(); + if(StringUtils.isEmpty(regulationOwnerId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + + this.lawsInventoryEOListSortByInventoryAffirmDueDate(lawsInventoryEOList); + Date inventoryAffirmDueDate = lawsInventoryEOList.get(0).getInventoryAffirmDueDate(); + String endTime = ""; + if(inventoryAffirmDueDate != null){ + endTime = DateUtils.formatDate(inventoryAffirmDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(regulationOwnerId.split(",")); + // 给法规工程师发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请及时校核法规清单内容并发起符合性流程,谢谢!"); + params.put("contentEn","Please check the content of the regulation list and initiate the compliance process in a timely manner. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 + String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 + // 获取法规清单 - 飞书跳转链接 + Map hrefFeishuMap = this.getProjectLawsInventoryLinkHrefFeishu(projectLibraryBase.getId(), PRN_CN,PRN_EN); + params.put("hrefFeishu_CN",(String)hrefFeishuMap.get("hrefFeishu_CN")); + params.put("hrefFeishu_EN",(String)hrefFeishuMap.get("hrefFeishu_EN")); + params.put("Initiator",projectLibraryBase.getStudioEngineerName()); + + this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE1.getValue(),params); + } + } + } + // 催办设计符合性流程状态为 清单待确认的 责任人 List toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { boolean flag =false; @@ -9809,6 +9805,58 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl toBeCheckedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(toBeCheckedLawsInventoryList)){ + Map> regulationOwnerGroupMap = toBeCheckedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getRegulationOwnerId)); + for (Map.Entry> regulationOwnerMap : regulationOwnerGroupMap.entrySet()) { + String regulationOwnerId = regulationOwnerMap.getKey(); + List lawsInventoryEOList = regulationOwnerMap.getValue(); + if(StringUtils.isEmpty(regulationOwnerId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + + this.lawsInventoryEOListSortByInventoryAffirmDueDate(lawsInventoryEOList); + Date inventoryAffirmDueDate = lawsInventoryEOList.get(0).getInventoryAffirmDueDate(); + String endTime = ""; + if(inventoryAffirmDueDate != null){ + endTime = DateUtils.formatDate(inventoryAffirmDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(regulationOwnerId.split(",")); + // 给法规工程师发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请及时校核法规清单内容并发起符合性流程,谢谢!"); + params.put("contentEn","Please check the content of the regulation list and initiate the compliance process in a timely manner. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 + String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 + // 获取法规清单 - 飞书跳转链接 + Map hrefFeishuMap = this.getProjectLawsInventoryLinkHrefFeishu(projectLibraryBase.getId(), PRN_CN,PRN_EN); + params.put("hrefFeishu_CN",(String)hrefFeishuMap.get("hrefFeishu_CN")); + params.put("hrefFeishu_EN",(String)hrefFeishuMap.get("hrefFeishu_EN")); + params.put("Initiator",projectLibraryBase.getStudioEngineerName()); + + this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE1.getValue(),params); + } + } + } + // 催办验证符合性流程状态为 清单待确认的 责任人 List toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { boolean flag =false; @@ -10148,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 3b8b077e0..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())){ + 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); + engineerAttSetUsers = sysUserMapper.selectList(userqueryWrapper); + } + if(CollectionUtils.isNotEmpty(engineerAttSetUsers)) { + String engineerAttSetId = projectRelatedPersonnel.getEngineerAttSet(); + String engineerAttSetName = null; + 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(",")); + } + AttSetName.append(engineerAttSetName).append(","); + } + projectRelatedPersonnel.setEngineerAttSetName(AttSetName.substring(0,AttSetName.toString().length()-1)); + } + } } } @@ -564,7 +617,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; @@ -589,7 +641,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl processInfoDetailEOQueryWrapper = new QueryWrapper<>(); + processInfoDetailEOQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProjectLawsInventoryId,projectVersionInfoEO.getProjectLawsInventoryId()); + processInfoDetailEOQueryWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType, FlowTypeEnum.YZFHXSCLC.getValue()); + List processInfoDetailEOS = this.processInfoDetailEOService.list(processInfoDetailEOQueryWrapper); + if(CollectionUtils.isNotEmpty(processInfoDetailEOS)){ + projectVersionInfoEO.setVerifyPId(processInfoDetailEOS.get(0).getActiProcInstId()); + } + } + if(!StringUtils.equals(projectVersionInfoEO.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + ||!StringUtils.equals(projectVersionInfoEO.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + QueryWrapper processInfoDetailEOQueryWrapper = new QueryWrapper<>(); + processInfoDetailEOQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProjectLawsInventoryId,projectVersionInfoEO.getProjectLawsInventoryId()); + processInfoDetailEOQueryWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.SJFHXSHLC.getValue()); + List processInfoDetailEOS = this.processInfoDetailEOService.list(processInfoDetailEOQueryWrapper); + if(CollectionUtils.isNotEmpty(processInfoDetailEOS)){ + projectVersionInfoEO.setDesignPId(processInfoDetailEOS.get(0).getActiProcInstId()); + } + } } List sysUsers = new ArrayList<>(); @@ -259,7 +297,7 @@ public class ProjectVersionInfoEOServiceImpl extends ServiceImpl designDutyId.equals(e.getId())). map(SysUser::getUsername).collect(Collectors.joining(",")); - projectVersionInfoEO.setDesignDutyName(designDutyName); + projectVersionInfoEO.setDesignDutyIdName(designDutyName); } //prehomo确认 @@ -291,7 +329,7 @@ public class ProjectVersionInfoEOServiceImpl extends ServiceImpl verifyDutyId.equals(e.getId())). map(SysUser::getUsername).collect(Collectors.joining(",")); - projectVersionInfoEO.setVerifyDutyName(verifyDutyName); + projectVersionInfoEO.setVerifyDutyIdName(verifyDutyName); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml index 12b8435a6..d19e6b2bd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml @@ -64,6 +64,7 @@ pi.status, pi.prc_num, pi.prc_name, + pi.create_time, plb.project_name_id, plb.target_market, plb.studio_engineer, @@ -106,7 +107,7 @@ ) temp - order by temp.end_time desc + order by temp.create_time desc