Explorar o código

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

Guo1B0 hai 10 meses
pai
achega
268de68560

+ 53 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java

@@ -392,7 +392,7 @@ public class UserWithBeisenController {
                     }
                     leaveSheet.setLeaveType(leaveType);
                     leaveSheet.setRemark(jsonObject.getString("Reason"));
-                    leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("Reason").equals("审批中")?1:2);
+                    leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("ApproveStatus").equals("审批中")?1:2);
                     leaveSheet.setProcinstId(jsonObject.getString("VacationId"));
                     LeaveSheet one = leaveSheetService.getOne(new LambdaQueryWrapper<LeaveSheet>().eq(LeaveSheet::getProcinstId,leaveSheet.getProcinstId()).eq(LeaveSheet::getOwnerId, first.get().getId()).eq(LeaveSheet::getStartDate, leaveSheet.getStartDate()).eq(LeaveSheet::getEndDate, leaveSheet.getEndDate()));
                     if(one==null){
@@ -601,6 +601,58 @@ public class UserWithBeisenController {
                 userFvTime.setId(one.getId());
             }
             userFvTimeService.saveOrUpdate(userFvTime);
+            //同步休假数据到工时管家
+            List<LeaveSheet> leaveSheetList=new ArrayList<>();
+            for (int i = 0; i < vacationList.size(); i++) {
+                JSONObject jsonObject = vacationList.getJSONObject(i);
+                Optional<UserWithBeisen> beisen1 = userWithBeisenList.stream().filter(b -> b.getUserId().equals(jsonObject.getString("StaffId"))).findFirst();
+                if(beisen.isPresent()){
+                    Optional<User> first1 = userList.stream().filter(u -> u.getJobNumber().equals(beisen.get().getJobNumber())).findFirst();
+                    if(first.isPresent()){
+                        LeaveSheet leaveSheet=new LeaveSheet();
+                        leaveSheet.setCompanyId(beisenConfig.getCompanyId());
+                        leaveSheet.setStatus(0);
+                        leaveSheet.setOwnerId(first.get().getId());
+                        leaveSheet.setOwnerName(first.get().getName());
+                        leaveSheet.setStartDate(LocalDateTime.parse(String.valueOf(jsonObject.get("VacationStartDateTime")),df3).toLocalDate());
+                        leaveSheet.setEndDate(LocalDateTime.parse(String.valueOf(jsonObject.get("VacationStopDateTime")),df3).toLocalDate());
+                        leaveSheet.setTimeType(1);
+                        leaveSheet.setTimeDays(jsonObject.getFloatValue("DayValueOfDuration"));
+                        leaveSheet.setTimeHours(jsonObject.getFloatValue("VacationDuration")/60);
+                        Integer leaveType;
+                        switch (jsonObject.getString("VacationType")){
+                            case "事假":leaveType=0;
+                                break;
+                            case "病假":leaveType=1;
+                                break;
+                            case "年假":leaveType=2;
+                                break;
+                            case "产假":leaveType=3;
+                                break;
+                            case "婚假":leaveType=4;
+                                break;
+                            case "丧假":leaveType=5;
+                                break;
+                            case "调休":leaveType=6;
+                                break;
+                            case "陪产假":leaveType=7;
+                                break;
+                            default:leaveType=8;
+                        }
+                        leaveSheet.setLeaveType(leaveType);
+                        leaveSheet.setRemark(jsonObject.getString("Reason"));
+                        leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("ApproveStatus").equals("审批中")?1:2);
+                        leaveSheet.setProcinstId(jsonObject.getString("VacationId"));
+                        LeaveSheet one1 = leaveSheetService.getOne(new LambdaQueryWrapper<LeaveSheet>().eq(LeaveSheet::getOwnerId, first.get().getId()).eq(LeaveSheet::getStartDate, leaveSheet.getStartDate()).eq(LeaveSheet::getProcinstId,leaveSheet.getProcinstId()).eq(LeaveSheet::getEndDate, leaveSheet.getEndDate()));
+                        if(one1==null){
+                            leaveSheetList.add(leaveSheet);
+                        }
+                    }
+                }
+            }
+            if(leaveSheetList.size()>0){
+                leaveSheetService.saveOrUpdateBatch(leaveSheetList);
+            }
             msg.setData(userFvTime);
         } else {
             msg.setError("未找到对应员工信息:staffId="+withBeisen.get().getUserId());

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -2503,7 +2503,7 @@ public class TimingTask {
                     }
                     leaveSheet.setLeaveType(leaveType);
                     leaveSheet.setRemark(jsonObject.getString("Reason"));
-                    leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("Reason").equals("审批中")?1:2);
+                    leaveSheet.setStatus(jsonObject.getString("ApproveStatus").equals("通过")?0:jsonObject.getString("ApproveStatus").equals("审批中")?1:2);
                     leaveSheet.setProcinstId(jsonObject.getString("VacationId"));
                     LeaveSheet one = leaveSheetService.getOne(new LambdaQueryWrapper<LeaveSheet>().eq(LeaveSheet::getOwnerId, first.get().getId()).eq(LeaveSheet::getStartDate, leaveSheet.getStartDate()).eq(LeaveSheet::getProcinstId,leaveSheet.getProcinstId()).eq(LeaveSheet::getEndDate, leaveSheet.getEndDate()));
                     if(one==null){

+ 7 - 7
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java

@@ -1601,18 +1601,18 @@ public class ReportController {
      * date 日期 格式yyyy-mm-dd
      */
     @RequestMapping("/exportReport")
-    public HttpRespMsg exportReport(String startDate, String endDate, Integer planId,@RequestParam(defaultValue = "0") Integer stateKey,Integer departmentId) {
+    public HttpRespMsg exportReport(String startDate, String endDate, Integer planId,@RequestParam(defaultValue = "0") Integer stateKey,String deptIds) {
         //startDate和endDate间隔不得超过1年
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDate start = LocalDate.parse(startDate, dateTimeFormatter);
         LocalDate end = LocalDate.parse(endDate, dateTimeFormatter);
-        if (start.until(end, ChronoUnit.DAYS) > 365) {
-            HttpRespMsg httpRespMsg = new HttpRespMsg();
-            httpRespMsg.setError("导出日报时间间隔不得超过1年");
-            return httpRespMsg;
-        }
+//        if (start.until(end, ChronoUnit.DAYS) > 365) {
+//            HttpRespMsg httpRespMsg = new HttpRespMsg();
+//            httpRespMsg.setError("导出日报时间间隔不得超过1年");
+//            return httpRespMsg;
+//        }
 
-        return reportService.exportReport(startDate, endDate, planId,stateKey,departmentId, request);
+        return reportService.exportReport(startDate, endDate, planId,stateKey,deptIds, request);
     }
     /**
      * 删除报告

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -204,7 +204,7 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     Integer getDpetStatisticsProgressCount(Integer companyId, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate);
 
-    List<Map<String,Object>> getReportList(String startDate, String endDate, Integer planId, Integer stateKey, Integer departmentId, Integer companyId);
+    List<Map<String,Object>> getReportList(String startDate, String endDate, Integer planId, Integer stateKey,@Param("list") List<Integer> deptIdList, Integer companyId);
 
     List<Map<String,Object>> getPlanDataWithStation(Integer companyId, String startDate, String endDate, String foremanId, Integer pageStart, Integer pageSize);
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java

@@ -139,7 +139,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg exportDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate);
 
-    HttpRespMsg exportReport(String startDate, String endDate, Integer planId, Integer stateKey, Integer departmentId, HttpServletRequest request);
+    HttpRespMsg exportReport(String startDate, String endDate, Integer planId, Integer stateKey, String deptIds, HttpServletRequest request);
 
     HttpRespMsg deleteReport(String id);
 

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

@@ -4979,11 +4979,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportReport(String startDate, String endDate, Integer planId, Integer stateKey, Integer departmentId, HttpServletRequest request) {
+    public HttpRespMsg exportReport(String startDate, String endDate, Integer planId, Integer stateKey, String deptIds, HttpServletRequest request) {
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
-        List<Map<String,Object>> reportList=reportMapper.getReportList(startDate,endDate,planId,stateKey,departmentId,companyId);
+        List<Integer> departmentIdList=new ArrayList<>();
+        if(!StringUtils.isEmpty(deptIds)){
+            List<Integer> list = Arrays.asList(deptIds.split(",")).stream().map(i -> Integer.valueOf(i)).collect(Collectors.toList());
+            departmentIdList.addAll(list);
+            for (Integer integer : list) {
+                List<Integer> branchDepartment = getBranchDepartment(integer, departmentList);
+                departmentIdList.addAll(branchDepartment);
+            }
+        }
+        List<Map<String,Object>> reportList=reportMapper.getReportList(startDate,endDate,planId,stateKey,departmentIdList,companyId);
         List<List<String>> dataList=new ArrayList<>();
 //        String[] title={"员工","工号","所属部门","排产工单号/任务变更通知号","钢印号","工作时长","产品名称","工序名称","进度","质检类型","质检人","工作日期","填报日期"};
 //        String[] title={"所属部门","工号","员工","排产工单号/任务变更通知号","钢印号","产品名称","工序名称","进度","工作件数", "工作时长","单价","工价","汇总",

+ 5 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -583,8 +583,11 @@
         <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
             and r.create_date between  #{startDate} and #{endDate}
         </if>
-        <if test="departmentId!=null">
-            and p.station_id=#{departmentId}
+        <if test="list!=null and list.size()>0">
+            and p.station_id in
+            <foreach collection="list" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="planId!=null">
             and r.plan_id=#{planId}

+ 42 - 13
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/workReport/daily.vue

@@ -669,11 +669,13 @@
                         <el-option v-for="item in allPlanList"  :key="item.id" :label="item.productName" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item> -->
-                <el-form-item prop="departmentId" :label="'选择工位'" v-if="permissions.reportsCompany">
+                <el-form-item :label="'选择工位'" v-if="permissions.reportsCompany">
 
-                    <el-cascader v-if="user.userNameNeedTranslate != 1" v-model="exportParam.departmentId" :placeholder="$t('other.allDepartments')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 350px;"></el-cascader>
-
-                    <vueCascader :size="'medium'" :widthStr="'350'" :clearable="true" :subject="departmentList" :radios="true" :distinction="'1'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
+                    <!-- 部门筛选 -->
+                    <el-cascader  v-model="departmentIdArray" :options="departmentList" :placeholder="$t('qing-xuan-ze-bu-men')"
+                        :props="{ multiple: true, checkStrictly: true,expandTrigger: 'hover' }" collapse-tags :show-all-levels="false" clearable
+                        size="small" style="margin-bottom: 10px;width:180px"
+                    ></el-cascader>
 
                 </el-form-item>
                 <el-form-item prop="projectId" :label="$t('time.dateRange')">
@@ -1379,7 +1381,7 @@
         },
         data() {
             return {
-                
+                props:{ multiple: true },
                 checkTypeTxt:['自检','互检','专检'],
                 modItemDataId: null,
                 modImportTime: null,
@@ -1465,7 +1467,7 @@
                 weekDay : [this.$t('weekDay.sunday'), this.$t('weekDay.monday'), this.$t('weekDay.tuesday'), this.$t('weekDay.wednesday'), this.$t('weekDay.thursday'), this.$t('weekDay.friday'), this.$t('weekDay.saturday')],
                 statusStyle:["waiting", "filledReportStyle", "RejectStyle", "waitSubmitStyle"],
                 fillStatusList: [],
-                exportParam:{projectId: null, dateRange:[], departmentId: null},
+                exportParam:{projectId: null, dateRange:[], deptIds: null},
                 exportDialog:false,
                 timeFields:['timeType', 'workingTime', 'startTime', 'progress'],
                 subProjectList:[],
@@ -1653,6 +1655,7 @@
                 totalReportHours: 0, // 合计的工时
 
                 allPlanList: [], // 所有计划
+                departmentIdArray:[],
             };
         },
         watch: {
@@ -1697,7 +1700,7 @@
             this.exportParam.dateRange = [startStr,t];
             this.getAllDate(1);
             this.getReportList();
-            
+            this.getDepartmentList()
             // this.getFillProjectList();
             // this.getTimeType();
             this.getDepartment();
@@ -3856,7 +3859,25 @@
                         });
                 }
             },
-            
+            getDepartmentList() {
+            this.http.post( this.port.manage.depList, {},
+                res => {
+                if (res.code == "ok") {
+                    let dptlist = JSON.parse(JSON.stringify(res.data));
+                    this.departmentList = this.changeArr(dptlist);
+                } else {
+                    this.$message({
+                    message: res.msg,
+                    type: "error"
+                    });
+                }
+                },error => {
+                this.$message({
+                    message: error,
+                    type: "error"
+                });
+                });
+            },
             // 获取部门列表
             getDepartment() {
                 let day = (this.choseDay+1) > 9 ? "-" + (this.choseDay + 1) : "-0" + (this.choseDay + 1);
@@ -3871,7 +3892,7 @@
                             // })
                             return
                         }
-                        this.departmentList = JSON.parse(JSON.stringify(res.data))
+                        // this.departmentList = JSON.parse(JSON.stringify(res.data))
                         var list = res.data , list1 = JSON.parse(JSON.stringify(res.data));
                         // let noAllData = JSON.parse(JSON.stringify(res.data));
                         // if (this.user.role > 0) {
@@ -4311,20 +4332,28 @@
             //导出日报
             exportReport() {
                 this.listLoading = true;
+                var fName ='日报统计表_' + '.xlsx';
                 var param = {};
                 const { dateRange, departmentId } = this.exportParam
                 param.startDate = dateRange[0]
                 param.endDate = dateRange[1]
-                console.log(departmentId)
-                if(departmentId && departmentId.length > 0) {
-                    param.departmentId = departmentId[departmentId.length - 1]
+                let deptArr = []
+                for(var i in this.departmentIdArray){
+                let itemList = this.departmentIdArray[i] 
+                deptArr.push(itemList[itemList.length - 1])
                 }
+                param.deptIds = deptArr.join(',')
                 this.http.post('/report/exportReport', param,
                 res => {
                     this.listLoading = false;
                     if (res.code == "ok") {
-                        location.href = res.data;
+                        var filePath = res.data;
                         this.exportDialog = false;
+                        const a = document.createElement('a'); // 创建a标签
+                        a.setAttribute('download', fName);// download属性
+                        a.setAttribute('href', filePath);// href链接
+                        a.click(); //自执行点击事件
+                        a.remove();
                     } else {
                         this.$message({
                             message: res.msg,