From 9c332a4d1ba7c6fa56b8aff1586b38ba2d5f609f Mon Sep 17 00:00:00 2001 From: wxyclub Date: Thu, 14 Dec 2023 15:04:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?bug:=20=E6=B5=81=E7=A8=8B=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=96=87=E4=BB=B6=E6=94=B9=E6=88=90=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=80=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 32 ++++++++++++++++++- .../business_auth/LawsUserInfoService.java | 3 ++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index 70c2ca40..17630a45 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -881,10 +881,17 @@ public class TodoTaskController extends BaseAction { } JSONObject object3 = JSONObject.parseObject(list.get(0).getMesg()); + + // 对文件排序 + compareFile("FBGBUSS",object3); + compareFile("BZSMBUSS",object3); + compareFile("LSBBBUSS",object3); + compareFile("QTWJBUSS",object3); + JSONArray arr2 = new JSONArray(); object3.put("taskBreak", arr2); processNew.setMesg(object3.toJSONString()); - QueryWrapper wrapper = new QueryWrapper(); + QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("TODO_ID",processNew.getId()); wrapper.eq("EXEC_TYPE",2); wrapper.eq("EXEC_STATUS",0); @@ -3317,4 +3324,27 @@ public class TodoTaskController extends BaseAction { return processNew; } + + /** + * 用于对文件字段的文件根据上传时间倒序 + * @param attFileField 文件字段 + * @param object 传输对象 + */ + private void compareFile(String attFileField, JSONObject object) { + String attFileId = object.getString(attFileField); + // 字段不为空并且文件数量大于1,才需要排序 + if (StringUtils.isNotBlank(attFileId) && attFileId.split(",").length > 1) { + ResponseMessage> attInfoByAttIds = lawsUserInfoService.getAttInfoByAttIds(attFileId); + List attFileEOList = attInfoByAttIds.getData(); + attFileEOList.sort(Comparator.comparing(AttFileEO::getCreationTime).reversed()); + List attFileIdList = new ArrayList<>(); + List attFileNameList = new ArrayList<>(); + for (AttFileEO attFileEO : attFileEOList) { + attFileIdList.add(attFileEO.getId()); + attFileNameList.add(attFileEO.getOldFileName()); + } + object.put(attFileField, String.join(",", attFileIdList)); + object.put(attFileField + "Name", String.join(",", attFileNameList)); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java index 7b7c7914..599ab5e8 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java @@ -194,6 +194,9 @@ public interface LawsUserInfoService { @GetMapping("/lawss/SarBussStandAttrInfo/getBussAttrInfo") public Map getBussAttrInfo(@RequestParam("standId") String standId); + @GetMapping("/att/attFile/getMultiFileInfos") + public ResponseMessage> getAttInfoByAttIds(@RequestParam("fileIds") String fileIds); + @PostMapping("/sarStandUnqualified/sar-stand-unqualified/updateBatch") public ResponseMessage updateBatch(@RequestBody List sarStandUnqualified); From 43f9b40b52ad027d74f506bb06477101503cb172 Mon Sep 17 00:00:00 2001 From: wxyclub Date: Fri, 15 Dec 2023 10:06:34 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E6=B5=81=E7=A8=8B=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=80=92=E5=BA=8F=E6=94=B9=E4=B8=BA=E4=B8=BB=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index 17630a45..62252830 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -882,12 +882,6 @@ public class TodoTaskController extends BaseAction { JSONObject object3 = JSONObject.parseObject(list.get(0).getMesg()); - // 对文件排序 - compareFile("FBGBUSS",object3); - compareFile("BZSMBUSS",object3); - compareFile("LSBBBUSS",object3); - compareFile("QTWJBUSS",object3); - JSONArray arr2 = new JSONArray(); object3.put("taskBreak", arr2); processNew.setMesg(object3.toJSONString()); @@ -3324,27 +3318,4 @@ public class TodoTaskController extends BaseAction { return processNew; } - - /** - * 用于对文件字段的文件根据上传时间倒序 - * @param attFileField 文件字段 - * @param object 传输对象 - */ - private void compareFile(String attFileField, JSONObject object) { - String attFileId = object.getString(attFileField); - // 字段不为空并且文件数量大于1,才需要排序 - if (StringUtils.isNotBlank(attFileId) && attFileId.split(",").length > 1) { - ResponseMessage> attInfoByAttIds = lawsUserInfoService.getAttInfoByAttIds(attFileId); - List attFileEOList = attInfoByAttIds.getData(); - attFileEOList.sort(Comparator.comparing(AttFileEO::getCreationTime).reversed()); - List attFileIdList = new ArrayList<>(); - List attFileNameList = new ArrayList<>(); - for (AttFileEO attFileEO : attFileEOList) { - attFileIdList.add(attFileEO.getId()); - attFileNameList.add(attFileEO.getOldFileName()); - } - object.put(attFileField, String.join(",", attFileIdList)); - object.put(attFileField + "Name", String.join(",", attFileNameList)); - } - } } From 4b42ab680041bfa0bb22d59fe382e737a1ad2e6d Mon Sep 17 00:00:00 2001 From: wxyclub Date: Fri, 15 Dec 2023 16:01:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=94=BF=E7=AD=96=E8=AF=BE=E9=A2=98?= =?UTF-8?q?=E5=85=A5=E4=BC=9A=E5=8F=82=E4=BC=9A=E9=A9=B3=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=E5=88=A0=E9=99=A4OA=E4=BB=A3=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectorApprovalAfter.java | 33 +++++++++++++++++ .../MinisterApprovalAfter.java | 33 +++++++++++++++++ .../PRGAMStartAfter.java | 5 +++ .../RevisionInformationAfter.java | 5 +++ .../PRGEInspectorApprovalAfter.java | 33 +++++++++++++++++ .../PRGEMinisterConfirmAfter.java | 37 +++++++++++++++++-- .../PRGEStartAfter.java | 6 ++- .../RevisionInformationAfter.java | 4 ++ 8 files changed, 151 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java index 9c11ae5c..31c9c2d3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/InspectorApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupAttendMeeting; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -29,6 +31,9 @@ public class InspectorApprovalAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + // OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -50,6 +55,13 @@ public class InspectorApprovalAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("presidentId"))) { delegateTask.setVariable("presidentId", object.getString("presidentId")); nextUserList.add(object.getString("presidentId")); + List completedInspectorIdList = new ArrayList<>(); + List completedInspectorIdList1 = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList1 != null && !completedInspectorIdList1.isEmpty()) { + completedInspectorIdList.addAll(completedInspectorIdList1); + } + completedInspectorIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedInspectorIdList",completedInspectorIdList); taskInfo = "批准"; } else { throw new ActivitiException("1#2公司副总不存在,请配置相关人员"); @@ -64,6 +76,27 @@ public class InspectorApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List inspectorIdList = new ArrayList(delegateTask.getVariable("inspectorIdList", List.class)); + if (!inspectorIdList.isEmpty()) { + List completedInspectorIdList = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList != null && !completedInspectorIdList.isEmpty()) { + inspectorIdList.removeAll(completedInspectorIdList); + } + inspectorIdList.remove(delegateTask.getAssignee()); + } + if (!inspectorIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, inspectorIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java index 9a5b879f..540d7034 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/MinisterApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupAttendMeeting; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -31,6 +33,9 @@ public class MinisterApprovalAfter implements TaskListener { // 流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + //OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + // 根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -52,6 +57,13 @@ public class MinisterApprovalAfter implements TaskListener { List inspectorIdList = Arrays.asList(object.getString("inspectorId").split(",")); delegateTask.setVariable("inspectorIdList", inspectorIdList); nextUserList.addAll(inspectorIdList); + List completedMinisterIdList = new ArrayList<>(); + List completedMinisterIdList1 = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList1 != null && !completedMinisterIdList1.isEmpty()) { + completedMinisterIdList.addAll(completedMinisterIdList1); + } + completedMinisterIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedMinisterIdList",completedMinisterIdList); } else { throw new ActivitiException("1#2法规认证部副总监不存在,请配置相关人员"); } @@ -64,6 +76,27 @@ public class MinisterApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List ministerIdList = new ArrayList<>(delegateTask.getVariable("ministerIdList", List.class)); + if (!ministerIdList.isEmpty()) { + List completedMinisterIdList = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList != null && !completedMinisterIdList.isEmpty()) { + ministerIdList.removeAll(completedMinisterIdList); + } + ministerIdList.remove(delegateTask.getAssignee()); + } + if (!ministerIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, ministerIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java index e62a5ee3..59fc7801 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/PRGAMStartAfter.java @@ -41,7 +41,12 @@ public class PRGAMStartAfter implements TaskListener { List nextUserList = new ArrayList<>(); if(StringUtils.isNotBlank(object.getString("ministerId"))){ List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java index f5519a10..472fa434 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupAttendMeeting/RevisionInformationAfter.java @@ -43,7 +43,12 @@ public class RevisionInformationAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("ministerId"))) { List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java index f4e9b943..88a96f53 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEInspectorApprovalAfter.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupEnrollment; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -8,6 +9,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; @@ -29,6 +31,9 @@ public class PRGEInspectorApprovalAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + // OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -49,6 +54,13 @@ public class PRGEInspectorApprovalAfter implements TaskListener { if (StringUtils.isNotBlank(object.getString("presidentId"))) { delegateTask.setVariable("presidentId", object.getString("presidentId")); nextUserList.add(object.getString("presidentId")); + List completedInspectorIdList1 = delegateTask.getVariable("completedInspectorIdList", List.class); + List completedInspectorIdList = new ArrayList<>(); + if (completedInspectorIdList1 != null && !completedInspectorIdList1.isEmpty()) { + completedInspectorIdList.addAll(completedInspectorIdList1); + } + completedInspectorIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedInspectorIdList",completedInspectorIdList); } else { throw new ActivitiException("1#2公司副总不存在,请配置相关人员"); } @@ -61,6 +73,27 @@ public class PRGEInspectorApprovalAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } + // 驳回后,把其他审批人的代办转为已办 + List inspectorIdList = new ArrayList(delegateTask.getVariable("inspectorIdList", List.class)); + if (!inspectorIdList.isEmpty()) { + List completedInspectorIdList = delegateTask.getVariable("completedInspectorIdList", List.class); + if (completedInspectorIdList != null && !completedInspectorIdList.isEmpty()) { + inspectorIdList.removeAll(completedInspectorIdList); + } + inspectorIdList.remove(delegateTask.getAssignee()); + } + if (!inspectorIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, inspectorIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java index bde9dd59..666fa8b2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEMinisterConfirmAfter.java @@ -9,15 +9,14 @@ import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.lang.StringUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * 政策课题入会审核后 @@ -32,6 +31,9 @@ public class PRGEMinisterConfirmAfter implements TaskListener { //流程信息 IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + //OA接口 + WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class); + //根据流程id找到流程信息 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -55,6 +57,13 @@ public class PRGEMinisterConfirmAfter implements TaskListener { List inspectorIdList = Arrays.asList(object.getString("inspectorId").split(",")); delegateTask.setVariable("inspectorIdList",inspectorIdList); nextUserList.addAll(inspectorIdList); + List completedMinisterIdList1 = delegateTask.getVariable("completedMinisterIdList", List.class); + List completedMinisterIdList = new ArrayList<>(); + if (completedMinisterIdList1 != null && !completedMinisterIdList1.isEmpty()) { + completedMinisterIdList.addAll(completedMinisterIdList1); + } + completedMinisterIdList.add(delegateTask.getAssignee()); + delegateTask.setVariable("completedMinisterIdList",completedMinisterIdList); taskInfo = "审定"; } else { throw new ActivitiException("1#2法规认证部副总监不存在,请配置相关人员"); @@ -69,7 +78,27 @@ public class PRGEMinisterConfirmAfter implements TaskListener { } else { throw new ActivitiException("1#2起草人不存在,请配置相关人员"); } - + // 驳回后,把其他审批人的代办转为已办 + List ministerIdList = new ArrayList<>(delegateTask.getVariable("ministerIdList", List.class)); + if (!ministerIdList.isEmpty()) { + List completedMinisterIdList = delegateTask.getVariable("completedMinisterIdList", List.class); + if (completedMinisterIdList != null && !completedMinisterIdList.isEmpty()) { + ministerIdList.removeAll(completedMinisterIdList); + } + ministerIdList.remove(delegateTask.getAssignee()); + } + if (!ministerIdList.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId()); + wrapper.eq(BusProcessNew::getTaskInfo, delegateTask.getName()); + wrapper.in(BusProcessNew::getUserId, ministerIdList); + List list = busBean.list(wrapper); + if (list != null && !list.isEmpty()) { + for (BusProcessNew busProcessNew : list) { + webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId()); + } + } + } } // 存储当前节点意见 diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java index 522f1676..b85e2e04 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/PRGEStartAfter.java @@ -1,7 +1,6 @@ package com.ydw.bat.wkflow.listener.policyResearchGroupEnrollment; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; @@ -43,7 +42,12 @@ public class PRGEStartAfter implements TaskListener { List nextUserList = new ArrayList<>(); if(StringUtils.isNotBlank(object.getString("ministerId"))){ List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); + // 配置审核人员 delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java index 41502ab7..febef871 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyResearchGroupEnrollment/RevisionInformationAfter.java @@ -44,6 +44,10 @@ public class RevisionInformationAfter implements TaskListener { delegateTask.setVariable("approvalOpinion", 0); List ministerIdList = Arrays.asList(object.getString("ministerId").split(",")); delegateTask.setVariable("ministerIdList",ministerIdList); + // 初始化已审核人员 + delegateTask.setVariable("completedMinisterIdList",new ArrayList()); + // 初始化已审定人员 + delegateTask.setVariable("completedInspectorIdList",new ArrayList()); nextUserList.addAll(ministerIdList); } else { throw new ActivitiException("1#2法规认证部部长不存在,请配置相关人员");