Pārlūkot izejas kodu

加力定制的审核模式10

QuYueTing 7 mēneši atpakaļ
vecāks
revīzija
0ab7fe78ab

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

@@ -644,6 +644,29 @@ public class ReportController {
                     }
                 }
             }
+        } else if (comTimeType.getReportAuditType() == 10) {
+            //项目经理或者公司副总审核
+            String reporterId = request.getHeader("Token");
+            if (targetUids != null && targetUids.length > 0) {
+                reporterId = targetUids[0];
+            }
+            for (int i=0;i<projectAuditorId.length; i++) {
+                if (projectAuditorId[i] == null) {
+                    //取项目的负责人进行审核
+                    final int pid = projectId[i];
+                    Project project = projectList.stream().filter(p->p.getId().equals(pid)).findFirst().get();
+                    if (company.getNonProjectSimple() == 1 && project.getIsPublic() == 1) {
+                        //非项目,由公司副总审核
+                        projectAuditorId[i] = comTimeType.getThirdAuditor();
+                    } else {
+                        projectAuditorId[i] = project.getInchargerId();
+                        if (reporterId.equals(projectAuditorId[i])) {
+                            //自己担任项目经理的情况下,由公司副总审核
+                            projectAuditorId[i] = comTimeType.getThirdAuditor();
+                        }
+                    }
+                }
+            }
         } else {
             //自动填充项目审核人
             for (int i=0;i<projectAuditorId.length; i++) {

+ 39 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2129,13 +2129,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }).collect(Collectors.toList());
                 collect.add(-1);
                 List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().in("department_id", collect));
-//                Optional<Project> first = projectList.stream().filter(p -> StringUtils.isEmpty(p.getInchargerId())).findFirst();
-//                if (first.isPresent()) {
-//                    String projectName = first.get().getProjectName();
-//                    //httpRespMsg.setError("请给["+projectName+"]项目设置项目负责人");
-//                    httpRespMsg.setError("请给["+projectName+"]项目设置项目负责人");
-//                    return httpRespMsg;
-//                }
                 for (Report r : reportList) {
                     //根据项目阶段来调整审核流程
                     /*任务所属项目*/
@@ -2356,6 +2349,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
+            } else if (timeType.getReportAuditType() == 10) {
+                //项目经理或者公司副总审核;直接审核通过
+                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 || r.getProjectAuditorId().equals(user.getId())) {
+                        newReport.setState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
+                    }
+                    updateReportList.add(newReport);
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
             } else {
                 //之前的流程逻辑,综合了一层项目审核,或者一层任务分组审核。 可叠加部门审批流(部门审批时,本部门的负责人是否由上级部门负责人审核,可配置)
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
@@ -3703,6 +3715,26 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
+            } else if (timeType.getReportAuditType() == 10) {
+                //项目经理或者公司副总审核;直接审核通过
+                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));
+                allReports = reportList;
+                for (Report r : reportList) {
+                    //直属领导审核或者部门负责人审核
+                    Report newReport = new Report();
+                    newReport.setId(r.getId());
+                    if (hasAuditAllPri || r.getProjectAuditorId().equals(user.getId())) {
+                        newReport.setState(1);
+                        newReport.setProjectAuditState(1);
+                        newReport.setProjectAuditTime(LocalDateTime.now());
+                    }
+                    updateReportList.add(newReport);
+                }
+                if (updateReportList.size() > 0) {
+                    updateBatchById(updateReportList);
+                }
             } else {
                 List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
                         new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", company.getId())

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json

@@ -1883,6 +1883,7 @@
   "xiangMuRenTian": "Project person day",
   "xiangMuShenHeRenShenHe": "Project Reviewer Review",
   "xiangMuSuoShuBuFuZeRenShenHe": "Reviewed by the BU responsible person for the project",
+  "projectManagerOrLeaderReview": "Reviewed by pm or leader",
   "xiangMuTongBuChengGong": "Project synchronization successful",
   "xiangMuYuGuGongShiPeiZhi": "Project estimated working hours configuration",
   "xuanZeYaoFuZhiDaoDeMuBiaoXiangMu": "Select the target project to copy to",

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -1864,6 +1864,7 @@
   "fenZuGongShiBuZuShi": "分组工时不足时",
   "xiangMuShenHeRenShenHe": "项目审核人审核",
   "xiangMuSuoShuBuFuZeRenShenHe": "项目所属BU负责人审核",
+  "projectManagerOrLeaderReview": "项目经理或公司副总审核",
   "zhiNengFenGongSheZhi": "职能分工设置",
   "gongShiLeiXing": "工时类型",
   "gongZuoZhiZe": "工作职责",

+ 0 - 30
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -417,28 +417,6 @@
                     </template>
                 </el-dropdown-menu>
             </el-dropdown>
-            <!-- <template v-if="user.timeType.customDegreeActive && (showColumnWidth != '0' || permissions.projectManagement)">
-                <el-button size="small" type="primary" @click="batchSetWudulistBtn2(true)">{{ $t('volumeset') }} {{user.timeType.customDegreeName}}</el-button>
-                <el-button size="small" type="primary" @click="batchSetWudulistBtn2(false)">{{ $t('pi-liang-tian-jia') }} {{user.timeType.customDegreeName}}</el-button>
-            </template>
-            <template v-if="user.company.packageProject && (showColumnWidth != '0' || permissions.projectManagement)">
-                <el-button size="small" type="primary" @click="addTaskGroup()" >{{ $t('piLiangZengJiaRenWuFenZu') }}</el-button>
-            </template>
-            <template v-if="user.company.packageProject && (showColumnWidth != '0' || permissions.projectManagement)">
-                <el-button size="small" type="primary" @click="setGroupIncharger()" >{{ $t('piLiangSheZhiFenZuFuZeRen') }}</el-button>
-            </template>
-            <template v-if="user.company.packageProject && (showColumnWidth != '0' || permissions.projectManagement)">
-                <el-button size="small" type="primary" @click="addGroupPerson()" :loading="addGroupPersonBtnLoading">{{ $t('groupparticipantsinbatches') }}</el-button>
-            </template>
-            <template v-if="(showColumnWidth != '0' || permissions.projectManagement)">
-                <el-button size="small" type="primary" @click="addProPreson()">{{ $t('projectparticipantsinbatches') }}</el-button>
-                <el-button size="small" type="primary" v-if="permissions.projectManagement" @click="batchIncharger()">{{ $t('projectmanagersinbatches') }}</el-button>
-                <el-button size="small" type="primary" v-if="user.roleName=($t('role.superAdministrator'))" @click="batchDelete()" :loading="isDeleting">{{ $t('Batchdelete') }}</el-button>
-            </template>
-            <template v-if="showColumnWidth != '0' && user.company.packageProject == 1">
-                <el-button size="small" type="primary" @click="batchProjectStage()">{{ $t('piLiangXiuGaiXiangMuJieDuan') }}</el-button>
-            </template> -->
-            
             <el-pagination :key="projectListPageComponentKey"
                 @size-change="handleSizeChange"
                 @current-change="handleCurrentChange"
@@ -509,14 +487,6 @@
                         <!-- <vueCascader :size="'medium'" :widthStr="'430'" :filterable="true" :clearable="true" :subject="departmentList" :subjectId="addForm.deptId" :radios="true" :distinction="'20'" :disabled="canOnlyModParticipator" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" ></vueCascader> -->
                         <vueCascadeSelection v-model="addForm.deptId" :options="departmentList" :props="{ checkStrictly: true, expandTrigger: 'hover' }" :disabled="canOnlyModParticipator" v-if="user.userNameNeedTranslate == 1"></vueCascadeSelection>
                     </el-form-item>
-
-                    <!-- 供应商 -->
-                    <!-- <el-form-item label="供应商" v-if="user.company.packageProvider">
-                        <el-select v-model="addForm.supplierId" multiple collapse-tags style="width:32%;" placeholder="请选择供应商">
-                            <el-option v-for="item in supplierList" :key="item.id" :label="item.providerName" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item> -->
                     <el-form-item :label="$t('supplier')" v-if="user.company.packageProvider">
                         <el-select v-model="addForm.supplierId" multiple :placeholder="$t('defaultText.pleaseChoose')" filterable="true" style="width: 100%" :disabled="canOnlyModParticipator">
                             <span v-for="(item, index) in supplierList" :key="index">

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue


+ 8 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -596,7 +596,7 @@
                                 </el-select>
                             </template>
                         </el-form-item>
-                        <div v-if="user.timeType.reportAuditType != 1 && user.timeType.reportAuditType != 2 && user.timeType.reportAuditType != 3 && user.timeType.reportAuditType != 5 && user.timeType.reportAuditType != 9 && domain.auditUserList">
+                        <div v-if="user.timeType.reportAuditType != 1 && user.timeType.reportAuditType != 2 && user.timeType.reportAuditType != 3 && user.timeType.reportAuditType != 5 && user.timeType.reportAuditType != 9 && user.timeType.reportAuditType != 10 && domain.auditUserList">
                             <el-form-item v-if="user.timeType.reportAuditType != 3 && user.timeType.reportAuditType != 5 && domain.auditUserList.length > 0">
                                 <template slot="label">
                                     <span style="color:#FF0000;">*</span>
@@ -2171,8 +2171,7 @@
                 <el-steps  :active="curAuditNode" align-center="true" finish-status="success" v-if="user.companyId == 7544">
                 <el-step title="待提交"></el-step>
                 <el-step title="员工提交"></el-step>
-                <el-step title="项目经理审核"></el-step>
-                <el-step title="公司副总审核"></el-step>
+                <el-step title="审核通过"></el-step>
                 </el-steps>
                 <el-divider v-if="user.companyId == 7544"></el-divider>
                 <p style="color:#aaaaaa;" v-if="user.companyId == 7544">审核记录</p>
@@ -3433,10 +3432,14 @@
             },
             //下载带企业微信考勤数据的工时统计模板
             downloadCheckInExcel() {
-                this.http.post('/user-corpwx-time/exportCheckInExcel',{ 
+                var param = { 
                     startDate: this.importWxParam.date[0],
                     endDate: this.importWxParam.date[1],
-                },
+                };
+                if (this.user.roleName == '超级管理员' || this.user.roleName == '财务管理员') {
+                    param.onlySelfData = false;
+                }
+                this.http.post('/user-corpwx-time/exportCheckInExcel',param,
                 res => {
                     if (res.code == "ok") {
                         var filePath = res.data;