修改无码功能

This commit is contained in:
yf001217 2026-06-01 15:33:31 +08:00
parent dcbab3b27d
commit 6713263c28
5 changed files with 27 additions and 56 deletions

View File

@ -495,7 +495,7 @@ public class ComponentOutboundController extends BaseController {
buildZwm3a20DTO(zwm3a20DTO, scanCodesGroup, outboundItem);
}
componentOutboundControllerService.confirmPda(outbound, outboundItems, records, zwm3a20DTO, inventories);
componentOutboundControllerService.confirmPda(outbound, outboundItems, records, zwm3a20DTO, inventories, false);
return ApiResult.success();
}

View File

@ -694,13 +694,12 @@ public class InProduceOrderController extends BaseController {
}
/**
* 无码收货和入库PDA使用
* 无码收货和入库
* @param requests 请求参数
*/
@Transactional
@PostMapping("receiveNoScanning")
public ApiResult<Void> receiveNoScanning(@Valid @RequestBody @NotEmpty List<NoScanningRequest> requests) {
List<InMaterialScanRecord> records = new ArrayList<>();
List<InventoryInDTO> inventories = new ArrayList<>();
List<Zwm00Mb107QO> input1 = new ArrayList<>();
List<String> sernrs = new ArrayList<>();
@ -738,25 +737,6 @@ public class InProduceOrderController extends BaseController {
.throwMessage("物料" + orderItem.getMaterialNo() + "的无码收货数量与订单数量不一致");
item.getDatas().forEach(data -> {
records.add(new InMaterialScanRecord()
.setSource(4)
.setSourceId(order.getId())
.setSourceItemId(orderItem.getId())
.setTicketItemId(orderItem.getId())
.setMaterialNo(orderItem.getMaterialNo())
.setMaterialDesc(orderItem.getMaterialDesc())
.setFactoryNo(orderItem.getFactoryNo())
.setWarehouseNo(orderItem.getWarehouseNo())
.setBinNo(StrUtil.blankToDefault(data.getBinNo(), ""))
.setContent("")
.setBatchNo(StrUtil.blankToDefault(data.getBatchNo(), ""))
.setSerialNo(StrUtil.blankToDefault(data.getSerialNo(), ""))
.setNum(data.getNum())
.setUnit(orderItem.getUnit())
.setUniqNo("NO_SCAN_" + IdUtil.getSnowflakeNextId())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now())
);
inventories.add(new InventoryInDTO()
.setMaterialNo(orderItem.getMaterialNo())
.setFactoryNo(orderItem.getFactoryNo())
@ -798,7 +778,6 @@ public class InProduceOrderController extends BaseController {
order.setUpdateBy(UserUtil.getUserName());
order.setUpdateTime(LocalDateTime.now());
produceOrderService.updateById(order);
inMaterialScanRecordRespository.saveAll(records);
return ApiResult.success();
}

View File

@ -583,7 +583,6 @@ public class TransferCompanyController extends BaseController {
transferCompanyTicketItemService.saveBatch(ticketItems);
transferCompanyTicketService.save(ticket);
submitSap(order, ticket, records, datas, ticketItems, Collections.emptyList());
outMaterialScanRecordRespository.saveAll(records);
return ApiResult.success();
}
@ -920,7 +919,7 @@ public class TransferCompanyController extends BaseController {
}
/**
* 无扫码入库PDA使用
* 无扫码入库
*/
@Transactional
@PostMapping("pda/submitForInNoScanning")
@ -928,16 +927,11 @@ public class TransferCompanyController extends BaseController {
TransferCompanyTicketVO ticket = transferCompanyTicketService.getInfo(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
List<OutMaterialScanRecord> outRecords = outMaterialScanRecordRespository.findByTicketId(ticket.getId());
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(outRecords)).throwMessage("未找到出库扫码记录");
List<TransferCompanyItemVO> ticketItems = transferCompanyTicketItemService.getList(ticket.getId());
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(ticketItems)).throwMessage("出库单明细不存在");
Map<Long, TransferCompanyItemVO> ticketItemMap = ticketItems.stream()
.collect(Collectors.toMap(TransferCompanyItemVO::getId, item -> item));
Map<Long, OutMaterialScanRecord> outRecordMap = outRecords.stream()
.collect(Collectors.toMap(OutMaterialScanRecord::getTicketItemId, item -> item, (a, b) -> a));
List<InMaterialScanRecord> records = new ArrayList<>();
List<WmsTransferCompanyTicketItem> updateItems = new ArrayList<>();
for (NoScanningItemRequest item : request.getItems()) {
@ -955,9 +949,6 @@ public class TransferCompanyController extends BaseController {
.reduce(BigDecimal.ZERO, BigDecimal::add);
VUtil.trueThrowBusinessError(totalNum.compareTo(ticketItem.getNum()) != 0)
.throwMessage("物料" + ticketItem.getMatnr() + "的无扫码入库数量与凭证数量不一致");
OutMaterialScanRecord outRecord = outRecordMap.get(ticketItem.getId());
VUtil.trueThrowBusinessError(Objects.isNull(outRecord)).throwMessage("未找到出库扫码记录");
updateItems.add(new WmsTransferCompanyTicketItem()
.setId(ticketItem.getId())
.setBinNos1(item.getDatas().stream()
@ -972,8 +963,9 @@ public class TransferCompanyController extends BaseController {
String binNo = StrUtil.blankToDefault(data.getBinNo(), "");
records.add(new InMaterialScanRecord()
.setSource(6)
.setSourceId(outRecord.getSourceId())
.setSourceItemId(outRecord.getSourceItemId())
.setSourceId(ticket.getId())
.setSourceItemId(ticketItem.getOrderItemId())
.setTicketId(ticket.getId())
.setTicketItemId(ticketItem.getId())
.setMaterialNo(ticketItem.getMatnr())
.setMaterialDesc(ticketItem.getMaktx())
@ -987,7 +979,6 @@ public class TransferCompanyController extends BaseController {
.setUnit(ticketItem.getMeins())
.setEbelp(ticketItem.getEbelp())
.setEbeln(ticket.getEbeln())
.setRspos(outRecord.getRspos())
.setUniqNo("NO_SCAN_" + IdUtil.getSnowflakeNextId())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now())
@ -1012,7 +1003,6 @@ public class TransferCompanyController extends BaseController {
.setNum(list.stream().map(InMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
).toList()
);
inMaterialScanRecordRespository.saveAll(records);
OptRecordDTO optRecordDTO = new OptRecordDTO();
optRecordDTO.setOperationType((short) 1)
.setOrderId(ticket.getTicketNo());

View File

@ -615,7 +615,6 @@ public class TransferFactoryController extends BaseController {
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
).toList()
);
outMaterialScanRecordRespository.saveAll(records);
return ApiResult.success();
}
@ -893,7 +892,7 @@ public class TransferFactoryController extends BaseController {
}
/**
* 无码入库PDA使用
* 无码入库
*/
@Transactional
@PostMapping("pda/submitForInNoScanning")
@ -901,8 +900,6 @@ public class TransferFactoryController extends BaseController {
TransferFactoryTicketInfoVO ticket = transferFactoryTicketService.getInfo(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
List<OutMaterialScanRecord> records1 = outMaterialScanRecordRespository.findByTicketId(ticket.getId());
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(records1)).throwMessage("未找到出库记录");
List<TransferFactoryItemVO> ticketItems = transferFactoryTicketItemService.getList(ticket.getId());
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(ticketItems)).throwMessage("出库单明细不存在");
@ -923,9 +920,6 @@ public class TransferFactoryController extends BaseController {
.reduce(BigDecimal.ZERO, BigDecimal::add);
VUtil.trueThrowBusinessError(totalNum.compareTo(ticketItem.getNum()) != 0)
.throwMessage("物料" + ticketItem.getMatnr() + "的无码入库数量与出库数量不一致");
OutMaterialScanRecord outRecord = findOutRecord(records1, ticketItem);
VUtil.trueThrowBusinessError(Objects.isNull(outRecord)).throwMessage("未找到物料" + ticketItem.getMatnr() + "的出库记录");
matchedIds.add(item.getOrderItemId());
item.getDatas().forEach(data -> {
@ -934,18 +928,19 @@ public class TransferFactoryController extends BaseController {
String binNo = StrUtil.blankToDefault(data.getBinNo(), "");
records.add(new InMaterialScanRecord()
.setSource(5)
.setSourceId(outRecord.getSourceId())
.setSourceItemId(outRecord.getSourceItemId())
.setTicketItemId(outRecord.getTicketItemId())
.setMaterialNo(outRecord.getMaterialNo())
.setContent(outRecord.getContent())
.setSourceId(ticket.getId())
.setSourceItemId(ticketItem.getOrderItemId())
.setTicketId(ticket.getId())
.setTicketItemId(ticketItem.getId())
.setMaterialNo(ticketItem.getMatnr())
.setContent("")
.setBatchNo(batchNo)
.setSerialNo(serialNo)
.setFactoryNo(ticket.getWerks())
.setWarehouseNo(request.getWarehouseNo())
.setBinNo(binNo)
.setUniqNo(outRecord.getUniqNo())
.setRspos(outRecord.getRspos())
.setUniqNo("NO_SCAN_" + IdUtil.getSnowflakeNextId())
.setRspos(ticketItem.getRspos())
.setNum(data.getNum())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now())
@ -986,8 +981,8 @@ public class TransferFactoryController extends BaseController {
.setWerks(ticket.getWerks())
.setLgort(request.getWarehouseNo())).toList()
)
.setT_list2(records1.stream()
.collect(Collectors.groupingBy(OutMaterialScanRecord::getKey6))
.setT_list2(records.stream()
.collect(Collectors.groupingBy(InMaterialScanRecord::getKey2))
.values()
.stream()
.map(ls -> new ZWM00MB113LIST2QO()
@ -1011,7 +1006,6 @@ public class TransferFactoryController extends BaseController {
.set(WmsTransferFactoryTicket::getState, 1)
.eq(WmsTransferFactoryTicket::getId, ticket.getId())
.update();
inMaterialScanRecordRespository.saveAll(records);
return ApiResult.success();
}

View File

@ -52,12 +52,18 @@ public class ComponentOutboundControllerService {
@Transactional
public void confirmPda(WmsComponentOutbound outbound, List<WmsComponentOutboundItem> outboundItems, List<OutMaterialScanRecord> records) {
confirmPda(outbound, outboundItems, records, null, null);
confirmPda(outbound, outboundItems, records, null, null, true);
}
@Transactional
public void confirmPda(WmsComponentOutbound outbound, List<WmsComponentOutboundItem> outboundItems
, List<OutMaterialScanRecord> records, ZWM3A20DTO zwm3a20DTO, List<InventoryOutDTO> inventories) {
confirmPda(outbound, outboundItems, records, zwm3a20DTO, inventories, true);
}
@Transactional
public void confirmPda(WmsComponentOutbound outbound, List<WmsComponentOutboundItem> outboundItems
, List<OutMaterialScanRecord> records, ZWM3A20DTO zwm3a20DTO, List<InventoryOutDTO> inventories, boolean saveScanRecords) {
outbound.setOutboundNo(basdeSerialNumberService.generateSerialNumber(5));
wmsComponentOutboundService.save(outbound);
@ -76,7 +82,9 @@ public class ComponentOutboundControllerService {
.update();
wmsComponentPackingItemService.addOutQty(outbound.getPackingId());
outMaterialScanRecordRespository.saveAll(records);
if (saveScanRecords) {
outMaterialScanRecordRespository.saveAll(records);
}
if (Objects.nonNull(zwm3a20DTO)) {
OptRecordDTO optRecordDTO = new OptRecordDTO();