Jelajahi Sumber

代填审批流修改

QuYueTing 5 bulan lalu
induk
melakukan
1aa3bcae26

+ 38 - 31
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -902,9 +902,10 @@ public class ReportController {
             }
         }
         try {
+            User reportor = targetUidList == null ? user : userService.getById(targetUidList.get(0));
             List<AuditWorkflowTimeSetting> auditWorkflowList
                     = auditWorkflowTimeSettingMapper.selectList(
-                    new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", user.getDepartmentId()).orderByAsc("seq"));
+                    new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", reportor.getDepartmentId()).orderByAsc("seq"));
             List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
 
             //准备全局的校验数据
@@ -913,7 +914,7 @@ public class ReportController {
             if (comTimeType.getType() == 2) {
                 excludeTimeList = timeAutoExcludeMapper.selectList(new QueryWrapper<TimeAutoExclude>().eq("company_id", user.getCompanyId()));
                 //按当前填报人所属部门或者全公司来匹配
-                excludeTimeList = excludeTimeList.stream().filter(ex->ex.getDId() == null || ex.getDId().equals(user.getDepartmentId())).collect(Collectors.toList());
+                excludeTimeList = excludeTimeList.stream().filter(ex->ex.getDId() == null || ex.getDId().equals(reportor.getDepartmentId())).collect(Collectors.toList());
             }
 
             for (int i = 0; i < id.length; i++) {
@@ -1142,6 +1143,7 @@ public class ReportController {
                     } else {
                         //批量代填的情况
                         for (User subsUser : targetUserList) {
+                            System.out.println("这是代填=========");
                             Report report = new Report()
                                     .setId(id[i] == -1 ? null : id[i])
                                     .setProjectId(projectId[i])
@@ -1154,7 +1156,7 @@ public class ReportController {
                                     .setCustomData(customData[i])
                                     .setStage(stage != null && stage.length>0?stage[i]:"-")
 //                                    .setState(auditWorkflowList.size() == 0?1:0)//代填的如果没有自定义审核流程就直接审核通过了
-                                    .setCompanyId(user.getCompanyId())
+                                    .setCompanyId(subsUser.getCompanyId())
                                     .setPicAdd(pics!=null?pics[i]:null)
                                     .setPicStr(picStr!=null?picStr[i]:null)
                                     .setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")))
@@ -1179,34 +1181,38 @@ public class ReportController {
                                 report.setState(draft==0?0:3);
                             } else {
                                 //并非并行审核模式下的代填,需要设置审核状态
-                                if (auditWorkflowList.size() == 0) {
-                                    //没有自定义审核流,直接代填的,还是走正常的审核流程
-                                    report.setIsDeptAudit(0);
-                                    report.setIsFinalAudit(1);
-                                    report.setState(0);
-                                } else {
-                                    //有审核流程的,取项目经理后面的流程节点
-                                    int projectLeaderNodeIndex = 0;
-                                    for (int t=0;t<auditWorkflowList.size(); t++) {
-                                        if (auditWorkflowList.get(t).getIsDeptAudit() == 0) {
-                                            projectLeaderNodeIndex = t;
-                                            break;
-                                        }
-                                    }
-                                    if (projectLeaderNodeIndex == auditWorkflowList.size() -1) {
-                                        //最后一个节点就是项目经理,那就不用审核了,直接通过
-                                        report.setState(1);
-                                    } else {
-                                        //否则取下一个节点,待审核
-                                        report.setState(0);
-                                        int nextIndex = projectLeaderNodeIndex + 1;
-                                        AuditWorkflowTimeSetting nextNode = auditWorkflowList.get(nextIndex);
-                                        report.setIsFinalAudit((nextIndex == auditWorkflowList.size()-1)?1:0);
-                                        report.setIsDeptAudit(nextNode.getIsDeptAudit());
-                                        report.setAuditDeptid(nextNode.getAuditDeptId());
-                                        report.setAuditDeptManagerid(nextNode.getAuditDeptId() != null?allDeptList.stream().filter(d->d.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId(): null);
-                                    }
-                                }
+                                report.setState(0);
+                                setReportWorkflowAuditor(auditWorkflowList, allDeptList, report,comTimeType);
+
+//                                if (auditWorkflowList.size() == 0) {
+//                                    //没有自定义审核流,直接代填的,还是走正常的审核流程
+//                                    report.setIsDeptAudit(0);
+//                                    report.setIsFinalAudit(1);
+//                                    report.setState(0);
+//                                } else {
+//                                    System.out.println("代填的情况下,有自定义审核流程");
+
+//                                    int projectLeaderNodeIndex = 0;
+//                                    for (int t=0;t<auditWorkflowList.size(); t++) {
+//                                        if (auditWorkflowList.get(t).getIsDeptAudit() == 0) {
+//                                            projectLeaderNodeIndex = t;
+//                                            break;
+//                                        }
+//                                    }
+//                                    if (projectLeaderNodeIndex == auditWorkflowList.size() -1) {
+//                                        //最后一个节点就是项目经理,那就不用审核了,直接通过
+//                                        report.setState(1);
+//                                    } else {
+//                                        //否则取下一个节点,待审核
+//                                        report.setState(0);
+//                                        int nextIndex = projectLeaderNodeIndex + 1;
+//                                        AuditWorkflowTimeSetting nextNode = auditWorkflowList.get(nextIndex);
+//                                        report.setIsFinalAudit((nextIndex == auditWorkflowList.size()-1)?1:0);
+//                                        report.setIsDeptAudit(nextNode.getIsDeptAudit());
+//                                        report.setAuditDeptid(nextNode.getAuditDeptId());
+//                                        report.setAuditDeptManagerid(nextNode.getAuditDeptId() != null?allDeptList.stream().filter(d->d.getDepartmentId().equals(nextNode.getAuditDeptId())).findFirst().get().getManagerId(): null);
+//                                    }
+//                                }
                             }
 
 
@@ -2163,6 +2169,7 @@ public class ReportController {
             report.setIsFinalAudit(auditWorkflowList.size() > 1?0:1);
             report.setIsDeptAudit(firstNode.getIsDeptAudit());
             report.setAuditDeptid(firstNode.getAuditDeptId());
+            System.out.println("firstNode.getIsDeptAudit() = " + firstNode.getIsDeptAudit());
             if (firstNode.getIsDeptAudit() == 1) {
                 Department curDept = allDeptList.stream()
                         .filter(ad->ad.getDepartmentId().equals(firstNode.getAuditDeptId())).findFirst().get();