Selaa lähdekoodia

reportAuditType=5时,增加支持第二第三审核人

QuYueTing 9 kuukautta sitten
vanhempi
commit
a1394dc695

+ 14 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2024-06-22
+ * @since 2024-07-24
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -598,6 +598,19 @@ public class TimeType extends Model<TimeType> {
     @TableField(exist = false)
     private Integer saasSyncContact;
 
+    /**
+     * 日报第二审核人;在reportAuditType5时有效
+     */
+    @TableField("second_auditor")
+    private String secondAuditor;
+
+    /**
+     * 日报第三审核人;在reportAuditType5时有效
+     */
+    @TableField("third_auditor")
+    private String thirdAuditor;
+
+
     @Override
     protected Serializable pkVal() {
         return this.companyId;

+ 54 - 15
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2137,6 +2137,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
                 List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, creator_id, create_date, project_id,audit_dept_managerid,department_audit_state, project_auditor_id, is_dept_audit").in("id", ids));
                 Integer onlyAuditOnce = userMapper.selectById(reportList.get(0).getCreatorId()).getOnlyAuditOnce();
+                //5情况下,可能设置了第二和第三审核人
+                String secondAuditor = timeType.getSecondAuditor();
+                String thirdAuditor = timeType.getThirdAuditor();
                 for (Report r : reportList) {
                     //直属领导审核或者部门负责人审核
                     Report newReport = new Report();
@@ -2144,9 +2147,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (timeType.getReportAuditType() == 5) {
                         if(hasAuditAllPri || ((r.getIsDeptAudit() == 0 &&  user.getId().equals(r.getProjectAuditorId()))
                                 || (r.getIsDeptAudit() == 1 && user.getId().equals(r.getAuditDeptManagerid())))){
-                            newReport.setState(1);
-                            newReport.setDepartmentAuditState(1);
-                            newReport.setProjectAuditState(1);
+                            if (thirdAuditor != null && secondAuditor != null) {
+                                if (user.getId().equals(thirdAuditor)) {
+                                    //当前为第三审核人在审核,直接通过
+                                    newReport.setState(1);
+                                    newReport.setDepartmentAuditState(1);
+                                    newReport.setProjectAuditState(1);
+                                } else if (user.getId().equals(secondAuditor)) {
+                                    newReport.setIsDeptAudit(0);
+                                    newReport.setProjectAuditorId(thirdAuditor);
+                                } else {
+                                    //第一层审核,转给第二审核人
+                                    newReport.setIsDeptAudit(0);
+                                    newReport.setProjectAuditorId(secondAuditor);
+                                }
+                            } else {
+                                newReport.setState(1);
+                                newReport.setDepartmentAuditState(1);
+                                newReport.setProjectAuditState(1);
+                            }
                             newReport.setProjectAuditTime(LocalDateTime.now());
                         }else {
                             httpRespMsg.setError("您无权审核该日报");
@@ -2734,12 +2753,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             Integer roleId = user.getRoleId();
             boolean canAuditAllReport = sysFunctionService.hasPriviledge(roleId, "审核全员日报");
             boolean isDirectAudit = false;
-            String reporterSuperiorId = userMapper.selectById(oneReport.getCreatorId()).getSuperiorId();
-            if(reporterSuperiorId!=null && reporterSuperiorId.equals(user.getId().toString())){
-                isDirectAudit = true;
-            }
-
-            if(!(isDirectAudit  || (reporterSuperiorId == null && user.getId().equals(oneReport.getAuditDeptManagerid())) || canAuditAllReport)){
+            if (!(canAuditAllReport || user.getId().equals(oneReport.getProjectAuditorId()) || user.getId().equals(oneReport.getAuditDeptManagerid()))) {
                 httpRespMsg.setError("您无权操作权限");
                 return httpRespMsg;
             }
@@ -3436,6 +3450,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 //人员所属部门负责人审核或者直属领导审核
                 boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
                 List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, group_audit_state, creator_id, create_date, project_id,audit_dept_managerid,department_audit_state, project_auditor_id, is_dept_audit").in("id", ids));
+                String secondAuditor = timeType.getSecondAuditor();
+                String thirdAuditor = timeType.getThirdAuditor();
                 allReports = reportList;
                 for (Report r : reportList) {
                     //直属领导审核或者部门负责人审核
@@ -3444,13 +3460,36 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (timeType.getReportAuditType() == 5) {
                         if(hasAuditAllPri || ((r.getIsDeptAudit() == 0 &&  user.getId().equals(r.getProjectAuditorId()))
                                 || (r.getIsDeptAudit() == 1 && user.getId().equals(r.getAuditDeptManagerid())))){
-                            r.setState(1);
-                            r.setDepartmentAuditState(1);
-                            r.setProjectAuditState(1);
+                            if (thirdAuditor != null && secondAuditor != null) {
+                                if (user.getId().equals(thirdAuditor)) {
+                                    //当前为第三审核人在审核,直接通过
+                                    r.setState(1);
+                                    r.setDepartmentAuditState(1);
+                                    r.setProjectAuditState(1);
+                                    newReport.setState(1);
+                                    newReport.setDepartmentAuditState(1);
+                                    newReport.setProjectAuditState(1);
+                                } else if (user.getId().equals(secondAuditor)) {
+                                    r.setIsDeptAudit(0);
+                                    r.setProjectAuditorId(thirdAuditor);
+                                    newReport.setIsDeptAudit(0);
+                                    newReport.setProjectAuditorId(thirdAuditor);
+                                } else {
+                                    //第一层审核,转给第二审核人
+                                    r.setIsDeptAudit(0);
+                                    r.setProjectAuditorId(secondAuditor);
+                                    newReport.setIsDeptAudit(0);
+                                    newReport.setProjectAuditorId(secondAuditor);
+                                }
+                            } else {
+                                r.setState(1);
+                                r.setDepartmentAuditState(1);
+                                r.setProjectAuditState(1);
+                                newReport.setState(1);
+                                newReport.setDepartmentAuditState(1);
+                                newReport.setProjectAuditState(1);
+                            }
                             r.setProjectAuditTime(LocalDateTime.now());
-                            newReport.setState(1);
-                            newReport.setDepartmentAuditState(1);
-                            newReport.setProjectAuditState(1);
                             newReport.setProjectAuditTime(LocalDateTime.now());
                         } else {
                             httpRespMsg.setError("您无权审核该日报");

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/MessageUtils.java

@@ -21,7 +21,7 @@ public class MessageUtils {
     public static String message(String code, Object... args) {
         MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
         Locale locale = LocaleContextHolder.getLocale();
-//        System.out.println("本地为:" +locale.getDisplayName()+", code="+code);
+        System.out.println("本地为:" +locale.getDisplayName()+", code="+code);
         return messageSource.getMessage(code, args, locale);
     }
 

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml