liyong
2026-04-25 0d9b0dab20eae44c817944e98c967dfd8832f580
src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
@@ -10,6 +10,8 @@
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductProcessRouteItemService;
import com.ruoyi.production.service.ProductProcessService;
import com.ruoyi.production.service.ProductWorkOrderService;
import com.ruoyi.production.service.ProductionProductMainService;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.pojo.QualityInspect;
@@ -51,6 +53,9 @@
    private ProductOrderMapper productOrderMapper;
    private final ProductWorkOrderService productWorkOrderService;
    private final ProductProcessService productProcessService;
    @Override
@@ -131,31 +136,16 @@
    @Override
    public R addRouteItem(ProductProcessRouteItem productProcessRouteItem) {
        ProductOrder productOrder = productOrderMapper.selectById(productProcessRouteItem.getProductOrderId());
        ProductProcess productProcess = productProcessService.getById(productProcessRouteItem.getProcessId());
        int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
        // 生成当前日期的前缀:年月日
        String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        if (insert > 0) {
            // 查询今日已存在的最大工单号
            ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
            int sequenceNumber = 1; // 默认序号
            if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
                String lastNo = lastWorkOrder.getWorkOrderNo().toString();
                if (lastNo.startsWith(datePrefix)) {
                    String seqStr = lastNo.substring(datePrefix.length());
                    try {
                        sequenceNumber = Integer.parseInt(seqStr) + 1;
                    } catch (NumberFormatException e) {
                        sequenceNumber = 1;
                    }
                }
            }
            // 生成完整的工单号
            String workOrderNoStr = "GD" +String.format("%s%03d", datePrefix, sequenceNumber);
            ProductWorkOrder productWorkOrder = new ProductWorkOrder();
            productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
            productWorkOrder.setProductOrderId(productProcessRouteItem.getProductOrderId());
            productWorkOrder.setPlanQuantity(productOrder.getQuantity());
            productWorkOrder.setWorkOrderNo(workOrderNoStr);
            productWorkOrder.setWorkOrderNo(productWorkOrderService.generateProductWorkOrder(productProcess.getName(),productOrder.getNpsNo()));
            productWorkOrder.setStatus(1);
            productWorkOrderMapper.insert(productWorkOrder);
        }