Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
super_liu
2022-01-27 22:37:15 +08:00
18 changed files with 1459 additions and 0 deletions
@@ -0,0 +1,125 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PEPstartAfter 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);
//根据流程id找到流程信息
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);
//获取对象中的项目的数据
delegateTask.setVariable("standsId",object.getString("standId"));
delegateTask.setVariable("standType",object.getString("standType"));
//业务经理Id
List<String> nextUserList = new ArrayList();
// bzywId 标准法规部业务经理
delegateTask.setVariable("bzywId",object.getString("dockUser"));
nextUserList.add(object.getString("dockUser"));
//赋值标准法规部领导 最后一步审批用
delegateTask.setVariable("DLUserIds", object.getString("ministerUser"));
delegateTask.setVariable("certifiedEngineerName",object.getString("certifiedEngineerName"));
delegateTask.setVariable("qualityEngineerName",object.getString("qualityEngineerName"));
//认证工程师Id
delegateTask.setVariable("certifiedEngineer",object.getString("certifiedEngineer"));
//质量工程师Id
delegateTask.setVariable("qualityEngineer",object.getString("qualityEngineer"));
Map<String,List<String>> people_project=new HashMap<>();
Map<String,String> project_people=new HashMap<>();
JSONArray array=object.getJSONArray("dataList");
for (Object o:array) {
JSONObject jsonObject=JSONObject.parseObject(o.toString());
if (null!=people_project.get(jsonObject.getString("projectGroupPeopleId"))){
people_project.get("projectGroupPeopleId").add(jsonObject.getString("projectGroup"));
}else {
List<String> strings=new ArrayList<>();
strings.add(jsonObject.getString("projectGroup"));
people_project.put(jsonObject.getString("projectGroupPeopleId"),strings);
}
project_people.put(jsonObject.getString("projectGroup"),jsonObject.getString("projectGroupPeopleId"));
}
delegateTask.setVariable("project_people",project_people);
delegateTask.setVariable("people_project",people_project);
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
delegateTask.setVariable("stands",object.getString("standNumber"));
String prcName = String.valueOf(object.getString("standNumber"))+"-标准项目合规评估流程-审核(标准法规业务经理)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,13 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
public class PEPstartBefore implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
}
}
@@ -0,0 +1,134 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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_auth.LawsUserInfoService;
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.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import java.text.SimpleDateFormat;
import java.util.*;
public class Step2After 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);
//根据流程id找到流程信息
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);
Map<String,JSONObject> map=new HashMap<>();
List<String> nextUserList=new ArrayList<>();
if ("0".equals(object.getString("stepFlag"))){
delegateTask.setVariable("Step2Flag","0");
JSONArray jsonArray=object.getJSONArray("dataList");
if (null!=jsonArray && jsonArray.size()>0){
jsonArray.forEach(o -> {
JSONObject jsonObject=JSONObject.parseObject(o.toString());
if (null!=map.get(jsonObject.getString("distributePersonId"))){
map.get(jsonObject.getString("distributePersonId")).getJSONArray("dataList").add(jsonObject);
}else {
JSONObject object1=new JSONObject();
object1= JSON.parseObject(object.toJSONString());
JSONArray jsonArray1=new JSONArray();
jsonArray1.add(jsonObject);
object1.put("dataList",jsonArray);
map.put(jsonObject.getString("distributePersonId"),object1);
nextUserList.add(jsonObject.getString("distributePersonId"));
}
});
}
delegateTask.setVariable("zrIdLists",nextUserList);
}else {
delegateTask.setVariable("Step2Flag","1");
delegateTask.setVariable("createId",delegateTask.getVariable("prcCreateUser",String.class));
nextUserList.add(delegateTask.getVariable("prcCreateUser",String.class));
}
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = "";
if ("0".equals(object.getString("stepFlag"))) {
prcName = delegateTask.getVariable("stands", String.class) + "-标准项目合规评估-项目分发(项目群负责人/标准法规工程师)";
}else {
prcName = delegateTask.getVariable("stands", String.class) + "-标准项目合规评估-整改";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
if (nextUserList != null && !nextUserList.isEmpty()) {
if ("0".equals(object.getString("stepFlag"))){
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(map.get(nextUser).toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}else {
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);
busBean.save(busProcessNewNext);
}
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step2Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bzpgStep2?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,148 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
import ch.qos.logback.core.joran.spi.ActionException;
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;
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.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.rest.exception.ActivitiConflictException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Step3After 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);
//根据流程id找到流程信息
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);
// 多实例节点定义的计数器
if (null!=delegateTask.getVariable("count1")){
delegateTask.setVariable("count1",delegateTask.getVariable("count1",Integer.class)+1);
}else {
delegateTask.setVariable("count1",1);
}
Map<String,JSONObject> map=new HashMap<>();
if (null!=delegateTask.getVariable("maps")){
map=delegateTask.getVariable("maps",Map.class);
}
List<String> nextUserList=new ArrayList<>();
JSONArray jsonArray=object.getJSONArray("dataList");
if (null!=jsonArray && jsonArray.size()>0){
for (Object s: jsonArray) {
JSONObject object1= JSON.parseObject(s.toString());
if (null!=map.get(object1.getString("unameId"))){
map.get(object1.getString("unameId")).getJSONArray("dataList").add(object1);
}else {
JSONObject object2=new JSONObject();
object2=JSON.parseObject(object.toJSONString());
JSONArray jsonArray1=new JSONArray();
jsonArray1.add(object1);
object2.put("dataList",jsonArray1);
map.put(object1.getString("unameId"),object2);
nextUserList.add(object1.getString("unameId"));
}
}
}
delegateTask.setVariable("maps",map);
//处理下一步的经理问题
if (null!=delegateTask.getVariable("managerIdList")){
List<String> old=delegateTask.getVariable("managerIdList",List.class);
old.forEach(s -> {
if (!nextUserList.contains(s)){
nextUserList.add(s);
}
});
delegateTask.setVariable("managerIdList",nextUserList);
}else {
delegateTask.setVariable("managerIdList",nextUserList);
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-任务分发(项目经理)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
if (delegateTask.getVariable("count1",Integer.class) >=delegateTask.getVariable("zrIdLists",List.class).size()) {
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
JSONObject object1=JSON.parseObject(map.get(nextUser).toJSONString());
JSONArray array=object1.getJSONArray("dataList");
JSONArray array1=object1.getJSONArray("breakdownList");
JSONArray res=new JSONArray();
for (Object o:array) {
JSONObject object2=JSONObject.parseObject(o.toString());
for (Object o2: array1 ) {
JSONObject object3=JSONObject.parseObject(o2.toString());
object2.keySet().forEach(s -> {
object3.put(s,object2.getString(s));
});
res.add(object3);
}
}
object1.put("resDats",res);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object1.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step3Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,132 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.*;
public class Step4After 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);
//根据流程id找到流程信息
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);
List<String> nextUserList=new ArrayList<>();
Map<String,JSONObject> map=new HashMap<>();
if (null!=delegateTask.getVariable("map4")){
map=delegateTask.getVariable("map4",Map.class);
}
// 多实例节点定义的计数器
if (null!=delegateTask.getVariable("count2")){
delegateTask.setVariable("count2",delegateTask.getVariable("count2",Integer.class)+1);
}else {
delegateTask.setVariable("count2",1);
}
List<String> order =new ArrayList<>();
JSONArray array=object.getJSONArray("dataList");
if (null!=array && array.size()>0){
for (Object o:array) {
JSONObject object1= JSON.parseObject(o.toString());
if (null!=map.get(delegateTask.getAssignee()+"-"+object1.getString("implementerId"))){
map.get(delegateTask.getAssignee()+"-"+object1.getString("implementerId")).getJSONArray("dataList").add(object1);
}else {
JSONObject object2=JSON.parseObject(object.toJSONString());
JSONArray array1=new JSONArray();
array1.add(object1);
object2.put("dataList",array1);
object2.put("keys",delegateTask.getAssignee()+"-"+object1.getString("implementerId"));
map.put(delegateTask.getAssignee()+"-"+object1.getString("implementerId"),object2);
nextUserList.add(object1.getString("implementerId"));
order.add(delegateTask.getAssignee()+"-"+object1.getString("implementerId"));
}
}
}
delegateTask.setVariable("map4",map);
if (null!=delegateTask.getVariable("jtzrIdList")){
delegateTask.getVariable("jtzrIdList",List.class).addAll(nextUserList);
delegateTask.getVariable("order",List.class).addAll(order);
nextUserList=delegateTask.getVariable("jtzrIdList",List.class);
order=delegateTask.getVariable("order",List.class);
}else {
delegateTask.setVariable("jtzrIdList", nextUserList);
delegateTask.setVariable("order",order);
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-合规评估(专业技术人员)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
if (delegateTask.getVariable("count2",Integer.class)>= delegateTask.getVariable("managerIdList",List.class).size()) {
if (nextUserList != null && !nextUserList.isEmpty()) {
int i=0;
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(map.get(order.get(i)).toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
i++;
}
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step4Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,92 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Step5After 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);
//根据流程id找到流程信息
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);
List<String> nextUserList=new ArrayList<>();
if (null!=object.getString("keys")){
String[] s=object.getString("keys").split("-");
delegateTask.setVariable("ztManagerId",s[0]);
nextUserList.add(s[0]);
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-审核(项目经理)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step5Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,142 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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.mysql.cj.xdevapi.JsonArray;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.*;
public class Step6After 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);
//根据流程id找到流程信息
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);
List<String> nextUserList=new ArrayList<>();
if (null!=delegateTask.getVariable("SDIdList")){
nextUserList=delegateTask.getVariable("SDIdList",List.class);
}
Map<String,JSONObject> map=new HashMap<>();
if (null!=delegateTask.getVariable("res6")){
map=delegateTask.getVariable("res6",Map.class);
}
Map project_people=delegateTask.getVariable("project_people",Map.class);
//子流程定义的计数器
String[] s=object.getString("keys").split("-");
if ("0".equals(object.getString("passFlag"))) {
if (null != delegateTask.getVariable("count6")) {
delegateTask.setVariable("count6", delegateTask.getVariable("count6", Integer.class) + 1);
} else {
delegateTask.setVariable("count6", 1);
}
JSONArray res=object.getJSONArray("dataList");
if (null!=res && res.size()>0){
for (Object o: res) {
JSONObject object1= JSON.parseObject(o.toString());
String projectGroupId= String.valueOf(project_people.get(object1.getString("projectGroup")));
if (null!=map.get(projectGroupId)){
map.get(projectGroupId).getJSONArray("dataList").add(object1);
}else {
JSONObject object2=JSON.parseObject(object.toJSONString());
JSONArray array=new JSONArray();
array.add(object1);
object2.put("dataList",array);
map.put(projectGroupId,object2);
nextUserList.add(projectGroupId);
}
}
}
delegateTask.setVariable("SDIdList",nextUserList);
delegateTask.setVariable("passFlag","0");
delegateTask.setVariable("res6",map);
}else {
nextUserList.add(s[1]);
delegateTask.setVariable("passFlag","1");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-审定(项目群负责人)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
if (delegateTask.getVariable("count6",Integer.class)>=delegateTask.getVariable("jtzrIdList",List.class).size()) {
for (String nextUser : map.keySet()) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(map.get(nextUser).toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
} else if ("1".equals(object.getString("passFlag"))) {
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step6Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,103 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 java.text.SimpleDateFormat;
import java.util.*;
public class Step7After 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);
//根据流程id找到流程信息
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);
// 多实例节点定义的计数器
if (null!=delegateTask.getVariable("count7")){
delegateTask.setVariable("count7",delegateTask.getVariable("count7",Integer.class)+1);
}else {
delegateTask.setVariable("count7",1);
}
JSONObject object1=new JSONObject();
List<String> nextUserList=new ArrayList<>();
delegateTask.setVariable("gjId",delegateTask.getVariable("DLUserIds",String.class));
nextUserList.add(delegateTask.getVariable("DLUserIds",String.class));
if (null!=delegateTask.getVariable("Step7Res")){
object1=delegateTask.getVariable("Step7Res",JSONObject.class);
object1.getJSONArray("dataList").addAll(object.getJSONArray("dataList"));
}else {
object1=object;
delegateTask.setVariable("Step7Res",object1);
}
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-批准(标准法规部高级经理)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
if (delegateTask.getVariable("count7",Integer.class)>=delegateTask.getVariable("SDIdList",List.class).size()) {
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step7Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,168 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.dto.SarStandUnqualified;
import com.ydw.bat.wkflow.business_main.datas.dto.SarStandardComplianceProductAssess;
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.business_slrs.dao.StandProjectRelationDto;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.*;
public class Step8After 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);
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
//根据流程id找到流程信息
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);
List<String> nextUserList=new ArrayList<>();
JSONArray array=object.getJSONArray("dataList");
List<SarStandUnqualified> sarStandUnqualifieds=new ArrayList<>();
List<SarStandardComplianceProductAssess> productAssesses=new ArrayList<>();
List<StandProjectRelationDto> standProjectRelationDtos = new ArrayList<>();
for (Object o: array) {
JSONObject object1 = JSON.parseObject(o.toString());
List<String> projectnum=new ArrayList<>(Arrays.asList(object1.getString("projectNumber").split(",")));
List<String> projectName=new ArrayList<>(Arrays.asList(object1.getString("projectName").split(",")));
int i=0;
for (String s:projectnum) {
if (null != object1.getString("noCompliance") && !"".equals(object1.getString("noCompliance"))) {
SarStandUnqualified sarStandUnqualified = new SarStandUnqualified();
//少一个standId 不合格原因 在研在产!
sarStandUnqualified.setStandId(delegateTask.getVariable("standsId", String.class));
sarStandUnqualified.setStandSerialNumber(object.getString("standNumber"));
sarStandUnqualified.setStandName(object.getString("standName"));
sarStandUnqualified.setItemsNum(object1.getString("itemsNum"));
sarStandUnqualified.setCreateById(delegateTask.getVariable("prcCreateUser", String.class));
sarStandUnqualified.setItemsName(object1.getString("itemsName"));
sarStandUnqualified.setProductLine(object1.getString("projectGroup"));
sarStandUnqualified.setCloseState(1);
sarStandUnqualified.setCreateTime(new Date());
sarStandUnqualified.setProductName(projectName.get(i));
sarStandUnqualified.setQaEngineer(delegateTask.getVariable("qualityEngineerName", String.class));
sarStandUnqualified.setAuthEngineer(delegateTask.getVariable("certifiedEngineerName", String.class));
sarStandUnqualified.setDutyEngineer(object1.getString("implementerId"));
sarStandUnqualified.setResponsibleUnit(object1.getString("responsibleUnit"));
sarStandUnqualified.setReason(object1.getString("noCompliance"));
sarStandUnqualified.setPlanCloseTime(object1.getDate("completionTime"));
sarStandUnqualified.setProductId(s);
sarStandUnqualifieds.add(sarStandUnqualified);
}
//合估评规 结果!
SarStandardComplianceProductAssess sarStandard = new SarStandardComplianceProductAssess();
sarStandard.setProductName(projectName.get(i));
sarStandard.setProductId(s);
sarStandard.setClauseName(object1.getString("itemsName"));
sarStandard.setProductLineId(object1.getString("projectGroup"));
sarStandard.setStandName(object.getString("standName"));
sarStandard.setStandNumber(object.getString("standNumber"));
sarStandard.setStandardItem(object1.getString("itemsName"));
sarStandard.setType(String.valueOf(UUID.randomUUID()));
sarStandard.setStandId(delegateTask.getVariable("standsId", String.class));
sarStandard.setStandType(delegateTask.getVariable("standType", String.class));
sarStandard.setInterpretationTime(delegateTask.getCreateTime());
//111
sarStandard.setProductionCompletionTime(JSONObject.parseObject(String.valueOf(object1.get("zcCompletionTime")), Date.class));
sarStandard.setProductionCountermeasures(object1.getString("zcCountermeasures"));
sarStandard.setProductionNonCompliance(object1.getString("zcNoCompliance"));
sarStandard.setProductionCompliance(object1.getString("zcComplianceReasons"));
sarStandard.setResearchCompliance(object1.getString("complianceReasons"));
sarStandard.setResearchCompletionTime(object1.getDate("completionTime"));
sarStandard.setResearchCountermeasures(object1.getString("countermeasures"));
sarStandard.setResearchNonCompliance(object1.getString("noCompliance"));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sarStandard.setEvaluationPeople(object1.getString("implementer"));
sarStandard.setEvaluationPeopleName(object1.getString("implementerId"));
sarStandard.setEvaluationTime(simpleDateFormat.format(new Date()));
i++;
productAssesses.add(sarStandard);
}
List<String> strings=new ArrayList<>(Arrays.asList(object1.getString("projectIds").split(",")));
strings.forEach(s -> {
StandProjectRelationDto standProjectRelationDto = new StandProjectRelationDto();
standProjectRelationDto.setProjectId(s);
standProjectRelationDto.setStandId(delegateTask.getVariable("standsId",String.class));
if (!standProjectRelationDtos.contains(standProjectRelationDto)) {
standProjectRelationDtos.add(standProjectRelationDto);
}
});
//数据归类
}
//数据入库!!!!
lawsUserInfoService.batchInsert(standProjectRelationDtos);
lawsUserInfoService.addsarStandUnqualified(sarStandUnqualifieds);
lawsUserInfoService.addProduct(productAssesses);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("prcCreateUser", String.class);
String username = delegateTask.getVariable("prcCreateUserName", String.class);
String prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-标准法规部领导审批";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
if (null!=object.getString("commentText")) {
QueryWrapper queryWrapper3 = new QueryWrapper();
queryWrapper3.eq("TASK_ID", delegateTask.getId());
queryWrapper3.eq("USER_ID",delegateTask.getAssignee());
List<BusProcessNew> list = busBean.list(queryWrapper3);
if(!list.isEmpty()){
BusProcessNew busProcessNews = list.get(0);
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNews);
}
}
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step8Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,106 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Step9After 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);
//根据流程id找到流程信息
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);
//获取对象中的项目的数据
delegateTask.setVariable("standsId",object.getString("standId"));
delegateTask.setVariable("standType",object.getString("standType"));
//业务经理Id
List<String> nextUserList = new ArrayList();
// bzywId 标准法规部业务经理
delegateTask.setVariable("bzywId",object.getString("dockUser"));
nextUserList.add(object.getString("dockUser"));
//赋值标准法规部领导 最后一步审批用
delegateTask.setVariable("DLUserIds", object.getString("ministerUser"));
delegateTask.setVariable("certifiedEngineerName",object.getString("certifiedEngineerName"));
delegateTask.setVariable("qualityEngineerName",object.getString("qualityEngineerName"));
//认证工程师Id
delegateTask.setVariable("certifiedEngineer",object.getString("certifiedEngineer"));
//质量工程师Id
delegateTask.setVariable("qualityEngineer",object.getString("qualityEngineer"));
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
delegateTask.setVariable("stands",object.getString("standNumber"));
String prcName = String.valueOf(object.getString("standNumber"))+"-标准项目合规评估流程-审核(标准法规业务经理)";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
one1.setPrcType("5");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,37 @@
package com.ydw.bat.wkflow.listener.projectEvaluationNewProcess;
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 Step9Before 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.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("xmpgStep6?prcType=5");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}