Merge branch 'dev_2024325_LCZGF_39' into 'master'

Dev 2024325 lczgf 39

See merge request laws-foton-slrs/foton-wkflow-rest!82
This commit is contained in:
高嵩
2024-04-08 06:54:00 +00:00
69 changed files with 3106 additions and 69 deletions
@@ -27,6 +27,7 @@ import com.ydw.bat.wkflow.business_oa.webService.service.impl.WebServiceOAServic
import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.*;
import org.activiti.engine.history.*;
import org.activiti.engine.repository.ProcessDefinition;
@@ -112,6 +113,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 = "当前页"),
@@ -424,6 +428,8 @@ public class TodoTaskController extends BaseAction {
} else if (StringUtils.equals(one.getPrcType(), FlowTypeEnum.ZCHGXXMSCLC.getValue())) {
this.changeZchgxxmscFlowAssignee(assignee, userId, pId, str);
}
this.busProcessHistoryService.changeUserIdByTaskId(str,assignee,userId);
}
}
@@ -650,6 +656,8 @@ public class TodoTaskController extends BaseAction {
}catch (Exception e){
logger.error(e.toString());
}
this.busProcessHistoryService.complete(busMes);
taskService.complete(busMes.getTaskId());
} else {
return WrapMapper.error("当前任务不存在");
@@ -682,6 +690,9 @@ public class TodoTaskController extends BaseAction {
}catch (Exception e){
logger.error(e.toString());
}
busMes.setTaskId(taskId);
this.busProcessHistoryService.complete(busMes);
taskService.complete(taskId);
} else {
return WrapMapper.error("当前任务不存在");
@@ -896,6 +907,11 @@ public class TodoTaskController extends BaseAction {
updateWrapper.in(BusProcessNew::getTaskId,taskIdList);
updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收");
iBusProcessNewService.update(updateWrapper);
LambdaUpdateWrapper<BusProcessHistory> bphUpdateWrapper = new LambdaUpdateWrapper<>();
bphUpdateWrapper.in(BusProcessHistory::getTaskId,taskIdList);
bphUpdateWrapper.set(BusProcessHistory::getTaskStatus, TaskStatusEnum.RECEIVED.getValue());
this.busProcessHistoryService.update(bphUpdateWrapper);
return processNew;
}
@@ -0,0 +1,49 @@
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;
import java.util.Map;
@RestController
@RequestMapping("/datas/bus-process-history")
public class BusProcessHistoryController {
@Autowired
private IBusProcessHistoryService busProcessHistoryService;
/**
* 查询流程历史列表
* @param actiProcInstId
* @param flowType
* @return
*/
@GetMapping("/queryFlowHistoryList")
public List<BusProcessHistory> queryFlowHistoryList(String actiProcInstId,String flowType) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
busProcessHistory.setFlowType(flowType);
return this.busProcessHistoryService.queryFlowHistoryList(busProcessHistory);
}
/**
* 查询流程图数据
* @param actiProcInstId
* @return
*/
@GetMapping("/getImgDataList")
public List<Map<String,Object>> getImgDataList(String actiProcInstId, String flowType) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
busProcessHistory.setFlowType(flowType);
return this.busProcessHistoryService.getImgDataList(busProcessHistory);
}
}
@@ -0,0 +1,122 @@
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> children;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String taskStatusShow;
@TableField(exist = false)
private String taskKeyShow;
@TableField(exist = false)
private String bpnId;
@TableField(exist = false)
private String prcId;
@TableField(exist = false)
private String prcName;
@TableField(exist = false)
private String prcNum;
@ApiModelProperty(value = "图片中展示标识,0 未办白色,1 待办浅绿色 2 已办 蓝色")
@TableField("img_show_color")
private String imgShowColor;
@ApiModelProperty(value = "图片中是否展示:1 默认展示 2 不展示")
@TableField("img_show_flag")
private String imgShowFlag;
@ApiModelProperty(value = "分发用户id")
@TableField("parent_user_id")
private String parentUserId;
// 分发用户名称
@TableField(exist = false)
private String parentUserName;
}
@@ -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,54 @@
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;
import java.util.Map;
public interface IBusProcessHistoryService extends IService<BusProcessHistory> {
List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory 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);
List<Map<String,Object>> getImgDataList(BusProcessHistory busProcessHistory);
// 根据taskId修改用户id
void changeUserIdByTaskId(String taskId,String afterUserId,String frontUserId);
/**
* 更新某一个流程下 任务在流程图中展示颜色。
* @param actiProcInstId 流程示例id
* @param inTaskKeyList in的流程定义key
* @param notInTaskKeyList notIn的流程定义key
* @param imgShowColor 更新成什么颜色 : 图片中展示标识,0 未办白色,1 待办浅绿色 2 已办 蓝色
*/
void updateImgShowColor(String actiProcInstId,List<String> inTaskKeyList, List<String> notInTaskKeyList,String imgShowColor);
/**
* 更新某一个流程下 任务是否展示。
* @param actiProcInstId 流程示例id
* @param inTaskKeyList in的流程定义key
* @param notInTaskKeyList notIn的流程定义key
* @param imgShowFlag 1展示 2不展示
*/
void updateImgShowFlag(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList, String imgShowFlag);
}
@@ -0,0 +1,511 @@
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.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessHistoryMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService;
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.util.enums.BussLibraryNodeKeyEnum;
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 org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistoryMapper, BusProcessHistory> implements IBusProcessHistoryService {
@Autowired
LawsUserInfoService lawsUserInfoService;
@Autowired
private IBusProcessNameService busProcessNameService;
@Autowired
private IBusProcessEntrustService iBusProcessEntrustService;
@Override
public List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
bphQueryWrap.orderByAsc("order_num","create_time");
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId).isNull(BusProcessHistory::getUserId).eq(BusProcessHistory::getIsMany,"1").or().isNotNull(BusProcessHistory::getTaskId)
);
// bphQueryWrap.isNotNull("task_id");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
this.disposeData(bphList,busProcessHistory.getActiProcInstId());
List<BusProcessHistory> firstBphList = bphList.stream().filter(bph -> StringUtils.isEmpty(bph.getManyPId())).distinct().collect(Collectors.toList());
for (BusProcessHistory processHistory : firstBphList) {
if (StringUtils.equals(processHistory.getIsMany(),"1")) {
List<BusProcessHistory> childList = bphList.stream().filter(bph -> StringUtils.equals(processHistory.getId(), bph.getManyPId())).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(childList)) {
String taskStatus = TaskStatusEnum.DONE.getValue();
for (BusProcessHistory history : childList) {
if (StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.TODO.getValue()) || StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.RECEIVED.getValue())) {
taskStatus = TaskStatusEnum.TODO.getValue();
break;
}
}
Date endTime = null;
if (StringUtils.equals(taskStatus,TaskStatusEnum.DONE.getValue())) {
// Collections.sort(childList,new Comparator<BusProcessHistory>(){
// @Override
// public int compare(BusProcessHistory o1, BusProcessHistory o2) {
// return o2.getEndTime().compareTo(o1.getEndTime());
// }
// });
endTime = childList.get(childList.size()-1).getEndTime();
}
String userNames = childList.stream().map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(","));
processHistory.setUserName(userNames);
processHistory.setCreateTime(childList.get(0).getCreateTime());
processHistory.setEndTime(endTime);
processHistory.setTaskStatus(taskStatus);
processHistory.setTaskStatusShow(TaskStatusEnum.getLabelByValue(taskStatus));
processHistory.setChildren(childList);
}
}
}
List<BusProcessHistory> results = new ArrayList<>();
if (CollectionUtils.isNotEmpty(firstBphList)) {
results = firstBphList.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.equals(bph.getIsMany(),"2") || (StringUtils.equals(bph.getIsMany(),"1") && CollectionUtils.isNotEmpty(bph.getChildren()))) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
}
return results;
}
@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,String actiProcInstId) {
List<BusProcessHistory> results = new ArrayList<>();
if (CollectionUtils.isNotEmpty(datas)) {
BusProcessName bpn = null;
if (StringUtils.isNotEmpty(actiProcInstId)) {
QueryWrapper<BusProcessName> bpnQueryWrap = new QueryWrapper<>();
bpnQueryWrap.lambda().eq(BusProcessName::getPrcId,actiProcInstId);
bpn = this.busProcessNameService.getOne(bpnQueryWrap);
}
for (BusProcessHistory data : datas) {
if (StringUtils.isNotEmpty(data.getUserId())) {
ResponseMessage<UserVO> assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(data.getUserId());
String userName = "";
if (assignee.getData() != null) {
if (assignee.getData().getDisableFlag() == 1) {
userName = assignee.getData().getUname() + "(" + assignee.getData().getUsid() + ")" + "(已禁用)";
} else {
userName = assignee.getData().getUname() + "(" + assignee.getData().getUsid() + ")";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID",data.getTaskId());
queryWrapper2.orderByDesc("CREATE_TIME");
List<BusProcessEntrust> list1 = iBusProcessEntrustService.list(queryWrapper2);
if(list1.size()>0){
ResponseMessage<UserVO> assignee1 = lawsUserInfoService.getByIdFeignClientWithDisabled(list1.get(0).getUserId());
userName = assignee.getData().getUname()+"("+assignee1.getData().getUname()+" 转办)";
}
} else {
userName = data.getUserId();
}
data.setUserName(userName);
}
data.setTaskStatusShow(TaskStatusEnum.getLabelByValue(data.getTaskStatus()));
String taskKeyShow = "";
if (StringUtils.equals(data.getFlowType(),FlowTypeEnum.BZZQYJLC.getValue())) {
taskKeyShow = StandardCommentNewProcessNodeKeyEnum.getLableByValue(data.getTaskKey());
} else if (StringUtils.equals(data.getFlowType(),FlowTypeEnum.QBZXD_JSBZ.getValue())) {
taskKeyShow = BussLibraryNodeKeyEnum.getLableByValue(data.getTaskKey());
}
data.setTaskKeyShow(taskKeyShow);
if (ObjectUtils.isNotEmpty(bpn)) {
data.setPrcName(bpn.getPrcName());
data.setPrcId(bpn.getPrcId());
data.setPrcNum(bpn.getPrcNum());
data.setBpnId(bpn.getId());
}
}
}
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());
}
String imgShowColor = "0";
if (StringUtils.isNotEmpty(busProcessHistory.getTaskStatus())) {
if (StringUtils.equals(busProcessHistory.getTaskStatus(),TaskStatusEnum.DONE.getValue())) {
imgShowColor = "2";
}
}
busProcessHistory.setImgShowColor(imgShowColor);
busProcessHistory.setImgShowFlag("1");
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());
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(bph, bphQueryWrap);
bphQueryWrap.isNull("task_id");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory busProcessHistory = bphList.get(0);
busProcessHistory.setTaskId(delegateTask.getId());
busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue());
busProcessHistory.setImgShowColor("1");
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"));
busProcessHistory.setImgShowColor("2");
});
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);
}
}
@Override
public List<Map<String,Object>> getImgDataList(BusProcessHistory busProcessHistory) {
List<Map<String, Object>> result = new ArrayList<>();
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
bphQueryWrap.lambda().eq(BusProcessHistory::getImgShowFlag,"1");
bphQueryWrap.orderByAsc("order_num", "create_time");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
this.disposeData(bphList,busProcessHistory.getActiProcInstId());
FlowTypeEnum flowTypeEnum = FlowTypeEnum.getFlowTypeEnumByValue(busProcessHistory.getFlowType());
switch (flowTypeEnum) {
case BZZQYJLC:
result = this.getBzzqyjlcImgDataList(bphList);
break;
case QBZXD_JSBZ:
result = this.getQbzxdJsbzImgDataList(bphList);
break;
default:
break;
}
return result;
}
@Override
public void changeUserIdByTaskId(String taskId,String afterUserId,String frontUserId) {
if (StringUtils.isNotEmpty(taskId) && StringUtils.isNotEmpty(afterUserId) && StringUtils.isNotEmpty(frontUserId)) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskId, taskId);
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,frontUserId);
BusProcessHistory bph = this.getOne(bphQueryWrap);
if (ObjectUtils.isNotEmpty(bph)) {
bph.setUserId(afterUserId);
this.updateById(bph);
}
}
}
@Override
public void updateImgShowColor(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList,String imgShowColor) {
if (CollectionUtils.isEmpty(inTaskKeyList) && CollectionUtils.isEmpty(notInTaskKeyList)) {
throw new ActivitiException("参数有误!");
}
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, actiProcInstId);
if (CollectionUtils.isNotEmpty(inTaskKeyList)) {
bphQueryWrap.lambda().in(BusProcessHistory::getTaskKey,inTaskKeyList);
}
if (CollectionUtils.isNotEmpty(notInTaskKeyList)) {
bphQueryWrap.lambda().notIn(BusProcessHistory::getTaskKey,notInTaskKeyList);
}
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
for (BusProcessHistory bph : bphList) {
bph.setImgShowColor(imgShowColor);
}
this.updateBatchById(bphList);
}
}
@Override
public void updateImgShowFlag(String actiProcInstId, List<String> inTaskKeyList, List<String> notInTaskKeyList, String imgShowFlag) {
if (CollectionUtils.isEmpty(inTaskKeyList) && CollectionUtils.isEmpty(notInTaskKeyList)) {
throw new ActivitiException("参数有误!");
}
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, actiProcInstId);
if (CollectionUtils.isNotEmpty(inTaskKeyList)) {
bphQueryWrap.lambda().in(BusProcessHistory::getTaskKey,inTaskKeyList);
}
if (CollectionUtils.isNotEmpty(notInTaskKeyList)) {
bphQueryWrap.lambda().notIn(BusProcessHistory::getTaskKey,notInTaskKeyList);
}
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(bphList)) {
for (BusProcessHistory bph : bphList) {
bph.setImgShowFlag(imgShowFlag);
}
this.updateBatchById(bphList);
}
}
/**
* 获取标准征求意见流程图数据
* @param bphList
* @return
*/
private List<Map<String, Object>> getBzzqyjlcImgDataList(List<BusProcessHistory> bphList) {
List<Map<String, Object>> result = new ArrayList<>();
List<StandardCommentNewProcessNodeKeyEnum> standardCommentNewProcessNodeKeyEnum = StandardCommentNewProcessNodeKeyEnum.getStandardCommentNewProcessNodeKeyEnum();
for (StandardCommentNewProcessNodeKeyEnum nodeKeyEnum : standardCommentNewProcessNodeKeyEnum) {
Map<String, Object> tasksMap = this.getTasksMap(
bphList,
nodeKeyEnum.getValue(),
nodeKeyEnum.getLable()
);
if (ObjectUtils.isNotEmpty(tasksMap)) {
result.add(tasksMap);
}
}
return result;
}
/**
* 获取企标制修订-技术标准流程图数据
* @param bphList
* @return
*/
private List<Map<String, Object>> getQbzxdJsbzImgDataList(List<BusProcessHistory> bphList) {
List<Map<String, Object>> result = new ArrayList<>();
List<BussLibraryNodeKeyEnum> bussLibraryNodeKeyEnum = BussLibraryNodeKeyEnum.getBussLibraryNodeKeyEnum();
for (BussLibraryNodeKeyEnum nodeKeyEnum : bussLibraryNodeKeyEnum) {
Map<String, Object> tasksMap = this.getTasksMap(
bphList,
nodeKeyEnum.getValue(),
nodeKeyEnum.getLable()
);
if (ObjectUtils.isNotEmpty(tasksMap)) {
result.add(tasksMap);
}
}
return result;
}
private Map<String, Object> getTasksMap(List<BusProcessHistory> bphList,String taskKey,String taskKeyName) {
Map<String, Object> tasksMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(bphList)) {
List<BusProcessHistory> bphListByTaskKey = bphList.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.equals(bph.getTaskKey(), taskKey)) {
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
String taskStatus = "";
String userNames = "";
if (CollectionUtils.isNotEmpty(bphListByTaskKey)) {
userNames = bphListByTaskKey.stream().filter(bph -> {
boolean flag = false;
if (StringUtils.isNotEmpty(bph.getUserName())) {
flag = true;
}
return flag;
}).map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(","));
taskStatus = TaskStatusEnum.DONE.getValue();
for (BusProcessHistory busProcessHistory : bphListByTaskKey) {
if (StringUtils.equals(busProcessHistory.getIsMany(),"1")) {
List<BusProcessHistory> childList = bphList.stream().filter(bph -> StringUtils.equals(busProcessHistory.getId(), bph.getManyPId())).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(childList)) {
for (BusProcessHistory history : childList) {
busProcessHistory.setTaskId(busProcessHistory.getId());
busProcessHistory.setTaskStatus(TaskStatusEnum.DONE.getValue());
// if (StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.TODO.getValue()) || StringUtils.equals(history.getTaskStatus(),TaskStatusEnum.RECEIVED.getValue())) {
// busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue());
// busProcessHistory.setTaskId(null);
// break;
// }
if (StringUtils.equals(history.getImgShowColor(), "2")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
} else if (StringUtils.equals(history.getImgShowColor(), "1")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
break;
} else if (StringUtils.equals(history.getImgShowColor(), "0")) {
busProcessHistory.setImgShowColor(history.getImgShowColor());
continue;
}
}
}
}
// if (StringUtils.isEmpty(busProcessHistory.getTaskId())
// || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.TODO.getValue())
// || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.RECEIVED.getValue())) {
// taskStatus = TaskStatusEnum.TODO.getValue();
// break;
// }
// 如果是蓝色,设置为已办,接着往下循环,如果是绿色,设置为待办,直接终止循环,如果是白色,接着往下循环。
// if (StringUtils.equals(busProcessHistory.getImgShowColor(), "2")) {
// taskStatus = TaskStatusEnum.DONE.getValue();
// } else if (StringUtils.equals(busProcessHistory.getImgShowColor(), "1")) {
// taskStatus = TaskStatusEnum.TODO.getValue();
// break;
// } else if (StringUtils.equals(busProcessHistory.getImgShowColor(), "0")) {
// taskStatus = "";
// continue;
// }
}
Map<String, List<BusProcessHistory>> map = bphListByTaskKey.stream().collect(Collectors.groupingBy(BusProcessHistory::getImgShowColor));
if (map.containsKey("0")) {
taskStatus = "";
}
// 如果该节点数据,存在绿色展示数据,则设置为绿色。
if (map.containsKey("2")) {
taskStatus = TaskStatusEnum.DONE.getValue();
}
// 如果该节点数据,存在绿色展示数据,则设置为绿色。
if (map.containsKey("1")) {
taskStatus = TaskStatusEnum.TODO.getValue();
}
}
tasksMap.put("taskKey", taskKey);
tasksMap.put("taskKeyName", taskKeyName);
tasksMap.put("userNames", userNames);
// 任务状态
tasksMap.put("taskStatus", taskStatus);
tasksMap.put("taskList", bphListByTaskKey);
}
return tasksMap;
}
}
@@ -24,6 +24,7 @@ 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_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
@@ -73,4 +74,13 @@ public class WebServiceOAController extends BaseAction {
return webServiceOAService.sendTodo(new BusProcessNew());
}
@ApiOperation("代主服务发送OA请求")
@PostMapping("/replaceSendOA")
public Wrapper<String> replaceSendOA(@RequestBody SendOAContent sendOAContent) {
logger.info("收到主服务请求------------------------------------");
logger.info("请求参数:{}", JSON.toJSONString(sendOAContent));
String result = webServiceOAService.replaceSendOA(sendOAContent);
return WrapMapper.ok(result);
}
}
@@ -2,12 +2,11 @@ package com.ydw.bat.wkflow.business_oa.webService.service;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import org.activiti.engine.task.Task;
import java.util.List;
public interface WebServiceOAService {
void deleteOAByPid(String pId);
@@ -26,4 +25,5 @@ public interface WebServiceOAService {
NotifyTodoAppResult sendToBeRead(BusProcessNew busProcessNew) throws Exception;
String replaceSendOA(SendOAContent sendOAContent);
}
@@ -16,6 +16,7 @@ import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.HEAD;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.JsonSend;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
import com.ydw.bat.wkflow.business_oa.webService.todoContent.SendOAContent;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult;
import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -560,5 +561,10 @@ public class WebServiceOAServiceImpl implements WebServiceOAService {
}
return notifyTodoAppResult;
}
@Override
public String replaceSendOA(SendOAContent sendOAContent) {
return okHttpUtil.postForJson(sendOAContent.getUrl(), sendOAContent.getJson(), sendOAContent.getHeaderParams());
}
}
@@ -0,0 +1,21 @@
package com.ydw.bat.wkflow.business_oa.webService.todoContent;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @author wxyclub
* @description
* @date 2024-03-31
*/
@Data
public class SendOAContent implements Serializable {
String url;
String json;
Map<String, String> headerParams;
}
@@ -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,152 @@ 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);
// 审定
if (StringUtils.isNotEmpty(json.getString("directorUser"))) {
// 审定节点父节点信息
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(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getOrderNum());
sdPBph.setIsSub("2");
sdPBph.setIsMany("1");
bphList.add(sdPBph);
List<String> directorUserList = Arrays.asList(json.getString("directorUser").split(","));
for (String sdUserId : directorUserList) {
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(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getOrderNum());
sdBph.setIsSub("2");
sdBph.setIsMany("1");
sdBph.setManyPId(sdPBphId);
bphList.add(sdBph);
}
}
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,44 @@ 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());
// 退回到了 意见处理,将会签、审核、审定、批准 节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
}
}
@@ -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,48 @@ 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);
yjfkBph.setParentUserId(delegateTask.getAssignee());
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);
}
}
@@ -4,13 +4,18 @@ 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 com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
@@ -111,5 +116,43 @@ public class Step2After implements TaskListener {
busBean.save(busProcessNewNext);
}
}
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
// 根据当前taskId
QueryWrapper<BusProcessHistory> queryWrapByTaskId = new QueryWrapper<>();
queryWrapByTaskId.lambda().eq(BusProcessHistory::getTaskId,delegateTask.getId());
queryWrapByTaskId.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
BusProcessHistory bphByTaskId = bphService.list(queryWrapByTaskId).get(0);
// 根据分发人用户id、流程实例id,流程节点定义key,任务状态为待办 查询 , 如果存在待办,则不做任何操作,如果不存在,则给分发人创建一条意见汇总审批的任务。
String parentUserId = bphByTaskId.getParentUserId();
QueryWrapper<BusProcessHistory> queryWrap = new QueryWrapper<>();
queryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
queryWrap.lambda().eq(BusProcessHistory::getParentUserId,parentUserId);
queryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
queryWrap.lambda().eq(BusProcessHistory::getTaskStatus, TaskStatusEnum.TODO.getValue());
queryWrap.lambda().ne(BusProcessHistory::getTaskId,delegateTask.getId());
int count = bphService.count(queryWrap);
if (count == 0) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjhzspBph.setUserId(parentUserId);
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);
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,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,22 @@ 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.BussLibraryNodeKeyEnum;
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 +100,66 @@ 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());
// 退回到了 意见汇总报批,将意见审批节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
} 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");
glyBph.setParentUserId(delegateTask.getAssignee());
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,40 @@ 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());
// 退回到了 意见汇总报批,将意见审批、管理员节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
}
}
@@ -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,78 @@ 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);
// 退回到了 意见处理,将会签节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
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,29 @@ 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;
import java.util.stream.Collectors;
//新征求意见流程!!!!!
public class Step8After implements TaskListener {
@@ -114,5 +123,91 @@ 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)) {
// 删除之前审定节点的信息。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> oldSdBphList = bphService.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(oldSdBphList)) {
if (oldSdBphList.size() > 1) {
List<String> oldSdBphIdList = oldSdBphList.stream().map(BusProcessHistory::getId).distinct().collect(Collectors.toList());
bphService.removeByIds(oldSdBphIdList);
}
}
// 审定节点父节点信息
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);
// 退回到了 意见处理,将会签、审核节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
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,74 @@ 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);
// 退回到了 意见处理,将会签、审核、审定节点 设置为在流程图展示空白
List<String> taskKeyList = new ArrayList<>();
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue());
taskKeyList.add(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),taskKeyList,null,"0");
}
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);
}
}
@@ -8,6 +8,10 @@ import com.ydw.bat.wkflow.business_main.datas.mapper.EsTechRelationMapper;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.listener.bussLibrary.Utils.FlowFinishEnum;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
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 net.sf.json.JSONArray;
import net.sf.json.util.JSONTokener;
import org.activiti.engine.ActivitiException;
@@ -16,13 +20,12 @@ import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
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;
import java.util.*;
/**
* 发起企标制修订流程后
@@ -44,8 +47,12 @@ public class BLApplicantAfter implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -191,9 +198,211 @@ public class BLApplicantAfter implements TaskListener{
}
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
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.QBZXD_JSBZ.getValue());
qcBph.setIsSub("2");
qcBph.setTaskStatus(TaskStatusEnum.DONE.getValue());
qcBph.setEndTime(new Date());
qcBph.setCommitText(json.getString("commentText"));
qcBph.setIsMany("2");
qcBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY1.getOrderNum());
bphList.add(qcBph);
List<String> qcUserIdList = Arrays.asList(json.getString("qcUserId").split(","));
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory qbbxPBph = new BusProcessHistory();
String qbbxPBphId = UUID.randomUUID().toString();
qbbxPBph.setId(qbbxPBphId);
qbbxPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getOrderNum());
qbbxPBph.setIsSub("2");
qbbxPBph.setIsMany("1");
bphList.add(qbbxPBph);
for (String qcUserId : qcUserIdList) {
// 企标编写子节点信息
BusProcessHistory qbbxBph = new BusProcessHistory();
qbbxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxBph.setUserId(qcUserId);
qbbxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getOrderNum());
qbbxBph.setIsSub("2");
qbbxBph.setIsMany("1");
qbbxBph.setManyPId(qbbxPBphId);
bphList.add(qbbxBph);
}
}
// 企标编写汇总
String hzUserId = json.getString("hzUserId");
BusProcessHistory qbbxhzBph = new BusProcessHistory();
qbbxhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxhzBph.setUserId(hzUserId);
qbbxhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
qbbxhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxhzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getOrderNum());
qbbxhzBph.setIsSub("2");
qbbxhzBph.setIsMany("2");
bphList.add(qbbxhzBph);
// 标准化初审
String bzhUserId = json.getString("bzhUserId");
BusProcessHistory bzhcsBph = new BusProcessHistory();
bzhcsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzhcsBph.setUserId(bzhUserId);
bzhcsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bzhcsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzhcsBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getOrderNum());
bzhcsBph.setIsSub("2");
bzhcsBph.setIsMany("2");
bphList.add(bzhcsBph);
// 征求意见
List<String> hqUserIdList = Arrays.asList(json.getString("hqUserId").split(","));
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory zqyjPBph = new BusProcessHistory();
String zqyjPBphId = UUID.randomUUID().toString();
zqyjPBph.setId(zqyjPBphId);
zqyjPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjPBph.setIsSub("2");
zqyjPBph.setIsMany("1");
bphList.add(zqyjPBph);
for (String hqUserId : hqUserIdList) {
BusProcessHistory zqyjBph = new BusProcessHistory();
zqyjBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjBph.setUserId(hqUserId);
zqyjBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjBph.setIsSub("2");
zqyjBph.setIsMany("1");
zqyjBph.setManyPId(zqyjPBphId);
bphList.add(zqyjBph);
}
}
// 技术委员会评审、评审意见修改
String xdUserId = json.getString("xdUserId");
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(xdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getOrderNum());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
bphList.add(psyjxgBph);
// 标准化复审
String fggcsUserId = json.getString("fggcsUserId");
BusProcessHistory hzhfsBph = new BusProcessHistory();
hzhfsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hzhfsBph.setUserId(fggcsUserId);
hzhfsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
hzhfsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
hzhfsBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getOrderNum());
hzhfsBph.setIsSub("2");
hzhfsBph.setIsMany("2");
bphList.add(hzhfsBph);
// 起草单位高级经理审核
String jsfzrUserId = json.getString("jsfzrUserId");
BusProcessHistory qcdwgjjlshBph = new BusProcessHistory();
qcdwgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcdwgjjlshBph.setUserId(jsfzrUserId);
qcdwgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qcdwgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qcdwgjjlshBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getOrderNum());
qcdwgjjlshBph.setIsSub("2");
qcdwgjjlshBph.setIsMany("2");
bphList.add(qcdwgjjlshBph);
// 标准法规部高级经理审核
String bzUserId = json.getString("bzUserId");
BusProcessHistory bzfgbgjjlshBph = new BusProcessHistory();
bzfgbgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzfgbgjjlshBph.setUserId(bzUserId);
bzfgbgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
bzfgbgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzfgbgjjlshBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getOrderNum());
bzfgbgjjlshBph.setIsSub("2");
bzfgbgjjlshBph.setIsMany("2");
bphList.add(bzfgbgjjlshBph);
// 审定-起草单位中心主任
String fzrUserId = json.getString("fzrUserId");
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(fzrUserId);
sdBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
sdBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
sdBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getOrderNum());
sdBph.setIsSub("2");
sdBph.setIsMany("2");
bphList.add(sdBph);
// 批准
String zhrUserId = json.getString("zhrUserId");
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
// 培训
String pxUserId = json.getString("pxUserId");
BusProcessHistory pxBph = new BusProcessHistory();
pxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pxBph.setUserId(pxUserId);
pxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
pxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pxBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getOrderNum());
pxBph.setIsSub("2");
pxBph.setIsMany("2");
bphList.add(pxBph);
// 发布
String fbUserId = json.getString("fbUserId");
BusProcessHistory fbBph = new BusProcessHistory();
fbBph.setActiProcInstId(delegateTask.getProcessInstanceId());
fbBph.setUserId(fbUserId);
fbBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY13.getValue());
fbBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
fbBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY13.getOrderNum());
fbBph.setIsSub("2");
fbBph.setIsMany("2");
bphList.add(fbBph);
bphService.insertBatch(bphList);
}
}
@@ -3,24 +3,23 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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 org.apache.tomcat.util.digester.ArrayStack;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* 重新发起企标制修订流程后
@@ -36,7 +35,12 @@ public class BLApplicantC1After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -139,6 +143,46 @@ public class BLApplicantC1After implements TaskListener{
// 生成 模板
// busProcessModelHisService.saveBussTemplateFile(object,delegateTask.getProcessInstanceId());
this.addBusProcessHistory(object,delegateTask);
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
List<BusProcessHistory> bphList = new ArrayList<>();
List<String> qcUserIdList = Arrays.asList(json.getString("qcUserId").split(","));
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 企标编写节点父节点信息
BusProcessHistory qbbxPBph = new BusProcessHistory();
String qbbxPBphId = UUID.randomUUID().toString();
qbbxPBph.setId(qbbxPBphId);
qbbxPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
qbbxPBph.setOrderNum(orderNum + 1);
qbbxPBph.setIsSub("2");
qbbxPBph.setIsMany("1");
bphList.add(qbbxPBph);
for (String qcUserId : qcUserIdList) {
// 企标编写子节点信息
BusProcessHistory qbbxBph = new BusProcessHistory();
qbbxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxBph.setUserId(qcUserId);
qbbxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue());
qbbxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxBph.setOrderNum(orderNum + 1);
qbbxBph.setIsSub("2");
qbbxBph.setIsMany("1");
qbbxBph.setManyPId(qbbxPBphId);
bphList.add(qbbxBph);
}
delegateTask.setVariable("qcUserList",qcUserIdList);
}
bphService.insertBatch(bphList);
}
private String verifyObj(String str){
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BLApplicantC1Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibraryC1?prcType=buss1");
String link = "bussLibraryC1?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibraryC1&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
@@ -30,7 +35,12 @@ public class BussLibrary10After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -94,9 +104,79 @@ public class BussLibrary10After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer fzrFlag = (Integer) delegateTask.getVariable("fzrFlag");
if (fzrFlag == 0) {
String zhrUserId = json.getString("zhrUserId");
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, zhrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.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(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else if (fzrFlag == 1) {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了 重新技术委员会评审 标准化复审、起草单位高级经理审核、标准法规部高级经理审核、审定 节点,设置为在流程图展示空白
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary10Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary10?prcType=buss1");
String link = "bussLibrary10?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary10&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
@@ -30,7 +35,12 @@ public class BussLibrary11After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -95,9 +105,79 @@ public class BussLibrary11After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer zrFlag = (Integer) delegateTask.getVariable("zrFlag");
if (zrFlag == 0) {
String pxUserId = json.getString("pxUserId");
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, pxUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 培训
BusProcessHistory pxBph = new BusProcessHistory();
pxBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pxBph.setUserId(pxUserId);
pxBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY12.getValue());
pxBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pxBph.setIsSub("2");
pxBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pxBph.setOrderNum(orderNum + 1);
bphList.add(pxBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else if (zrFlag == 1) {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了 重新技术委员会评审 标准化复审、起草单位高级经理审核、标准法规部高级经理审核、审定、批准 节点,设置为在流程图展示空白
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary11Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary11?prcType=buss1");
String link = "bussLibrary11?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary11&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -13,6 +13,7 @@ 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.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
@@ -30,7 +31,12 @@ public class BussLibrary12After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -5,11 +5,14 @@ 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.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 org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -33,10 +36,21 @@ public class BussLibrary12Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary12?prcType=buss1");
String link = "bussLibrary12?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary12&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -18,6 +18,7 @@ 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.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
@@ -39,7 +40,12 @@ public class BussLibrary13After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary13Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary13?prcType=buss1");
String link = "bussLibrary13?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary13&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,16 +4,22 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
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;
@@ -34,8 +40,12 @@ public class BussLibrary2After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -107,9 +117,41 @@ public class BussLibrary2After implements TaskListener{
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String hzUserId = json.getString("hzUserId");
// 如果存在企标编写汇总节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,hzUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 企标编写汇总
BusProcessHistory qbbxhzBph = new BusProcessHistory();
qbbxhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qbbxhzBph.setUserId(hzUserId);
qbbxhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
qbbxhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qbbxhzBph.setIsSub("2");
qbbxhzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
qbbxhzBph.setOrderNum(orderNum + 1);
bphList.add(qbbxhzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -3,12 +3,16 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.Date;
import java.util.List;
/**
@@ -38,8 +42,17 @@ public class BussLibrary2Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary2?prcType=buss1");
String link = "bussLibrary2?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary2&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
@@ -63,5 +76,8 @@ public class BussLibrary2Before implements TaskListener{
// hisService.saveOrUpdate(modelHis);
// }
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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;
@@ -32,7 +37,12 @@ public class BussLibrary3After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -95,9 +105,41 @@ public class BussLibrary3After implements TaskListener{
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String bzhUserId = json.getString("bzhUserId");
// 如果存在标准化初审节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzhUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准化初审
BusProcessHistory bzhcsBph = new BusProcessHistory();
bzhcsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzhcsBph.setUserId(bzhUserId);
bzhcsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bzhcsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzhcsBph.setIsSub("2");
bzhcsBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY3.getValue());
bzhcsBph.setOrderNum(orderNum + 1);
bphList.add(bzhcsBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -5,11 +5,14 @@ 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.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 org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -42,8 +45,17 @@ public class BussLibrary3Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary3?prcType=buss1");
String link = "bussLibrary3?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary3&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
@@ -66,5 +78,8 @@ public class BussLibrary3Before implements TaskListener{
// modelHis.setEditFilePath(fileUrl);
// hisService.save(modelHis);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,21 +3,27 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
/**
* 初审,标准化员审批后
@@ -31,7 +37,12 @@ public class BussLibrary4After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -123,9 +134,95 @@ public class BussLibrary4After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer bzhFlag = (Integer) delegateTask.getVariable("bzhFlag");
if (bzhFlag == 1) {
String hzUserId = json.getString("hzUserId");
// 如果存在 重新企标编写汇总 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,hzUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新企标编写汇总
BusProcessHistory cxqbbzhzBph = new BusProcessHistory();
cxqbbzhzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
cxqbbzhzBph.setUserId(hzUserId);
cxqbbzhzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue());
cxqbbzhzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
cxqbbzhzBph.setIsSub("2");
cxqbbzhzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
cxqbbzhzBph.setOrderNum(orderNum + 1);
bphList.add(cxqbbzhzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
// 将标准化初审节点 设置为白色节点。
List<String> bzhcsTaskKeyList = new ArrayList<>();
bzhcsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),bzhcsTaskKeyList,null,"0");
} else {
// 征求意见
List<String> hqUserIdList = Arrays.asList(json.getString("hqUserId").split(","));
if (CollectionUtils.isNotEmpty(hqUserIdList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
String zqyjPBphId = UUID.randomUUID().toString();
for (String userId : hqUserIdList) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
BusProcessHistory zqyjBph = new BusProcessHistory();
zqyjBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjBph.setUserId(userId);
zqyjBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjBph.setIsSub("2");
zqyjBph.setIsMany("1");
zqyjBph.setManyPId(zqyjPBphId);
zqyjBph.setOrderNum(orderNum + 1);
bphList.add(zqyjBph);
}
}
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory zqyjPBph = new BusProcessHistory();
zqyjPBph.setId(zqyjPBphId);
zqyjPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
zqyjPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
zqyjPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
zqyjPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum());
zqyjPBph.setIsSub("2");
zqyjPBph.setIsMany("1");
zqyjPBph.setOrderNum(orderNum + 1);
bphList.add(zqyjPBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary4Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary4?prcType=buss1");
String link = "bussLibrary4?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary4&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,18 +4,15 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
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.IBusProcessEvaluationHisService;
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_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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;
@@ -119,9 +116,41 @@ public class BussLibrary5After implements TaskListener{
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String xdUserId = json.getString("xdUserId");
// 如果存在 技术委员会评审、评审意见修改 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,xdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(xdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -3,11 +3,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -37,10 +40,21 @@ public class BussLibrary5Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary5?prcType=buss1");
String link = "bussLibrary5?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary5&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
@@ -30,7 +35,12 @@ public class BussLibrary6After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -100,6 +110,7 @@ public class BussLibrary6After implements TaskListener{
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(object,delegateTask);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
}
@@ -107,4 +118,35 @@ public class BussLibrary6After implements TaskListener{
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String fggcsUserId = json.getString("fggcsUserId");
// 如果存在 技术委员会评审、评审意见修改 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,fggcsUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准化复审
BusProcessHistory hzhfsBph = new BusProcessHistory();
hzhfsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hzhfsBph.setUserId(fggcsUserId);
hzhfsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
hzhfsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
hzhfsBph.setIsSub("2");
hzhfsBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY6.getValue());
hzhfsBph.setOrderNum(orderNum + 1);
bphList.add(hzhfsBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -5,11 +5,14 @@ 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.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 org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -43,10 +46,21 @@ public class BussLibrary6Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary5?prcType=buss1");
String link = "bussLibrary6?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary6&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -4,18 +4,15 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
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.IBusProcessEvaluationHisService;
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_main.datas.entity.*;
import com.ydw.bat.wkflow.business_main.datas.service.*;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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;
@@ -38,7 +35,12 @@ public class BussLibrary7After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -118,6 +120,8 @@ public class BussLibrary7After implements TaskListener{
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
// 存储当前节点意见
// BusProcessNew busProcessNew = new BusProcessNew();
// busProcessNew.setMsgType("clause");
@@ -154,4 +158,69 @@ public class BussLibrary7After implements TaskListener{
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer fs7Flag = (Integer) delegateTask.getVariable("fs7Flag");
if (fs7Flag == 0) {
String jsfzrUserId = json.getString("jsfzrUserId");
// 如果存在 起草单位高级经理审核 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,jsfzrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 起草单位高级经理审核
BusProcessHistory qcdwgjjlshBph = new BusProcessHistory();
qcdwgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
qcdwgjjlshBph.setUserId(jsfzrUserId);
qcdwgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qcdwgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
qcdwgjjlshBph.setIsSub("2");
qcdwgjjlshBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qcdwgjjlshBph.setOrderNum(orderNum + 1);
bphList.add(qcdwgjjlshBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}else {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
// 将 标准化复审 节点 设置为白色节点。
List<String> bzhfsTaskKeyList = new ArrayList<>();
bzhfsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),bzhfsTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -31,9 +34,23 @@ public class BussLibrary7Before implements TaskListener{
busBean.saveOrUpdate(one1);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary7?prcType=buss1");
String link = "bussLibrary7?prcType=buss1";
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary7&oldAndNew=new";
one1.setLink(link);
} else {
one1.setLink(link);
}
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
@@ -30,7 +35,12 @@ public class BussLibrary8After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -95,9 +105,77 @@ public class BussLibrary8After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer jsfzrFlag = (Integer) delegateTask.getVariable("jsfzrFlag");
if (jsfzrFlag == 0) {
String bzUserId = json.getString("bzUserId");
// 如果存在 标准法规部高级经理审核 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准法规部高级经理审核
BusProcessHistory bzfgbgjjlshBph = new BusProcessHistory();
bzfgbgjjlshBph.setActiProcInstId(delegateTask.getProcessInstanceId());
bzfgbgjjlshBph.setUserId(bzUserId);
bzfgbgjjlshBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
bzfgbgjjlshBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
bzfgbgjjlshBph.setIsSub("2");
bzfgbgjjlshBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
bzfgbgjjlshBph.setOrderNum(orderNum + 1);
bphList.add(bzfgbgjjlshBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}else {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
// 将 标准化复审、起草单位高级经理审核 节点 设置为白色节点。
List<String> bzhfsTaskKeyList = new ArrayList<>();
bzhfsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bzhfsTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),bzhfsTaskKeyList,null,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary8Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary8?prcType=buss1");
String link = "bussLibrary8?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary8&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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.util.ArrayList;
@@ -30,7 +35,12 @@ public class BussLibrary9After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
@@ -149,9 +159,111 @@ public class BussLibrary9After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer bzFlag = (Integer) delegateTask.getVariable("bzFlag");
if (bzFlag == 0) {
String fzrUserId = json.getString("fzrUserId");
// 如果存在 审定-起草单位中心主任 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, fzrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 审定-起草单位中心主任
BusProcessHistory sdBph = new BusProcessHistory();
sdBph.setActiProcInstId(delegateTask.getProcessInstanceId());
sdBph.setUserId(fzrUserId);
sdBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
sdBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
sdBph.setIsSub("2");
sdBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
sdBph.setOrderNum(orderNum + 1);
bphList.add(sdBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else if (bzFlag == 1) {
// 用户退回时 选择了其他问题
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cxdUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新技术委员会评审、评审意见修改
BusProcessHistory psyjxgBph = new BusProcessHistory();
psyjxgBph.setActiProcInstId(delegateTask.getProcessInstanceId());
psyjxgBph.setUserId(cxdUserId);
psyjxgBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
psyjxgBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
psyjxgBph.setIsSub("2");
psyjxgBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
psyjxgBph.setOrderNum(orderNum + 1);
bphList.add(psyjxgBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了 重新技术委员会评审 标准化复审、起草单位高级经理审核、标准法规部高级经理审核 节点,设置为在流程图展示空白
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
} else if (bzFlag == 2) {
// 用户退回时 选择了质量问题
String cfqUserId = (String) delegateTask.getVariable("cfqUserId");
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, cfqUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 重新起草
BusProcessHistory cxqcBph = new BusProcessHistory();
cxqcBph.setActiProcInstId(delegateTask.getProcessInstanceId());
cxqcBph.setUserId(cfqUserId);
cxqcBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
cxqcBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
cxqcBph.setIsSub("2");
cxqcBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
cxqcBph.setOrderNum(orderNum + 1);
bphList.add(cxqcBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
// 退回到了重新起草节点,需要将除了起草、重新起草其他的节点,全部设置为 流程图中展示空。
List<String> qczhTaskKeyList = new ArrayList<>();
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY1.getValue());
qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY_C1.getValue());
bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),null,qczhTaskKeyList,"0");
}
}
}
@@ -2,11 +2,14 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.List;
@@ -30,10 +33,21 @@ public class BussLibrary9Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibrary9?prcType=buss1");
String link = "bussLibrary9?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibrary9&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
}
}
@@ -3,16 +3,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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;
@@ -32,7 +37,12 @@ public class BussLibraryC3After implements TaskListener {
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject objectNew = JSONObject.parseObject(datas.getFormValsJson());
// delegateTask.setVariable("objectJson",object);
@@ -100,9 +110,43 @@ public class BussLibraryC3After implements TaskListener {
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
this.addBusProcessHistory(objectNew,delegateTask);
}
private String verifyObj(String str) {
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String bzhUserId = json.getString("bzhUserId");
// 如果存在标准化初审节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,bzhUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY4.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(bzhUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,12 +2,17 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.ArrayList;
import java.util.List;
/**
@@ -30,10 +35,26 @@ public class BussLibraryC3Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibraryC3?prcType=buss1");
String link = "bussLibraryC3?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibraryC3&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
// // 标准化初审节点,设置为在流程图展示空白
// List<String> qczhTaskKeyList = new ArrayList<>();
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue());
// bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
@@ -2,16 +2,21 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
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.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.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
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;
@@ -31,7 +36,12 @@ public class BussLibraryC6After implements TaskListener{
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
queryWrapper.orderByDesc("CREATE_TIME");
List<Datas> datasList = datasService.list(queryWrapper);
if (CollectionUtils.isEmpty(datasList)) {
throw new ActivitiException("t_datas表中ACTI_TASK_ID为"+delegateTask.getId()+"的数据不存在");
}
Datas datas = datasList.get(0);
JSONObject objectNew = JSONObject.parseObject(datas.getFormValsJson());
// delegateTask.setVariable("objectJson",object);
@@ -108,9 +118,42 @@ public class BussLibraryC6After implements TaskListener{
BussUtils.evalSave(delegateTask, objectNew, prcName, delegateTask.getAssignee());
}
}
this.addBusProcessHistory(objectNew,delegateTask);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
String fggcsUserId = json.getString("fggcsUserId");
// 如果存在 技术委员会评审、评审意见修改 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,fggcsUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 标准化复审
BusProcessHistory hzhfsBph = new BusProcessHistory();
hzhfsBph.setActiProcInstId(delegateTask.getProcessInstanceId());
hzhfsBph.setUserId(fggcsUserId);
hzhfsBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
hzhfsBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
hzhfsBph.setIsSub("2");
hzhfsBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY_C6.getValue());
hzhfsBph.setOrderNum(orderNum + 1);
bphList.add(hzhfsBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
@@ -2,12 +2,17 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
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;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricProcessInstance;
import java.util.ArrayList;
import java.util.List;
/**
@@ -30,10 +35,30 @@ public class BussLibraryC6Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
ProcessEngine processEngine = SpringContextUtil.getBean(ProcessEngine.class);
HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(delegateTask.getProcessInstanceId())//使用流程实例ID查询
.singleResult();
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("bussLibraryC6?prcType=buss1");
String link = "bussLibraryC6?prcType=buss1";
if (pi != null && pi.getStartTime().after(BussUtils.oldAndNew)) {
link = link + "&taskDefinitionKey=bussLibraryC6&oldAndNew=new";
}
one1.setLink(link);
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
bphService.updateTaskInfo(delegateTask);
//
// // 标准化复审节点,设置为在流程图展示空白
// List<String> qczhTaskKeyList = new ArrayList<>();
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY7.getValue());
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY8.getValue());
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY9.getValue());
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
// qczhTaskKeyList.add(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
// bphService.updateImgShowColor(delegateTask.getProcessInstanceId(),qczhTaskKeyList,null,"0");
}
}
@@ -24,6 +24,9 @@ import java.util.List;
*/
public class BussUtils {
// 初始化一个时间,用于判断数据是否为新数据,2024-04-01 00:00:00后的数据为新数据
public static final Date oldAndNew = new Date(1711900800000L);
public static void evalSave(DelegateTask delegateTask, JSONObject object, String prcName, String localUser) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
IBusProcessEvaluationHisService evaluationHisService = SpringContextUtil.getBean(IBusProcessEvaluationHisService.class);
@@ -0,0 +1,73 @@
package com.ydw.bat.wkflow.util.enums;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
/**
* 企标制修订-技术标准-任务节点定义key
*/
public enum BussLibraryNodeKeyEnum {
BUSS_LIBRARY1("BussLibrary1","起草",1,true),
BUSS_LIBRARY2("BussLibrary2","企标编写",2,true),
BUSS_LIBRARY3("BussLibrary3","企标编写汇总",3,true),
BUSS_LIBRARY4("BussLibrary4","标准化初审",4,true),
BUSS_LIBRARY_C3("BussLibraryC3","重新企标编写汇总",5,false),
BUSS_LIBRARY5("BussLibrary5","征求意见",6,true),
BUSS_LIBRARY6("BussLibrary6","技术委员会评审、评审意见修改",7,true),
BUSS_LIBRARY7("BussLibrary7","标准化复审",8,true),
BUSS_LIBRARY_C6("BussLibraryC6","重新技术委员会评审、评审意见修改",9,false),
BUSS_LIBRARY8("BussLibrary8","起草单位高级经理审核",10,true),
BUSS_LIBRARY9("BussLibrary9","标准法规部高级经理审核",11,true),
BUSS_LIBRARY_C1("BussLibraryC1","重新起草",12,false),
BUSS_LIBRARY10("BussLibrary10","审定",13,true),
BUSS_LIBRARY11("BussLibrary11","批准",14,true),
BUSS_LIBRARY12("BussLibrary12","主起草人培训",15,true),
BUSS_LIBRARY13("BussLibrary13","发布",16,true),
;
private String value;
private String lable;
private Integer orderNum;
private boolean showFlag; // 节点是否展示,true展示,false
private BussLibraryNodeKeyEnum(String value, String lable, Integer orderNum,boolean showFlag) {
this.value = value;
this.lable = lable;
this.orderNum = orderNum;
this.showFlag = showFlag;
}
public String getValue() {
return value;
}
public String getLable() {
return lable;
}
public Integer getOrderNum() {
return orderNum;
}
public static String getLableByValue(String value){
String result = "";
for (BussLibraryNodeKeyEnum nodeKeyEnum : BussLibraryNodeKeyEnum.values()) {
if (StringUtils.equals(nodeKeyEnum.getValue(),value)) {
result = nodeKeyEnum.getLable();
break;
}
}
return result;
}
public static List<BussLibraryNodeKeyEnum> getBussLibraryNodeKeyEnum(){
List<BussLibraryNodeKeyEnum> results = new ArrayList<>();
for (BussLibraryNodeKeyEnum nodeKeyEnum : BussLibraryNodeKeyEnum.values()) {
if (nodeKeyEnum.showFlag) {
results.add(nodeKeyEnum);
}
}
return results;
}
}
@@ -1,9 +1,13 @@
package com.ydw.bat.wkflow.util.enums;
import org.apache.commons.lang.StringUtils;
/**
* 流程类型枚举类
*/
public enum FlowTypeEnum {
BZZQYJLC("3","标准征求意见流程",""),
QBZXD_JSBZ("buss1","企标制修订-技术标准",""),
ZCZQYJLC("33","政策征求意见流程","policyConsultation"),
ZCHGXXMSCLC("34","重点认证标准/政策合规性项目审查流程","policyComplianceReview"),
;
@@ -27,4 +31,15 @@ public enum FlowTypeEnum {
public String getRoute() {
return route;
}
public static FlowTypeEnum getFlowTypeEnumByValue(String value){
FlowTypeEnum result = null;
for (FlowTypeEnum flowTypeEnum : FlowTypeEnum.values()) {
if (StringUtils.equals(flowTypeEnum.getValue(),value)) {
result = flowTypeEnum;
break;
}
}
return result;
}
}
@@ -0,0 +1,68 @@
package com.ydw.bat.wkflow.util.enums;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 标准征求意见流程-任务节点定义key
*/
public enum StandardCommentNewProcessNodeKeyEnum {
STAND_ASK_FOR_OPINION1("StandAskForOpinion1","起草",0,true),
// SUB_PROCESS("subProcess","子流程",1),
STAND_ASK_FOR_OPINION2("StandAskForOpinion2","任务分发",2,true),
STAND_ASK_FOR_OPINION3("StandAskForOpinion3","意见反馈",3,true),
STAND_ASK_FOR_OPINION4("StandAskForOpinion4","意见汇总审批",4,true),
STAND_ASK_FOR_OPINION5("StandAskForOpinion5","意见审批",5,true),
STAND_ASK_FOR_OPINION6("StandAskForOpinion6","管理员",6,true),
STAND_ASK_FOR_OPINION7("StandAskForOpinion7","意见处理",7,true),
STAND_ASK_FOR_OPINION8("StandAskForOpinion8","会签",8,true),
STAND_ASK_FOR_OPINION9("StandAskForOpinion9","审核",9,true),
STAND_ASK_FOR_OPINION10("StandAskForOpinion10","审定",10,true),
STAND_ASK_FOR_OPINION11("StandAskForOpinion11","批准",11,true),
;
private String value;
private String lable;
private Integer orderNum;
private boolean showFlag;
private StandardCommentNewProcessNodeKeyEnum(String value, String lable,Integer orderNum,boolean showFlag) {
this.value = value;
this.lable = lable;
this.orderNum = orderNum;
this.showFlag = showFlag;
}
public String getValue() {
return value;
}
public String getLable() {
return lable;
}
public Integer getOrderNum() {
return orderNum;
}
public static String getLableByValue(String value){
String result = "";
for (StandardCommentNewProcessNodeKeyEnum nodeKeyEnum : StandardCommentNewProcessNodeKeyEnum.values()) {
if (StringUtils.equals(nodeKeyEnum.getValue(),value)) {
result = nodeKeyEnum.getLable();
break;
}
}
return result;
}
public static List<StandardCommentNewProcessNodeKeyEnum> getStandardCommentNewProcessNodeKeyEnum(){
List<StandardCommentNewProcessNodeKeyEnum> results = new ArrayList<>();
for (StandardCommentNewProcessNodeKeyEnum nodeKeyEnum : StandardCommentNewProcessNodeKeyEnum.values()) {
if (nodeKeyEnum.showFlag) {
results.add(nodeKeyEnum);
}
}
return results;
}
}
@@ -0,0 +1,49 @@
package com.ydw.bat.wkflow.util.enums;
import org.apache.commons.lang.StringUtils;
/**
* 任务状态枚举类
*/
public enum TaskStatusEnum {
TODO("未完成","todo"), // 待办
RECEIVED("已接收","received"), // 已接收
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;
}
public static String getLabelByValue(String value) {
String result = "";
for (TaskStatusEnum taskStatusEnum : TaskStatusEnum.values()) {
if (StringUtils.equals(taskStatusEnum.getValue(), value)) {
result = taskStatusEnum.getLabel();
break;
}
}
return result;
}
}
+5 -5
View File
@@ -36,7 +36,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://121.36.69.172:3307/foton-bat-wkflow-test?nullCatalogMeansCurrent=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf-8
url: jdbc:mysql://39.98.140.126:3306/foton-bat-wkflow?nullCatalogMeansCurrent=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf-8
username: root
password: hzwlsoft.com
initialSize: 5
@@ -74,10 +74,10 @@ spring:
active: dev
# 相关服务配置同业务系统
rabbitmq:
host: 121.36.69.172
host: 39.98.140.126
port: 5672
username: admin
password: hzwlsoft.com
username: guest
password: guest
listener:
direct:
# 默认加载 发版 需改为 true
@@ -146,4 +146,4 @@ buss:
down:
file:
path: https://srms.foton.com.cn/file/
# path: http://foton.natapp1.cc/file/
# path: http://foton.natapp1.cc/file/
@@ -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>