From 6f3aa5056337f916ff4631996c85313d8fe4f0c2 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Wed, 18 Oct 2023 09:19:12 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=94=BF=E7=AD=96=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TaskTodoService.java | 37 ++++++ .../datas/entity/BusProcessName.java | 3 + .../PolicySolicitOpinionProcess10After.java | 78 ++++++++++++ .../PolicySolicitOpinionProcess10Before.java | 37 ++++++ .../PolicySolicitOpinionProcess11After.java | 86 +++++++++++++ .../PolicySolicitOpinionProcess11Before.java | 36 ++++++ .../PolicySolicitOpinionProcess12After.java | 108 ++++++++++++++++ .../PolicySolicitOpinionProcess12Before.java | 36 ++++++ .../PolicySolicitOpinionProcess13After.java | 98 +++++++++++++++ .../PolicySolicitOpinionProcess13Before.java | 36 ++++++ .../PolicySolicitOpinionProcess14After.java | 82 ++++++++++++ .../PolicySolicitOpinionProcess14Before.java | 36 ++++++ .../PolicySolicitOpinionProcess15After.java | 83 +++++++++++++ .../PolicySolicitOpinionProcess15Before.java | 36 ++++++ .../PolicySolicitOpinionProcess16After.java | 38 ++++++ .../PolicySolicitOpinionProcess16Before.java | 36 ++++++ .../PolicySolicitOpinionProcess1After.java | 106 ++++++++++++++++ .../PolicySolicitOpinionProcess1Before.java | 34 +++++ .../PolicySolicitOpinionProcess2After.java | 95 ++++++++++++++ .../PolicySolicitOpinionProcess2Before.java | 36 ++++++ .../PolicySolicitOpinionProcess4After.java | 80 ++++++++++++ .../PolicySolicitOpinionProcess4Before.java | 36 ++++++ .../PolicySolicitOpinionProcess5After.java | 117 ++++++++++++++++++ .../PolicySolicitOpinionProcess5Before.java | 36 ++++++ .../PolicySolicitOpinionProcess7After.java | 98 +++++++++++++++ .../PolicySolicitOpinionProcess7Before.java | 37 ++++++ .../PolicySolicitOpinionProcess8After.java | 88 +++++++++++++ .../PolicySolicitOpinionProcess8Before.java | 36 ++++++ .../PolicySolicitOpinionProcess9After.java | 103 +++++++++++++++ .../PolicySolicitOpinionProcess9Before.java | 37 ++++++ .../wkflow/util/enums/ApprovalFlagEnum.java | 36 ++++++ 31 files changed, 1841 insertions(+) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java index 2f2b2ed2..1e03e089 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java @@ -1,9 +1,13 @@ package com.ydw.bat.wkflow.business_activiti.service; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; import org.activiti.engine.TaskService; import org.activiti.engine.task.NativeTaskQuery; +import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,4 +85,37 @@ public class TaskTodoService { } + /** + * 根据任务定义key,判断是否还存在该节点的待办任务。(排除当前操作的待办任务) + * + * @param prcId + * @param taskDefinitionKey + * @return + */ + public boolean whetherExistTaskByTaskDefinitionKey(String prcId, String taskDefinitionKey,String taskId) { + boolean result = false; + List taskList = taskService.createTaskQuery().processDefinitionId(prcId).active().list().stream().filter(task-> { + boolean flag = false; + if (StringUtils.isNotEmpty(taskId)) { + if (!StringUtils.equals(task.getId(),taskId)) { + flag = true; + } + } else { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList)) { + for (Task task : taskList) { + if (StringUtils.equals(task.getTaskDefinitionKey(),taskDefinitionKey)) { + result = true; + break; + } + } + } else { + result = true; + } + return result; + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java index 0d30fc4b..0b271949 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; @@ -91,4 +92,6 @@ public class BusProcessName implements Serializable { @TableField(exist = false) private String startTaskTime; + @TableField("RESPONSIBLE_UNIT_DEADLINE_DATE") + private Date responsibleUnitDeadlineDate; } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java new file mode 100644 index 00000000..0740a53b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java @@ -0,0 +1,78 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class PolicySolicitOpinionProcess10After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + // 责任部门 子流程完成总数 + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount",zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = object.getString("glyUserId"); + delegateTask.setVariable("glyUserId",glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String djrUserId = (String) delegateTask.getVariable("djrUserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(djrUserId); + busBean.save(busProcessNewNext); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java new file mode 100644 index 00000000..17598a7d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess10Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java new file mode 100644 index 00000000..a5d1cac2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java @@ -0,0 +1,86 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicySolicitOpinionProcess11After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + String shr2UserIds = object.getString("shr2UserIds"); + List nextUserList = Arrays.asList(shr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("shr2UserIdList", nextUserList); + delegateTask.setVariable("shr2UserCount", nextUserList.size()); + delegateTask.setVariable("shr2UserPassCount", 0); + delegateTask.setVariable("shr2UserOverruleCount", 0); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java new file mode 100644 index 00000000..384fcfe9 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess11Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java new file mode 100644 index 00000000..f9a1aadf --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java @@ -0,0 +1,108 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public class PolicySolicitOpinionProcess12After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int shr2UserPassCount = (int) delegateTask.getVariable("shr2UserPassCount"); + delegateTask.setVariable("shr2UserPassCount", shr2UserPassCount + 1); + + String hqrUserIds = object.getString("hqrUserIds"); + List nextUserList = Arrays.asList(hqrUserIds.split(",")); + + List hqrUserIdList = (List) delegateTask.getVariable("hqrUserIdList"); + if (CollectionUtils.isNotEmpty(hqrUserIdList)) { + nextUserList.addAll(hqrUserIdList); + } + nextUserList = nextUserList.stream().distinct().collect(Collectors.toList()); + delegateTask.setVariable("hqrUserIdList", nextUserList); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("hqrUserCount", nextUserList.size()); + delegateTask.setVariable("hqrUserPassCount", 0); + delegateTask.setVariable("hqrUserOverruleCount", 0); + } + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + delegateTask.setVariable("hqrUserIdList", new ArrayList()); + delegateTask.setVariable("shr2UserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java new file mode 100644 index 00000000..a9733653 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess12Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java new file mode 100644 index 00000000..76233e79 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java @@ -0,0 +1,98 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicySolicitOpinionProcess13After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int hqrUserPassCount = (int) delegateTask.getVariable("hqrUserPassCount"); + delegateTask.setVariable("hqrUserPassCount", hqrUserPassCount + 1); + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String sdr2UserIds = object.getString("sdr2UserIds"); + List nextUserList = Arrays.asList(sdr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("sdr2UserIdList", nextUserList); + delegateTask.setVariable("sdr2UserCount", nextUserList.size()); + delegateTask.setVariable("sdr2UserPassCount", 0); + delegateTask.setVariable("sdr2UserOverruleCount", 0); + } + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + delegateTask.setVariable("hqrUserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java new file mode 100644 index 00000000..0f3cb286 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess13Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java new file mode 100644 index 00000000..a8213ce3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java @@ -0,0 +1,82 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class PolicySolicitOpinionProcess14After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount"); + delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1); + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String pzr2UserId = object.getString("pzr2UserId"); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr2UserId); + busBean.save(busProcessNewNext); + delegateTask.setVariable("pzr2UserId", pzr2UserId); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + delegateTask.setVariable("sdr2UserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java new file mode 100644 index 00000000..b9ca8576 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess14Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java new file mode 100644 index 00000000..fcd50c00 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java @@ -0,0 +1,83 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicySolicitOpinionProcess15After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + String csrUserIds = object.getString("csrUserIds"); + List nextUserList = Arrays.asList(csrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("csrUserIdList", nextUserList); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java new file mode 100644 index 00000000..ded544e6 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess15Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java new file mode 100644 index 00000000..1ed89ea5 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java @@ -0,0 +1,38 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +public class PolicySolicitOpinionProcess16After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java new file mode 100644 index 00000000..ebc641ef --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess16Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java new file mode 100644 index 00000000..d3f83644 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java @@ -0,0 +1,106 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +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; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class PolicySolicitOpinionProcess1After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson",object); + + // 审核人1用户ids + String shr1UserIds = object.getString("shr1UserIds"); + List nextUserList = Arrays.asList(shr1UserIds.split(",")); + + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + Object lawsName = object.get("lawsName"); + Object lawsNumber = object.get("lawsNumber"); + String lawsInfoName = ""; + if(lawsName != null && lawsNumber != null){ + String name = lawsName.toString()+"-"; + String number = lawsNumber.toString()+"-"; + if(StringUtils.isNotBlank(name) && StringUtils.isNotBlank(number)){ + lawsInfoName = number+name; + } + } + String prcName = lawsInfoName+"政策征求意见流程"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setPrcType("laws2"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + + Date responsibleUnitDeadlineDate = object.getDate("responsibleUnitDeadline"); + one1.setResponsibleUnitDeadlineDate(responsibleUnitDeadlineDate); + busProcessNameService.saveOrUpdate(one1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + if(CollectionUtils.isNotEmpty(nextUserList)){ + List addBusProcessNewList = new ArrayList<>(); + for(String nextUser : nextUserList){ + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setPrcName(prcName); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("shr1UserIdList",nextUserList); + delegateTask.setVariable("shr1UserCount",nextUserList.size()); + delegateTask.setVariable("shr1UserPassCount",0); + delegateTask.setVariable("shr1UserOverruleCount",0); + } + + delegateTask.setVariable("fqrUserId",delegateTask.getAssignee()); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java new file mode 100644 index 00000000..834b0ce1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java @@ -0,0 +1,34 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +public class PolicySolicitOpinionProcess1Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java new file mode 100644 index 00000000..31a0cd54 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java @@ -0,0 +1,95 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicySolicitOpinionProcess2After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int shr1UserPassCount = (int) delegateTask.getVariable("shr1UserPassCount"); + delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + // 审定人1用户ids + String sdr1UserIds = object.getString("sdr1UserIds"); + List nextUserList = Arrays.asList(sdr1UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("sdr1UserIdList", nextUserList); + delegateTask.setVariable("sdr1UserCount",nextUserList.size()); + delegateTask.setVariable("sdr1UserPassCount",0); + delegateTask.setVariable("sdr1UserOverruleCount",0); + } + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("shr1UserOverruleCount", 1); + } + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java new file mode 100644 index 00000000..04bd288c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess2Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java new file mode 100644 index 00000000..a49e1bd0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java @@ -0,0 +1,80 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class PolicySolicitOpinionProcess4After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int sdr1UserPassCount = (int) delegateTask.getVariable("sdr1UserPassCount"); + delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String pzr1UserId = object.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId",pzr1UserId); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("sdr1UserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java new file mode 100644 index 00000000..5e70785b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess4Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java new file mode 100644 index 00000000..9703b0c1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java @@ -0,0 +1,117 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class PolicySolicitOpinionProcess5After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + String responsibleUnitDeadline = object.getString("responsibleUnitDeadline"); + Date responsibleUnitDeadlineDate = null; + try { + responsibleUnitDeadlineDate = sdf.parse(responsibleUnitDeadline); + } catch (ParseException e) { + e.printStackTrace(); + } + + String endFlag = ""; + // 如果当前日期大于责任单位截止日期,则不走责任对接人子流程 RESPONSIBLE_UNIT_DEADLINE_DATE + if (new Date().after(responsibleUnitDeadlineDate)) { + endFlag = "0"; + // 管理员用户id + String glyUserId = object.getString("glyUserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("glyUserId",glyUserId); + } else { + endFlag = "1"; + + // 责任对接人用户id + String djrUserIds = object.getString("djrUserIds"); + List nextUserList = Arrays.asList(djrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("djrUserIdList", nextUserList); + + delegateTask.setVariable("zrSubProcessCount",nextUserList.size()); + delegateTask.setVariable("zrSubProcessFinishCount",0); + } + } + delegateTask.setVariable("endFlag",endFlag); + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java new file mode 100644 index 00000000..2ff6a446 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess5Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java new file mode 100644 index 00000000..04c32590 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java @@ -0,0 +1,98 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicySolicitOpinionProcess7After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit + String submitMethod = object.getString("submitMethod"); + if (StringUtils.isEmpty(submitMethod)) { + String zrrUserIds = object.getString("zrrUserIds"); + if (StringUtils.isNotEmpty(zrrUserIds)) { + List nextUserList = Arrays.asList(zrrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("zrrUserIdList", nextUserList); + } + } + + submitMethod = "pageSubmit"; + } else { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = object.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + + submitMethod = "timerAutoSubmit"; + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("submitMethod",submitMethod); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java new file mode 100644 index 00000000..16444c9e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess7Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java new file mode 100644 index 00000000..93f071e9 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java @@ -0,0 +1,88 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang3.StringUtils; + +public class PolicySolicitOpinionProcess8After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit + String submitMethod = object.getString("submitMethod"); + if (StringUtils.isEmpty(submitMethod)) { + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId")); + busBean.save(busProcessNewNext); + } + + submitMethod = "pageSubmit"; + } else { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = object.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + submitMethod = "timerAutoSubmit"; + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("submitMethod",submitMethod); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java new file mode 100644 index 00000000..74c233f6 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess8Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java new file mode 100644 index 00000000..d11957c2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java @@ -0,0 +1,103 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +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.List; + +public class PolicySolicitOpinionProcess9After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + String approvalFlag = object.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + // 内部审查 0 是,1 否 + String internalReviewFlag = object.getString("internalReviewFlag"); + if (StringUtils.equals(internalReviewFlag, "0")) { + String zrdwUserId = object.getString("zrdwUserId"); + delegateTask.setVariable("zrdwUserId", zrdwUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(zrdwUserId); + busBean.save(busProcessNewNext); + } else if (StringUtils.equals(internalReviewFlag, "1")) { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = object.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + } + delegateTask.setVariable("internalReviewFlag", internalReviewFlag); + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + List zrrUserIdList = (List) delegateTask.getVariable("zrrUserIdList"); + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : zrrUserIdList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java new file mode 100644 index 00000000..dd0f2ce2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicySolicitOpinionProcess9Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bzrkStep2?prcType=laws2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java new file mode 100644 index 00000000..a3180eaa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/ApprovalFlagEnum.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.util.enums; + +/** + * 审批标志枚举类 + */ +public enum ApprovalFlagEnum { + + PASS("通过","0"), + OVERRULE("驳回","1"), + ; + + ApprovalFlagEnum(String label, String value) { + this.label = label; + this.value = value; + } + + String label; + String value; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} From 79bdceac8a5b5311dec81b70c606e032adebb22e Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Mon, 23 Oct 2023 14:28:17 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=94=BF=E7=AD=96=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B=E5=BC=80=E5=8F=91=E3=80=81?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TaskTodoService.java | 2 - .../task/TodoTaskController.java | 69 ++++++++- .../PolicySolicitOpinionEOController.java | 32 ++++ .../datas/entity/BusProcessName.java | 3 + .../datas/entity/FlowUserRelInfo.java | 67 +++++++++ .../datas/entity/PolicySolicitOpinionEO.java | 88 +++++++++++ .../datas/mapper/FlowUserRelInfoMapper.java | 11 ++ .../mapper/PolicySolicitOpinionEOMapper.java | 7 + .../service/IFlowUserRelInfoService.java | 17 +++ .../IPolicySolicitOpinionEOService.java | 15 ++ .../impl/FlowUserRelInfoServiceImpl.java | 42 ++++++ .../PolicySolicitOpinionEOServiceImpl.java | 130 ++++++++++++++++ .../PolicySolicitOpinionProcess10After.java | 5 +- .../PolicySolicitOpinionProcess11After.java | 7 +- .../PolicySolicitOpinionProcess12After.java | 19 ++- .../PolicySolicitOpinionProcess13After.java | 7 +- .../PolicySolicitOpinionProcess14After.java | 7 +- .../PolicySolicitOpinionProcess15After.java | 7 +- .../PolicySolicitOpinionProcess16After.java | 27 ++++ .../PolicySolicitOpinionProcess1After.java | 14 +- .../PolicySolicitOpinionProcess2After.java | 6 +- .../PolicySolicitOpinionProcess4After.java | 6 +- .../PolicySolicitOpinionProcess5After.java | 20 +-- .../PolicySolicitOpinionProcess7After.java | 21 ++- .../PolicySolicitOpinionProcess8After.java | 36 ++--- .../PolicySolicitOpinionProcess9After.java | 35 ++++- .../PolicySolicitOpinionProcessTimer.java | 142 ++++++++++++++++++ .../bat/wkflow/util/enums/FlowTypeEnum.java | 22 +++ .../datas/PolicySolicitOpinionEOMapper.xml | 5 + 29 files changed, 793 insertions(+), 76 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java create mode 100644 src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java create mode 100644 src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java index 1e03e089..4bf953c7 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java @@ -112,8 +112,6 @@ public class TaskTodoService { break; } } - } else { - result = true; } return result; } 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 e3b6f4af..5904902b 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 @@ -20,15 +20,13 @@ import java.util.Map; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService; -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.IOaTaskExecService; +import com.ydw.bat.wkflow.business_main.datas.service.*; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.business_oa.webService.service.impl.WebServiceOAServiceImpl; import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto; import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.*; import org.activiti.engine.history.*; import org.activiti.engine.repository.ProcessDefinition; @@ -36,6 +34,7 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstanceQuery; import org.activiti.engine.task.NativeTaskQuery; import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -101,6 +100,12 @@ public class TodoTaskController extends BaseAction { @Autowired private CreateMQService mqService; + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + + @Autowired + private IPolicySolicitOpinionEOService policySolicitOpinionEOService; + @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @ApiImplicitParam(name = "current", value = "当前页"), @@ -242,6 +247,7 @@ public class TodoTaskController extends BaseAction { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String data = sdf.format(entry.getValue().get(0).get("createTime")); res.setAcceptTime(data); + res.setTaskDefinitionKey(entry.getValue().get(0).get("taskDefinitionKey").toString()); // //获取新的流程名称 // QueryWrapper queryWrapper1=new QueryWrapper<>(); // queryWrapper1.eq("P_ID",res.getPrcId()); @@ -404,6 +410,10 @@ public class TodoTaskController extends BaseAction { busProcessEntrust.setPrcName(one.getPrcName()); busProcessEntrust.setTaskId(str); iBusProcessEntrustService.save(busProcessEntrust); + + if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue())) { + this.changePolicySolicitOpinionProcessAssignee(assignee, userId, pId, str); + } } } @@ -490,6 +500,49 @@ public class TodoTaskController extends BaseAction { // logger.info("task {} find " + taskId); return WrapMapper.ok("改派成功"); } + /** + * @Description: 变更政策征求意见流程任务办理人(责任部门子流程相关) + * @author: wangzhijiang + * @date: 2023-10-18 + * @Param: + * @return: + */ + private void changePolicySolicitOpinionProcessAssignee(String assignee, String userId, String pId, String str) { + Task task = this.taskService.createTaskQuery().taskId(str).singleResult(); + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, pId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType,FlowTypeEnum.ZCZQYJLC.getValue()); + // 责任人任务处理。 + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8")) { + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr"); + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId); + List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(furInfoList)) { + furInfoList.forEach(furInfo -> {furInfo.setUserId(assignee);}); + this.flowUserRelInfoService.updateBatchById(furInfoList); + } + } + // 责任对接人汇总 + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9")) { + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr"); + furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, userId); + List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(furInfoList)) { + furInfoList.forEach(furInfo -> {furInfo.setParentUserId(assignee);}); + this.flowUserRelInfoService.updateBatchById(furInfoList); + } + } + // 责任单位审批 + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey10")) { + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrdw"); + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId); + List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(furInfoList)) { + furInfoList.forEach(furInfo -> {furInfo.setUserId(assignee);}); + this.flowUserRelInfoService.updateBatchById(furInfoList); + } + } + } @ApiOperation(value = "完成任务", notes = "流程单个节点任务,直接完成任务") @ApiImplicitParams({@ApiImplicitParam(name = "taskId", value = "任务id"), @@ -1870,6 +1923,14 @@ public class TodoTaskController extends BaseAction { BusProcessNew one = busProcessNewList.get(0); one.setMesg(object.toString()); iBusProcessNewService.saveOrUpdate(one); + + QueryWrapper bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcId,one.getPId()); + BusProcessName busProcessName = this.iBusProcessNameService.getOne(bpnQueryWrap); + if (StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.ZCZQYJLC.getValue())) { + object.put("prcId",busProcessName.getPrcId()); + this.policySolicitOpinionEOService.batchInsert(object); + } return WrapMapper.ok("保存成功"); } } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java new file mode 100644 index 00000000..d79b035b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/PolicySolicitOpinionEOController.java @@ -0,0 +1,32 @@ +package com.ydw.bat.wkflow.business_main.datas.controller; + + +import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO; +import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.util.http.ResponseMessage; +import com.ydw.bat.wkflow.util.http.Result; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/datas/policySolicitOpinion") +public class PolicySolicitOpinionEOController { + + @Autowired + private IPolicySolicitOpinionEOService policySolicitOpinionEOService; + + @ApiOperation(value = "查询政策征求意见列表") + @GetMapping("/queryPolicitOpinionEOList") + public ResponseMessage> queryPolicitOpinionEOList(@RequestParam Map params) { + List policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params); + return Result.success(policySolicitOpinionEOList); + } +} + diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java index 0b271949..8e4b0582 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessName.java @@ -94,4 +94,7 @@ public class BusProcessName implements Serializable { @TableField("RESPONSIBLE_UNIT_DEADLINE_DATE") private Date responsibleUnitDeadlineDate; + + @TableField(exist = false) + private String taskDefinitionKey; } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java new file mode 100644 index 00000000..d9590b64 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/FlowUserRelInfo.java @@ -0,0 +1,67 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * 流程用户关系信息表 :流程中,存储用户上下级关系 + * 作用:记录流程中,用户分配的上下级关系。 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("T_FLOW_USER_REL_INFO") +@ApiModel(value="FlowUserRelInfo对象", description="") +public class FlowUserRelInfo { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId(value = "id", type = IdType.UUID) + private String id; + + @ApiModelProperty(value = "流程类型") + @TableField("flow_type") + private String flowType; + + @ApiModelProperty(value = "数据类型") + @TableField("data_type") + private String dataType; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "上级用户id") + @TableField("parent_user_id") + private String parentUserId; + + @ApiModelProperty(value = "标准id") + @TableField("stand_id") + private String standId; + + @ApiModelProperty(value = "待办id") + @TableField("task_id") + private String taskId; + + @ApiModelProperty(value = "流程实例id") + @TableField("acti_proc_inst_id") + private String actiProcInstId; + + @ApiModelProperty(value = "创建时间") + @TableField("create_time") + private Date createTime; + + @ApiModelProperty(value = "创建人") + @TableField("create_by") + private String createBy; + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java new file mode 100644 index 00000000..6aa39efa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/PolicySolicitOpinionEO.java @@ -0,0 +1,88 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Description: 政策征求意见列表 + * @author: wangzhijiang + * @date: 2023-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("POLICY_SOLICIT_OPINION") +@ApiModel(value="PolicySolicitOpinion对象", description="") +public class PolicySolicitOpinionEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + @TableField("PRC_ID") + private String prcId; + + @TableField("SAR_LAWS_INFO_ID") + private String sarLawsInfoId; + + // 章节编号 + @TableField("CHAPTER_NUMBER") + private String chapterNumber; + + // 章节条目 + @TableField("CHAPTER_ENTRIES") + private String chapterEntries; + + // 修改前 + @TableField("MODIFY_BEFORE") + private String modifyBefore; + + // 修改后 + @TableField("MODIFY_AFTER") + private String modifyAfter; + + // 修改理由 + @TableField("MODIFY_REASON") + private String modifyReason; + + // 原因 + @TableField("CAUSE") + private String cause; + + // 附件id + @TableField("ANNEX_FILE_ID") + private String annexFileId; + + // 处理意见 + @TableField("HANDLING_OPINIONS") + private String handlingOpinions; + + // 处理原因 + @TableField("HANDLING_CAUSE") + private String handlingCause; + + // 提出人/创建人 + @TableField("CREATE_USER_ID") + private String createUserId; + + // 创建时间 + @TableField("CREATE_TIME") + private Date createTime; + + // 更新人 + @TableField("MODIFY_USER_ID") + private String modifyUserId; + + // 更新时间 + @TableField("MODIFY_TIME") + private Date modifyTime; + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java new file mode 100644 index 00000000..48069ae3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/FlowUserRelInfoMapper.java @@ -0,0 +1,11 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; + +/** + * 流程用户关系信息表 :流程中,存储用户上下级关系 + * 作用:记录流程中,用户分配的上下级关系。 + */ +public interface FlowUserRelInfoMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java new file mode 100644 index 00000000..5358ec28 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/PolicySolicitOpinionEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO; + +public interface PolicySolicitOpinionEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java new file mode 100644 index 00000000..2b379943 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IFlowUserRelInfoService.java @@ -0,0 +1,17 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; + +import java.util.List; + +/** + * 流程用户信息:流程中,存储用户上下级关系 + */ +public interface IFlowUserRelInfoService extends IService { + /** + * 批量新增流程用户上下级关系 + * @param flowUserRelInfoList + */ + void saveBatchFlowUserRelInfo(List flowUserRelInfoList); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java new file mode 100644 index 00000000..186f32c4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IPolicySolicitOpinionEOService.java @@ -0,0 +1,15 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO; + +import java.util.List; +import java.util.Map; + +public interface IPolicySolicitOpinionEOService extends IService { + + void batchInsert(JSONObject json); + + List queryPolicitOpinionEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java new file mode 100644 index 00000000..c2cd6701 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/FlowUserRelInfoServiceImpl.java @@ -0,0 +1,42 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.mapper.FlowUserRelInfoMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 流程用户信息:流程中,存储用户上下级关系 + * 作用:记录流程每一个节点的用户id + */ +@Service +@Transactional(value = "transactionManager", propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) +public class FlowUserRelInfoServiceImpl extends ServiceImpl implements IFlowUserRelInfoService { + + @Autowired + private FlowUserRelInfoMapper flowUserRelInfoMapper; + + @Override + public void saveBatchFlowUserRelInfo(List flowUserRelInfoList) { + if(CollectionUtils.isNotEmpty(flowUserRelInfoList)){ + FlowUserRelInfo flowUserRelInfo = flowUserRelInfoList.get(0); + + QueryWrapper deleteWrap = new QueryWrapper<>(); + deleteWrap.lambda().eq(FlowUserRelInfo::getParentUserId,flowUserRelInfo.getParentUserId()); + deleteWrap.lambda().eq(FlowUserRelInfo::getDataType,flowUserRelInfo.getDataType()); + deleteWrap.lambda().eq(FlowUserRelInfo::getFlowType,flowUserRelInfo.getFlowType()); + deleteWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId,flowUserRelInfo.getActiProcInstId()); + this.flowUserRelInfoMapper.delete(deleteWrap); + + this.saveBatch(flowUserRelInfoList); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java new file mode 100644 index 00000000..584acd9a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/PolicySolicitOpinionEOServiceImpl.java @@ -0,0 +1,130 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.netflix.discovery.converters.Auto; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.entity.PolicySolicitOpinionEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.PolicySolicitOpinionEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class PolicySolicitOpinionEOServiceImpl extends ServiceImpl implements IPolicySolicitOpinionEOService { + + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + + @Override + public void batchInsert(JSONObject json) { + String currentUserId = json.getString("currentUserId"); + String prcId = json.getString("prcId"); + String removeIds = json.getString("removeIds"); + + JSONObject jsonForm = json.getJSONObject("form"); + if (StringUtils.isNotEmpty(removeIds)) { + List removeIdList = Arrays.asList(removeIds.split(",")); + this.removeByIds(removeIdList); + } + JSONArray policySolicitOpinionEOArr = json.getJSONArray("policySolicitOpinionEOList"); + List addPolicySolicitOpinionEOList = new ArrayList<>(); + List updatePolicySolicitOpinionEOList = new ArrayList<>(); + PolicySolicitOpinionEO policySolicitOpinionEO = null; + for (Object policySolicitOpinion : policySolicitOpinionEOArr) { + policySolicitOpinionEO = JSONObject.parseObject(JSONObject.toJSONString(policySolicitOpinion), PolicySolicitOpinionEO.class); + + policySolicitOpinionEO.setPrcId(prcId); + policySolicitOpinionEO.setSarLawsInfoId(jsonForm.getString("lawsId")); + if (StringUtils.isEmpty(policySolicitOpinionEO.getId())) { + policySolicitOpinionEO.setCreateUserId(currentUserId); + policySolicitOpinionEO.setCreateTime(new Date()); + addPolicySolicitOpinionEOList.add(policySolicitOpinionEO); + } else { + policySolicitOpinionEO.setModifyUserId(currentUserId); + policySolicitOpinionEO.setModifyTime(new Date()); + updatePolicySolicitOpinionEOList.add(policySolicitOpinionEO); + } + } + + if (CollectionUtils.isNotEmpty(addPolicySolicitOpinionEOList)) { + this.saveBatch(addPolicySolicitOpinionEOList); + } + if (CollectionUtils.isNotEmpty(updatePolicySolicitOpinionEOList)) { + this.updateBatchById(updatePolicySolicitOpinionEOList); + } + } + + @Override + public List queryPolicitOpinionEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("prcId"); + + QueryWrapper psoEoQueryWrap = new QueryWrapper<>(); + psoEoQueryWrap.lambda().eq(PolicySolicitOpinionEO::getPrcId, prcId); + + if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey8")) { + // 责任人处理 + psoEoQueryWrap.lambda().eq(PolicySolicitOpinionEO::getCreateUserId, currentUserId); + } else if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey9")) { + // 责任对接人汇总 + // 查询当前责任对接人分配出去的责任人,获取这些责任人填写的征求意见列表 + List userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + psoEoQueryWrap.lambda().in(PolicySolicitOpinionEO::getCreateUserId, userIdList); + } else if (StringUtils.equals(taskDefinitionKey, "PolicySolicitOpinionProcessKey10")) { + // 责任单位审批 + // 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的征求意见列表 + List userIdList = new ArrayList<>(); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId); + List zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper zrdjrQueryWrap = new QueryWrapper<>(); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCZQYJLC.getValue()); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + } else { + userIdList.add("设置一个无法满足的条件"); + } + psoEoQueryWrap.lambda().in(PolicySolicitOpinionEO::getCreateUserId, userIdList); + } + psoEoQueryWrap.orderByAsc("create_time"); + result = this.list(psoEoQueryWrap); + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java index 0740a53b..78e10c8d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10After.java @@ -24,7 +24,8 @@ public class PolicySolicitOpinionProcess10After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { // 责任部门 子流程总数 int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); @@ -35,7 +36,7 @@ public class PolicySolicitOpinionProcess10After implements TaskListener { // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 if (zrSubProcessCount == zrSubProcessFinishCount) { - String glyUserId = object.getString("glyUserId"); + String glyUserId = jsonForm.getString("glyUserId"); delegateTask.setVariable("glyUserId",glyUserId); BusProcessNew busProcessNewNext = new BusProcessNew(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java index a5d1cac2..4f8e9749 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11After.java @@ -29,9 +29,10 @@ public class PolicySolicitOpinionProcess11After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { - String shr2UserIds = object.getString("shr2UserIds"); + String shr2UserIds = jsonForm.getString("shr2UserIds"); List nextUserList = Arrays.asList(shr2UserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { List addBusProcessNewList = new ArrayList<>(); @@ -55,7 +56,7 @@ public class PolicySolicitOpinionProcess11After implements TaskListener { delegateTask.setVariable("shr2UserOverruleCount", 0); } } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java index f9a1aadf..47c21d04 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java @@ -8,6 +8,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_main.datas.service.IPolicySolicitOpinionEOService; import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; import org.activiti.engine.delegate.DelegateTask; @@ -26,19 +27,24 @@ public class PolicySolicitOpinionProcess12After implements TaskListener { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { int shr2UserPassCount = (int) delegateTask.getVariable("shr2UserPassCount"); delegateTask.setVariable("shr2UserPassCount", shr2UserPassCount + 1); - String hqrUserIds = object.getString("hqrUserIds"); - List nextUserList = Arrays.asList(hqrUserIds.split(",")); + List nextUserList = new ArrayList<>(); + String hqrUserIds = jsonForm.getString("hqrUserIds"); + if (StringUtils.isNotEmpty(hqrUserIds)) { + nextUserList.addAll(Arrays.asList(hqrUserIds.split(","))); + } List hqrUserIdList = (List) delegateTask.getVariable("hqrUserIdList"); if (CollectionUtils.isNotEmpty(hqrUserIdList)) { @@ -75,7 +81,7 @@ public class PolicySolicitOpinionProcess12After implements TaskListener { } } } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); @@ -91,6 +97,11 @@ public class PolicySolicitOpinionProcess12After implements TaskListener { delegateTask.setVariable("shr2UserOverruleCount", 1); } + // 保存责任人填写的征求意见信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + policySolicitOpinionEOService.batchInsert(object); + // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); busProcessNew.setMsgType("clause"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java index 76233e79..9113ced4 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java @@ -31,7 +31,8 @@ public class PolicySolicitOpinionProcess13After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { int hqrUserPassCount = (int) delegateTask.getVariable("hqrUserPassCount"); delegateTask.setVariable("hqrUserPassCount", hqrUserPassCount + 1); @@ -41,7 +42,7 @@ public class PolicySolicitOpinionProcess13After implements TaskListener { delegateTask.getId() ); if (!existTaskFlag) { - String sdr2UserIds = object.getString("sdr2UserIds"); + String sdr2UserIds = jsonForm.getString("sdr2UserIds"); List nextUserList = Arrays.asList(sdr2UserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { List addBusProcessNewList = new ArrayList<>(); @@ -66,7 +67,7 @@ public class PolicySolicitOpinionProcess13After implements TaskListener { } } } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java index a8213ce3..04483745 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java @@ -26,7 +26,8 @@ public class PolicySolicitOpinionProcess14After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount"); delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1); @@ -36,7 +37,7 @@ public class PolicySolicitOpinionProcess14After implements TaskListener { delegateTask.getId() ); if (!existTaskFlag) { - String pzr2UserId = object.getString("pzr2UserId"); + String pzr2UserId = jsonForm.getString("pzr2UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); @@ -50,7 +51,7 @@ public class PolicySolicitOpinionProcess14After implements TaskListener { delegateTask.setVariable("pzr2UserId", pzr2UserId); } } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java index fcd50c00..2494f284 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15After.java @@ -29,9 +29,10 @@ public class PolicySolicitOpinionProcess15After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { - String csrUserIds = object.getString("csrUserIds"); + String csrUserIds = jsonForm.getString("csrUserIds"); List nextUserList = Arrays.asList(csrUserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { List addBusProcessNewList = new ArrayList<>(); @@ -52,7 +53,7 @@ public class PolicySolicitOpinionProcess15After implements TaskListener { delegateTask.setVariable("csrUserIdList", nextUserList); } } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java index 1ed89ea5..263a29ef 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java @@ -2,6 +2,8 @@ package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; @@ -11,11 +13,16 @@ import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import java.text.SimpleDateFormat; +import java.util.Date; + public class PolicySolicitOpinionProcess16After implements TaskListener { @Override public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -23,6 +30,26 @@ public class PolicySolicitOpinionProcess16After implements TaskListener { JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + // TODO 等需求确认,提交后需要做什么操作。 + + + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + QueryWrapper bpnQueryWrap = new QueryWrapper(); + bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap); + if (bpn != null) { + bpn.setOverTime(OVERTIME); + busProcessNameService.saveOrUpdate(bpn); + } + } + // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); busProcessNew.setMsgType("clause"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java index d3f83644..4b3fb251 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1After.java @@ -9,6 +9,7 @@ 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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -31,18 +32,18 @@ public class PolicySolicitOpinionProcess1After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); delegateTask.setVariable("objectJson",object); // 审核人1用户ids - String shr1UserIds = object.getString("shr1UserIds"); + String shr1UserIds = jsonForm.getString("shr1UserIds"); List nextUserList = Arrays.asList(shr1UserIds.split(",")); - //截止时间 流程描述 创建人 String user = object.getString("prcCreateUser"); String username = object.getString("prcCreateUserName"); - Object lawsName = object.get("lawsName"); - Object lawsNumber = object.get("lawsNumber"); + Object lawsName = jsonForm.get("lawsName"); + Object lawsNumber = jsonForm.get("lawsNumber"); String lawsInfoName = ""; if(lawsName != null && lawsNumber != null){ String name = lawsName.toString()+"-"; @@ -56,12 +57,12 @@ public class PolicySolicitOpinionProcess1After implements TaskListener { queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); if(one1!=null){ - one1.setPrcType("laws2"); + one1.setPrcType(FlowTypeEnum.ZCZQYJLC.getValue()); one1.setPrcName(prcName); one1.setCreatUser(user); one1.setCreatUserName(username); - Date responsibleUnitDeadlineDate = object.getDate("responsibleUnitDeadline"); + Date responsibleUnitDeadlineDate = jsonForm.getDate("responsibleUnitDeadline"); one1.setResponsibleUnitDeadlineDate(responsibleUnitDeadlineDate); busProcessNameService.saveOrUpdate(one1); } @@ -89,7 +90,6 @@ public class PolicySolicitOpinionProcess1After implements TaskListener { busProcessNewNext.setFinishFlag("0"); busProcessNewNext.setTaskInfo(delegateTask.getName()); busProcessNewNext.setUserId(nextUser); - busProcessNewNext.setPrcName(prcName); addBusProcessNewList.add(busProcessNewNext); } busBean.saveBatch(addBusProcessNewList); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java index 31a0cd54..4747dc24 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java @@ -30,7 +30,9 @@ public class PolicySolicitOpinionProcess2After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { int shr1UserPassCount = (int) delegateTask.getVariable("shr1UserPassCount"); delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1); @@ -42,7 +44,7 @@ public class PolicySolicitOpinionProcess2After implements TaskListener { ); if (!existTaskFlag) { // 审定人1用户ids - String sdr1UserIds = object.getString("sdr1UserIds"); + String sdr1UserIds = jsonForm.getString("sdr1UserIds"); List nextUserList = Arrays.asList(sdr1UserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { List addBusProcessNewList = new ArrayList<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java index a49e1bd0..50d8c691 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java @@ -26,7 +26,9 @@ public class PolicySolicitOpinionProcess4After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { int sdr1UserPassCount = (int) delegateTask.getVariable("sdr1UserPassCount"); delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1); @@ -37,7 +39,7 @@ public class PolicySolicitOpinionProcess4After implements TaskListener { delegateTask.getId() ); if (!existTaskFlag) { - String pzr1UserId = object.getString("pzr1UserId"); + String pzr1UserId = jsonForm.getString("pzr1UserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java index 9703b0c1..27ed588a 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5After.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; 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.util.SpringContextUtil; @@ -14,8 +13,6 @@ import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -32,23 +29,16 @@ public class PolicySolicitOpinionProcess5After implements TaskListener { Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); - String approvalFlag = object.getString("approvalFlag"); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { - SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); - String responsibleUnitDeadline = object.getString("responsibleUnitDeadline"); - Date responsibleUnitDeadlineDate = null; - try { - responsibleUnitDeadlineDate = sdf.parse(responsibleUnitDeadline); - } catch (ParseException e) { - e.printStackTrace(); - } - + Date responsibleUnitDeadlineDate = jsonForm.getDate("responsibleUnitDeadline"); String endFlag = ""; // 如果当前日期大于责任单位截止日期,则不走责任对接人子流程 RESPONSIBLE_UNIT_DEADLINE_DATE if (new Date().after(responsibleUnitDeadlineDate)) { endFlag = "0"; // 管理员用户id - String glyUserId = object.getString("glyUserId"); + String glyUserId = jsonForm.getString("glyUserId"); BusProcessNew busProcessNewNext = new BusProcessNew(); busProcessNewNext.setMsgType("clause"); busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); @@ -64,7 +54,7 @@ public class PolicySolicitOpinionProcess5After implements TaskListener { endFlag = "1"; // 责任对接人用户id - String djrUserIds = object.getString("djrUserIds"); + String djrUserIds = jsonForm.getString("djrUserIds"); List nextUserList = Arrays.asList(djrUserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { List addBusProcessNewList = new ArrayList<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java index 04c32590..e3f0503e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7After.java @@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; 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_main.datas.service.IFlowUserRelInfoService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -22,19 +25,23 @@ public class PolicySolicitOpinionProcess7After implements TaskListener { public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit String submitMethod = object.getString("submitMethod"); if (StringUtils.isEmpty(submitMethod)) { - String zrrUserIds = object.getString("zrrUserIds"); + String zrrUserIds = jsonForm.getString("zrrUserIds"); if (StringUtils.isNotEmpty(zrrUserIds)) { List nextUserList = Arrays.asList(zrrUserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { + List flowUserRelInfoList = new ArrayList<>(); + List addBusProcessNewList = new ArrayList<>(); for (String nextUser : nextUserList) { BusProcessNew busProcessNewNext = new BusProcessNew(); @@ -46,11 +53,21 @@ public class PolicySolicitOpinionProcess7After implements TaskListener { busProcessNewNext.setTaskInfo(delegateTask.getName()); busProcessNewNext.setUserId(nextUser); addBusProcessNewList.add(busProcessNewNext); + + FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo(); + flowUserRelInfo.setParentUserId(delegateTask.getAssignee()); + flowUserRelInfo.setUserId(nextUser); + flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId()); + flowUserRelInfo.setFlowType(FlowTypeEnum.ZCZQYJLC.getValue()); + flowUserRelInfo.setDataType("zrdjrfpzrr"); // 责任对接人分配责任人 + flowUserRelInfoList.add(flowUserRelInfo); } busBean.saveBatch(addBusProcessNewList); // 配置多实例 delegateTask.setVariable("zrrUserIdList", nextUserList); + + flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList); } } @@ -64,7 +81,7 @@ public class PolicySolicitOpinionProcess7After implements TaskListener { // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 if (zrSubProcessCount == zrSubProcessFinishCount) { - String glyUserId = object.getString("glyUserId"); + String glyUserId = jsonForm.getString("glyUserId"); delegateTask.setVariable("glyUserId", glyUserId); BusProcessNew busProcessNewNext = new BusProcessNew(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java index 93f071e9..964912c0 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8After.java @@ -8,6 +8,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_main.datas.service.IPolicySolicitOpinionEOService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -19,31 +20,32 @@ public class PolicySolicitOpinionProcess8After implements TaskListener { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit String submitMethod = object.getString("submitMethod"); if (StringUtils.isEmpty(submitMethod)) { - boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), - delegateTask.getTaskDefinitionKey(), - delegateTask.getId() - ); - if (!existTaskFlag) { - BusProcessNew busProcessNewNext = new BusProcessNew(); - busProcessNewNext.setMsgType("clause"); - busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); - busProcessNewNext.setMesg(object.toJSONString()); - busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); - busProcessNewNext.setFinishFlag("0"); - busProcessNewNext.setTaskInfo(delegateTask.getName()); - busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId")); - busBean.save(busProcessNewNext); - } + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId")); + busBean.save(busProcessNewNext); + + // 保存责任人填写的征求意见信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + policySolicitOpinionEOService.batchInsert(object); submitMethod = "pageSubmit"; } else { @@ -55,7 +57,7 @@ public class PolicySolicitOpinionProcess8After implements TaskListener { // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 if (zrSubProcessCount == zrSubProcessFinishCount) { - String glyUserId = object.getString("glyUserId"); + String glyUserId = jsonForm.getString("glyUserId"); delegateTask.setVariable("glyUserId", glyUserId); BusProcessNew busProcessNewNext = new BusProcessNew(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java index d11957c2..d1ee1e53 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9After.java @@ -4,11 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; 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_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.service.*; import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.lang.StringUtils; @@ -21,19 +21,22 @@ public class PolicySolicitOpinionProcess9After implements TaskListener { public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); + IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); Datas datas = datasService.getOne(queryWrapper); JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); - String approvalFlag = object.getString("approvalFlag"); + String approvalFlag = jsonForm.getString("approvalFlag"); if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { // 内部审查 0 是,1 否 - String internalReviewFlag = object.getString("internalReviewFlag"); + String internalReviewFlag = jsonForm.getString("internalReviewFlag"); if (StringUtils.equals(internalReviewFlag, "0")) { - String zrdwUserId = object.getString("zrdwUserId"); + String zrdwUserId = jsonForm.getString("zrdwUserId"); delegateTask.setVariable("zrdwUserId", zrdwUserId); BusProcessNew busProcessNewNext = new BusProcessNew(); @@ -45,6 +48,16 @@ public class PolicySolicitOpinionProcess9After implements TaskListener { busProcessNewNext.setTaskInfo(delegateTask.getName()); busProcessNewNext.setUserId(zrdwUserId); busBean.save(busProcessNewNext); + + List flowUserRelInfoList = new ArrayList<>(); + FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo(); + flowUserRelInfo.setParentUserId(delegateTask.getAssignee()); + flowUserRelInfo.setUserId(zrdwUserId); + flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId()); + flowUserRelInfo.setFlowType(FlowTypeEnum.ZCZQYJLC.getValue()); + flowUserRelInfo.setDataType("zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + flowUserRelInfoList.add(flowUserRelInfo); + flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList); } else if (StringUtils.equals(internalReviewFlag, "1")) { // 责任部门 子流程总数 int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); @@ -54,7 +67,7 @@ public class PolicySolicitOpinionProcess9After implements TaskListener { // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 if (zrSubProcessCount == zrSubProcessFinishCount) { - String glyUserId = object.getString("glyUserId"); + String glyUserId = jsonForm.getString("glyUserId"); delegateTask.setVariable("glyUserId", glyUserId); BusProcessNew busProcessNewNext = new BusProcessNew(); @@ -68,6 +81,9 @@ public class PolicySolicitOpinionProcess9After implements TaskListener { busBean.save(busProcessNewNext); } } + + jsonForm.put("internalReviewFlag",""); + jsonForm.put("zrdwUserId",""); delegateTask.setVariable("internalReviewFlag", internalReviewFlag); } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { List zrrUserIdList = (List) delegateTask.getVariable("zrrUserIdList"); @@ -86,6 +102,11 @@ public class PolicySolicitOpinionProcess9After implements TaskListener { busBean.saveBatch(addBusProcessNewList); } + // 保存责任人填写的征求意见信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + policySolicitOpinionEOService.batchInsert(object); + // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); busProcessNew.setMsgType("clause"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java new file mode 100644 index 00000000..cb41b2d1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java @@ -0,0 +1,142 @@ +package com.ydw.bat.wkflow.listener.policySolicitOpinionProcess.timer; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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_wkflow.form.dto.FormSubmitDto; +import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.TaskService; +import org.activiti.engine.task.Task; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description: 政策征求意见流程定时器 + * @author: wangzhijiang + * @date: 2023-10-23 + */ +@Component +@EnableScheduling +@Slf4j +public class PolicySolicitOpinionProcessTimer { + + @Autowired + private IBusProcessNameService busProcessNameService; + @Autowired + private TaskService taskService; + @Autowired + private IBusProcessNewService busProcessNewService; + @Autowired + private FormValsService formValsService; + + /** + * @Description: 自动提交待办任务 + * @author: wangzhijiang + * @date: 2023-10-23 + * @Param: + * @return: + */ + @Scheduled(cron = "30 59 13 * * ? ")//每天十点执行 +// @Scheduled(cron = "0/15 * * * * ? ") + public void autoSubmitZrbmTask() { + QueryWrapper bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCZQYJLC.getValue()); + bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date()); + List busProcessNameList = this.busProcessNameService.list(bpnQueryWrap); + + if (CollectionUtils.isNotEmpty(busProcessNameList)) { + List actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList()); + this.recursionComplteZrbmTask(actiProcInstIdList); + } + } + + /** + * 递归提交待办任务 + * + * @param actiProcInstIdList + */ + public void recursionComplteZrbmTask(List actiProcInstIdList) { + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList)) { + for (Task task : taskList) { + JSONObject formJson = new JSONObject(); + + QueryWrapper newQueryWrapper = new QueryWrapper<>(); + newQueryWrapper.lambda().eq(BusProcessNew::getTaskId, task.getId()); + BusProcessNew busProcessNew = this.busProcessNewService.getOne(newQueryWrapper); + if (ObjectUtils.isNotEmpty(busProcessNew)) { + formJson = JSONObject.parseObject(busProcessNew.getMesg()); + JSONObject jsonForm = formJson.getJSONObject("form"); + jsonForm.put("approvalFlag",ApprovalFlagEnum.PASS.getValue()); + jsonForm.put("internalReviewFlag", "1"); + formJson.put("commentText",""); + } + formJson.put("submitMethod", "timerAutoSubmit"); + formJson.put("approvalFlag", ApprovalFlagEnum.PASS.getValue()); + formJson.put("internalReviewFlag", "1"); + + FormSubmitDto formSubmitDto = new FormSubmitDto(); + formSubmitDto.setForm(formJson.toString()); + formSubmitDto.setTask_id(task.getId()); + this.formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey()); + + this.taskService.complete(task.getId()); + } + } + } + List actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList); + if (CollectionUtils.isNotEmpty(actiProcInstIds)) { + this.recursionComplteZrbmTask(actiProcInstIds); + } + } + + /** + * 根据流程实例id,查询还有待办任务的流程。 + * + * @param actiProcInstIdList + * @return + */ + public List queryZrbmTaskByActiProcInstId(List actiProcInstIdList) { + List result = new ArrayList<>(); + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicySolicitOpinionProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (taskList.size() != 0) { + result.add(actiProcInstId); + } + } + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java new file mode 100644 index 00000000..9a765571 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java @@ -0,0 +1,22 @@ +package com.ydw.bat.wkflow.util.enums; + +/** + * 流程类型枚举类 + */ +public enum FlowTypeEnum { + ZCZQYJLC("29","政策征求意见流程"),; + + private String value; + private String lable; + + private FlowTypeEnum(String value, String lable) { + this.value = value; + this.lable = lable; + } + public String getValue() { + return value; + } + public String getLable() { + return lable; + } +} diff --git a/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml b/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml new file mode 100644 index 00000000..93f439b8 --- /dev/null +++ b/src/main/resources/mapper/datas/PolicySolicitOpinionEOMapper.xml @@ -0,0 +1,5 @@ + + + + + From 0455f93bc309a26cf96234ed7ae553bc6e84a5c8 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Wed, 25 Oct 2023 13:36:13 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E9=87=8D=E7=82=B9=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A0=87=E5=87=86/=E6=94=BF=E7=AD=96=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=80=A7=E9=A1=B9=E7=9B=AE=E5=AE=A1=E6=9F=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 8 +- ...ComplianceProgramReviewProcess10After.java | 78 +++++++++++ ...omplianceProgramReviewProcess10Before.java | 38 ++++++ ...ComplianceProgramReviewProcess11After.java | 86 ++++++++++++ ...omplianceProgramReviewProcess11Before.java | 37 +++++ ...ComplianceProgramReviewProcess12After.java | 108 +++++++++++++++ ...omplianceProgramReviewProcess12Before.java | 37 +++++ ...ComplianceProgramReviewProcess13After.java | 87 ++++++++++++ ...omplianceProgramReviewProcess13Before.java | 37 +++++ ...ComplianceProgramReviewProcess14After.java | 85 ++++++++++++ ...omplianceProgramReviewProcess14Before.java | 37 +++++ ...ComplianceProgramReviewProcess15After.java | 65 +++++++++ ...omplianceProgramReviewProcess15Before.java | 37 +++++ ...yComplianceProgramReviewProcess1After.java | 97 +++++++++++++ ...ComplianceProgramReviewProcess1Before.java | 35 +++++ ...yComplianceProgramReviewProcess2After.java | 97 +++++++++++++ ...ComplianceProgramReviewProcess2Before.java | 37 +++++ ...yComplianceProgramReviewProcess4After.java | 81 +++++++++++ ...ComplianceProgramReviewProcess4Before.java | 37 +++++ ...yComplianceProgramReviewProcess5After.java | 107 +++++++++++++++ ...ComplianceProgramReviewProcess5Before.java | 37 +++++ ...yComplianceProgramReviewProcess7After.java | 114 ++++++++++++++++ ...ComplianceProgramReviewProcess7Before.java | 38 ++++++ ...yComplianceProgramReviewProcess8After.java | 89 ++++++++++++ ...ComplianceProgramReviewProcess8Before.java | 37 +++++ ...yComplianceProgramReviewProcess9After.java | 128 ++++++++++++++++++ ...ComplianceProgramReviewProcess9Before.java | 38 ++++++ .../PolicySolicitOpinionProcess10Before.java | 3 +- .../PolicySolicitOpinionProcess11Before.java | 3 +- .../PolicySolicitOpinionProcess12Before.java | 3 +- .../PolicySolicitOpinionProcess13Before.java | 3 +- .../PolicySolicitOpinionProcess14Before.java | 3 +- .../PolicySolicitOpinionProcess15Before.java | 3 +- .../PolicySolicitOpinionProcess16Before.java | 3 +- .../PolicySolicitOpinionProcess1Before.java | 3 +- .../PolicySolicitOpinionProcess2Before.java | 3 +- .../PolicySolicitOpinionProcess4Before.java | 3 +- .../PolicySolicitOpinionProcess5Before.java | 3 +- .../PolicySolicitOpinionProcess7Before.java | 3 +- .../PolicySolicitOpinionProcess8Before.java | 3 +- .../PolicySolicitOpinionProcess9Before.java | 3 +- .../bat/wkflow/util/enums/FlowTypeEnum.java | 12 +- 42 files changed, 1746 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java 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 5904902b..e918fe41 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 @@ -411,8 +411,8 @@ public class TodoTaskController extends BaseAction { busProcessEntrust.setTaskId(str); iBusProcessEntrustService.save(busProcessEntrust); - if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue())) { - this.changePolicySolicitOpinionProcessAssignee(assignee, userId, pId, str); + if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue()) || StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) { + this.changePolicySolicitOpinionProcessAssignee(assignee, userId, pId, str, one.getPrcType()); } } } @@ -507,11 +507,11 @@ public class TodoTaskController extends BaseAction { * @Param: * @return: */ - private void changePolicySolicitOpinionProcessAssignee(String assignee, String userId, String pId, String str) { + private void changePolicySolicitOpinionProcessAssignee(String assignee, String userId, String pId, String str,String flowType) { Task task = this.taskService.createTaskQuery().taskId(str).singleResult(); QueryWrapper furQueryWrap = new QueryWrapper<>(); furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, pId); - furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType,FlowTypeEnum.ZCZQYJLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType,flowType); // 责任人任务处理。 if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8")) { furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr"); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java new file mode 100644 index 00000000..220c04c0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10After.java @@ -0,0 +1,78 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class PolicyComplianceProgramReviewProcess10After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + // 责任部门 子流程完成总数 + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount",zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = jsonForm.getString("glyUserId"); + delegateTask.setVariable("glyUserId",glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String djrUserId = (String) delegateTask.getVariable("djrUserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(djrUserId); + busBean.save(busProcessNewNext); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java new file mode 100644 index 00000000..cb2c9dd7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess10Before.java @@ -0,0 +1,38 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess10Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java new file mode 100644 index 00000000..0d50758d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11After.java @@ -0,0 +1,86 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess11After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + String shr2UserIds = jsonForm.getString("shr2UserIds"); + List nextUserList = Arrays.asList(shr2UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("shr2UserIdList", nextUserList); + delegateTask.setVariable("shr2UserCount", nextUserList.size()); + delegateTask.setVariable("shr2UserPassCount", 0); + delegateTask.setVariable("shr2UserOverruleCount", 0); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = jsonForm.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java new file mode 100644 index 00000000..2740391a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess11Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess11Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java new file mode 100644 index 00000000..543e85a8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java @@ -0,0 +1,108 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public class PolicyComplianceProgramReviewProcess12After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int shr2UserPassCount = (int) delegateTask.getVariable("shr2UserPassCount"); + delegateTask.setVariable("shr2UserPassCount", shr2UserPassCount + 1); + + String sdr2UserIds = jsonForm.getString("sdr2UserIds"); + List nextUserList = Arrays.asList(sdr2UserIds.split(",")); + delegateTask.setVariable("sdr2UserIdList", nextUserList); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("sdr2UserCount", nextUserList.size()); + delegateTask.setVariable("sdr2UserPassCount", 0); + delegateTask.setVariable("sdr2UserOverruleCount", 0); + } + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = jsonForm.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + delegateTask.setVariable("shr2UserOverruleCount", 1); + } + + // 保存责任人填写的征求意见信息 +// object.put("currentUserId",delegateTask.getAssignee()); +// object.put("prcId",delegateTask.getProcessInstanceId()); +// policySolicitOpinionEOService.batchInsert(object); + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java new file mode 100644 index 00000000..8664fbdd --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess12Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java new file mode 100644 index 00000000..e94c2736 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java @@ -0,0 +1,87 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess13After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount"); + delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1); + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String pzr2UserId = jsonForm.getString("pzr2UserId"); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr2UserId); + busBean.save(busProcessNewNext); + delegateTask.setVariable("pzr2UserId", pzr2UserId); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = jsonForm.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + delegateTask.setVariable("sdr2UserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java new file mode 100644 index 00000000..7130649e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess13Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java new file mode 100644 index 00000000..43a1a32d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14After.java @@ -0,0 +1,85 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess14After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + String csrUserIds = jsonForm.getString("csrUserIds"); + List nextUserList = Arrays.asList(csrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("csrUserIdList", nextUserList); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + String pzr1UserId = jsonForm.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId", pzr1UserId); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java new file mode 100644 index 00000000..1f0b6dde --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess14Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess14Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java new file mode 100644 index 00000000..10d5bf66 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java @@ -0,0 +1,65 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class PolicyComplianceProgramReviewProcess15After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + // TODO 等需求确认,提交后需要做什么操作。 + + + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + QueryWrapper bpnQueryWrap = new QueryWrapper(); + bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap); + if (bpn != null) { + bpn.setOverTime(OVERTIME); + busProcessNameService.saveOrUpdate(bpn); + } + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java new file mode 100644 index 00000000..e2912989 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess15Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java new file mode 100644 index 00000000..5455b731 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1After.java @@ -0,0 +1,97 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +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; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess1After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + delegateTask.setVariable("objectJson", object); + + // 审核人1用户ids + String shr1UserIds = jsonForm.getString("shr1UserIds"); + List nextUserList = Arrays.asList(shr1UserIds.split(",")); + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + + String prcName = "重点认证标准/政策合规性项目审查流程"; + QueryWrapper bpnQueryWrap = new QueryWrapper(); + bpnQueryWrap.eq("PRC_ID", delegateTask.getProcessInstanceId()); + BusProcessName bpn = busProcessNameService.getOne(bpnQueryWrap); + if (bpn != null) { + bpn.setPrcType(FlowTypeEnum.ZCHGXXMSCLC.getValue()); + bpn.setPrcName(prcName); + bpn.setCreatUser(user); + bpn.setCreatUserName(username); + + Date approvalUnitDeadline = jsonForm.getDate("approvalUnitDeadline"); + bpn.setResponsibleUnitDeadlineDate(approvalUnitDeadline); + busProcessNameService.saveOrUpdate(bpn); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("shr1UserIdList", nextUserList); + delegateTask.setVariable("shr1UserCount", nextUserList.size()); + delegateTask.setVariable("shr1UserPassCount", 0); + delegateTask.setVariable("shr1UserOverruleCount", 0); + } + + delegateTask.setVariable("fqrUserId", delegateTask.getAssignee()); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java new file mode 100644 index 00000000..331192b0 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess1Before.java @@ -0,0 +1,35 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess1Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java new file mode 100644 index 00000000..0d714976 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java @@ -0,0 +1,97 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess2After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + JSONObject jsonForm = object.getJSONObject("form"); + + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int shr1UserPassCount = (int) delegateTask.getVariable("shr1UserPassCount"); + delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + // 审定人1用户ids + String sdr1UserIds = jsonForm.getString("sdr1UserIds"); + List nextUserList = Arrays.asList(sdr1UserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("sdr1UserIdList", nextUserList); + delegateTask.setVariable("sdr1UserCount",nextUserList.size()); + delegateTask.setVariable("sdr1UserPassCount",0); + delegateTask.setVariable("sdr1UserOverruleCount",0); + } + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("shr1UserOverruleCount", 1); + } + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java new file mode 100644 index 00000000..ad1ea188 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess2Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java new file mode 100644 index 00000000..d1087675 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java @@ -0,0 +1,81 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +public class PolicyComplianceProgramReviewProcess4After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + int sdr1UserPassCount = (int) delegateTask.getVariable("sdr1UserPassCount"); + delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1); + + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessDefinitionId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + if (!existTaskFlag) { + String pzr1UserId = jsonForm.getString("pzr1UserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(pzr1UserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("pzr1UserId",pzr1UserId); + } + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("sdr1UserOverruleCount", 1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java new file mode 100644 index 00000000..08fb8762 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess4Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java new file mode 100644 index 00000000..d6a96ff7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5After.java @@ -0,0 +1,107 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess5After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + Date approvalUnitDeadline = jsonForm.getDate("approvalUnitDeadline"); + String endFlag = ""; + // 如果当前日期大于审批单位截止日期,则不走责任对接人子流程 + if (new Date().after(approvalUnitDeadline)) { + endFlag = "0"; + // 管理员用户id + String glyUserId = jsonForm.getString("glyUserId"); + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + + delegateTask.setVariable("glyUserId",glyUserId); + } else { + endFlag = "1"; + + // 责任对接人用户id + String djrUserIds = jsonForm.getString("djrUserIds"); + List nextUserList = Arrays.asList(djrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("djrUserIdList", nextUserList); + + delegateTask.setVariable("zrSubProcessCount",nextUserList.size()); + delegateTask.setVariable("zrSubProcessFinishCount",0); + } + } + delegateTask.setVariable("endFlag",endFlag); + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNewNext); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag",approvalFlag); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java new file mode 100644 index 00000000..f57c71a3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess5Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess5Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java new file mode 100644 index 00000000..a0452644 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java @@ -0,0 +1,114 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +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_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PolicyComplianceProgramReviewProcess7After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit + String submitMethod = object.getString("submitMethod"); + if (StringUtils.isEmpty(submitMethod)) { + String zrrUserIds = jsonForm.getString("zrrUserIds"); + if (StringUtils.isNotEmpty(zrrUserIds)) { + List nextUserList = Arrays.asList(zrrUserIds.split(",")); + if (CollectionUtils.isNotEmpty(nextUserList)) { + List flowUserRelInfoList = new ArrayList<>(); + + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + + FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo(); + flowUserRelInfo.setParentUserId(delegateTask.getAssignee()); + flowUserRelInfo.setUserId(nextUser); + flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId()); + flowUserRelInfo.setFlowType(FlowTypeEnum.ZCHGXXMSCLC.getValue()); + flowUserRelInfo.setDataType("zrdjrfpzrr"); // 责任对接人分配责任人 + flowUserRelInfoList.add(flowUserRelInfo); + } + busBean.saveBatch(addBusProcessNewList); + + // 配置多实例 + delegateTask.setVariable("zrrUserIdList", nextUserList); + + flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList); + } + } + + submitMethod = "pageSubmit"; + } else { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = jsonForm.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + + submitMethod = "timerAutoSubmit"; + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("submitMethod",submitMethod); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java new file mode 100644 index 00000000..e855e39c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7Before.java @@ -0,0 +1,38 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess7Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java new file mode 100644 index 00000000..d620e33a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java @@ -0,0 +1,89 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +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_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang3.StringUtils; + +public class PolicyComplianceProgramReviewProcess8After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit + String submitMethod = object.getString("submitMethod"); + if (StringUtils.isEmpty(submitMethod)) { + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId")); + busBean.save(busProcessNewNext); + + // 保存责任人填写的征求意见信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + policySolicitOpinionEOService.batchInsert(object); + + submitMethod = "pageSubmit"; + } else { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = jsonForm.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + submitMethod = "timerAutoSubmit"; + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("submitMethod",submitMethod); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java new file mode 100644 index 00000000..50fadcb1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8Before.java @@ -0,0 +1,37 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess8Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java new file mode 100644 index 00000000..98ccd83f --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java @@ -0,0 +1,128 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +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_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +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.List; + +public class PolicyComplianceProgramReviewProcess9After implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); +// IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + JSONObject jsonForm = object.getJSONObject("form"); + String approvalFlag = jsonForm.getString("approvalFlag"); + + // 提交方式,如果该字段不为空,则是定时器自动提交 定时器自动提交value:timerAutoSubmit + String submitMethod = object.getString("submitMethod"); + if (StringUtils.isEmpty(submitMethod)) { + if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.PASS.getValue())) { + String zrdwUserId = jsonForm.getString("zrdwUserId"); + delegateTask.setVariable("zrdwUserId", zrdwUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(zrdwUserId); + busBean.save(busProcessNewNext); + + List flowUserRelInfoList = new ArrayList<>(); + FlowUserRelInfo flowUserRelInfo = new FlowUserRelInfo(); + flowUserRelInfo.setParentUserId(delegateTask.getAssignee()); + flowUserRelInfo.setUserId(zrdwUserId); + flowUserRelInfo.setActiProcInstId(delegateTask.getProcessInstanceId()); + flowUserRelInfo.setFlowType(FlowTypeEnum.ZCHGXXMSCLC.getValue()); + flowUserRelInfo.setDataType("zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + flowUserRelInfoList.add(flowUserRelInfo); + flowUserRelInfoService.saveBatchFlowUserRelInfo(flowUserRelInfoList); + + jsonForm.put("zrdwUserId",""); + submitMethod = "pageSubmit"; + } else if (StringUtils.equals(approvalFlag, ApprovalFlagEnum.OVERRULE.getValue())) { + List zrrUserIdList = (List) delegateTask.getVariable("zrrUserIdList"); + List addBusProcessNewList = new ArrayList<>(); + for (String nextUser : zrrUserIdList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + addBusProcessNewList.add(busProcessNewNext); + } + busBean.saveBatch(addBusProcessNewList); + } + } else { + // 责任部门 子流程总数 + int zrSubProcessCount = (int) delegateTask.getVariable("zrSubProcessCount"); + int zrSubProcessFinishCount = (int) delegateTask.getVariable("zrSubProcessFinishCount"); + zrSubProcessFinishCount = zrSubProcessFinishCount + 1; + delegateTask.setVariable("zrSubProcessFinishCount", zrSubProcessFinishCount); + + // 如果该流程中的 责任部门子流程都已完成,给管理员节点分配数据。 + if (zrSubProcessCount == zrSubProcessFinishCount) { + String glyUserId = jsonForm.getString("glyUserId"); + delegateTask.setVariable("glyUserId", glyUserId); + + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(glyUserId); + busBean.save(busProcessNewNext); + } + submitMethod = "timerAutoSubmit"; + } + +// // 保存责任人填写的征求意见信息 +// object.put("currentUserId",delegateTask.getAssignee()); +// object.put("prcId",delegateTask.getProcessInstanceId()); +// policySolicitOpinionEOService.batchInsert(object); + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + delegateTask.setVariable("approvalFlag", approvalFlag); + delegateTask.setVariable("submitMethod", submitMethod); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java new file mode 100644 index 00000000..dc85adb4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9Before.java @@ -0,0 +1,38 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.List; + +public class PolicyComplianceProgramReviewProcess9Before implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.isNull("TASK_ID"); + queryWrapper.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper.eq("USER_ID",delegateTask.getAssignee()); + List list = busBean.list(queryWrapper); + if(CollectionUtils.isNotEmpty(list)){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink(FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCHGXXMSCLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java index 17598a7d..73873861 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess10Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -29,7 +30,7 @@ public class PolicySolicitOpinionProcess10Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java index 384fcfe9..d70becf4 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess11Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess11Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java index a9733653..c6edb7bc 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess12Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java index 0f3cb286..9b9222cd 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess13Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java index b9ca8576..70aeb1b2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess14Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java index ded544e6..f4cac9be 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess15Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess15Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java index ebc641ef..39c68415 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess16Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java index 834b0ce1..004e40bc 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess1Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -26,7 +27,7 @@ public class PolicySolicitOpinionProcess1Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java index 04bd288c..38eb9b56 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess2Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java index 5e70785b..d237b510 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess4Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java index 2ff6a446..34dd815e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess5Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess5Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java index 16444c9e..3e4ddf8a 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess7Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -29,7 +30,7 @@ public class PolicySolicitOpinionProcess7Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java index 74c233f6..a20364be 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess8Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -28,7 +29,7 @@ public class PolicySolicitOpinionProcess8Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java index dd0f2ce2..382fab15 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess9Before.java @@ -5,6 +5,7 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; @@ -29,7 +30,7 @@ public class PolicySolicitOpinionProcess9Before implements TaskListener { one1.setTaskInfo(delegateTask.getName()); busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("bzrkStep2?prcType=laws2"); + one1.setLink(FlowTypeEnum.ZCZQYJLC.getRoute() + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + "&taskDefinitionKey="+delegateTask.getTaskDefinitionKey()); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1); } diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java index 9a765571..cf84eb87 100644 --- a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java @@ -4,14 +4,18 @@ package com.ydw.bat.wkflow.util.enums; * 流程类型枚举类 */ public enum FlowTypeEnum { - ZCZQYJLC("29","政策征求意见流程"),; + ZCZQYJLC("29","政策征求意见流程","policyConsultation"), + ZCHGXXMSCLC("30","重点认证标准/政策合规性项目审查流程","policyComplianceReview"), + ; private String value; private String lable; + private String route; - private FlowTypeEnum(String value, String lable) { + private FlowTypeEnum(String value, String lable,String route) { this.value = value; this.lable = lable; + this.route = route; } public String getValue() { return value; @@ -19,4 +23,8 @@ public enum FlowTypeEnum { public String getLable() { return lable; } + + public String getRoute() { + return route; + } } From 51d749b962c6a83a64fe8ce5ebffc6c2b5aa06e3 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Thu, 26 Oct 2023 11:47:23 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E9=87=8D=E7=82=B9=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A0=87=E5=87=86/=E6=94=BF=E7=AD=96=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=80=A7=E9=A1=B9=E7=9B=AE=E5=AE=A1=E6=9F=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TaskTodoService.java | 2 +- .../task/TodoTaskController.java | 128 ++++++++++++++++-- .../datas/entity/ZchgxxmscSybDataEO.java | 101 ++++++++++++++ .../mapper/ZchgxxmscSybDataEOMapper.java | 7 + .../service/IZchgxxmscSybDataEOService.java | 14 ++ .../impl/ZchgxxmscSybDataEOServiceImpl.java | 95 +++++++++++++ ...ComplianceProgramReviewProcess12After.java | 2 +- ...ComplianceProgramReviewProcess13After.java | 2 +- ...ComplianceProgramReviewProcess15After.java | 2 +- ...yComplianceProgramReviewProcess2After.java | 2 +- ...yComplianceProgramReviewProcess4After.java | 2 +- ...yComplianceProgramReviewProcess7After.java | 29 +++- ...yComplianceProgramReviewProcess8After.java | 28 +++- ...yComplianceProgramReviewProcess9After.java | 30 ++-- .../PolicySolicitOpinionProcess12After.java | 2 +- .../PolicySolicitOpinionProcess13After.java | 2 +- .../PolicySolicitOpinionProcess14After.java | 2 +- .../PolicySolicitOpinionProcess16After.java | 2 +- .../PolicySolicitOpinionProcess2After.java | 2 +- .../PolicySolicitOpinionProcess4After.java | 2 +- .../mapper/datas/ZchgxxmscSybDataEOMapper.xml | 5 + 21 files changed, 425 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java create mode 100644 src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java index 4bf953c7..3c9114c8 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/service/TaskTodoService.java @@ -94,7 +94,7 @@ public class TaskTodoService { */ public boolean whetherExistTaskByTaskDefinitionKey(String prcId, String taskDefinitionKey,String taskId) { boolean result = false; - List taskList = taskService.createTaskQuery().processDefinitionId(prcId).active().list().stream().filter(task-> { + List taskList = taskService.createTaskQuery().processInstanceId(prcId).active().list().stream().filter(task-> { boolean flag = false; if (StringUtils.isNotEmpty(taskId)) { if (!StringUtils.equals(task.getId(),taskId)) { 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 e918fe41..d117a878 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 @@ -106,6 +106,9 @@ public class TodoTaskController extends BaseAction { @Autowired private IPolicySolicitOpinionEOService policySolicitOpinionEOService; + @Autowired + private IZchgxxmscSybDataEOService zchgxxmscSybDataEOService; + @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @ApiImplicitParam(name = "current", value = "当前页"), @@ -411,8 +414,11 @@ public class TodoTaskController extends BaseAction { busProcessEntrust.setTaskId(str); iBusProcessEntrustService.save(busProcessEntrust); - if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue()) || StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) { - this.changePolicySolicitOpinionProcessAssignee(assignee, userId, pId, str, one.getPrcType()); + if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCZQYJLC.getValue())) { + this.changeZczqyjFlowAssignee(assignee, userId, pId, str); + + } else if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) { + this.changeZchgxxmscFlowAssignee(assignee, userId, pId, str); } } } @@ -501,19 +507,18 @@ public class TodoTaskController extends BaseAction { return WrapMapper.ok("改派成功"); } /** - * @Description: 变更政策征求意见流程任务办理人(责任部门子流程相关) + * @Description: 变更流程人员关系 * @author: wangzhijiang * @date: 2023-10-18 * @Param: * @return: */ - private void changePolicySolicitOpinionProcessAssignee(String assignee, String userId, String pId, String str,String flowType) { - Task task = this.taskService.createTaskQuery().taskId(str).singleResult(); + private void changeFlowUserRelInfoAssignee(String assignee, String userId, String pId, String str,String flowType,Task task) { QueryWrapper furQueryWrap = new QueryWrapper<>(); furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, pId); furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType,flowType); // 责任人任务处理。 - if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8")) { + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey8")) { furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr"); furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId); List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); @@ -523,7 +528,7 @@ public class TodoTaskController extends BaseAction { } } // 责任对接人汇总 - if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9")) { + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey9")) { furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrr"); furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, userId); List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); @@ -533,7 +538,7 @@ public class TodoTaskController extends BaseAction { } } // 责任单位审批 - if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey10")) { + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey10") || StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey10")) { furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType,"zrdjrfpzrdw"); furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, userId); List furInfoList = this.flowUserRelInfoService.list(furQueryWrap); @@ -544,6 +549,50 @@ public class TodoTaskController extends BaseAction { } } + public void changeZczqyjFlowAssignee(String assignee, String userId, String pId, String str){ + Task task = this.taskService.createTaskQuery().taskId(str).singleResult(); + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey8")) { + Map params = new HashMap<>(); + params.put("taskDefinitionKey",task.getTaskDefinitionKey()); + params.put("currentUserId",userId); + params.put("prcId",task.getProcessInstanceId()); + List policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params); + if (CollectionUtils.isNotEmpty(policySolicitOpinionEOList)) { + policySolicitOpinionEOList.forEach(policySolicitOpinionEO -> {policySolicitOpinionEO.setCreateUserId(assignee);}); + this.policySolicitOpinionEOService.updateBatchById(policySolicitOpinionEOList); + } + } else if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicySolicitOpinionProcessKey9")) { + Map params = new HashMap<>(); + params.put("taskDefinitionKey","PolicySolicitOpinionProcessKey8"); + params.put("currentUserId",userId); + params.put("prcId",task.getProcessInstanceId()); + List policySolicitOpinionEOList = this.policySolicitOpinionEOService.queryPolicitOpinionEOList(params); + if (CollectionUtils.isNotEmpty(policySolicitOpinionEOList)) { + policySolicitOpinionEOList.forEach(policySolicitOpinionEO -> {policySolicitOpinionEO.setCreateUserId(assignee);}); + this.policySolicitOpinionEOService.updateBatchById(policySolicitOpinionEOList); + } + } + this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCZQYJLC.getValue(),task); + } + + public void changeZchgxxmscFlowAssignee(String assignee, String userId, String pId, String str){ + Task task = this.taskService.createTaskQuery().taskId(str).singleResult(); + + if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey8")) { + // 如果是责任人任务处理,修改当前责任人被分配的事业部数据 + Map params = new HashMap<>(); + params.put("taskDefinitionKey",task.getTaskDefinitionKey()); + params.put("currentUserId",userId); + params.put("pId",task.getProcessInstanceId()); + List zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + zchgxxmscSybDataEOList.forEach(sybDataEO -> {sybDataEO.setZrrUserId(assignee);}); + this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } + } + + this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCHGXXMSCLC.getValue(),task); + } @ApiOperation(value = "完成任务", notes = "流程单个节点任务,直接完成任务") @ApiImplicitParams({@ApiImplicitParam(name = "taskId", value = "任务id"), @ApiImplicitParam(name = "userId", value = "完成任务用户Id")}) @@ -1930,6 +1979,21 @@ public class TodoTaskController extends BaseAction { if (StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.ZCZQYJLC.getValue())) { object.put("prcId",busProcessName.getPrcId()); this.policySolicitOpinionEOService.batchInsert(object); + } else if (StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.ZCHGXXMSCLC.getValue())) { + JSONObject jsonForm = object.getJSONObject("form"); + // departmentType字段: value: undertaking 事业部 productPlanning 产品规划部 + String departmentType = jsonForm.getString("departmentType"); + if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) { + JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList"); + List zchgxxmscSybDataEOList = new ArrayList<>(); + ZchgxxmscSybDataEO zchgxxmscSybDataEO = null; + for (Object sybData : sybDataListArr) { + zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class); + zchgxxmscSybDataEO.setModifyTime(new Date()); + zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); + } + this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } } return WrapMapper.ok("保存成功"); } @@ -3170,4 +3234,52 @@ public class TodoTaskController extends BaseAction { return "1"; } + /** + * 本接口仅提供法规系统调用 + */ + @ApiOperation(value = "查询重点认证标准/政策合规性项目审查任务明细") + @GetMapping("/queryZchgxxmscTaskDetail") + public BusProcessNew queryZchgxxmscTaskDetail(@RequestParam Map params) { + String taskIds = (String) params.get("taskIds"); + String prcId = (String) params.get("pId"); + List taskIdList = new ArrayList<>(Arrays.asList(taskIds.split(","))); + + List list = iBusProcessNewService.findNoExecuteBusProcessNewForEnd(taskIdList); + if (list.isEmpty()) { + return null; + } + BusProcessNew processNew = new BusProcessNew(); + BeanUtils.copyProperties(list.get(0), processNew); + + if(StringUtils.isNotBlank(prcId)){ + List list2 = taskService.createTaskQuery().processInstanceId(prcId).active().list(); + if(!list2.isEmpty()){ + processNew.setNowTaskInfo(list2.get(0).getName()); + } + } + + JSONObject object3 = JSONObject.parseObject(list.get(0).getMesg()); + + List zchgxxmscSybDataEOList = this.zchgxxmscSybDataEOService.queryZchgxxmscSybDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + JSONObject jsonForm = object3.getJSONObject("form"); + jsonForm.put("sybDataList",zchgxxmscSybDataEOList); + } + +// object3.put("cpghbDataList",""); + processNew.setMesg(object3.toJSONString()); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID",processNew.getId()); + wrapper.eq("EXEC_TYPE",2); + wrapper.eq("EXEC_STATUS",0); + long count = oaTaskExecService.count(wrapper); + processNew.setCommitStatus(count); + // 设置processNew表流程状态为已接收 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(BusProcessNew::getTaskId,taskIdList); + updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收"); + iBusProcessNewService.update(updateWrapper); + return processNew; + + } } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java new file mode 100644 index 00000000..16e8cfaa --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscSybDataEO.java @@ -0,0 +1,101 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Description: 重点认证标准/政策合规性项目审查-事业部数据表 + * @author: wangzhijiang + * @date: 2023-10-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ZCHGXXMSC_SYB_DATA") +@ApiModel(value="ZchgxxmscSybData对象", description="") +public class ZchgxxmscSybDataEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + // 标准/政策id + @TableField("LAW_ID") + private String lawId; + + // 流程实例id + @TableField("PRC_ID") + private String prcId; + + // 责任人用户id + @TableField("ZRR_USER_ID") + private String zrrUserId; + + // 数据来源 + @TableField("DATA_SOURCE") + private String dataSource; + + // 标准/政策编号 + @TableField("LAW_CODE") + private String lawCode; + + // 标准/政策名称 + @TableField("LAW_NAME") + private String lawName; + + // 产品类型 + @TableField("PRODUCT_TYPE") + private String productType; + + // 实施日期 + @TableField("IMPL_TIME") + private String implTime; + + // 实施要求 + @TableField("IMPL_REQUIRE") + private String implRequire; + + // 资源符合情况 + @TableField("RESOURCE_ACCORDWITH_CIRCUMSTANCE") + private String resourceAccordwithCircumstance; + + // 开发计划 + @TableField("DEV_PLAN") + private String devPlan; + + // sop时间 + @TableField("SOP_DATE") + private String sopDate; + + // 完成情况 + @TableField("FINISH_CIRCUMSTANCE") + private String finishCircumstance; + + // sop时间超过法规时限的空挡期的业务应对方案 + @TableField("SOP_DATE_SOLUTIONS") + private String sopDateSolutions; + + // 提出人/创建人 + @TableField("CREATE_USER_ID") + private String createUserId; + + // 创建时间 + @TableField("CREATE_TIME") + private Date createTime; + + // 更新人 + @TableField("MODIFY_USER_ID") + private String modifyUserId; + + // 更新时间 + @TableField("MODIFY_TIME") + private Date modifyTime; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java new file mode 100644 index 00000000..8ae27163 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscSybDataEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; + +public interface ZchgxxmscSybDataEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java new file mode 100644 index 00000000..8bca45a3 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscSybDataEOService.java @@ -0,0 +1,14 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; + +import java.util.List; +import java.util.Map; + +public interface IZchgxxmscSybDataEOService extends IService { + + void batchInsert(List zchgxxmscSybDataEOList); + + List queryZchgxxmscSybDataEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java new file mode 100644 index 00000000..9c54f49b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java @@ -0,0 +1,95 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscSybDataEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl implements IZchgxxmscSybDataEOService { + + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + + @Override + public void batchInsert(List zchgxxmscSybDataEOList) { + if (CollectionUtils.isNotEmpty(zchgxxmscSybDataEOList)) { + this.saveBatch(zchgxxmscSybDataEOList); + } + } + + @Override + public List queryZchgxxmscSybDataEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("pId"); + + QueryWrapper sybEoQueryWrap = new QueryWrapper<>(); + sybEoQueryWrap.lambda().eq(ZchgxxmscSybDataEO::getPrcId, prcId); + + if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey8")) { + // 责任人处理 + sybEoQueryWrap.lambda().eq(ZchgxxmscSybDataEO::getZrrUserId, currentUserId); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey9")) { + // 责任对接人汇总 + // 查询当前责任对接人分配出去的责任人,获取这些责任人填写的征求意见列表 + List userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + sybEoQueryWrap.lambda().in(ZchgxxmscSybDataEO::getZrrUserId, userIdList); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey10")) { + // 责任单位审批 + // 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的征求意见列表 + List userIdList = new ArrayList<>(); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId); + List zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper zrdjrQueryWrap = new QueryWrapper<>(); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + } else { + userIdList.add("设置一个无法满足的条件"); + } + sybEoQueryWrap.lambda().in(ZchgxxmscSybDataEO::getZrrUserId, userIdList); + } + sybEoQueryWrap.orderByAsc("create_time"); + result = this.list(sybEoQueryWrap); + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java index 543e85a8..2ef78d28 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess12After.java @@ -44,7 +44,7 @@ public class PolicyComplianceProgramReviewProcess12After implements TaskListener delegateTask.setVariable("sdr2UserIdList", nextUserList); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java index e94c2736..03a129a7 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess13After.java @@ -36,7 +36,7 @@ public class PolicyComplianceProgramReviewProcess13After implements TaskListener int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount"); delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java index 10d5bf66..5ed589bc 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java @@ -35,7 +35,7 @@ public class PolicyComplianceProgramReviewProcess15After implements TaskListener boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java index 0d714976..82f28ad0 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess2After.java @@ -38,7 +38,7 @@ public class PolicyComplianceProgramReviewProcess2After implements TaskListener delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java index d1087675..410664a1 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess4After.java @@ -33,7 +33,7 @@ public class PolicyComplianceProgramReviewProcess4After implements TaskListener delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java index a0452644..3b445680 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess7After.java @@ -1,13 +1,16 @@ package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; 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_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService; import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; @@ -15,9 +18,7 @@ import org.activiti.engine.delegate.TaskListener; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; public class PolicyComplianceProgramReviewProcess7After implements TaskListener { @Override @@ -25,6 +26,7 @@ public class PolicyComplianceProgramReviewProcess7After implements TaskListener IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); + IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -39,6 +41,27 @@ public class PolicyComplianceProgramReviewProcess7After implements TaskListener if (StringUtils.isNotEmpty(zrrUserIds)) { List nextUserList = Arrays.asList(zrrUserIds.split(",")); if (CollectionUtils.isNotEmpty(nextUserList)) { + // departmentType字段: value: undertaking 事业部 productPlanning 产品规划部 + String departmentType = jsonForm.getString("departmentType"); + if (StringUtils.equals(departmentType,"undertaking")) { + JSONArray sybDataList = jsonForm.getJSONArray("infoTableDatas"); + + List zchgxxmscSybDataEOList = new ArrayList<>(); + for (String nextUser : nextUserList) { + ZchgxxmscSybDataEO zchgxxmscSybDataEO = null; + for (Object sybData : sybDataList) { + zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class); + zchgxxmscSybDataEO.setId(UUID.randomUUID().toString()); + zchgxxmscSybDataEO.setZrrUserId(nextUser); + zchgxxmscSybDataEO.setPrcId(delegateTask.getProcessInstanceId()); + zchgxxmscSybDataEO.setCreateTime(new Date()); + zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); + } + } + + zchgxxmscSybDataEOService.batchInsert(zchgxxmscSybDataEOList); + } + List flowUserRelInfoList = new ArrayList<>(); List addBusProcessNewList = new ArrayList<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java index d620e33a..f77262db 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java @@ -1,18 +1,25 @@ package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; 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_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; import org.apache.commons.lang3.StringUtils; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + public class PolicyComplianceProgramReviewProcess8After implements TaskListener { @Override public void notify(DelegateTask delegateTask) { @@ -20,6 +27,7 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); + IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -41,10 +49,22 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener busProcessNewNext.setUserId((String) delegateTask.getVariable("djrUserId")); busBean.save(busProcessNewNext); - // 保存责任人填写的征求意见信息 - object.put("currentUserId",delegateTask.getAssignee()); - object.put("prcId",delegateTask.getProcessInstanceId()); - policySolicitOpinionEOService.batchInsert(object); + // 保存责任人填写的数据信息 + // departmentType字段: value: undertaking 事业部 productPlanning 产品规划部 + String departmentType = jsonForm.getString("departmentType"); + if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) { + JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList"); + List zchgxxmscSybDataEOList = new ArrayList<>(); + ZchgxxmscSybDataEO zchgxxmscSybDataEO = null; + for (Object sybData : sybDataListArr) { + zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class); + zchgxxmscSybDataEO.setModifyTime(new Date()); + zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); + } + zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } else if (StringUtils.equals(departmentType,"productPlanning")) { + + } submitMethod = "pageSubmit"; } else { diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java index 98ccd83f..8a07a344 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess9After.java @@ -1,14 +1,13 @@ package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; -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_main.datas.service.IFlowUserRelInfoService; -import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; +import com.ydw.bat.wkflow.business_main.datas.service.*; import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; @@ -17,6 +16,7 @@ import org.activiti.engine.delegate.TaskListener; import org.apache.commons.lang.StringUtils; import java.util.ArrayList; +import java.util.Date; import java.util.List; public class PolicyComplianceProgramReviewProcess9After implements TaskListener { @@ -25,7 +25,7 @@ public class PolicyComplianceProgramReviewProcess9After implements TaskListener IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); IFlowUserRelInfoService flowUserRelInfoService = SpringContextUtil.getBean(IFlowUserRelInfoService.class); -// IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); + IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -105,10 +105,22 @@ public class PolicyComplianceProgramReviewProcess9After implements TaskListener submitMethod = "timerAutoSubmit"; } -// // 保存责任人填写的征求意见信息 -// object.put("currentUserId",delegateTask.getAssignee()); -// object.put("prcId",delegateTask.getProcessInstanceId()); -// policySolicitOpinionEOService.batchInsert(object); + // 保存责任人对接人修改的数据信息 + // departmentType字段: value: undertaking 事业部 productPlanning 产品规划部 + String departmentType = jsonForm.getString("departmentType"); + if (StringUtils.equals(departmentType,"undertaking") && jsonForm.containsKey("sybDataList")) { + JSONArray sybDataListArr = jsonForm.getJSONArray("sybDataList"); + List zchgxxmscSybDataEOList = new ArrayList<>(); + ZchgxxmscSybDataEO zchgxxmscSybDataEO = null; + for (Object sybData : sybDataListArr) { + zchgxxmscSybDataEO = JSONObject.parseObject(JSONObject.toJSONString(sybData),ZchgxxmscSybDataEO.class); + zchgxxmscSybDataEO.setModifyTime(new Date()); + zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); + } + zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } else if (StringUtils.equals(departmentType,"productPlanning")) { + + } // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java index 47c21d04..9faa0407 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess12After.java @@ -54,7 +54,7 @@ public class PolicySolicitOpinionProcess12After implements TaskListener { delegateTask.setVariable("hqrUserIdList", nextUserList); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java index 9113ced4..ae6be652 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess13After.java @@ -37,7 +37,7 @@ public class PolicySolicitOpinionProcess13After implements TaskListener { int hqrUserPassCount = (int) delegateTask.getVariable("hqrUserPassCount"); delegateTask.setVariable("hqrUserPassCount", hqrUserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java index 04483745..789af733 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess14After.java @@ -32,7 +32,7 @@ public class PolicySolicitOpinionProcess14After implements TaskListener { int sdr2UserPassCount = (int) delegateTask.getVariable("sdr2UserPassCount"); delegateTask.setVariable("sdr2UserPassCount", sdr2UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java index 263a29ef..e17484c9 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java @@ -35,7 +35,7 @@ public class PolicySolicitOpinionProcess16After implements TaskListener { boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java index 4747dc24..2b859f16 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess2After.java @@ -38,7 +38,7 @@ public class PolicySolicitOpinionProcess2After implements TaskListener { delegateTask.setVariable("shr1UserPassCount", shr1UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java index 50d8c691..7d0e63a8 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess4After.java @@ -34,7 +34,7 @@ public class PolicySolicitOpinionProcess4After implements TaskListener { delegateTask.setVariable("sdr1UserPassCount", sdr1UserPassCount + 1); boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( - delegateTask.getProcessDefinitionId(), + delegateTask.getProcessInstanceId(), delegateTask.getTaskDefinitionKey(), delegateTask.getId() ); diff --git a/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml new file mode 100644 index 00000000..e0a899f9 --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscSybDataEOMapper.xml @@ -0,0 +1,5 @@ + + + + + From 7c8203bd9493808d049195b5b4c3cbc7e15e396c Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Fri, 27 Oct 2023 09:08:35 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E9=87=8D=E7=82=B9=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A0=87=E5=87=86/=E6=94=BF=E7=AD=96=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=80=A7=E9=A1=B9=E7=9B=AE=E5=AE=A1=E6=9F=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E3=80=81=E5=AF=B9=E6=8E=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 32 ++- .../entity/ZchgxxmscCpghbDataDetailEO.java | 43 ++++ .../datas/entity/ZchgxxmscCpghbDataEO.java | 185 ++++++++++++++++++ .../ZchgxxmscCpghbDataDetailEOMapper.java | 7 + .../mapper/ZchgxxmscCpghbDataEOMapper.java | 7 + .../IZchgxxmscCpghbDataDetailEOService.java | 13 ++ .../service/IZchgxxmscCpghbDataEOService.java | 15 ++ ...ZchgxxmscCpghbDataDetailEOServiceImpl.java | 36 ++++ .../impl/ZchgxxmscCpghbDataEOServiceImpl.java | 134 +++++++++++++ .../impl/ZchgxxmscSybDataEOServiceImpl.java | 4 +- ...yComplianceProgramReviewProcess8After.java | 13 +- ...cyComplianceProgramReviewProcessTimer.java | 144 ++++++++++++++ .../ZchgxxmscCpghbDataDetailEOMapper.xml | 5 + .../datas/ZchgxxmscCpghbDataEOMapper.xml | 5 + 14 files changed, 633 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java create mode 100644 src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml create mode 100644 src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml 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 d117a878..e4628570 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 @@ -109,6 +109,9 @@ public class TodoTaskController extends BaseAction { @Autowired private IZchgxxmscSybDataEOService zchgxxmscSybDataEOService; + @Autowired + private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService; + @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @ApiImplicitParam(name = "current", value = "当前页"), @@ -589,6 +592,23 @@ public class TodoTaskController extends BaseAction { zchgxxmscSybDataEOList.forEach(sybDataEO -> {sybDataEO.setZrrUserId(assignee);}); this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); } + + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);}); + this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList); + } + } else if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey9")){ + Map params = new HashMap<>(); + params.put("taskDefinitionKey","PolicyComplianceProgramReviewProcessKey8"); + params.put("currentUserId",userId); + params.put("pId",task.getProcessInstanceId()); + + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);}); + this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList); + } } this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCHGXXMSCLC.getValue(),task); @@ -1993,6 +2013,11 @@ public class TodoTaskController extends BaseAction { zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); } this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } else if (StringUtils.equals(departmentType,"productPlanning") && jsonForm.containsKey("cpghbDataList")) { + // 保存产品规划部的责任人填写的信息 + object.put("currentUserId",one.getUserId()); + object.put("prcId",busProcessName.getPrcId()); + this.zchgxxmscCpghbDataEOService.batchInsert(object); } } return WrapMapper.ok("保存成功"); @@ -3266,7 +3291,12 @@ public class TodoTaskController extends BaseAction { jsonForm.put("sybDataList",zchgxxmscSybDataEOList); } -// object3.put("cpghbDataList",""); + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + JSONObject jsonForm = object3.getJSONObject("form"); + jsonForm.put("cpghbDataList",zchgxxmscCpghbDataEOList); + } + processNew.setMesg(object3.toJSONString()); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("TODO_ID",processNew.getId()); diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java new file mode 100644 index 00000000..87e8bf34 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java @@ -0,0 +1,43 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 重点认证标准/政策合规性项目审查-产品规划部数据明细表 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ZCHGXXMSC_CPGHB_DATA_DETAIL") +@ApiModel(value="ZchgxxmscCpghbDataDetail对象", description="") +public class ZchgxxmscCpghbDataDetailEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + // 流程实例id + @TableField("PRC_ID") + private String prcId; + + // 产品规划部数据id + @TableField("ZCHGXXMSC_CPGHB_DATA_ID") + private String zchgxxmscCpghbDataId; + + // 标准/政策id + @TableField("LAW_ID") + private String lawId; + + // 输入值 + @TableField("INPUT_VALUE") + private String inputValue; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java new file mode 100644 index 00000000..8ea4d6d8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java @@ -0,0 +1,185 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + * @Description: 重点认证标准/政策合规性项目审查-产品规划部数据表 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ZCHGXXMSC_CPGHB_DATA") +@ApiModel(value="ZchgxxmscCpghbData对象", description="") +public class ZchgxxmscCpghbDataEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + // 流程实例id + @TableField("PRC_ID") + private String prcId; + + // 责任人用户id + @TableField("ZRR_USER_ID") + private String zrrUserId; + + // 业务 + @TableField("BUSINESS") + private String business; + + // 平台 + @TableField("PLATFORM") + private String platform; + + // 项目 + @TableField("PROJECT") + private String project; + + // 项目描述 + @TableField("PROJECT_DESCRIPTION") + private String projectDescription; + + // 当前节点 + @TableField("CURRENT_NODE") + private String currentNode; + + // G0 + @TableField("G_ZERO_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gZeroDate; + + // G1 + @TableField("G_ONE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gOneDate; + + // G2 + @TableField("G_TWO_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTwoDate; + + // G3 + @TableField("G_THREE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gThreeDate; + + // G4 + @TableField("G_FOUR_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gFourDate; + + // G5 + @TableField("G_FIVE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gFiveDate; + + // G6 + @TableField("G_SIX_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gSixDate; + + // G7 + @TableField("G_SEVEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gSevenDate; + + // G8 + @TableField("G_EIGHT_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gEightDate; + + // G9 + @TableField("G_NINE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gNineDate; + + // G10 + @TableField("G_TEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTenDate; + + // G11 + @TableField("G_ELEVEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gElevenDate; + + // G12 + @TableField("G_TWELVE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTwelveDate; + + // G13 + @TableField("G_THIRTEEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gThirteenDate; + + // 提出人/创建人 + @TableField("CREATE_USER_ID") + private String createUserId; + + // 标准填写信息 + @TableField("INFO_TABLE_DATA") + private String infoTableData; + + // 概念状态 + @TableField("CONCEPTUAL_STATE") + private String conceptualState; + + // 概念计划下发时间 + @TableField("CONCEPT_PLAN_RELEASE_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date conceptPlanReleaseTime; + + // 概念修订计划 + @TableField("CONCEPT_REVISION_PLAN") + private String conceptRevisionPlan; + + // 其它说明 + @TableField("ADDITIONAL_NOTES") + private String additionalNotes; + + // 创建时间 + @TableField("CREATE_TIME") + private Date createTime; + + // 更新人 + @TableField("MODIFY_USER_ID") + private String modifyUserId; + + // 更新时间 + @TableField("MODIFY_TIME") + private Date modifyTime; + +// @TableField(exist = false) +// private List zchgxxmscCpghbDataDetailEOList; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java new file mode 100644 index 00000000..134a5f06 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; + +public interface ZchgxxmscCpghbDataDetailEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java new file mode 100644 index 00000000..d94c057a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; + +public interface ZchgxxmscCpghbDataEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java new file mode 100644 index 00000000..1293ad1b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java @@ -0,0 +1,13 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; + +import java.util.List; + +public interface IZchgxxmscCpghbDataDetailEOService extends IService { + + void batchInsert(List zchgxxmscCpghbDataDetailEOList); + + List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java new file mode 100644 index 00000000..1bc4987c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java @@ -0,0 +1,15 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; + +import java.util.List; +import java.util.Map; + +public interface IZchgxxmscCpghbDataEOService extends IService { + + void batchInsert(JSONObject json); + + List queryZchgxxmscCpghbDataEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java new file mode 100644 index 00000000..863fe409 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataDetailEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class ZchgxxmscCpghbDataDetailEOServiceImpl extends ServiceImpl implements IZchgxxmscCpghbDataDetailEOService { + + @Override + public void batchInsert(List zchgxxmscCpghbDataDetailEOList) { + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataDetailEOList)) { + this.saveBatch(zchgxxmscCpghbDataDetailEOList); + } + } + + @Override + public List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList) { + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataIdList)) { + zchgxxmscCpghbDataIdList = zchgxxmscCpghbDataIdList.stream().distinct().collect(Collectors.toList()); + QueryWrapper cpghbDataDetailQueryWrap = new QueryWrapper<>(); + cpghbDataDetailQueryWrap.lambda().in(ZchgxxmscCpghbDataDetailEO::getZchgxxmscCpghbDataId,zchgxxmscCpghbDataIdList); + result = this.list(cpghbDataDetailQueryWrap); + } + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java new file mode 100644 index 00000000..83471ebb --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java @@ -0,0 +1,134 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataEOService; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class ZchgxxmscCpghbDataEOServiceImpl extends ServiceImpl implements IZchgxxmscCpghbDataEOService { + + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + @Autowired + private IZchgxxmscCpghbDataDetailEOService zchgxxmscCpghbDataDetailEOService; + + @Override + public void batchInsert(JSONObject json) { + String currentUserId = json.getString("currentUserId"); + String prcId = json.getString("prcId"); + String removeIds = json.getString("removeIds"); + + JSONObject jsonForm = json.getJSONObject("form"); + if (StringUtils.isNotEmpty(removeIds)) { + List removeIdList = Arrays.asList(removeIds.split(",")); + this.removeByIds(removeIdList); + } + JSONArray cpghbDataListArr = jsonForm.getJSONArray("cpghbDataList"); + List addZchgxxmscCpghbDataEOList = new ArrayList<>(); + List updateZchgxxmscCpghbDataEOList = new ArrayList<>(); + ZchgxxmscCpghbDataEO zchgxxmscCpghbDataEO = null; + + for (Object cpghbData : cpghbDataListArr) { + zchgxxmscCpghbDataEO = JSONObject.parseObject(JSONObject.toJSONString(cpghbData), ZchgxxmscCpghbDataEO.class); + + zchgxxmscCpghbDataEO.setPrcId(prcId); + if (StringUtils.isEmpty(zchgxxmscCpghbDataEO.getId())) { + zchgxxmscCpghbDataEO.setId(UUID.randomUUID().toString()); + zchgxxmscCpghbDataEO.setZrrUserId(currentUserId); + zchgxxmscCpghbDataEO.setCreateUserId(currentUserId); + zchgxxmscCpghbDataEO.setCreateTime(new Date()); + addZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO); + } else { + zchgxxmscCpghbDataEO.setModifyUserId(currentUserId); + zchgxxmscCpghbDataEO.setModifyTime(new Date()); + updateZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO); + } + } + + if (CollectionUtils.isNotEmpty(addZchgxxmscCpghbDataEOList)) { + this.saveBatch(addZchgxxmscCpghbDataEOList); + } + if (CollectionUtils.isNotEmpty(updateZchgxxmscCpghbDataEOList)) { + this.updateBatchById(updateZchgxxmscCpghbDataEOList); + } + } + + @Override + public List queryZchgxxmscCpghbDataEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("pId"); + + QueryWrapper cpghbEoQueryWrap = new QueryWrapper<>(); + cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getPrcId, prcId); + + if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey8")) { + // 责任人处理 + cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getZrrUserId, currentUserId); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey9")) { + // 责任对接人汇总 + // 查询当前责任对接人分配出去的责任人,获取这些责任人填写的数据列表 + List userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey10")) { + // 责任单位审批 + // 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的数据列表 + List userIdList = new ArrayList<>(); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId); + List zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper zrdjrQueryWrap = new QueryWrapper<>(); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + } else { + userIdList.add("设置一个无法满足的条件"); + } + cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList); + } + cpghbEoQueryWrap.orderByAsc("create_time"); + result = this.list(cpghbEoQueryWrap); + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java index 9c54f49b..11ed024c 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java @@ -45,7 +45,7 @@ public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); userIdList.add(currentUserId); @@ -61,7 +61,7 @@ public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); QueryWrapper furQueryWrap = new QueryWrapper<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java index f77262db..19fa8ae0 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java @@ -7,10 +7,7 @@ import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; -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_main.datas.service.IPolicySolicitOpinionEOService; -import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService; +import com.ydw.bat.wkflow.business_main.datas.service.*; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -25,9 +22,8 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); - TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); - IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class); + IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService = SpringContextUtil.getBean(IZchgxxmscCpghbDataEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -63,7 +59,10 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener } zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); } else if (StringUtils.equals(departmentType,"productPlanning")) { - + // 保存产品规划部的责任人填写的信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + zchgxxmscCpghbDataEOService.batchInsert(object); } submitMethod = "pageSubmit"; diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java new file mode 100644 index 00000000..6e6ea008 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java @@ -0,0 +1,144 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess.timer; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +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_wkflow.form.dto.FormSubmitDto; +import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.TaskService; +import org.activiti.engine.task.Task; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 重点认证标准/政策合规性项目审查流程定时器 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Component +@EnableScheduling +@Slf4j +public class PolicyComplianceProgramReviewProcessTimer { + + @Autowired + private IBusProcessNameService busProcessNameService; + @Autowired + private TaskService taskService; + @Autowired + private IBusProcessNewService busProcessNewService; + @Autowired + private FormValsService formValsService; + + /** + * @Description: 自动提交待办任务 + * @author: wangzhijiang + * @date: 2023-10-23 + * @Param: + * @return: + */ + @Scheduled(cron = "10 11 11 * * ? ")//每天十点执行 +// @Scheduled(cron = "0/15 * * * * ? ") + public void autoSubmitZrbmTask() { + QueryWrapper bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date()); + List busProcessNameList = this.busProcessNameService.list(bpnQueryWrap); + + if (CollectionUtils.isNotEmpty(busProcessNameList)) { + List actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList()); + this.recursionComplteZrbmTask(actiProcInstIdList); + } + } + + /** + * 递归提交待办任务 + * + * @param actiProcInstIdList + */ + public void recursionComplteZrbmTask(List actiProcInstIdList) { + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList)) { + for (Task task : taskList) { + JSONObject formJson = new JSONObject(); + + QueryWrapper newQueryWrapper = new QueryWrapper<>(); + newQueryWrapper.lambda().eq(BusProcessNew::getTaskId, task.getId()); + BusProcessNew busProcessNew = this.busProcessNewService.getOne(newQueryWrapper); + if (ObjectUtils.isNotEmpty(busProcessNew)) { + formJson = JSONObject.parseObject(busProcessNew.getMesg()); + JSONObject jsonForm = formJson.getJSONObject("form"); + jsonForm.put("approvalFlag",ApprovalFlagEnum.PASS.getValue()); + jsonForm.put("internalReviewFlag", "1"); + formJson.put("commentText",""); + } + formJson.put("submitMethod", "timerAutoSubmit"); + formJson.put("approvalFlag", ApprovalFlagEnum.PASS.getValue()); + formJson.put("internalReviewFlag", "1"); + + FormSubmitDto formSubmitDto = new FormSubmitDto(); + formSubmitDto.setForm(formJson.toString()); + formSubmitDto.setTask_id(task.getId()); + this.formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey()); + + this.taskService.complete(task.getId()); + } + } + } + List actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList); + if (CollectionUtils.isNotEmpty(actiProcInstIds)) { + this.recursionComplteZrbmTask(actiProcInstIds); + } + } + + /** + * 根据流程实例id,查询还有待办任务的流程。 + * + * @param actiProcInstIdList + * @return + */ + public List queryZrbmTaskByActiProcInstId(List actiProcInstIdList) { + List result = new ArrayList<>(); + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (taskList.size() != 0) { + result.add(actiProcInstId); + } + } + return result; + } +} diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml new file mode 100644 index 00000000..6cd2a1bd --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml new file mode 100644 index 00000000..3c5441e0 --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml @@ -0,0 +1,5 @@ + + + + + From 3e575ea9d8fe62437713b8367c04181c117d2309 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Fri, 27 Oct 2023 17:44:38 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=94=BF=E7=AD=96=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E3=80=81=E9=87=8D=E7=82=B9=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A0=87=E5=87=86/=E6=94=BF=E7=AD=96=E5=90=88=E8=A7=84?= =?UTF-8?q?=E6=80=A7=E9=A1=B9=E7=9B=AE=E5=AE=A1=E6=9F=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E3=80=82=20=E6=8E=A8=E9=80=81OA=E5=BE=85?= =?UTF-8?q?=E9=98=85=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TaskController.java | 2 + .../task/TodoTaskController.java | 1 + .../business_mq/service/CreateMQService.java | 15 ++ .../service/SendToBeReadMQService.java | 171 ++++++++++++++++++ .../service/WebServiceOAService.java | 2 + .../service/impl/WebServiceOAServiceImpl.java | 64 +++++++ ...ComplianceProgramReviewProcess15After.java | 30 +++ ...cyComplianceProgramReviewProcessTimer.java | 3 +- .../PolicySolicitOpinionProcess16After.java | 32 ++++ .../PolicySolicitOpinionProcessTimer.java | 3 +- 10 files changed, 319 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java index aec00b87..c988c160 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TaskController.java @@ -223,6 +223,8 @@ public class TaskController { typeData.put("25","起草");//企标制修订计划管控 typeData.put("26","起草");//企标制修订立项计划 typeData.put("23","汇总");//企标复审 + typeData.put("29","管理员");//政策征求意见 + typeData.put("30","管理员");//重点认证标准/政策合规性项目审查 BusProcessName one = iBusProcessNameService.getOne(queryWrapper); HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery() .processInstanceId(one.getPrcId()).orderByHistoricTaskInstanceEndTime().asc(); 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 e4628570..2b6d4ae0 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 @@ -341,6 +341,7 @@ public class TodoTaskController extends BaseAction { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String data = sdf.format(entry.getValue().get(0).get("createTime")); res.setAcceptTime(data); + res.setTaskDefinitionKey(entry.getValue().get(0).get("taskDefinitionKey").toString()); // //获取新的流程名称 // QueryWrapper queryWrapper1=new QueryWrapper<>(); // queryWrapper1.eq("P_ID",res.getPrcId()); diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java index b1f8ea9e..bf4580d5 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java @@ -59,4 +59,19 @@ public class CreateMQService { } } + /** + * @Description: 发送OA待阅 + * @author: wangzhijiang + * @date: 2023-10-27 + * @Param: @param busProcessNew + * @return: + */ + public void sendToBeReadMq(BusProcessNew busProcessNew) { + + if (oaFlag) { + //发送消息队列 + this.rabbitTemplate.convertAndSend("sendToBeRead-exchange_MQ_GSAR_RELEASE", "sendToBeRead-key_MQ_GSAR_RELEASE", busProcessNew); + } + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java new file mode 100644 index 00000000..439b7652 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendToBeReadMQService.java @@ -0,0 +1,171 @@ +package com.ydw.bat.wkflow.business_mq.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.rabbitmq.client.Channel; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.*; +import com.ydw.bat.wkflow.business_main.datas.mapper.SendTodoLogMapper; +import com.ydw.bat.wkflow.business_oa.utils.EmailUtils; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; +import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class SendToBeReadMQService { + + private static final Logger logger = LoggerFactory.getLogger(SendToBeReadMQService.class); + + @Autowired + private CreateMQService convertMq; + + @Autowired + private EmailUtils emailUtils; + + @Autowired + private WebServiceOAService webServiceOAService; + + @Autowired + private SendTodoLogMapper sendTodoLogMapper; + + @Autowired + private LawsUserInfoService lawsUserInfoService; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "createMQToBeRead_SQ_GSAR_RELEASE", durable = "true"), + exchange = @Exchange(value = "sendToBeRead-exchange_MQ_GSAR_RELEASE", ignoreDeclarationExceptions = "true"), + key = "sendToBeRead-key_MQ_GSAR_RELEASE")) + public void createMQ(BusProcessNew object, Message message, Channel channel) throws Exception { + try { + try { + Thread.sleep(5000); + // 发送OA待阅 + insertOrUpdateInfo(object); + } catch (InterruptedException e) { + logger.error(e.toString()); + Thread.currentThread().interrupt(); + } + } catch (Exception e) { + logger.error("消息队列进入添加数据方法前失败!"); + logger.error(e.getMessage(), e); + } finally { + Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); + channel.basicAck(tag, false); + logger.debug("消息确认成功!!!!!!!!!"); + } + + } + + public void insertOrUpdateInfo(BusProcessNew object) throws Exception { + try { + NotifyTodoAppResult todoAppResult = webServiceOAService.sendToBeRead(object); + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + + if (todoAppResult.getSIGN().equals("0") || todoAppResult.getMASSAGE().equals("操作成功")) { + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID", object.getId()); + wrapper.eq("MSG_TYPE", "0"); + List list = sendTodoLogMapper.selectList(wrapper); + if (!list.isEmpty()) { + SendTodoLog sendTodoLog = list.get(0); + sendTodoLog.setMsgStatus("2"); + sendTodoLog.setOperMesg(todoAppResult.getMASSAGE()); + sendTodoLog.setCreateTime(sdf.format(new Date())); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLogMapper.updateById(sendTodoLog); + } else { + sendTodoSave(object, sdf, "2", todoAppResult.getMASSAGE()); + } + } else { + // 重试发送待办 + logger.info("重试发送待办"); + this.restartSendMq(object, todoAppResult.getMASSAGE()); + } + + } catch (Exception e) { + logger.error(e.getMessage(), e); + this.restartSendMq(object, e.getMessage()); + } + } + + public void restartSendMq(BusProcessNew object, String operMesg) throws Exception { + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID", object.getId()); + wrapper.eq("MSG_TYPE", "0"); + List list = sendTodoLogMapper.selectList(wrapper); + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + if (!list.isEmpty()) { + SendTodoLog sendTodoLog = list.get(0); + int againNumNew = Integer.valueOf(sendTodoLog.getErrNum()); + if (againNumNew >= 6) { + ResponseMessage byId = lawsUserInfoService.getById("WY8J26MH23"); + // 发送待办 或 发送给管理员邮箱 + List emailList = new ArrayList<>(); + // 占时指定admin用户邮箱 + emailList.add(byId == null ? "" : (byId.getData().getEmail() == null ? "" : byId.getData().getEmail())); + String[] arr = emailList.toArray(new String[emailList.size()]); + String title = "OA请求发送失败6次"; + String countText = "

您好:

" + + "" + "OA请求发送失败6次,请线下协调处理" + "
"; + emailUtils.sendMsgFeign(arr, title, countText); + logger.info("发送失败6次,发送给管理员邮箱"); + } else { + restSendTodo(object, sdf, sendTodoLog, againNumNew, operMesg); + } + } else { + sendTodoSave(object, sdf, "3", operMesg); + } + } + + private void restSendTodo(BusProcessNew object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew, String operMesg) throws Exception { + // 失败次数小于6次,放入失败队列延迟消费 + if ((againNumNew < 6)) { + Thread.sleep(3000); + logger.info("发送失败连续持续" + againNumNew + "次,存入延迟重试队列!!!!!!!!!"); + } else { + logger.info("发送失败连续持续" + againNumNew + "次!!"); + } + sendTodoLog.setErrNum(sendTodoLog.getErrNum() + 1); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLog.setOperMesg(operMesg); + sendTodoLogMapper.updateById(sendTodoLog); + convertMq.sendTodoMq(object); + logger.info("已重新加入延迟队列"); + } + + private void sendTodoSave(BusProcessNew object, SimpleDateFormat sdf, String s, String operMesg) { + SendTodoLog sendTodoLog = new SendTodoLog(); + sendTodoLog.setMsgType("0"); + sendTodoLog.setTodoId(object.getId()); + sendTodoLog.setUserId(object.getUserId()); + JSONObject json = JSONObject.fromObject(object); + sendTodoLog.setMesg(json.toString()); + sendTodoLog.setMsgStatus(s); + sendTodoLog.setErrNum(1); + sendTodoLog.setOperMesg(operMesg); + sendTodoLog.setCreateTime(sdf.format(new Date())); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLogMapper.insert(sendTodoLog); + if (s.equals("2")) { + logger.info("发送成功,存入OA日志"); + } else { + convertMq.sendToBeReadMq(object); + logger.info("已重新加入延迟队列"); + } + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java index 97c4410b..cbf6e246 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java @@ -24,4 +24,6 @@ public interface WebServiceOAService { NotifyTodoAppDeleteResult setTodoDelete(String object) throws Exception; + NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception; + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java index 5586d2bf..cbf4e8c1 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java @@ -492,5 +492,69 @@ public class WebServiceOAServiceImpl implements WebServiceOAService { } } } + + @Override + @Async + public NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception { + NotifyTodoAppResult notifyTodoAppResult = new NotifyTodoAppResult(); + String result = ""; + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + JsonSend jsonSend = new JsonSend(); + HEAD head = new HEAD(); + head.setACCOUNT("OA"); + head.setBIZTRANSACTIONID("SYC_161320210206133219"); + head.setCONSUMER("SPRS"); + head.setCOUNT("1"); + head.setPASSWORD("oa201611241710"); + head.setSRVLEVEL("1"); + List list = new ArrayList<>(); + NotifyTodoSendContext notifyTodoSendContext = new NotifyTodoSendContext(); + // 待办来源的系统 + notifyTodoSendContext.setAppName("SPRS"); + //创建时间 + notifyTodoSendContext.setCreateTime(sdf.format(new Date())); + // 待办在原系统唯一标识 + notifyTodoSendContext.setModelId(busProcessNew.getId()); + //模块名称 + notifyTodoSendContext.setModelName(busProcessNew.getTaskInfo()); + //标题 + notifyTodoSendContext.setSubject(busProcessNew.getPrcName()); + //地址 + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("PRC_ID", busProcessNew.getPId()); + BusProcessName busProcessName = iBusProcessNameService.getOne(queryWrapper); + String linkParam = "&taskIds=" + busProcessNew.getTaskId() + "&prcId=" + busProcessNew.getPId() + "&prcNum=" + busProcessName.getPrcNum() + "&prcName=" + busProcessName.getPrcName(); + notifyTodoSendContext.setLink(webUrl + busProcessNew.getLink() + linkParam); + //待办类型 + notifyTodoSendContext.setType("2"); + + Map map = new HashMap<>(); + ResponseMessage byId = lawsUserInfoService.getById(busProcessNew.getUserId()); + map.put("LoginName", byId == null ? "" : byId.getData().getAccount()); + JSONObject jsonLoginName = new JSONObject(map); + notifyTodoSendContext.setTargets(jsonLoginName.toJSONString()); + list.add(notifyTodoSendContext); + jsonSend.setHEAD(head); + jsonSend.setLIST(list); + net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonSend); + Map mapCtr = new TreeMap<>(); + mapCtr.put("Authorization", credentials); + log.info("处理完文件数据,开始请求发送待办接口数据:【" + sdf.format(new Date()) + "】"); + log.info("sendTodo当前处理的文件数据(josnSend):" + jsonSend.toString()); + log.info("sendTodo当前处理的文件数据(notifyTodoSendContext):" + notifyTodoSendContext.toString()); + result = okHttpUtil.postForJson("https://fesbnew.foton.com.cn/WP_FOTON_FSOA/APP_DOC_SERVICES/Proxy_Services/TA_OA/DOC_SYC_1019_SendTodo_PS", json.toString(), mapCtr); + log.info("请求发送待办接口完毕,返回响应状态:【" + sdf.format(new Date()) + "】"); + if (!result.contains("操作成功")) { + log.error("请求发送待办接口出现异常:" + result); + log.info("sendTodo当前处理的文件数据(josnSend):" + jsonSend.toString()); + log.info("sendTodo当前处理的文件数据(notifyTodoSendContext):" + notifyTodoSendContext.toString()); + notifyTodoAppResult.setSIGN("1"); + notifyTodoAppResult.setMASSAGE(result); + } else { + log.info("okHttp请求发送待办接口成功结果:" + result); + notifyTodoAppResult = (NotifyTodoAppResult) net.sf.json.JSONObject.toBean(net.sf.json.JSONObject.fromObject(result), NotifyTodoAppResult.class); + } + return notifyTodoAppResult; + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java index 5ed589bc..6fdd7be9 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess15After.java @@ -9,12 +9,18 @@ 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_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Date; +import java.util.List; +import java.util.UUID; public class PolicyComplianceProgramReviewProcess15After implements TaskListener { @Override @@ -23,6 +29,7 @@ public class PolicyComplianceProgramReviewProcess15After implements TaskListener IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -32,7 +39,30 @@ public class PolicyComplianceProgramReviewProcess15After implements TaskListener // TODO 等需求确认,提交后需要做什么操作。 + JSONObject jsonForm = object.getJSONObject("form"); + String csr2UserIds = jsonForm.getString("csr2UserIds"); + if (StringUtils.isNotEmpty(csr2UserIds)) { + List csr2UserIdList = Arrays.asList(csr2UserIds.split(",")); + for (String csr2UserId : csr2UserIdList) { + // 发送 oa 待阅 + BusProcessNew sendToBeReadBpn = new BusProcessNew(); + sendToBeReadBpn.setId(UUID.randomUUID().toString().substring(0, 20)); + sendToBeReadBpn.setTaskId(delegateTask.getId()); + sendToBeReadBpn.setTaskInfo(delegateTask.getName()); + sendToBeReadBpn.setLink( + FlowTypeEnum.ZCHGXXMSCLC.getRoute() + "?prcType=" + + FlowTypeEnum.ZCHGXXMSCLC.getValue() + + "&taskDefinitionKey=PolicyComplianceProgramReviewProcessKey11" + + "&operate=view" + ); + sendToBeReadBpn.setTaskInfo(delegateTask.getName()); + sendToBeReadBpn.setUserId(csr2UserId); + sendToBeReadBpn.setPrcName("重点认证标准/政策合规性项目审查流程"); + sendToBeReadBpn.setPId(delegateTask.getProcessInstanceId()); + oaService.sendToBeReadMq(sendToBeReadBpn); + } + } boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( delegateTask.getProcessInstanceId(), diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java index 6e6ea008..f62b207c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java @@ -52,8 +52,7 @@ public class PolicyComplianceProgramReviewProcessTimer { * @Param: * @return: */ - @Scheduled(cron = "10 11 11 * * ? ")//每天十点执行 -// @Scheduled(cron = "0/15 * * * * ? ") + @Scheduled(cron = "10 0 0 * * ? ")//每天凌晨12点10分执行 public void autoSubmitZrbmTask() { QueryWrapper bpnQueryWrap = new QueryWrapper<>(); bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java index e17484c9..3509f247 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/PolicySolicitOpinionProcess16After.java @@ -9,12 +9,18 @@ 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_mq.service.CreateMQService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Date; +import java.util.List; +import java.util.UUID; public class PolicySolicitOpinionProcess16After implements TaskListener { @Override @@ -23,6 +29,7 @@ public class PolicySolicitOpinionProcess16After implements TaskListener { IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -32,7 +39,32 @@ public class PolicySolicitOpinionProcess16After implements TaskListener { // TODO 等需求确认,提交后需要做什么操作。 + JSONObject jsonForm = object.getJSONObject("form"); + String csr2UserIds = jsonForm.getString("csr2UserIds"); + if (StringUtils.isNotEmpty(csr2UserIds)) { + List csr2UserIdList = Arrays.asList(csr2UserIds.split(",")); + for (String csr2UserId : csr2UserIdList) { + // 发送 oa 待阅 + BusProcessNew sendToBeReadBpn = new BusProcessNew(); + sendToBeReadBpn.setId(UUID.randomUUID().toString().substring(0, 20)); + sendToBeReadBpn.setTaskId(delegateTask.getId()); + sendToBeReadBpn.setTaskInfo(delegateTask.getName()); + sendToBeReadBpn.setLink( + FlowTypeEnum.ZCZQYJLC.getRoute() + + "?prcType=" + FlowTypeEnum.ZCZQYJLC.getValue() + + "&taskDefinitionKey=PolicySolicitOpinionProcessKey11" + + "&operate=view" + ); + sendToBeReadBpn.setTaskInfo(delegateTask.getName()); + sendToBeReadBpn.setUserId(csr2UserId); + sendToBeReadBpn.setTaskInfo(delegateTask.getName()); + sendToBeReadBpn.setUserId(csr2UserId); + sendToBeReadBpn.setPrcName("政策征求意见流程"); + sendToBeReadBpn.setPId(delegateTask.getProcessInstanceId()); + oaService.sendToBeReadMq(sendToBeReadBpn); + } + } boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( delegateTask.getProcessInstanceId(), diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java index cb41b2d1..3491dd79 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policySolicitOpinionProcess/timer/PolicySolicitOpinionProcessTimer.java @@ -50,8 +50,7 @@ public class PolicySolicitOpinionProcessTimer { * @Param: * @return: */ - @Scheduled(cron = "30 59 13 * * ? ")//每天十点执行 -// @Scheduled(cron = "0/15 * * * * ? ") + @Scheduled(cron = "5 0 0 * * ? ")//每天凌晨12点05分执行 public void autoSubmitZrbmTask() { QueryWrapper bpnQueryWrap = new QueryWrapper<>(); bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCZQYJLC.getValue());