diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index bf106671..30dad68b 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -112,6 +112,9 @@ public class TodoTaskController extends BaseAction { @Autowired private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService; + @Autowired + private IBusProcessHistoryService busProcessHistoryService; + @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @ApiImplicitParam(name = "current", value = "当前页"), @@ -651,6 +654,8 @@ public class TodoTaskController extends BaseAction { logger.error(e.toString()); } taskService.complete(busMes.getTaskId()); + + this.busProcessHistoryService.complete(busMes); } else { return WrapMapper.error("当前任务不存在"); } @@ -686,6 +691,8 @@ public class TodoTaskController extends BaseAction { } else { return WrapMapper.error("当前任务不存在"); } + busMes.setTaskId(taskId); + this.busProcessHistoryService.complete(busMes); } return WrapMapper.ok(prcid); } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessHistoryController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessHistoryController.java new file mode 100644 index 00000000..d540c96e --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessHistoryController.java @@ -0,0 +1,28 @@ +package com.ydw.bat.wkflow.business_main.datas.controller; + + +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/datas/bus-process-history") +public class BusProcessHistoryController { + + @Autowired + private IBusProcessHistoryService busProcessHistoryService; + + @GetMapping("/queryByList") + public List queryByList(String actiProcInstId) { + BusProcessHistory busProcessHistory = new BusProcessHistory(); + busProcessHistory.setActiProcInstId(actiProcInstId); + return this.busProcessHistoryService.queryByList(busProcessHistory); + } + +} + diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessHistory.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessHistory.java new file mode 100644 index 00000000..5236bf29 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessHistory.java @@ -0,0 +1,90 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; +import java.util.List; + +/** + * 流程历史 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("bus_process_history") +@ApiModel(value="BusProcessHistory对象", description="") +public class BusProcessHistory { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId(value = "id") + private String id; + + @ApiModelProperty(value = "流程实例id") + @TableField("acti_proc_inst_id") + private String actiProcInstId; + + @ApiModelProperty(value = "任务id") + @TableField("task_id") + private String taskId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "任务节点key") + @TableField("task_key") + private String taskKey; + + @ApiModelProperty(value = "流程类型") + @TableField("flow_type") + private String flowType; + + @ApiModelProperty(value = "是否是子流程:1是 2否") + @TableField("is_sub") + private String isSub; + + @ApiModelProperty(value = "排序号") + @TableField("order_num") + private Integer orderNum; + + @ApiModelProperty(value = "任务状态") + @TableField("task_status") + private String taskStatus; + + @ApiModelProperty(value = "审批意见") + @TableField("commit_text") + private String commitText; + + @ApiModelProperty(value = "创建时间") + @TableField("create_time") + private Date createTime; + + @ApiModelProperty(value = "完成时间") + @TableField("end_time") + private Date endTime; + + @ApiModelProperty(value = "父级id(仅限于子流程任务节点有)") + @TableField("p_id") + private String pId; + + @ApiModelProperty(value = "是否是多实例任务节点:1是 2否") + @TableField("is_many") + private String isMany; + + @ApiModelProperty(value = "多实例父节点id") + @TableField("many_p_id") + private String manyPId; + + // 子流程数据数组 + @TableField(exist = false) + private List childList; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/BusProcessHistoryMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/BusProcessHistoryMapper.java new file mode 100644 index 00000000..7a44a7ef --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/BusProcessHistoryMapper.java @@ -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 { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessHistoryService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessHistoryService.java new file mode 100644 index 00000000..df58036b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessHistoryService.java @@ -0,0 +1,28 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusMes; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; +import org.activiti.engine.delegate.DelegateTask; + +import java.util.List; + +public interface IBusProcessHistoryService extends IService { + + List queryByList(BusProcessHistory busProcessHistory); + + void insertBatch(List busProcessHistoryList); + + void updateBatch(List busProcessHistoryList); + + // 更新任务信息 + void updateTaskInfo(DelegateTask delegateTask); + + void complete(BusMes busMes); + + // 获取最大排序号 + int getMaxOrderNum(String actiProcInstId, String taskKey); + + // 更新排序号 + void updateOrderNum(String actiProcInstId, int orderNum,int dataNum); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/IBusProcessHistoryServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/IBusProcessHistoryServiceImpl.java new file mode 100644 index 00000000..70afc5f4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/IBusProcessHistoryServiceImpl.java @@ -0,0 +1,168 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.BusMes; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; +import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessHistoryMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; +import com.ydw.bat.wkflow.util.enums.TaskStatusEnum; +import org.activiti.engine.delegate.DelegateTask; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + +@Service +public class IBusProcessHistoryServiceImpl extends ServiceImpl implements IBusProcessHistoryService { + + @Override + public List queryByList(BusProcessHistory busProcessHistory) { + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + this.setQueryCondition(busProcessHistory, bphQueryWrap); + List results = this.list(bphQueryWrap); + return results; + } + + /** + * 设置查询条件 + * @param busProcessHistory + * @param bphQueryWrap + */ + private void setQueryCondition(BusProcessHistory busProcessHistory, QueryWrapper 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 disposeData(List datas) { + List results = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(datas)) { + results = datas.stream().filter(data -> StringUtils.isEmpty(data.getPId())).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(results)) { + List childList = datas.stream().filter(data -> StringUtils.isNotEmpty(data.getPId())).distinct().collect(Collectors.toList()); + for (BusProcessHistory data : results) { + if (StringUtils.equals(data.getIsSub(), "1")) { + data.setChildList(childList.stream().filter(child -> StringUtils.equals(child.getPId(), data.getId())).distinct().collect(Collectors.toList())); + } + } + } + } + return results; + } + + @Override + public void insertBatch(List busProcessHistoryList) { + if (CollectionUtils.isNotEmpty(busProcessHistoryList)) { + for (BusProcessHistory busProcessHistory : busProcessHistoryList) { + if (StringUtils.isEmpty(busProcessHistory.getId())) { + busProcessHistory.setId(UUID.randomUUID().toString()); + } + busProcessHistory.setCreateTime(new Date()); + } + this.saveBatch(busProcessHistoryList); + } + } + + @Override + public void updateBatch(List busProcessHistoryList) { + if (CollectionUtils.isNotEmpty(busProcessHistoryList)) { + this.updateBatchById(busProcessHistoryList); + } + } + + @Override + public void updateTaskInfo(DelegateTask delegateTask) { + BusProcessHistory bph = new BusProcessHistory(); + bph.setActiProcInstId(delegateTask.getProcessInstanceId()); + bph.setTaskKey(delegateTask.getTaskDefinitionKey()); + bph.setUserId(delegateTask.getAssignee()); + List bphList = this.queryByList(bph); + if (CollectionUtils.isNotEmpty(bphList)) { + BusProcessHistory busProcessHistory = bphList.get(0); + busProcessHistory.setTaskId(delegateTask.getId()); + busProcessHistory.setTaskStatus(TaskStatusEnum.TODO.getValue()); + super.updateById(busProcessHistory); + } + } + + @Override + public void complete(BusMes busMes) { + BusProcessHistory bph = new BusProcessHistory(); + bph.setTaskId(busMes.getTaskId()); + List bphList = this.queryByList(bph); + if (CollectionUtils.isNotEmpty(bphList)) { + JSONObject jsonObject = JSONObject.parseObject(busMes.getJson()); + bphList.forEach(busProcessHistory -> { + busProcessHistory.setTaskStatus(TaskStatusEnum.DONE.getValue()); + busProcessHistory.setEndTime(new Date()); + busProcessHistory.setCommitText(jsonObject.getString("commentText")); + }); + this.updateBatch(bphList); + } + } + + @Override + public int getMaxOrderNum(String actiProcInstId, String taskKey) { + int result = 0; + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId); + bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey,taskKey); + bphQueryWrap.orderByDesc("order_num"); + List 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 bphQueryWrap = new QueryWrapper<>(); + bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,actiProcInstId); + bphQueryWrap.lambda().gt(BusProcessHistory::getOrderNum,orderNum); + bphQueryWrap.isNull("task_id"); + List list = this.list(bphQueryWrap); + if (CollectionUtils.isNotEmpty(list)) { + for (BusProcessHistory busProcessHistory : list) { + busProcessHistory.setOrderNum(busProcessHistory.getOrderNum() + dataNum); + } + this.updateBatch(list); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java index a6dbc9c4..aeb2bb73 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/StartSurveyAfter.java @@ -5,18 +5,24 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.tmsps.fk.common.util.JsonUtil; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdea; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; +import com.ydw.bat.wkflow.util.enums.TaskStatusEnum; import com.ydw.bat.wkflow.util.http.ResponseMessage; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; @@ -160,5 +166,123 @@ public class StartSurveyAfter implements TaskListener { if(!result.isOk()){ throw new ActivitiException("发起公开征求意见失败"); } + this.addBusProcessHistory(object,delegateTask); + } + + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask){ + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + + List 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 zrUserIdList = new ArrayList<>(); + if (json.getString("dockUserList").contains(",")){ + zrUserIdList.addAll(new ArrayList<>(Arrays.asList(json.getString("dockUserList").split(",")))); + }else { + zrUserIdList.add(json.getString("dockUserList")); + } + + if (CollectionUtils.isNotEmpty(zrUserIdList)) { + for (String zrUserId : zrUserIdList) { + // 任务分发 + BusProcessHistory rwffBph = new BusProcessHistory(); + rwffBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + rwffBph.setUserId(zrUserId); + rwffBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getValue()); + rwffBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + rwffBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getOrderNum()); + rwffBph.setIsSub("2"); + rwffBph.setIsMany("2"); + bphList.add(rwffBph); + + // 意见汇总审批 + BusProcessHistory yjhzspBph = new BusProcessHistory(); + yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjhzspBph.setUserId(zrUserId); + yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue()); + yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjhzspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getOrderNum()); + yjhzspBph.setIsSub("2"); + yjhzspBph.setIsMany("2"); + bphList.add(yjhzspBph); + + /*// 意见审批 + String spId = json.getString("spId"); + BusProcessHistory yjspBph = new BusProcessHistory(); + yjspBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjspBph.setUserId(spId); + yjspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue()); + yjspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getOrderNum()); + yjspBph.setIsSub("2"); + yjspBph.setIsMany("2"); + bphList.add(yjspBph); + + // 管理员 + String bzfgId = json.getString("bzfgId"); + BusProcessHistory glyBph = new BusProcessHistory(); + glyBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + glyBph.setUserId(bzfgId); + glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue()); + glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + glyBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getOrderNum()); + glyBph.setIsSub("2"); + glyBph.setIsMany("2"); + bphList.add(glyBph);*/ + } + } + + // 意见处理 + String bzfgIdSum = json.getString("startUser"); + BusProcessHistory yjclBph = new BusProcessHistory(); + yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjclBph.setUserId(bzfgIdSum); + yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue()); + yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjclBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getOrderNum()); + yjclBph.setIsSub("2"); + yjclBph.setIsMany("2"); + bphList.add(yjclBph); + + // 批准 + String presidentUser = json.getString("presidentUser"); + BusProcessHistory pzBph = new BusProcessHistory(); + pzBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + pzBph.setUserId(presidentUser); + pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue()); + pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + pzBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getOrderNum()); + pzBph.setIsSub("2"); + pzBph.setIsMany("2"); + bphList.add(pzBph); + + bphService.insertBatch(bphList); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10After.java index ebd30f8f..95f0f71b 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10After.java @@ -3,18 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; -import com.ydw.bat.wkflow.business_main.datas.entity.Datas; -import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage; +import com.ydw.bat.wkflow.business_main.datas.entity.*; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdeaAll; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import java.text.SimpleDateFormat; @@ -168,5 +171,36 @@ public class Step10After implements TaskListener { busProcessNewNext.setPrcName(prcName); busBean.save(busProcessNewNext); } + this.addBusProcessHistory(object,delegateTask); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) { + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + String presidentFlag = (String) delegateTask.getVariable("presidentFlag"); + // 如果是驳回,流程走向意见处理节点,否则流程结束 + if (StringUtils.equals(presidentFlag,"1")) { + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue()); + + List 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()); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10Before.java index 6508388a..93b0a560 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step10Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java index e452af39..676e6043 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1After.java @@ -3,18 +3,24 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_slrs.dao.SarPublicIdea; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import com.ydw.bat.wkflow.util.http.ResponseMessage; import org.activiti.engine.ActivitiException; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFormat; import java.util.*; @@ -121,5 +127,47 @@ public class Step1After implements TaskListener { busProcessNewNext.setUserId(delegateTask.getVariable("dockUser",String.class)); busBean.save(busProcessNewNext); } + + this.addBusProcessHistory(object,delegateTask); + } + + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) { + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + + List bphList = new ArrayList<>(); + List yjfkUserIdList = Arrays.asList(json.getString("responUserList").split(",")); + // 意见反馈 + if (CollectionUtils.isNotEmpty(yjfkUserIdList)) { + String yjfkPBphId = (String) delegateTask.getVariable("yjfkPBphId"); + if (StringUtils.isEmpty(yjfkPBphId)) { + BusProcessHistory yjfkPBph = new BusProcessHistory(); + yjfkPBphId = UUID.randomUUID().toString(); + yjfkPBph.setId(yjfkPBphId); + yjfkPBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjfkPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue()); + yjfkPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjfkPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum()); + yjfkPBph.setIsSub("2"); + yjfkPBph.setIsMany("1"); + bphList.add(yjfkPBph); + } + + for (String yjfkUserId : yjfkUserIdList) { + BusProcessHistory yjfkBph = new BusProcessHistory(); + yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjfkBph.setUserId(yjfkUserId); + yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue()); + yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum()); + yjfkBph.setIsSub("2"); + yjfkBph.setIsMany("1"); + yjfkBph.setManyPId(yjfkPBphId); + bphList.add(yjfkBph); + } + + delegateTask.setVariable("yjfkPBphId",yjfkPBphId); + } + + bphService.insertBatch(bphList); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1Before.java index 73d93682..b986d5e2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step1Before.java @@ -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); + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2Before.java index 48b2290b..83c9a6b6 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step2Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3After.java index 3eec053d..80520c6f 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3After.java @@ -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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3Before.java index e6c9c5c7..01289ea3 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step3Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java index bd09e2f7..fcf1b957 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4After.java @@ -3,15 +3,21 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -93,5 +99,60 @@ public class Step4After implements TaskListener { busBean.save(busProcessNewNext); } } + this.addBusProcessHistory(object,delegateTask); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) { + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + String spFlag = json.getString("spFlag"); + List bphList = new ArrayList<>(); + + // 如果是驳回,流程走向意见处理节点,否则流程结束 + if (!StringUtils.equals(spFlag,"0")) { + String zrUserId = json.getString("SKS"); + // 意见汇总审批 + BusProcessHistory yjhzspBph = new BusProcessHistory(); + yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjhzspBph.setUserId(zrUserId); + yjhzspBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue()); + yjhzspBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue()); + yjhzspBph.setOrderNum(orderNum + 1); + yjhzspBph.setIsSub("2"); + yjhzspBph.setIsMany("2"); + bphList.add(yjhzspBph); + + bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size()); + } else { + String bzfgId = json.getString("bzfgId"); + // 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。 + QueryWrapper 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + // 管理员 + BusProcessHistory glyBph = new BusProcessHistory(); + glyBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + glyBph.setUserId(bzfgId); + glyBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION6.getValue()); + glyBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION5.getValue()); + glyBph.setOrderNum(orderNum + 1); + glyBph.setIsSub("2"); + glyBph.setIsMany("2"); + bphList.add(glyBph); + bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size()); + } + } + bphService.insertBatch(bphList); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4Before.java index 3df9c474..510013d7 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step4Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5After.java index 185180c9..c0024d5e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5After.java @@ -4,15 +4,20 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.List; @@ -121,5 +126,34 @@ public class Step5After implements TaskListener { busBean.save(busProcessNewNext); } } + this.addBusProcessHistory(object,delegateTask); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) { + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + String bzFlag = json.getString("bzFlag"); + // 如果是驳回,流程走向意见处理节点 + if (!StringUtils.equals(bzFlag,"0")) { + String zrUserId = json.getString("SKS"); + List 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()); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5Before.java index 180d3617..ebdb1339 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step5Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6After.java index 70ae490c..26a7a331 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6After.java @@ -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 bphList = new ArrayList<>(); + // 会签 + List 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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6Before.java index eefbf769..a53cce9d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step6Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7After.java index f978437d..8ff39b6b 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7After.java @@ -2,16 +2,23 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.Arrays; @@ -126,5 +133,73 @@ public class Step7After implements TaskListener { busBean.save(busProcessNewNext); } } + this.addBusProcessHistory(object,delegateTask,nextUserList); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + * @param shUserIdList + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List 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 bphList = new ArrayList<>(); + + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION8.getValue()); + + String hqFlag = (String) delegateTask.getVariable("hqFlag"); + if (StringUtils.equals(hqFlag,"0")) { + // 审核 + if (CollectionUtils.isNotEmpty(shUserIdList)) { + // 审核节点父节点信息 + BusProcessHistory shPBph = new BusProcessHistory(); + String shPBphId = UUID.randomUUID().toString(); + shPBph.setId(shPBphId); + shPBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + shPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue()); + shPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + shPBph.setOrderNum(orderNum + 1); + shPBph.setIsSub("2"); + shPBph.setIsMany("1"); + bphList.add(shPBph); + + for (String shUserId : shUserIdList) { + BusProcessHistory shBph = new BusProcessHistory(); + shBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + shBph.setUserId(shUserId); + shBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION9.getValue()); + shBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + shBph.setOrderNum(orderNum + 1); + shBph.setIsSub("2"); + shBph.setIsMany("1"); + shBph.setManyPId(shPBphId); + bphList.add(shBph); + } + } + } else { + // 流程走向意见处理节点 + String bzfgIdSum = json.getString("startUser"); + BusProcessHistory yjclBph = new BusProcessHistory(); + yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjclBph.setUserId(bzfgIdSum); + yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue()); + yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjclBph.setOrderNum(orderNum + 1); + yjclBph.setIsSub("2"); + yjclBph.setIsMany("2"); + bphList.add(yjclBph); + } + bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size()); + bphService.insertBatch(bphList); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7Before.java index 0208a164..8547cce5 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step7Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8After.java index 4271c1cf..32a1a65f 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8After.java @@ -2,20 +2,28 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.UUID; //新征求意见流程!!!!! public class Step8After implements TaskListener { @@ -114,5 +122,72 @@ public class Step8After implements TaskListener { busBean.save(busProcessNewNext); } } + this.addBusProcessHistory(object,delegateTask,nextUserList); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + * @param sdUserIdList + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask,List 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 bphList = new ArrayList<>(); + + String bdFlag = (String) delegateTask.getVariable("bdFlag"); + if (StringUtils.equals(bdFlag,"0")) { + // 审定 + if (CollectionUtils.isNotEmpty(sdUserIdList)) { + // 审定节点父节点信息 + BusProcessHistory sdPBph = new BusProcessHistory(); + String sdPBphId = UUID.randomUUID().toString(); + sdPBph.setId(sdPBphId); + sdPBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + sdPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue()); + sdPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + sdPBph.setOrderNum(orderNum + 1); + sdPBph.setIsSub("2"); + sdPBph.setIsMany("1"); + bphList.add(sdPBph); + + for (String sdUserId : sdUserIdList) { + BusProcessHistory sdBph = new BusProcessHistory(); + sdBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + sdBph.setUserId(sdUserId); + sdBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue()); + sdBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + sdBph.setOrderNum(orderNum + 1); + sdBph.setIsSub("2"); + sdBph.setIsMany("1"); + sdBph.setManyPId(sdPBphId); + bphList.add(sdBph); + } + } + } else { + // 流程走向意见处理节点 + String bzfgIdSum = json.getString("startUser"); + BusProcessHistory yjclBph = new BusProcessHistory(); + yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjclBph.setUserId(bzfgIdSum); + yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue()); + yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjclBph.setOrderNum(orderNum + 1); + yjclBph.setIsSub("2"); + yjclBph.setIsMany("2"); + bphList.add(yjclBph); + } + bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size()); + bphService.insertBatch(bphList); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8Before.java index 2efc95f7..9c9b76fd 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step8Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9After.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9After.java index 81a4896c..74c61750 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9After.java @@ -2,20 +2,28 @@ package com.ydw.bat.wkflow.listener.StandardCommentNewProcess; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.util.SpringContextUtil; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import io.swagger.models.auth.In; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.List; +import java.util.UUID; //新征求意见流程!!!!! public class Step9After implements TaskListener { @@ -110,5 +118,67 @@ public class Step9After implements TaskListener { } } } + this.addBusProcessHistory(object,delegateTask); + } + + /** + * 添加节点流程历史 + * @param json + * @param delegateTask + */ + public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) { + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); + boolean existTaskFlag = taskTodoService.whetherExistTaskByTaskDefinitionKey( + delegateTask.getProcessInstanceId(), + delegateTask.getTaskDefinitionKey(), + delegateTask.getId() + ); + // 如果当前审定节点不存在任务了。 + if (!existTaskFlag) { + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION10.getValue()); + List bphList = new ArrayList<>(); + + String directorFlag = (String) delegateTask.getVariable("directorFlag"); + // 如果是通过,流程走向批准节点 + if (StringUtils.equals(directorFlag,"0")) { + String presidentUser = json.getString("presidentUser"); + + // 如果存在批准节点的数据,taskId为空。 不用添加,否则就是退回过 需要添加。 + QueryWrapper 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + // 批准 + BusProcessHistory pzBph = new BusProcessHistory(); + pzBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + pzBph.setUserId(presidentUser); + pzBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION11.getValue()); + pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + pzBph.setOrderNum(orderNum + 1); + pzBph.setIsSub("2"); + pzBph.setIsMany("2"); + bphList.add(pzBph); + } + } else { + // 流程走向意见处理节点 + String bzfgIdSum = json.getString("startUser"); + BusProcessHistory yjclBph = new BusProcessHistory(); + yjclBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + yjclBph.setUserId(bzfgIdSum); + yjclBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION7.getValue()); + yjclBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + yjclBph.setOrderNum(orderNum + 1); + yjclBph.setIsSub("2"); + yjclBph.setIsMany("2"); + bphList.add(yjclBph); + } + bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size()); + bphService.insertBatch(bphList); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9Before.java index d053a97f..90c7de89 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/StandardCommentNewProcess/Step9Before.java @@ -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); } } diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java index 12727645..86f04c48 100644 --- a/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/FlowTypeEnum.java @@ -4,6 +4,7 @@ package com.ydw.bat.wkflow.util.enums; * 流程类型枚举类 */ public enum FlowTypeEnum { + BZZQYJLC("3","标准征求意见流程",""), ZCZQYJLC("33","政策征求意见流程","policyConsultation"), ZCHGXXMSCLC("34","重点认证标准/政策合规性项目审查流程","policyComplianceReview"), ; diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java new file mode 100644 index 00000000..2a5f93c2 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java @@ -0,0 +1,39 @@ +package com.ydw.bat.wkflow.util.enums; + +/** + * 标准征求意见流程-任务节点定义key + */ +public enum StandardCommentNewProcessNodeKeyEnum { + STAND_ASK_FOR_OPINION1("StandAskForOpinion1","起草",0), + SUB_PROCESS("subProcess","子流程",1), + STAND_ASK_FOR_OPINION2("StandAskForOpinion2","任务分发",2), + STAND_ASK_FOR_OPINION3("StandAskForOpinion3","意见反馈",3), + STAND_ASK_FOR_OPINION4("StandAskForOpinion4","意见汇总审批",4), + STAND_ASK_FOR_OPINION5("StandAskForOpinion5","意见审批",5), + STAND_ASK_FOR_OPINION6("StandAskForOpinion6","管理员",6), + STAND_ASK_FOR_OPINION7("StandAskForOpinion7","意见处理",7), + STAND_ASK_FOR_OPINION8("StandAskForOpinion8","会签",8), + STAND_ASK_FOR_OPINION9("StandAskForOpinion9","审核",9), + STAND_ASK_FOR_OPINION10("StandAskForOpinion10","审定",10), + STAND_ASK_FOR_OPINION11("StandAskForOpinion11","批准",11), + ; + + private String value; + private String lable; + private Integer orderNum; + + private StandardCommentNewProcessNodeKeyEnum(String value, String lable,Integer orderNum) { + this.value = value; + this.lable = lable; + this.orderNum = orderNum; + } + public String getValue() { + return value; + } + public String getLable() { + return lable; + } + public Integer getOrderNum() { + return orderNum; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java new file mode 100644 index 00000000..40096b32 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.util.enums; + +/** + * 任务状态枚举类 + */ +public enum TaskStatusEnum { + + TODO("待办","todo"), + DONE("已办","done"), + ; + + TaskStatusEnum(String label, String value) { + this.label = label; + this.value = value; + } + + String label; + String value; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} diff --git a/src/main/resources/mapper/datas/BusProcessHistoryMapper.xml b/src/main/resources/mapper/datas/BusProcessHistoryMapper.xml new file mode 100644 index 00000000..7b6ffd93 --- /dev/null +++ b/src/main/resources/mapper/datas/BusProcessHistoryMapper.xml @@ -0,0 +1,5 @@ + + + + +