政策征求意见流程开发。

This commit is contained in:
wangzhijiang
2023-10-18 09:19:12 +08:00
parent 3bffc16f9d
commit 6f3aa50563
31 changed files with 1841 additions and 0 deletions
@@ -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<Task> 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;
}
}
@@ -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;
}
@@ -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<Datas> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(shr2UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(hqrUserIds.split(","));
List<String> hqrUserIdList = (List<String>) 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<BusProcessNew> 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<String>());
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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(sdr2UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(csrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> 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<BusProcessNew> 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());
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(sdr1UserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(djrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> nextUserList = Arrays.asList(zrrUserIds.split(","));
if (CollectionUtils.isNotEmpty(nextUserList)) {
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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<Datas> 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<String> zrrUserIdList = (List<String>) delegateTask.getVariable("zrrUserIdList");
List<BusProcessNew> 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);
}
}
@@ -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<BusProcessNew> 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);
}
}
}
@@ -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;
}
}