소스 검색

明夷电子项目报告审核模块增加显示审核流程

seyason 1 년 전
부모
커밋
a56dd70efe

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -107,6 +107,18 @@ public class ReportController {
         return msg;
     }
 
+    /**
+     * 获取日报的审核流程, 目前仅支持reportAuditType==6的情况
+     * @param reportId
+     * @return
+     */
+    @RequestMapping("/getAuditWorkflowList")
+    public HttpRespMsg getAuditWorkflowList(Integer reportId) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.data = reportService.getAuditWorkflowList(reportId);
+        return msg;
+    }
+
     /**
      * 通过传入时间段来获取时长
      * @return

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

@@ -303,7 +303,7 @@ public class TimeType extends Model<TimeType> {
     private Integer mainProjectState;
 
     /**
-     * 日报的审核类型, 0-项目审核人审核,1-分组负责人审核,2-先分组负责人审核再项目负责人(PM)审核;3-员工自由选择审批人 4-项目所属BU审核 5-部门负责人审核
+     * 日报的审核类型, 0-项目审核人审核,1-分组负责人审核,2-先分组负责人审核再项目负责人(PM)审核;3-员工自由选择审批人 4-项目所属BU审核 5-部门负责人审核,6-直属或部门负责人审核->项目日报审核人审核
      */
     @TableField("report_audit_type")
     private Integer reportAuditType;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -120,4 +120,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg batchDelete(String userIds, Integer deptId, String startDate, String endDate, HttpServletRequest request);
 
     HttpRespMsg batchApproveByDate(String startDate, String endDate, Integer departmentId, HttpServletRequest request);
+
+    List getAuditWorkflowList(Integer reportId);
 }

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

@@ -1244,7 +1244,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
-    //按状态获取报告列表
+    //获取待审核项目报告列表
     @Override
     public HttpRespMsg getListByState(Integer state, Integer departmentId,
                                       Integer projectId,
@@ -6383,4 +6383,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
     }
 
+    @Override
+    public List getAuditWorkflowList(Integer reportId) {
+        Report report = reportMapper.selectById(reportId);
+        TimeType timeType = timeTypeMapper.selectById(report.getCompanyId());
+        if (timeType.getReportAuditType() == 6) {
+            //针对先部门或直属审核人审核,后项目日报审核人审核的情况
+            List<User> userList = new ArrayList<>();
+            String creatorId = report.getCreatorId();
+            User user = userMapper.selectById(creatorId);
+            User firstAuditor = new User();
+            if (!StringUtils.isEmpty(report.getProjectAuditorId())) {
+                String name = userMapper.selectById(report.getProjectAuditorId()).getName();
+                firstAuditor.setId(report.getProjectAuditorId()).setName(name);
+            } else if (!StringUtils.isEmpty(report.getAuditDeptManagerid())) {
+                String name = userMapper.selectById(report.getAuditDeptManagerid()).getName();
+                firstAuditor.setId(report.getAuditDeptManagerid()).setName(name);
+            }
+            userList.add(firstAuditor);
+            Integer onlyAuditOnce = user.getOnlyAuditOnce();
+            if (onlyAuditOnce == 0) {
+                //两层审核
+                List<ProjectAuditor> projectAuditors = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().eq("project_id", report.getProjectId()));
+                if (projectAuditors.size() > 0) {
+                    ProjectAuditor auditor = projectAuditors.get(0);
+                    User au = new User();
+                    au.setId(auditor.getAuditorId());
+                    au.setName(auditor.getAuditorName());
+                    if (report.getDepartmentAuditState() == 0) {
+                        //待第一步审核
+                        firstAuditor.setIsActive(1);
+                    } else {
+                        au.setIsActive(1);
+                    }
+                    userList.add(au);
+                }
+            }else {
+                //isActive表示当前审核到该流程
+                firstAuditor.setIsActive(1);
+            }
+            return userList;
+        } else {
+            return new ArrayList();
+        }
+    }
+
 }

+ 40 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/list.vue

@@ -65,7 +65,7 @@
         </el-col>
         <!--列表-->
         <el-table :data="list" ref="multipleTable" v-if="showTable" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;"
-            @selection-change="handleSelectionChange" :default-expand-all="defaultExpandAllFlg">
+            @selection-change="handleSelectionChange" :default-expand-all="defaultExpandAllFlg" @expand-change="expandChange">
             <el-table-column type="selection" width="55"></el-table-column>
             <el-table-column type="expand" :label="''">
                 <template slot="header">
@@ -105,6 +105,10 @@
                                                  ]
                                 </span>
                                 </b></p>
+                                <p v-if="user.timeType.reportAuditType == 6" >审核流程:<span v-if="item.auditorList && item.auditorList.length == 1">一层审核(<span style="color:#20A0ff;">{{ item.auditorList[0].name }}</span>)</span>
+                                <span v-if="item.auditorList && item.auditorList.length == 2">两层审核(<span style="color:#20A0ff;">{{ item.auditorList[0].name }}->{{ item.auditorList[1].name }}</span>)</span>
+                                <el-button size="small" @click="viewOneReport(item)" v-if="!item.auditorList">查看</el-button>
+                                </p>
                                 <p v-if="user.timeType.customDegreeActive==1 && item.degree_id != null">{{user.timeType.customDegreeName}}:{{item.degreeName}}</p>
                                 <p v-if="user.timeType.customDataActive==1">{{user.timeType.customDataName}}:{{item.customData}}</p>
                                 <p v-if="user.timeType.customTextActive==1">{{user.timeType.customTextName}}:{{item.customText}}</p>
@@ -498,6 +502,41 @@
             }
         },
         methods: {
+            viewOneReport(r) {
+                this.http.post("/report/getAuditWorkflowList", {reportId:r.id},
+                    res => {
+                        if (res.code == "ok") {
+                            this.$set(r,'auditorList', res.data);
+                        } 
+                    },
+                    error => {
+                        this.undoFormLoading = false
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+            },
+            expandChange(row, expandedRows) {
+                var reportList = row.data;
+                for (var i=0;i<reportList.length; i++) {
+                    var r = reportList[i];
+                    if (r.auditorList) continue;
+                    this.http.post("/report/getAuditWorkflowList", {reportId:r.id},
+                    res => {
+                        if (res.code == "ok") {
+                            this.$set(r,'auditorList', res.data);
+                        } 
+                    },
+                    error => {
+                        this.undoFormLoading = false
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+                }
+            },
             detailsClick(item, i) {
                 this.detailsDialog = true
                 this.detailsList = item.membdateList