liuyc 2 yıl önce
ebeveyn
işleme
51a059ccbf
13 değiştirilmiş dosya ile 346 ekleme ve 493 silme
  1. 1 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
  2. 0 1
      blade-service/blade-control/src/main/java/org/springblade/control/service/TaskProcessService.java
  3. 14 53
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AttendanceTripServiceImpl.java
  4. 14 57
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMFinancialReimbursementServiceImpl.java
  5. 15 51
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMInvoiceServiceImpl.java
  6. 14 59
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMLoanServiceImpl.java
  7. 15 57
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMOutsourcingPayServiceImpl.java
  8. 16 57
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPayServiceImpl.java
  9. 12 54
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPurchaseServiceImpl.java
  10. 12 48
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMUseCarServiceImpl.java
  11. 37 36
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java
  12. 191 17
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/TaskProcessServiceImpl.java
  13. 5 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java

+ 1 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java

@@ -156,7 +156,7 @@ public class User extends TenantEntity {
      * 部门id负责人
      */
     @ApiModelProperty(value = "部门id负责人")
-    private String isLader;
+    private String isLeader;
 
     /**
      * 职位

+ 0 - 1
blade-service/blade-control/src/main/java/org/springblade/control/service/TaskProcessService.java

@@ -35,5 +35,4 @@ public interface TaskProcessService extends BaseService<TaskProcessInfo> {
     boolean dataDictSubmit(TaskDataDictDTO dto);
 
     Map<String, List<TaskProcessRecordDictInfo>> dataDictList(String id);
-
 }

+ 14 - 53
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AttendanceTripServiceImpl.java

@@ -156,63 +156,24 @@ public class AttendanceTripServiceImpl extends BaseServiceImpl<AttendanceTripMap
                         var = true;
                     }
                 }
-                if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getPersonnelUser())) {
-                    //新增审批任务
-                    if (ObjectUtil.isEmpty(SecureUtil.getUserName())) {
-                        throw new ServiceException("获取当前用户信息失败,请联系管理员");
-                    }
-                    TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                    taskProcessInfo.setId(SnowFlakeUtil.getId());
-                    taskProcessInfo.setStatus(1); //待审批
-                    taskProcessInfo.setReportDate(new Date());
-                    taskProcessInfo.setTaskType(9); //出差审批
-                    taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【出差审批】审批");
-                    //上报人
-                    taskProcessInfo.setReportUserId(SecureUtil.getUserId());
-
-                    //审批人
-                    List<String> auditUserIds = new LinkedList<>();
-                    EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                    auditUserIds.add(responsibleObj.getUserId());
-                    EMProcessTaskUser personnelUser = dto.getPersonnelUser(); //人事
-                    auditUserIds.add(personnelUser.getUserId());
-                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                    for (String userId : auditUserIds) {
-                        if (StringUtils.isNotEmpty(userId)) {
-                            nonEmptyAuditUserIds.add(userId);
-                        }
-                    }
-                    if (nonEmptyAuditUserIds.size() == 0) {
-                        taskProcessInfo.setAuditUserIds(null);
-                    } else {
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                    }
 
+                //新增审批任务
+                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                taskProcessService.buildTaskProcessInfoImpl(9, taskProcessInfo);
 
-                    //抄送人
-                    if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                        List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                        taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                    }
-                    taskProcessService.save(taskProcessInfo);
-
-                    //新增信息
-                    dto.setIsTemp(1); //提交
-                    dto.setStatus(1); //待审批
-                    if (var) {
-                        this.save(dto);
-                    } else {
-                        this.saveOrUpdate(dto);
-                    }
-
-                    //新增审批任务关联信息
-                    jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",9)");
-
-                    //关联项目id,项目计划预算等,在任务闭环时计算推送
-
+                //新增信息
+                dto.setIsTemp(1); //提交
+                dto.setStatus(1); //待审批
+                if (var) {
+                    this.save(dto);
                 } else {
-                    throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                    this.saveOrUpdate(dto);
                 }
+
+                //新增审批任务关联信息
+                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",9)");
+
+                //关联项目id,项目计划预算等,在任务闭环时计算推送
             }
         }
         return true;

+ 14 - 57
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMFinancialReimbursementServiceImpl.java

@@ -172,67 +172,24 @@ public class EMFinancialReimbursementServiceImpl extends BaseServiceImpl<ExMFina
                         dto.setFrNumber(this.getNumber());
                     }
                 }
-                if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser()) && ObjectUtil.isNotEmpty(dto.getCashierUser())) {
-                    //新增审批任务
-                    TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                    taskProcessInfo.setId(SnowFlakeUtil.getId());
-                    taskProcessInfo.setStatus(1); //待审批
-                    taskProcessInfo.setReportDate(new Date());
-                    taskProcessInfo.setTaskType(2); //报销审批
-                    taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【报销审批】审批");
-                    //上报人
-                    taskProcessInfo.setReportUserId(SecureUtil.getUserId());
 
-                    //审批人
-                    List<String> auditUserIds = new LinkedList<>();
-                    EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                    auditUserIds.add(responsibleObj.getUserId());
-                    EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                    auditUserIds.add(financeObj.getUserId());
-                    if (ObjectUtil.isNotEmpty(dto.getFinalConfirmationUser())) { //最终确认付款人
-                        EMProcessTaskUser finalConfirmationObj = dto.getFinalConfirmationUser();
-                        auditUserIds.add(finalConfirmationObj.getUserId());
-                    }
-                    EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
-                    auditUserIds.add(cashierObj.getUserId());
-
-                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                    for (String userId : auditUserIds) {
-                        if (StringUtils.isNotEmpty(userId)) {
-                            nonEmptyAuditUserIds.add(userId);
-                        }
-                    }
-                    if (nonEmptyAuditUserIds.size() == 0) {
-                        taskProcessInfo.setAuditUserIds(null);
-                    } else {
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                    }
-
-
-                    //抄送人
-                    if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                        List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                        taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                    }
-                    taskProcessService.save(taskProcessInfo);
-
-                    //新增信息
-                    dto.setIsTemp(1); //提交
-                    dto.setStatus(1); //待审批
-                    if (var) {
-                        this.save(dto);
-                    } else {
-                        this.saveOrUpdate(dto);
-                    }
-
-                    //新增审批任务关联信息
-                    jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",2)");
-
-                    //关联项目预算budgetPlanIds目前只做存储,在审批完成后闭环时再进行计算推送
+                //新增审批任务
+                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                taskProcessService.buildTaskProcessInfoImpl(2, taskProcessInfo);
 
+                //新增信息
+                dto.setIsTemp(1); //提交
+                dto.setStatus(1); //待审批
+                if (var) {
+                    this.save(dto);
                 } else {
-                    throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                    this.saveOrUpdate(dto);
                 }
+
+                //新增审批任务关联信息
+                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",2)");
+
+                //关联项目预算budgetPlanIds目前只做存储,在审批完成后闭环时再进行计算推送
             }
         }
         return true;

+ 15 - 51
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMInvoiceServiceImpl.java

@@ -154,62 +154,26 @@ public class EMInvoiceServiceImpl extends BaseServiceImpl<ExMInvoiceMapper, EMIn
                     dto.setInvoiceNumber(this.getNumber());
                 }
             }
-            if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser())) {
-                //新增审批任务
-                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                taskProcessInfo.setId(SnowFlakeUtil.getId());
-                taskProcessInfo.setStatus(1); //待审批
-                taskProcessInfo.setReportDate(new Date());
-                taskProcessInfo.setTaskType(7); //发票审批
-                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【发票审批】审批");
-                //上报人
-                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
 
-                //审批人
-                List<String> auditUserIds = new LinkedList<>();
-                EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                auditUserIds.add(responsibleObj.getUserId());
-                EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                auditUserIds.add(financeObj.getUserId());
+            //新增审批任务
+            TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+            taskProcessService.buildTaskProcessInfoImpl(7, taskProcessInfo);
 
-                List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                for (String userId : auditUserIds) {
-                    if (StringUtils.isNotEmpty(userId)) {
-                        nonEmptyAuditUserIds.add(userId);
-                    }
-                }
-                if (nonEmptyAuditUserIds.size() == 0) {
-                    taskProcessInfo.setAuditUserIds(null);
-                } else {
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                }
-
-                //抄送人
-                if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                    List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                    taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                }
-                taskProcessService.save(taskProcessInfo);
-
-                //新增信息
-                dto.setIsTemp(1); //提交
-                dto.setStatus(1); //待审批
-                if (var) {
-                    this.save(dto);
-                } else {
-                    this.saveOrUpdate(dto);
-                }
-
-                //新增审批任务关联信息
-                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",7)");
+            //新增信息
+            dto.setIsTemp(1); //提交
+            dto.setStatus(1); //待审批
+            if (var) {
+                this.save(dto);
+            } else {
+                this.saveOrUpdate(dto);
+            }
 
-                //存储关联项目id,审批闭环后处理项目相关业务
+            //新增审批任务关联信息
+            jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",7)");
 
-                return true;
+            //存储关联项目id,审批闭环后处理项目相关业务
 
-            } else {
-                throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
-            }
+            return true;
         }
         return false;
     }

+ 14 - 59
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMLoanServiceImpl.java

@@ -154,69 +154,24 @@ public class EMLoanServiceImpl extends BaseServiceImpl<ExMLoanMapper, EMLoanInfo
                     dto.setLoanNumber(this.getNumber());
                 }
             }
-            if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser()) && ObjectUtil.isNotEmpty(dto.getCashierUser())) {
-                //新增审批任务
-                if (ObjectUtil.isEmpty(SecureUtil.getUserName())) {
-                    throw new ServiceException("获取当前用户信息失败,请联系管理员");
-                }
-                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                taskProcessInfo.setId(SnowFlakeUtil.getId());
-                taskProcessInfo.setStatus(1); //待审批
-                taskProcessInfo.setReportDate(new Date());
-                taskProcessInfo.setTaskType(4); //借款审批
-                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【借款审批】审批");
-                //上报人
-                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
-
-                //审批人
-                List<String> auditUserIds = new LinkedList<>();
-                EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                auditUserIds.add(responsibleObj.getUserId());
-                EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                auditUserIds.add(financeObj.getUserId());
-                if (ObjectUtil.isNotEmpty(dto.getFinalConfirmationUser())) { //最终确认付款人
-                    EMProcessTaskUser finalConfirmationObj = dto.getFinalConfirmationUser();
-                    auditUserIds.add(finalConfirmationObj.getUserId());
-                }
-                EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
-                auditUserIds.add(cashierObj.getUserId());
-
-                List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                for (String userId : auditUserIds) {
-                    if (StringUtils.isNotEmpty(userId)) {
-                        nonEmptyAuditUserIds.add(userId);
-                    }
-                }
-                if (nonEmptyAuditUserIds.size() == 0) {
-                    taskProcessInfo.setAuditUserIds(null);
-                } else {
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                }
-
-                //抄送人
-                if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                    List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                    taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                }
-                taskProcessService.save(taskProcessInfo);
-
-                //新增信息
-                dto.setIsTemp(1); //提交
-                dto.setStatus(1); //待审批
-                if (var) {
-                    this.save(dto);
-                } else {
-                    this.saveOrUpdate(dto);
-                }
 
-                //新增审批任务关联信息
-                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",4)");
-
-                return true;
+            //新增审批任务
+            TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+            taskProcessService.buildTaskProcessInfoImpl(4, taskProcessInfo);
 
+            //新增信息
+            dto.setIsTemp(1); //提交
+            dto.setStatus(1); //待审批
+            if (var) {
+                this.save(dto);
             } else {
-                throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                this.saveOrUpdate(dto);
             }
+
+            //新增审批任务关联信息
+            jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",4)");
+
+            return true;
         }
         return false;
     }

+ 15 - 57
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMOutsourcingPayServiceImpl.java

@@ -146,68 +146,26 @@ public class EMOutsourcingPayServiceImpl extends BaseServiceImpl<ExMOutsourcingP
                     var = true;
                 }
             }
-            if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser()) && ObjectUtil.isNotEmpty(dto.getCashierUser())) {
-                //新增审批任务
-                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                taskProcessInfo.setId(SnowFlakeUtil.getId());
-                taskProcessInfo.setStatus(1); //待审批
-                taskProcessInfo.setReportDate(new Date());
-                taskProcessInfo.setTaskType(8); //外包支付
-                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【外包支付】审批");
-                //上报人
-                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
 
-                //审批人
-                List<String> auditUserIds = new LinkedList<>();
-                EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                auditUserIds.add(responsibleObj.getUserId());
-                EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                auditUserIds.add(financeObj.getUserId());
-                if (ObjectUtil.isNotEmpty(dto.getFinalConfirmationUser())) { //最终确认付款人
-                    EMProcessTaskUser finalConfirmationObj = dto.getFinalConfirmationUser();
-                    auditUserIds.add(finalConfirmationObj.getUserId());
-                }
-                EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
-                auditUserIds.add(cashierObj.getUserId());
+            //新增审批任务
+            TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+            taskProcessService.buildTaskProcessInfoImpl(8, taskProcessInfo);
 
-                List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                for (String userId : auditUserIds) {
-                    if (StringUtils.isNotEmpty(userId)) {
-                        nonEmptyAuditUserIds.add(userId);
-                    }
-                }
-                if (nonEmptyAuditUserIds.size() == 0) {
-                    taskProcessInfo.setAuditUserIds(null);
-                } else {
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                }
-
-                //抄送人
-                if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                    List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                    taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                }
-                taskProcessService.save(taskProcessInfo);
-
-                //新增信息
-                dto.setIsTemp(1); //提交
-                dto.setStatus(1); //待审批
-                if (var) {
-                    this.save(dto);
-                } else {
-                    this.saveOrUpdate(dto);
-                }
-
-                //新增审批任务关联信息
-                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",8)");
+            //新增信息
+            dto.setIsTemp(1); //提交
+            dto.setStatus(1); //待审批
+            if (var) {
+                this.save(dto);
+            } else {
+                this.saveOrUpdate(dto);
+            }
 
-                //关联项目id只做存储,任务闭环时在进行业务计算
+            //新增审批任务关联信息
+            jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",8)");
 
-                return true;
+            //关联项目id只做存储,任务闭环时在进行业务计算
 
-            } else {
-                throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
-            }
+            return true;
         }
         return false;
     }

+ 16 - 57
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPayServiceImpl.java

@@ -127,67 +127,26 @@ public class EMPayServiceImpl extends BaseServiceImpl<ExMPayMapper, EMPayInfo> i
                     var = true;
                 }
             }
-            if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser()) && ObjectUtil.isNotEmpty(dto.getCashierUser())) {
-                //新增审批任务
-                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                taskProcessInfo.setId(SnowFlakeUtil.getId());
-                taskProcessInfo.setStatus(1); //待审批
-                taskProcessInfo.setReportDate(new Date());
-                taskProcessInfo.setTaskType(3); //支付审批
-                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【支付审批】审批");
-                //上报人
-                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
-
-                //审批人
-                List<String> auditUserIds = new LinkedList<>();
-                EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                auditUserIds.add(responsibleObj.getUserId());
-                EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                auditUserIds.add(financeObj.getUserId());
-                if (ObjectUtil.isNotEmpty(dto.getFinalConfirmationUser())) { //最终确认付款人
-                    EMProcessTaskUser finalConfirmationObj = dto.getFinalConfirmationUser();
-                    auditUserIds.add(finalConfirmationObj.getUserId());
-                }
-                EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
-                auditUserIds.add(cashierObj.getUserId());
-
-                List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                for (String userId : auditUserIds) {
-                    if (StringUtils.isNotEmpty(userId)) {
-                        nonEmptyAuditUserIds.add(userId);
-                    }
-                }
-                if (nonEmptyAuditUserIds.size() == 0) {
-                    taskProcessInfo.setAuditUserIds(null);
-                } else {
-                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                }
-
-                //抄送人
-                if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                    List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                    taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                }
-                taskProcessService.save(taskProcessInfo);
-
-                //新增信息
-                dto.setIsTemp(1); //提交
-                dto.setStatus(1); //待审批
-                if (var) {
-                    this.save(dto);
-                } else {
-                    this.saveOrUpdate(dto);
-                }
 
-                //新增审批任务关联信息
-                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",3)");
+            //新增审批任务
+            TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+            taskProcessService.buildTaskProcessInfoImpl(3, taskProcessInfo);
 
-                //关联项目、合同项目提成等目前只做存储,在审批完成后闭环时再进行计算推送
-
-                return true;
+            //新增信息
+            dto.setIsTemp(1); //提交
+            dto.setStatus(1); //待审批
+            if (var) {
+                this.save(dto);
             } else {
-                throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                this.saveOrUpdate(dto);
             }
+
+            //新增审批任务关联信息
+            jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",3)");
+
+            //关联项目、合同项目提成等目前只做存储,在审批完成后闭环时再进行计算推送
+
+            return true;
         }
         return false;
     }

+ 12 - 54
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMPurchaseServiceImpl.java

@@ -154,64 +154,22 @@ public class EMPurchaseServiceImpl extends BaseServiceImpl<ExMPurchaseMapper, EM
                         var = true;
                     }
                 }
-                if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getFinanceUser()) && ObjectUtil.isNotEmpty(dto.getCashierUser())) {
-                    //新增审批任务
-                    TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                    taskProcessInfo.setId(SnowFlakeUtil.getId());
-                    taskProcessInfo.setStatus(1); //待审批
-                    taskProcessInfo.setReportDate(new Date());
-                    taskProcessInfo.setTaskType(5); //采购审批
-                    taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【采购审批】审批");
-                    //上报人
-                    taskProcessInfo.setReportUserId(SecureUtil.getUserId());
 
-                    //审批人
-                    List<String> auditUserIds = new LinkedList<>();
-                    EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                    auditUserIds.add(responsibleObj.getUserId());
-                    EMProcessTaskUser financeObj = dto.getFinanceUser(); //财务
-                    auditUserIds.add(financeObj.getUserId());
-                    if (ObjectUtil.isNotEmpty(dto.getFinalConfirmationUser())) { //最终确认付款人
-                        EMProcessTaskUser finalConfirmationObj = dto.getFinalConfirmationUser();
-                        auditUserIds.add(finalConfirmationObj.getUserId());
-                    }
-                    EMProcessTaskUser cashierObj = dto.getCashierUser(); //出纳
-                    auditUserIds.add(cashierObj.getUserId());
-
-                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                    for (String userId : auditUserIds) {
-                        if (StringUtils.isNotEmpty(userId)) {
-                            nonEmptyAuditUserIds.add(userId);
-                        }
-                    }
-                    if (nonEmptyAuditUserIds.size() == 0) {
-                        taskProcessInfo.setAuditUserIds(null);
-                    } else {
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                    }
-
-                    //抄送人
-                    if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                        List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                        taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                    }
-                    taskProcessService.save(taskProcessInfo);
-
-                    //新增信息
-                    dto.setIsTemp(1); //提交
-                    dto.setStatus(1); //待审批
-                    if (var) {
-                        this.save(dto);
-                    } else {
-                        this.saveOrUpdate(dto);
-                    }
-
-                    //新增审批任务关联信息
-                    jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",5)");
+                //新增审批任务
+                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                taskProcessService.buildTaskProcessInfoImpl(5, taskProcessInfo);
 
+                //新增信息
+                dto.setIsTemp(1); //提交
+                dto.setStatus(1); //待审批
+                if (var) {
+                    this.save(dto);
                 } else {
-                    throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                    this.saveOrUpdate(dto);
                 }
+
+                //新增审批任务关联信息
+                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",5)");
             }
         }
         return true;

+ 12 - 48
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/EMUseCarServiceImpl.java

@@ -156,58 +156,22 @@ public class EMUseCarServiceImpl extends BaseServiceImpl<ExMUseCarMapper, EMUseC
                         var = true;
                     }
                 }
-                if (ObjectUtil.isNotEmpty(dto.getResponsibleUser()) && ObjectUtil.isNotEmpty(dto.getPersonnelUser())) {
-                    //新增审批任务
-                    TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-                    taskProcessInfo.setId(SnowFlakeUtil.getId());
-                    taskProcessInfo.setStatus(1); //待审批
-                    taskProcessInfo.setReportDate(new Date());
-                    taskProcessInfo.setTaskType(6); //用车审批
-                    taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【用车审批】审批");
-                    //上报人
-                    taskProcessInfo.setReportUserId(SecureUtil.getUserId());
 
-                    //审批人
-                    List<String> auditUserIds = new LinkedList<>();
-                    EMProcessTaskUser responsibleObj = dto.getResponsibleUser(); //部门负责人
-                    auditUserIds.add(responsibleObj.getUserId());
-                    EMProcessTaskUser personnelUser = dto.getPersonnelUser(); //人事
-                    auditUserIds.add(personnelUser.getUserId());
-
-                    List<String> nonEmptyAuditUserIds = new LinkedList<>();
-                    for (String userId : auditUserIds) {
-                        if (StringUtils.isNotEmpty(userId)) {
-                            nonEmptyAuditUserIds.add(userId);
-                        }
-                    }
-                    if (nonEmptyAuditUserIds.size() == 0) {
-                        taskProcessInfo.setAuditUserIds(null);
-                    } else {
-                        taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-                    }
-
-                    //抄送人
-                    if (ObjectUtil.isNotEmpty(dto.getCcUserList())) {
-                        List<String> ccUserObjList = dto.getCcUserList().stream().map(EMProcessTaskUser::getUserId).collect(Collectors.toList());
-                        taskProcessInfo.setCcUserIds(StringUtils.join(ccUserObjList, ","));
-                    }
-                    taskProcessService.save(taskProcessInfo);
-
-                    //新增信息
-                    dto.setIsTemp(1); //提交
-                    dto.setStatus(1); //待审批
-                    if (var) {
-                        this.save(dto);
-                    } else {
-                        this.saveOrUpdate(dto);
-                    }
-
-                    //新增审批任务关联信息
-                    jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",6)");
+                //新增审批任务
+                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                taskProcessService.buildTaskProcessInfoImpl(6, taskProcessInfo);
 
+                //新增信息
+                dto.setIsTemp(1); //提交
+                dto.setStatus(1); //待审批
+                if (var) {
+                    this.save(dto);
                 } else {
-                    throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+                    this.saveOrUpdate(dto);
                 }
+
+                //新增审批任务关联信息
+                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + dto.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + dto.getId() + ",6)");
             }
         }
         return true;

+ 37 - 36
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java

@@ -304,48 +304,49 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
         if (ObjectUtil.isEmpty(task.getDeptId())) {
             throw new ServiceException("获取部门信息失败,请联系管理员");
         }
-        //修改计划任务的状态为已完成
-        boolean updated = projectCostBudgetServiceImpl.update(Wrappers.<ProjectCostBudget>lambdaUpdate().set(ProjectCostBudget::getStatus, 4).eq(ProjectCostBudget::getId, taskId));
 
         //获取部门负责人信息
         User departmentHead = taskProcessService.getDepartmentHead(task.getDeptId());
-        if (updated && departmentHead != null) {
-            //新增审批任务
-            TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
-            taskProcessInfo.setId(SnowFlakeUtil.getId());
-            taskProcessInfo.setStatus(1); //待审批
-            taskProcessInfo.setReportDate(new Date());
-            taskProcessInfo.setTaskType(1); //任务审批
-            taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【任务审批】审批");
-
-            //上报人
-            taskProcessInfo.setReportUserId(SecureUtil.getUserId());
-
-            //审批人
-            List<String> auditUserIds = new LinkedList<>();
-            EMProcessTaskUser responsibleObj = new EMProcessTaskUser(); //部门负责人
-            responsibleObj.setUserId(departmentHead.getId() + "");
-            responsibleObj.setUserName(departmentHead.getRealName());
-            auditUserIds.add(responsibleObj.getUserId());
-
-            List<String> nonEmptyAuditUserIds = new LinkedList<>();
-            for (String userId : auditUserIds) {
-                if (StringUtils.isNotEmpty(userId)) {
-                    nonEmptyAuditUserIds.add(userId);
+        if (departmentHead != null) {
+            //修改计划任务的状态为已完成
+            boolean updated = projectCostBudgetServiceImpl.update(Wrappers.<ProjectCostBudget>lambdaUpdate().set(ProjectCostBudget::getStatus, 4).eq(ProjectCostBudget::getId, taskId));
+            if (updated) {
+                //新增审批任务
+                TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
+                taskProcessInfo.setId(SnowFlakeUtil.getId());
+                taskProcessInfo.setStatus(1); //待审批
+                taskProcessInfo.setReportDate(new Date());
+                taskProcessInfo.setTaskType(1); //任务审批
+                taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】向您发起【任务审批】审批");
+
+                //上报人
+                taskProcessInfo.setReportUserId(SecureUtil.getUserId());
+
+                //审批人
+                List<String> auditUserIds = new LinkedList<>();
+                EMProcessTaskUser responsibleObj = new EMProcessTaskUser(); //部门负责人
+                responsibleObj.setUserId(departmentHead.getId() + "");
+                responsibleObj.setUserName(departmentHead.getRealName());
+                auditUserIds.add(responsibleObj.getUserId());
+
+                List<String> nonEmptyAuditUserIds = new LinkedList<>();
+                for (String userId : auditUserIds) {
+                    if (StringUtils.isNotEmpty(userId)) {
+                        nonEmptyAuditUserIds.add(userId);
+                    }
+                }
+                if (nonEmptyAuditUserIds.size() == 0) {
+                    taskProcessInfo.setAuditUserIds(null);
+                } else {
+                    taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
                 }
-            }
-            if (nonEmptyAuditUserIds.size() == 0) {
-                taskProcessInfo.setAuditUserIds(null);
-            } else {
-                taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
-            }
-
-            taskProcessService.save(taskProcessInfo);
 
-            //新增审批任务关联信息
-            jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + task.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + task.getId() + ",1)");
+                taskProcessService.save(taskProcessInfo);
 
-            return true;
+                //新增审批任务关联信息
+                jdbcTemplate.execute("delete from c_expense_task_record where task_id = " + taskProcessInfo.getId() + " and expense_info_id = " + task.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + task.getId() + ",1)");
+                return true;
+            }
         }
         return false;
     }

+ 191 - 17
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/TaskProcessServiceImpl.java

@@ -23,6 +23,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -325,6 +326,16 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
             //已审批人员List
             Set<String> auditUserIdCompleteList = new HashSet<>(Func.toStrList(taskProcessInfo.getAuditUserIdsComplete()));
 
+            //待审批的首位审批人,如果首位审批人还未审批,那么后面人员无法审批
+            if (auditUserIdList.size() > 0) {
+                String firstUserId = auditUserIdList.get(0);
+                if (!firstUserId.equals(SecureUtil.getUserId() + "")) {
+                    User user = iUserClient.userInfoById(Long.parseLong(firstUserId)).getData();
+                    bladeRedis.del("user:id=" + SecureUtil.getUserId());//解锁
+                    throw new ServiceException("当前任务的审批人【" + user.getRealName() + "】还未完成审批流程,请稍后再试");
+                }
+            }
+
             //剔除待审批中当前用户信息
             if (auditUserIdList.removeIf(next -> next != null && next.equals(SecureUtil.getUserId() + ""))) {
                 //剔除后视为已完成审批
@@ -708,23 +719,6 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
         }
     }
 
-    /**
-     * 根据部门id获取部门负责人信息
-     *
-     * @param deptId
-     * @return
-     */
-    public User getDepartmentHead(Long deptId) {
-        if (ObjectUtil.isNotEmpty(deptId)) {
-            //TODO 根据部门id获取部门负责人信息
-            User user = new User();
-            user.setId(SnowFlakeUtil.getId());
-            user.setDeptId("123456789");
-            return user;
-        }
-        return null;
-    }
-
     /**
      * 获取计划任务List
      *
@@ -748,5 +742,185 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
         return null;
     }
 
+    /**
+     * 构造审批任务
+     *
+     * @param type            任务类型
+     * @param taskProcessInfo 任务实体
+     */
+    public void buildTaskProcessInfoImpl(int type, TaskProcessInfo taskProcessInfo) {
+        taskProcessInfo.setId(SnowFlakeUtil.getId());
+        taskProcessInfo.setStatus(1); //待审批
+        taskProcessInfo.setReportDate(new Date());
+        taskProcessInfo.setTaskType(type);
+        String taskNameByType = this.taskNameByType(type);
+        if (StringUtils.isNotEmpty(taskNameByType)) {
+            taskProcessInfo.setTaskName("【" + SecureUtil.getUserName() + "】" + taskNameByType);
+        }
+        //上报人
+        taskProcessInfo.setReportUserId(SecureUtil.getUserId());
+
+        //构造审批人auditUserIds
+        List<String> auditUserIds = new LinkedList<>();
+
+        //判断当前用户是否是部门负责人,如果是,那么不自己审批(跳过)
+        User user = iUserClient.userInfoById(SecureUtil.getUserId()).getData();
+        if (user != null && ObjectUtil.isEmpty(user.getIsLeader())) {
+            //负责人getIsLeader字段=null,证明不是负责人,那么获取当前部门负责人
+            User departmentHead = this.getDepartmentHead(Long.parseLong(SecureUtil.getUser().getDeptId()));
+            auditUserIds.add(departmentHead.getId() + "");
+        }
+
+        //获取审批人信息
+        Map<String, List<User>> approveUserMaps = this.getApproveUserMaps(type);
+
+        //审批人
+        List<User> spUserList = approveUserMaps.get("SP");
+        if (spUserList.size() == 0) {
+            throw new ServiceException("获取当前审批流程人员信息失败,请联系管理员");
+        }
+        auditUserIds.addAll(spUserList.stream().map(User::getId).map(String::valueOf).collect(Collectors.toList()));
+
+        List<String> nonEmptyAuditUserIds = new LinkedList<>();
+        for (String userId : auditUserIds) {
+            if (StringUtils.isNotEmpty(userId)) {
+                nonEmptyAuditUserIds.add(userId);
+            }
+        }
+        if (nonEmptyAuditUserIds.size() == 0) {
+            taskProcessInfo.setAuditUserIds(null);
+        } else {
+            taskProcessInfo.setAuditUserIds(StringUtils.join(nonEmptyAuditUserIds, ","));
+        }
+
+        //抄送人
+        List<User> zcUserList = approveUserMaps.get("ZC");
+        if (zcUserList.size() > 0) {
+            List<String> zcUserIds = zcUserList.stream().map(User::getId).map(String::valueOf).collect(Collectors.toList());
+            taskProcessInfo.setCcUserIds(StringUtils.join(zcUserIds, ","));
+        }
+
+        //入库
+        this.save(taskProcessInfo);
+    }
+
+    /**
+     * 根据任务类型获取任务名称
+     *
+     * @param type
+     * @return
+     */
+    private String taskNameByType(int type) {
+        switch (type) {
+            case 2:
+                return "向您发起【报销审批】审批";
+            case 3:
+                return "向您发起【支付审批】审批";
+            case 4:
+                return "向您发起【借款审批】审批";
+            case 5:
+                return "向您发起【采购审批】审批";
+            case 6:
+                return "向您发起【用车审批】审批";
+            case 7:
+                return "向您发起【发票审批】审批";
+            case 8:
+                return "向您发起【外包支付】审批";
+            case 9:
+                return "向您发起【出差审批】审批";
+        }
+        return "";
+    }
+
+    /**
+     * 根据部门id获取部门负责人信息(一个部门只有一个负责人)
+     *
+     * @param deptId
+     * @return
+     */
+    public User getDepartmentHead(Long deptId) {
+        if (ObjectUtil.isNotEmpty(deptId)) {
+            List<User> leaderUser = jdbcTemplate.query("select * from blade_user where dept_id like '%" + deptId + "%' and is_leader like '%" + deptId + "%'", new BeanPropertyRowMapper<>(User.class));
+            if (leaderUser.size() == 1) {
+                return leaderUser.get(0);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据审批类型获取审批人id信息(不包括部门负责人,单独处理)
+     *
+     * @param type 数据类型
+     * @return
+     */
+    public Map<String, List<User>> getApproveUserMaps(int type) {
+        //tenant_id = 003077(管控平台) dept_type = 3(最底层为岗位信息)
+        List<Dept> deptListControl = jdbcTemplate.query("select * from blade_dept where tenant_id = 003077 and dept_type = 3", new BeanPropertyRowMapper<>(Dept.class));
+        Map<String, List<User>> resultMaps = new LinkedHashMap<>();
+        List<String> spPostIds = new LinkedList<>();
+        List<String> zcPostIds = new LinkedList<>();
+        List<DictInfo> query = new ArrayList<>();
+        switch (type) {
+            case 2://财务报销
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%财务报销%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 3://支付申请
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%支付申请%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 4://借款申请
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%借款申请%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 5://采购申请
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%采购申请%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 6://用车审批
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%用车申请%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 7://发票审批
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%发票管理%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 8://外包支付
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%外包支付%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+            case 9://出差审批
+                query = jdbcTemplate.query("select id from c_dict_info where dict_name like '%出差管理%' and type = 6", new BeanPropertyRowMapper<>(DictInfo.class));
+                break;
+        }
+
+        if (query.size() == 1) {
+            DictInfo dictInfo = query.get(0);
+            List<TaskProcessRecordDictInfo> dictInfoList = jdbcTemplate.query("select * from c_task_process_record_dict_info where dict_id = " + dictInfo.getId(), new BeanPropertyRowMapper<>(TaskProcessRecordDictInfo.class));
+            if (dictInfoList.size() > 0) {
+                List<TaskProcessRecordDictInfo> spRoleInfos = dictInfoList.stream().filter(f -> f.getType().equals(1))
+                        .sorted(Comparator.comparingInt(TaskProcessRecordDictInfo::getSort))
+                        .collect(Collectors.toList());
+                List<TaskProcessRecordDictInfo> zcRoleInfos = dictInfoList.stream().filter(f -> f.getType().equals(2))
+                        .sorted(Comparator.comparingInt(TaskProcessRecordDictInfo::getSort))
+                        .collect(Collectors.toList());
+                for (TaskProcessRecordDictInfo spRoleInfo : spRoleInfos) {
+                    for (Dept dept : deptListControl) {
+                        if (spRoleInfo.getRoleName().equals(dept.getDeptName())) {
+                            spPostIds.add(dept.getId() + "");
+                        }
+                    }
+                }
+                for (TaskProcessRecordDictInfo zcRoleInfo : zcRoleInfos) {
+                    for (Dept dept : deptListControl) {
+                        if (zcRoleInfo.getRoleName().equals(dept.getDeptName())) {
+                            zcPostIds.add(dept.getId() + "");
+                        }
+                    }
+                }
+            }
+        }
+
+        List<User> spUserList = jdbcTemplate.query("select * from blade_user where tenant_id = 003077 and dept_id in(" + StringUtils.join(spPostIds, ",") + ")", new BeanPropertyRowMapper<>(User.class));
+        List<User> zcUserList = jdbcTemplate.query("select * from blade_user where tenant_id = 003077 and dept_id in(" + StringUtils.join(zcPostIds, ",") + ")", new BeanPropertyRowMapper<>(User.class));
+        resultMaps.put("SP", spUserList);
+        resultMaps.put("ZC", zcUserList);
+        return resultMaps;
+    }
+
 
 }

+ 5 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java

@@ -19,6 +19,7 @@ package org.springblade.system.user.wrapper;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.system.cache.DictCache;
 import org.springblade.system.cache.SysCache;
 import org.springblade.system.entity.Tenant;
@@ -52,8 +53,10 @@ public class UserWrapper extends BaseEntityWrapper<User, UserVO> {
         userVO.setDeptName(Func.join(deptName));
         userVO.setPostName(Func.join(postName));
         userVO.setSexName(DictCache.getValue(DictEnum.SEX, user.getSex()));
-        String value = DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()).replace("[", "").replace("]", "");
-        userVO.setUserTypeName(value);
+        if (ObjectUtil.isNotEmpty(user.getUserType())) {
+            String value = DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()).replace("[", "").replace("]", "");
+            userVO.setUserTypeName(value);
+        }
         return userVO;
     }