From 59fabf25fb296e0f5c60e3a1fa6c6d708f9708be Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Thu, 23 Mar 2023 14:07:32 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95-?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=A1=AE=E8=AE=A4=E3=80=81=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E7=AC=A6=E5=90=88=E6=80=A7=E5=AE=9A=E6=97=B6=E5=8F=91=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/project/job/TaskAffirmJob.java | 45 ++++++--- .../project/job/designComplianceJob.java | 97 ++++++++++++------- 2 files changed, 96 insertions(+), 46 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java index d1befe3d5..3f5ab9dc5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java @@ -24,6 +24,7 @@ import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -109,7 +110,7 @@ public class TaskAffirmJob implements Job { List userIdList = Arrays.asList(designDutyId.split(",")); - Map sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList); + Map sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList, FlowTypeEnum.SJFHXSHLC.getValue()); // 三条后结束的 List threeDaysList = (List) sendMsgDataListMap.get("threeDaysList"); @@ -187,7 +188,7 @@ public class TaskAffirmJob implements Job { List userIdList = Arrays.asList(verifyDutyId.split(",")); - Map sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList); + Map sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList,FlowTypeEnum.YZFHXSCLC.getValue()); // 三条后结束的 List threeDaysList = (List) sendMsgDataListMap.get("threeDaysList"); @@ -482,7 +483,7 @@ public class TaskAffirmJob implements Job { log.info("任务确认流程,定时任务结束 ====================================================="); } - private Map disposeSendMsgDataList(List projectLawsInventoryEOList) { + private Map disposeSendMsgDataList(List projectLawsInventoryEOList,String flowType) { Map result = new HashMap<>(); Date currentDate = new Date(); String currentDateStr = sdf.format(currentDate); @@ -498,9 +499,17 @@ public class TaskAffirmJob implements Job { List currentDaysList = projectLawsInventoryEOList.stream().filter(data -> { boolean flag = false; //结束日期是当前日期 - if(data.getInventoryAffirmDueDate() != null){ - if (StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))) { - flag = true; + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + if(data.getDesignDueDate() != null){ + if (StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate()))) { + flag = true; + } + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if(data.getVerifyDueDate() != null){ + if (StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))) { + flag = true; + } } } return flag; @@ -509,9 +518,17 @@ public class TaskAffirmJob implements Job { // 三天后结束的 List threeDaysList = projectLawsInventoryEOList.stream().filter(data -> { boolean flag = false; - if(data.getInventoryAffirmDueDate() != null){ - if (StringUtils.equals(threeDaysStr, sdf.format(data.getInventoryAffirmDueDate()))) { - flag = true; + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + if(data.getDesignDueDate() != null){ + if (StringUtils.equals(threeDaysStr, sdf.format(data.getDesignDueDate()))) { + flag = true; + } + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if(data.getVerifyDueDate() != null){ + if (StringUtils.equals(threeDaysStr, sdf.format(data.getVerifyDueDate()))) { + flag = true; + } } } return flag; @@ -521,8 +538,14 @@ public class TaskAffirmJob implements Job { List overdueList = projectLawsInventoryEOList.stream().filter(data -> { // 只要早于当前日期都算逾期 不算当天。 boolean flag = false; - if(data.getInventoryAffirmDueDate() != null){ - flag = (data.getInventoryAffirmDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))); + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + if(data.getDesignDueDate() != null){ + flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate()))); + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + if(data.getVerifyDueDate() != null){ + flag = (data.getVerifyDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))); + } } return flag; }).collect(Collectors.toList()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java index fb8f2dda9..361be9a51 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java @@ -77,12 +77,9 @@ public class designComplianceJob implements Job { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("设计符合性确认流程,定时任务开启 ====================================================="); - // 查询出 任务待确认、结果待提交的数据 - List designFlowStatusList = new ArrayList<>(); - designFlowStatusList.add(ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); - designFlowStatusList.add(ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); + // 查询出 结果待提交的数据 QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); - lawsInventoryEOQueryWrap.lambda().in(ProjectLawsInventoryEO::getDesignFlowStatus,designFlowStatusList); + lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getDesignFlowStatus,ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap); if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ // 根据项目进行分组 @@ -94,7 +91,6 @@ public class designComplianceJob implements Job { continue; } - // 设计符合性 Map> lawsInventoryByDesignDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId)); for (Map.Entry> lawsInventoryByDesignDutyIdGroup : lawsInventoryByDesignDutyIdGroupMap.entrySet()) { String designDutyId = lawsInventoryByDesignDutyIdGroup.getKey(); @@ -107,27 +103,46 @@ public class designComplianceJob implements Job { Map sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList); - // 三条后结束的 - List threeDaysList = (List) sendMsgDataListMap.get("threeDaysList"); - if(CollectionUtils.isNotEmpty(threeDaysList)){ - Date designDueDate = threeDaysList.get(0).getDesignDueDate(); + // 十四天后结束的 + List fourteenDaysList = (List) sendMsgDataListMap.get("fourteenDaysList"); + if(CollectionUtils.isNotEmpty(fourteenDaysList)){ + Date designDueDate = fourteenDaysList.get(0).getDesignDueDate(); String endTime = ""; if(designDueDate != null){ endTime = DateUtils.formatDate(designDueDate); } - String serialNumbers = threeDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); - // 给法规工程师发消息 + String serialNumbers = fourteenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给责任人发消息 Map params = new HashMap<>(); - params.put("contentCn","您好,以下待办任务距离截止日期仅剩3天,请及时查看处理。"); - params.put("contentEn","Hello! This task will expire in 3 days. Please check and address it in a timely manner. Thank you!"); + params.put("contentCn","您好,您的任务将于14天后结束,请及时查看处理。"); + params.put("contentEn","Hello! Your task will end in 14 days. Please check and address it in a timely manner. "); params.put("projectLibraryId",projectLibraryId); params.put("endTime",endTime); params.put("userIdList",userIdList); params.put("serialNumbers",serialNumbers); - params.put("flowTypeCn","设计符合性流程"); - params.put("flowTypeEn","Design Compliance Process"); - this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params); } + + // 七天后结束的 + List sevenDaysList = (List) sendMsgDataListMap.get("sevenDaysList"); + if(CollectionUtils.isNotEmpty(sevenDaysList)){ + Date designDueDate = sevenDaysList.get(0).getDesignDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + String serialNumbers = sevenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,您的任务将于7天后结束,请及时查看处理。"); + params.put("contentEn","Hello! Your task will end in 7 days. Please check and address it in a timely manner. "); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + // 当天结束的 List currentDaysList = (List) sendMsgDataListMap.get("currentDaysList"); if(CollectionUtils.isNotEmpty(currentDaysList)){ @@ -139,15 +154,13 @@ public class designComplianceJob implements Job { String serialNumbers = currentDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); // 给法规工程师发消息 Map params = new HashMap<>(); - params.put("contentCn","您好,以下待办任务已到截止日期,请尽快查看处理。"); - params.put("contentEn","Hello! This task will expire today. Please check and address it ASAP. Thank you!"); + params.put("contentCn","您好,您的任务将于今天到期,请尽快查看处理。"); + params.put("contentEn","Hello! Your task will expire today. Please check and address it ASAP. "); params.put("projectLibraryId",projectLibraryId); params.put("endTime",endTime); params.put("userIdList",userIdList); params.put("serialNumbers",serialNumbers); - params.put("flowTypeCn","设计符合性流程"); - params.put("flowTypeEn","Design Compliance Process"); - this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.getValue(),params); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params); } // 逾期的 List overdueList = (List) sendMsgDataListMap.get("overdueList"); @@ -160,15 +173,13 @@ public class designComplianceJob implements Job { String serialNumbers = overdueList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); // 给法规工程师发消息 Map params = new HashMap<>(); - params.put("contentCn","您好,以下待办任务已逾期,请尽快处理。"); - params.put("contentEn","Hello! This task is overdue. Please address it ASAP. Thank you!"); + params.put("contentCn","您好,您的任务已逾期,请尽快查看处理。"); + params.put("contentEn","Hello! Your task is overdue. Please check and address it ASAP. "); params.put("projectLibraryId",projectLibraryId); params.put("endTime",endTime); params.put("userIdList",userIdList); params.put("serialNumbers",serialNumbers); - params.put("flowTypeCn","设计符合性流程"); - params.put("flowTypeEn","Design Compliance Process"); - this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION5.getValue(),params); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION3.getValue(),params); } } } @@ -516,7 +527,7 @@ public class designComplianceJob implements Job { }).collect(Collectors.toList()); // 七天后结束的 - List threeDaysList = projectLawsInventoryEOList.stream().filter(data -> { + List sevenDaysList = projectLawsInventoryEOList.stream().filter(data -> { boolean flag = false; if(data.getDesignDueDate() != null){ if (StringUtils.equals(sevenDaysStr, sdf.format(data.getDesignDueDate()))) { @@ -538,19 +549,35 @@ public class designComplianceJob implements Job { return flag; }).collect(Collectors.toList()); - // 逾期的 + // 逾期的 3天 7天 14天 List overdueList = projectLawsInventoryEOList.stream().filter(data -> { - // 只要早于当前日期都算逾期 不算当天。 - boolean flag = false; - if(data.getDesignDueDate() != null){ - flag = (data.getDesignDueDate().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getDesignDueDate()))); - } + Calendar day3Later = new GregorianCalendar(); + day3Later.setTime(data.getDesignDueDate()); + day3Later.add(Calendar.DATE, 3); + Date overdue3Days = day3Later.getTime(); + + Calendar day7Later = new GregorianCalendar(); + day7Later.setTime(data.getDesignDueDate()); + day7Later.add(Calendar.DATE, 7); + Date overdue7Days = day7Later.getTime(); + + Calendar day14Later = new GregorianCalendar(); + day14Later.setTime(data.getDesignDueDate()); + day14Later.add(Calendar.DATE, 14); + Date overdue14Days = day14Later.getTime(); + + boolean flag = ( + StringUtils.equals(sdf.format(overdue3Days), sdf.format(currentDate)) + || StringUtils.equals(sdf.format(overdue7Days), sdf.format(currentDate)) + || StringUtils.equals(sdf.format(overdue14Days), sdf.format(currentDate)) + ); return flag; }).collect(Collectors.toList()); result.put("currentDaysList",currentDaysList); - result.put("threeDaysList",threeDaysList); + result.put("sevenDaysList",sevenDaysList); result.put("overdueList",overdueList); + result.put("fourteenDaysList",fourteenDaysList); return result; } } From b5cdf1001500c55cd34592cc0825ff8396c7aff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 23 Mar 2023 15:39:03 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=AE=9A=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/listOfRegulations.vue | 14 +- .../components/codeNumber.vue | 38 - .../components/transferList.vue | 5 +- .../views/virtualAuthenticationList/index.vue | 6 +- .../certificationListMaintenance.vue | 970 ++++++++---------- 5 files changed, 469 insertions(+), 564 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index d37e2fa21..f8ba6e3d6 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -487,7 +487,7 @@ + v-model="formInlineQuestion.expeditingType"> {{ item.name }} @@ -559,7 +559,7 @@ roleSwitchingList: [], formInlineQuestion: {}, rulesRoleQuestion: { - questionStatus: [ + expeditingType: [ { required: true, message: this.$t('expeditionProcess') + this.$t('cannotEmpty'), @@ -569,11 +569,11 @@ }, questionList: [ { - value: '1', + value: 'lawsInventoryDesignExpediting', name: this.$t('designComplianceProcess') }, { - value: '2', + value: 'lawsInventoryVerifyExpediting', name: this.$t('validationComplianceProcess') } ], @@ -1524,13 +1524,13 @@ handleOkQuestion() { this.$refs.ruleFormQuestion.validate(valid => { let formInlineQuestion = JSON.parse(JSON.stringify(this.formInlineQuestion)) - if (formInlineQuestion.questionStatus && formInlineQuestion.questionStatus.length > 0) { - formInlineQuestion.questionStatus = formInlineQuestion.questionStatus.join(',') + if (formInlineQuestion.expeditingType && formInlineQuestion.expeditingType.length > 0) { + formInlineQuestion.expeditingType = formInlineQuestion.expeditingType.join(',') } let query = { ids: this.questionIdList.join(','), projectLibraryId: this.$route.query.id, - questionStatus: formInlineQuestion.questionStatus + expeditingType: formInlineQuestion.expeditingType } this.confirmLoadingQuestion = true postAction('project/projectLawsInventoryEO/expediting', query).then((res) => { diff --git a/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue b/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue index 60008065b..814f1c77c 100644 --- a/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue +++ b/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue @@ -50,9 +50,6 @@ - {{$t('query')}} {{$t('reset')}} @@ -103,14 +100,10 @@ \ No newline at end of file From 4f6a11bb4dd61e2c59ef98d99669bc15feebea3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=B5=A9?= Date: Thu, 23 Mar 2023 15:51:22 +0800 Subject: [PATCH 3/8] =?UTF-8?q?ota=E7=AE=A1=E7=90=86=20=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 7 ++++ jero-web/src/common/lang/zh-cn.js | 6 ++++ .../components/maintenance.vue | 32 +++++++++++++------ .../otamanagement/upgradeactivity/index.vue | 8 ++--- .../components/maintenance.vue | 27 +++++++++++----- .../vehicleregistration/index.vue | 8 ++--- 6 files changed, 63 insertions(+), 25 deletions(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 535dd71ce..65c93d40b 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1701,5 +1701,12 @@ module.exports = { returntofill:'Return to fill', thereAreCurrentlyNoRegulationsToHandle:'There are currently no regulations to handle', certificationSubmission:'Certification Submission', + upgradecompletion:'Upgrade completion', + implementedupgrade:'Whether the implemented upgrade is consistent with the record', + numberofvehicles:'Number of vehicles that have completed upgrades', + vehicleshavenotcompletedonlineupgrade:'The reason why some vehicles have not completed online upgrade', + cause:'cause', + implementationrecords:'Fault handling measures and emergency response implementation records', + } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 4c9c614cb..027eb8a72 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1801,4 +1801,10 @@ module.exports = { expeditionProcess:'催办流程', thereAreCurrentlyNoRegulationsToHandle:'当前没有可处理的法规', certificationSubmission:'认证提交', + upgradecompletion:'升级完成情况', + implementedupgrade:'实施的升级是否和备案一致', + numberofvehicles:'完成升级的车辆数', + vehicleshavenotcompletedonlineupgrade:'部分车辆未完在线升级的原因', + cause:'原因', + implementationrecords:'故障处置措施和应急响应实施记录', } \ No newline at end of file diff --git a/jero-web/src/views/otamanagement/upgradeactivity/components/maintenance.vue b/jero-web/src/views/otamanagement/upgradeactivity/components/maintenance.vue index 612427415..8440de293 100644 --- a/jero-web/src/views/otamanagement/upgradeactivity/components/maintenance.vue +++ b/jero-web/src/views/otamanagement/upgradeactivity/components/maintenance.vue @@ -19,7 +19,7 @@ {{$t('recordstatus')}} - @@ -36,10 +36,10 @@ @@ -54,7 +54,7 @@ @@ -75,7 +75,9 @@ export default { return { visible: false, confirmLoading: false, - formInline: {}, + formInline: { + batjs:'', + }, rules: { // listConfirmation: [ // { @@ -134,7 +136,13 @@ export default { }, methods: { edit(row) { - console.log(row) + if(row instanceof Array){ + this.ids = row + }else{ + this.formInline.bazt = row.bazt + this.formInline.batjs = row.batjs + this.formInline.bz = row.bz + } this.visible = true this.$nextTick(() => { this.$refs.ruleForm.clearValidate() @@ -145,14 +153,17 @@ export default { if (valid) { let query = { ...this.formInline, + id:this.ids.join(',') } this.confirmLoading = true - postAction('', query).then((res) => { + postAction('ota/otaBaSjList/batchRecord', { + recordList :query + }).then((res) => { if (res.success) { this.$message.success(this.$t('OperationSuccessful')) this.visible = false this.confirmLoading = false - this.$emit('settingListForm') + this.$emit('getList') } else { this.$message.warning(this.$t('operationFailed')) this.confirmLoading = false @@ -162,7 +173,10 @@ export default { }) }, handleCancel() { - this.formInline = {} + this.formInline = { + batjs:'' + } + this.ids = [] this.visible = false }, dateChange(item) { diff --git a/jero-web/src/views/otamanagement/upgradeactivity/index.vue b/jero-web/src/views/otamanagement/upgradeactivity/index.vue index dbd4052f3..9cf5e3567 100644 --- a/jero-web/src/views/otamanagement/upgradeactivity/index.vue +++ b/jero-web/src/views/otamanagement/upgradeactivity/index.vue @@ -163,7 +163,7 @@ /> - + @@ -351,14 +351,14 @@ export default { ...queryParam } this.loading = true - getAction('/ota/otaBaSjList/list', query).then((res) => { + getAction('/ota/otaBaSjList/page', query).then((res) => { if (res.success) { if (res.result.current > 1 && res.result.records.length == 0) { this.pageNo = 1 this.getList() return } - this.dataSource = res.result || [] + this.dataSource = res.result.records || [] this.total = res.result.total this.loading = false } else { @@ -437,7 +437,7 @@ export default { if(this.selectedRowKeys.length < 1){ this.$message.warning(this.$t('selectLeastOne')) }else{ - this.$refs.maintenanceRef.edit() + this.$refs.maintenanceRef.edit(this.selectedRowKeys) } }, // 模板下载 diff --git a/jero-web/src/views/otamanagement/vehicleregistration/components/maintenance.vue b/jero-web/src/views/otamanagement/vehicleregistration/components/maintenance.vue index 13b4c1751..8b904a6a1 100644 --- a/jero-web/src/views/otamanagement/vehicleregistration/components/maintenance.vue +++ b/jero-web/src/views/otamanagement/vehicleregistration/components/maintenance.vue @@ -36,11 +36,10 @@ @@ -75,7 +74,9 @@ export default { return { visible: false, confirmLoading: false, - formInline: {}, + formInline: { + batjs:'', + }, rules: { // listConfirmation: [ // { @@ -134,8 +135,12 @@ export default { }, methods: { edit(row) { - if(row){ - this.formInline = {...row} + if(row instanceof Array){ + this.ids = row + }else{ + this.formInline.bazt = row.bazt + this.formInline.batjs = row.batjs + this.formInline.bz = row.bz } this.visible = true this.$nextTick(() => { @@ -147,14 +152,17 @@ export default { if (valid) { let query = { ...this.formInline, + id:this.ids.join(',') } this.confirmLoading = true - postAction('', query).then((res) => { + postAction('ota/otaBaCxList/batchRecord', { + recordList: query + }).then((res) => { if (res.success) { this.$message.success(this.$t('OperationSuccessful')) this.visible = false this.confirmLoading = false - this.$emit('settingListForm') + this.$emit('getList') } else { this.$message.warning(this.$t('operationFailed')) this.confirmLoading = false @@ -164,7 +172,10 @@ export default { }) }, handleCancel() { - this.formInline = {} + this.formInline = { + batjs:'' + } + this.ids = [] this.visible = false }, dateChange(item) { diff --git a/jero-web/src/views/otamanagement/vehicleregistration/index.vue b/jero-web/src/views/otamanagement/vehicleregistration/index.vue index 30249e4a9..21b7eec3e 100644 --- a/jero-web/src/views/otamanagement/vehicleregistration/index.vue +++ b/jero-web/src/views/otamanagement/vehicleregistration/index.vue @@ -161,7 +161,7 @@ /> - + @@ -346,14 +346,14 @@ export default { ...queryParam } this.loading = true - getAction('/ota/otaBaCxList/list', query).then((res) => { + getAction('/ota/otaBaCxList/page', query).then((res) => { if (res.success) { if (res.result.current > 1 && res.result.records.length == 0) { this.pageNo = 1 this.getList() return } - this.dataSource = res.result || [] + this.dataSource = res.result.records || [] this.total = res.result.total this.loading = false } else { @@ -432,7 +432,7 @@ export default { if(this.selectedRowKeys.length < 1){ this.$message.warning(this.$t('selectLeastOne')) }else{ - this.$refs.maintenanceRef.edit() + this.$refs.maintenanceRef.edit(this.selectedRowKeys) } }, // 模板下载 From 8f1eeddc7908f4e0ae77f0261791acf5e31bf6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 23 Mar 2023 15:52:52 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=82=AC=E5=8A=9E?= =?UTF-8?q?=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/listOfRegulations.vue | 21 +++++++++++++------ .../components/codeNumber.vue | 11 ++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index f8ba6e3d6..da81f8583 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -1527,10 +1527,19 @@ if (formInlineQuestion.expeditingType && formInlineQuestion.expeditingType.length > 0) { formInlineQuestion.expeditingType = formInlineQuestion.expeditingType.join(',') } + let operateType = '' + if (this.roleSwitchingCode == '0') { + operateType = 'lawsInventoryStudioExpediting' + } else if (this.roleSwitchingCode == '1') { + operateType = 'lawsInventoryRegulationOwnerExpediting' + } else if (this.roleSwitchingCode == '30') { + operateType = 'lawsInventoryEngineeringInterfacePersonExpediting' + } let query = { ids: this.questionIdList.join(','), projectLibraryId: this.$route.query.id, - expeditingType: formInlineQuestion.expeditingType + expeditingType: formInlineQuestion.expeditingType, + operateType: operateType } this.confirmLoadingQuestion = true postAction('project/projectLawsInventoryEO/expediting', query).then((res) => { @@ -1616,11 +1625,11 @@ this.dataSource[i].verifyFlowStatus == 'NA' ) && (this.dataSource[i].designFlowStatus == 'Results to be submitted' || - this.dataSource[i].designFlowStatus == 'Results to be reviewed' || - this.dataSource[i].designFlowStatus == 'Compliance' || - this.dataSource[i].designFlowStatus == 'Non-Compliance' || - this.dataSource[i].designFlowStatus == 'To be tracked' || - this.dataSource[i].designFlowStatus == 'NA' + this.dataSource[i].designFlowStatus == 'Results to be reviewed' || + this.dataSource[i].designFlowStatus == 'Compliance' || + this.dataSource[i].designFlowStatus == 'Non-Compliance' || + this.dataSource[i].designFlowStatus == 'To be tracked' || + this.dataSource[i].designFlowStatus == 'NA' )) { isTrue = true } else { diff --git a/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue b/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue index 814f1c77c..4a1c20c10 100644 --- a/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue +++ b/jero-web/src/views/virtualAuthenticationList/components/codeNumber.vue @@ -47,6 +47,17 @@ :triggerChange="false" :dictCode="'state'"/> + +
+
+ {{$t('zoneOfApplication')}} +
+ +
+
+ From 8d0dd464392a3b683b20c247d6bdb6685397f086 Mon Sep 17 00:00:00 2001 From: "zyx.net" Date: Thu, 23 Mar 2023 16:39:28 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=8A=A8=E5=8A=9B?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/basicInformation.vue | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/jero-web/src/views/otamanagement/vehicleinformation/components/basicInformation.vue b/jero-web/src/views/otamanagement/vehicleinformation/components/basicInformation.vue index 05f836c76..87a40f6be 100644 --- a/jero-web/src/views/otamanagement/vehicleinformation/components/basicInformation.vue +++ b/jero-web/src/views/otamanagement/vehicleinformation/components/basicInformation.vue @@ -122,13 +122,26 @@
{{$t('Vehicledynamictype')}}
- + + + + + + {{ item.projectName}} + + + +
@@ -178,6 +191,8 @@ return { confirmLoading: false, disabled: false, + formInline:{}, + projectNameList:[], } }, mounted() { From 4d812ed8f42b3b24c6b37e06db45bd5665538b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 23 Mar 2023 17:01:31 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=82=AC=E5=8A=9E?= =?UTF-8?q?=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectDetails/index.vue | 3 +- .../components/certificationDirectory.vue | 8 +++-- .../components/transferList.vue | 16 ++++++--- .../components/transferListvirtal.vue | 36 +++++++++---------- .../components/certificationList/index.vue | 14 +++++--- 5 files changed, 45 insertions(+), 32 deletions(-) diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index 95d0f33d4..b80f7017a 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -143,6 +143,7 @@ @@ -206,7 +207,7 @@ '12': '系统管理员', '13': 'Viewer', '14': '品牌管理员', - '20': '接口人', + '20': '工程接口人', '21': '责任人', '30': '工程接口人', '31': '责任人', diff --git a/jero-web/src/views/projectManagement/components/certificationDirectory.vue b/jero-web/src/views/projectManagement/components/certificationDirectory.vue index 2adc1d21b..e15fbb63f 100644 --- a/jero-web/src/views/projectManagement/components/certificationDirectory.vue +++ b/jero-web/src/views/projectManagement/components/certificationDirectory.vue @@ -11,7 +11,8 @@ style="height: 100%;overflow: auto;padding-bottom: 53px;">
-
+
{{$t('add')}}
@@ -76,7 +77,7 @@ certificationDirectoryAdd, viewFileModel }, - props: ['isDisplayNum'], + props: ['isDisplayNum','roleSwitchingCode'], mixins:[ResizeHeader, ResizeColumnProvide], data() { return { @@ -158,7 +159,8 @@ computed: { columns() { let columnResult = JSON.parse(JSON.stringify(this.columnsAll)) - if (this.isDisplayNum != 2) { + if (this.roleSwitchingCode == 2 && this.isDisplayNum == 2){ + }else{ for (var i = 0; i < columnResult.length; i++) { if (columnResult[i].title === this.$t('operation')) { columnResult.splice(i, 1) diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/transferList.vue b/jero-web/src/views/projectManagement/components/certificationList/components/transferList.vue index 5e6100722..25ccd69f9 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/transferList.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/transferList.vue @@ -15,10 +15,10 @@
-
- {{$t('VirtualListName')}} +
+ {{$t('CertificationListName')}}
-
@@ -87,7 +87,7 @@ selectedRowKeys: [], columns: [ { - title: this.$t('VirtualListName'), + title: this.$t('CertificationListName'), dataIndex: 'name', align: 'left', ellipsis: true, @@ -155,11 +155,17 @@ let query = { pageNo: this.pageNo, pageSize: this.pageSize, - ...this.queryParam + ...this.queryParam, + state:'1', } this.loading = true getAction('/authDummy/authDummyInventoryBaseEO/page', query).then((res) => { if (res.success) { + if (res.result.current > 1 && res.result.records.length == 0) { + this.pageNo = 1 + this.replacePage() + return + } this.dataList = res.result.records || [] this.total = res.result.total this.loading = false diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/transferListvirtal.vue b/jero-web/src/views/projectManagement/components/certificationList/components/transferListvirtal.vue index 9416a4fd8..a23a71c49 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/transferListvirtal.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/transferListvirtal.vue @@ -32,9 +32,9 @@ - + + + {{$t('query')}} {{$t('reset')}} @@ -180,8 +180,8 @@ export default { this.pageNo = 1 this.queryParam = {} this.replacePage() - this.$refs.globalAdvancedQueryRef.resetLine() - this.$refs.globalAdvancedQueryRef.emitCallback() + // this.$refs.globalAdvancedQueryRef.resetLine() + // this.$refs.globalAdvancedQueryRef.emitCallback() }, onChange(page, pageSize) { this.pageNo = page @@ -192,19 +192,19 @@ export default { this.pageSize = pageSize this.replacePage() }, - handleSuperQuery(params, matchType) { - let sqp = {} - if (!params || (params && params.length == 0)) { - sqp['superQueryParams'] = '' - this.$refs.globalAdvancedQueryRef.superQueryFlag = false - } else { - this.$refs.globalAdvancedQueryRef.superQueryFlag = true - sqp['superQueryParams'] = encodeURI(JSON.stringify(params)) - sqp['superQueryMatchType'] = matchType - } - this.queryParamQuery = sqp - this.replacePage() - }, + // handleSuperQuery(params, matchType) { + // let sqp = {} + // if (!params || (params && params.length == 0)) { + // sqp['superQueryParams'] = '' + // this.$refs.globalAdvancedQueryRef.superQueryFlag = false + // } else { + // this.$refs.globalAdvancedQueryRef.superQueryFlag = true + // sqp['superQueryParams'] = encodeURI(JSON.stringify(params)) + // sqp['superQueryMatchType'] = matchType + // } + // this.queryParamQuery = sqp + // this.replacePage() + // }, replacePage() { let query = { // pageNo: this.pageNo, diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index 44cbc496d..7f30ea37e 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -96,7 +96,8 @@
-
+
{{ $t('CertificationDirectory') }}
@@ -377,7 +378,8 @@
- + @@ -477,6 +479,7 @@ export default { name: 'index', + props:['isDisplayNum'], components: { globalAdvancedQuery, ImportFile, @@ -601,14 +604,16 @@ align: 'left', dataIndex: 'category', width: 180, - ellipsis: true + ellipsis: true, + fixed: 'left', }, { title: this.$t('inspectionItems'), align: 'left', dataIndex: 'inspectionItem', width: 180, - ellipsis: true + ellipsis: true, + fixed: 'left', }, { title: this.$t('configurationItem'), @@ -723,7 +728,6 @@ ], selectedRowKeys: [], selectedRowKeysList: [], - isDisplayNum: 2, long: '', toDoIds: [], toDoNotConditions: [], From 67320ac02965fa57711f563ec60669cfcdd1fab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 23 Mar 2023 17:08:09 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=94=B6=E9=9B=86-=E5=88=97=E8=A1=A8-NIO=E7=BC=96=E5=8F=B7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E7=BE=8E=E8=A7=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/components/tableCollection/index.vue | 2 +- jero-web/src/components/tableCollection/index1.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jero-web/src/components/tableCollection/index.vue b/jero-web/src/components/tableCollection/index.vue index 948ab4a67..fe5619225 100644 --- a/jero-web/src/components/tableCollection/index.vue +++ b/jero-web/src/components/tableCollection/index.vue @@ -819,7 +819,7 @@ customRender: 'titleName' } if (res.db_field_name == 'nioNumber') { - this.columns[index].width = 100 + this.columns[index].width = 120 } if (res.click1) { this.columns[index].scopedSlots = { diff --git a/jero-web/src/components/tableCollection/index1.vue b/jero-web/src/components/tableCollection/index1.vue index 1a2c3d641..f8ecad5d1 100644 --- a/jero-web/src/components/tableCollection/index1.vue +++ b/jero-web/src/components/tableCollection/index1.vue @@ -610,7 +610,7 @@ customRender: 'titleName' } if (res.db_field_name == 'nioNumber') { - this.columns[index].width = 100 + this.columns[index].width = 120 } if (res.click) { // 工程接口人列表修改 From e4585df8d7267a75fcaf0aa85d851fe00094ef46 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Thu, 23 Mar 2023 20:47:20 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E6=80=A7=E6=B5=81=E7=A8=8B-=E5=AE=9A=E6=97=B6=E5=8F=91?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E3=80=82=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=82=AC=E5=8A=9E=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/enums/OperatorTypeEnum.java | 9 + .../project/job/VerifyComplianceJob.java | 202 ++++++++++++- .../IProjectLawsInventoryEOService.java | 12 + .../ProjectLawsInventoryEOServiceImpl.java | 284 +++++++++++++++++- 4 files changed, 503 insertions(+), 4 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index 64d746a4f..f39631239 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -67,6 +67,15 @@ public enum OperatorTypeEnum { CERTIFICATION_INVENTORY_DUTY_PERSON_SUBMIT_TASK("认证清单-责任人提交任务","certificationInventoryDutyPersonSubmitTask"), CERTIFICATION_INVENTORY_REVIEW_THROUGH("认证清单-认证工程师审核通过","certificationInventoryReviewThrough"), CERTIFICATION_INVENTORY_REVIEW_RETURNED("认证清单-认证工程师审核退回","certificationInventoryReviewReturned"), + + /** + * 项目库-法规清单 + */ + LAWS_INVENTORY_DESIGN_EXPEDITING("法规清单-催办设计符合性流程","lawsInventoryDesignExpediting"), + LAWS_INVENTORY_VERIFY_EXPEDITING("法规清单-催办验证符合性流程","lawsInventoryVerifyExpediting"), + LAWS_INVENTORY_STUDIO_EXPEDITING("法规清单-studio催办","lawsInventoryStudioExpediting"), + LAWS_INVENTORY_REGULATION_OWNER_EXPEDITING("法规清单-法规工程师催办","lawsInventoryRegulationOwnerExpediting"), + LAWS_INVENTORY_ENGINEERING_INTERFACE_PERSON_EXPEDITING("法规清单-工程接口人催办","lawsInventoryEngineeringInterfacePersonExpediting"), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java index 5a79ae3bb..f22a64f06 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/VerifyComplianceJob.java @@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.constant.enums.MessageType2Enum; import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.constant.enums.MsgColorEnum; +import com.jero.common.util.DateUtils; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.feishu.enums.TemplateInfoEnum2; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.*; +import com.jero.modules.project.enums.ComplianceFlowStatusEnum; import com.jero.modules.project.enums.DesignComplianceStatusEnum; import com.jero.modules.project.enums.JumpLinkEnum; import com.jero.modules.project.enums.SendMsgFlagEnum; @@ -68,12 +71,122 @@ public class VerifyComplianceJob implements Job { private ISysUserService sysUserService; @Autowired private IFeishuService feishuService; + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("验证符合性流程,定时任务开启 ====================================================="); + + // 查询出 结果待提交的数据 + QueryWrapper lawsInventoryEOQueryWrap = new QueryWrapper<>(); + lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getVerifyFlowStatus, ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); + List projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap); + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + // 根据项目进行分组 + Map> lawsInventoryByProjectLibraryIdGroupMap = projectLawsInventoryEOList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getProjectLibraryId)); + for (Map.Entry> lawsInventoryByProjectLibraryIdGroup : lawsInventoryByProjectLibraryIdGroupMap.entrySet()) { + String projectLibraryId = lawsInventoryByProjectLibraryIdGroup.getKey(); + List lawsInventoryListByProjectLibraryId = lawsInventoryByProjectLibraryIdGroup.getValue(); + if(StringUtils.isEmpty(projectLibraryId) || CollectionUtils.isEmpty(lawsInventoryListByProjectLibraryId)){ + continue; + } + + Map> lawsInventoryByVerifyDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId)); + for (Map.Entry> lawsInventoryByVerifyDutyIdGroup : lawsInventoryByVerifyDutyIdGroupMap.entrySet()) { + String verifyDutyId = lawsInventoryByVerifyDutyIdGroup.getKey(); + List verifyDutyDataList = lawsInventoryByVerifyDutyIdGroup.getValue(); + if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(verifyDutyDataList)){ + continue; + } + + List userIdList = Arrays.asList(verifyDutyId.split(",")); + + Map sendMsgDataListMap = this.disposeSendMsgDataList(verifyDutyDataList); + + // 十四天后结束的 + List fourteenDaysList = (List) sendMsgDataListMap.get("fourteenDaysList"); + if(CollectionUtils.isNotEmpty(fourteenDaysList)){ + Date verifyDueDate = fourteenDaysList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = fourteenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,您的任务将于14天后结束,请及时查看处理。"); + params.put("contentEn","Hello! Your task will end in 14 days. Please check and address it in a timely manner. "); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + + // 七天后结束的 + List sevenDaysList = (List) sendMsgDataListMap.get("sevenDaysList"); + if(CollectionUtils.isNotEmpty(sevenDaysList)){ + Date verifyDueDate = sevenDaysList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = sevenDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,您的任务将于7天后结束,请及时查看处理。"); + params.put("contentEn","Hello! Your task will end in 7 days. Please check and address it in a timely manner. "); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + + // 当天结束的 + List currentDaysList = (List) sendMsgDataListMap.get("currentDaysList"); + if(CollectionUtils.isNotEmpty(currentDaysList)){ + Date verifyDueDate = currentDaysList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = currentDaysList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给法规工程师发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,您的任务将于今天到期,请尽快查看处理。"); + params.put("contentEn","Hello! Your task will expire today. Please check and address it ASAP. "); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + // 逾期的 + List overdueList = (List) sendMsgDataListMap.get("overdueList"); + if(CollectionUtils.isNotEmpty(overdueList)){ + Date verifyDueDate = overdueList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = overdueList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + // 给法规工程师发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,您的任务已逾期,请尽快查看处理。"); + params.put("contentEn","Hello! Your task is overdue. Please check and address it ASAP. "); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION3.getValue(),params); + } + } + } + } + //查询出已经启动了验证符合性流程的数据。 并且流程没有结束。 - QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); + /*QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); queryProjectTaskInventoryWrapper.isNotNull("verify_p_id"); List status = new ArrayList<>(); status.add(DesignComplianceStatusEnum.TO_SUBMIT.getValue()); @@ -364,7 +477,92 @@ public class VerifyComplianceJob implements Job { } } } - } + }*/ log.info("验证符合性流程,定时任务结束 ====================================================="); } + + private Map disposeSendMsgDataList(List projectLawsInventoryEOList) { + Map result = new HashMap<>(); + Date currentDate = new Date(); + String currentDateStr = sdf.format(currentDate); + + //获取十四天后的时间 + Calendar fourteenCalendar=new GregorianCalendar(); + fourteenCalendar.setTime(new Date()); + fourteenCalendar.add(Calendar.DATE,14); + Date fourteenDays = fourteenCalendar.getTime(); + String fourteenDaysStr = sdf.format(fourteenDays); + + //获取七天后的时间 + Calendar sevenCalendar=new GregorianCalendar(); + sevenCalendar.setTime(new Date()); + sevenCalendar.add(Calendar.DATE,7); + Date sevenDays = sevenCalendar.getTime(); + String sevenDaysStr = sdf.format(sevenDays); + + // 十四天后结束的 + List fourteenDaysList = projectLawsInventoryEOList.stream().filter(data -> { + boolean flag = false; + if(data.getVerifyDueDate() != null){ + if (StringUtils.equals(fourteenDaysStr, sdf.format(data.getVerifyDueDate()))) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + // 七天后结束的 + List sevenDaysList = projectLawsInventoryEOList.stream().filter(data -> { + boolean flag = false; + if(data.getVerifyDueDate() != null){ + if (StringUtils.equals(sevenDaysStr, sdf.format(data.getVerifyDueDate()))) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + // 当天结束的 + List currentDaysList = projectLawsInventoryEOList.stream().filter(data -> { + boolean flag = false; + //结束日期是当前日期 + if(data.getVerifyDueDate() != null){ + if (StringUtils.equals(currentDateStr, sdf.format(data.getVerifyDueDate()))) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + // 逾期的 3天 7天 14天 + List overdueList = projectLawsInventoryEOList.stream().filter(data -> { + Calendar day3Later = new GregorianCalendar(); + day3Later.setTime(data.getVerifyDueDate()); + day3Later.add(Calendar.DATE, 3); + Date overdue3Days = day3Later.getTime(); + + Calendar day7Later = new GregorianCalendar(); + day7Later.setTime(data.getVerifyDueDate()); + day7Later.add(Calendar.DATE, 7); + Date overdue7Days = day7Later.getTime(); + + Calendar day14Later = new GregorianCalendar(); + day14Later.setTime(data.getVerifyDueDate()); + day14Later.add(Calendar.DATE, 14); + Date overdue14Days = day14Later.getTime(); + + boolean flag = ( + StringUtils.equals(sdf.format(overdue3Days), sdf.format(currentDate)) + || StringUtils.equals(sdf.format(overdue7Days), sdf.format(currentDate)) + || StringUtils.equals(sdf.format(overdue14Days), sdf.format(currentDate)) + ); + return flag; + }).collect(Collectors.toList()); + + result.put("currentDaysList",currentDaysList); + result.put("sevenDaysList",sevenDaysList); + result.put("overdueList",overdueList); + result.put("fourteenDaysList",fourteenDaysList); + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index ca0d79d06..fd885984d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -214,4 +214,16 @@ public interface IProjectLawsInventoryEOService extends IService projectLawsInventoryEOS); + + /** + * 法规清单根据设计符合性截至日期顺序排序 + * @param projectLawsInventoryEOS + */ + void lawsInventoryEOListSortByDesignDueDate(List projectLawsInventoryEOS); + + /** + * 法规清单根据验证符合性截至日期顺序排序 + * @param projectLawsInventoryEOS + */ + void lawsInventoryEOListSortByVerifyDueDate(List projectLawsInventoryEOS); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index bb1c9f47f..5f948f61e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -572,6 +572,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl params = new HashMap<>(); + params.put("contentCn","您好,"+currentUser.getUsername()+"向您分发了该任务,请及时查看处理。"); + params.put("contentEn","Hello! "+currentUser.getUsername()+" has assigned this task to you. Please check and address it in a timely manner."); + params.put("projectLibraryId", projectLawsInventoryEO.getProjectLibraryId()); + params.put("endTime",endTime); + params.put("userIdList",Arrays.asList(regulationOwnerId.split(","))); + params.put("serialNumbers",projectLawsInventoryEO.getSerialNumber()); + this.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + + // 验证符合性 结果待审查、结果待提交 标识 判断法规工程师是否被修改了 如果被修改了,给新的法规工程师发消息 + boolean toBeReviewedVerifyFlag = ( + StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(projectLawsInventoryOld.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + ); + if (toBeReviewedVerifyFlag) { + if(projectLawsInventoryEO.getVerifyDueDate() != null){ + endTime = DateUtils.formatDate(projectLawsInventoryEO.getVerifyDueDate()); + } + regulationOwnerId = projectLawsInventoryEO.getRegulationOwnerId(); + // 给法规工程师发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,"+currentUser.getUsername()+"向您分发了该任务,请及时查看处理。"); + params.put("contentEn","Hello! "+currentUser.getUsername()+" has assigned this task to you. Please check and address it in a timely manner."); + params.put("projectLibraryId", projectLawsInventoryEO.getProjectLibraryId()); + params.put("endTime",endTime); + params.put("userIdList",Arrays.asList(regulationOwnerId.split(","))); + params.put("serialNumbers",projectLawsInventoryEO.getSerialNumber()); + this.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + } + } } private void setProjectLawsInventoryPermission(String userId, String projectId,String lawsInventoryId,Date now, List adds, String belong) { @@ -9333,6 +9386,7 @@ 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); + this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE1.getValue(),params); + } + } + } + + // 催办类型 可以只催设计符合性 也可以只催验证符合性 + String expeditingType = json.getString("expeditingType"); + if(StringUtils.contains(expeditingType,OperatorTypeEnum.LAWS_INVENTORY_DESIGN_EXPEDITING.getValue())){ + // 催办设计符合性流程状态为 清单待确认的 责任人 + List toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(toBeConfirmedLawsInventoryList)) { + Map> designDutyGroupMap = toBeConfirmedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId)); + for (Map.Entry> designDutyMap : designDutyGroupMap.entrySet()) { + String designDutyId = designDutyMap.getKey(); + List lawsInventoryEOList = designDutyMap.getValue(); + if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + + this.lawsInventoryEOListSortByDesignDueDate(lawsInventoryEOList); + Date designDueDate = lawsInventoryEOList.get(0).getDesignDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(designDutyId.split(",")); + // 给设计符合性流程责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请及时查看确认以下任务要求,谢谢!"); + params.put("contentEn","Hello! Please check and confirm the following task requirement in a timely manner. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params); + } + } + + // 催办设计符合性流程状态为 结果待提交的 责任人 + List toBeSubmitLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(toBeSubmitLawsInventoryList)) { + Map> designDutyGroupMap = toBeSubmitLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId)); + for (Map.Entry> designDutyMap : designDutyGroupMap.entrySet()) { + String designDutyId = designDutyMap.getKey(); + List lawsInventoryEOList = designDutyMap.getValue(); + if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList); + + Date designDueDate = lawsInventoryEOList.get(0).getVerifyDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(designDutyId.split(",")); + // 给设计符合性流程责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请尽快查看处理此项任务,谢谢!"); + params.put("contentEn","Hello! Please check and address the task ASAP. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.sendMessageByTemplateId(TemplateInfoEnum2.DESIGN_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + } + } + if(StringUtils.contains(expeditingType,OperatorTypeEnum.LAWS_INVENTORY_VERIFY_EXPEDITING.getValue())){ + // 催办验证符合性流程状态为 清单待确认的 责任人 + List toBeConfirmedLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(toBeConfirmedLawsInventoryList)) { + Map> verifyDutyGroupMap = toBeConfirmedLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId)); + for (Map.Entry> verifyDutyMap : verifyDutyGroupMap.entrySet()) { + String verifyDutyId = verifyDutyMap.getKey(); + List lawsInventoryEOList = verifyDutyMap.getValue(); + if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + + this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList); + Date verifyDueDate = lawsInventoryEOList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(verifyDutyId.split(",")); + // 给设计符合性流程责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请及时查看确认以下任务要求,谢谢!"); + params.put("contentEn","Hello! Please check and confirm the following task requirement in a timely manner. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_LIST_RELEASE2.getValue(),params); + } + } + + // 催办验证符合性流程状态为 结果待提交的 责任人 + List toBeSubmitLawsInventoryList = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag =false; + if (StringUtils.equals(lawsInventory.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(toBeSubmitLawsInventoryList)) { + Map> verifyDutyGroupMap = toBeSubmitLawsInventoryList.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getVerifyDutyId)); + for (Map.Entry> verifyDutyMap : verifyDutyGroupMap.entrySet()) { + String verifyDutyId = verifyDutyMap.getKey(); + List lawsInventoryEOList = verifyDutyMap.getValue(); + if(StringUtils.isEmpty(verifyDutyId) || CollectionUtils.isEmpty(lawsInventoryEOList)){ + continue; + } + this.lawsInventoryEOListSortByVerifyDueDate(lawsInventoryEOList); + + Date verifyDueDate = lawsInventoryEOList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = lawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getSerialNumber).distinct().collect(Collectors.joining(",")); + + List userIdList = Arrays.asList(verifyDutyId.split(",")); + // 给设计符合性流程责任人发消息 + Map params = new HashMap<>(); + params.put("contentCn","您好,请尽快查看处理此项任务,谢谢!"); + params.put("contentEn","Hello! Please check and address the task ASAP. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + this.sendMessageByTemplateId(TemplateInfoEnum2.VALIDATION_COMPLIANCE_CONFIRMATION1.getValue(),params); + } + } + } + + /*//获取已经发起的 任务确认流程信息(当前处理人) JSONObject queryFlowCurrentTaskJson = new JSONObject(); queryFlowCurrentTaskJson.put("projectLawsInventoryIdList",projectLawsInventoryIdList); queryFlowCurrentTaskJson.put("flowType",FlowTypeEnum.RWQRLC.getValue()); @@ -9556,7 +9810,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectLawsInventoryEOS) { + Collections.sort(projectLawsInventoryEOS, new Comparator() { + @Override + public int compare(ProjectLawsInventoryEO p1, ProjectLawsInventoryEO p2) { + if(p1.getDesignDueDate() != null && p2.getDesignDueDate() != null){ + return p1.getDesignDueDate().compareTo(p2.getDesignDueDate()); + } + return 1; + } + }); + } + + @Override + public void lawsInventoryEOListSortByVerifyDueDate(List projectLawsInventoryEOS) { + Collections.sort(projectLawsInventoryEOS, new Comparator() { + @Override + public int compare(ProjectLawsInventoryEO p1, ProjectLawsInventoryEO p2) { + if(p1.getDesignDueDate() != null && p2.getDesignDueDate() != null){ + return p1.getDesignDueDate().compareTo(p2.getDesignDueDate()); + } + return 1; + } + }); + } + }