Min hace 1 año
padre
commit
8296654232

+ 19 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -5066,6 +5066,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             titles.add(MessageUtils.message("entry.department"));
             titles.add(MessageUtils.message("entry.projectId"));
             titles.add(MessageUtils.message("entry.projectName"));
+            if(companyId==936){
+                titles.add("项目状态");
+                titles.add("自主项目类别");
+            }
             titles.add(MessageUtils.message("entry.projectType"));
             if(timeType.getMainProjectState()==1){
                 //titles.add("主项目名称");
@@ -5319,6 +5323,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
                 item.add((String) map.get("projectCode"));
                 item.add((String) map.get("project"));
+                if(companyId==936){
+                    String projectStatus="";
+                    switch (Integer.valueOf(String.valueOf(map.get("projectStatus")))){
+                        case 1:projectStatus="进行中";
+                            break;
+                        case 2:projectStatus="已完成";
+                            break;
+                        case 3:projectStatus="已撤销";
+                            break;
+                        case 4:projectStatus="暂停";
+                            break;
+                    }
+                    item.add(projectStatus.equals("已完成")?projectStatus+"("+map.get("finishDate")+")":projectStatus);
+                    item.add((String)map.get("projectCategorySub"));
+                }
                 item.add((String) map.get("categoryName"));
                 if(timeType.getMainProjectState()==1){
                     item.add((String) map.get("projectMainName"));

+ 12 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -68,9 +68,10 @@
         ,c.plate1 as plate1,c.plate2 as plate2,c.plate3 as plate3,c.plate4 as plate4,c.plate5 as plate5
         , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId,a.custom_data as customData
         ,u.name as projectAuditorName,u.corpwx_userid as projectAuditorCorpwxUserId, a.project_auditor_id as projectAuditorId, department.department_name as departmentName,dp2.department_name as buDepartmentName,department.department_id as departmentId, a.overtime_hours as overtimeHours, a.custom_text as customText,a.project_audit_time  as projectAuditTime,project_main.name as projectMainName,
-        a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId
+        a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId,b.status as projectStatus,DATE_FORMAT(b.finish_date,'%Y-%m-%d') as finishDate,ps.project_category_sub as projectCategorySub
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
+        LEFT JOIN project_separate AS ps on b.id=ps.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
@@ -121,9 +122,10 @@
         ,c.plate1 as plate1,c.plate2 as plate2,c.plate3 as plate3,c.plate4 as plate4,c.plate5 as plate5
         , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId,a.custom_data as customData
         ,u.name as projectAuditorName,u.corpwx_userid as projectAuditorCorpwxUserId, a.project_auditor_id as projectAuditorId, department.department_name as departmentName,dp2.department_name as buDepartmentName,department.department_id as departmentId, a.overtime_hours as overtimeHours, a.custom_text as customText,a.project_audit_time  as projectAuditTime,project_main.name as projectMainName,
-        GROUP_CONCAT(rlog.operator_id,'@', rlog.operate_date,'@', rlog.msg SEPARATOR '❤') AS logMsg,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3
+        GROUP_CONCAT(rlog.operator_id,'@', rlog.operate_date,'@', rlog.msg SEPARATOR '❤') AS logMsg,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3,b.status as projectStatus,DATE_FORMAT(b.finish_date,'%Y-%m-%d') as finishDate,ps.project_category_sub as projectCategorySub
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
+        LEFT JOIN project_separate AS ps on b.id=ps.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
@@ -200,9 +202,11 @@
         ,c.plate1 as plate1,c.plate2 as plate2,c.plate3 as plate3,c.plate4 as plate4,c.plate5 as plate5
         ,u.name as projectAuditorName,u.corpwx_userid as projectAuditorCorpwxUserId, a.project_auditor_id as projectAuditorId, department.department_name as
         departmentName,dp2.department_name as buDepartmentName,department.department_id as departmentId, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as
-        projectAuditTime,project_main.name as projectMainName,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId
+        projectAuditTime,project_main.name as projectMainName,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId,b.status as projectStatus,
+        DATE_FORMAT(b.finish_date,'%Y-%m-%d') as finishDate,ps.project_category_sub as projectCategorySub
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
+        LEFT JOIN project_separate AS ps on b.id=ps.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
@@ -264,10 +268,11 @@
         ,c.plate1 as plate1,c.plate2 as plate2,c.plate3 as plate3,c.plate4 as plate4,c.plate5 as plate5
         ,u.name as projectAuditorName,u.corpwx_userid as projectAuditorCorpwxUserId, a.project_auditor_id as projectAuditorId, department.department_name as
         departmentName,dp2.department_name as buDepartmentName,department.department_id as departmentId, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as
-        projectAuditTime,project_main.name as projectMainName,
+        projectAuditTime,project_main.name as projectMainName,b.status as projectStatus,DATE_FORMAT(b.finish_date,'%Y-%m-%d') as finishDate,ps.project_category_sub as projectCategorySub,
         GROUP_CONCAT(rlog.operator_id,'@', rlog.operate_date,'@', rlog.msg SEPARATOR '❤') AS logMsg,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
+        LEFT JOIN project_separate AS ps on b.id=ps.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
@@ -325,9 +330,10 @@
         ,c.plate1 as plate1,c.plate2 as plate2,c.plate3 as plate3,c.plate4 as plate4,c.plate5 as plate5
         , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId, a.custom_data as customData
         ,u.name as projectAuditorName,u.corpwx_userid as projectAuditorCorpwxUserId, a.project_auditor_id as projectAuditorId, department.department_name as departmentName,dp2.department_name as buDepartmentName,department.department_id as departmentId, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as projectAuditTime,project_main.name as projectMainName
-        ,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId
+        ,a.extra_field1 as extraField1,a.extra_field2 as extraField2,a.extra_field3 as extraField3, a.batch_id as batchId,a.sap_service_id as sapServiceId,b.status as projectStatus,DATE_FORMAT(b.finish_date,'%Y-%m-%d') as finishDate,ps.project_category_sub as projectCategorySub
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
+        LEFT JOIN project_separate AS ps on b.id=ps.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
@@ -997,7 +1003,7 @@
         from
         task_executor te
         left join task t on te.task_id = t.id
-        right join sap_project_service sps on  FIND_IN_SET( sps.id,REPLACE(REPLACE(te.service_id,'[',''),']',''))
+        right join sap_project_service sps on sps.id=te.service_id
         left join project p on t.project_id = p.id
         left join user u on te.executor_id=u.id
         where t.company_id=#{companyId}

+ 33 - 14
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

@@ -80,7 +80,7 @@
                     <!-- 项目服务 -->
                     <div v-if="user.companyId==3092">
                         <span style="margin-left:30px;margin-right:10px;">{{'项目服务'}}</span>
-                        <el-select multiple clearable collapse-tags  filterable  v-model="executorItem.serviceId" size="small" placeholder="请选择项目服务" style="width: 300px" @change="serviceIdChange()">
+                        <el-select  clearable collapse-tags  filterable  v-model="executorItem.serviceId" size="small" placeholder="请选择项目服务" style="width: 300px" @change="serviceIdChange()">
                             <el-option
                             v-for="item in sapServiceList"
                             :key="item.id"
@@ -1393,20 +1393,39 @@ export default {
         // }
         
         for (var i=0;i<exeList.length;i++) {
-            var findSameUser = false;
-            exeList[i].planHours = this.gstimhour[i]
-            for (var j=i+1;j<exeList.length; j++) {
-                if (exeList[i].executorId && exeList[j].executorId && exeList[i].executorId == exeList[j].executorId) {
-                    findSameUser = true;
-                    break;
+            if(this.user.companyId==3092){
+                var findSameUser = false;
+                exeList[i].planHours = this.gstimhour[i]
+                for (var j=i+1;j<exeList.length; j++) {
+                    if ((exeList[i].executorId && exeList[j].executorId && exeList[i].executorId == exeList[j].executorId)
+                     &&(exeList[i].serviceId && exeList[j].serviceId && exeList[i].serviceId == exeList[j].serviceId)) {
+                        findSameUser = true;
+                        break;
+                    }
+                }
+                if (findSameUser) {
+                    return this.$message({
+                        showClose: true,
+                        message: '同一个执行人,服务不能相同',
+                        type: 'error'
+                    });
+                }
+            }else{
+                var findSameUser = false;
+                exeList[i].planHours = this.gstimhour[i]
+                for (var j=i+1;j<exeList.length; j++) {
+                    if (exeList[i].executorId && exeList[j].executorId && exeList[i].executorId == exeList[j].executorId) {
+                        findSameUser = true;
+                        break;
+                    }
+                }
+                if (findSameUser) {
+                    return this.$message({
+                        showClose: true,
+                        message: this.$t('executorhasduplication'),
+                        type: 'error'
+                    });
                 }
-            }
-            if (findSameUser) {
-                return this.$message({
-                    showClose: true,
-                    message: this.$t('executorhasduplication'),
-                    type: 'error'
-                });
             }
         }
         if(this.addForm.startDate && this.addForm.endDate) {