浏览代码

1.修复测试环境大中型waitingClaimProd方法的SQL报错
2.提交节点commit方法校验提交人与处理人是否一致

GouGengquan 1 年之前
父节点
当前提交
c06be37fe9

+ 2 - 2
dao/src/main/resources/mapper/MajorProductionMapper.xml

@@ -460,8 +460,8 @@
                 left join major m on m.id = mp.major_id
                 INNER JOIN ( SELECT id,business_id,should_amount FROM order_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) orf ON orf.business_id = m.id
                 LEFT JOIN ( SELECT id,business_id,production_no,real_amount,standard_amount,production_should_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0) off  ON (off.business_id = m.id and off.production_no = mp.report_no)
-                LEFT JOIN USER u ON u.id = m.principal_id
-                LEFT JOIN USER u1 ON u1.id = m.client_manager_id
+                LEFT JOIN user u ON u.id = m.principal_id
+                LEFT JOIN user u1 ON u1.id = m.client_manager_id
                 LEFT JOIN customer_company cc ON cc.id = m.clientele_id
 
         WHERE

+ 10 - 0
service/src/main/java/com/dayou/service/workflow/WorkFlowServiceImpl.java

@@ -7,6 +7,7 @@ import com.dayou.common.BaseEntity;
 import com.dayou.dto.HandlerPermissionDTO;
 import com.dayou.dto.WorkNodeCommit;
 import com.dayou.dto.WorkNodeDTO;
+import com.dayou.dto.WorkNodeInstanceTaskDTO;
 import com.dayou.entity.WorkFlow;
 import com.dayou.entity.WorkFlowNodeInstance;
 import com.dayou.entity.WorkNodeTask;
@@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.mapper.WorkTaskRecordMapper;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.NameCodeVO;
+import com.dayou.vo.WorkTaskRecordVO;
 import com.dayou.workflow.handler.AssetsNodeHandler;
 import com.dayou.workflow.handler.MajorNodeHandler;
 import com.dayou.workflow.config.WorkNodeProcessable;
@@ -119,6 +121,14 @@ public class WorkFlowServiceImpl extends ServiceImpl<WorkFlowMapper, WorkFlow> i
         if (instanceNode==null){
             ErrorCode.throwBusinessException(ErrorCode.CURRENT_NODE_NOT_EXISTS);
         }
+
+        // 获取当前节点的任务信息
+        List<WorkNodeInstanceTaskDTO> taskDTOs = workTaskRecordMapper.instanceNodeTasks(workNodeCommit.getInstanceNodeId());
+        // 判断当前用户是否为节点任务处理人
+        if (taskDTOs.stream().noneMatch(taskDTO -> taskDTO.getHandlerId().equals(LoginContext.getCurrentUserId()))){
+            ErrorCode.throwBusinessException(ErrorCode.PERMISSION_ERROR);
+        }
+
         //校验节点提交权限
 //        Set<Long> handlerIds = workTaskRecordMapper.instanceNodeTasks(workNodeCommit.getInstanceNodeId()).stream().map(WorkNodeInstanceTaskDTO::getHandlerId).collect(Collectors.toSet());
 //        if (!handlerIds.contains(LoginContext.getCurrentUserId())){