diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java index d661f168..89577a86 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java @@ -11,6 +11,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; import com.nflg.wms.admin.pojo.dto.*; +import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository; import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -22,6 +23,7 @@ import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.document.OutMaterialScanRecord; import com.nflg.wms.common.pojo.document.SrmMaterialReceiptNoScanCodes; import com.nflg.wms.common.pojo.document.SrmMaterialReceiptScanCodes; import com.nflg.wms.common.pojo.dto.*; @@ -44,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; +import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; @@ -115,6 +118,9 @@ public class NormalPGIController extends BaseController { @Resource private IWmsWarehouseService wmsWarehouseService; + + @Resource + private OutMaterialScanRecordRespository outMaterialScanRecordRespository; //收货单分页 /** @@ -1299,10 +1305,11 @@ public class NormalPGIController extends BaseController { // ); // }); // qos.forEach(this::takeDeliveryConfirm); - Map> maps = datas.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey2)); + Map> maps = datas.stream().collect(Collectors.groupingBy(CrossQO::getKey2)); List pOrders = new ArrayList<>(); List tickets = new ArrayList<>(); List ticketItems = new ArrayList<>(); + List records = new ArrayList<>(); maps.forEach((key, items) -> { WmsOutProduce order = Convert.convert(WmsOutProduce.class, items.get(0)); order.setId(IdUtil.getSnowflakeNextId()); @@ -1336,12 +1343,38 @@ public class NormalPGIController extends BaseController { } else { throw new NflgException(STATE.BusinessError, "获取锁失败"); } - ticketItems.add( - new WmsOutProduceTicketItem() - .setTicketId(ticket.getId()) - .setProduceItemId(itemId) - .setNum(item.getSqsl()) - ); + WmsOutProduceTicketItem ticketItem=new WmsOutProduceTicketItem() + .setId(IdUtil.getSnowflakeNextId()) + .setTicketId(ticket.getId()) + .setProduceItemId(itemId) + .setNum(item.getSqsl()); + ticketItems.add(ticketItem); + item.getQrCodes().forEach(qr->{ + WmsQrCodeMaster qrCodeMaster = qrCodeMasters.stream() + .filter(qit -> qit.getBarcodeCode().equals(qr.getCodeId())) + .findFirst() + .get(); + records.add(new OutMaterialScanRecord() + .setSource(1) + .setSourceId(order.getId()) + .setSourceItemId(itemId) + .setTicketId(ticket.getId()) + .setTicketItemId(ticketItem.getId()) + .setMaterialNo(item.getMatnr()) + .setContent(qr.getCodeId()) + .setBatchNo(qrCodeMaster.getBatchNo()) + .setSerialNo(qrCodeMaster.getSerialNo()) + .setUniqNo(qrCodeMaster.getBarcodeCode()) + .setQiTao(false) + .setFactoryNo(qrCodeMaster.getFactoryCode()) + .setWarehouseNo(qrCodeMaster.getStorageLocation()) + .setUnit(qrCodeMaster.getUnit()) + .setRspos(item.getRspos()) + .setNum(qrCodeMaster.getQuantity()) + .setCreateBy(UserUtil.getUserName()) + .setCreateTime(Instant.now()) + ); + }); } catch (Exception e) { throw new NflgException(STATE.BusinessError, e.getMessage()); } finally { @@ -1357,6 +1390,7 @@ public class NormalPGIController extends BaseController { outProduceService.saveBatch(pOrders); outProduceTicketService.saveBatch(tickets); outProduceTicketItemService.saveBatch(ticketItems); + outMaterialScanRecordRespository.saveAll(records); return ApiResult.success(); }