From 926253601956c51116e8342b4af9e9ca04ed2c1c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 27 二月 2025 17:00:51 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/xiaochen991015/xizang

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java
index 72b02f5..afbd802 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java
@@ -7,8 +7,11 @@
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.aizuda.bpm.engine.FlowLongEngine;
+import com.aizuda.bpm.engine.TaskService;
 import com.aizuda.bpm.engine.core.FlowCreator;
+import com.aizuda.bpm.engine.core.enums.InstanceState;
 import com.aizuda.bpm.engine.core.enums.TaskType;
+import com.aizuda.bpm.engine.dao.FlwInstanceDao;
 import com.aizuda.bpm.engine.entity.*;
 import com.aizuda.bpm.engine.model.NodeModel;
 import com.aizuda.bpm.mybatisplus.mapper.*;
@@ -24,12 +27,14 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.StateProcessActionEnum;
+import com.ruoyi.common.enums.TaskEventType;
 import com.ruoyi.common.exception.GlobalException;
 import com.ruoyi.common.exception.state.StateErrorCode;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.system.bo.*;
 import com.ruoyi.system.mapper.StateProcessTemplateMapper;
+import com.ruoyi.system.mapper.TContractMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.ProcessDetailVO;
@@ -46,6 +51,7 @@
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.function.Function;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
 @Service
@@ -64,6 +70,8 @@
     @Autowired
     private FlwTaskMapper flwTaskMapper;
     @Autowired
+    private TaskService taskService;
+    @Autowired
     private StateTaskCenterService stateTaskCenterService;
     @Autowired
     private StateProcessModuleService stateProcessModuleService;
@@ -74,7 +82,7 @@
     @Autowired
     private ISysUserService sysUserService;
     @Autowired
-    private TContractService contractService;
+    private TContractMapper contractMapper;
 
     /**
      * 流程模版分页
@@ -361,7 +369,7 @@
         // 查询合同信息
         for (ProcessTaskListVO processTaskListVO : processTaskListVOS) {
             // 查询合同信息
-            TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+            TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
             processTaskListVO.setContract(contract);
         }
 
@@ -484,6 +492,9 @@
         if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
             stateTaskQuery.between(StateTaskCenter::getCreateTime, startTime, endTime);
         }
+        if(Objects.isNull(processTaskListBO.getSortBy())){
+            processTaskListBO.setSortBy(2);
+        }
         if (processTaskListBO.getSortBy() == 1) {
             stateTaskQuery.orderByAsc(BaseModel::getCreateTime);
         }
@@ -500,7 +511,7 @@
         // 查询合同信息
         for (ProcessTaskListVO processTaskListVO : processTaskListVOS) {
             // 查询合同信息
-            TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+            TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
             processTaskListVO.setContract(contract);
         }
 
@@ -595,7 +606,7 @@
         // 查询合同信息
         for (ProcessTaskListVO processTaskListVO : processTaskListVOS) {
             // 查询合同信息
-            TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+            TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
             processTaskListVO.setContract(contract);
         }
 
@@ -715,6 +726,9 @@
         if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
             stateTaskQuery.between(StateTaskCenter::getCreateTime, startTime, endTime);
         }
+        if(Objects.isNull(processTaskListBO.getSortBy())){
+            processTaskListBO.setSortBy(2);
+        }
         if (processTaskListBO.getSortBy() == 1) {
             stateTaskQuery.orderByAsc(BaseModel::getCreateTime);
         }
@@ -730,7 +744,7 @@
         // 查询合同信息
         for (ProcessTaskListVO processTaskListVO : processTaskListVOS) {
             // 查询合同信息
-            TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+            TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
             processTaskListVO.setContract(contract);
         }
 
@@ -907,6 +921,7 @@
         stateProcessInstanceAction.setActionType(StateProcessActionEnum.APPROVED.getValue());
         stateProcessInstanceAction.setNodeId(processAgreeBO.getTaskId());
         stateProcessInstanceAction.setRemark(processAgreeBO.getRemark());
+        stateProcessInstanceAction.setPictures(processAgreeBO.getPictures());
         stateProcessInstanceActionService.save(stateProcessInstanceAction);
     }
 
@@ -924,7 +939,13 @@
         record.setActionType(StateProcessActionEnum.REJECTED.getValue());
         record.setNodeId(processRefuseBO.getTaskId());
         record.setRemark(processRefuseBO.getRemark());
+        record.setPictures(processRefuseBO.getPictures());
         stateProcessInstanceActionService.save(record);
+    }
+    @Override
+    public void revoke(Long instanceId) {
+        FlowCreator flowCreator = FlowCreator.of(String.valueOf(SecurityUtils.getUserId()), SecurityUtils.getLoginUser().getUser().getNickName());
+        flowLongEngine.runtimeService().revoke(instanceId, flowCreator);
     }
 
     @Override
@@ -1174,14 +1195,14 @@
         if(Objects.nonNull(flwTask)){
             instanceId = flwTask.getInstanceId();
             // 查询合同信息
-            contract = contractService.getById(JSONObject.parseObject(flwTask.getVariable()).getString("projectId"));
+            contract = contractMapper.selectById(JSONObject.parseObject(flwTask.getVariable()).getString("projectId"));
         }else {
             FlwHisTask flwHisTask = flwHisTaskMapper.selectById(Long.valueOf(taskId));
             if(Objects.isNull(flwHisTask)){
                 throw new GlobalException("流程不存在");
             }
             instanceId = flwHisTask.getInstanceId();
-            contract = contractService.getById(Objects.requireNonNull(JSONObject.parseObject(flwHisTask.getVariable())).getString("projectId"));
+            contract = contractMapper.selectById(Objects.requireNonNull(JSONObject.parseObject(flwHisTask.getVariable())).getString("projectId"));
         }
         BeanUtil.copyProperties(contract, processDetailVO);
 
@@ -1189,8 +1210,8 @@
         List<FlwHisTask> flwHisTasks = flwHisTaskMapper.selectList(Wrappers.<FlwHisTask>lambdaQuery().eq(FlwHisTask::getInstanceId, instanceId));
         processDetailVO.setFlwHisTasks(flwHisTasks);
 
-        List<StateProcessInstanceAction> list = stateProcessInstanceActionService.list(Wrappers.<StateProcessInstanceAction>lambdaQuery().eq(StateProcessInstanceAction::getInstanceId, flwTask.getInstanceId())
-                .orderByDesc(StateProcessInstanceAction::getCreateTime));
+        List<StateProcessInstanceAction> list = stateProcessInstanceActionService.list(Wrappers.<StateProcessInstanceAction>lambdaQuery().eq(StateProcessInstanceAction::getInstanceId, instanceId)
+                .orderByAsc(StateProcessInstanceAction::getCreateTime));
         for (StateProcessInstanceAction stateProcessInstanceAction : list) {
             SysUser sysUser = sysUserService.selectUserById(Long.valueOf(stateProcessInstanceAction.getAuditorId()));
             if(Objects.nonNull(sysUser)){
@@ -1230,6 +1251,9 @@
         if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
             stateTaskQuery.between(FlwHisTask::getCreateTime, startTime, endTime);
         }
+        if(Objects.isNull(processTaskListBO.getSortBy())){
+            processTaskListBO.setSortBy(2);
+        }
         if (processTaskListBO.getSortBy() == 1) {
             stateTaskQuery.orderByAsc(FlwHisTask::getCreateTime);
         }
@@ -1246,7 +1270,7 @@
         // 查询合同信息
         for (ProcessTaskListVO processTaskListVO : processTaskListVOS) {
             // 查询合同信息
-            TContract contract = contractService.getById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
+            TContract contract = contractMapper.selectById(JSONObject.parseObject(processTaskListVO.getVariable()).getString("projectId"));
             processTaskListVO.setContract(contract);
         }
 

--
Gitblit v1.7.1