Ver código fonte

复审人功能

QuYueTing 10 meses atrás
pai
commit
526dc5b6c3

+ 6 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -623,7 +623,7 @@ public class ReportController {
         } else {
         } else {
             //自动填充项目审核人
             //自动填充项目审核人
             for (int i=0;i<projectAuditorId.length; i++) {
             for (int i=0;i<projectAuditorId.length; i++) {
-                if (projectAuditorId[i] == null) {
+                if (projectAuditorId[i] == null || comTimeType.getReportAuditType() == 8) {
                     final int index = i;
                     final int index = i;
                     projectAuditorId[i] = projectList.stream().filter(p->p.getId().equals(projectId[index])).findFirst().get().getInchargerId();
                     projectAuditorId[i] = projectList.stream().filter(p->p.getId().equals(projectId[index])).findFirst().get().getInchargerId();
                 }
                 }
@@ -1507,6 +1507,11 @@ public class ReportController {
                     }
                     }
                 }
                 }
             }
             }
+        } else if (comTimeType.getReportAuditType() == 8) {
+            //默认是第一步审核
+            for (Report report : reportList) {
+                report.setIsFinalAudit(0);
+            }
         }
         }
 
 
 
 

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -182,4 +182,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> userTaskProcessList(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds, Integer start, Integer size);
     List<Map<String, Object>> userTaskProcessList(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds, Integer start, Integer size);
 
 
     Long userTaskProcessListCount(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds);
     Long userTaskProcessListCount(Integer deptId, String userId, Integer projectId, Integer companyId, @Param("list") List<Integer> deptIds,String startDate,String endDate,@Param("listSecond") List<Integer> regularDeptIds);
+    @Update("update project set reviwer_id=null where id=#{id}")
+    void removeReviwer(Integer id);
 }
 }

+ 13 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1000,10 +1000,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     }
                 }
                 }
                 //编辑项目合同修改 添加记录
                 //编辑项目合同修改 添加记录
-                if(contractAmount!=null&&project.getContractAmount().doubleValue()!=contractAmount){
+                if(contractAmount!=null&&oldProject.getContractAmount().doubleValue()!=contractAmount){
                     ContractModifyRecord contractModifyRecord=new ContractModifyRecord();
                     ContractModifyRecord contractModifyRecord=new ContractModifyRecord();
                     contractModifyRecord.setEditUserId(user.getId());
                     contractModifyRecord.setEditUserId(user.getId());
-                    contractModifyRecord.setOldContractAmount(project.getContractAmount());
+                    contractModifyRecord.setOldContractAmount(oldProject.getContractAmount());
                     contractModifyRecord.setNewContractAmount(contractAmount);
                     contractModifyRecord.setNewContractAmount(contractAmount);
                     contractModifyRecord.setProjectId(id);
                     contractModifyRecord.setProjectId(id);
                     contractModifyRecord.setReason(changeContractReason);
                     contractModifyRecord.setReason(changeContractReason);
@@ -1053,6 +1053,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         //去掉客户
                         //去掉客户
                         projectMapper.removeProjectCustomer(id);
                         projectMapper.removeProjectCustomer(id);
                     }
                     }
+                    if (timeType.getReportAuditType() == 8 && oldProject.getReviwerId() != null && reviwerId == null) {
+                        //清空复核人
+                        projectMapper.removeReviwer(id);
+                    }
                     //修改项目相关表
                     //修改项目相关表
                     ProjectTimer timer = new ProjectTimer();
                     ProjectTimer timer = new ProjectTimer();
                     timer.setProjectName(name);
                     timer.setProjectName(name);
@@ -1284,6 +1288,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (timeType.getReportAuditType() == 8) {
                     if (timeType.getReportAuditType() == 8) {
                         if (oldProject.getReviwerId() != null && reviwerId != null && !oldProject.getReviwerId().equals(reviwerId)) {
                         if (oldProject.getReviwerId() != null && reviwerId != null && !oldProject.getReviwerId().equals(reviwerId)) {
                             //发生变化,查找日报中待审核状态下的
                             //发生变化,查找日报中待审核状态下的
+                            QueryWrapper<Report> queryWrapper = new QueryWrapper<Report>().eq("company_id", companyId).eq("project_id", id).eq("state",0).eq("project_auditor_id", oldProject.getReviwerId());
+                            int count = reportMapper.selectCount(queryWrapper);
+                            if (count > 0) {
+                                //更新日报的审核人
+                                Report upR = new Report().setProjectAuditorId(reviwerId);
+                                reportMapper.update(upR, queryWrapper);
+                            }
                         }
                         }
                     }
                     }
                 }
                 }

+ 84 - 11
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1894,15 +1894,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                     item.put("key","审核人");
                                     item.put("key","审核人");
                                     item.put("value",wxCorpInfo.getSaasSyncContact() == 1?("$userName="+user.getName()+"$"): user.getName());
                                     item.put("value",wxCorpInfo.getSaasSyncContact() == 1?("$userName="+user.getName()+"$"): user.getName());
                                     dataJson.add(item);
                                     dataJson.add(item);
-//                                    if(timeType.getNeedEvaluate()==1){
-//                                        JSONObject item1=new JSONObject();
-//                                        item1.put("key","评价");
-//                                        item1.put("value",StringUtils.isEmpty(report.getEvaluate())?"":report.getEvaluate());
-//                                        dataJson.add(item1);
-//                                        json.put("template_id","tty9TkCAAAWoUyhGnXRCZuhkgCqw_Uow");
-//                                    }else {
-//                                        json.put("template_id","tty9TkCAAANpvEtLrkPUGeOEd1-U7W2w");
-//                                    }
                                     json.put("template_id","tty9TkCAAANpvEtLrkPUGeOEd1-U7W2w");
                                     json.put("template_id","tty9TkCAAANpvEtLrkPUGeOEd1-U7W2w");
                                     JSONObject item2=new JSONObject();
                                     JSONObject item2=new JSONObject();
                                     item2.put("key","日期");
                                     item2.put("key","日期");
@@ -1929,7 +1920,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             ReportAuditLog log = new ReportAuditLog();
             ReportAuditLog log = new ReportAuditLog();
             log.setAuditChannel(channel);
             log.setAuditChannel(channel);
             log.setCompanyId(company.getId());
             log.setCompanyId(company.getId());
-            //log.setResult("通过");
             log.setResult(MessageUtils.message("profession.approved"));
             log.setResult(MessageUtils.message("profession.approved"));
             log.setUserId(user.getId());
             log.setUserId(user.getId());
             log.setUserName(user.getName());
             log.setUserName(user.getName());
@@ -2243,7 +2233,48 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                     updateBatchById(updateReportList);
                 }
                 }
-            }else {
+            } else if (timeType.getReportAuditType() == 8) {
+                //项目经理先审核,复核人后审核
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> updateReportList = new ArrayList<>();
+                List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, 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) {
+                        newReport.setState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
+                    } else {
+                        if (r.getProjectAuditorId().equals(user.getId())) {
+                            if (r.getIsFinalAudit() == 0) {
+                                //当前是项目经理审核,判断是否有复核人
+
+                                String reviwerId = projectMapper.selectById(r.getProjectId()).getReviwerId();
+                                if (reviwerId == null) {
+                                    r.setIsFinalAudit(1);
+                                    newReport.setIsFinalAudit(1);
+                                } else {
+                                    newReport.setProjectAuditorId(reviwerId);
+                                }
+                            }
+                            //上面可能处理为最终审核了
+                            if (r.getIsFinalAudit() == 1) {
+                                newReport.setProjectAuditState(1);
+                                newReport.setState(1);
+                            } else {
+                                newReport.setIsFinalAudit(1);
+                            }
+                            newReport.setProjectAuditTime(LocalDateTime.now());
+                        }
+                    }
+                    updateReportList.add(newReport);
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
+            } else {
                 //之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流(部门审批时,本部门的负责人是否由上级部门负责人审核,可配置)
                 //之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流(部门审批时,本部门的负责人是否由上级部门负责人审核,可配置)
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", auditTargetUser.getDepartmentId())
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("dept_id", auditTargetUser.getDepartmentId())
@@ -3513,6 +3544,48 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                     updateBatchById(updateReportList);
                 }
                 }
+            } else if (timeType.getReportAuditType() == 8) {
+                //项目经理先审核,复核人后审核
+                boolean hasAuditAllPri = sysFunctionService.hasPriviledge(user.getRoleId(), "审核全员日报");
+                List<Report> updateReportList = new ArrayList<>();
+                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_audit_state, project_auditor_id, is_dept_audit, is_final_audit").in("id", ids));
+                allUsers = userMapper.selectList(new QueryWrapper<User>().select("id, name, department_id").eq("company_id", company.getId()));
+                allReports = reportList;
+                for (Report r : reportList) {
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if (hasAuditAllPri) {
+                        newReport.setState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
+                    } else {
+                        if (r.getProjectAuditorId().equals(user.getId())) {
+                            if (r.getIsFinalAudit() == 0) {
+                                //当前是项目经理审核,判断是否有复核人
+                                String reviwerId = projectMapper.selectById(r.getProjectId()).getReviwerId();
+                                if (reviwerId == null) {
+                                    newReport.setIsFinalAudit(1);
+                                    r.setIsFinalAudit(1);
+                                } else {
+                                    newReport.setProjectAuditorId(reviwerId);
+                                }
+                            }
+                            //上面可能处理为最终审核了
+                            if (r.getIsFinalAudit() == 1) {
+                                newReport.setProjectAuditState(1);
+                                newReport.setState(1);
+                            } else {
+                                newReport.setIsFinalAudit(1);
+                            }
+                            newReport.setProjectAuditTime(LocalDateTime.now());
+                        }
+                    }
+                    updateReportList.add(newReport);
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
             } else {
             } else {
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())

Diferenças do arquivo suprimidas por serem muito extensas
+ 1988 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml


+ 8 - 11
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -542,7 +542,7 @@
 
 
                         <!--项目复审人-->
                         <!--项目复审人-->
                         <span v-if="user.timeType.reportAuditType == 8" style="margin-left:63px;margin-right:10px;" >{{ $t('other.projectReviwer') }}</span>
                         <span v-if="user.timeType.reportAuditType == 8" style="margin-left:63px;margin-right:10px;" >{{ $t('other.projectReviwer') }}</span>
-                        <el-select v-if="user.userNameNeedTranslate != 1" v-model="addForm.reviwerId" filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" :disabled="canOnlyModParticipator || projectManagerEdit">
+                        <el-select v-if="user.userNameNeedTranslate != 1" v-model="addForm.reviwerId" clearable filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" :disabled="canOnlyModParticipator || projectManagerEdit">
                             <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
                             <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
                                 <span style="float: left">{{ item.name }}</span>
                                 <span style="float: left">{{ item.name }}</span>
                                 <span style="float: right; color: #8492a6;">{{ item.jobNumber }}</span>
                                 <span style="float: right; color: #8492a6;">{{ item.jobNumber }}</span>
@@ -4878,9 +4878,7 @@ a {
                 
                 
             },
             },
             // 处理数据
             // 处理数据
-            chulishuju(data) {
-                console.log(data, 12345)
-                console.log(this.dataListBf, '看看')
+            handleData(data) {
                 let arrLists = JSON.parse(JSON.stringify(this.dataListBf))
                 let arrLists = JSON.parse(JSON.stringify(this.dataListBf))
                 var arr = []
                 var arr = []
                 for(var s in arrLists) {
                 for(var s in arrLists) {
@@ -4991,7 +4989,7 @@ a {
                     this.http.post('/project/detailTwo', {id: item.id},
                     this.http.post('/project/detailTwo', {id: item.id},
                     res => {
                     res => {
                     if (res.code == "ok") {
                     if (res.code == "ok") {
-                        this.chulishuju(res.data)
+                        this.handleData(res.data)
                         this.estimatedWorkTime=res.data.estimatedWorkTime==null?0:res.data.estimatedWorkTime
                         this.estimatedWorkTime=res.data.estimatedWorkTime==null?0:res.data.estimatedWorkTime
                         this.addForm.estimatedWorkTime=res.data.estimatedWorkTime==null?0:res.data.estimatedWorkTime
                         this.addForm.estimatedWorkTime=res.data.estimatedWorkTime==null?0:res.data.estimatedWorkTime
                     }
                     }
@@ -5053,6 +5051,7 @@ a {
                         userNames:names,
                         userNames:names,
                         code:item.projectCode,
                         code:item.projectCode,
                         inchargerId: item.inchargerId,
                         inchargerId: item.inchargerId,
+                        reviwerId: item.reviwerId,
                         level: item.level,
                         level: item.level,
                         planStartDate: item.planStartDate,
                         planStartDate: item.planStartDate,
                         planEndDate: item.planEndDate,
                         planEndDate: item.planEndDate,
@@ -5516,12 +5515,10 @@ a {
                                 formData.append(str,this.dataList[i].valuelist.join('@'));
                                 formData.append(str,this.dataList[i].valuelist.join('@'));
                              }
                              }
                          }
                          }
-                        // formData.append("associateDegreeNames", listName)
-                        //console.log("addform",this.addForm);
-                        // for (const key of formData.keys()) {
-                        //     console.log(key + ': ' + formData.get(key));
-                        // }
-                        // return
+                        //复核人
+                        if (this.addForm.reviwerId) {
+                            formData.append('reviwerId', this.addForm.reviwerId);
+                        }
                         this.http.uploadFile(this.port.project.add,formData,
                         this.http.uploadFile(this.port.project.add,formData,
                         res => {
                         res => {
                             this.addLoading = false;
                             this.addLoading = false;