提交标准分解单流程

This commit is contained in:
duanwenbin
2021-07-19 09:26:41 +08:00
parent b8632a2963
commit 26572e18c6
15 changed files with 405 additions and 195 deletions
@@ -43,8 +43,8 @@ public class ChooseZrAfter implements TaskListener{
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("0")){
standName = "国内";
@@ -57,7 +57,7 @@ public class ChooseZrAfter implements TaskListener{
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("1");
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
@@ -77,7 +77,7 @@ public class ChooseZrAfter implements TaskListener{
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("2");
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
@@ -17,6 +17,8 @@ public class ChooseZrBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead;
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;
@@ -11,7 +12,10 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -28,50 +32,62 @@ public class DeptApplayAfter implements TaskListener{
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
//部长进行审批(1:通过)
if(object.getString("bzApplyFlag").equals("1")){
delegateTask.setVariable("bzFlag",1);
func1(delegateTask, busBean, object,"0");
}else {
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
delegateTask.setVariable("zxUserId",object.getString("zxUserId"));
nextUserList.add(object.getString("zxUserId"));
}
}
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("2");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(object.getString("zxUserId"));
busBean.save(busProcessNew);
func1(delegateTask, busBean, object,"1");
delegateTask.setVariable("bzFlag",2);
if (object.getString("gcApplyFlag").equals("1")) {
delegateTask.setVariable("bzFlag", 1);
} else {
delegateTask.setVariable("bzFlag", 2);
}
}
/**
* 审批意见
* @param delegateTask
* @param busBean
* @param object
* @param commitFlag
*/
private void func1(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag) {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("INLAND")){
standName = "国内";
}else {
standName = "国外";
}
String prcName = standName+"-标准解读流程";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setCommitFlag(commitFlag);
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
one1.setOverTime(OVERTIME);
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
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());
QueryWrapper updataWapper = new QueryWrapper();
updataWapper.eq("TASK_ID",delegateTask.getId());
updataWapper.eq("P_ID",delegateTask.getProcessInstanceId());
busBean.update(busProcessNew,updataWapper);
if (delegateTask.getVariable("bzFlag").equals("2")) {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one2 = busBean.getOne(queryWrapper1);
if(one2!=null){
one2.setCommitFlag("0");
one2.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one2);
}
}
}
}
@@ -17,6 +17,8 @@ public class DeptApplayBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -1,5 +1,7 @@
package com.ydw.bat.wkflow.listener.standardRead;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
@@ -8,15 +10,13 @@ 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.listener.standardRead.vo.JSONArrayVo;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 下发至部门责任人发起后
@@ -34,24 +34,31 @@ public class DeptZrAfter implements TaskListener{
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
//获取全局变量里的数据
JSONArray responUserList = (delegateTask.getVariable("zxUserList", JSONArray.class));
if (responUserList == null)
responUserList = new JSONArray();
//数组去重
JSONArray responUserList1 = object.getJSONArray("itemList");
List<JSONArrayVo> list = responUserList1.toJavaList(JSONArrayVo.class);
Map<String,List<JSONArrayVo>> userGroupMap = list.stream().collect(Collectors.groupingBy(JSONArrayVo::getZxUserId));
Set<String> set = userGroupMap.keySet();
List<String> nextUserList = new ArrayList();
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
if(object.getString("zxUserId").contains(",")){
nextUserList = Arrays.asList(object.getString("zxUserId").split(","));
}else {
nextUserList.add(object.getString("zxUserId"));
}
// 配置多实例
delegateTask.setVariable("zxUserList",nextUserList);
for (String str : set) {
nextUserList.add(str);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",str);
jsonObject.put("applyUserId",delegateTask.getAssignee());
responUserList.add(jsonObject);
}
delegateTask.setVariable("zxUserList",responUserList);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("0")){
if(object.getString("standInData").equals("INLAND")){
standName = "国内";
}else {
standName = "国外";
@@ -62,7 +69,7 @@ public class DeptZrAfter implements TaskListener{
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("1");
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
@@ -70,7 +77,7 @@ public class DeptZrAfter implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("2");
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
@@ -78,11 +85,17 @@ public class DeptZrAfter implements TaskListener{
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
QueryWrapper updataWapper = new QueryWrapper();
updataWapper.eq("TASK_ID",delegateTask.getId());
updataWapper.eq("P_ID",delegateTask.getProcessInstanceId());
busBean.update(busProcessNew,updataWapper);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
for(String nextUser : nextUserList){ //2次
List<JSONArrayVo> listRes = userGroupMap.get(nextUser);
object.put("itemList", JSON.toJSONString(listRes));
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("2");
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
@@ -17,6 +17,8 @@ public class DeptZrBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead;
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;
@@ -11,7 +12,10 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -28,55 +32,78 @@ public class EngineerApplayAfter implements TaskListener{
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
//工程师是否要进行审核
if(object.getString("gcApplyFlag").equals("1")){
delegateTask.setVariable("gcFlag",1);
if(StringUtils.isNotBlank(object.getString("deptUserId"))){
if(StringUtils.isNotBlank(object.getString("deptUserId"))){
delegateTask.setVariable("deptUserId",object.getString("deptUserId"));
}
if (object.getString("zrApplyFlag").equals("1")) {
delegateTask.setVariable("gcFlag", 1);
if (StringUtils.isNotBlank(object.getString("deptUserId"))) {
delegateTask.setVariable("deptUserId", object.getString("deptUserId"));
nextUserList.add(object.getString("deptUserId"));
}
func1(delegateTask, busBean, object,"0");
}else {
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
delegateTask.setVariable("zxUserId",object.getString("zxUserId"));
nextUserList.add(object.getString("zxUserId"));
}
}
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("2");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(object.getString("zxUserId"));
busBean.save(busProcessNew);
func1(delegateTask, busBean, object,"1");
delegateTask.setVariable("gcFlag",2);
} else {
delegateTask.setVariable("gcFlag", 2);
}
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if (object.getString("standInData").equals("INLAND")) {
standName = "国内";
} else {
standName = "国外";
}
String prcName = standName + "-标准解读流程";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setOverTime(OVERTIME);
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
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());
/**
* 审批意见
* @param delegateTask
* @param busBean
* @param object
* @param commitFlag
*/
private void func1(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag) {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
if(one1!=null){
one1.setCommitFlag(commitFlag);
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
QueryWrapper updataWapper = new QueryWrapper();
updataWapper.eq("TASK_ID", delegateTask.getId());
updataWapper.eq("P_ID", delegateTask.getProcessInstanceId());
busBean.update(busProcessNew, updataWapper);
if (nextUserList != null && !nextUserList.isEmpty()) {
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);
busBean.save(busProcessNewNext);
}
} else {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one2 = busBean.getOne(queryWrapper1);
if(one2!=null){
one2.setCommitFlag("0");
one2.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one2);
}
}
}
}
@@ -17,6 +17,8 @@ public class EngineerApplayBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -1,5 +1,6 @@
package com.ydw.bat.wkflow.listener.standardRead;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
@@ -11,11 +12,8 @@ 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.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 下发执行人发起后
@@ -34,32 +32,17 @@ public class ExpainAfter implements TaskListener{
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
JSONArray responUserList = new JSONArray();
//是否要进行审核
if(object.getString("resolveFlag").equals("1")){
delegateTask.setVariable("jdFlag",1);
if(StringUtils.isNotBlank(object.getString("applyUserId"))){
if(StringUtils.isNotBlank(object.getString("applyUserId"))){
delegateTask.setVariable("applyUserId",object.getString("applyUserId"));
nextUserList.add(object.getString("applyUserId"));
}
}
}else {
delegateTask.setVariable("jdFlag",2);
if(StringUtils.isNotBlank(object.getString("xzUserId"))){
if(StringUtils.isNotBlank(object.getString("xzUserId"))){
delegateTask.setVariable("xzUserId",object.getString("xzUserId"));
nextUserList.add(object.getString("xzUserId"));
}
}
}
delegateTask.setVariable("jdFlag",1);
responUserList = (delegateTask.getVariable("zxUserList", JSONArray.class));
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("0")){
if(object.getString("standInData").equals("INLAND")){
standName = "国内";
}else {
standName = "国外";
@@ -70,7 +53,7 @@ public class ExpainAfter implements TaskListener{
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("1");
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
@@ -78,7 +61,7 @@ public class ExpainAfter implements TaskListener{
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("2");
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
@@ -86,9 +69,14 @@ public class ExpainAfter implements TaskListener{
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
QueryWrapper updataWapper = new QueryWrapper();
updataWapper.eq("TASK_ID",delegateTask.getId());
updataWapper.eq("P_ID",delegateTask.getProcessInstanceId());
busBean.update(busProcessNew,updataWapper);
if(responUserList != null){
for (Object obj:responUserList) {
JSONObject object1 = (JSONObject)obj;
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
@@ -96,7 +84,7 @@ public class ExpainAfter implements TaskListener{
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setUserId(object1.getString("applyUserId"));
busBean.save(busProcessNewNext);
}
}
@@ -17,6 +17,8 @@ public class ExpainBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -1,5 +1,7 @@
package com.ydw.bat.wkflow.listener.standardRead;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
@@ -8,15 +10,13 @@ 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.listener.standardRead.vo.JSONArrayVo;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 标准解读发起后
@@ -37,22 +37,22 @@ public class ResolveAfter implements TaskListener{
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
if(StringUtils.isNotBlank(object.getString("zrUserId"))){
if(object.getString("zrUserId").contains(",")){
nextUserList = Arrays.asList(object.getString("zrUserId").split(","));
}else {
nextUserList.add(object.getString("zrUserId"));
}
// 配置多实例
delegateTask.setVariable("zrUserList",nextUserList);
JSONArray responUserList = object.getJSONArray("itemList");
List<JSONArrayVo> list = responUserList.toJavaList(JSONArrayVo.class);
Map<String,List<JSONArrayVo>> userGroupMap = list.stream().collect(Collectors.groupingBy(JSONArrayVo::getZrUserId));
Set<String> set = userGroupMap.keySet();
for (String str : set) {
nextUserList.add(str);
}
// 配置多实例
delegateTask.setVariable("zrUserList", nextUserList);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("0")){
if(object.getString("standInData").equals("INLAND")){
standName = "国内";
}else {
standName = "国外";
@@ -63,7 +63,7 @@ public class ResolveAfter implements TaskListener{
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("1");
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
@@ -81,10 +81,14 @@ public class ResolveAfter implements TaskListener{
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
for(String nextUser : nextUserList){ //2次
List<JSONArrayVo> listRes = userGroupMap.get(nextUser);
object.put("itemList", JSON.toJSONString(listRes));
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("2");
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
//busProcessNewNext.setMesg(StringEscapeUtils.unescapeJavaScript(object.toJSONString()));//返转义函数
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
@@ -94,4 +98,6 @@ public class ResolveAfter implements TaskListener{
}
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.standardRead;
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;
@@ -11,7 +12,9 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -33,50 +36,73 @@ public class ZrApplayAfter implements TaskListener{
List<String> nextUserList = new ArrayList();
//责任人是否要进行审核
if(object.getString("zrApplyFlag").equals("1")){
if(object.getString("resolveFlag").equals("1")){
delegateTask.setVariable("zrFlag",1);
if(StringUtils.isNotBlank(object.getString("engineerUserId"))){
if(StringUtils.isNotBlank(object.getString("engineerUserId"))){
delegateTask.setVariable("engineerUserId",object.getString("engineerUserId"));
}
if(StringUtils.isNotBlank(object.getString("applyUserId"))){
delegateTask.setVariable("engineerUserId",object.getString("applyUserId"));
nextUserList.add(object.getString("applyUserId"));
}
func1(delegateTask, busBean, object,"0");
}else {
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
if(StringUtils.isNotBlank(object.getString("zxUserId"))){
delegateTask.setVariable("zxUserId",object.getString("zxUserId"));
nextUserList.add(object.getString("zxUserId"));
}
}
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("2");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(object.getString("zxUserId"));
busBean.save(busProcessNew);
func1(delegateTask, busBean, object,"1");
delegateTask.setVariable("zrFlag",2);
}
}
/**
* 审批意见
* @param delegateTask
* @param busBean
* @param object
* @param commitFlag
*/
private void func1(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag) {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("applyUserId");
String username = object.getString("applyUserIdName");
String standName = "";
if(object.getString("standInData").equals("INLAND")){
standName = "国内";
}else {
standName = "国外";
}
String prcName = standName+"-标准解读流程";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setCommitFlag(commitFlag);
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
one1.setOverTime(OVERTIME);
one1.setPrcType("9");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
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());
QueryWrapper updataWapper = new QueryWrapper();
updataWapper.eq("TASK_ID",delegateTask.getId());
updataWapper.eq("P_ID",delegateTask.getProcessInstanceId());
busBean.update(busProcessNew,updataWapper);
if(nextUserList != null && !nextUserList.isEmpty()){
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);
busBean.save(busProcessNewNext);
}
} else {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one2 = busBean.getOne(queryWrapper1);
if(one2!=null){
one2.setCommitFlag("0");
one2.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one2);
}
}
}
}
@@ -17,6 +17,8 @@ public class ZrApplayBefore implements TaskListener{
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
@@ -0,0 +1,99 @@
package com.ydw.bat.wkflow.listener.standardRead.vo;
import lombok.Data;
import java.util.List;
@Data
public class JSONArrayVo {
private String id;
private String infoId;
private String itemsNum;
private String itemsName;
private String itermsConditions;
private String newcarPutTime;
private String productPutTime;
private String menuId;
private String svpps;
private String applyArctic;
private String referenceStand;
private String specialRequest;
private String relevanceFile;
private String remarks;
private String validFlag;
private String creationUser;
private String creationTime;
private String modifyTime;
private String modifyUser;
private String infoIdList;
private String idList;
private String itemValEOList;
private String delItemIds;
private String sMenuId;
private String relevanceFileAttid;
private String fo;
private String dutyEngineer;
private String claimType;
private String busStandCover;
private String fileType;
private String foShow;
private String dutyEngineerShow;
private String svppsShow;
private String claimTypeShow;
private String busStandCoverShow;
private String fileTypeShow;
private String responsibleUnit;
private String responsibleUnitShow;
private String itemsCondi;
//部门责任人
private String zrUserId;
//选择执行人
private String zxUserId;
private String zxUserIdName;
private String zrUserIdName;
private List<ParamVo> paramsList;
}
@@ -0,0 +1,23 @@
package com.ydw.bat.wkflow.listener.standardRead.vo;
import lombok.Data;
@Data
public class ParamVo {
private String id;
private String itemId;
private String description;
private String figure;
private String validFlag;
private String creationTime;
private String modifyTime;
private String infoId;
}