guoyujie
2025-09-05 b0c60452329a61c32db74a1c7d7753d383d6310a
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -1213,12 +1213,33 @@
        return map;
    }
    public Boolean updateProcessSv(String processId, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
    public Boolean updateProcessSv(String processId,String orderNumber, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
        List<OrderProcessDetail> resultList = new ArrayList<>();
        //获取已报工工艺流程
        String processOk = flowCardMapper.getProcessOk(processId,technologyNumber);
        //判断该流程卡是否报工
        Integer count = flowCardMapper.reportingWorkCount(processId);
        if (count == 0) {
        String processOk = flowCardMapper.getProcessOk(processId,orderNumber,technologyNumber);
        if (processOk != null && !processOk.isEmpty()){
            List<String> okList = Arrays.asList(processOk.split("->"));
            List<String> orderList = Arrays.asList(Orderprocess.split("->"));
            // 判断 processOk 的每个工序是否都包含在 orderProcess 中
            for (String p : okList) {
                if (!orderList.contains(p)) {
                    return false;
                }
            }
            for (String process : okList) {
                List<OrderProcessDetail> details =
                        flowCardMapper.getProcessDetail(processId,orderNumber, technologyNumber, process);
                if (details != null && !details.isEmpty()) {
                    resultList.addAll(details);
                }
            }
        }
            //删除小片工艺表对应的数据
            flowCardMapper.deleteProcessMp(processId, technologyNumber);
            //重新插入修改好工艺流程卡的数据
@@ -1234,12 +1255,15 @@
                    }
                }
            }
            //将原来已报工的数据更新
            if (resultList != null && !resultList.isEmpty()) {
                for (OrderProcessDetail d : resultList) {
                    flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
                            d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                }
            }
            return true;
        } else {
            return false;
        }
    }