云
5 天以前 1d9cfc91e7255b9e139b20ff230cb19246f19193
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -139,10 +139,8 @@
            adminUserApi.validateUser(createReqVO.getSaleUserId());
        }
        // 1.5 生成订单号,并校验唯一性
        String no = noRedisDAO.generate(ErpNoRedisDAO.SALE_ORDER_NO_PREFIX);
        if (saleOrderMapper.selectByNo(no) != null) {
            throw exception(SALE_ORDER_NO_EXISTS);
        }
        String no = noRedisDAO.generate(ErpNoRedisDAO.SALE_ORDER_NO_PREFIX,
                candidate -> saleOrderMapper.selectByNo(candidate) != null);
        // 2.1 插入订单(创建后为未提交状态,需手动提交审批到协同办公)
        ErpSaleOrderDO saleOrder = BeanUtils.toBean(createReqVO, ErpSaleOrderDO.class, in -> in
@@ -306,11 +304,16 @@
        }
        // 3. 单号:填了就用(校验唯一),没填自动生成
        String no = StrUtil.isNotBlank(head.getNo()) ? head.getNo().trim()
                : noRedisDAO.generate(ErpNoRedisDAO.SALE_ORDER_NO_PREFIX);
        String no;
        if (StrUtil.isNotBlank(head.getNo())) {
            no = head.getNo().trim();
        if (saleOrderMapper.selectByNo(no) != null) {
            throw new IllegalArgumentException("销售单编号已存在:" + no);
        }
        } else {
            no = noRedisDAO.generate(ErpNoRedisDAO.SALE_ORDER_NO_PREFIX,
                    candidate -> saleOrderMapper.selectByNo(candidate) != null);
        }
        // 4. 组装主表:导入后固定为“未提交(0)”状态
        ErpSaleOrderDO saleOrder = new ErpSaleOrderDO();