From bdc4983c2162e1267325a2989c81c4a6aed33f08 Mon Sep 17 00:00:00 2001 From: Mrking <782276617@qq.com> Date: Sat, 14 Dec 2024 22:45:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=A0=B8=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../saleorder/SaleOrderServiceImpl.java | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index 6d8c6e5..30c7c16 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -988,15 +988,17 @@ public class SaleOrderServiceImpl implements SaleOrderService { private SaleContractSaveReqVO toSaleContractVO(SaleOrderDO saleOrder, List entrys) { CustomerDO customer = customerService.getCustomer(saleOrder.getCustomerId()); SaleContractSaveReqVO saveReqVO = new SaleContractSaveReqVO(); - // 优先使用销售订单合同号 - String billno = saleOrder.getContractCode(); - if (FuncUtil.isEmpty(billno)) { - billno = getNewContractCode2(); - } + String billno = getNewOrderCode2(); String contractType = saleOrder.getContractType(); if(StringUtils.isNotBlank(contractType)){ billno = billno.replace("XSHY-",contractType+"-"); } + /* // 优先使用销售订单合同号 + String billno = saleOrder.getContractCode(); + if (FuncUtil.isEmpty(billno)) { + billno = getNewContractCode2(); + }*/ + saveReqVO.setBillno(billno); saveReqVO.setCustomerId(saleOrder.getCustomerId()); saveReqVO.setCustomerName(customer.getName()); @@ -1176,4 +1178,44 @@ public class SaleOrderServiceImpl implements SaleOrderService { return saleOrderDO; } + private String getNewOrderCode2() { + String s = ""; + int count = 10; + while (true){ + count --; + try { + s = CodingRulesUtils.generateCode(saleContractCodeId, false); + checkCode2(null,s); + return s; + }catch (ServiceException e){ + log.warn("重复或者下一个编码"); + if(count < 0){ + log.error("编码获取失败"); + return ""; + } + } + } + } + + private void checkCode2(Long id,String code){ + if(FuncUtil.isNotEmpty(code)){ + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(SaleContractDO::getId,SaleContractDO::getBillno, BaseDO::getDeleted); + lambdaQueryWrapper.eq(SaleContractDO::getBillno, code); + lambdaQueryWrapper.eq(SaleContractDO::getDeleted,false); + List dos = saleContractMapper.selectList(lambdaQueryWrapper); + if(FuncUtil.isEmpty(id) && FuncUtil.isNotEmpty(dos)){ + throw exception(GlobalErrorCodeConstants.DATA_DUPLICATE); + } + if (FuncUtil.isNotEmpty(id) && FuncUtil.isNotEmpty(dos)) { + for (SaleContractDO aDo : dos) { + // 出现重复并当前id 不一致 + if(!FuncUtil.equals(aDo.getId(), id)){ + throw exception(GlobalErrorCodeConstants.DATA_DUPLICATE); + } + } + } + } + } + } \ No newline at end of file