廖井涛
2025-04-16 7aac0b821663de152ef665a030ebbef1d34b41f2
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
3个文件已修改
81 ■■■■■ 已修改文件
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 &lt;  #{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 &lt;  #{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>