瀏覽代碼

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason 1 天之前
父節點
當前提交
b0f5d652e1

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

@@ -1628,6 +1628,12 @@ public class ReportController {
                         httpRespMsg.setError("当前选择了带车间的工时分组,对应的工单号必填");
                         return httpRespMsg;
                     }
+                    //入库后工时 有工单号的情况 禁止提交
+                    if (group != null && group.getName().equals("入库后工时") && !StringUtils.isEmpty(report.getExtraField4())) {
+                        HttpRespMsg httpRespMsg = new HttpRespMsg();
+                        httpRespMsg.setError("入库后工时禁止填报工单号");
+                        return httpRespMsg;
+                    }
                 }
                 if (!StringUtils.isEmpty(report.getExtraField4()) && StringUtils.isEmpty(report.getExtraField5())) {
                     HttpRespMsg httpRespMsg = new HttpRespMsg();

+ 14 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceMonthlyWorktimeServiceImpl.java

@@ -51,7 +51,7 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
     public static final String TIME_TYPE_DEBUG = "调试工时(车间)";
     public static final String TIME_TYPE_WAIT = "等料工时(车间)";
     public static final String TIME_TYPE_BUSTRIP = "出差工时(含上机、售后工时)";
-    public static final String TIME_TYPE_CLEAN = "清洁打包工时(入库后)";
+    public static final String TIME_TYPE_CLEAN = "入库后工时";
 
     static List<String> groupNameList = new ArrayList<>();
     {
@@ -206,7 +206,7 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
             //查询日报数据
             List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()));
             List<Project> projectList = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getCompanyId, user.getCompanyId()));
-            List<Project> publicProjectList = projectList.stream().filter(p -> p.getIsPublic() == 1).collect(Collectors.toList());
+            List<Project> publicProjectList = projectList.stream().filter(p -> p.getIsPublic() == 1 && !"HH-QJ-0000001".equals(p.getProjectCode())).collect(Collectors.toList());
             List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().select(User::getId, User::getName, User::getDepartmentId).eq(User::getCompanyId, user.getCompanyId()));
 
             List<Report> reportList = reportMapper.getReportProjectGroupDetailList(user.getCompanyId(), firstDayOfMonth, lastDayOfMonth, groupNameList);
@@ -300,7 +300,8 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
                             List<User> deptUserList = userList.stream().filter(u -> u.getDepartmentId().equals(deptId)).collect(Collectors.toList());
                             List<String> deptUserIds = deptUserList.stream().map(User::getId).collect(Collectors.toList());
                             List<Report> deptUserReportGroupList = reportMapper.selectList(new QueryWrapper<Report>().select("project_id,extra_field4,extra_field5,dept_id, sum(working_time) working_time")
-                                    .in("creator_id", deptUserIds).between("create_date", firstDayOfMonth, lastDayOfMonth).isNotNull("extra_field4").ne("extra_field4", "")
+                                    .in("creator_id", deptUserIds).between("create_date", firstDayOfMonth, lastDayOfMonth)
+                                    .isNotNull("extra_field4").ne("extra_field4", "").eq("state", 1)
                                     .groupBy("project_id,extra_field4,extra_field5"));
                             double totalTime = deptUserReportGroupList.stream().mapToDouble(Report::getWorkingTime).sum();
                             System.out.println("处理公共工时分摊,总工时=="+totalTime);
@@ -322,7 +323,7 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
                             //处理非三大中心的公共工时分摊,按本部门的工单工时来统计
                             List<Report> deptUserReportGroupList = reportMapper.selectList(new QueryWrapper<Report>().select("project_id,extra_field4,extra_field5,dept_id, sum(working_time) working_time")
                                     .eq("dept_id", deptId).between("create_date", firstDayOfMonth, lastDayOfMonth).isNotNull("extra_field4").ne("extra_field4", "")
-                                    .eq("is_assist", 0)
+                                    .eq("is_assist", 0).eq("state", 1)
                                     .groupBy("project_id,extra_field4,extra_field5"));
                             double totalTime = deptUserReportGroupList.stream().mapToDouble(Report::getWorkingTime).sum();
                             System.out.println("处理非三大中心公共工时分摊,总工时=="+totalTime);
@@ -560,7 +561,9 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
     @Override
     public HttpRespMsg getUnDistriibutedPublicTime(Integer fmwId, HttpServletRequest request) {
         FinanceMonthlyWorktime financeMonthlyWorktime = financeMonthlyWorktimeMapper.selectById(fmwId);
-        List<Project> publicProjectList = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getIsPublic, 1).eq(Project::getCompanyId, financeMonthlyWorktime.getCompanyId()));
+        List<Project> publicProjectList = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getIsPublic, 1)
+                        .ne(Project::getProjectCode, "HH-QJ-0000001")//请假项目排除掉
+                .eq(Project::getCompanyId, financeMonthlyWorktime.getCompanyId()));
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().select(User::getId, User::getName, User::getDepartmentId).eq(User::getCompanyId, financeMonthlyWorktime.getCompanyId()));
 // 处理公共项目工时分摊
         List<Integer> publicProjectIds = publicProjectList.stream()
@@ -577,9 +580,11 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
             //TODO: 需确认,员工填报公共项目工时的时候,会选择到工单吗?
             //研发中心的公共工时不参与分摊; deptId=9508
             int reserveDeptId = 9508;
+            //请假项目不参与
             List<Report> publicReportList = reportMapper.selectList(
                     new LambdaQueryWrapper<Report>().select(Report::getCreatorId, Report::getDeptId, Report::getWorkingTime).eq(Report::getState, 1)
-                            .ne(Report::getDeptId, reserveDeptId)
+                            .ne(Report::getDeptId, reserveDeptId).ne(Report::getProjectId, null)
+
                             .in(Report::getProjectId, publicProjectIds).between(Report::getCreateDate, firstDayOfMonth, lastDayOfMonth));
             //按照人员所在的部门进行分组,汇总,如果公共项目没有工单,此步骤可以省略
             publicReportList.forEach(report -> {
@@ -614,7 +619,8 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
                         List<User> deptUserList = userList.stream().filter(u -> u.getDepartmentId().equals(deptId)).collect(Collectors.toList());
                         List<String> deptUserIds = deptUserList.stream().map(User::getId).collect(Collectors.toList());
                         List<Report> deptUserReportGroupList = reportMapper.selectList(new QueryWrapper<Report>().select("project_id,extra_field4,extra_field5,dept_id, sum(working_time) working_time")
-                                .in("creator_id", deptUserIds).between("create_date", firstDayOfMonth, lastDayOfMonth).isNotNull("extra_field4").ne("extra_field4", "")
+                                .in("creator_id", deptUserIds).between("create_date", firstDayOfMonth, lastDayOfMonth)
+                                .isNotNull("extra_field4").ne("extra_field4", "").eq("state", 1)
                                 .groupBy("project_id,extra_field4,extra_field5"));
                         double totalTime = deptUserReportGroupList.stream().mapToDouble(Report::getWorkingTime).sum();
                         System.out.println("处理公共工时分摊,总工时=="+totalTime);
@@ -627,7 +633,7 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
                         //处理非三大中心的公共工时分摊,按本部门的工单工时来统计
                         List<Report> deptUserReportGroupList = reportMapper.selectList(new QueryWrapper<Report>().select("project_id,extra_field4,extra_field5,dept_id, sum(working_time) working_time")
                                 .eq("dept_id", deptId).between("create_date", firstDayOfMonth, lastDayOfMonth).isNotNull("extra_field4").ne("extra_field4", "")
-                                .eq("is_assist", 0)
+                                .eq("is_assist", 0).eq("state", 1)
                                 .groupBy("project_id,extra_field4,extra_field5"));
                         double totalTime = deptUserReportGroupList.stream().mapToDouble(Report::getWorkingTime).sum();
                         System.out.println("处理非三大中心公共工时分摊,总工时=="+totalTime);

+ 6 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2167,8 +2167,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 String uid = (String)a.get("userId");
                 String corpwxUserid = (String)a.get("corpwxUserid");
                 String fillUserName = (String)a.get("fillUserName");
-                String startTime=a.get("startTime")==null?"":(String)a.get("startTime");
-                String endTime=a.get("endTime")==null?"":(String)a.get("endTime");
                 System.out.println("createDate=="+createDate + " name=="+name+" uid=="+uid+" corpwxUserid=="+corpwxUserid);
                 if (lastName == null || !(lastName.get("name").equals(name) && lastName.get("dateStr").equals(createDate))) {
                     lastName = new HashMap<String, Object>();
@@ -2177,8 +2175,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     lastName.put("userId", uid);
                     lastName.put("corpwxUserid", corpwxUserid);
                     lastName.put("fillUserName", fillUserName);
-                    lastName.put("startTime", startTime);
-                    lastName.put("endTime", endTime);
                     nameList.add(lastName);
                     userDailyReportList = new ArrayList<>();
                     lastName.put("data", userDailyReportList);
@@ -2298,6 +2294,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             double wh = first.get().getWorkHours();
                             //赋值打卡时长
                             map.put("cardHours", wh);
+                            map.put("startTime", first.get().getStartTime());
+                            map.put("endTime", first.get().getEndTime());
                         }
                     }
                 }
@@ -2316,6 +2314,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             double wh = first.get().getWorkHours();
                             //赋值打卡时长
                             map.put("cardHours", wh);
+                            map.put("startTime", first.get().getStartTime());
+                            map.put("endTime", first.get().getEndTime());
                         }
                     }
                 }
@@ -2334,6 +2334,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             double wh = first.get().getWorkHours();
                             //赋值打卡时长
                             map.put("cardHours", wh);
+                            map.put("startTime", first.get().getStartTime());
+                            map.put("endTime", first.get().getEndTime());
                         }
                     }
                 }

+ 4 - 3
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/planView/todayPlan/distribution.vue

@@ -14,7 +14,8 @@
         <div>{{ productSchedulingNum }}</div>
         <div>{{ dates }}</div>
       </div>
-      <van-button @click="batchUnReceive()" :disabled="canBatchOperationsBePerformed" type="info" size="small">批量拒收</van-button>
+      <!-- <van-button @click="batchUnReceive()" :disabled="canBatchOperationsBePerformed" type="info" size="small">批量拒收</van-button> -->
+      <van-button @click="batchUnReceive()" :disabled="!isCanAgree || distributionList.length == 0" type="info" size="small">批量拒收</van-button>
     </div>
     
     <div class="distribution_con contentRoll">
@@ -92,8 +93,8 @@
             <van-button style="margin-right: 10px;" @click="showReassignment()" :disabled="isItPossibleToReassign" type="info" size="small">改派</van-button>
           </template> -->
           
-          <van-button style="margin-right: 10px;" @click="batchReceive()" :disabled="canBatchOperationsBePerformed" type="info" size="small">批量接收</van-button>
-          <van-button @click="cancellationReceiveBatch()" :disabled="canBatchOperationsBePerformed" type="info" size="small">批量取消接收</van-button>
+          <van-button style="margin-right: 10px;" @click="batchReceive()" :disabled="!isCanAgree || distributionList.length == 0" type="info" size="small">批量接收</van-button>
+          <van-button @click="cancellationReceiveBatch()" :disabled="!isCanAgree || distributionList.length == 0" type="info" size="small">批量取消接收</van-button>
           
           <!-- <van-button @click="batchAgree(false)" :disabled="!isCanAgree || distributionList.length == 0" type="danger" size="small" style="margin-left:2vw">批量驳回</van-button> -->
         </div>

+ 3 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -5246,6 +5246,9 @@ export default {
       return sums;
     },
     adjustWorkingHours(row, title = '', value, filed) {
+      if(this.obtainMonthlyFinancialStatementsRows.status == 1) {
+        return
+      }
       this.adjustWorkingHoursRow = {
         ...row,
         filed,

+ 25 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -1284,7 +1284,7 @@
 
         <!--导出报表条件选择 -->
         <el-dialog :title="$t('textLink.exportWork')" v-if="exportDialog" :visible.sync="exportDialog" customClass="customWidth" width="500px">
-            <el-form ref="form3" :model="exportParam" >
+            <el-form ref="form3" :model="exportParam" label-width="105px">
                 <el-form-item prop="projectId" :label="$t('defaultText.selectProject')">
                     <el-select v-model="exportParam.projectId" :placeholder="$t('other.allProject')"  clearable filterable style="width:350px;">
                         <el-option v-for="item in projectList"  :key="item.id" :label="item.projectName" :value="item.id"></el-option>
@@ -1314,7 +1314,7 @@
                 </el-form-item>
 
                 <el-form-item :label="customConfigurationRow.name" v-if="customConfigurationRow.name">
-                    <el-select v-model="exportParam.plate" placeholder="请选择"  clearable filterable>
+                    <el-select v-model="exportParam.plate" placeholder="请选择"  clearable filterable style="width:350px;">
                         <el-option v-for="item in customConfigurationRow.subUserCustomList || []"  :key="item.id" :label="item.name" :value="item.newId"></el-option>
                     </el-select>
                 </el-form-item>
@@ -4421,7 +4421,8 @@
           // month: this.date,
           startDate: this.WorktimeDatepickValue[0],
           endDate: this.WorktimeDatepickValue[1],
-          onlyHaveAttendance: this.onlyHaveAttendance?1:0
+          onlyHaveAttendance: this.onlyHaveAttendance?1:0,
+          noReportDeptId: this.deptIdForNoReport.length>0?this.deptIdForNoReport[this.deptIdForNoReport.length-1]:null
         },
         (res) => {
           if (res.code == "ok") {
@@ -5009,6 +5010,8 @@
                     }
                     this.jsTime = this.workForm.totalDuration * days;
                 }
+
+                this.seleChn()
             },
 
             // 是否加班的单机事件
@@ -6849,6 +6852,9 @@
                             if (this.isSubstitude && this.user.timeType.showCorpwxCardtime) {
                                 this.workForm.showRefresh = true;
                             }
+                            if(this.user.timeType.type == 3) {
+                                this.workForm.totalDuration = this.user.timeType.allday
+                            }
                     if (this.timeBasecostList&&this.timeBasecostList.length>0) {
                         this.workForm.domains[0].basecostId = this.timeBasecostList[0].id;
                     }        
@@ -7195,6 +7201,14 @@
                         });
                         return
                     }
+
+                    if(taskGroupRow.name.indexOf('入库后工时') != '-1' && extraField4) {
+                        this.$message({
+                            message: `入库后工时不能关联工单`,
+                            type: "error"
+                        });
+                        return
+                    }
                 }
                 
                 this.tianxieDialogVisible = false
@@ -9020,6 +9034,14 @@
                                     });
                                     return
                                 }
+
+                                if(taskGroupRow.name.indexOf('入库后工时') != '-1' && extraField4) {
+                                    this.$message({
+                                        message: `入库后工时不能关联工单`,
+                                        type: "error"
+                                    });
+                                    return
+                                }
                             }
                         }
 

+ 5 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/dailyReportReview.vue

@@ -237,7 +237,11 @@
               </el-table-column>
               <el-table-column prop="cardHours" :label="$t('workAttendance') + '(h)'" v-if="user.timeType.showCorpwxCardtime==1||user.timeType.showDdCardtime==1 || user.timeType.syncFanwei==1">
                   <template slot-scope="scope">
-                      <span :style="scope.row.cardHours != scope.row.reportTime?'color:red':''">{{scope.row.cardHours?scope.row.cardHours.toFixed(1):'-'}}</span>
+                      <span :style="scope.row.cardHours != scope.row.reportTime?'color:red':''">
+                        <span>{{ scope.row.startTime }} ~ {{ scope.row.endTime }}</span>  
+                        <span v-if="scope.row.cardHours">共 {{ scope.row.cardHours.toFixed(1) }} 小时</span>
+                        <span v-if="!scope.row.cardHours">-</span>
+                      </span>
                   </template>
               </el-table-column>
               

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -2380,7 +2380,7 @@ export default {
                 const extraField4 = this.form.domains[this.clickIndex].extraField4
                 const extraField5 = this.form.domains[this.clickIndex].extraField5
                 console.log(this.form.domains[this.clickIndex])
-                if((value.name.indexOf('出差工时') != -1 || value.name.indexOf('研发工时') != -1) && (extraField4 || extraField5)) {
+                if((value.name.indexOf('出差工时') != -1 || value.name.indexOf('研发工时') != -1 || value.name.indexOf('入库后工时') != -1) && (extraField4 || extraField5)) {
                     this.form.domains[this.clickIndex].extraField4 = ''
                     this.form.domains[this.clickIndex].extraField5 = ''
                 }
@@ -2390,7 +2390,7 @@ export default {
                     this.doYouWantToDisplayTheWorkOrder = true
                 }
 
-                if(value.name.indexOf('出差工时') != -1) {
+                if(value.name.indexOf('出差工时') != -1 || value.name.indexOf('入库后工时') != -1) {
                    this.doYouWantToDisplayTheWorkOrderGongdan = false 
                 } else {
                     this.doYouWantToDisplayTheWorkOrderGongdan = true

+ 6 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -1818,7 +1818,7 @@
                     const extraField4 = domainItem.extraField4
                     const extraField5 = domainItem.extraField5
                     console.log(domainItem)
-                    if((value.name.indexOf('出差工时') != -1 || value.name.indexOf('研发工时') != -1) && (extraField4 || extraField5)) {
+                    if((value.name.indexOf('出差工时') != -1 || value.name.indexOf('研发工时') != -1 || value.name.indexOf('入库后工时') != -1) && (extraField4 || extraField5)) {
                         this.currentForm.domains[this.clickIndex].extraField4 = ''
                         this.currentForm.domains[this.clickIndex].extraField5 = ''
                     }
@@ -1828,7 +1828,7 @@
                         this.doYouWantToDisplayTheWorkOrder = true
                     }
 
-                    if(value.name.indexOf('出差工时') != -1) {
+                    if(value.name.indexOf('出差工时') != -1 || value.name.indexOf('入库后工时') != -1) {
                         this.doYouWantToDisplayTheWorkOrderGongdan = false 
                     } else {
                         this.doYouWantToDisplayTheWorkOrderGongdan = true
@@ -1836,7 +1836,10 @@
 
                     const { reportExtraField4Name, reportExtraField5Name } = this.user.timeType
                     if((reportExtraField4Name || reportExtraField5Name) && value.id) {
-                        this.getInfoByProjectId(this.currentForm.domains[this.clickIndex].projectCode, value.id)
+                        console.log('kaishi1zhix1', this.currentForm.domains[this.clickIndex])
+                        const projectId = this.currentForm.domains[this.clickIndex].projectId
+                        const row = this.projectss.find(item => item.id == projectId)
+                        this.getInfoByProjectId((this.currentForm.domains[this.clickIndex].projectCode || row.projectCode), value.id)
                     }
                 }