From a9cbdbed2623d57393d07c92d1a9ede13afdc0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 2 Apr 2026 10:23:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=85=A5=E5=BA=93=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=BB=84=E4=BB=B6=E5=8C=85=E8=A3=85?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 InProduceOrderController 实现生产订单入库管理功能 - 在 BOM 服务中添加 isQiTao 方法用于判断物料是否为齐套物料 - 重构组件包装控制器中的齐套判断逻辑,统一使用 isQiTao 方法 - 移除 ComponentPackingController 中未使用的 PageUtil 导入 - 为生产订单添加完整的 CRUD 操作和 PDF 导出功能 - 实现 PDA 端生产订单收货和入库流程 - 添加物料扫描记录和库存同步功能 - 优化多个出库控制器中的齐套判断逻辑 - 实现出库单据的批量处理和打印功能 --- .../ComponentPackingController.java | 5 ++--- .../controller/InProduceOrderController.java | 20 ++++++------------- .../controller/OutAssistanceController.java | 2 +- .../controller/OutCostCenterController.java | 2 +- .../controller/OutProduceController.java | 2 +- .../controller/TransferCompanyController.java | 2 +- .../controller/TransferFactoryController.java | 2 +- .../repository/service/IWmsBomService.java | 2 ++ .../service/impl/WmsBomServiceImpl.java | 8 ++++++++ 9 files changed, 23 insertions(+), 22 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentPackingController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentPackingController.java index 65cf4ba9..dc5e789f 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentPackingController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentPackingController.java @@ -16,7 +16,6 @@ import com.nflg.wms.common.pojo.qo.ComponentPackingEditInputQO; import com.nflg.wms.common.pojo.qo.ComponentPackingInputQO; import com.nflg.wms.common.pojo.qo.ComponentPackingQO; import com.nflg.wms.common.pojo.vo.*; -import com.nflg.wms.common.util.PageUtil; import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.WmsComponentPacking; import com.nflg.wms.repository.entity.WmsComponentPackingItem; @@ -195,12 +194,12 @@ public class ComponentPackingController { if (CollectionUtil.isEmpty(tasks)) { return ApiResult.success(Collections.emptyList()); } - Integer type = bomService.getScanType(packing.getMatnr()); // 转换为 VO 对象 List daVos = tasks.stream() .map(item1 -> { ComponentPackingItemPdaVO vo = Convert.convert(ComponentPackingItemPdaVO.class, item1); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(vo.getIdnrk())); + Integer type = bomService.getScanType(vo.getIdnrk()); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(vo.getIdnrk())); } 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 fa0ca52c..fb29282b 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 @@ -118,7 +118,6 @@ public class InProduceOrderController extends BaseController { /** * 从SAP查询生产订单信息 - * * @param no 生产订单号 * @return 订单信息 */ @@ -129,7 +128,6 @@ public class InProduceOrderController extends BaseController { /** * 保存 - * * @param request 请求参数 */ @Transactional @@ -222,7 +220,6 @@ public class InProduceOrderController extends BaseController { /** * 搜索 - * * @param request 搜索参数 * @return 搜索结果 */ @@ -233,7 +230,6 @@ public class InProduceOrderController extends BaseController { /** * 获取订单的物料列表 - * * @param id 订单ID * @return 列表 */ @@ -252,7 +248,6 @@ public class InProduceOrderController extends BaseController { /** * 删除 - * * @param id 订单ID */ @Transactional @@ -269,7 +264,6 @@ public class InProduceOrderController extends BaseController { /** * 导出物料条码pdf(逐个) - * * @param id 订单ID * @param type 1:逐个,2:一页 */ @@ -378,7 +372,6 @@ public class InProduceOrderController extends BaseController { /** * 获取订单信息(PDA使用) - * * @param no 报工单号 */ @GetMapping("getOrderInfo") @@ -398,13 +391,13 @@ public class InProduceOrderController extends BaseController { List children = list.stream() .filter(child -> Objects.equals(child.getParentId(), it.getId())) .toList(); + it.setQiTao(CollectionUtil.isNotEmpty(children)); 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.setQiTao(false); child.setMustScan(it.isMustScan()); child.setBinNo(binService.getBinNo(child.getMaterialNo(), child.getFactoryNo(), child.getWarehouseNo())); child.setIsDisableLocation(warehouseService.isEnableLocation(child.getFactoryNo(), child.getWarehouseNo())); @@ -418,7 +411,6 @@ public class InProduceOrderController extends BaseController { /** * 收货和入库(PDA使用) - * * @param request 请求参数 */ @Transactional @@ -438,7 +430,7 @@ public class InProduceOrderController extends BaseController { .toList(); Integer type = bomService.getScanType(it.getMaterialNo()); children.forEach(child -> { - child.setQiTao(type > 0); + child.setQiTao(false); if (Objects.equals(type, 0)) { child.setMustScan(false); } @@ -459,9 +451,9 @@ public class InProduceOrderController extends BaseController { List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) - .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) - .list(); + .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())) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java index e17fe600..163d3b44 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java @@ -211,7 +211,7 @@ public class OutAssistanceController extends BaseController { .setMatnr(item.getMatnr1()) .setMeins(item.getMeins()) .setNum(item.getLeft()); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(item.getMatnr1())); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(item.getMatnr1())); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java index 2bc329d0..1dea1b9e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java @@ -213,7 +213,7 @@ public class OutCostCenterController extends BaseController { .setMatnr(item.getMatnr()) .setNum(item.getLeft()) .setMeins(item.getMeins()); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(item.getMatnr())); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(item.getMatnr())); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java index c8adecb3..f420eaf0 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java @@ -365,7 +365,7 @@ public class OutProduceController extends BaseController { .setMeins(item.getMeins()) .setNum(item.getSqsl().subtract(item.getNum())); Integer type = bomService.getScanType(item.getMatnr()); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(item.getMatnr())); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(item.getMatnr())); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java index 01df8512..663112ca 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java @@ -269,7 +269,7 @@ public class TransferCompanyController extends BaseController { .setMaktx(item.getMaktx()) .setNum(item.getLeft()) .setMeins(item.getMeins()); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(item.getMatnr())); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(item.getMatnr())); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java index b71a8019..05265cc5 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java @@ -268,7 +268,7 @@ public class TransferFactoryController extends BaseController { .setMeins(item.getMeins()) .setBinIn(StrUtil.join("/", storageService.getBinNo(item.getMatnr(), order.getWerks(), order.getUmlgo()))) .setBinOut(StrUtil.join("/", storageService.getBinNo(item.getMatnr(), order.getWerks(), order.getLgort()))); - vo.setQiTao(type > 0); + vo.setQiTao(bomService.isQiTao(item.getMatnr())); if (Objects.equals(type, 1)) { vo.setChildren(bomService.getChildrenVO(item.getMatnr())); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsBomService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsBomService.java index cdad6da6..6c75c349 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsBomService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsBomService.java @@ -35,4 +35,6 @@ public interface IWmsBomService extends IService { // boolean isParent(String materialNo); Integer getScanType(String materialNo); + + boolean isQiTao(String materialNo); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsBomServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsBomServiceImpl.java index a5c6423e..05eb1b8d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsBomServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsBomServiceImpl.java @@ -188,4 +188,12 @@ public class WmsBomServiceImpl extends ServiceImpl impleme ).orElse(new WmsBom().setScanType(-1)) .getScanType(); } + + @Override + public boolean isQiTao(String materialNo) { + return lambdaQuery() + .eq(WmsBom::getParentId, 0) + .eq(WmsBom::getNo, materialNo) + .exists(); + } } \ No newline at end of file