diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index 8ad35e0cf..079c40133 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -423,4 +423,14 @@ ALTER TABLE `laws_weilai`.`params_report_config_data` -- 流程历史表,增加字段 附件id 2023-3-20 未同步生产环境 ALTER TABLE `process_history` - ADD COLUMN `approval_file` varchar(2000) NULL COMMENT '附件id,多个之间使用英文逗号分隔' AFTER `project_laws_inventory_id`; \ No newline at end of file + ADD COLUMN `approval_file` varchar(2000) NULL COMMENT '附件id,多个之间使用英文逗号分隔' AFTER `project_laws_inventory_id`; + +-- 项目库-相关人员维护表,增加字段 工程接口人法规工程师设置,工程接口人认证工程师设置 2023-3-22 未同步生产环境 +ALTER TABLE `project_related_personnel` + ADD COLUMN `engineer_law_set` varchar(500) NULL COMMENT '工程接口人法规工程师设置' AFTER `law_engineer`; + ADD COLUMN `engineer_att_set` varchar(500) NULL COMMENT '工程接口人认证工程师设置' AFTER `certification_engineer`; + +-- 项目库-法规/认证任务计划 (各阶段确认进度) 表,增加字段 认证提交 2023-3-23 未同步生产环境 +ALTER TABLE `project_task_planning` + ADD COLUMN `certification_submission` datetime(0) NULL COMMENT '认证提交' AFTER `attestation_start_time`; + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java index 3bcf71247..30dd70050 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java @@ -67,6 +67,12 @@ public class ProjectTaskPlanning implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd") private Date attestationEndTime; + /**认证提交*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date certificationSubmission; + + /**验证符合性确认截止时间*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java index 4d7cbc3ac..6d2563696 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java @@ -18,6 +18,8 @@ public enum ProjectTaskPlanningNameEnum { PREHOMO_DEADLINE("摸底开始","Get Started"), // name:Pre-Homo value:Pre-Homo ATTESTATION_START_TIME("认证开始","Certification Start"),// name:认证开始 value:Certification begins VERIFY_DEADLINE("验证核查","Verification And Verification"), + CERTIFICATION_SUBMISSION("认证提交","Certification Submission"), + ; String name; String value; 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 a0dc66fd9..d1befe3d5 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 @@ -4,23 +4,28 @@ 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.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectNameInfoEO; import com.jero.modules.project.entity.ProjectYearNameInfoEO; +import com.jero.modules.project.enums.ComplianceFlowStatusEnum; import com.jero.modules.project.enums.InventoryAffirmStatusEnum; import com.jero.modules.project.enums.JumpLinkEnum; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; 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 lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.Job; @@ -60,6 +65,11 @@ public class TaskAffirmJob implements Job { @Autowired private IBussDocumentLibraryEOService bussDocumentLibraryEOService; + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + /** * 任务确认流程定时 @@ -71,6 +81,183 @@ public class TaskAffirmJob implements Job { log.info("任务确认流程,定时任务开启 ====================================================="); QueryWrapper queryWrapperInventory = new QueryWrapper<>(); + // 获取出 任务待确认 的数据(这个状态的数据任务在责任人上) + queryWrapperInventory.and(queryWrapper -> { + queryWrapper.lambda().eq(ProjectLawsInventoryEO::getDesignFlowStatus, ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); + }); + List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory); + + 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> lawsInventoryByDesignDutyIdGroupMap = lawsInventoryListByProjectLibraryId.stream().collect(Collectors.groupingBy(ProjectLawsInventoryEO::getDesignDutyId)); + for (Map.Entry> lawsInventoryByDesignDutyIdGroup : lawsInventoryByDesignDutyIdGroupMap.entrySet()) { + String designDutyId = lawsInventoryByDesignDutyIdGroup.getKey(); + List designDutyDataList = lawsInventoryByDesignDutyIdGroup.getValue(); + if(StringUtils.isEmpty(designDutyId) || CollectionUtils.isEmpty(designDutyDataList)){ + continue; + } + + List userIdList = Arrays.asList(designDutyId.split(",")); + + Map sendMsgDataListMap = this.disposeSendMsgDataList(designDutyDataList); + + // 三条后结束的 + List threeDaysList = (List) sendMsgDataListMap.get("threeDaysList"); + if(CollectionUtils.isNotEmpty(threeDaysList)){ + Date designDueDate = threeDaysList.get(0).getDesignDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + String serialNumbers = threeDaysList.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("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); + } + // 当天结束的 + List currentDaysList = (List) sendMsgDataListMap.get("currentDaysList"); + if(CollectionUtils.isNotEmpty(currentDaysList)){ + Date designDueDate = currentDaysList.get(0).getDesignDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + 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("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); + } + // 逾期的 + List overdueList = (List) sendMsgDataListMap.get("overdueList"); + if(CollectionUtils.isNotEmpty(overdueList)){ + Date designDueDate = overdueList.get(0).getDesignDueDate(); + String endTime = ""; + if(designDueDate != null){ + endTime = DateUtils.formatDate(designDueDate); + } + 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("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); + } + } + // 验证符合性 + 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 threeDaysList = (List) sendMsgDataListMap.get("threeDaysList"); + if(CollectionUtils.isNotEmpty(threeDaysList)){ + Date verifyDueDate = threeDaysList.get(0).getVerifyDueDate(); + String endTime = ""; + if(verifyDueDate != null){ + endTime = DateUtils.formatDate(verifyDueDate); + } + String serialNumbers = threeDaysList.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("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + params.put("flowTypeCn","验证符合性流程"); + params.put("flowTypeEn","Validation Compliance Process"); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.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! This task will expire today. Please check and address it ASAP. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + params.put("flowTypeCn","验证符合性流程"); + params.put("flowTypeEn","Validation Compliance Process"); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION4.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! This task is overdue. Please address it ASAP. Thank you!"); + params.put("projectLibraryId",projectLibraryId); + params.put("endTime",endTime); + params.put("userIdList",userIdList); + params.put("serialNumbers",serialNumbers); + params.put("flowTypeCn","验证符合性流程"); + params.put("flowTypeEn","Validation Compliance Process"); + this.projectLawsInventoryEOService.sendMessageByTemplateId(TemplateInfoEnum2.REGULATION_TASK_CONFIRMATION5.getValue(),params); + } + } + } + + } + + /*QueryWrapper queryWrapperInventory = new QueryWrapper<>(); queryWrapperInventory.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, InventoryAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory); if (ObjectUtils.isNotEmpty(projectLawsInventoryEOList)) { @@ -290,8 +477,59 @@ public class TaskAffirmJob implements Job { } } } - } + }*/ log.info("任务确认流程,定时任务结束 ====================================================="); } + + private Map disposeSendMsgDataList(List projectLawsInventoryEOList) { + Map result = new HashMap<>(); + Date currentDate = new Date(); + String currentDateStr = sdf.format(currentDate); + + //获取后三天的时间 + Calendar calendar=new GregorianCalendar(); + calendar.setTime(new Date()); + calendar.add(Calendar.DATE,3); + Date threeDays = calendar.getTime(); + String threeDaysStr = sdf.format(threeDays); + + // 当天结束的 + List currentDaysList = projectLawsInventoryEOList.stream().filter(data -> { + boolean flag = false; + //结束日期是当前日期 + if(data.getInventoryAffirmDueDate() != null){ + if (StringUtils.equals(currentDateStr, sdf.format(data.getInventoryAffirmDueDate()))) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + // 三天后结束的 + List threeDaysList = projectLawsInventoryEOList.stream().filter(data -> { + boolean flag = false; + if(data.getInventoryAffirmDueDate() != null){ + if (StringUtils.equals(threeDaysStr, sdf.format(data.getInventoryAffirmDueDate()))) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + + // 逾期的 + 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()))); + } + return flag; + }).collect(Collectors.toList()); + + result.put("currentDaysList",currentDaysList); + result.put("threeDaysList",threeDaysList); + result.put("overdueList",overdueList); + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java index 6de8959a8..9302162bf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java @@ -270,6 +270,27 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl {{ $t('deleteLib') }} @@ -1220,7 +1229,11 @@ TaskKey = 'zrrqr' } else if (row.designFlowStatus == 'Results to be submitted') { TaskKey = 'zrrtjjfw' - } else if (row.designFlowStatus == 'Results to be reviewed') { + } else if (row.designFlowStatus == 'Results to be reviewed' || + row.designFlowStatus == 'Compliance' || + row.designFlowStatus == 'Non-Compliance' || + row.designFlowStatus == 'To be tracked' || + row.designFlowStatus == 'NA') { TaskKey = 'fggcssh' } query = { @@ -1246,7 +1259,11 @@ TaskKey = 'zrrqr' } else if (row.verifyFlowStatus == 'Results to be submitted') { TaskKey = 'zrrtjjfw' - } else if (row.verifyFlowStatus == 'Results to be reviewed') { + } else if (row.verifyFlowStatus == 'Results to be reviewed' || + row.verifyFlowStatus == 'Compliance' || + row.verifyFlowStatus == 'Non-Compliance' || + row.verifyFlowStatus == 'To be tracked' || + row.verifyFlowStatus == 'NA') { TaskKey = 'fggcssh' } query = { @@ -1591,7 +1608,20 @@ if (this.dataSource && this.dataSource.length > 0) { let isTrue for (let i = 0; i < this.dataSource.length; i++) { - if (this.dataSource[i].taskAffirmStatus == 'Accepted' && this.dataSource[i].inventoryAffirmStatus == 'Accepted') { + if ((this.dataSource[i].verifyFlowStatus == 'Results to be submitted' || + this.dataSource[i].verifyFlowStatus == 'Results to be reviewed' || + this.dataSource[i].verifyFlowStatus == 'Compliance' || + this.dataSource[i].verifyFlowStatus == 'Non-Compliance' || + this.dataSource[i].verifyFlowStatus == 'To be tracked' || + 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' + )) { isTrue = true } else { isTrue = false @@ -1711,8 +1741,18 @@ for (let i = 0; i < this.dataSource.length; i++) { for (let j = 0; j < selectedRowKeys.length; j++) { if (this.dataSource[i].id == selectedRowKeys[j]) { - if (this.dataSource[i].verifyFlowStatus == 'List to be released' || - this.dataSource[i].designFlowStatus == 'List to be released') { + if ( + (this.dataSource[i].verifyFlowStatus == 'List to be released' || + this.dataSource[i].verifyFlowStatus == 'Compliance' || + this.dataSource[i].verifyFlowStatus == 'Non-Compliance' || + this.dataSource[i].verifyFlowStatus == 'To be tracked' || + this.dataSource[i].verifyFlowStatus == 'NA') + && + (this.dataSource[i].designFlowStatus == 'List to be released' || + 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 { isTrue = false diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index 1fa78f812..e06252266 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -109,6 +109,25 @@
+ + + {{$t('certificationSubmission')}} +
+ + + +
+
+ +
+
{{$t('certificationEnd')}} diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue index 9b060963e..8d89b4242 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/confirmationDrawer.vue @@ -56,9 +56,9 @@ {{$t('resultofhandling')}}
- + + v-model="formInline.flag"> {{$t('accept')}} @@ -130,6 +130,7 @@ import uploadFile from '@/components/uploadFile/file' import { getAction, postAction, putAction, deleteAction } from '@/api/manage' import { mapGetters } from 'vuex' + import moment from 'moment' export default { name: 'confirmationDrawer', @@ -226,12 +227,12 @@ ], processableList: [], noProcessableList: [], - loading:false, + loading: false, rules: { - disposeResult: [ + flag: [ { required: true, - message: this.$t('reviewResults') + this.$t('cannotEmpty'), + message: this.$t('resultofhandling') + this.$t('cannotEmpty'), trigger: 'change' } ], @@ -296,24 +297,37 @@ this.visible = false }, determineClick() { - this.$refs.ruleForm.validate(valid => { - if (valid) { - let query = { - userid: this.userInfo().id, - taskId: this.queryData.taskId || this.queryData.taskIds, - } - postAction('/workFlow/completeTask', query).then((res) => { - if (res.success) { - this.$message.success(this.$t('OperationSuccessful')) - this.visible = false - this.$emit('confirmationdrawerList') - } else { - this.loading = false - this.$message.warning(res.message) + if (this.processableList && this.processableList.length > 0) { + this.$refs.ruleForm.validate(valid => { + if (valid) { + this.loading = true + let taskIds = [] + this.processableList.forEach(res => { + taskIds.push(res.taskId) + }) + let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + let query = { + ...this.formInline, + taskIds: taskIds.join(','), + userId: this.userInfo().id, + handlingTime: handlingTime } - }) - } - }) + postAction('/workFlow/completeTaskBatch', query).then((res) => { + if (res.success) { + this.$message.success(this.$t('OperationSuccessful')) + this.visible = false + this.loading = false + this.$emit('confirmationdrawerList') + } else { + this.loading = false + this.$message.warning(this.$t('operationFailed')) + } + }) + } + }) + } else { + this.$message.warning(this.$t('thereAreCurrentlyNoRegulationsToHandle')) + } }, clickButtonToUpload(item) { this.$refs.uploadFile.perentHandleFunc() diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/reviewedByThePersonInCharge.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/reviewedByThePersonInCharge.vue index c5972a464..230759ce6 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/reviewedByThePersonInCharge.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/reviewedByThePersonInCharge.vue @@ -120,7 +120,7 @@ disposeResult: [ { required: true, - message: this.$t('reviewResults') + this.$t('cannotEmpty'), + message: this.$t('resultofhandling') + this.$t('cannotEmpty'), trigger: 'change' } ], @@ -159,7 +159,6 @@ } }, mounted() { - console.log(this.query) this.formInline.approvalOpinion = '' this.formInline = { ...this.formInline } // this.query.isDisplay = JSON.parse(this.query.isDisplay)