buhuazhen
2026-04-27 f25369ff160772b7e866462cb10dda799d27e9fb
feat(productOrder): 修复自动生成订单编号序号
已修改2个文件
14 ■■■■ 文件已修改
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -213,8 +213,8 @@
        return "SC" + datePrefix + formatOrderSequence(datePrefix);
    }
    public String generateNextOrderByContractNo(String datePrefix, String contractNo) {
        return contractNo + formatOrderSequence(datePrefix);
    public String generateNextOrderByContractNo(String contractNo) {
        return contractNo + formatOrderSequenceByContractNo(contractNo);
    }
    private String formatOrderSequence(String datePrefix) {
@@ -233,4 +233,12 @@
        return String.format("%04d", sequence);
    }
    private String formatOrderSequenceByContractNo(String contractNo) {
        LambdaQueryWrapper<ProductOrder> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.likeRight(ProductOrder::getNpsNo, contractNo);
        Long count = productOrderMapper.selectCount(queryWrapper);
        return String.format("%04d", count+1);
    }
}
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -280,7 +280,7 @@
        productOrder.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
        productOrder.setProductModelId(salesLedgerProduct.getProductModelId());
        productOrder.setSaleLedgerProductId(salesLedgerProduct.getId());
        String string = productOrderServiceImpl.generateNextOrderByContractNo(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")), salesLedger.getSalesContractNo());
        String string = productOrderServiceImpl.generateNextOrderByContractNo(salesLedger.getSalesContractNo());
        productOrder.setNpsNo(string);
        productOrder.setQuantity(salesLedgerProduct.getQuantity());//需求数量
        productOrder.setCompleteQuantity(BigDecimal.ZERO);//完成数量