项目清单确认流程

This commit is contained in:
yuezhihang
2021-12-02 21:03:49 +08:00
parent 4156adc6d1
commit bef70eb7a0
5 changed files with 99 additions and 37 deletions
@@ -17,6 +17,7 @@ import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
//分发
@@ -36,11 +37,17 @@ public class Step1After implements TaskListener {
List<String> nextUserList = new ArrayList();
if (object.getString("detailPeople").contains(",")){
nextUserList.addAll(new ArrayList<>(Arrays.asList(object.getString("detailPeople").split(","))));
}else {
nextUserList.add(object.getString("detailPeople"));
}
delegateTask.setVariable("qrPeopleList",nextUserList);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("startId",String.class);
String username = delegateTask.getVariable("startName",String.class);
String prcName = "项目清单确认流程";
String prcName = "项目清单确认流程-确认人确认";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -15,6 +15,7 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.rmi.activation.ActivationException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -36,26 +37,14 @@ public class Step3After implements TaskListener {
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
//设计一个确认人的计数器
if (null!=delegateTask.getVariable("count")){
delegateTask.setVariable("count",delegateTask.getVariable("count",Integer.class)+1);
}else {
delegateTask.setVariable("count",1);
}
//判断是否为最后一步 决定数据是否需要合并***---***
nextUserList.add(object.getString("approveId"));
delegateTask.setVariable("approveId",object.getString("approveId"));
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("startId",String.class);
String username = delegateTask.getVariable("startName",String.class);
String prcName = "项目清单确认流程";
String prcName = "项目清单确认流程-标准法规部经理审批";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -42,21 +42,28 @@ public class bzApproveAfter implements TaskListener {
JSONArray jsonArray = JSONArray.parseArray(object.getString("dataList"));
for (Object os : jsonArray) {
JSONObject jsonObject = JSONObject.parseObject(os.toString());
StandProjectRelationDto standProjectRelationDto = new StandProjectRelationDto();
standProjectRelationDto.setProjectId(object.getString("projectId"));
standProjectRelationDto.setStandId(jsonObject.getString("id"));
standProjectRelationDtos.add(standProjectRelationDto);
if ("涉及".equals(jsonObject.getString("involve"))) {
StandProjectRelationDto standProjectRelationDto = new StandProjectRelationDto();
standProjectRelationDto.setProjectId(object.getString("projectId"));
standProjectRelationDto.setStandId(jsonObject.getString("standId"));
standProjectRelationDtos.add(standProjectRelationDto);
}
}
lawsUserInfoService.batchInsert(standProjectRelationDtos);
}else {
delegateTask.setVariable("passFlag","1");
nextUserList.add(delegateTask.getVariable("confirmId",String.class));
nextUserList.add(delegateTask.getVariable("cpManagerSum",String.class));
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("startId",String.class);
String username = delegateTask.getVariable("startName",String.class);
String prcName = "项目清单确认流程";
String prcName="";
if ("0".equals(object.getString("passFlag"))) {
prcName = "项目清单确认流程";
}else {
prcName = "项目清单确认流程-产品工程经理查看汇总清单";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -1,25 +1,23 @@
package com.ydw.bat.wkflow.listener.itemlistvalidationprocess;
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.business_slrs.dao.StandProjectRelationDto;
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.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
//确认
public class confirmAfter implements TaskListener {
@Override
@@ -35,18 +33,55 @@ public class confirmAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
if (!object.getString("detailPeople").contains(",")){
nextUserList.addAll(new ArrayList<>(Arrays.asList(object.getString("detailPeople").split(","))));
//设计一个确认人的计数器
if (null!=delegateTask.getVariable("count")){
delegateTask.setVariable("count",delegateTask.getVariable("count",Integer.class)+1);
}else {
nextUserList.add(object.getString("detailPeople"));
delegateTask.setVariable("count",1);
}
delegateTask.setVariable("qrPeopleList",nextUserList);
//判断是否为最后一步 决定数据是否需要合并***---***
if (delegateTask.getVariable("qrPeopleList",List.class).size()==delegateTask.getVariable("count",Integer.class)){
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID","xmqd");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> busProcessNews=busBean.list(queryWrapper1);
JSONArray res=new JSONArray();
JSONArray middle=new JSONArray();
Map<String,JSONObject> map=new HashMap<>();
Map<String,JSONObject> successmap=new HashMap<>();
List<String> standIds=new ArrayList<>();
List<String> successIds=new ArrayList<>();
middle.addAll(object.getJSONArray("dataList"));
middle.forEach(o -> {
JSONObject object1=JSONObject.parseObject(o.toString());
makeData(map, successmap, standIds, successIds, object, object1);
});
for (BusProcessNew bus:busProcessNews) {
JSONObject object1=JSONObject.parseObject(bus.getMesg());
JSONArray jsonArray=object1.getJSONArray("dataList");
jsonArray.forEach(o -> {
JSONObject object11=JSONObject.parseObject(o.toString());
makeData(map, successmap, standIds, successIds, object1, object11);
});
}
//草拟吗
map.keySet().forEach(s -> {
res.add(map.get(s));
});
successmap.keySet().forEach(s -> {
if (!standIds.contains(s)){
res.add(successmap.get(s));
}
});
object.put("dataList",res);
}
nextUserList.add(delegateTask.getVariable("cpManager",String.class));
delegateTask.setVariable("cpManagerSum",delegateTask.getVariable("cpManager",String.class));
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("startId",String.class);
String username = delegateTask.getVariable("startName",String.class);
String prcName = "项目清单确认流程";
String prcName = "项目清单确认流程-产品工程经理查看汇总清单";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -58,8 +93,6 @@ public class confirmAfter implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if(!nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
@@ -69,10 +102,36 @@ public class confirmAfter implements TaskListener {
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
if (delegateTask.getVariable("qrPeopleList",List.class).size()!=delegateTask.getVariable("count",Integer.class)){
busProcessNewNext.setTaskId("xmqd");
}
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
private void makeData(Map<String, JSONObject> map, Map<String, JSONObject> successmap, List<String> standIds, List<String> successIds, JSONObject object1, JSONObject object11) {
if (!standIds.contains(object11.getString("standId"))){
if ("noInvolve".equals(object11.getString("involve"))){
object11.put("remarks",object1.getString("currentPerson")+":"+object11.getString("remarks"));
standIds.add(object11.getString("standId"));
map.put(object11.getString("standId"),object11);
}else {
if (!successIds.contains(object11.getString("standId"))) {
successmap.put(object11.getString("standId"),object11);
}
}
}else {
if ("noInvolve".equals(object11.getString("involve"))){
standIds.add(object11.getString("standId"));
map.get(object11.getString("standId")).put("remarks",map.get(object11.getString("standId")).getString("remarks")+","+object1.getString("currentPerson")+":"+object11.getString("remarks"));
}else {
if (!successIds.contains(object11.getString("standId"))) {
successmap.put(object11.getString("standId"),object11);
}
}
}
}
}
@@ -42,7 +42,7 @@ public class itemlistvalidationprocessStartAfter implements TaskListener {
String username = object.getString("startUserName");
delegateTask.setVariable("startId",user);
delegateTask.setVariable("startName",username);
String prcName = "项目清单确认流程";
String prcName = "项目清单确认流程-产品工程经理分发清单";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);