From 9b327d535a1dfc0bffa23a19982605d4ba56502b Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Fri, 19 Jan 2024 19:10:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BC=9A=E5=90=8E=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=B5=81=E7=A8=8B):=2081040?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/service/ProcessAllService.java | 25 ++++++++++++++++++- .../service/ProcessApprovalRecordService.java | 6 ++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 2022ee81..e540c672 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -1,6 +1,7 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollStreamUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -8,11 +9,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.dto.message.SendMessageDTO; +import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.controller.WorkCenterController; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; @@ -22,6 +25,7 @@ import com.jero.modules.activiti.mapper.ProcessAllMapper; import com.jero.modules.activiti.process.common.common.DraftCommon; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam; import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; @@ -31,6 +35,7 @@ import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; @@ -141,7 +146,25 @@ public class ProcessAllService extends ServiceImpl .eq(ProcessAll::getId, processAll.getId()) .set(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue())); - //更新增审批表状态 + // 更新最后一条待办人员为流程发起人 + WorkCenterController workCenterController = SpringContextUtil.getBean(WorkCenterController.class); + ProcessApprovalRecord processApprovalRecord1 = new ProcessApprovalRecord(); + processApprovalRecord1.setProcessInstanceId(processInstanceId); + Result approvalRecordList = workCenterController.getApprovalRecordList(processApprovalRecord1, null); + if (!Objects.isNull(approvalRecordList.getResult())){ + Page pageList = (Page) approvalRecordList.getResult(); + if (CollectionUtils.isNotEmpty(pageList.getRecords())){ + List processApprovalRecords = JSON.parseArray(JSON.toJSONString(pageList.getRecords()), ProcessApprovalRecord.class); + if (CollectionUtils.isNotEmpty(processApprovalRecords)){ + approvalRecordService.update( + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getId, processApprovalRecords.get(0).getId()) + .set(ProcessApprovalRecord::getUserId, processApprovalRecords.get(processApprovalRecords.size() - 1).getOriginUserId())); + } + } + } + + //新增撤销审批记录 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); processApprovalRecord.setUserId(loginUser.getId()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index 3688d459..5612701d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.query.QueryGenerator; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; @@ -34,11 +33,12 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList(Page page, ProcessApprovalRecord processApprovalRecord, HttpServletRequest req) { - QueryWrapper wrapper = QueryGenerator.initQueryWrapper(processApprovalRecord, req.getParameterMap()); + QueryWrapper wrapper = new QueryWrapper<>(); if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){ wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(","))); } - wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC"); + wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId()); + wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC"); Page pageList = this.page(page, wrapper); List records = pageList.getRecords(); for (ProcessApprovalRecord record : records) {