add: 政策法规资料入库流程

This commit is contained in:
wxyclub
2023-10-27 11:46:29 +08:00
parent beb1bee35d
commit 27ecd25d26
6 changed files with 377 additions and 0 deletions
@@ -0,0 +1,99 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author tjzdw
* @description 政策法规资料入库申请发起后
* @date 2023/10/16
*/
public class PolicyLawsInformationApplicationAfter 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);
LambdaQueryWrapper<Datas> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
// 添加关联流程编号
String processInstanceId = delegateTask.getProcessInstanceId();
LambdaQueryWrapper<BusProcessName> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusProcessName::getPrcId,processInstanceId);
BusProcessName processName = busProcessNameService.getOne(wrapper);
object.put("prcNum",processName.getPrcNum());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("approverId"))){
delegateTask.setVariable("approverId",object.getString("approverId"));
nextUserList.add(object.getString("approverId"));
}else {
throw new ActivitiException("1#2经理人不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("applyUserId");
String username = object.getString("applyUserName");
Object informationName = object.get("name");
String prcName = informationName + "-政策法规资料入库流程";
LambdaQueryWrapper<BusProcessName> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(BusProcessName::getPrcId,delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setPrcType("32");
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.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setPrcName(prcName);
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo("批准");
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
@@ -0,0 +1,17 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
/**
* @author tjzdw
* @description 政策法规资料入库申请发起前
* @date 2023/10/27
*/
public class PolicyLawsInformationApplicationBefore implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
}
}
@@ -0,0 +1,87 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.Date;
/**
* @author tjzdw
* @description 政策法规资料入库经理人审批后
* @date 2023/10/16
*/
public class PolicyLawsInformationApproveAfter 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);
LambdaQueryWrapper<Datas> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
Integer approvalOpinion = object.getInteger("approvalOpinion");
String informationName = object.getString("name");
String prcName = informationName + "-政策法规资料入库流程";
// 驳回任务
if (approvalOpinion == 1) {
delegateTask.setVariable("applyUserId", object.getString("applyUserId"));
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo("重新起草");
busProcessNew.setFinishFlag("0");
busProcessNew.setUserId(object.getString("applyUserId"));
busProcessNew.setPrcName(prcName);
busBean.save(busProcessNew);
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId, delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
if (one1 != null) {
one1.setCommitFlag("1");
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
}
delegateTask.setVariable("approvalOpinion", 1);
} else {
// 同意
delegateTask.setVariable("approvalOpinion", 0);
LambdaQueryWrapper<BusProcessName> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(BusProcessName::getPrcId, delegateTask.getProcessInstanceId());
BusProcessName one2 = busProcessNameService.getOne(queryWrapper2);
String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
if (one2 != null) {
one2.setPrcName(prcName);
one2.setOverTime(overTime);
one2.setPrcType("32");
busProcessNameService.saveOrUpdate(one2);
}
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId, delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
if (one1 != null) {
one1.setCommitFlag("0");
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
}
}
}
}
@@ -0,0 +1,42 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
/**
* @author tjzdw
* @description 政策法规资料入库经理人审批前
* @date 2023/10/16
*/
public class PolicyLawsInformationApproveBefore implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getPId,delegateTask.getProcessInstanceId());
queryWrapper1.eq(BusProcessNew::getUserId,delegateTask.getAssignee());
queryWrapper1.isNull(BusProcessNew::getTaskId);
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("policyRegulatoryMaterials/step2?prcType=32");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}
@@ -0,0 +1,92 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author tjzdw
* @description 重新发起政策法规资料入库申请后
* @date 2023/10/16
*/
public class PolicyLawsInformationReissueAfter 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);
LambdaQueryWrapper<Datas> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Datas::getActiTaskId, delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("approverId"))){
delegateTask.setVariable("approverId",object.getString("approverId"));
nextUserList.add(object.getString("approverId"));
}else {
throw new ActivitiException("1#2经理人不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String overTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("applyUserId");
String username = object.getString("applyUserName");
String informationName = object.getString("name");
String prcName = informationName + "-政策法规资料入库流程";
LambdaQueryWrapper<BusProcessName> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(BusProcessName::getPrcId,delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setPrcType("32");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
for(String nextUser : nextUserList){
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo("批准");
busProcessNew.setUserId(nextUser);
busProcessNew.setPrcName(prcName);
busBean.save(busProcessNew);
}
}
}
@@ -0,0 +1,40 @@
package com.ydw.bat.wkflow.listener.policyLawsInformationLibrary;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
/**
* @author tjzdw
* @description 重新发起政策法规资料入库申请前
* @date 2023/10/16
*/
public class PolicyLawsInformationReissueBefore implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getPId,delegateTask.getProcessInstanceId());
queryWrapper1.eq(BusProcessNew::getUserId,delegateTask.getAssignee());
queryWrapper1.isNull(BusProcessNew::getTaskId);
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("policyRegulatoryMaterials/step1_1?prcType=32");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}