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] =?UTF-8?q?=E6=94=BF=E7=AD=96=E5=BE=81=E6=B1=82=E6=84=8F?= =?UTF-8?q?=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; + } + +}