diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step1After.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step1After.java index a459149f..228a9f92 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step1After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step1After.java @@ -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 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); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step3After.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step3After.java index 4e8a8a17..f6393bd3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step3After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/Step3After.java @@ -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 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); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/bzApproveAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/bzApproveAfter.java index 31ca92f6..90577c95 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/bzApproveAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/bzApproveAfter.java @@ -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); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java index 31f3cffa..f3943a9d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java @@ -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 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 busProcessNews=busBean.list(queryWrapper1); + JSONArray res=new JSONArray(); + JSONArray middle=new JSONArray(); + Map map=new HashMap<>(); + Map successmap=new HashMap<>(); + List standIds=new ArrayList<>(); + List 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 map, Map successmap, List standIds, List 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); + } + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java index b99a4461..90719b02 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java @@ -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);