chenlu
2025-04-20 24888c4b2ca2ffc49c4d94aefd6aea32d515b6dd
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -41,6 +41,8 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Service
@@ -67,6 +69,8 @@
    private final SysErrorService sysErrorService;
    private final FinishedOperateLogMapper finishedOperateLogMapper;
    private final RestTemplate restTemplate;
    private final PatchLogMapper patchLogMapper;
    private final ReworkMapper reworkMapper;
    /*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) {
@@ -204,6 +208,8 @@
            map.put("historyTeams", reportingWorkMapper.historyTeamsMp(processIdStr, process));
            //历史工序
            map.put("historyProcess", reportingWorkMapper.SelectHistoryProcessMp(historyProcess, process));
            //是否合片工序
            map.put("laminating", laminating);
        }
        return map;
    }
@@ -265,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();
@@ -370,6 +377,8 @@
        });
        reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>()
                .eq(ReportingWork::getId, reportingWork.getId()));
        //保存日志
        Log log = new Log();
@@ -658,8 +667,6 @@
            } else {
                return false;
            }
        } else {
            return false;
        }
@@ -958,6 +965,45 @@
            result.put("data",false);
            return result;
        }
        List<String> oldOrderProcessIdList = new ArrayList<>();
        oldOrderProcessDetailList.forEach(oldOrderProcessDetail -> oldOrderProcessIdList.add(oldOrderProcessDetail.getProcessId()));
        //获取旧数据破损表是否存在破损
        List<DamageDetails> damageDetails = damageDetailsMapper.selectList(
                new QueryWrapper<DamageDetails>()
                        .in("process_id",oldOrderProcessIdList)
                        .eq("order_number", reportingWork.get("oldOrderNumber"))
                        .eq("quantity",0)
        );
        if(!damageDetails.isEmpty()){
            result.put("msg","旧订单存在报工未处理破损数据");
            result.put("data",false);
            return result;
        }
        //获取补片表是否存在补片未审核状态
        List<PatchLog> patchLogs = patchLogMapper.selectList(
                new QueryWrapper<PatchLog>()
                        .eq("order_id", reportingWork.get("oldOrderId"))
                        .eq("order_sort", reportingWork.get("oldOrderNumber"))
                        .eq("review_status",0)
        );
        if (patchLogs.isEmpty()){
            result.put("msg","旧订单存在补片未审核数据");
            result.put("data",false);
            return result;
        }
        List<Rework> reworks = reworkMapper.selectList(
                new QueryWrapper<Rework>()
                    .eq("order_id", reportingWork.get("oldOrderId"))
                    .eq("order_sort", reportingWork.get("oldOrderNumber"))
                    .eq("review_status",0)
        );
        if (patchLogs.isEmpty()){
            result.put("msg","旧订单存在返工未审核数据,请先审核报工后再进行转出");
            result.put("data",false);
            return result;
        }
        Map<String,Object> log = new HashMap<>();
        log.put("oldOrderBeforeChange",oldOrderProcessDetailForReport);
@@ -973,6 +1019,7 @@
            reportingWorkMapper.update(null,new UpdateWrapper<ReportingWork>()
                    .set("reviewed_state",3)
                    .eq("process_id",oldOrderProcessDetail.getProcessId())
                    .gt("reviewed_state",0)
            );
@@ -1086,12 +1133,60 @@
        if(response.getStatusCode() == HttpStatus.OK){
            OrderNumberTransferDTO responseBody = response.getBody();
            result.put("data",true);
            return result;
        }else{
            result.put("msg","连接mes响应超时");
            result.put("data",false);
            return result;
        }
        return result;
    }
    public Map<String, Object> selectShiftQuantitySv(Map<String, Object> reportingWork) {
        String  creatorId = (String) reportingWork.get("userId");
        List<LocalDateTime> dateList = (List<LocalDateTime>) reportingWork.get("searchDate");
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String startDate = LocalDateTime.now().with(LocalTime.MIN).format(formatter);
        String endDate = LocalDateTime.now().format(formatter);
        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",orderProcessDetailMapper.selectShiftQuantitySv(creatorId, startDate, endDate));
        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;
    }
}