标准征求意见流程-流程图、流程历史改造。

This commit is contained in:
wangzhijiang
2024-01-25 18:01:36 +08:00
parent 538ccf2b22
commit 70d45f56bf
30 changed files with 1058 additions and 4 deletions
@@ -112,6 +112,9 @@ public class TodoTaskController extends BaseAction {
@Autowired
private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService;
@Autowired
private IBusProcessHistoryService busProcessHistoryService;
@ApiOperation(value = "我的待办任务列表")
@ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"),
@ApiImplicitParam(name = "current", value = "当前页"),
@@ -651,6 +654,8 @@ public class TodoTaskController extends BaseAction {
logger.error(e.toString());
}
taskService.complete(busMes.getTaskId());
this.busProcessHistoryService.complete(busMes);
} else {
return WrapMapper.error("当前任务不存在");
}
@@ -686,6 +691,8 @@ public class TodoTaskController extends BaseAction {
} else {
return WrapMapper.error("当前任务不存在");
}
busMes.setTaskId(taskId);
this.busProcessHistoryService.complete(busMes);
}
return WrapMapper.ok(prcid);
}
@@ -0,0 +1,28 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/datas/bus-process-history")
public class BusProcessHistoryController {
@Autowired
private IBusProcessHistoryService busProcessHistoryService;
@GetMapping("/queryByList")
public List<BusProcessHistory> queryByList(String actiProcInstId) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
return this.busProcessHistoryService.queryByList(busProcessHistory);
}
}
@@ -0,0 +1,90 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* 流程历史
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bus_process_history")
@ApiModel(value="BusProcessHistory对象", description="")
public class BusProcessHistory {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId(value = "id")
private String id;
@ApiModelProperty(value = "流程实例id")
@TableField("acti_proc_inst_id")
private String actiProcInstId;
@ApiModelProperty(value = "任务id")
@TableField("task_id")
private String taskId;
@ApiModelProperty(value = "用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty(value = "任务节点key")
@TableField("task_key")
private String taskKey;
@ApiModelProperty(value = "流程类型")
@TableField("flow_type")
private String flowType;
@ApiModelProperty(value = "是否是子流程:1是 2否")
@TableField("is_sub")
private String isSub;
@ApiModelProperty(value = "排序号")
@TableField("order_num")
private Integer orderNum;
@ApiModelProperty(value = "任务状态")
@TableField("task_status")
private String taskStatus;
@ApiModelProperty(value = "审批意见")
@TableField("commit_text")
private String commitText;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "完成时间")
@TableField("end_time")
private Date endTime;
@ApiModelProperty(value = "父级id(仅限于子流程任务节点有)")
@TableField("p_id")
private String pId;
@ApiModelProperty(value = "是否是多实例任务节点:1是 2否")
@TableField("is_many")
private String isMany;
@ApiModelProperty(value = "多实例父节点id")
@TableField("many_p_id")
private String manyPId;
// 子流程数据数组
@TableField(exist = false)
private List<BusProcessHistory> childList;
}
@@ -0,0 +1,8 @@
package com.ydw.bat.wkflow.business_main.datas.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
public interface BusProcessHistoryMapper extends BaseMapper<BusProcessHistory> {
}
@@ -0,0 +1,28 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusMes;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import org.activiti.engine.delegate.DelegateTask;
import java.util.List;
public interface IBusProcessHistoryService extends IService<BusProcessHistory> {
List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory);
void insertBatch(List<BusProcessHistory> busProcessHistoryList);
void updateBatch(List<BusProcessHistory> busProcessHistoryList);
// 更新任务信息
void updateTaskInfo(DelegateTask delegateTask);
void complete(BusMes busMes);
// 获取最大排序号
int getMaxOrderNum(String actiProcInstId, String taskKey);
// 更新排序号
void updateOrderNum(String actiProcInstId, int orderNum,int dataNum);
}
@@ -0,0 +1,168 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_main.datas.entity.BusMes;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessHistoryMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistoryMapper, BusProcessHistory> implements IBusProcessHistoryService {
@Override
public List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
List<BusProcessHistory> results = this.list(bphQueryWrap);
return results;
}
/**
* 设置查询条件
* @param busProcessHistory
* @param bphQueryWrap
*/
private void setQueryCondition(BusProcessHistory busProcessHistory, QueryWrapper<BusProcessHistory> bphQueryWrap) {
if (StringUtils.isNotEmpty(busProcessHistory.getActiProcInstId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, busProcessHistory.getActiProcInstId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskId, busProcessHistory.getTaskId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getUserId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, busProcessHistory.getUserId());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskKey())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, busProcessHistory.getTaskKey());
}
if (StringUtils.isNotEmpty(busProcessHistory.getFlowType())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getFlowType, busProcessHistory.getFlowType());
}
if (StringUtils.isNotEmpty(busProcessHistory.getTaskStatus())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskStatus, busProcessHistory.getTaskStatus());
}
if (StringUtils.isNotEmpty(busProcessHistory.getPId())) {
bphQueryWrap.lambda().eq(BusProcessHistory::getPId, busProcessHistory.getPId());
}
}
/**
* 处理数据
*
* @param datas
*/
private List<BusProcessHistory> disposeData(List<BusProcessHistory> datas) {
List<BusProcessHistory> results = new ArrayList<>();
if (CollectionUtils.isNotEmpty(datas)) {
results = datas.stream().filter(data -> StringUtils.isEmpty(data.getPId())).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(results)) {
List<BusProcessHistory> childList = datas.stream().filter(data -> StringUtils.isNotEmpty(data.getPId())).distinct().collect(Collectors.toList());
for (BusProcessHistory data : results) {
if (StringUtils.equals(data.getIsSub(), "1")) {
data.setChildList(childList.stream().filter(child -> StringUtils.equals(child.getPId(), data.getId())).distinct().collect(Collectors.toList()));
}
}
}
}
return results;
}
@Override
public void insertBatch(List<BusProcessHistory> busProcessHistoryList) {
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
for (BusProcessHistory busProcessHistory : busProcessHistoryList) {
if (StringUtils.isEmpty(busProcessHistory.getId())) {
busProcessHistory.setId(UUID.randomUUID().toString());
}
busProcessHistory.setCreateTime(new Date());
}
this.saveBatch(busProcessHistoryList);
}
}
@Override
public void updateBatch(List<BusProcessHistory> busProcessHistoryList) {
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
this.updateBatchById(busProcessHistoryList);
}
}
@Override
public void updateTaskInfo(DelegateTask delegateTask) {
BusProcessHistory bph = new BusProcessHistory();
bph.setActiProcInstId(delegateTask.getProcessInstanceId());
bph.setTaskKey(delegateTask.getTaskDefinitionKey());
bph.setUserId(delegateTask.getAssignee());
List<BusProcessHistory> bphList = this.queryByList(bph);
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory busProcessHistory = bphList.get(0);
busProcessHistory.setTaskId(delegateTask.getId());
busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue());
super.updateById(busProcessHistory);
}
}
@Override
public void complete(BusMes busMes) {
BusProcessHistory bph = new BusProcessHistory();
bph.setTaskId(busMes.getTaskId());
List<BusProcessHistory> bphList = this.queryByList(bph);
if (CollectionUtils.isNotEmpty(bphList)) {
JSONObject jsonObject = JSONObject.parseObject(busMes.getJson());
bphList.forEach(busProcessHistory -> {
busProcessHistory.setTaskStatus(TaskStatusEnum.DONE.getValue());
busProcessHistory.setEndTime(new Date());
busProcessHistory.setCommitText(jsonObject.getString("commentText"));
});
this.updateBatch(bphList);
}
}
@Override
public int getMaxOrderNum(String actiProcInstId, String taskKey) {
int result = 0;
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,taskKey);
bphQueryWrap.orderByDesc("order_num");
List<BusProcessHistory> list = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(list)) {
result = list.get(0).getOrderNum();
}
return result;
}
/**
*
* @param actiProcInstId 流程实例id
* @param orderNum 排序号
* @param dataNum 数据数量
*/
@Override
public void updateOrderNum(String actiProcInstId, int orderNum ,int dataNum) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId);
bphQueryWrap.lambda().gt(BusProcessHistory::getOrderNum,orderNum);
bphQueryWrap.isNull("task_id");
List<BusProcessHistory> list = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(list)) {
for (BusProcessHistory busProcessHistory : list) {
busProcessHistory.setOrderNum(busProcessHistory.getOrderNum() + dataNum);
}
this.updateBatch(list);
}
}
}
@@ -5,18 +5,24 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tmsps.fk.common.util.JsonUtil;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
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.IBusProcessHistoryService;
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.SarPublicIdea;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -160,5 +166,123 @@ public class StartSurveyAfter implements TaskListener {
if(!result.isOk()){
throw new ActivitiException("发起公开征求意见失败");
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
// 起草
BusProcessHistory qcBph = new BusProcessHistory();
qcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcBph.setUserId(delegateTask.getAssignee());
qcBph.setTaskId(delegateTask.getId());
qcBph.setTaskKey(delegateTask.getTaskDefinitionKey());
qcBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
qcBph.setIsSub("2");
qcBph.setTaskStatus(TaskStatusEnum.DONE.getValue());
qcBph.setEndTime(new Date());
qcBph.setCommitText(json.getString("commentText"));
qcBph.setIsMany("2");
qcBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION1.getOrderNum());
bphList.add(qcBph);
// 子流程
// 子流程主键id
// String subId = UUID.randomUUID().toString();
// delegateTask.setVariable("subId",subId);
//
// BusProcessHistory zlcBph = new BusProcessHistory();
// zlcBph.setId(subId);
// zlcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
// zlcBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
// zlcBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getValue());
// zlcBph.setIsSub("1");
// bphList.add(zlcBph);
List<String> zrUserIdList = new ArrayList<>();
if (json.getString("dockUserList").contains(",")){
zrUserIdList.addAll(new ArrayList<>(Arrays.asList(json.getString("dockUserList").split(","))));
}else {
zrUserIdList.add(json.getString("dockUserList"));
}
if (CollectionUtils.isNotEmpty(zrUserIdList)) {
for (String zrUserId : zrUserIdList) {
// 任务分发
BusProcessHistory rwffBph = new BusProcessHistory();
rwffBph.setActiProcInstId(delegateTask.getProcessInstanceId());
rwffBph.setUserId(zrUserId);
rwffBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getValue());
rwffBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
rwffBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getOrderNum());
rwffBph.setIsSub("2");
rwffBph.setIsMany("2");
bphList.add(rwffBph);
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(zrUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjhzspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getOrderNum());
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
bphList.add(yjhzspBph);
/*// 意见审批
String spId = json.getString("spId");
BusProcessHistory yjspBph = new BusProcessHistory();
yjspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjspBph.setUserId(spId);
yjspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
yjspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getOrderNum());
yjspBph.setIsSub("2");
yjspBph.setIsMany("2");
bphList.add(yjspBph);
// 管理员
String bzfgId = json.getString("bzfgId");
BusProcessHistory glyBph = new BusProcessHistory();
glyBph.setActiProcInstId(delegateTask.getProcessInstanceId());
glyBph.setUserId(bzfgId);
glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
glyBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getOrderNum());
glyBph.setIsSub("2");
glyBph.setIsMany("2");
bphList.add(glyBph);*/
}
}
// 意见处理
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getOrderNum());
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
// 批准
String presidentUser = json.getString("presidentUser");
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(presidentUser);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
bphService.insertBatch(bphList);
}
}
@@ -3,18 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
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.entity.ResponseMessage;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
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.SarPublicIdeaAll;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import java.text.SimpleDateFormat;
@@ -168,5 +171,36 @@ public class Step10After implements TaskListener {
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String presidentFlag = (String) delegateTask.getVariable("presidentFlag");
// 如果是驳回,流程走向意见处理节点,否则流程结束
if (StringUtils.equals(presidentFlag,"1")) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -30,5 +31,8 @@ public class Step10Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,18 +3,24 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.BusProcessHistory;
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.IBusProcessHistoryService;
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.SarPublicIdea;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -121,5 +127,47 @@ public class Step1After implements TaskListener {
busProcessNewNext.setUserId(delegateTask.getVariable("dockUser",String.class));
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
List<String> yjfkUserIdList = Arrays.asList(json.getString("responUserList").split(","));
// 意见反馈
if (CollectionUtils.isNotEmpty(yjfkUserIdList)) {
String yjfkPBphId = (String) delegateTask.getVariable("yjfkPBphId");
if (StringUtils.isEmpty(yjfkPBphId)) {
BusProcessHistory yjfkPBph = new BusProcessHistory();
yjfkPBphId = UUID.randomUUID().toString();
yjfkPBph.setId(yjfkPBphId);
yjfkPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkPBph.setIsSub("2");
yjfkPBph.setIsMany("1");
bphList.add(yjfkPBph);
}
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(yjfkPBphId);
bphList.add(yjfkBph);
}
delegateTask.setVariable("yjfkPBphId",yjfkPBphId);
}
bphService.insertBatch(bphList);
}
}
@@ -1,12 +1,16 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
@@ -32,5 +36,9 @@ public class Step1Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -32,5 +33,7 @@ public class Step2Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,20 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -87,5 +92,38 @@ public class Step3After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String spId = json.getString("spId");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,spId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 意见审批
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(spId);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -31,5 +32,7 @@ public class Step3Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -93,5 +99,60 @@ public class Step4After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String spFlag = json.getString("spFlag");
List<BusProcessHistory> bphList = new ArrayList<>();
// 如果是驳回,流程走向意见处理节点,否则流程结束
if (!StringUtils.equals(spFlag,"0")) {
String zrUserId = json.getString("SKS");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(zrUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
bphList.add(yjhzspBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
} else {
String bzfgId = json.getString("bzfgId");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzfgId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
// 管理员
BusProcessHistory glyBph = new BusProcessHistory();
glyBph.setActiProcInstId(delegateTask.getProcessInstanceId());
glyBph.setUserId(bzfgId);
glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
glyBph.setOrderNum(orderNum + 1);
glyBph.setIsSub("2");
glyBph.setIsMany("2");
bphList.add(glyBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
bphService.insertBatch(bphList);
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -31,5 +32,8 @@ public class Step4Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,15 +4,20 @@ 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.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
@@ -121,5 +126,34 @@ public class Step5After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String bzFlag = json.getString("bzFlag");
// 如果是驳回,流程走向意见处理节点
if (!StringUtils.equals(bzFlag,"0")) {
String zrUserId = json.getString("SKS");
List<BusProcessHistory> bphList = new ArrayList<>();
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(zrUserId);
yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
bphList.add(yjhzspBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -32,5 +33,8 @@ public class Step5Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,15 +3,20 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -87,5 +92,43 @@ public class Step6After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
// 会签
List<String> hqUserIdList = delegateTask.getVariable("Step6", List.class);
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
// 会签节点父节点信息
BusProcessHistory hqPBph = new BusProcessHistory();
String hqPBphId = UUID.randomUUID().toString();
hqPBph.setId(hqPBphId);
hqPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hqPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
hqPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
hqPBph.setOrderNum(orderNum + 1);
hqPBph.setIsSub("2");
hqPBph.setIsMany("1");
bphList.add(hqPBph);
for (String hqUsserId : hqUserIdList) {
BusProcessHistory hqBph = new BusProcessHistory();
hqBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hqBph.setUserId(hqUsserId);
hqBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
hqBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
hqBph.setOrderNum(orderNum + 1);
hqBph.setIsSub("2");
hqBph.setIsMany("1");
hqBph.setManyPId(hqPBphId);
bphList.add(hqBph);
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
bphService.insertBatch(bphList);
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -31,5 +32,8 @@ public class Step6Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,16 +2,23 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -126,5 +133,73 @@ public class Step7After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask,nextUserList);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
* @param shUserIdList
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List<String> shUserIdList) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前会签节点不存在任务了。
if (!existTaskFlag) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
String hqFlag = (String) delegateTask.getVariable("hqFlag");
if (StringUtils.equals(hqFlag,"0")) {
// 审核
if (CollectionUtils.isNotEmpty(shUserIdList)) {
// 审核节点父节点信息
BusProcessHistory shPBph = new BusProcessHistory();
String shPBphId = UUID.randomUUID().toString();
shPBph.setId(shPBphId);
shPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
shPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
shPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
shPBph.setOrderNum(orderNum + 1);
shPBph.setIsSub("2");
shPBph.setIsMany("1");
bphList.add(shPBph);
for (String shUserId : shUserIdList) {
BusProcessHistory shBph = new BusProcessHistory();
shBph.setActiProcInstId(delegateTask.getProcessInstanceId());
shBph.setUserId(shUserId);
shBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
shBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
shBph.setOrderNum(orderNum + 1);
shBph.setIsSub("2");
shBph.setIsMany("1");
shBph.setManyPId(shPBphId);
bphList.add(shBph);
}
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -31,5 +32,8 @@ public class Step7Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,20 +2,28 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step8After implements TaskListener {
@@ -114,5 +122,72 @@ public class Step8After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask,nextUserList);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
* @param sdUserIdList
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List<String> sdUserIdList) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前审核节点不存在任务了。
if (!existTaskFlag) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
String bdFlag = (String) delegateTask.getVariable("bdFlag");
if (StringUtils.equals(bdFlag,"0")) {
// 审定
if (CollectionUtils.isNotEmpty(sdUserIdList)) {
// 审定节点父节点信息
BusProcessHistory sdPBph = new BusProcessHistory();
String sdPBphId = UUID.randomUUID().toString();
sdPBph.setId(sdPBphId);
sdPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdPBph.setOrderNum(orderNum + 1);
sdPBph.setIsSub("2");
sdPBph.setIsMany("1");
bphList.add(sdPBph);
for (String sdUserId : sdUserIdList) {
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(sdUserId);
sdBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
sdBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
sdBph.setOrderNum(orderNum + 1);
sdBph.setIsSub("2");
sdBph.setIsMany("1");
sdBph.setManyPId(sdPBphId);
bphList.add(sdBph);
}
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -32,5 +33,8 @@ public class Step8Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -2,20 +2,28 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
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.IBusProcessHistoryService;
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 com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import io.swagger.models.auth.In;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step9After implements TaskListener {
@@ -110,5 +118,67 @@ public class Step9After implements TaskListener {
}
}
}
this.addBusProcessHistory(object,delegateTask);
}
/**
* 添加节点流程历史
* @param json
* @param delegateTask
*/
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class);
boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey(
delegateTask.getProcessInstanceId(),
delegateTask.getTaskDefinitionKey(),
delegateTask.getId()
);
// 如果当前审定节点不存在任务了。
if (!existTaskFlag) {
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
List<BusProcessHistory> bphList = new ArrayList<>();
String directorFlag = (String) delegateTask.getVariable("directorFlag");
// 如果是通过,流程走向批准节点
if (StringUtils.equals(directorFlag,"0")) {
String presidentUser = json.getString("presidentUser");
// 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,presidentUser);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
// 批准
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(presidentUser);
pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setOrderNum(orderNum + 1);
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
}
} else {
// 流程走向意见处理节点
String bzfgIdSum = json.getString("startUser");
BusProcessHistory yjclBph = new BusProcessHistory();
yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjclBph.setUserId(bzfgIdSum);
yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue());
yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjclBph.setOrderNum(orderNum + 1);
yjclBph.setIsSub("2");
yjclBph.setIsMany("2");
bphList.add(yjclBph);
}
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
bphService.insertBatch(bphList);
}
}
}
@@ -2,6 +2,7 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.IBusProcessHistoryService;
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;
@@ -30,5 +31,8 @@ public class Step9Before implements TaskListener {
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,6 +4,7 @@ package com.ydw.bat.wkflow.util.enums;
* 流程类型枚举类
*/
public enum FlowTypeEnum {
BZZQYJLC("3","标准征求意见流程",""),
ZCZQYJLC("33","政策征求意见流程","policyConsultation"),
ZCHGXXMSCLC("34","重点认证标准/政策合规性项目审查流程","policyComplianceReview"),
;
@@ -0,0 +1,39 @@
package com.ydw.bat.wkflow.util.enums;
/**
* 标准征求意见流程-任务节点定义key
*/
public enum StandardCommentNewProcessNodeKeyEnum {
STAND_ASK_FOR_OPINION1("StandAskForOpinion1","起草",0),
SUB_PROCESS("subProcess","子流程",1),
STAND_ASK_FOR_OPINION2("StandAskForOpinion2","任务分发",2),
STAND_ASK_FOR_OPINION3("StandAskForOpinion3","意见反馈",3),
STAND_ASK_FOR_OPINION4("StandAskForOpinion4","意见汇总审批",4),
STAND_ASK_FOR_OPINION5("StandAskForOpinion5","意见审批",5),
STAND_ASK_FOR_OPINION6("StandAskForOpinion6","管理员",6),
STAND_ASK_FOR_OPINION7("StandAskForOpinion7","意见处理",7),
STAND_ASK_FOR_OPINION8("StandAskForOpinion8","会签",8),
STAND_ASK_FOR_OPINION9("StandAskForOpinion9","审核",9),
STAND_ASK_FOR_OPINION10("StandAskForOpinion10","审定",10),
STAND_ASK_FOR_OPINION11("StandAskForOpinion11","批准",11),
;
private String value;
private String lable;
private Integer orderNum;
private StandardCommentNewProcessNodeKeyEnum(String value, String lable,Integer orderNum) {
this.value = value;
this.lable = lable;
this.orderNum = orderNum;
}
public String getValue() {
return value;
}
public String getLable() {
return lable;
}
public Integer getOrderNum() {
return orderNum;
}
}
@@ -0,0 +1,36 @@
package com.ydw.bat.wkflow.util.enums;
/**
* 任务状态枚举类
*/
public enum TaskStatusEnum {
TODO("待办","todo"),
DONE("已办","done"),
;
TaskStatusEnum(String label, String value) {
this.label = label;
this.value = value;
}
String label;
String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessHistoryMapper">
</mapper>