廖井涛
2025-03-26 d33a7f7c7e7c218a4cb71cb039249b75bcfeef42
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -842,12 +842,24 @@
    @Transactional(rollbackFor = Exception.class)
    public Object reportingWorkTransferSv(Map<String, String> reportingWork) {
        Map<String, Object> result = new HashMap<>();
        Order oldOrder = orderMapper.selectOrderId(reportingWork.get("oldOrderId"));
        OrderDetail oldOrderDetail = orderDetailMapper.selectOne(
                new QueryWrapper<OrderDetail>()
                        .eq("order_id", reportingWork.get("oldOrderId"))
                        .eq("order_number", reportingWork.get("oldOrderNumber"))
        );
        if(oldOrder == null){
            result.put("msg","旧订单不存在");
            result.put("data",false);
            return result;
        }
        if(oldOrderDetail == null){
            result.put("msg","旧订单次序号不存在");
            result.put("data",false);
            return result;
        }
        Order newOrder = orderMapper.selectOrderId(reportingWork.get("newOrderId"));
        OrderDetail newOrderDetail = orderDetailMapper.selectOne(
@@ -855,15 +867,37 @@
                        .eq("order_id", reportingWork.get("newOrderId"))
                        .eq("order_number", reportingWork.get("newOrderNumber"))
        );
        if (newOrder == null){
            result.put("msg","新订单不存在");
            result.put("data",false);
            return result;
        }
        if(newOrderDetail == null){
            result.put("msg","新订单次序号不存在");
            result.put("data",false);
            return result;
        }
        if(Objects.equals(oldOrder.getOrderId(), newOrder.getOrderId())){
            result.put("msg","新旧订单号一致");
            result.put("data",false);
            return result;
        }
        if(!Objects.equals(oldOrder.getCustomerId(), newOrder.getCustomerId())){
            return "新旧订单客户不一致";
            result.put("msg","新旧订单客户不一致");
            result.put("data",false);
            return result;
        }
        if(!Objects.equals(oldOrderDetail.getProductId(), newOrderDetail.getProductId())){
            return "新旧订单产品不一致";
            result.put("msg","新旧订单产品不一致");
            result.put("data",false);
            return result;
        }
        if (!Objects.equals(oldOrderDetail.getWidth(), newOrderDetail.getWidth())
                || !Objects.equals(oldOrderDetail.getHeight(), newOrderDetail.getHeight())){
            return "新旧订单尺寸不一致";
            result.put("msg","新旧订单尺寸不一致");
            result.put("data",false);
            return result;
        }
@@ -874,7 +908,9 @@
                        .eq("order_number", reportingWork.get("oldOrderNumber"))
                );
        if(oldOrderProcessDetailList.isEmpty()){
            return "旧订单未分流程卡";
            result.put("msg","旧订单未分流程卡");
            result.put("data",false);
            return result;
        }
        //获取新订单是否流程卡是否存在
        List<OrderProcessDetail> newOrderProcessDetailList = orderProcessDetailMapper
@@ -883,7 +919,9 @@
                        .eq("order_number", reportingWork.get("newOrderNumber"))
                );
        if(newOrderProcessDetailList.isEmpty()){
            return "新订单未分流程卡";
            result.put("msg","新订单未分流程卡");
            result.put("data",false);
            return result;
        }
        //新订单是否存在已经排版序号
        List<FlowCard> newFlowCardLayoutStatus = flowCardMapper.selectList(new QueryWrapper<FlowCard>()
@@ -892,7 +930,9 @@
                .gt("layout_status",0)
        );
        if(!newFlowCardLayoutStatus.isEmpty()){
            return "新订单此序号存在排版";
            result.put("msg","新订单此序号存在排版");
            result.put("data",false);
            return result;
        }
        //获取旧订单报工数据汇总
        List<OrderProcessDetail> oldOrderProcessDetailForReport = orderProcessDetailMapper
@@ -912,6 +952,13 @@
        List<OrderNumberTransferDTO> orderNumberTransferList = new ArrayList<>();
        oldOrderProcessDetailForReport.forEach(oldOrderProcessDetail -> {
            //修改报工状态为3
            reportingWorkMapper.update(null,new UpdateWrapper<ReportingWork>()
                    .set("reviewed_state",3)
                    .eq("process_id",oldOrderProcessDetail.getProcessId())
            );
            int maxNum = 0;
            for(OrderProcessDetail newOrderProcessDetail : newOrderProcessDetailList){
                if(oldOrderProcessDetail.getReportingWorkNum() == 0){
@@ -927,10 +974,13 @@
                                .eq("order_number", newOrderProcessDetail.getOrderNumber())
                                .eq("technology_number",newOrderProcessDetail.getTechnologyNumber())
                        );
                        maxNum = thisFlowCard.getQuantity();
                        maxNum = thisFlowCard.getQuantity()+thisFlowCard.getExportNumber()
                                -thisFlowCard.getImportNumber();
                    }else{
                        //当不是第一道工序则,拿上一道工序作为最大值
                        maxNum = orderProcessDetailMapper.selectById(newOrderProcessDetail.getId()-1).getReportingWorkNum();
                        //当不是第一道工序则,拿上一道工序减去当前工序作为最大值
                        maxNum = orderProcessDetailMapper.selectById(newOrderProcessDetail.getId()-1).getReportingWorkNum()
                        -orderProcessDetailMapper.selectById(newOrderProcessDetail.getId()).getReportingWorkNum()
                        ;
                    }
                    //判断被转移的数量是否大于可转移的数量最大值
                    int transferNum = 0;
@@ -1018,9 +1068,13 @@
                String.class);
        if(response.getStatusCode() == HttpStatus.OK){
            return true;
            result.put("data",true);
            return result;
        }else{
            return "mes响应超时";
            result.put("msg","连接mes响应超时");
            result.put("data",false);
            return result;
        }
    }
}