From 70d45f56bf42125db7c926dd8234d802bd56d0d0 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Thu, 25 Jan 2024 18:01:36 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B-=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E6=B5=81=E7=A8=8B=E5=8E=86=E5=8F=B2=E6=94=B9?= =?UTF-8?q?=E9=80=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 7 + .../BusProcessHistoryController.java | 28 +++ .../datas/entity/BusProcessHistory.java | 90 ++++++++++ .../datas/mapper/BusProcessHistoryMapper.java | 8 + .../service/IBusProcessHistoryService.java | 28 +++ .../impl/IBusProcessHistoryServiceImpl.java | 168 ++++++++++++++++++ .../StartSurveyAfter.java | 124 +++++++++++++ .../Step10After.java | 42 ++++- .../Step10Before.java | 4 + .../StandardCommentNewProcess/Step1After.java | 48 +++++ .../Step1Before.java | 8 + .../Step2Before.java | 3 + .../StandardCommentNewProcess/Step3After.java | 38 ++++ .../Step3Before.java | 3 + .../StandardCommentNewProcess/Step4After.java | 61 +++++++ .../Step4Before.java | 4 + .../StandardCommentNewProcess/Step5After.java | 34 ++++ .../Step5Before.java | 4 + .../StandardCommentNewProcess/Step6After.java | 43 +++++ .../Step6Before.java | 4 + .../StandardCommentNewProcess/Step7After.java | 75 ++++++++ .../Step7Before.java | 4 + .../StandardCommentNewProcess/Step8After.java | 75 ++++++++ .../Step8Before.java | 4 + .../StandardCommentNewProcess/Step9After.java | 70 ++++++++ .../Step9Before.java | 4 + .../bat/wkflow/util/enums/FlowTypeEnum.java | 1 + .../StandardCommentNewProcessNodeKeyEnum.java | 39 ++++ .../bat/wkflow/util/enums/TaskStatusEnum.java | 36 ++++ .../mapper/datas/BusProcessHistoryMapper.xml | 5 + 30 files changed, 1058 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessHistoryController.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessHistory.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/BusProcessHistoryMapper.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessHistoryService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/IBusProcessHistoryServiceImpl.java create mode 100644 src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java create mode 100644 src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java create mode 100644 src/main/resources/mapper/datas/BusProcessHistoryMapper.xml 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 @@ + + + + + From dab9d57c13847624bfe9949d4afd49c87ec06d3f Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Fri, 26 Jan 2024 17:57:36 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B-=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E6=B5=81=E7=A8=8B=E5=8E=86=E5=8F=B2=E6=94=B9?= =?UTF-8?q?=E9=80=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 6 + .../BusProcessHistoryController.java | 27 ++- .../datas/entity/BusProcessHistory.java | 10 +- .../service/IBusProcessHistoryService.java | 5 + .../impl/IBusProcessHistoryServiceImpl.java | 172 ++++++++++++++++-- .../bat/wkflow/util/enums/FlowTypeEnum.java | 13 ++ .../StandardCommentNewProcessNodeKeyEnum.java | 15 +- .../bat/wkflow/util/enums/TaskStatusEnum.java | 17 +- 8 files changed, 245 insertions(+), 20 deletions(-) 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 30dad68b..1a4118a4 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 @@ -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; @@ -903,6 +904,11 @@ public class TodoTaskController extends BaseAction { updateWrapper.in(BusProcessNew::getTaskId,taskIdList); updateWrapper.set(BusProcessNew::getReceiveStatus,"已接收"); iBusProcessNewService.update(updateWrapper); + + LambdaUpdateWrapper bphUpdateWrapper = new LambdaUpdateWrapper<>(); + bphUpdateWrapper.in(BusProcessHistory::getTaskId,taskIdList); + bphUpdateWrapper.set(BusProcessHistory::getTaskStatus, TaskStatusEnum.RECEIVED.getValue()); + this.busProcessHistoryService.update(bphUpdateWrapper); return processNew; } 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 index d540c96e..ef2dbcd1 100644 --- 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 @@ -9,6 +9,7 @@ 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") @@ -17,11 +18,31 @@ public class BusProcessHistoryController { @Autowired private IBusProcessHistoryService busProcessHistoryService; - @GetMapping("/queryByList") - public List queryByList(String actiProcInstId) { + /** + * 查询流程历史列表 + * @param actiProcInstId + * @param flowType + * @return + */ + @GetMapping("/queryFlowHistoryList") + public List queryFlowHistoryList(String actiProcInstId,String flowType) { BusProcessHistory busProcessHistory = new BusProcessHistory(); busProcessHistory.setActiProcInstId(actiProcInstId); - return this.busProcessHistoryService.queryByList(busProcessHistory); + busProcessHistory.setFlowType(flowType); + return this.busProcessHistoryService.queryFlowHistoryList(busProcessHistory); + } + + /** + * 查询流程图数据 + * @param actiProcInstId + * @return + */ + @GetMapping("/getImgDataList") + public List> getImgDataList(String actiProcInstId, String flowType) { + BusProcessHistory busProcessHistory = new BusProcessHistory(); + busProcessHistory.setActiProcInstId(actiProcInstId); + busProcessHistory.setFlowType(flowType); + return this.busProcessHistoryService.getImgDataList(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 index 5236bf29..9830bf0f 100644 --- 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 @@ -86,5 +86,13 @@ public class BusProcessHistory { // 子流程数据数组 @TableField(exist = false) - private List childList; + private List children; + + @TableField(exist = false) + private String userName; + + @TableField(exist = false) + private String taskStatusShow; + @TableField(exist = false) + private String taskKeyShow; } 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 index df58036b..88c804d1 100644 --- 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 @@ -6,9 +6,12 @@ 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 { + List queryFlowHistoryList(BusProcessHistory busProcessHistory); + List queryByList(BusProcessHistory busProcessHistory); void insertBatch(List busProcessHistoryList); @@ -25,4 +28,6 @@ public interface IBusProcessHistoryService extends IService { // 更新排序号 void updateOrderNum(String actiProcInstId, int orderNum,int dataNum); + + List> getImgDataList(BusProcessHistory busProcessHistory); } 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 index 70afc5f4..cb1aa80e 100644 --- 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 @@ -2,26 +2,81 @@ 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_main.datas.entity.BusMes; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory; +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.IBusProcessHistoryService; +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.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.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; @Service public class IBusProcessHistoryServiceImpl extends ServiceImpl implements IBusProcessHistoryService { + + @Autowired + LawsUserInfoService lawsUserInfoService; + + @Override + public List queryFlowHistoryList(BusProcessHistory busProcessHistory) { + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + this.setQueryCondition(busProcessHistory, bphQueryWrap); + bphQueryWrap.orderByAsc("order_num","create_time"); + bphQueryWrap.lambda().and( + query -> query.isNull(BusProcessHistory::getTaskId).eq(BusProcessHistory::getIsMany,"1").or().isNotNull(BusProcessHistory::getTaskId) + ); +// bphQueryWrap.isNotNull("task_id"); + List bphList = this.list(bphQueryWrap); + this.disposeData(bphList); + List firstBphList = bphList.stream().filter(bph -> StringUtils.isEmpty(bph.getManyPId())).distinct().collect(Collectors.toList()); + for (BusProcessHistory processHistory : firstBphList) { + if (StringUtils.equals(processHistory.getIsMany(),"1")) { + List 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(){ + @Override + public int compare(BusProcessHistory o1, BusProcessHistory o2) { + return o2.getEndTime().compareTo(o1.getEndTime()); + } + }); + + endTime = childList.get(0).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); + } + } + } + return firstBphList; + } + @Override public List queryByList(BusProcessHistory busProcessHistory) { QueryWrapper bphQueryWrap = new QueryWrapper<>(); @@ -67,14 +122,26 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl 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())); + for (BusProcessHistory data : datas) { + ResponseMessage 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() + ")"; } + } 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()); + } + data.setTaskKeyShow(taskKeyShow); } } return results; @@ -106,7 +173,10 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl bphList = this.queryByList(bph); + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + this.setQueryCondition(bph, bphQueryWrap); + bphQueryWrap.isNull("task_id"); + List bphList = this.list(bphQueryWrap); if (CollectionUtils.isNotEmpty(bphList)) { BusProcessHistory busProcessHistory = bphList.get(0); busProcessHistory.setTaskId(delegateTask.getId()); @@ -165,4 +235,80 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl> getImgDataList(BusProcessHistory busProcessHistory) { + List> result = new ArrayList<>(); + + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + this.setQueryCondition(busProcessHistory, bphQueryWrap); + bphQueryWrap.orderByAsc("order_num", "create_time"); + List bphList = this.list(bphQueryWrap); + this.disposeData(bphList); + + FlowTypeEnum flowTypeEnum = FlowTypeEnum.getFlowTypeEnumByValue(busProcessHistory.getFlowType()); + switch (flowTypeEnum) { + case BZZQYJLC: + result = this.getBzzqyjlcImgDataList(bphList); + break; + default: + break; + } + return result; + } + + /** + * 获取标准征求意见流程图数据 + * @param bphList + * @return + */ + private List> getBzzqyjlcImgDataList(List bphList) { + List> result = new ArrayList<>(); + + for (StandardCommentNewProcessNodeKeyEnum nodeKeyEnum : StandardCommentNewProcessNodeKeyEnum.values()) { + Map tasksMap = this.getTasksMap( + bphList, + nodeKeyEnum.getValue(), + nodeKeyEnum.getLable() + ); + if (ObjectUtils.isNotEmpty(tasksMap)) { + result.add(tasksMap); + } + } + return result; + } + + private Map getTasksMap(List bphList,String taskKey,String taskKeyName) { + Map tasksMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(bphList)) { + List 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().map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(",")); + taskStatus = TaskStatusEnum.DONE.getValue(); + for (BusProcessHistory busProcessHistory : bphListByTaskKey) { + if (StringUtils.isEmpty(busProcessHistory.getTaskId()) + || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.TODO.getValue()) + || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.RECEIVED.getValue())) { + taskStatus = TaskStatusEnum.TODO.getValue(); + break; + } + } + } + tasksMap.put("taskKey", taskKey); + tasksMap.put("taskKeyName", taskKeyName); + tasksMap.put("userNames", userNames); + // 任务状态 + tasksMap.put("taskStatus", taskStatus); + tasksMap.put("taskList", bphListByTaskKey); + } + return tasksMap; + } } 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 86f04c48..5be85d28 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 @@ -1,5 +1,7 @@ package com.ydw.bat.wkflow.util.enums; +import org.apache.commons.lang.StringUtils; + /** * 流程类型枚举类 */ @@ -28,4 +30,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; + } } 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 index 2a5f93c2..dd3af0bf 100644 --- a/src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/StandardCommentNewProcessNodeKeyEnum.java @@ -1,11 +1,13 @@ package com.ydw.bat.wkflow.util.enums; +import org.apache.commons.lang.StringUtils; + /** * 标准征求意见流程-任务节点定义key */ public enum StandardCommentNewProcessNodeKeyEnum { STAND_ASK_FOR_OPINION1("StandAskForOpinion1","起草",0), - SUB_PROCESS("subProcess","子流程",1), + // SUB_PROCESS("subProcess","子流程",1), STAND_ASK_FOR_OPINION2("StandAskForOpinion2","任务分发",2), STAND_ASK_FOR_OPINION3("StandAskForOpinion3","意见反馈",3), STAND_ASK_FOR_OPINION4("StandAskForOpinion4","意见汇总审批",4), @@ -36,4 +38,15 @@ public enum StandardCommentNewProcessNodeKeyEnum { 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; + } } 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 index 40096b32..a085cee7 100644 --- a/src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/TaskStatusEnum.java @@ -1,12 +1,15 @@ package com.ydw.bat.wkflow.util.enums; +import org.apache.commons.lang.StringUtils; + /** * 任务状态枚举类 */ public enum TaskStatusEnum { - TODO("待办","todo"), - DONE("已办","done"), + TODO("未完成","todo"), // 待办 + RECEIVED("已接收","received"), // 已接收 + DONE("已完成","done"), // 已办 ; TaskStatusEnum(String label, String value) { @@ -33,4 +36,14 @@ public enum TaskStatusEnum { 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; + } } From 5e97b14f62f6a2b36fda52411b4711eed196dc26 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Mon, 29 Jan 2024 14:19:53 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B-=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E6=B5=81=E7=A8=8B=E5=8E=86=E5=8F=B2=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IBusProcessHistoryServiceImpl.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) 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 index cb1aa80e..3d688703 100644 --- 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 @@ -123,18 +123,20 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl results = new ArrayList<>(); if (CollectionUtils.isNotEmpty(datas)) { for (BusProcessHistory data : datas) { - ResponseMessage assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(data.getUserId()); - String userName = ""; - if(assignee.getData()!=null){ - if (assignee.getData().getDisableFlag() == 1) { - userName = assignee.getData().getUname() + "("+ assignee.getData().getUsid() +")" + "(已禁用)"; + if (StringUtils.isNotEmpty(data.getUserId())) { + ResponseMessage 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() + ")"; + } } else { - userName = assignee.getData().getUname() + "(" + assignee.getData().getUsid() + ")"; + userName = data.getUserId(); } - } else { - userName = data.getUserId(); + data.setUserName(userName); } - data.setUserName(userName); data.setTaskStatusShow(TaskStatusEnum.getLabelByValue(data.getTaskStatus())); String taskKeyShow = ""; @@ -291,7 +293,7 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl StringUtils.isNotEmpty(bph.getUserName())).map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(",")); taskStatus = TaskStatusEnum.DONE.getValue(); for (BusProcessHistory busProcessHistory : bphListByTaskKey) { if (StringUtils.isEmpty(busProcessHistory.getTaskId()) From 703ddd4a1925a6addb572b398b3f818941cf15ef Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Tue, 30 Jan 2024 10:24:51 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B-=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E6=B5=81=E7=A8=8B=E5=8E=86=E5=8F=B2=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datas/entity/BusProcessHistory.java | 8 +++++ .../impl/IBusProcessHistoryServiceImpl.java | 32 ++++++++++++++++--- 2 files changed, 36 insertions(+), 4 deletions(-) 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 index 9830bf0f..68957cac 100644 --- 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 @@ -95,4 +95,12 @@ public class BusProcessHistory { 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; } 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 index 3d688703..5bb6801e 100644 --- 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 @@ -8,6 +8,7 @@ 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.IBusProcessHistoryService; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum; import com.ydw.bat.wkflow.util.enums.TaskStatusEnum; @@ -28,6 +29,9 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl queryFlowHistoryList(BusProcessHistory busProcessHistory) { QueryWrapper bphQueryWrap = new QueryWrapper<>(); @@ -38,7 +42,7 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl bphList = this.list(bphQueryWrap); - this.disposeData(bphList); + this.disposeData(bphList,busProcessHistory.getActiProcInstId()); List firstBphList = bphList.stream().filter(bph -> StringUtils.isEmpty(bph.getManyPId())).distinct().collect(Collectors.toList()); for (BusProcessHistory processHistory : firstBphList) { if (StringUtils.equals(processHistory.getIsMany(),"1")) { @@ -119,9 +123,16 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl disposeData(List datas) { + private List disposeData(List datas,String actiProcInstId) { List results = new ArrayList<>(); if (CollectionUtils.isNotEmpty(datas)) { + BusProcessName bpn = null; + if (StringUtils.isNotEmpty(actiProcInstId)) { + QueryWrapper bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcId,actiProcInstId); + bpn = this.busProcessNameService.getOne(bpnQueryWrap); + } + for (BusProcessHistory data : datas) { if (StringUtils.isNotEmpty(data.getUserId())) { ResponseMessage assignee = lawsUserInfoService.getByIdFeignClientWithDisabled(data.getUserId()); @@ -144,6 +155,13 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl bphList = this.list(bphQueryWrap); - this.disposeData(bphList); + this.disposeData(bphList,busProcessHistory.getActiProcInstId()); FlowTypeEnum flowTypeEnum = FlowTypeEnum.getFlowTypeEnumByValue(busProcessHistory.getFlowType()); switch (flowTypeEnum) { @@ -293,7 +311,13 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl StringUtils.isNotEmpty(bph.getUserName())).map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(",")); + 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.isEmpty(busProcessHistory.getTaskId()) From 1636746bb6cdf52f08dab6d29d8e1992d0d2810c Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Wed, 31 Jan 2024 11:51:22 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BE=81=E6=B1=82?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E6=B5=81=E7=A8=8B-=E8=BD=AC=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TodoTaskController.java | 2 ++ .../service/IBusProcessHistoryService.java | 3 ++ .../impl/IBusProcessHistoryServiceImpl.java | 29 +++++++++++++++++++ 3 files changed, 34 insertions(+) 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 1a4118a4..54947743 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 @@ -428,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); } } 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 index 88c804d1..7d3ad458 100644 --- 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 @@ -30,4 +30,7 @@ public interface IBusProcessHistoryService extends IService { void updateOrderNum(String actiProcInstId, int orderNum,int dataNum); List> getImgDataList(BusProcessHistory busProcessHistory); + + // 根据taskId修改用户id + void changeUserIdByTaskId(String taskId,String afterUserId,String frontUserId); } 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 index 5bb6801e..d9e4dd20 100644 --- 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 @@ -277,6 +277,20 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl 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); + } + } + } + /** * 获取标准征求意见流程图数据 * @param bphList @@ -320,6 +334,21 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl 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.isEmpty(busProcessHistory.getTaskId()) || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.TODO.getValue()) || StringUtils.equals(busProcessHistory.getTaskStatus(), TaskStatusEnum.RECEIVED.getValue())) { From edc94e37090798c23572726103ec538bbe360a75 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Fri, 2 Feb 2024 18:00:20 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=8A=80=E6=9C=AF=E6=A0=87=E5=87=86=E6=B5=81?= =?UTF-8?q?=E7=A8=8B-=E6=B5=81=E7=A8=8B=E5=9B=BE=E3=80=81=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8E=86=E5=8F=B2=E6=94=B9=E9=80=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bussLibrary/BLApplicantAfter.java | 211 +++++++++++++++++- .../bussLibrary/BLApplicantC1Before.java | 3 + .../bussLibrary/BussLibrary10Before.java | 3 + .../bussLibrary/BussLibrary11Before.java | 3 + .../bussLibrary/BussLibrary12Before.java | 3 + .../bussLibrary/BussLibrary13Before.java | 3 + .../bussLibrary/BussLibrary2Before.java | 4 + .../bussLibrary/BussLibrary3Before.java | 4 + .../bussLibrary/BussLibrary4Before.java | 3 + .../bussLibrary/BussLibrary5Before.java | 3 + .../bussLibrary/BussLibrary6Before.java | 3 + .../bussLibrary/BussLibrary7Before.java | 3 + .../bussLibrary/BussLibrary8Before.java | 3 + .../bussLibrary/BussLibrary9Before.java | 3 + .../bussLibrary/BussLibraryC3Before.java | 3 + .../bussLibrary/BussLibraryC6Before.java | 3 + .../util/enums/BussLibraryNodeKeyEnum.java | 56 +++++ .../bat/wkflow/util/enums/FlowTypeEnum.java | 1 + 18 files changed, 312 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/util/enums/BussLibraryNodeKeyEnum.java diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java index 2acfe29b..c5021341 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java @@ -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.*; /** * 发起企标制修订流程后 @@ -191,9 +194,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 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 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.BZZQYJLC.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 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.BZZQYJLC.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); + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantC1Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantC1Before.java index c63e7641..3f953d76 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantC1Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantC1Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BLApplicantC1Before 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/bussLibrary/BussLibrary10Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10Before.java index 485222ab..8cd0172b 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary10Before 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/bussLibrary/BussLibrary11Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11Before.java index d77caccb..78932f6e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary11Before 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/bussLibrary/BussLibrary12Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary12Before.java index 0670e2b2..bc69b208 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary12Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary12Before.java @@ -5,6 +5,7 @@ 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; @@ -38,5 +39,7 @@ public class BussLibrary12Before 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/bussLibrary/BussLibrary13Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13Before.java index a9456f58..fdfdc50a 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary13Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary13Before 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/bussLibrary/BussLibrary2Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java index 9464c443..046e1562 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2Before.java @@ -3,6 +3,7 @@ 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; @@ -63,5 +64,8 @@ public class BussLibrary2Before implements TaskListener{ // hisService.saveOrUpdate(modelHis); // } + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + bphService.updateTaskInfo(delegateTask); + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3Before.java index 3219f851..11bcc7d5 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3Before.java @@ -5,6 +5,7 @@ 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; @@ -66,5 +67,8 @@ public class BussLibrary3Before implements TaskListener{ // modelHis.setEditFilePath(fileUrl); // hisService.save(modelHis); } + + IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class); + bphService.updateTaskInfo(delegateTask); } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4Before.java index 78223958..02db721c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary4Before 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/bussLibrary/BussLibrary5Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5Before.java index f8bef01f..7c741e56 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5Before.java @@ -3,6 +3,7 @@ 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; @@ -42,5 +43,7 @@ public class BussLibrary5Before 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/bussLibrary/BussLibrary6Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6Before.java index c40a1c3f..9bb9505b 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6Before.java @@ -5,6 +5,7 @@ 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; @@ -48,5 +49,7 @@ public class BussLibrary6Before 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/bussLibrary/BussLibrary7Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7Before.java index 2e79abb1..c4416a49 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary7Before 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/bussLibrary/BussLibrary8Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8Before.java index 9a7e845c..e9178248 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary8Before 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/bussLibrary/BussLibrary9Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9Before.java index 216f04f5..74338436 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibrary9Before 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/bussLibrary/BussLibraryC3Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3Before.java index b08d134d..20d9f6fd 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibraryC3Before 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/bussLibrary/BussLibraryC6Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6Before.java index 9a1966ec..55e47c96 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6Before.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6Before.java @@ -2,6 +2,7 @@ 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; @@ -35,5 +36,7 @@ public class BussLibraryC6Before 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/BussLibraryNodeKeyEnum.java b/src/main/java/com/ydw/bat/wkflow/util/enums/BussLibraryNodeKeyEnum.java new file mode 100644 index 00000000..ac300072 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/util/enums/BussLibraryNodeKeyEnum.java @@ -0,0 +1,56 @@ +package com.ydw.bat.wkflow.util.enums; + +import org.apache.commons.lang.StringUtils; + +/** + * 企标制修订-技术标准-任务节点定义key + */ +public enum BussLibraryNodeKeyEnum { + BUSS_LIBRARY1("BussLibrary1","起草",1), + BUSS_LIBRARY2("BussLibrary2","企标编写",2), + BUSS_LIBRARY3("BussLibrary3","企标编写汇总",3), + BUSS_LIBRARY4("BussLibrary4","标准化初审",4), + BUSS_LIBRARY_C3("BussLibraryC3","重新企标编写汇总",5), + BUSS_LIBRARY5("BussLibrary5","征求意见",6), + BUSS_LIBRARY6("BussLibrary6","技术委员会评审、评审意见修改",7), + BUSS_LIBRARY7("BussLibrary7","标准化复审",8), + BUSS_LIBRARY_C6("BussLibraryC6","重新技术委员会评审、评审意见修改",9), + BUSS_LIBRARY8("BussLibrary8","起草单位高级经理审核",10), + BUSS_LIBRARY9("BussLibrary9","标准法规部高级经理审核",11), + BUSS_LIBRARY_C1("BussLibraryC1","重新起草",12), + BUSS_LIBRARY10("BussLibrary10","审定",13), + BUSS_LIBRARY11("BussLibrary11","批准",14), + BUSS_LIBRARY12("BussLibrary12","主起草人培训",15), + BUSS_LIBRARY13("BussLibrary13","发布",16), + ; + + private String value; + private String lable; + private Integer orderNum; + + private BussLibraryNodeKeyEnum(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; + } + + 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; + } +} 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 5be85d28..c0a1a0fb 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 @@ -7,6 +7,7 @@ import org.apache.commons.lang.StringUtils; */ public enum FlowTypeEnum { BZZQYJLC("3","标准征求意见流程",""), + QBZXD_JSBZ("buss1","企标制修订-技术标准",""), ZCZQYJLC("33","政策征求意见流程","policyConsultation"), ZCHGXXMSCLC("34","重点认证标准/政策合规性项目审查流程","policyComplianceReview"), ; From 6027b0d691e1fdd8f8df0970b90b085fb9c718f3 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Sun, 4 Feb 2024 17:57:23 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=8A=80=E6=9C=AF=E6=A0=87=E5=87=86=E6=B5=81?= =?UTF-8?q?=E7=A8=8B-=E6=B5=81=E7=A8=8B=E5=9B=BE=E3=80=81=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8E=86=E5=8F=B2=E6=94=B9=E9=80=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bussLibrary/BussLibrary10After.java | 66 +++++++++++++ .../bussLibrary/BussLibrary11After.java | 66 +++++++++++++ .../bussLibrary/BussLibrary2After.java | 38 ++++++++ .../bussLibrary/BussLibrary3After.java | 37 ++++++++ .../bussLibrary/BussLibrary4After.java | 87 ++++++++++++++++++ .../bussLibrary/BussLibrary5After.java | 45 +++++++-- .../bussLibrary/BussLibrary6After.java | 37 ++++++++ .../bussLibrary/BussLibrary7After.java | 75 +++++++++++++-- .../bussLibrary/BussLibrary8After.java | 67 ++++++++++++++ .../bussLibrary/BussLibrary9After.java | 92 +++++++++++++++++++ .../bussLibrary/BussLibraryC3After.java | 39 ++++++++ .../bussLibrary/BussLibraryC6After.java | 36 ++++++++ 12 files changed, 669 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10After.java index 74da9b56..9afbbeb2 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary10After.java @@ -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; @@ -94,9 +99,70 @@ 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11After.java index 904b7fd7..ae5a728f 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary11After.java @@ -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; @@ -95,9 +100,70 @@ 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2After.java index 858ad26e..a8d3f929 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary2After.java @@ -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; @@ -107,9 +113,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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3After.java index 4ad95eaa..d57a4a94 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary3After.java @@ -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; @@ -95,9 +100,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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4After.java index 617f8c46..704b7bad 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary4After.java @@ -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; /** * 初审,标准化员审批后 @@ -123,9 +129,90 @@ 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 chzUserId = json.getString("chzUserId"); + + // 如果存在 重新企标编写汇总 节点的数据,taskId为空。 不用添加,否则需要添加。 + QueryWrapper bphQueryWrap = new QueryWrapper<>(); + bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId()); + bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,chzUserId); + bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY_C3.getValue()); + bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId); + + List busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List bphList = new ArrayList<>(); + // 重新企标编写汇总 + BusProcessHistory cxqbbzhzBph = new BusProcessHistory(); + cxqbbzhzBph.setActiProcInstId(delegateTask.getProcessInstanceId()); + cxqbbzhzBph.setUserId(chzUserId); + 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()); + } + } else { + // 征求意见 + List hqUserIdList = Arrays.asList(json.getString("hqUserId").split(",")); + if (CollectionUtils.isNotEmpty(hqUserIdList)) { + List bphList = new ArrayList<>(); + int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY4.getValue()); + String zqyjPBphId = UUID.randomUUID().toString(); + for (String userId : hqUserIdList) { + QueryWrapper 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 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.BZZQYJLC.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()); + } + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5After.java index 33474e0b..916193f1 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary5After.java @@ -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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6After.java index f18a6246..029454e5 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary6After.java @@ -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; @@ -100,6 +105,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 +113,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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7After.java index 79b2e41a..c854d921 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary7After.java @@ -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; @@ -118,6 +115,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 +153,64 @@ 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8After.java index 003e3f53..d853a8e8 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary8After.java @@ -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; @@ -95,9 +100,71 @@ 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9After.java index 503b9519..91af693e 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibrary9After.java @@ -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; @@ -149,9 +154,96 @@ 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } else if (bzFlag == 2) { + String cfqUserId = (String) delegateTask.getVariable("cfqUserId"); + QueryWrapper 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3After.java index 68519ec6..51db3b9f 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC3After.java @@ -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; @@ -100,9 +105,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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6After.java index c29e14cb..98e0616d 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BussLibraryC6After.java @@ -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; @@ -113,4 +118,35 @@ public class BussLibraryC6After 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 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 busProcessHistoryList = bphService.list(bphQueryWrap); + if (CollectionUtils.isEmpty(busProcessHistoryList)) { + List 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()); + } + } } From e22e7c731d891c53faccf4c53e86a2f73c2f0832 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Mon, 5 Feb 2024 14:11:12 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=8A=80=E6=9C=AF=E6=A0=87=E5=87=86=E6=B5=81?= =?UTF-8?q?=E7=A8=8B-=E6=B5=81=E7=A8=8B=E5=9B=BE=E3=80=81=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8E=86=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IBusProcessHistoryServiceImpl.java | 54 +++++++++++++++---- .../bussLibrary/BLApplicantAfter.java | 4 +- 2 files changed, 47 insertions(+), 11 deletions(-) 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 index d9e4dd20..b6363be7 100644 --- 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 @@ -9,6 +9,7 @@ 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.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; @@ -38,7 +39,7 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl query.isNull(BusProcessHistory::getTaskId).eq(BusProcessHistory::getIsMany,"1").or().isNotNull(BusProcessHistory::getTaskId) + query -> query.isNull(BusProcessHistory::getTaskId).isNull(BusProcessHistory::getUserId).eq(BusProcessHistory::getIsMany,"1").or().isNotNull(BusProcessHistory::getTaskId) ); // bphQueryWrap.isNotNull("task_id"); List bphList = this.list(bphQueryWrap); @@ -57,14 +58,14 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl(){ - @Override - public int compare(BusProcessHistory o1, BusProcessHistory o2) { - return o2.getEndTime().compareTo(o1.getEndTime()); - } - }); +// Collections.sort(childList,new Comparator(){ +// @Override +// public int compare(BusProcessHistory o1, BusProcessHistory o2) { +// return o2.getEndTime().compareTo(o1.getEndTime()); +// } +// }); - endTime = childList.get(0).getEndTime(); + endTime = childList.get(childList.size()-1).getEndTime(); } String userNames = childList.stream().map(BusProcessHistory::getUserName).distinct().collect(Collectors.joining(",")); @@ -78,7 +79,17 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl 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 @@ -153,6 +164,8 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl> getQbzxdJsbzImgDataList(List bphList) { + List> result = new ArrayList<>(); + + for (BussLibraryNodeKeyEnum nodeKeyEnum : BussLibraryNodeKeyEnum.values()) { + Map tasksMap = this.getTasksMap( + bphList, + nodeKeyEnum.getValue(), + nodeKeyEnum.getLable() + ); + if (ObjectUtils.isNotEmpty(tasksMap)) { + result.add(tasksMap); + } + } + return result; + } private Map getTasksMap(List bphList,String taskKey,String taskKeyName) { Map tasksMap = new HashMap<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java index c5021341..d2ffb64c 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/BLApplicantAfter.java @@ -229,7 +229,7 @@ public class BLApplicantAfter implements TaskListener{ qbbxPBph.setId(qbbxPBphId); qbbxPBph.setActiProcInstId(delegateTask.getProcessInstanceId()); qbbxPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getValue()); - qbbxPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + qbbxPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue()); qbbxPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY2.getOrderNum()); qbbxPBph.setIsSub("2"); qbbxPBph.setIsMany("1"); @@ -283,7 +283,7 @@ public class BLApplicantAfter implements TaskListener{ zqyjPBph.setId(zqyjPBphId); zqyjPBph.setActiProcInstId(delegateTask.getProcessInstanceId()); zqyjPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getValue()); - zqyjPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue()); + zqyjPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue()); zqyjPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY5.getOrderNum()); zqyjPBph.setIsSub("2"); zqyjPBph.setIsMany("1");