diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java index de22439a..4dc0b180 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java @@ -159,26 +159,12 @@ public class InProduceOrderController extends BaseController { .setBatchNo(date + index) .setSernr(request.getSernr()); produceOrderItemService.save(parent); - qrCodeMasterService.save(new WmsQrCodeMaster() - .setBarcodeCode(KeyUtil.next()) - .setProcessStage(BarCodeProcessStage.ForStorage.getState()) - .setBarcodeType(BarCodeType.Production.getState()) - .setMaterialCode(parent.getMaterialNo()) - .setMaterialDescription(parent.getMaterialDesc()) - .setPackagingType((short) 0) - .setQuantity(parent.getNum()) - .setUnit(parent.getUnit()) - .setBatchNo(parent.getBatchNo()) - .setSerialNo(parent.getSernr()) - .setExtendId(parent.getId()) - .setCreateUserId(UserUtil.getUserId()) - .setCreateUserName(UserUtil.getUserName()) - .setCreateTime(LocalDateTime.now()) - ); if (request.getList()) { List children = bomService.getChildren(request.getMatnr()); - VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(children)).throwMessage("请先添加齐套信息"); - produceOrderItemService.saveBatch(children.stream().map(it -> new WmsInProduceOrderItem() + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(children)).throwMessage("请先添加齐套物料"); + List items = children.stream() + .map(it -> new WmsInProduceOrderItem() + .setId(IdUtil.getSnowflakeNextId()) .setOrderId(order.getId()) .setParentId(parent.getId()) .setNum(request.getNum().multiply(it.getNum())) @@ -188,8 +174,46 @@ public class InProduceOrderController extends BaseController { .setFactoryNo(request.getPwerk()) .setWarehouseNo(request.getLgort()) .setOrderNum(request.getPsmng()) + .setBatchNo(parent.getBatchNo()) + .setSernr(request.getSernr()) + ) + .toList(); + produceOrderItemService.saveBatch(items); + qrCodeMasterService.saveBatch( + items.stream().map(it -> new WmsQrCodeMaster() + .setBarcodeCode(KeyUtil.next()) + .setProcessStage(BarCodeProcessStage.ForStorage.getState()) + .setBarcodeType(BarCodeType.Production.getState()) + .setMaterialCode(it.getMaterialNo()) + .setMaterialDescription(it.getMaterialDesc()) + .setPackagingType((short) 0) + .setQuantity(it.getNum()) + .setUnit(it.getUnit()) + .setBatchNo(it.getBatchNo()) + .setSerialNo(it.getSernr()) + .setExtendId(it.getId()) + .setCreateUserId(UserUtil.getUserId()) + .setCreateUserName(UserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()) ).toList() ); + } else { + qrCodeMasterService.save(new WmsQrCodeMaster() + .setBarcodeCode(KeyUtil.next()) + .setProcessStage(BarCodeProcessStage.ForStorage.getState()) + .setBarcodeType(BarCodeType.Production.getState()) + .setMaterialCode(parent.getMaterialNo()) + .setMaterialDescription(parent.getMaterialDesc()) + .setPackagingType((short) 0) + .setQuantity(parent.getNum()) + .setUnit(parent.getUnit()) + .setBatchNo(parent.getBatchNo()) + .setSerialNo(parent.getSernr()) + .setExtendId(parent.getId()) + .setCreateUserId(UserUtil.getUserId()) + .setCreateUserName(UserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()) + ); } return ApiResult.success(order.getId()); } @@ -248,16 +272,13 @@ public class InProduceOrderController extends BaseController { , @Valid @RequestParam @NotNull Integer type) throws Exception { WmsInProduceOrder order = produceOrderService.getById(id); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); - List datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds( - produceOrderItemService.lambdaQuery() - .select(WmsInProduceOrderItem::getId) - .eq(WmsInProduceOrderItem::getOrderId, id) - .list() - .stream() - .map(WmsInProduceOrderItem::getId) - .toList() - ) - ); + List items = produceOrderItemService.lambdaQuery() + .eq(WmsInProduceOrderItem::getOrderId, id) + .list(); + if (order.getList()) { + items.removeIf(it -> it.getParentId() == 0); + } + List datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds(items.stream().map(WmsInProduceOrderItem::getId).toList())); Map variables = new HashMap<>(); variables.put("list", datas); if (Objects.equals(type, 1)) { @@ -279,16 +300,13 @@ public class InProduceOrderController extends BaseController { public ResponseEntity exportItemImageZip(@Valid @RequestParam @NotNull Long id) throws Exception { WmsInProduceOrder order = produceOrderService.getById(id); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); - List datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds( - produceOrderItemService.lambdaQuery() - .select(WmsInProduceOrderItem::getId) - .eq(WmsInProduceOrderItem::getOrderId, id) - .list() - .stream() - .map(WmsInProduceOrderItem::getId) - .toList() - ) - ); + List items = produceOrderItemService.lambdaQuery() + .eq(WmsInProduceOrderItem::getOrderId, id) + .list(); + if (order.getList()) { + items.removeIf(it -> it.getParentId() == 0); + } + List datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds(items.stream().map(WmsInProduceOrderItem::getId).toList())); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (ZipOutputStream zos = new ZipOutputStream(baos)) { for (QrCodeMasterPrintDTO it : datas) { @@ -336,7 +354,7 @@ public class InProduceOrderController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); List list = produceOrderItemService.getVOByOrderId(id); if (order.getList()) { - list.removeIf(item -> Objects.equals(item.getParentId(), 0L)); + list.removeIf(item -> item.getParentId() != 0L); } InProduceOrderItemVO first = list.get(0); Map base = new HashMap<>(); @@ -362,33 +380,32 @@ public class InProduceOrderController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(!Objects.equals(order.getState(), (short) 0)) .throwMessage("该订单非待收货状态"); - InProduceOrderVO vo=Convert.convert(InProduceOrderVO.class,order); + InProduceOrderVO vo = Convert.convert(InProduceOrderVO.class, order); List list = produceOrderItemService.getVOByOrderId(order.getId()); - if (order.getList()) { - List datas = new ArrayList<>(); - list.stream().filter(it -> Objects.equals(it.getParentId(), 0L)).forEach(it -> { - List children = list.stream() - .filter(child -> Objects.equals(child.getParentId(), it.getId())) - .toList(); - Integer type = bomService.getScanType(it.getMaterialNo()); - children.forEach(child -> { - child.setQiTao(type > 0); - if (Objects.equals(type, 0)) { - child.setMustScan(false); - } - child.setBinNo(binService.getBinNo(child.getMaterialNo(), child.getFactoryNo(), child.getWarehouseNo())); - child.setIsDisableLocation(warehouseService.isEnableLocation(child.getFactoryNo(), child.getWarehouseNo())); - }); - datas.addAll(children); - }); - vo.setItems(datas); - } else { - list.forEach(it -> { + list.forEach(it -> { + if (it.getParentId() == 0) { it.setBinNo(binService.getBinNo(it.getMaterialNo(), it.getFactoryNo(), it.getWarehouseNo())); it.setIsDisableLocation(warehouseService.isEnableLocation(it.getFactoryNo(), it.getWarehouseNo())); - }); - vo.setItems(list); - } + vo.getItems().add(it); + if (order.getList()) { + List children = list.stream() + .filter(child -> Objects.equals(child.getParentId(), it.getId())) + .toList(); + Integer type = bomService.getScanType(it.getMaterialNo()); + it.setQiTao(type > 0); + if (Objects.equals(type, 0)) { + it.setMustScan(false); + } + children.forEach(child -> { + child.setQiTao(it.isQiTao()); + child.setMustScan(it.isMustScan()); + child.setBinNo(binService.getBinNo(child.getMaterialNo(), child.getFactoryNo(), child.getWarehouseNo())); + child.setIsDisableLocation(warehouseService.isEnableLocation(child.getFactoryNo(), child.getWarehouseNo())); + }); + it.setChildren(children); + } + } + }); return ApiResult.success(vo); } @@ -431,10 +448,12 @@ public class InProduceOrderController extends BaseController { .flatMap(Collection::stream) .map(InventoryInItemQRCodeQO::getQrCode) .collect(Collectors.toSet()); - List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) - .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) - .list(); + List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) + ? Collections.emptyList() + : qrCodeMasterService.lambdaQuery() + .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) + .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) + .list(); datas.forEach(it -> { InventoryIn1ItemQO qitem = request.getItems().stream() .filter(item -> Objects.equals(item.getItemId(), it.getId())) @@ -581,7 +600,7 @@ public class InProduceOrderController extends BaseController { ); } OptRecordDTO optRecordDTO = new OptRecordDTO(); - optRecordDTO.setOperationType((short)1); + optRecordDTO.setOperationType((short) 1); optRecordDTO.setOrderId(order.getNo()); optRecordService.add(optRecordDTO); //同步入库信息到SAP diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialCodeSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialCodeSearchQO.java index c8763011..09469b2d 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialCodeSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialCodeSearchQO.java @@ -25,11 +25,6 @@ public class MaterialCodeSearchQO extends SearchBaseQO { */ private String customerName; - /** - * 装箱状态 - */ - private Integer packingStatus; - /** * 下单开始日期 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java index 94e8e2f6..f26948e3 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.util.List; @Data @Accessors(chain = true) @@ -83,4 +84,9 @@ public class InProduceOrderItemVO { */ @JsonProperty("isDisableLocation") private Boolean isDisableLocation = true; + + /** + * 清点件的齐套物料列表 + */ + private List children; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderVO.java index a8fb2393..fbb4fa0c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderVO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; @Data @@ -67,5 +68,5 @@ public class InProduceOrderVO { */ private LocalDateTime updateTime; - private List items; + private List items=new ArrayList<>(); } diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java index b5889362..bf1a4544 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialCodeController.java @@ -161,8 +161,7 @@ public class MaterialCodeController extends BaseController { .like(StrUtil.isNotBlank(request.getNo()), WmsShipmentMaterialCode::getNo, request.getNo()) .like(StrUtil.isNotBlank(request.getSoNo()), WmsShipmentMaterialCode::getSoNo, request.getSoNo()) .like(StrUtil.isNotBlank(request.getMaterialNo()), WmsShipmentMaterialCode::getMaterialNo, request.getMaterialNo()) - .like(StrUtil.isNotBlank(request.getCustomerName()), WmsShipmentMaterialCode::getCustomerName, request.getCustomerName()) - .eq(Objects.nonNull(request.getPackingStatus()), WmsShipmentMaterialCode::getStatus, request.getPackingStatus()) .orderByAsc(WmsShipmentMaterialCode::getStatus) + .like(StrUtil.isNotBlank(request.getCustomerName()), WmsShipmentMaterialCode::getCustomerName, request.getCustomerName()) .orderByAsc(WmsShipmentMaterialCode::getStatus) .orderByDesc(WmsShipmentMaterialCode::getId) .page(new Page<>(request.getPage(), request.getPageSize())) );