diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 8e78d8f34..9f052808b 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -27,3 +27,8 @@ ALTER TABLE `laws_weilai`.`params_manifest_history` ADD COLUMN `project_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关项目版本' AFTER `params_template_name`, ADD COLUMN `explanation` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `project_version`; +-- 认证参数历史列表添加字段--------2022-11-23 未同步生产环境 +ALTER TABLE `laws_weilai`.`params_manifest` + ADD COLUMN `project_version_id` varchar(50) NULL COMMENT '项目相关版本对应的项目id' AFTER `explanation`; +ALTER TABLE `laws_weilai`.`params_manifest_history` + ADD COLUMN `project_version_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目相关版本对应的项目id' AFTER `explanation`; \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java index 4c73955ec..d4b022ffa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/entity/ParamsManifestEO.java @@ -103,10 +103,13 @@ public class ParamsManifestEO implements Serializable { @TableField(exist = false) private String projectName; - //相关项目版本 + @ApiModelProperty(value = "相关项目版本") private String projectVersion; - //说明 + @ApiModelProperty(value = "说明") private String explanation; + @ApiModelProperty(value = "项目相关版本对应的项目id") + private String projectVersionId; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index a8fc7249b..9e9dbf9ef 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -18,6 +18,7 @@ + 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 0c2a23c82..1fcb5be55 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 @@ -49,6 +49,7 @@ import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; +import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.common.ReadExcel; @@ -147,6 +148,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsInfoPublishEOList = paramsCollectManifestVO.getParamsInfoPublishEOList(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId); // 复制参数项 List paramsCollectManifestEOList = new ArrayList<>(); @@ -192,7 +196,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl> querySdtList(ParamsCollectManifestVO paramsCollectManifestVO) { + // 根据主项目ID 查询 相关项目版本的项目ID + String projectVersionId = projectLibraryBaseService.getIdByVersionAndParentId(paramsCollectManifestVO.getProjectVersion(), paramsCollectManifestVO.getProjectId()); + List> sdtList = new ArrayList<>(); - ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsCollectManifestVO.getProjectId(), paramsCollectManifestVO.getDutyTerritory()); + ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectVersionId, paramsCollectManifestVO.getDutyTerritory()); if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) { String sdtIds = projectRelatedPersonnel.getEngineeringInterfacePerson(); if (StringUtils.isNotBlank(sdtIds)) { @@ -1075,15 +1081,30 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl> userTypeList = new ArrayList<>(); // 一个用户可以有多个用户类型 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 - // 查询项目下所有责任领域下的 homo人员 - List projectLibraryBaseList = projectLibraryBaseMapper.queryById(projectId); - List homoList = new ArrayList<>(); + + List projectLibraryBaseList = projectLibraryBaseService.getParentAndChildern(projectId); + List homoList = new ArrayList<>(); //homo人员 + List studioList = new ArrayList<>(); //studio人员 if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) { - String homoIdStr = projectLibraryBaseList.get(0).getCertificationEngineer(); - if (StringUtils.isNotEmpty(homoIdStr)) { - List homoIdList = Arrays.asList(homoIdStr.split(",")).stream().distinct().collect(Collectors.toList()); - homoList = sysUserService.listByIds(homoIdList).stream().map(SysUser::getUsername).collect(Collectors.toList()); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) { + // 查询主项目及子项目下所有 homo人员 + List homoIdList1 = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")).stream().collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(homoIdList1)) { + homoList.addAll(sysUserService.listByIds(homoIdList1).stream().map(SysUser::getUsername).collect(Collectors.toList())); + } + + // 查询当前登录用户角色 是否是当前项目的studio + List studioList1 = Arrays.asList(projectLibraryBase.getStudioEngineer().split(",")).stream().collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(studioList1)) { + studioList.addAll(sysUserService.listByIds(studioList1).stream().map(SysUser::getUsername).collect(Collectors.toList())); // studio 一个项目只有一个 + } + } + + // 去重 + homoList = homoList.stream().distinct().collect(Collectors.toList()); + studioList = studioList.stream().distinct().collect(Collectors.toList()); + } // 查询项目下所有责任领域下的 sdt人员 @@ -1124,11 +1145,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl userRoleIdList = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); userRoleIds = roleIdList.stream().filter(e->userRoleIdList.contains(e)).collect(Collectors.toList()); } - // 查询当前登录用户角色 是否是当前项目的studio - List studioList = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) { - studioList = projectLibraryBaseList.stream().map(ProjectLibraryBase::getStudioEngineerName).collect(Collectors.toList()); // studio 一个项目只有一个 - } + String loginUserName = loginUser.getUsername().toLowerCase(); studioList = toLowerCaseOfList(studioList); @@ -1460,7 +1477,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl { // 根据负责领域处理工程接口人(零个,一个,多个): 领域中仅有一个人时,添加该字段 - ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(projectId, collectManifestEO.getDutyTerritory()); + ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), collectManifestEO.getDutyTerritory()); if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) { String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson(); if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时,添加该字段 @@ -2283,7 +2303,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpldownload."; - String contentInfo = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated, please click " + href; - - SysAnnouncement sysAnnouncement = new SysAnnouncement(); - sysAnnouncement.setDelFlag("0"); - sysAnnouncement.setSendStatus("0"); - sysAnnouncement.setSendTime(new Date()); - sysAnnouncement.setMsgCategory(MessageTypeEnum.PUSH.getValue()); //消息类型:转发推送 - sysAnnouncement.setInitiator(MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); // 发起人:系统 - sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户 - sysAnnouncement.setTitile(msgTitle); - sysAnnouncement.setMsgContent(content); - sysAnnouncement.setMsgContentInfo(contentInfo); - sysAnnouncement.setUserIds(currentUser.getId()); // 发送给当前导出人 - sysAnnouncementService.saveAnnouncement(sysAnnouncement); - - JSONObject obj = new JSONObject(); - obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC); - obj.put(WebsocketConst.MSG_ID, currentUser.getId()); - obj.put(WebsocketConst.MSG_TXT, contentInfo); - webSocket.sendMessage(obj.toJSONString()); - - uploadFileio.close(); -// os.flush(); -// os.close(); // 后开先关 -// fis.close(); // 先开后关 +// // 将导出文件上传到cos上 +// String uploadFileName = fileOriName + ".zip"; +// InputStream uploadFileio = new FileInputStream(new File(fileNowPath+".zip")); +// MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, "text/plain", uploadFileio); // 用于上传 +// OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/manifest", "", CutEnum.CN.getValue()); // 上传导出的压缩包 +// +// // 系统向用户发消息 +// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录人 +// String msgTitle = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated."; +// String content = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated, please click download."; +// +// String href = "download."; +// String contentInfo = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated, please click " + href; +// +// SysAnnouncement sysAnnouncement = new SysAnnouncement(); +// sysAnnouncement.setDelFlag("0"); +// sysAnnouncement.setSendStatus("0"); +// sysAnnouncement.setSendTime(new Date()); +// sysAnnouncement.setMsgCategory(MessageTypeEnum.PUSH.getValue()); //消息类型:转发推送 +// sysAnnouncement.setInitiator(MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); // 发起人:系统 +// sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户 +// sysAnnouncement.setTitile(msgTitle); +// sysAnnouncement.setMsgContent(content); +// sysAnnouncement.setMsgContentInfo(contentInfo); +// sysAnnouncement.setUserIds(currentUser.getId()); // 发送给当前导出人 +// sysAnnouncementService.saveAnnouncement(sysAnnouncement); +// +// JSONObject obj = new JSONObject(); +// obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC); +// obj.put(WebsocketConst.MSG_ID, currentUser.getId()); +// obj.put(WebsocketConst.MSG_TXT, contentInfo); +// webSocket.sendMessage(obj.toJSONString()); +// +// uploadFileio.close(); + os.flush(); + os.close(); // 后开先关 + fis.close(); // 先开后关 } catch (Exception e) { if (e instanceof JeroBootException){ throw new JeroBootException(e.getMessage()); @@ -2444,7 +2464,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(ParamsCollectManifestEO::getId, paramsCollectManifestIdList); List paramsCollectManifestEOList = paramsCollectManifestEOMapper.selectList(queryWrapper); @@ -2885,7 +2908,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsManifestEO.getParamsTemplateId(),paramsManifestEO.getParamsTemplatePublishVersion()); @@ -135,7 +142,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl paramsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsTemplateId, paramsTemplatePublishVersion); @@ -630,7 +645,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl> collectingList = new LinkedList<>(); List> submitList = new LinkedList<>(); List> syncReportList = new LinkedList<>(); + double totalAll = 0; + double notStartTotal = 0; + double collectingTotal = 0; + double submitTotal = 0; + double syncReportTotal = 0; + // 统计清单参数 ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO(); @@ -725,6 +746,14 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl notStartMap = new HashMap<>(); + notStartMap.put("quantity", notStartTotal); + notStartMap.put("percentage", getRatio(notStartTotal, totalAll)); + notStartList.add(0, notStartMap); + + Map collectinMap = new HashMap<>(); + collectinMap.put("quantity", collectingTotal); + collectinMap.put("percentage", getRatio(collectingTotal, totalAll)); + collectingList.add(0, collectinMap); + + Map submitMap = new HashMap<>(); + submitMap.put("quantity", submitTotal); + submitMap.put("percentage", getRatio(submitTotal, totalAll)); + submitList.add(0, submitMap); + + Map syncReportMap = new HashMap<>(); + syncReportMap.put("quantity", syncReportTotal); + syncReportMap.put("percentage", getRatio(syncReportTotal, totalAll)); + syncReportList.add(0, syncReportMap); + + // result.put("dutyTerritory", dutyTerritoryNameList); result.put("notStart", notStartList); result.put("collecting", collectingList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java index cc37935f7..cebd47b99 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java @@ -77,4 +77,7 @@ public class ParamsCollectManifestVO { @ApiModelProperty(value = "用户类型") private String userTypes; // 用户类型 + @ApiModelProperty(value = "项目相关版本") + private String projectVersion; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java index 33b22ff2c..e025e9890 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryInfoEO.java @@ -81,21 +81,27 @@ public class DummyInventoryInfoEO implements Serializable { /**适用地区*/ @ApiModelProperty(value = "适用地区") - @Dict(dicCode ="region") + //@Dict(dicCode ="region") @Excel(name = "适用地区", width = 15, dicCode = "region") private java.lang.String region; + @TableField(exist = false) + private String region_dictText; /**适用范围*/ @Excel(name = "适用范围", width = 15, dicCode = "apply_scope") @ApiModelProperty(value = "适用范围") - @Dict(dicCode ="apply_scope") + //@Dict(dicCode ="apply_scope") private java.lang.String shi4Yong4Fan4Wei2; + @TableField(exist = false) + private String shi4Yong4Fan4Wei2_dictText; /**状态*/ @Excel(name = "状态", width = 15,dicCode ="state") @ApiModelProperty(value = "状态") - @Dict(dicCode ="state") + //@Dict(dicCode ="state") private java.lang.String state; + @TableField(exist = false) + private String state_dictText; /**对应标准*/ @Excel(name = "对应标准", width = 15) @@ -107,8 +113,10 @@ public class DummyInventoryInfoEO implements Serializable { /**实施类别*/ @Excel(name = "实施类别", width = 15,dicCode ="implement_type") @ApiModelProperty(value = "实施类别") - @Dict(dicCode ="implement_type") + //@Dict(dicCode ="implement_type") private java.lang.String implementType; + @TableField(exist = false) + private String implementType_dictText; /**新车型实施日期*/ @Excel(name = "新车型实施日期", width = 15,format = "yyyy-MM-dd") @@ -138,14 +146,18 @@ public class DummyInventoryInfoEO implements Serializable { /**认证类型*/ @Excel(name = "认证类型", width = 15,dicCode ="attestation_type") @ApiModelProperty(value = "认证类型") - @Dict(dicCode ="attestation_type") + //@Dict(dicCode ="attestation_type") private java.lang.String attestationType; + @TableField(exist = false) + private String attestationType_dictText; /**认证级别*/ @Excel(name = "认证级别", width = 15,dicCode ="attestation_rank") @ApiModelProperty(value = "认证级别") - @Dict(dicCode ="attestation_rank") + //@Dict(dicCode ="attestation_rank") private java.lang.String attestationRank; + @TableField(exist = false) + private String attestationRank_dictText; /**适用增补件*/ @ApiModelProperty(value = "适用增补件") @@ -163,8 +175,10 @@ public class DummyInventoryInfoEO implements Serializable { /**责任领域*/ @Excel(name = "责任领域", width = 15,dicCode ="duty_territory") @ApiModelProperty(value = "责任领域") - @Dict(dicCode ="duty_territory") + //@Dict(dicCode ="duty_territory") private java.lang.String dutyTerritory; + @TableField(exist = false) + private String dutyTerritory_dictText; /**备注*/ @Excel(name = "备注", width = 15) @@ -192,14 +206,18 @@ public class DummyInventoryInfoEO implements Serializable { /**设计符合性确认-发起人*/ @Excel(name = "设计-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "设计符合性确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String designInitiator; + @TableField(exist = false) + private String designInitiator_dictText; /**设计符合性确认-责任人*/ @Excel(name = "设计-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "设计符合性确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String designDuty; + @TableField(exist = false) + private String designDuty_dictText; //交付物说明 @Excel(name = "设计符合性确认-交付物说明", width = 20) @@ -226,14 +244,18 @@ public class DummyInventoryInfoEO implements Serializable { /**prehomo确认-发起人*/ @Excel(name = "Prehomo-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "prehomo确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String prehomoInitiator; + @TableField(exist = false) + private String prehomoInitiator_dictText; /**prehomo确认-责任人*/ @Excel(name = "Prehomo-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "prehomo确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String prehomoDuty; + @TableField(exist = false) + private String prehomoDuty_dictText; //prehomo确认-交付物说明 @Excel(name = "prehomo确认-交付物说明", width = 20) @@ -259,14 +281,18 @@ public class DummyInventoryInfoEO implements Serializable { /**验证符合性确认-发起人*/ @Excel(name = "验证-发起人", width = 15,dicCode ="fa1_qi3_ren2") @ApiModelProperty(value = "验证符合性确认-发起人") - @Dict(dicCode ="fa1_qi3_ren2") + //@Dict(dicCode ="fa1_qi3_ren2") private java.lang.String verifyInitiator; + @TableField(exist = false) + private String verifyInitiator_dictText; /**验证符合性确认-责任人*/ @Excel(name = "验证-责任人", width = 15,dicCode ="ze2_ren4_ren2") @ApiModelProperty(value = "验证符合性确认-责任人") - @Dict(dicCode ="ze2_ren4_ren2") + //@Dict(dicCode ="ze2_ren4_ren2") private java.lang.String verifyDuty; + @TableField(exist = false) + private String verifyDuty_dictText; //验证备注 @Excel(name = "验证符合性确认-交付物说明", width = 20) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java index f431d8922..e1d545c89 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/enums/DummyInventoryBaseFieldEnum.java @@ -35,6 +35,7 @@ public enum DummyInventoryBaseFieldEnum { VERIFY_DELIVERABLE_TEMPLATE("验证符合性确认-交付物模板", "verify_deliverable_template","Deliverable template"), VERIFY_INITIATOR("验证符合性确认-发起人", "fa1_qi3_ren2","Initiator"), VERIFY_DUTY("验证符合性确认-责任人", "ze2_ren4_ren2","Assignee"), + STATE("状态", "state","state"), ; @@ -71,4 +72,4 @@ public enum DummyInventoryBaseFieldEnum { public void setEnName(String enName) { this.enName = enName; } -} \ No newline at end of file +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 0c95df461..4af6fa502 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -34,6 +34,7 @@ import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; @@ -72,6 +73,7 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic * @Date: 2022-04-11 * @Version: V1.0 */ +@Slf4j @Service public class DummyInventoryInfoEOServiceImpl extends ServiceImpl implements IDummyInventoryInfoEOService { @@ -329,16 +331,171 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl queryList(DummyInventoryInfoEO dummyInventoryInfoEO,HttpServletRequest req) { + long startTime = System.currentTimeMillis(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,req.getParameterMap()); // queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId()); queryWrapper.orderByDesc("create_time","serial_number"); List dummyInventoryInfoEOList = this.list(queryWrapper); + log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime)); //技术领域处理 treeDict(dummyInventoryInfoEO, dummyInventoryInfoEOList); + log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime)); + this.dataDicDispose(dummyInventoryInfoEOList,dummyInventoryInfoEO.getCut()); + log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime)); return dummyInventoryInfoEOList; } + /** + * 数据字典数据处理方法 -> 虚拟清单使用@Dict翻译效率太慢了,200条数据需要处理1分钟。 + * @param datas + * @param cut + */ + public void dataDicDispose(List datas, String cut){ + if(CollectionUtils.isNotEmpty(datas)){ + List sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll(); + + for (DummyInventoryInfoEO data : datas) { + // 适用地区 + String region = data.getRegion(); + if(StringUtils.isNotEmpty(region)){ + String region_dictText = this.disposeShowDictItemValue(sysDictItems, region,cut, DummyInventoryBaseFieldEnum.REGION.getValue()); + data.setRegion_dictText(region_dictText); + } + + // 适用范围 + String shi4Yong4Fan4Wei2 = data.getShi4Yong4Fan4Wei2(); + if(StringUtils.isNotEmpty(shi4Yong4Fan4Wei2)){ + String shi4Yong4Fan4Wei2_dictText = this.disposeShowDictItemValue(sysDictItems, shi4Yong4Fan4Wei2,cut, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getValue()); + data.setShi4Yong4Fan4Wei2_dictText(shi4Yong4Fan4Wei2_dictText); + } + + // 状态 + String state = data.getState(); + if(StringUtils.isNotEmpty(state)){ + String state_dictText = this.disposeShowDictItemValue(sysDictItems, state,cut, DummyInventoryBaseFieldEnum.STATE.getValue()); + data.setState_dictText(state_dictText); + } + + // 实施类别 + String implementType = data.getImplementType(); + if(StringUtils.isNotEmpty(implementType)){ + String implementType_dictText = this.disposeShowDictItemValue(sysDictItems, implementType,cut, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getValue()); + data.setImplementType_dictText(implementType_dictText); + } + + // 认证类别 + String attestationType = data.getAttestationType(); + if(StringUtils.isNotEmpty(attestationType)){ + String attestationType_dictText = this.disposeShowDictItemValue(sysDictItems, attestationType,cut, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getValue()); + data.setAttestationType_dictText(attestationType_dictText); + } + + // 认证级别 + String attestationRank = data.getAttestationRank(); + if(StringUtils.isNotEmpty(attestationRank)){ + String attestationRank_dictText = this.disposeShowDictItemValue(sysDictItems, attestationRank,cut, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getValue()); + data.setAttestationRank_dictText(attestationRank_dictText); + } + + // 责任领域 + String dutyTerritory = data.getDutyTerritory(); + if(StringUtils.isNotEmpty(dutyTerritory)){ + String dutyTerritory_dictText = this.disposeShowDictItemValue(sysDictItems, dutyTerritory,cut, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getValue()); + data.setDutyTerritory_dictText(dutyTerritory_dictText); + } + + // 设计符合性-发起人 + String designInitiator = data.getDesignInitiator(); + if(StringUtils.isNotEmpty(designInitiator)){ + String designInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, designInitiator,cut, DummyInventoryBaseFieldEnum.DESIGN_INITIATOR.getValue()); + data.setDesignInitiator_dictText(designInitiator_dictText); + } + + // 设计符合性-责任人 + String designDuty = data.getDesignDuty(); + if(StringUtils.isNotEmpty(designDuty)){ + String designDuty_dictText = this.disposeShowDictItemValue(sysDictItems, designDuty,cut, DummyInventoryBaseFieldEnum.DESIGN_DUTY.getValue()); + data.setDesignDuty_dictText(designDuty_dictText); + } + + // preHomo-发起人 + String prehomoInitiator = data.getPrehomoInitiator(); + if(StringUtils.isNotEmpty(prehomoInitiator)){ + String prehomoInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoInitiator,cut, DummyInventoryBaseFieldEnum.PREHOMO_INITIATOR.getValue()); + data.setPrehomoInitiator_dictText(prehomoInitiator_dictText); + } + + // preHomo-责任人 + String prehomoDuty = data.getPrehomoDuty(); + if(StringUtils.isNotEmpty(prehomoDuty)){ + String prehomoDuty_dictText = this.disposeShowDictItemValue(sysDictItems, prehomoDuty,cut, DummyInventoryBaseFieldEnum.PREHOMO_DUTY.getValue()); + data.setPrehomoDuty_dictText(prehomoDuty_dictText); + } + + // 验证符合性-发起人 + String verifyInitiator = data.getVerifyInitiator(); + if(StringUtils.isNotEmpty(verifyInitiator)){ + String verifyInitiator_dictText = this.disposeShowDictItemValue(sysDictItems, verifyInitiator,cut, DummyInventoryBaseFieldEnum.VERIFY_INITIATOR.getValue()); + data.setVerifyInitiator_dictText(verifyInitiator_dictText); + } + + // 验证符合性-责任人 + String verifyDuty = data.getVerifyDuty(); + if(StringUtils.isNotEmpty(verifyDuty)){ + String verifyDuty_dictText = this.disposeShowDictItemValue(sysDictItems, verifyDuty,cut, DummyInventoryBaseFieldEnum.VERIFY_DUTY.getValue()); + data.setVerifyDuty_dictText(verifyDuty_dictText); + } + } + } + } + + /** + * 处理展示数据字典值 + * @param sysDictItems 所有的数据字典项 + * @param fieldValues 字段值 + * @param cut 中英文切换标识 + * @param dicCode 数据字典code码 + * @return + */ + public String disposeShowDictItemValue(List sysDictItems,String fieldValues,String cut,String dicCode){ + String result = ""; + List sysDictItemList = sysDictItems.stream().filter(e -> { + boolean flag = false; + if(StringUtils.equals(e.getDictCode(),dicCode)){ + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(sysDictItemList)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getItemText).collect(Collectors.joining(",")); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + result = sysDictItemList.stream().filter(e -> { + boolean flag = false; + List fieldValueStrList = Arrays.asList(fieldValues.split(",")); + for (String fieldValueStr : fieldValueStrList) { + if(StringUtils.equals(fieldValueStr,e.getItemValue())){ + flag = true; + break; + } + } + return flag; + }).map(SysDictItem::getEnName).collect(Collectors.joining(",")); + } + } + return result; + } /** * 复制 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index ab619a582..e3a4b121b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -124,4 +124,19 @@ public interface IProjectLibraryBaseService extends IService * @return */ List versionStatistics(String id); + + /** + * 通过主项目id和子项目版本号 + * @param version + * @param parentId + * @return + */ + String getIdByVersionAndParentId(String version, String parentId); + + /** + * 查询主项目及其所有子项目 + * @param parentId + * @return + */ + List getParentAndChildern(String parentId); } 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 c3678aa5f..fcd925db5 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 @@ -1316,6 +1316,38 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getProjectVersion,version); + wrapper.eq(ProjectLibraryBase::getParentId, parentId); + List list = this.list(wrapper); + if (CollectionUtils.isNotEmpty(list)) { + return list.get(0).getId(); + } else { + return null; + } + + } + + @Override + public List getParentAndChildern(String parentId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getId,parentId); + wrapper.or().eq(ProjectLibraryBase::getParentId, parentId); + List list = this.list(wrapper); + return list; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/job/SyncComplianceProcessEndTimeJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/job/SyncComplianceProcessEndTimeJob.java new file mode 100644 index 000000000..d4c4297be --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/job/SyncComplianceProcessEndTimeJob.java @@ -0,0 +1,106 @@ +package com.jero.modules.todoCenter.job; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.todoCenter.entity.ProcessInfoEO; +import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 同步符合性流程截止时间定时器 + * @Author: wzj + * @Date: 2022/11/24 13:48 + **/ +@Slf4j +public class SyncComplianceProcessEndTimeJob implements Job { + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + @Autowired + private IProcessInfoEOService processInfoEOService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + log.info("同步符合性流程截止时间,定时任务开启 ====================================================="); + QueryWrapper processInfoQueryWrap = new QueryWrapper<>(); + List flowTypeList = new ArrayList<>(); + flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue()); + flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue()); + flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue()); + processInfoQueryWrap.lambda().in(ProcessInfoEO::getFlowType,flowTypeList); + List processInfoEOList = this.processInfoEOService.list(processInfoQueryWrap); + + if (CollectionUtils.isNotEmpty(processInfoEOList)) { + List lawsInventoryIdList = processInfoEOList.stream().map(ProcessInfoEO::getProjectLawsInventoryId).distinct().collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(lawsInventoryIdList)) { + QueryWrapper lawsInventoryQueryWrap = new QueryWrapper<>(); + lawsInventoryQueryWrap.lambda().in(ProjectLawsInventoryEO::getId,lawsInventoryIdList); + List lawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryQueryWrap); + + if (CollectionUtils.isNotEmpty(lawsInventoryEOList)) { + processInfoEOList.forEach(processInfo -> { + this.setProcessInfoEndTime(lawsInventoryEOList, processInfo); + }); + this.processInfoEOService.updateBatchById(processInfoEOList); + } + + } + + } + log.info("同步符合性流程截止时间,定时任务结束 ====================================================="); + } + + /** + * 设置流程信息的截止时间。 + * @param lawsInventoryEOList + * @param processInfoEO + */ + private void setProcessInfoEndTime(List lawsInventoryEOList, ProcessInfoEO processInfoEO) { + for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) { + if(StringUtils.equals(processInfoEO.getProjectLawsInventoryId(),projectLawsInventoryEO.getId())){ + String flowType = processInfoEO.getFlowType(); + + // 停止循环标识 + boolean stopCycle = false; + FlowTypeEnum flowTypeEnumByValue = FlowTypeEnum.getFlowTypeEnumByValue(flowType); + switch (flowTypeEnumByValue){ + case SJFHXSHLC: + if(projectLawsInventoryEO.getDesignDueDate() != null){ + processInfoEO.setEndTime(projectLawsInventoryEO.getDesignDueDate()); + stopCycle = true; + } + break; + case PREHOMOQRLC: + if(projectLawsInventoryEO.getPrehomoDueDate() != null){ + processInfoEO.setEndTime(projectLawsInventoryEO.getPrehomoDueDate()); + stopCycle = true; + } + break; + case YZFHXSCLC: + if(projectLawsInventoryEO.getVerifyDueDate() != null){ + processInfoEO.setEndTime(projectLawsInventoryEO.getVerifyDueDate()); + stopCycle = true; + } + break; + } + + // 匹配到一个之后,将本次循环终止。 + if (stopCycle) { + break; + } + } + } + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java index 81d073225..5b4de5678 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/enums/FlowTypeEnum.java @@ -74,4 +74,19 @@ public enum FlowTypeEnum { } return null; } + + /** + * 根据value获取枚举对象。 + * @param value + * @return + */ + public static FlowTypeEnum getFlowTypeEnumByValue(String value) { + FlowTypeEnum[] flowTypeEnumArr = FlowTypeEnum.values(); + for (FlowTypeEnum flowTypeEnum : flowTypeEnumArr) { + if(StringUtils.equals(value,flowTypeEnum.getValue())){ + return flowTypeEnum; + } + } + return null; + } } diff --git a/jero-web/src/components/tableCollection/index.vue b/jero-web/src/components/tableCollection/index.vue index 0ee777753..0e6fde52c 100644 --- a/jero-web/src/components/tableCollection/index.vue +++ b/jero-web/src/components/tableCollection/index.vue @@ -450,6 +450,7 @@ this.getquerySdtId = record.id getAction(this.url.getquerySdtList, { projectId: this.$route.query.projectId, + projectVersion:this.$route.query.projectVersion, dutyTerritory: record.dutyTerritory }).then((res) => { if (res.success) { diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue index f25fcd950..9c4249f90 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue @@ -710,13 +710,13 @@ /*max-width: 198px;*/ height: 32px; display: inline-block; - text-align: center; + text-align: left; line-height: 32px; /*background: #EFF1F3;*/ border-radius: 4px; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; + /*text-overflow: ellipsis;*/ + /*white-space: nowrap;*/ + /*overflow: hidden;*/ font-size: 14px; font-weight: 400; color: #040B29; diff --git a/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseList.vue b/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseList.vue index bdb7e2f03..c9951862d 100644 --- a/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseList.vue +++ b/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseList.vue @@ -1,145 +1,217 @@ - - + \ No newline at end of file diff --git a/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseListView.vue b/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseListView.vue new file mode 100644 index 000000000..4fd6b4a18 --- /dev/null +++ b/jero-web/src/views/documentManage/collection/components/problemKnowledgeBaseListView.vue @@ -0,0 +1,790 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue b/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue index e81676aa6..d63c0d71b 100644 --- a/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue +++ b/jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue @@ -921,12 +921,8 @@ userTypes: this.currentPersonRole, exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')' } - getAction('/params/collectManifest/exportAll', query).then((res) => { - if (res && !res.success) { - this.$message.error(res.message) - } - this.textLoading = false - }) + let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip' + downloadFile('/params/collectManifest/exportAll', name , query , this.selectClear) }, //填写人导出 handleExportDre(){