From 540bdc5addb13089a3c5ff8f7f722b4b08b2274a Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Mon, 30 Aug 2021 17:48:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E5=8D=95=E6=A0=87=E5=87=86=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/StandProjectRelationDto.java | 18 ++++ .../confirmAfter.java | 96 +++++++++++++++++++ .../confirmBefore.java | 27 ++++++ .../itemlistvalidationprocessStartAfter.java | 69 +++++++++++++ .../itemlistvalidationprocessStartBefore.java | 27 ++++++ 5 files changed, 237 insertions(+) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_slrs/dao/StandProjectRelationDto.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartBefore.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_slrs/dao/StandProjectRelationDto.java b/src/main/java/com/ydw/bat/wkflow/business_slrs/dao/StandProjectRelationDto.java new file mode 100644 index 00000000..13d24ddf --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_slrs/dao/StandProjectRelationDto.java @@ -0,0 +1,18 @@ +package com.ydw.bat.wkflow.business_slrs.dao; + +import lombok.Data; + +/** + * //TODO 添加类/接口功能描述 + * + * @author zhangjin + * @date 2021-07-13 + */ +@Data +public class StandProjectRelationDto { + + private String projectId; + + private String standId; + +} 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 new file mode 100644 index 00000000..14148e4d --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmAfter.java @@ -0,0 +1,96 @@ +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.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 confirmAfter 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); + + QueryWrapper 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 nextUserList = new ArrayList(); + List standProjectRelationDtos = new ArrayList<>(); + 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")); + if (null!= jsonObject.getString("id") ) { + standProjectRelationDto.setStandId(jsonObject.getString("id")); + }else { + standProjectRelationDto.setStandId(jsonObject.getString("standId")); + } + standProjectRelationDtos.add(standProjectRelationDto); + } + lawsUserInfoService.batchInsert(standProjectRelationDtos); + //截止时间 流程描述 创建人 + 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 = "项目清单确认流程"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setOverTime(OVERTIME); + one1.setPrcType("10"); + 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.setUserId(delegateTask.getAssignee()); +// busProcessNew.setTaskId(delegateTask.getId()); +// busProcessNew.setCommitText(object.getString("commentText")); +// busProcessNew.setFinishFlag("0"); +// busProcessNew.setTaskInfo(delegateTask.getName()); +// busBean.save(busProcessNew); + + if(!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); + } + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java new file mode 100644 index 00000000..4b8ae8dc --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/confirmBefore.java @@ -0,0 +1,27 @@ +package com.ydw.bat.wkflow.listener.itemlistvalidationprocess; + +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +public class confirmBefore implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + } + } +} 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 new file mode 100644 index 00000000..af787bf1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartAfter.java @@ -0,0 +1,69 @@ +package com.ydw.bat.wkflow.listener.itemlistvalidationprocess; + +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 itemlistvalidationprocessStartAfter implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper 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 nextUserList = new ArrayList(); + nextUserList.add(object.getString("confirmId")); + delegateTask.setVariable("confirmId",object.getString("confirmId")); + + //截止时间 流程描述 创建人 + String user = object.getString("startUser"); + String username = object.getString("startUserName"); + delegateTask.setVariable("startId",user); + delegateTask.setVariable("startName",username); + String prcName = "项目清单确认流程"; + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ + one1.setPrcType("10"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if(!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); + } + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartBefore.java new file mode 100644 index 00000000..48cb9bf4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/itemlistvalidationprocess/itemlistvalidationprocessStartBefore.java @@ -0,0 +1,27 @@ +package com.ydw.bat.wkflow.listener.itemlistvalidationprocess; + +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.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +public class itemlistvalidationprocessStartBefore implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.isNull("TASK_ID"); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + one1.setTaskInfo(delegateTask.getName()); + busBean.saveOrUpdate(one1); + } + } +}