refactor(scan): 修改序列号字段名为serialNumbers并更新相关逻辑

- 将ScanCodeQO中serialNumber字段重命名为serialNumbers
- 更新ComponentOutboundController中序列号相关判断和赋值逻辑
- 修正InCostCenterBackController和OutCostCenterController中序列号字段映射
- 修改SapService中生成映射时使用serialNumbers字段
- 确保确认PDA方法参数格式统一调整
- 保持所有涉及序列号比较和处理的代码一致使用serialNumbers字段名
This commit is contained in:
曹鹏飞 2025-12-01 11:24:28 +08:00
parent 188043c6b5
commit 101501516c
6 changed files with 30 additions and 18 deletions

View File

@ -2,6 +2,7 @@ package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.InventoryForOutRepository;
@ -248,8 +249,9 @@ public class ComponentOutboundController extends BaseController {
if (CollectionUtil.isNotEmpty(item.getScanCodes())) { if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
List<ScanCodeQO> scanCodesGroup = new ArrayList<>(); List<ScanCodeQO> scanCodesGroup = new ArrayList<>();
for (ScanCodeQO code : item.getScanCodes()) { for (ScanCodeQO code : item.getScanCodes()) {
ScanCodeQO codeItem = scanCodesGroup.stream().filter(c -> c.getBatchNumber().equals(code.getBatchNumber()) ScanCodeQO codeItem = scanCodesGroup.stream()
&& c.getSerialNumber().equals(code.getSerialNumber()) .filter(c -> c.getBatchNumber().equals(code.getBatchNumber())
&& c.getSerialNumbers().equals(code.getSerialNumbers())
).findFirst().orElse(null); ).findFirst().orElse(null);
if (Objects.isNull(codeItem)) { if (Objects.isNull(codeItem)) {
@ -289,7 +291,7 @@ public class ComponentOutboundController extends BaseController {
.setMaterialNo(outboundItem.getIdnrk()) .setMaterialNo(outboundItem.getIdnrk())
.setContent(code.getCodeContent()) .setContent(code.getCodeContent())
.setBatchNo(code.getBatchNumber()) .setBatchNo(code.getBatchNumber())
.setSerialNo(code.getSerialNumber()) .setSerialNo(code.getSerialNumbers())
.setUniqNo(code.getCodeId()) .setUniqNo(code.getCodeId())
.setFactoryNo(packing.getFactoryNo()) .setFactoryNo(packing.getFactoryNo())
.setWarehouseNo(outboundItem.getLgort()) .setWarehouseNo(outboundItem.getLgort())
@ -300,7 +302,7 @@ public class ComponentOutboundController extends BaseController {
); );
//组装下库存信息 //组装下库存信息
setInventoryDTO(inventories, outboundItem.getIdnrk(), setInventoryDTO(inventories, outboundItem.getIdnrk(),
packing.getFactoryNo(), outboundItem.getLgort(), code.getBatchNumber(), code.getSerialNumber(), code.getCodeNum()); packing.getFactoryNo(), outboundItem.getLgort(), code.getBatchNumber(), code.getSerialNumbers(), code.getCodeNum());
} }
} }
@ -382,14 +384,17 @@ public class ComponentOutboundController extends BaseController {
.filter(record -> Objects.equals(record.getTicketItemId(), item.getId())) .filter(record -> Objects.equals(record.getTicketItemId(), item.getId()))
.toList() .toList()
.forEach(record -> { .forEach(record -> {
ScanCodeQO codeItem = scanCodesGroup.stream().filter(c -> c.getBatchNumber().equals(record.getBatchNo()) ScanCodeQO codeItem = scanCodesGroup.stream()
&& c.getSerialNumber().equals(record.getSerialNo()) .filter(c -> c.getBatchNumber().equals(record.getBatchNo())
).findFirst().orElse(null); && c.getSerialNumbers().equals(record.getSerialNo())
)
.findFirst()
.orElse(null);
if (Objects.isNull(codeItem)) { if (Objects.isNull(codeItem)) {
scanCodesGroup.add(new ScanCodeQO() scanCodesGroup.add(new ScanCodeQO()
.setCodeId(record.getId()) .setCodeId(record.getId())
.setBatchNumber(record.getBatchNo()) .setBatchNumber(record.getBatchNo())
.setSerialNumber(record.getSerialNo()) .setSerialNumbers(record.getSerialNo())
.setCodeContent(record.getContent()) .setCodeContent(record.getContent())
.setCodeNum(record.getNum()) .setCodeNum(record.getNum())
); );
@ -399,6 +404,12 @@ public class ComponentOutboundController extends BaseController {
}); });
buildZwm3a20DTO(zwm3a20DTO, scanCodesGroup, item); buildZwm3a20DTO(zwm3a20DTO, scanCodesGroup, item);
}); });
Pair<String, String> result = sapService.zwm3a20(zwm3a20DTO);
wmsComponentOutboundService.lambdaUpdate()
.set(WmsComponentOutbound::getMaterialDoc, result.getKey())
.set(WmsComponentOutbound::getMaterialDocYear, result.getValue())
.eq(WmsComponentOutbound::getId, qo.getId())
.update();
} else { } else {
order.setIsCompleted((short) 0); order.setIsCompleted((short) 0);
wmscomponentPackingService.updateById(order); wmscomponentPackingService.updateById(order);
@ -417,7 +428,7 @@ public class ComponentOutboundController extends BaseController {
set3A20Item(batchNumbers.get(0), outboundItem, outboundItem.getOutQty(), zwm3a20DTO); set3A20Item(batchNumbers.get(0), outboundItem, outboundItem.getOutQty(), zwm3a20DTO);
//判断是否有多个序列号 //判断是否有多个序列号
List<String> serialNumbers = scanCodesGroup.stream() List<String> serialNumbers = scanCodesGroup.stream()
.map(ScanCodeQO::getSerialNumber) .map(ScanCodeQO::getSerialNumbers)
.filter(StrUtil::isNotBlank) .filter(StrUtil::isNotBlank)
.distinct() .distinct()
.toList(); .toList();
@ -600,11 +611,11 @@ public class ComponentOutboundController extends BaseController {
itLipsItemDTO.setLfimg(itLipsItemDTO.getLfimg().add(code.getCodeNum())); itLipsItemDTO.setLfimg(itLipsItemDTO.getLfimg().add(code.getCodeNum()));
} }
//处理序列号的问题 //处理序列号的问题
if (StrUtil.isNotBlank(code.getSerialNumber())) { if (StrUtil.isNotBlank(code.getSerialNumbers())) {
zwm3a20DTO.getItSernrPatch().add(new ZWM3A20ITSERNRPATCHDTO() zwm3a20DTO.getItSernrPatch().add(new ZWM3A20ITSERNRPATCHDTO()
.setCharg(code.getBatchNumber()) .setCharg(code.getBatchNumber())
.setPosnr(outboundItem.getPosnr()) .setPosnr(outboundItem.getPosnr())
.setSernr(code.getSerialNumber()) .setSernr(code.getSerialNumbers())
); );
} }

View File

@ -289,7 +289,7 @@ public class InCostCenterBackController extends BaseController {
.setScanCodes(its.stream().map(qrCode -> new ScanCodeQO() .setScanCodes(its.stream().map(qrCode -> new ScanCodeQO()
.setCodeId(qrCode.getUniqNo()) .setCodeId(qrCode.getUniqNo())
.setCodeNum(qrCode.getNum()) .setCodeNum(qrCode.getNum())
.setSerialNumber(qrCode.getSerialNo()) .setSerialNumbers(qrCode.getSerialNo())
.setBatchNumber(qrCode.getBatchNo()) .setBatchNumber(qrCode.getBatchNo())
).toList() ).toList()
); );

View File

@ -341,7 +341,7 @@ public class OutCostCenterController extends BaseController {
.setScanCodes(its.stream().map(qrCode -> new ScanCodeQO() .setScanCodes(its.stream().map(qrCode -> new ScanCodeQO()
.setCodeId(qrCode.getUniqNo()) .setCodeId(qrCode.getUniqNo())
.setCodeNum(qrCode.getNum()) .setCodeNum(qrCode.getNum())
.setSerialNumber(qrCode.getSerialNo()) .setSerialNumbers(qrCode.getSerialNo())
.setBatchNumber(qrCode.getBatchNo()) .setBatchNumber(qrCode.getBatchNo())
).toList()); ).toList());
}).toList() }).toList()

View File

@ -51,7 +51,8 @@ public class ComponentOutboundControllerService {
} }
@Transactional @Transactional
public void confirmPda(WmsComponentOutbound outbound, List<WmsComponentOutboundItem> outboundItems, List<OutMaterialScanRecord> records, ZWM3A20DTO zwm3a20DTO, List<InventoryDTO> inventories) { public void confirmPda(WmsComponentOutbound outbound, List<WmsComponentOutboundItem> outboundItems
, List<OutMaterialScanRecord> records, ZWM3A20DTO zwm3a20DTO, List<InventoryDTO> inventories) {
outbound.setOutboundNo(basdeSerialNumberService.generateSerialNumber(5)); outbound.setOutboundNo(basdeSerialNumberService.generateSerialNumber(5));
wmsComponentOutboundService.save(outbound); wmsComponentOutboundService.save(outbound);

View File

@ -477,7 +477,7 @@ public class SapService {
item.getScanCodes().forEach(scanCode -> { item.getScanCodes().forEach(scanCode -> {
Map<String, Object> map = buildMb112TList1Map(item, scanCode.getCodeNum(), scanCode.getBatchNumber()); Map<String, Object> map = buildMb112TList1Map(item, scanCode.getCodeNum(), scanCode.getBatchNumber());
t_list1.add(map); t_list1.add(map);
Map<String, Object> map1 = buildMb112TList2Map(item.getResbRspos(), scanCode.getSerialNumber()); Map<String, Object> map1 = buildMb112TList2Map(item.getResbRspos(), scanCode.getSerialNumbers());
t_list2.add(map1); t_list2.add(map1);
}); });
} else { } else {
@ -620,7 +620,7 @@ public class SapService {
item.getScanCodes().forEach(scanCode -> { item.getScanCodes().forEach(scanCode -> {
Map<String, Object> map = buildMb115TList1Map(item, scanCode.getCodeNum(), scanCode.getBatchNumber()); Map<String, Object> map = buildMb115TList1Map(item, scanCode.getCodeNum(), scanCode.getBatchNumber());
t_list1.add(map); t_list1.add(map);
Map<String, Object> map1 = buildMb115TList2Map(item.getResbRspos(), scanCode.getSerialNumber()); Map<String, Object> map1 = buildMb115TList2Map(item.getResbRspos(), scanCode.getSerialNumbers());
t_list2.add(map1); t_list2.add(map1);
}); });
} else { } else {

View File

@ -29,7 +29,7 @@ public class ScanCodeQO {
/** /**
* 序列号 * 序列号
*/ */
private String serialNumber; private String serialNumbers;
/** /**
* 二维码内容 * 二维码内容