Merge branch 'develop' into 'FOTON'

Develop

See merge request foton-wkflow-group/foton-wkflow-rest!81
This commit is contained in:
王夏晖
2021-12-27 18:54:49 +08:00
8 changed files with 512 additions and 4 deletions
@@ -0,0 +1,142 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
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.IBusProcessModelHisService;
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.apache.tomcat.util.digester.ArrayStack;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 发起企标制修订流程后
*/
public class BLApplicantAfter 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);
IBusProcessModelHisService busProcessModelHisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
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);
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
// object.getString("standName")
String standName = "";
String prcName = "企标制修订-产品标准";
List<String> nextUserList = new ArrayStack<>();
if(StringUtils.isNotBlank(object.getString("qcUserId"))){
if(object.getString("qcUserId").contains(",")){
nextUserList = Arrays.asList(object.getString("qcUserId").split(","));
}else {
nextUserList.add(object.getString("qcUserId"));
}
// 配置多实例
delegateTask.setVariable("qcUserList",nextUserList);
delegateTask.addCandidateUsers(nextUserList);
}else {
throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
}
// 下个节点执行人处理逻辑
// List<String> finalNextUserList = new ArrayList();
// List<BusProcessModelHis> busProcessModelHisList = new ArrayList<>();
// if(StringUtils.isNotBlank(object.getString("modelData"))){
// List<JSONObject> valueArr = JSONArray.parseArray(object.getString("modelData"),JSONObject.class);
// Map<String, List<JSONObject>> listMap = valueArr.stream().collect(
// Collectors.groupingBy(a -> Utils.format("{0}", a.getString("zrUserId"))));
// listMap.forEach((s, jsonObjects) -> {
// String json = JSONArray.toJSONString(jsonObjects);
// SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
// BusProcessModelHis modelHis = new BusProcessModelHis();
// modelHis.setPId(delegateTask.getProcessInstanceId());
// modelHis.setMesg(json);
// modelHis.setUserId(s);
// modelHis.setPrcName(prcName);
// modelHis.setEditType("node");
// modelHis.setCreateTime(sdf.format(new Date()));
// modelHis.setUpdateTime(sdf.format(new Date()));
// busProcessModelHisList.add(modelHis);
// finalNextUserList.add(s);
// });
// // 配置多实例
// delegateTask.setVariable("qcUserList",finalNextUserList);
// delegateTask.addCandidateUsers(finalNextUserList);
// }else {
// throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
// }
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
// one1.setOverTime(OVERTIME);
one1.setPrcType("buss2");
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.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
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);
}
}
// if(!busProcessModelHisList.isEmpty()){
// busProcessModelHisService.saveBatch(busProcessModelHisList);
// }
// 生成 模板
// busProcessModelHisService.saveBussTemplateFile(object,delegateTask.getProcessInstanceId());
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
}
@@ -0,0 +1,26 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
/**
* 发起企标制修订流程前
*/
public class BLApplicantBefore implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
// IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
// QueryWrapper queryWrapper1 = new QueryWrapper();
// 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);
// }
//
// WkFlowSendEmail.sendEmailTodo(delegateTask,"会前申请流程");
}
}
@@ -0,0 +1,109 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
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.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 企标编写后
*/
public class BussLibraryProduct2After 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<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 fileList =delegateTask.getVariable("fileModelList", JSONArray.class);
if (fileList==null) {
fileList=new JSONArray();
}
fileList.addAll(object.getJSONArray("fileModelList"));
delegateTask.setVariable("fileModelList",fileList);
if(StringUtils.isNotBlank(object.getString("hzUserId"))){
delegateTask.setVariable("hzUserId",object.getString("hzUserId"));
nextUserList.add(object.getString("hzUserId"));
}else {
throw new ActivitiException("1#2主起草人不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
// object.getString("standName")
String standName = "";
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("buss2");
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.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
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);
}
}
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
}
@@ -0,0 +1,57 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
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 BussLibraryProduct2Before 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("bussLibraryProduct2?prcType=buss2");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
// 创建当前节点文件 - 暂时为空文件
// IBusProcessModelHisService hisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
//
// QueryWrapper wrapperModel = new QueryWrapper();
// wrapperModel.eq("P_ID",delegateTask.getProcessInstanceId());
// wrapperModel.eq("USER_ID",delegateTask.getAssignee());
// wrapperModel.isNull("TASK_ID");
// List<BusProcessModelHis> hisList = hisService.list(wrapperModel);
// if(!hisList.isEmpty()){
// SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
// BusProcessModelHis modelHis = hisList.get(0);
// modelHis.setTaskId(delegateTask.getId());
// modelHis.setTaskInfo(delegateTask.getName());
// String filePath = hisService.saveBussModelFile(delegateTask.getProcessInstanceId(),delegateTask.getId());
// modelHis.setEditFilePath(filePath);
// modelHis.setUpdateTime(sdf.format(new Date()));
// hisService.saveOrUpdate(modelHis);
// }
}
}
@@ -0,0 +1,100 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
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.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 企标汇总修订后
*/
public class BussLibraryProduct3After 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<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(StringUtils.isNotBlank(object.getString("bzhUserId"))){
delegateTask.setVariable("bzhUserId",object.getString("bzhUserId"));
nextUserList.add(object.getString("bzhUserId"));
}else {
throw new ActivitiException("1#2标准化员不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
// object.getString("standName")
String standName = "";
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("buss2");
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.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
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);
}
}
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
}
@@ -0,0 +1,68 @@
package com.ydw.bat.wkflow.listener.bussLibraryProduct;
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.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 BussLibraryProduct3Before 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);
/**
* 汇总企标编写文件列表
*/
String msg = one1.getMesg();
JSONObject jsonObject = JSON.parseObject(msg);
JSONArray fileList=delegateTask.getVariable("fileModelList",JSONArray.class);
jsonObject.put("fileModelList",fileList);
one1.setMesg(jsonObject.toJSONString());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibraryProduct3?prcType=buss2");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
// 创建汇总文件 --- 合并子节点在线编辑文件
// IBusProcessModelHisService hisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
// SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
//
// BusProcessModelHis modelHis = new BusProcessModelHis();
// modelHis.setPId(delegateTask.getProcessInstanceId());
// modelHis.setMesg(one1.getMesg());
// modelHis.setTaskInfo(delegateTask.getName());
// modelHis.setUserId(one1.getUserId());
// modelHis.setPrcName(one1.getPrcName());
// modelHis.setTaskId(delegateTask.getId());
// modelHis.setEditType("count");
// modelHis.setCreateTime(sdf.format(new Date()));
// modelHis.setUpdateTime(sdf.format(new Date()));
// // 合并子节点在线编辑文件后 返回 汇总文件路径
// String fileUrl = hisService.mergeModelFile(delegateTask.getProcessInstanceId(),delegateTask.getId(),"docx");
// modelHis.setEditFilePath(fileUrl);
// hisService.save(modelHis);
}
}
}
@@ -64,7 +64,7 @@ public class PEPtaskEstimateAfter implements TaskListener {
//设置分发负责人
List<String> nextUserList = new ArrayList();
if (null!=ne && ne.size()>0) {
JSONObject object1 = JSONObject.parseObject(remove.getString(0));
JSONObject object1 = JSONObject.parseObject(ne.getString(0));
if (StringUtils.isNotBlank(object1.getString("distributePersonId"))) {
delegateTask.setVariable("ffUserId", object1.getString("distributePersonId"));
nextUserList.add(delegateTask.getVariable("ffUserId", String.class));
@@ -76,9 +76,15 @@ public class SRPManagerApproveAfter implements TaskListener{
for (Object o: jsonArray) {
JSONObject object1=JSONObject.parseObject(o.toString());
info=info+object1.getString("id")+",";
putTime=putTime+object1.getString("issueTime")+",";
zccTime=zccTime+object1.getString("ZCCSSRQ")+",";
xcxTime=xcxTime+object1.getString("XCXSSRQ")+",";
if (!"".equals(object1.getString("issueTime"))) {
putTime = putTime + object1.getString("issueTime") + ",";
}
if (!"".equals(object1.getString("ZCCSSRQ"))) {
zccTime = zccTime + object1.getString("ZCCSSRQ") + ",";
}
if (!"".equals(object1.getString("XCXSSRQ"))) {
xcxTime = xcxTime + object1.getString("XCXSSRQ") + ",";
}
}
detailed.setInforlist(info.substring(0,info.length()-1));
detailed.setInforlist1(putTime.substring(0,putTime.length()-1));