Browse Source

增加新的审核模式

QuYueTing 7 months ago
parent
commit
392dd9ecc7

+ 10 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -1597,10 +1597,18 @@ public class ReportController {
             for (Report report : reportList) {
                 report.setIsFinalAudit(0);
             }
+        } else if (comTimeType.getReportAuditType() == 10) {
+            //项目经理->项目管理员(复审人)->公司副总(thirdAuditor)审核, 通过extraField1来保存当前走到的节点,第一层是项目经理审核
+            for (Report report : reportList) {
+                report.setProjectAuditState(0);
+                report.setIsDeptAudit(0);
+                report.setIsFinalAudit(0);
+                report.setExtraField1(0);
+                String inchargerId = projectList.stream().filter(p -> p.getId().equals(report.getProjectId())).findFirst().get().getInchargerId();
+                report.setProjectAuditorId(inchargerId);
+            }
         }
 
-
-
         //只有项目管理专业版才要检查成本预算
         if (company.getPackageProject() == 1) {
             //检查成本是否超过预算

+ 77 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2356,6 +2356,44 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
+            } else if (timeType.getReportAuditType() == 10) {
+                //项目经理->项目PMO->公司副总
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> updateReportList = new ArrayList<>();
+                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, extra_field1, creator_id, create_date, project_id, project_auditor_id, is_final_audit").in("id", ids));
+                for (Report r : reportList) {
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if (hasAuditAllPri || user.getId().equals(r.getProjectAuditorId())) {
+                        if (r.getExtraField1() == 0) {
+                            //项目经理审核通过,到PMO审核
+                            Project p = projectMapper.selectById(r.getProjectId());
+                            if (p != null) {
+                                newReport.setProjectAuditorId(p.getReviwerId());
+                                newReport.setExtraField1(1);
+                            } else {
+                                httpRespMsg.setError("该项目不存在");
+                                return httpRespMsg;
+                            }
+                        } else if (r.getExtraField1() == 1) {
+                            //走到公司副总审核
+                            newReport.setProjectAuditorId(timeType.getThirdAuditor());
+                            newReport.setExtraField1(2);
+                        } else if (r.getExtraField1() == 2) {
+                            //最终审核通过
+                            newReport.setState(1);
+                            newReport.setProjectAuditState(1);
+                        }
+                        updateReportList.add(newReport);
+                    } else {
+                        httpRespMsg.setError("您无权审核该日报");
+                        return httpRespMsg;
+                    }
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
             } else {
                 //之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流(部门审批时,本部门的负责人是否由上级部门负责人审核,可配置)
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
@@ -3703,7 +3741,45 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
-            } else {
+            } else if (timeType.getReportAuditType() == 10) {
+                //项目经理->项目PMO->公司副总
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> updateReportList = new ArrayList<>();
+                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, extra_field1, creator_id, create_date, project_id, project_auditor_id, is_final_audit").in("id", ids));
+                for (Report r : reportList) {
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if (hasAuditAllPri || user.getId().equals(r.getProjectAuditorId())) {
+                        if (r.getExtraField1() == 0) {
+                            //项目经理审核通过,到PMO审核
+                            Project p = projectMapper.selectById(r.getProjectId());
+                            if (p != null) {
+                                newReport.setProjectAuditorId(p.getReviwerId());
+                                newReport.setExtraField1(1);
+                            } else {
+                                httpRespMsg.setError("该项目不存在");
+                                return httpRespMsg;
+                            }
+                        } else if (r.getExtraField1() == 1) {
+                            //走到公司副总审核
+                            newReport.setProjectAuditorId(timeType.getThirdAuditor());
+                            newReport.setExtraField1(2);
+                        } else if (r.getExtraField1() == 2) {
+                            //最终审核通过
+                            newReport.setState(1);
+                            newReport.setProjectAuditState(1);
+                        }
+                        updateReportList.add(newReport);
+                    } else {
+                        httpRespMsg.setError("您无权审核该日报");
+                        return httpRespMsg;
+                    }
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
+            }else {
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
                                 .orderByAsc("seq"));