فهرست منبع

车间二期开发

Min 11 ماه پیش
والد
کامیت
8133a68d56
15فایلهای تغییر یافته به همراه271 افزوده شده و 128 حذف شده
  1. 24 24
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java
  2. 8 8
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ReportMapper.java
  3. 12 12
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java
  4. 30 8
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java
  5. 4 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureServiceImpl.java
  6. 6 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java
  7. 82 42
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  8. 43 17
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml
  9. BIN
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/今日计划导入模板.xlsx
  10. BIN
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/插单计划导入模板.xlsx
  11. BIN
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/明日计划导入模板.xlsx
  12. 3 0
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/planView/component/planComponent.vue
  13. 4 1
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue
  14. 4 0
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponentDetil.vue
  15. 51 15
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

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

@@ -1532,8 +1532,8 @@ public class ReportController {
 
     //人员工时工价表
     @RequestMapping("getPersonWorkHoursWagesList")
-    public HttpRespMsg getPersonWorkHoursWagesList(Integer deptId,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.getPersonWorkHoursWagesList(deptId,userId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg getPersonWorkHoursWagesList(String deptIds,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.getPersonWorkHoursWagesList(deptIds,userId,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("getPersonWorkHoursWagesDetail")
@@ -1542,48 +1542,48 @@ public class ReportController {
     }
 
     @RequestMapping("exportPersonWorkHoursWorkTime")
-    public HttpRespMsg exportPersonWorkHoursWorkTime(Integer deptId,String userId,String startDate,String endDate){
-        return reportService.exportPersonWorkHoursWorkTime(deptId,userId,startDate,endDate);
+    public HttpRespMsg exportPersonWorkHoursWorkTime(String deptIds,String userId,String startDate,String endDate){
+        return reportService.exportPersonWorkHoursWorkTime(deptIds,userId,startDate,endDate);
     }
 
     @RequestMapping("getProcedureRealTimeProgressList")
-    public HttpRespMsg getProcedureRealTimeProgressList(String deptId,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.getProcedureRealTimeProgressList(deptId,userId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg getProcedureRealTimeProgressList(String deptIds,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.getProcedureRealTimeProgressList(deptIds,userId,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("exportProcedureRealTimeProgressList")
-    public HttpRespMsg exportProcedureRealTimeProgressList(String deptId,String userId,String startDate,String endDate){
-        return reportService.exportProcedureRealTimeProgressList(deptId,userId,startDate,endDate);
+    public HttpRespMsg exportProcedureRealTimeProgressList(String deptIds,String userId,String startDate,String endDate){
+        return reportService.exportProcedureRealTimeProgressList(deptIds,userId,startDate,endDate);
     }
 
     @RequestMapping("/workReportQuery")
-    public HttpRespMsg workReportQuery(Integer productId,String vehicleNum,String steelNum,Integer deptId,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.workReportQuery(productId,vehicleNum,steelNum,deptId,userId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg workReportQuery(Integer productId,String vehicleNum,String steelNum,String deptIds,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.workReportQuery(productId,vehicleNum,steelNum,deptIds,userId,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("/exportWorkReportQuery")
-    public HttpRespMsg exportWorkReportQuery(Integer productId,String vehicleNum,String steelNum,Integer deptId,String userId,String startDate,String endDate){
-        return reportService.exportWorkReportQuery(productId,vehicleNum,steelNum,deptId,userId,startDate,endDate);
+    public HttpRespMsg exportWorkReportQuery(Integer productId,String vehicleNum,String steelNum,String deptIds,String userId,String startDate,String endDate){
+        return reportService.exportWorkReportQuery(productId,vehicleNum,steelNum,deptIds,userId,startDate,endDate);
     }
 
     @RequestMapping("getPlanRealTimeProgressList")
-    public HttpRespMsg getPlanRealTimeProgressList(String deptId,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.getPlanRealTimeProgressList(deptId,userId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg getPlanRealTimeProgressList(String deptIds,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.getPlanRealTimeProgressList(deptIds,userId,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("exportPlanRealTimeProgressList")
-    public HttpRespMsg exportPlanRealTimeProgressList(String deptId,String userId,String startDate,String endDate){
-        return reportService.exportPlanRealTimeProgressList(deptId,userId,startDate,endDate);
+    public HttpRespMsg exportPlanRealTimeProgressList(String deptIds,String userId,String startDate,String endDate){
+        return reportService.exportPlanRealTimeProgressList(deptIds,userId,startDate,endDate);
     }
 
     @RequestMapping("getDpetStatisticsProgressList")
-    public HttpRespMsg getDpetStatisticsProgressList(String deptId,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.getDpetStatisticsProgressList(deptId,userId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg getDpetStatisticsProgressList(String deptIds,String userId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.getDpetStatisticsProgressList(deptIds,userId,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("exportDpetStatisticsProgressList")
-    public HttpRespMsg exportDpetStatisticsProgressList(String deptId,String userId,String startDate,String endDate){
-        return reportService.exportDpetStatisticsProgressList(deptId,userId,startDate,endDate);
+    public HttpRespMsg exportDpetStatisticsProgressList(String deptIds,String userId,String startDate,String endDate){
+        return reportService.exportDpetStatisticsProgressList(deptIds,userId,startDate,endDate);
     }
 
     /**
@@ -1624,13 +1624,13 @@ public class ReportController {
     }
 
     @RequestMapping("/getPlanDataWithStation")
-    public HttpRespMsg getPlanDataWithStation(@RequestParam(defaultValue = "0") Integer isFilterDept,Integer filterDeptId,Integer stationId,String startDate,String endDate,Integer pageIndex,Integer pageSize){
-        return reportService.getPlanDataWithStation(isFilterDept,filterDeptId,stationId,startDate,endDate,pageIndex,pageSize);
+    public HttpRespMsg getPlanDataWithStation(@RequestParam(defaultValue = "0") Integer isFilterDept,Integer filterDeptId,String stationIds,String startDate,String endDate,Integer pageIndex,Integer pageSize){
+        return reportService.getPlanDataWithStation(isFilterDept,filterDeptId,stationIds,startDate,endDate,pageIndex,pageSize);
     }
 
     @RequestMapping("/exportPlanDataWithStation")
-    public HttpRespMsg exportPlanDataWithStation(@RequestParam(defaultValue = "0") Integer isFilterDept,Integer filterDeptId,Integer stationId,String startDate,String endDate){
-        return reportService.exportPlanDataWithStation(isFilterDept,filterDeptId,stationId,startDate,endDate);
+    public HttpRespMsg exportPlanDataWithStation(@RequestParam(defaultValue = "0") Integer isFilterDept,Integer filterDeptId,String stationIds,String startDate,String endDate){
+        return reportService.exportPlanDataWithStation(isFilterDept,filterDeptId,stationIds,startDate,endDate);
     }
     
     @RequestMapping("/getPlanDataWithUserId")

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

@@ -186,21 +186,21 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     List<Map<String, Object>> getPersonWorkHoursWagesDetail(String date, String userId, Integer companyId,String startDate,String endDate,Integer checkStatus,Integer detailStatus);
 
-    List<Map<String, Object>> getProcedureRealTimeProgressList(Integer companyId,String deptId, String foremanId,String userId, String startDate, String endDate, Integer pageStart, Integer pageSize);
+    List<Map<String, Object>> getProcedureRealTimeProgressList(Integer companyId,List<Integer> deptIds, String foremanId,String userId, String startDate, String endDate, Integer pageStart, Integer pageSize);
 
-    Integer getProcedureRealTimeProgressCount(Integer companyId, String deptId, String foremanId, String userId, String startDate, String endDate);
+    Integer getProcedureRealTimeProgressCount(Integer companyId, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate);
 
-    List<Map<String, Object>> workReportQuery(Integer companyId,Integer productId, String vehicleNum,String steelNum, Integer deptId, String foremanId, String userId, String startDate, String endDate,Integer pageStart, Integer pageSize);
+    List<Map<String, Object>> workReportQuery(Integer companyId,Integer productId, String vehicleNum,String steelNum, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate,Integer pageStart, Integer pageSize);
 
-    Integer selectCountForWorkQuery(Integer companyId, Integer productId, String vehicleNum, String steelNum, Integer deptId, String foremanId, String userId, String startDate, String endDate);
+    Integer selectCountForWorkQuery(Integer companyId, Integer productId, String vehicleNum, String steelNum, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate);
 
-    List<Map<String, Object>> getPlanRealTimeProgressList(Integer companyId, String deptId, String foremanId, String userId, String startDate, String endDate, Integer pageStart, Integer pageSize,@Param("list") List<Integer> planIds);
+    List<Map<String, Object>> getPlanRealTimeProgressList(Integer companyId, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate, Integer pageStart, Integer pageSize,@Param("list") List<Integer> planIds);
 
-    Integer getPlanRealTimeProgressCount(Integer companyId, String deptId, String foremanId, String userId, String startDate, String endDate);
+    Integer getPlanRealTimeProgressCount(Integer companyId, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate);
 
-    List<Map<String, Object>> getDpetStatisticsProgressList(Integer companyId, String deptId, String foremanId, String userId, String startDate, String endDate, Integer pageStart, Integer pageSize);
+    List<Map<String, Object>> getDpetStatisticsProgressList(Integer companyId, List<Integer> deptIds, String foremanId, String userId, String startDate, String endDate, Integer pageStart, Integer pageSize);
 
-    Integer getDpetStatisticsProgressCount(Integer companyId, String deptId, String foremanId, String userId, String startDate, String endDate);
+    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);
 

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

@@ -117,27 +117,27 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg getChekerList(Integer checkType, Integer deptId);
 
-    HttpRespMsg getPersonWorkHoursWagesList(Integer deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+    HttpRespMsg getPersonWorkHoursWagesList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
     HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId,String startDate,String endDate,Integer checkStatus,Integer detailStatus);
 
-    HttpRespMsg exportPersonWorkHoursWorkTime(Integer deptId, String userId, String startDate, String endDate);
+    HttpRespMsg exportPersonWorkHoursWorkTime(String deptIds, String userId, String startDate, String endDate);
 
-    HttpRespMsg getProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+    HttpRespMsg getProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg exportProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate);
+    HttpRespMsg exportProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate);
 
-    HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize);
+    HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize);
 
-    HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate);
+    HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate);
 
-    HttpRespMsg getPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+    HttpRespMsg getPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg exportPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate);
+    HttpRespMsg exportPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate);
 
-    HttpRespMsg getDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+    HttpRespMsg getDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg exportDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate);
+    HttpRespMsg exportDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate);
 
     HttpRespMsg exportReport(String startDate, String endDate, Integer planId, Integer stateKey, Integer departmentId, HttpServletRequest request);
 
@@ -149,9 +149,9 @@ public interface ReportService extends IService<Report> {
 
  	Object fixSteelNumData();
 
- 	HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,Integer stationId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+ 	HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,String stationIds, String startDate, String endDate, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, Integer stationId, String startDate, String endDate);
+    HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, String stationIds, String startDate, String endDate);
 
     HttpRespMsg getPlanDataWithUserId(String userId, String startDate, String endDate);
 

+ 30 - 8
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -599,19 +599,25 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                         }
                     }
                     plan.setPlanType(0);
-                    //排产工单号 产品名称 钢印号 数量 主工序 工位 开工时间 完工时间 描述
+                    //排产工单号 产品名称 排产订单号 项目名称 列序号 钢印号 数量 主工序 工位 开工时间 完工时间 描述
                     XSSFCell productSchedulingNumCell = row.getCell(0);
                     XSSFCell productNameCell = row.getCell(1);
-                    XSSFCell steelStampNumberCell = row.getCell(2);
-                    XSSFCell numCell = row.getCell(3);
-                    XSSFCell mainProcessCell = row.getCell(4);
-                    XSSFCell stationNameCell = row.getCell(5);
-                    XSSFCell startDateCell = row.getCell(6);
-                    XSSFCell endDateCell = row.getCell(7);
-                    XSSFCell describtionCell = row.getCell(8);
+                    XSSFCell productOrderNumCell = row.getCell(2);
+                    XSSFCell projectNameCell = row.getCell(3);
+                    XSSFCell columnNumCell = row.getCell(4);
+                    XSSFCell steelStampNumberCell = row.getCell(5);
+                    XSSFCell numCell = row.getCell(6);
+                    XSSFCell mainProcessCell = row.getCell(7);
+                    XSSFCell stationNameCell = row.getCell(8);
+                    XSSFCell startDateCell = row.getCell(9);
+                    XSSFCell endDateCell = row.getCell(10);
+                    XSSFCell describtionCell = row.getCell(11);
 
                     if (productSchedulingNumCell != null) productSchedulingNumCell.setCellType(CellType.STRING);
                     if (productNameCell != null) productNameCell.setCellType(CellType.STRING);
+                    if (productOrderNumCell != null) productOrderNumCell.setCellType(CellType.STRING);
+                    if (projectNameCell != null) projectNameCell.setCellType(CellType.STRING);
+                    if (columnNumCell != null) columnNumCell.setCellType(CellType.STRING);
                     if (steelStampNumberCell != null) steelStampNumberCell.setCellType(CellType.STRING);
                     if (numCell != null) numCell.setCellType(CellType.NUMERIC);
                     if (mainProcessCell != null) mainProcessCell.setCellType(CellType.STRING);
@@ -635,6 +641,22 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                         }
                         plan.setProductSchedulingNum(productSchedulingNumCell.getStringCellValue());
                     }
+                    if(productOrderNumCell!=null&&!StringUtils.isEmpty(productOrderNumCell.getStringCellValue())){
+                        plan.setProductOrderNum(productOrderNumCell.getStringCellValue());
+                    }
+                    if(projectNameCell!=null&&!StringUtils.isEmpty(productNameCell.getStringCellValue())){
+                        plan.setProjectName(projectNameCell.getStringCellValue());
+                    }
+                    if(columnNumCell!=null&&StringUtils.isEmpty(columnNumCell.getStringCellValue())){
+                        String stringCellValue = columnNumCell.getStringCellValue();
+                        if(stringCellValue.contains("-")){
+                            String[] split = stringCellValue.split("-");
+                            if(split.length>1){
+                                plan.setColumnNumStart(Integer.valueOf(split[0]));
+                                plan.setColumnNumEnd(Integer.valueOf(split[1]));
+                            }
+                        }
+                    }
                     if(steelStampNumberCell!=null&&!StringUtils.isEmpty(steelStampNumberCell.getStringCellValue())){
                         String stringCellValue = steelStampNumberCell.getStringCellValue();
                         String[] split = stringCellValue.split("\\|");

+ 4 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureServiceImpl.java

@@ -111,19 +111,22 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
                     this.updateBatchById(updateList);
                     //todo:更新产品工序单价
                     List<Integer> procedureIds = updateList.stream().map(ProdProcedure::getId).distinct().collect(Collectors.toList());
+                    procedureIds.add(-1);
                     //todo:找到用到当前工序的plan_procedure_total(计划指定工序总进度表) 更新 单价相关数据
                     List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalService.list(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getProdProcedureId, procedureIds));
                     if(planProcedureTotals.size()>0){
                         List<Integer> planIds = planProcedureTotals.stream().map(PlanProcedureTotal::getPlanId).distinct().collect(Collectors.toList());
                         List<Plan> planList = planService.list(new LambdaQueryWrapper<Plan>().in(Plan::getId, planIds));
                         List<Integer> totalIds = planProcedureTotals.stream().map(PlanProcedureTotal::getId).distinct().collect(Collectors.toList());
+                        totalIds.add(-1);
                         List<ProdProcedureTeam> allProdProcedureTeams = prodProcedureTeamService.list(new LambdaQueryWrapper<ProdProcedureTeam>().in(ProdProcedureTeam::getPlanProcedureId,totalIds));
                         List<Integer> teamIdList = allProdProcedureTeams.stream().map(ProdProcedureTeam::getId).distinct().collect(Collectors.toList());
+                        teamIdList.add(-1);
                         List<Report> allReports = reportService.list(new LambdaQueryWrapper<Report>().select(Report::getId,Report::getUserProcedureTeamId, Report::getProdProcedureId,Report::getFinishNum).in(Report::getUserProcedureTeamId, teamIdList));
                         List<ProdProcedureTeam> needUpdateTeamList=new ArrayList<>();
                         List<Report> needUpdateReportList=new ArrayList<>();
                         for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
-                            Optional<ProdProcedure> first = updateList.stream().filter(u -> u.getId().equals(planProcedureTotal.getId())).findFirst();
+                            Optional<ProdProcedure> first = updateList.stream().filter(u -> u.getId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
                             if(first.isPresent()){
                                 Optional<Plan> plan = planList.stream().filter(p -> p.getId().equals(planProcedureTotal.getPlanId())).findFirst();
                                 if(plan.isPresent()){

+ 6 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -269,6 +269,9 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                 if(row==null){
                     continue;
                 }
+                if (ExcelUtil.isRowEmpty(row)) {
+                    continue;
+                }
 
                 //产品基本信息
                 XSSFCell nameCell = row.getCell(0);
@@ -380,6 +383,9 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                 if(row==null){
                     continue;
                 }
+                if (ExcelUtil.isRowEmpty(row)) {
+                    continue;
+                }
 
                 //工序信息
                 XSSFCell productNameCell = row.getCell(0);

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

@@ -4046,7 +4046,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 //    }
 
     @Override
-    public HttpRespMsg getPersonWorkHoursWagesList(Integer deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg getPersonWorkHoursWagesList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         HashMap resultMap=new HashMap();
         DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -4063,16 +4063,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部人员工时工价");
         QueryWrapper<User> queryWrapper=new QueryWrapper();
         queryWrapper.eq("company_id",companyId);
-        List<Integer> deptIds=new ArrayList<>();
-        if(deptId!=null){
-            deptIds = getBranchDepartment(Integer.valueOf(deptId), departmentList);
-            deptIds.add(Integer.valueOf(deptId));
-            queryWrapper.in("department_id",deptIds);
+        List<Integer> deptIdList=new ArrayList<>();
+        if(deptIds!=null&&!StringUtils.isEmpty(deptIds)){
+            String[] split = deptIds.split(",");
+            for (String deptId : split) {
+                List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                deptIdList.addAll(branchDepartment);
+            }
+            queryWrapper.in("department_id",deptIdList);
         }
         if(!StringUtils.isEmpty(userId)){
             queryWrapper.eq("id",userId);
         }
-        List<Map<String,Object>> personWorkHoursWagesList=reportMapper.getPersonWorkHoursWagesList(companyId,startDate,endDate,deptIds,userId);
+        List<Map<String,Object>> personWorkHoursWagesList=reportMapper.getPersonWorkHoursWagesList(companyId,startDate,endDate,deptIdList,userId);
         if(!canViewAll){
             /*作为工长看到的数据*/
             List<Plan> plans = planMapper.selectList(new QueryWrapper<Plan>().eq("foreman_id", user.getId()));
@@ -4271,8 +4274,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportPersonWorkHoursWorkTime(Integer deptId, String userId, String startDate, String endDate) {
-        HttpRespMsg respMsg = getPersonWorkHoursWagesList(deptId, userId, startDate, endDate, -1, -1);
+    public HttpRespMsg exportPersonWorkHoursWorkTime(String deptIds, String userId, String startDate, String endDate) {
+        HttpRespMsg respMsg = getPersonWorkHoursWagesList(deptIds, userId, startDate, endDate, -1, -1);
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HashMap resultMap= (HashMap) respMsg.data;
         List<User> mapList= (List<User>) resultMap.get("records");
@@ -4437,24 +4440,33 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg getProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
+        List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()));
         boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部工序实时进度");
         Integer pageStart = null;
         if (pageIndex!=null){
             pageStart = (pageIndex -1) * pageSize;
         }
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<Integer> deptIdList=new ArrayList<>();
+        if(!StringUtils.isEmpty(deptIds)){
+            String[] split = deptIds.split(",");
+            for (String deptId : split) {
+                List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                deptIdList.addAll(branchDepartment);
+            }
+        }
         HashMap map=new HashMap();
         List<Map<String, Object>> planRealTimeProgressList;
         Integer total;
         if(!canViewAll){
-            planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize);
-            total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
+            planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize);
+            total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
         }else {
-            planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize);
-            total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptId,null, userId, startDate, endDate);
+            planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize);
+            total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
         }
 
 
@@ -4465,9 +4477,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate) {
+    public HttpRespMsg exportProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
-        HttpRespMsg respMsg = getProcedureRealTimeProgressList(deptId, userId, startDate, endDate, null, null);
+        HttpRespMsg respMsg = getProcedureRealTimeProgressList(deptIds, userId, startDate, endDate, null, null);
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HashMap resultMap= (HashMap) respMsg.data;
         List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
@@ -4498,7 +4510,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize) {
+    public HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部报工");
@@ -4507,15 +4519,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             pageStart = (pageIndex -1) * pageSize;
         }
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
+        List<Integer> deptIdList=new ArrayList<>();
+        if(!StringUtils.isEmpty(deptIds)){
+            String[] split = deptIds.split(",");
+            for (String deptId : split) {
+                List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                deptIdList.addAll(branchDepartment);
+            }
+        }
         Map map=new HashMap();
         List<Map<String,Object>> mapList;
         Integer total;
         if(!canViewAll){
-            mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptId,user.getId(),userId,startDate,endDate,pageStart,pageSize);
-            total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptId,user.getId(), userId, startDate, endDate);
+            mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptIdList,user.getId(),userId,startDate,endDate,pageStart,pageSize);
+            total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptIdList,user.getId(), userId, startDate, endDate);
         }else {
-            mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptId,null,userId,startDate,endDate,pageStart,pageSize);
-            total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptId,null, userId, startDate, endDate);
+            mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptIdList,null,userId,startDate,endDate,pageStart,pageSize);
+            total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptIdList,null, userId, startDate, endDate);
         }
 
         map.put("records",mapList);
@@ -4525,9 +4546,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate) {
+    public HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
-        HttpRespMsg respMsg = workReportQuery(productId, vehicleNum, steelNum, deptId, userId, startDate,endDate,null,null);
+        HttpRespMsg respMsg = workReportQuery(productId, vehicleNum, steelNum, deptIds, userId, startDate,endDate,null,null);
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HashMap resultMap= (HashMap) respMsg.data;
         List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
@@ -4564,7 +4585,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg getPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部计划实时进度");
@@ -4575,15 +4596,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             pageStart = (pageIndex -1) * pageSize;
         }
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
+        List<Integer> deptIdList=new ArrayList<>();
+        if(!StringUtils.isEmpty(deptIds)){
+            String[] split = deptIds.split(",");
+            for (String deptId : split) {
+                List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                deptIdList.addAll(branchDepartment);
+            }
+        }
         List<Map<String, Object>> planRealTimeProgressList;
         Integer total;
         HashMap map=new HashMap();
         if(!canViewAll){
-            planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize,null);
-            total=reportMapper.getPlanRealTimeProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
+            planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize,null);
+            total=reportMapper.getPlanRealTimeProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
         }else {
-            planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize,null);
-            total=reportMapper.getPlanRealTimeProgressCount(companyId, deptId,null, userId, startDate, endDate);
+            planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize,null);
+            total=reportMapper.getPlanRealTimeProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
         }
         planRealTimeProgressList.forEach(pt->{
             BigDecimal planWorkTime = new BigDecimal(pt.get("planWorkTime") == null ? 0 : Double.valueOf(String.valueOf(pt.get("planWorkTime"))));
@@ -4601,9 +4631,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate) {
+    public HttpRespMsg exportPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
-        HttpRespMsg respMsg = getPlanRealTimeProgressList(deptId, userId, startDate, endDate, null, null);
+        HttpRespMsg respMsg = getPlanRealTimeProgressList(deptIds, userId, startDate, endDate, null, null);
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HashMap resultMap= (HashMap) respMsg.data;
         List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
@@ -4642,7 +4672,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg getDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部部门生产统计");
@@ -4654,15 +4684,23 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
+        List<Integer> deptIdList=new ArrayList<>();
+        if(!StringUtils.isEmpty(deptIds)){
+            String[] split = deptIds.split(",");
+            for (String deptId : split) {
+                List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
+                deptIdList.addAll(branchDepartment);
+            }
+        }
         HashMap map=new HashMap();
         List<Map<String, Object>> dpetStatisticsProgressList;
         Integer total;
         if(!canViewAll){
-            dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize);
-            total=reportMapper.getDpetStatisticsProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
+            dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize);
+            total=reportMapper.getDpetStatisticsProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
         }else {
-            dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize);
-            total=reportMapper.getDpetStatisticsProgressCount(companyId, deptId,null, userId, startDate, endDate);
+            dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize);
+            total=reportMapper.getDpetStatisticsProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
         }
         dpetStatisticsProgressList.forEach(pt->{
             BigDecimal planWorkTime = new BigDecimal(pt.get("planWorkTime") == null ? 0 : Double.valueOf(String.valueOf(pt.get("planWorkTime"))));
@@ -4682,9 +4720,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate) {
+    public HttpRespMsg exportDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
-        HttpRespMsg respMsg = getDpetStatisticsProgressList(deptId, userId, startDate, endDate, null, null);
+        HttpRespMsg respMsg = getDpetStatisticsProgressList(deptIds, userId, startDate, endDate, null, null);
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         HashMap resultMap= (HashMap) respMsg.data;
         List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
@@ -5303,7 +5341,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
 	@Override
-    public HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,Integer stationId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,String stationIds, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         NumberFormat format = NumberFormat.getPercentInstance();
@@ -5579,8 +5617,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         lastList=list;
 
-        if(stationId!=null){
-            lastList=lastList.stream().filter(l->Integer.valueOf(String.valueOf(l.get("deptId"))).equals(stationId)).collect(Collectors.toList());
+        if(stationIds!=null&&!StringUtils.isEmpty(stationIds)){
+            String[] split = stationIds.split(",");
+            List<Integer> collect = Arrays.asList(split).stream().map(i -> Integer.valueOf(i)).collect(Collectors.toList());
+            lastList=lastList.stream().filter(l->collect.contains(Integer.valueOf(String.valueOf(l.get("deptId"))))).collect(Collectors.toList());
         }
         //得到的数据再根据部门过滤一下
         if(pageSize!=null&&pageSize>lastList.size()){
@@ -5595,10 +5635,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, Integer stationId, String startDate, String endDate) {
+    public HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, String stationIds, String startDate, String endDate) {
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        HttpRespMsg data = getPlanDataWithStation(isFilterDept, filterDeptId, stationId, startDate, endDate, null, null);
+        HttpRespMsg data = getPlanDataWithStation(isFilterDept, filterDeptId, stationIds, startDate, endDate, null, null);
         Map<String, Object> objectMap = (Map<String, Object>) data.data;
         boolean isViewUser = (boolean) objectMap.get("isViewUser");
         List<Map<String, Object>> mapList = (List<Map<String, Object>>) objectMap.get("records");

+ 43 - 17
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -136,7 +136,9 @@
 
     <select id="getPersonWorkHoursWagesList" resultType="java.util.Map">
         select b.id as userId,c.department_name as departmentName,b.name as userName,DATE_FORMAT(a.create_date,'%Y%m%d') as crateDate,IFNULL(SUM(a.cost),0) as cost,IFNULL(SUM(a.working_time),0) as workTime
+        ,ppt.`work_time` AS planWorkTime,ppt.`job_of_money` AS planCost,(ppt.`work_time`-IFNULL(SUM(a.working_time),0)) AS surplusTime,(ppt.`job_of_money`-IFNULL(SUM(a.cost),0)) AS surplusCost
         from report a
+        LEFT JOIN `prod_procedure_team` ppt ON ppt.id=a.`user_procedure_team_id`
         left join user b on a.creator_id=b.id
         left join department c on c.department_id=b.department_id
         where a.company_id=#{companyId}
@@ -167,7 +169,7 @@
         left join plan on plan.id=r.plan_id
         left join user u on r.checker_id=u.id
         left join user u2 on r.creator_id=u2.id
-        where r.company_id=#{companyId}
+        where r.company_id=#{companyId}  and r.finish_num &gt; 0
         <if test="date!=null and date!=''">
             and r.create_date=#{date}
         </if>
@@ -196,8 +198,11 @@
         <if test="userId!=null and userId!=''">
             and b.foreman_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and b.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and b.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and b.foreman_id=#{foremanId}
@@ -222,8 +227,11 @@
         <if test="userId!=null and userId!=''">
             and  b.foreman_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and b.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and b.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and b.foreman_id=#{foremanId}
@@ -251,8 +259,11 @@
             <if test="vehicleNum!=null and vehicleNum!=''">
                 and #{vehicleNum} between pn.vehicle_num_start and pn.vehicle_num_end
             </if>
-            <if test="deptId!=null and deptId!=''">
-                and pn.station_id=#{deptId}
+            <if test="deptIds!=null and deptIds.size()>0">
+                and pn.station_id in
+                <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                    #{item}
+                </foreach>
             </if>
             <if test="foremanId!=null and foremanId!=''">
                 and pn.foreman_id=#{foremanId}
@@ -291,8 +302,11 @@
             <if test="vehicleNum!=null and vehicleNum!=''">
                 and #{vehicleNum} between pn.vehicle_num_start and pn.vehicle_num_end
             </if>
-            <if test="deptId!=null and deptId!=''">
-                and pn.station_id=#{deptId}
+            <if test="deptIds!=null and deptIds.size()>0">
+                and pn.station_id in
+                <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                    #{item}
+                </foreach>
             </if>
             <if test="foremanId!=null and foremanId!=''">
                 and pn.foreman_id=#{foremanId}
@@ -326,8 +340,11 @@
         <if test="userId!=null and userId!=''">
             and b.foreman_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and b.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and b.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and b.foreman_id=#{foremanId}
@@ -361,8 +378,11 @@
         <if test="userId!=null and userId!=''">
             and b.foreman_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and b.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and b.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and b.foreman_id=#{foremanId}
@@ -386,8 +406,11 @@
         <if test="userId!=null and userId!=''">
             and d.user_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and p.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and p.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and p.foreman_id=#{foremanId}
@@ -414,8 +437,11 @@
         <if test="userId!=null and userId!=''">
             and d.user_id=#{userId}
         </if>
-        <if test="deptId!=null and deptId!=''">
-            and p.station_id=#{deptId}
+        <if test="deptIds!=null and deptIds.size()>0">
+            and p.station_id in
+            <foreach collection="deptIds" item="item" close=")" open="(" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="foremanId!=null and foremanId!=''">
             and p.foreman_id=#{foremanId}

BIN
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/今日计划导入模板.xlsx


BIN
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/插单计划导入模板.xlsx


BIN
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/明日计划导入模板.xlsx


+ 3 - 0
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/planView/component/planComponent.vue

@@ -44,6 +44,9 @@
                 <div class="PlanItem">
                   <div>每辆数量:</div><span class="textBeyondHiding">{{ item.product.vehicleNumber }}</span>
                 </div>
+                <div class="PlanItem">
+                  <div>列序号:</div><span class="textBeyondHiding">{{ item.columnNumStart }}-{{ item.columnNumEnd }}</span>
+                </div>
                 <div class="PlanItemBtn">
                   <span class="text" @click="hidePlan(item.id,item.hideState)">
                     {{ jisuanDate(item.startDate)>30 ? '隐藏' : ''}}

+ 4 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue

@@ -144,6 +144,9 @@
           <el-form-item label="排产工单号" style="width: 100%" prop="productSchedulingNum">
             <el-input v-model="todayPlanForm.productSchedulingNum" maxlength="50"></el-input>
           </el-form-item>
+          <el-form-item label="排产订单号" style="width: 100%" prop="productOrderNum">
+            <el-input v-model="todayPlanForm.productOrderNum" maxlength="50"></el-input>
+          </el-form-item>
           <el-form-item label="产品名称" style="width: 100%" prop="productId">
             <el-select :disabled="todayPlanForm.id==null?false:true" v-model="todayPlanForm.productId" placeholder="请选择" class="w100" @change="setProductCode" filterable>
               <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
@@ -153,7 +156,7 @@
           <el-form-item label="项目代码" style="width: 100%" prop="projectCode">
             <el-input :disabled="todayPlanForm.id==null?false:true" v-model="todayPlanForm.projectCode" maxlength="50" readonly></el-input>
           </el-form-item>
-          <el-form-item label="项目名称" style="width: 100%" prop="projectCode">
+          <el-form-item label="项目名称" style="width: 100%" prop="projectName">
             <el-input  v-model="todayPlanForm.projectName" maxlength="50" ></el-input>
           </el-form-item>
 

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponentDetil.vue

@@ -29,6 +29,10 @@
           :height="tableHight"
           v-if="TabIndex == 0" v-loading="tableDataLoading"
         >
+        <el-table-column
+          type="index"
+          width="50">
+        </el-table-column>
           <el-table-column label="工序名称" width="400">
             <template slot-scope="scope">
                 <div class="disFlexscope">

+ 51 - 15
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -39,7 +39,7 @@
       <div class="headScreen" :style="'width:72%'">
           <!-- 部门筛选 -->
           <el-cascader v-if="ins!=5 && !isViewUser" v-model="departmentIdArray" :options="departmentList" :placeholder="$t('qing-xuan-ze-bu-men')"
-            :props="{ checkStrictly: true,expandTrigger: 'hover' }" collapse-tags :show-all-levels="false" clearable
+            :props="{ multiple: true, checkStrictly: true,expandTrigger: 'hover' }" collapse-tags :show-all-levels="false" clearable
             @change="selcts()" size="small" style="margin-bottom: 10px;width:180px"
           ></el-cascader>
 
@@ -90,8 +90,9 @@
                     <template slot-scope="scope">
                         <div v-for="(items, indexs) in scope.row.personWorkHoursWages" :key="indexs" @click="showReportDetail(scope.row,item,0)" :class="`${scope.row.departmentCascade== '小计' ? '' : 'colorText'}`">
                             <div v-if="items.crateDate == item">
-                               <div> {{items.workTime}}分钟 </div> 
-                               <div>{{items.cost}}元</div>
+                               <div style="color: black;"> {{items.workTime}}分钟  {{items.cost}}元</div> 
+                               <div>{{items.planWorkTime}}分钟  {{items.planCost}}元</div>
+                               <div style="color: red;">{{items.surplusTime}}分钟  {{items.surplusCost}}元</div>
                             </div>
                         </div>
                     </template>
@@ -889,13 +890,18 @@ export default {
     },
     //人员工时工价表数据
     getPersonWorkHoursWagesList(){
+        let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
         this.listLoading=true
         this.http.post( "/report/getPersonWorkHoursWagesList", {
             startDate:this.rangeDatas[0],
             endDate:this.rangeDatas[1],
             pageIndex: this.page,
             pageSize: this.size,
-            deptId:this.departmentIdArray[this.departmentIdArray.length - 1],
+            deptIds:deptArr.join(','),
             userId:this.userId
         },
         res => {
@@ -962,12 +968,17 @@ export default {
     //工序实际工时表
     getProcedureRealTimeProgressList(){
       this.listLoading=true
+      let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
         this.http.post( "/report/getProcedureRealTimeProgressList", {
             startDate:this.rangeDatas[0],
             endDate:this.rangeDatas[1],
             pageIndex: this.page,
             pageSize: this.size,
-            deptId:this.departmentIdArray[this.departmentIdArray.length - 1],
+            deptIds:deptArr.join(','),
             userId:this.userId
         },
         res => {
@@ -991,12 +1002,17 @@ export default {
     //部门生产统计表
     getDpetStatisticsProgressList(){
       this.listLoading=true
+      let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
         this.http.post( "/report/getDpetStatisticsProgressList", {
             startDate:this.rangeDatas[0],
             endDate:this.rangeDatas[1],
             pageIndex: this.page,
             pageSize: this.size,
-            deptId:this.departmentIdArray[this.departmentIdArray.length - 1],
+            deptIds:deptArr.join(','),
         },
         res => {
           if (res.code == "ok") {
@@ -1019,12 +1035,17 @@ export default {
     //计划实际工时表
     getPlanRealTimeProgressList(){
       this.listLoading=true
+      let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
         this.http.post( "/report/getPlanRealTimeProgressList", {
             startDate:this.rangeDatas[0],
             endDate:this.rangeDatas[1],
             pageIndex: this.page,
             pageSize: this.size,
-            deptId:this.departmentIdArray[this.departmentIdArray.length - 1],
+            deptIds:deptArr.join(','),
             userId:this.userId
         },
         res => {
@@ -1048,12 +1069,17 @@ export default {
     //人员工时工价表数据
     getWorkReportQuery(){
       this.listLoading=true
+      let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
         this.http.post( "/report/workReportQuery", {
             startDate:this.rangeDatas[0],
             endDate:this.rangeDatas[1],
             pageIndex: this.page,
             pageSize: this.size,
-            deptId:this.departmentIdArray[this.departmentIdArray.length - 1],
+            deptIds:deptArr.join(','),
             userId:this.userId,
             productId:this.productId,
             vehicleNum:this.vehicleNum,
@@ -1107,12 +1133,17 @@ export default {
     },
     //车间工位计划表
     getPlanDataWithStation(deptId){
+      let deptArr = []
+        for(var i in this.departmentIdArray){
+          let itemList = this.departmentIdArray[i] 
+          deptArr.push(itemList[itemList.length - 1])
+        }
       let param={
         startDate:this.rangeDatas[0],
         endDate:this.rangeDatas[1],
         pageIndex: this.page,
         pageSize: this.size,
-        stationId:this.departmentIdArray[this.departmentIdArray.length - 1],
+        stationIds:deptArr.join(','),
       }
       if(deptId){
         this.exportDeptId=deptId
@@ -1327,26 +1358,31 @@ export default {
     var url = "/report";
     var fName = "";
     var sl = {}
+    let deptArr = []
+    for(var i in this.departmentIdArray){
+      let itemList = this.departmentIdArray[i] 
+      deptArr.push(itemList[itemList.length - 1])
+    }
     if (this.ins == 0) {  
         fName = '人员工时工价表_' + '.xlsx';
         url += "/exportPersonWorkHoursWorkTime";
         sl.startDate=this.rangeDatas[0];
         sl.endDate=this.rangeDatas[1];
-        sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+        sl.deptIds=deptArr.join(',');
         sl.userId=this.userId;
     } else if (this.ins == 1) {
         fName = '工序实时进度表_' + '.xlsx';
         url += "/exportProcedureRealTimeProgressList";
         sl.startDate=this.rangeDatas[0];
         sl.endDate=this.rangeDatas[1];
-        sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+        sl.deptIds=deptArr.join(',');
         sl.userId=this.userId;
     }else if (this.ins == 2) {
         fName = '报工详情表_' + '.xlsx';
         url += "/exportWorkReportQuery";
         sl.startDate=this.rangeDatas[0];
         sl.endDate=this.rangeDatas[1];
-        sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+        sl.deptIds=deptArr.join(',');
         sl.userId=this.userId;
         sl.vehicleNum=this.vehicleNum;
         sl.steelNum=this.steelNum;
@@ -1356,14 +1392,14 @@ export default {
         url += "/exportPlanRealTimeProgressList";
         sl.startDate=this.rangeDatas[0];
         sl.endDate=this.rangeDatas[1];
-        sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+        sl.deptIds=deptArr.join(',');
         sl.userId=this.userId;
     } else if (this.ins == 4) {
         fName = '部门生产统计表_' + '.xlsx';
         url += "/exportDpetStatisticsProgressList";
         sl.startDate=this.rangeDatas[0];
         sl.endDate=this.rangeDatas[1];
-        sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+        sl.deptIds=deptArr.join(',');
     }
     else if (this.ins == 5) {
         fName = '月度生产件数表_' + '.xlsx';
@@ -1378,7 +1414,7 @@ export default {
         sl.endDate=this.rangeDatas[1];
         if(!this.personnelFlag){
           url += "/exportPlanDataWithStation";
-          sl.deptId=this.departmentIdArray[this.departmentIdArray.length-1];
+          sl.deptIds=deptArr.join(',');
           if(this.exportDeptId){
           sl.filterDeptId=this.exportDeptId;
           sl.isFilterDept=1