diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index d1fed25b..649acafc 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -420,6 +420,31 @@ public class TodoTaskController extends BaseAction { // return WrapMapper.error("ESP 发送待办任务异常"); } + + @ApiOperation(value = "完成任务", notes = "流程单个节点任务,直接完成任务,外加部分特殊处理节点更改草稿内容") + @ApiImplicitParams({@ApiImplicitParam(name = "taskId", value = "任务id"), + @ApiImplicitParam(name = "userId", value = "完成任务用户Id")}) + @PostMapping("/completeTaskNew") + public Wrapper completeTaskByUserIdNew(@RequestBody BusMesSpecial busMes) { + BusMes busMes1=new BusMes(); + BeanUtils.copyProperties(busMes,busMes1); + QueryWrapper queryWrapper=new QueryWrapper<>(); + if (null!=busMes.getTaskId() && !busMes.getTaskId().isEmpty()){ + queryWrapper.eq("TASK_ID",busMes.getTaskId()); + }else { + queryWrapper.eq("TASK_ID",busMes.getTaskIds()); + } + BusProcessNew busProcessNew=iBusProcessNewService.getOne(queryWrapper); + if (null!=busMes.getSpecialJson()){ + QueryWrapper queryWrapper1=new QueryWrapper<>(); + queryWrapper1.eq("PRC_ID",busProcessNew.getPId()); + BusProcessName busProcessName=iBusProcessNameService.getOne(queryWrapper1); + busProcessName.setMes(busMes.getSpecialJson()); + iBusProcessNameService.update(busProcessName,queryWrapper1); + } + return this.completeTaskByUserId(busMes1); + } + private void completeOA(Task task){ } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusMesSpecial.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusMesSpecial.java new file mode 100644 index 00000000..1407fa0b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusMesSpecial.java @@ -0,0 +1,119 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import lombok.Data; + +@Data +public class BusMesSpecial { + + private String userId; + + private String taskId; + + private String json; + + private String specialJson; + + private String taskIds; + + private String pId; + + private String prcType; + + private String createUser; + + private String createUserName; + + public String getDept() { + return dept; + } + + public void setDept(String dept) { + this.dept = dept; + } + + private String dept; + + private String userName; + + private String id; + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } + + public String getJson() { + return json; + } + + public void setJson(String json) { + this.json = json; + } + + public String getTaskIds() { + return taskIds; + } + + public void setTaskIds(String taskIds) { + this.taskIds = taskIds; + } + + public String getpId() { + return pId; + } + + public void setpId(String pId) { + this.pId = pId; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getPrcType() { + return prcType; + } + + public void setPrcType(String prcType) { + this.prcType = prcType; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2After.java new file mode 100644 index 00000000..d5e848ee --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2After.java @@ -0,0 +1,130 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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.Collection; +import java.util.Date; +import java.util.List; + +/** + * 发起人汇总结果后 + */ +public class BussFs2After 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(); + + if(StringUtils.isNotBlank(object.getString("bussFsUser3"))){ + delegateTask.setVariable("bussFsUser3",object.getString("bussFsUser3")); + nextUserList.add(object.getString("bussFsUser3")); + }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("buss3"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + /** + * 当子任务结束时存储 + */ + Integer commentCount=delegateTask.getVariable("commentCount",Integer.class); + if(commentCount==null)commentCount=0; + commentCount++; + delegateTask.setVariable("count",commentCount); + + Collection commentUserList=delegateTask.getVariable("bussFsSubList",Collection.class); + + // 存储当前节点意见 + 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(commentCount>=commentUserList.size()){ + 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); + } + } + }else { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID", delegateTask.getId()); + BusProcessNew one2 = busBean.getOne(queryWrapper1); + if (one1 != null) { + one2.setMsgType("clause"); + one2.setPId(delegateTask.getProcessInstanceId()); + one2.setMesg(object.toJSONString()); + one2.setFinishFlag("0"); + one2.setTaskInfo(delegateTask.getName()); + one2.setPrcName(prcName); + one2.setCommitFlag("0"); + one2.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one2); + } + } + + } + + private String verifyObj(String str){ + return (str == null || str.equals("")) ? "" : str; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2Before.java new file mode 100644 index 00000000..91d42dc8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs2Before.java @@ -0,0 +1,65 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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 BussFs2Before 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 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("BussFs2?prcType=buss3"); + 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java new file mode 100644 index 00000000..403ae5e5 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3After.java @@ -0,0 +1,104 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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.listener.bussLibrary.BussUtils; +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.Collection; +import java.util.Date; +import java.util.List; + +/** + * 标准法规部高级经理批准后 + */ +public class BussFs3After 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(); + + if(StringUtils.isNotBlank(object.getString("bussFsSubUser2"))){ + delegateTask.setVariable("bussFsSubUser2",object.getString("bussFsSubUser2")); + nextUserList.add(object.getString("bussFsSubUser2")); + }else { + throw new ActivitiException("1#2发起人不存在,请配置相关人员"); + } + + + String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString(); + //截止时间 流程描述 创建人 + 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("buss3"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + if(StringUtils.isNotBlank(approvalOpinion)){ + if ("0".equalsIgnoreCase(approvalOpinion)) { + BussUtils.endFunAll(delegateTask, prcName,busBean, object, "0", busProcessNameService,"buss3"); + } else { + if(StringUtils.isNotBlank(object.getString("bussFsUserC2"))) { + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busProcessNew.setUserId(object.getString("xdUserId")); + busProcessNew.setPrcName(prcName); + busBean.save(busProcessNew); + + BussUtils.approvalFunc1(delegateTask, busBean, object, prcName,"1"); + delegateTask.setVariable("bussFsUserC2",object.getString("bussFsUserC2")); + delegateTask.setVariable("bussFs3Flag", 1); + }else { + throw new ActivitiException("1#2修订用户不存在,请配置相关人员"); + } + } + }else { + throw new ActivitiException("1#2 提交OR驳回参数不存在"); + } + + } + + private String verifyObj(String str){ + return (str == null || str.equals("")) ? "" : str; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3Before.java new file mode 100644 index 00000000..a2485ad4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFs3Before.java @@ -0,0 +1,65 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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 BussFs3Before 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 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("BussFs3?prcType=buss3"); + 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2After.java new file mode 100644 index 00000000..21eba1bb --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2After.java @@ -0,0 +1,101 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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.Collection; +import java.util.Date; +import java.util.List; + +/** + * 重新发起人汇总结果后 + */ +public class BussFsC2After 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(); + + if(StringUtils.isNotBlank(object.getString("bussFsSubUser2"))){ + delegateTask.setVariable("bussFsSubUser2",object.getString("bussFsSubUser2")); + nextUserList.add(object.getString("bussFsSubUser2")); + }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("buss3"); + 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; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2Before.java new file mode 100644 index 00000000..bff623ef --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsC2Before.java @@ -0,0 +1,65 @@ +package com.ydw.bat.wkflow.listener.bussFs; + +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 BussFsC2Before 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 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("BussFsC2?prcType=buss3"); + 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); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2After.java index d17f6007..18a1be50 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2After.java @@ -16,6 +16,7 @@ import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.List; @@ -39,8 +40,8 @@ public class BussFsSub2After implements TaskListener{ List nextUserList = new ArrayList(); if(StringUtils.isNotBlank(object.getString("bussFsSubUser2"))){ - delegateTask.setVariable("bussFsSubUser2",object.getString("bussFsSubUser2")); - nextUserList.add(object.getString("bussFsSubUser2")); + delegateTask.setVariable("bussFsUser2",object.getString("bussFsUser2")); + nextUserList.add(object.getString("bussFsUser2")); }else { throw new ActivitiException("1#2复审人不存在,请配置相关人员"); } @@ -67,6 +68,16 @@ public class BussFsSub2After implements TaskListener{ busProcessNameService.saveOrUpdate(one1); } + /** + * 当子任务结束时存储 + */ + Integer commentCount=delegateTask.getVariable("commentCount",Integer.class); + if(commentCount==null)commentCount=0; + commentCount++; + delegateTask.setVariable("count",commentCount); + + Collection commentUserList=delegateTask.getVariable("bussFsSubList",Collection.class); + // 存储当前节点意见 BusProcessNew busProcessNew = new BusProcessNew(); busProcessNew.setMsgType("clause"); @@ -79,20 +90,38 @@ public class BussFsSub2After implements TaskListener{ 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(commentCount>=commentUserList.size()){ + 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); + } + } + }else { + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("TASK_ID", delegateTask.getId()); + BusProcessNew one2 = busBean.getOne(queryWrapper1); + if (one1 != null) { + one2.setMsgType("clause"); + one2.setPId(delegateTask.getProcessInstanceId()); + one2.setMesg(object.toJSONString()); + one2.setFinishFlag("0"); + one2.setTaskInfo(delegateTask.getName()); + one2.setPrcName(prcName); + one2.setCommitFlag("0"); + one2.setCommitText(object.getString("commentText")); + busBean.saveOrUpdate(one2); } } + } private String verifyObj(String str){ diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2Before.java index e042477b..9cca52b1 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussFs/BussFsSub2Before.java @@ -38,7 +38,7 @@ public class BussFsSub2Before implements TaskListener{ busBean.saveOrUpdate(one1); // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 - one1.setLink("BussFsSub1?prcType=buss3"); + one1.setLink("BussFsSub2?prcType=buss3"); one1.setTaskInfo(delegateTask.getName()); oaService.sendTodoMq(one1);