浏览代码

feat: 生成物料编号方法更新

hejq 7 年之前
父节点
当前提交
cbe172e233

+ 8 - 1
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseProductServiceImpl.java

@@ -22,6 +22,7 @@ import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.commodity.util.SheetUtil;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
+import com.uas.platform.b2c.prod.product.common.service.impl.CreateNumberServiceImpl;
 import com.uas.platform.b2c.trade.order.service.PurchaseProductService;
 import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
@@ -369,12 +370,18 @@ public class PurchaseProductServiceImpl implements PurchaseProductService {
         List<String> productCodeList = new ArrayList<>();
         Set<Long> idSet = new HashSet<>();
         List<ReleaseProductByBatch> batchList = new ArrayList<>();
+        String importNum = createNumberService.getTimeNumber("products", 8, uniqueBatchList.size());
+        if (StringUtils.isEmpty(importNum)) {
+            throw new IllegalOperatorException("生成批次号失败");
+        }
+        String time = importNum.substring(IntegerConstant.NO_SHORT, (IntegerConstant.TIME_LENGTH));
+        final Integer[] num = {Integer.valueOf(importNum.substring(IntegerConstant.TIME_LENGTH))};
         uniqueBatchList.forEach(batch -> {
             if (null != batch.getProductid()) {
                 idSet.add(batch.getProductid());
             } else {
                 if (StringUtilB2C.isEmpty(batch.getProductNum())) {
-                    String code = "PNUM" + StringUtilB2C.getRandomNumber(6);
+                    String code = "PNUM" + time + CreateNumberServiceImpl.formatIntToStr(++num[0], 8);
                     batch.setProductNum(code);
                 }
                 productCodeList.add(batch.getProductNum());