Procházet zdrojové kódy

E10出入库导出生成单号修改

fgd před 1 rokem
rodič
revize
65dc7266f8

+ 9 - 11
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageBomServiceImpl.java

@@ -133,7 +133,7 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
                 .orderByAsc(InOutStorage::getInOutStorageTime));
 
         List<InOutStorageErpExportVo> inOutStorageErpExportVoList = new ArrayList<>();
-        String dateFormat = "";
+        Map<Long, String> codeMap = new HashMap<>();
         for (InOutStorage inOutStorage : inOutStorageList) {
             InOutStorageErpExportVo inOutStorageErpExportVo = new InOutStorageErpExportVo();
             inOutStorageErpExportVo.setId(inOutStorage.getId());
@@ -148,16 +148,14 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
                     inOutStorageErpExportVo.setDocCode("T119");
                 }
             }
-            // 获取单号 系统单号 XX-yyMMdd-000001
-            String[] codes = inOutStorage.getCode().split("-");
-            String substring = codes[1].substring(0, codes[1].length() - 2);
-            String format = "-20" + substring;
-            if (!Objects.equals(dateFormat, format)) {
-                dateFormat = format;
+            // 生成单号,单据类型+yyyyMMddHH
+            Long format = Long.parseLong(DateUtil.format(inOutStorage.getInOutStorageTime(), "-yyyyMMddHH"));
+            if (codeMap.get(format) != null) {
+                continue;
             }
-            // 后四位生成规则,取系统单号 dd01
-            int codeNum = Integer.parseInt(codes[1].substring(codes[1].length() - 2) + codes[2].substring(codes[2].length() - 2));
-            String code = inOutStorageErpExportVo.getDocCode() + format + String.format("%04d", codeNum);
+            String code = inOutStorageErpExportVo.getDocCode() + format;
+            codeMap.put(format, code);
+
             inOutStorageErpExportVo.setCode(code);
             inOutStorageErpExportVo.setCreateTime(DateUtil.format(inOutStorage.getInOutStorageTime(), "yyyy/MM/dd HH:mm:ss"));
             inOutStorageErpExportVo.setDeptCode("STWH");
@@ -172,7 +170,7 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
         List<InOutStorageBomErpExportVo> inOutStorageBomErpExportVoList = inOutStorageBomList.stream()
                 .map(item -> {
                     InOutStorageBomErpExportVo inOutStorageBomErpExportVo = new InOutStorageBomErpExportVo();
-                    inOutStorageBomErpExportVo.setCode(map.get(item.getInOutStorageId()));
+                    inOutStorageBomErpExportVo.setCode(map.get(Long.parseLong(DateUtil.format(item.getInOutStorageTime(), "-yyyyMMddHH"))));
                     inOutStorageBomErpExportVo.setBomSpecCode(item.getBomSpecCode());
                     inOutStorageBomErpExportVo.setQuantity(item.getQuantity().toPlainString());
                     inOutStorageBomErpExportVo.setWarehouseCode(item.getWarehouseCode());

+ 3 - 0
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseBomServiceImpl.java

@@ -143,6 +143,9 @@ public class PurchaseBomServiceImpl extends ServiceImpl<PurchaseBomMapper, Purch
         wrapper.orderByAsc("pb", PurchaseBom::getId);
         Page<PurchaseInTransitBomVo> page = this.baseMapper.getPurchaseInTransitBomPage(dto.getPage(), wrapper);
         List<PurchaseInTransitBomVo> records = page.getRecords();
+        if (records.isEmpty()) {
+            return page;
+        }
         List<Long> bomSpecIds = records.stream().map(PurchaseInTransitBomVo::getBomSpecId).collect(Collectors.toList());
         Map<Long, Inventory> inventoryMap = inventoryService.mapKEntity(Inventory::getBomSpecId, q -> q.in(Inventory::getBomSpecId, bomSpecIds).eq(Inventory::getWarehouseId, WarehouseConstant.SEMI_FINISHED_PRODUCT)
                 .eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS));