Browse Source

档案上报相关

liuyc 1 year ago
parent
commit
1dbc0474ae

+ 21 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileTaskController.java

@@ -28,6 +28,7 @@ import org.springblade.evisa.feign.EVisaClient;
 import org.springblade.evisa.vo.TaskArchiveDTO;
 import org.springblade.evisa.vo.TaskArchiveDTO;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.manager.entity.ContractRelationJlyz;
+import org.springblade.manager.entity.ProjectInfo;
 import org.springblade.manager.entity.SignPfxFile;
 import org.springblade.manager.entity.SignPfxFile;
 import org.springblade.manager.feign.SignPfxClient;
 import org.springblade.manager.feign.SignPfxClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.entity.User;
@@ -165,6 +166,7 @@ public class ArchiveFileTaskController extends BladeController {
         if (ObjectUtil.isEmpty(dto.getCurrentContractId())) {
         if (ObjectUtil.isEmpty(dto.getCurrentContractId())) {
             throw new ServiceException("未获取到当前用户所在的合同段信息,请联系管理员");
             throw new ServiceException("未获取到当前用户所在的合同段信息,请联系管理员");
         }
         }
+        ProjectInfo projectInfo = jdbcTemplate.query("select approval_type from m_project_info where id = " + dto.getProjectIdValue(), new BeanPropertyRowMapper<>(ProjectInfo.class)).stream().findAny().orElse(null);
         int current = dto.getCurrent();
         int current = dto.getCurrent();
         int size = dto.getSize();
         int size = dto.getSize();
         //封装入参SQL
         //封装入参SQL
@@ -309,6 +311,24 @@ public class ArchiveFileTaskController extends BladeController {
                     vo.setTaskReportUserName(nameMap.get(Long.parseLong(task.getReportUser())));
                     vo.setTaskReportUserName(nameMap.get(Long.parseLong(task.getReportUser())));
                     List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
                     List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
                     if (taskParallelList != null && taskParallelList.size() > 0) {
                     if (taskParallelList != null && taskParallelList.size() > 0) {
+                        //如果是垂直签,判断是否是当前用户审批轮次,不是当前用户审批轮次就不显示该任务
+                        if (projectInfo != null && projectInfo.getApprovalType() == 1) {
+                            boolean shouldDisplayTask = false; //标记是否显示当前任务
+                            for (TaskParallel taskParallel : taskParallelList) {
+                                if (SecureUtil.getUserId().equals(Long.parseLong(taskParallel.getTaskUser()))) {
+                                    shouldDisplayTask = true; //当前用户是审批人,需要显示任务
+                                    break;
+                                } else if (taskParallel.getStatus() != 2) {
+                                    //之前的审批人员任务未完成,不显示任务
+                                    break;
+                                }
+                            }
+                            if (!shouldDisplayTask) {
+                                //跳过当前任务
+                                return null;
+                            }
+                        }
+
                         List<String> names = taskParallelList.stream().map(TaskParallel::getTaskUserName).collect(Collectors.toList());
                         List<String> names = taskParallelList.stream().map(TaskParallel::getTaskUserName).collect(Collectors.toList());
                         if (names.size() > 0) {
                         if (names.size() > 0) {
                             vo.setTaskApproveUserNames(StringUtils.join(names, ","));
                             vo.setTaskApproveUserNames(StringUtils.join(names, ","));
@@ -346,6 +366,7 @@ public class ArchiveFileTaskController extends BladeController {
                     }
                     }
                     return vo;
                     return vo;
                 })
                 })
+                .filter(Objects::nonNull) //过滤掉为null的任务
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
         page.setRecords(pageList);
         page.setRecords(pageList);
         page.setTotal(totalCount);
         page.setTotal(totalCount);

+ 4 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -444,13 +444,15 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isNotEmpty(resultString)) {
         if (ObjectUtil.isNotEmpty(resultString)) {
             //检查预设任务流程的任务人是否存在签字证书信息
             //检查预设任务流程的任务人是否存在签字证书信息
             R<Object> objectR = archiveFileTaskClient.checkTaskUserCertificateInfo(resultString);
             R<Object> objectR = archiveFileTaskClient.checkTaskUserCertificateInfo(resultString);
-            if (objectR.getData().equals(true)) {
+            if (objectR.isSuccess()) {
                 archiveTaskBatchReportDTO.setUserIds(resultString);
                 archiveTaskBatchReportDTO.setUserIds(resultString);
+            } else {
+                return objectR;
             }
             }
         }
         }
 
 
         if (ObjectUtil.isEmpty(archiveTaskBatchReportDTO.getUserIds())) {
         if (ObjectUtil.isEmpty(archiveTaskBatchReportDTO.getUserIds())) {
-            throw new ServiceException("未获取到任务人信息,操作失败");
+            throw new ServiceException("未获取到任务人信息,操作失败");
         }
         }
 
 
         //创建上报任务
         //创建上报任务