north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -169,4 +169,10 @@ return Result.seccess(reportingWorkService.selectShiftQuantitySv(reportingWork)); } @ApiOperation("手机查询本班组报工记录") @PostMapping("/selectReportingWorkRecordByPhone") public Result selectReportingWorkRecordByPhone(@RequestBody Map<String,Object> selectPam) { return Result.seccess(reportingWorkService.selectReportingWorkRecordByPhoneSv(selectPam)); } } north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -271,7 +271,8 @@ reportingWorkMapper.insert(reportingWork); //副表循环插入,并且插入次破信息表。再根据次破信息修改订单玻璃流程表的完工数量与刺破数量 reportingWorkDetails.forEach(reportingWorkDetail -> { reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + reportingWorkDetail.getCompletedQuantity()); reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + reportingWorkDetail.getBreakageQuantity()); int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus"); reportingWorkDetail.setReportingWorkId(reportingWorkId); List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails(); @@ -376,6 +377,8 @@ }); reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>() .eq(ReportingWork::getId, reportingWork.getId())); //保存日志 Log log = new Log(); @@ -664,8 +667,6 @@ } else { return false; } } else { return false; } @@ -1160,4 +1161,32 @@ result.put("date",date); return result; } public Map<String, Object> selectReportingWorkRecordByPhoneSv(Map<String,Object> reportingWork) { List<LocalDateTime> dateList = (List<LocalDateTime>) reportingWork.get("searchDate"); String startDate = LocalDate.now().minusDays(14).toString(); String endDate = LocalDate.now().toString(); if (dateList.get(0)!=null){ startDate = String.valueOf(dateList.get(0)); } if (dateList.get(1)!=null){ endDate = String.valueOf(dateList.get(1)); } List<String> date = new ArrayList<>(); date.add(startDate); date.add(endDate); Map<String, Object> result = new HashMap<>(); result.put("data",reportingWorkMapper.selectList( new QueryWrapper<ReportingWork>().nested( reportingWork.get("process")!=null, wrapper-> wrapper.eq("creator_id",reportingWork.get("userId"))//当工序为空时,查询所有报工信息 ) .gt("reviewed_state",-1) .between("date(reporting_work_time)",startDate,endDate) .orderByDesc("id"))); result.put("date",date); return result; } } north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -1020,27 +1020,22 @@ <select id="getFootSum"> SELECT ifnull(SUM(this_completed_quantity),0) AS thisCompletedQuantity, ifnull(SUM(ROUND(child_width * child_height * this_completed_quantity / 1000000, 2)),0) AS completedArea, ifnull(SUM(this_worn_quantity),0) AS thisWornQuantity, ifnull(SUM(ROUND(child_width * child_height * this_worn_quantity / 1000000, 2)),0) AS wornArea FROM ( -- 先对 reporting_work_id 进行去重 SELECT rw.reporting_work_id, MAX(rw.this_completed_quantity) AS this_completed_quantity, MAX(rw.this_worn_quantity) AS this_worn_quantity, MAX(ogd.child_width) AS child_width, MAX(ogd.child_height) AS child_height FROM reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id=rwd.reporting_work_id left join sd.order_glass_detail as ogd on ogd.order_id=rw.order_id and ogd.order_number=rwd.order_number and ogd.technology_number=rwd.technology_number left join sd.`order` as o on o.order_id=rw.order_id WHERE rw.reviewed_state != 2 and rw.reporting_work_time >= #{selectTime1} AND rw.reporting_work_time < #{selectTime2} and position(#{orderId} in rw.order_id) AND rw.reviewed_state != -1 AND o.create_order > 0 SUM(rw.this_completed_quantity) AS thisCompletedQuantity, ROUND(SUM(ogd.child_width * ogd.child_height * rw.this_completed_quantity / 1000000), 2) AS completedArea, SUM(rw.this_worn_quantity) AS thisWornQuantity, ROUND(SUM(ogd.child_width * ogd.child_height * rw.this_worn_quantity / 1000000), 2) AS wornArea FROM reporting_work AS rw LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = rw.order_id AND ogd.order_number = rwd.order_number AND ogd.technology_number = rwd.technology_number LEFT JOIN sd.`order` AS o ON o.order_id = rw.order_id WHERE rw.reviewed_state != 2 and rw.reporting_work_time >= #{selectTime1} AND rw.reporting_work_time < #{selectTime2} AND position(#{orderId} in rw.order_id) AND rw.reviewed_state != -1 AND o.create_order > 0 <if test="reportingWork.reportingWorkId != null and reportingWork.reportingWorkId != ''"> and rw.reporting_work_id regexp #{reportingWork.reportingWorkId} </if> @@ -1065,9 +1060,6 @@ <if test="reportingWork.teamsGroupsName != null and reportingWork.teamsGroupsName != ''"> and rw.teams_groups_name regexp #{reportingWork.teamsGroupsName} </if> GROUP BY rw.reporting_work_id -- 按 reporting_work_id 进行分组,确保唯一 ) AS subquery; </select>