From e33f326e419545e0bc2151725019a10ea31ea096 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Thu, 30 Oct 2025 16:43:36 +0800 Subject: [PATCH] =?UTF-8?q?2025-10-30=20=E4=BF=AE=E6=94=B9=E9=94=80?= =?UTF-8?q?=E5=94=AE=E5=8F=91=E8=B4=A7=E8=A3=85=E7=AE=B1=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BoxForNotificationController.java | 17 ++++++ .../service/BoxForNotificationService.java | 7 +++ .../impl/BoxForNotificationServiceImpl.java | 52 +++++++++++++++++++ 3 files changed, 76 insertions(+) diff --git a/src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java b/src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java index 1d59173..8f3a9c1 100644 --- a/src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java +++ b/src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java @@ -286,4 +286,21 @@ public class BoxForNotificationController { srmSupplierService.deletePalletBox(data); return R.ok(); } + + /** + * 完成包装 + * @description 完成包装,调用存储过程创建检验任务 + * @param data 出库通知单主数据 + * @return R + */ + @PostMapping(value="/completePacking") + @ResponseBody + public R completePacking(@RequestBody OutboundNotificationHeadVo data) { + try { + srmSupplierService.completePacking(data); + return R.ok("包装完成,检验任务已创建"); + } catch (Exception e) { + return R.error(e.getMessage()); + } + } } diff --git a/src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java b/src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java index f1123bd..a0eebd2 100644 --- a/src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java +++ b/src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java @@ -99,4 +99,11 @@ public interface BoxForNotificationService { * @param data 托箱明细数据 */ void deletePalletBox(SoReceivePalletBoxesData data); + + /** + * 完成包装 + * @description 完成包装,调用存储过程创建检验任务 + * @param data 出库通知单主数据 + */ + void completePacking(OutboundNotificationHeadVo data); } diff --git a/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java b/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java index 1494b19..ab893f5 100644 --- a/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java +++ b/src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java @@ -9,25 +9,34 @@ import com.gaotao.modules.boxManage.data.SoReceivePalletsData; import com.gaotao.modules.boxManage.service.BoxForNotificationService; import com.gaotao.modules.outboundNotification.entity.OutboundNotificationDetailEntity; import com.gaotao.modules.outboundNotification.entity.vo.OutboundNotificationHeadVo; +import com.gaotao.modules.schedule.mapper.ProcedureMapper; import com.gaotao.modules.sys.entity.SysUserEntity; import com.gaotao.modules.trans.entity.TransNoControl; import com.gaotao.modules.trans.service.TransNoControlService; import com.gaotao.modules.inventoryStock.entity.InventoryStock; import org.apache.shiro.SecurityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import static com.gaotao.modules.outboundNotification.service.impl.OutboundNotificationServiceImpl.convertToSQLString; @Service public class BoxForNotificationServiceImpl implements BoxForNotificationService { + private static final Logger logger = LoggerFactory.getLogger(BoxForNotificationServiceImpl.class); + @Autowired private TransNoControlService transNoService; @Autowired private BoxForNotificationMapper boxForNotificationMapper; + @Autowired + private ProcedureMapper procedureMapper; @Override public List searchSoReceiveBoxesData(SoReceiveBoxesData data) { return boxForNotificationMapper.searchSoReceiveBoxesData(data); @@ -477,4 +486,47 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService palletData.setPalletNo(inData.getPalletNo()); boxForNotificationMapper.updatePalletBoxesQty(palletData); } + + @Override + @Transactional + public void completePacking(OutboundNotificationHeadVo data) { + logger.info("开始完成包装,出库单号: {}", data.getOrderNo()); + SysUserEntity sysUserEntity = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + + try { + // 调用存储过程创建检验任务 + List params = new ArrayList<>(); + params.add(data.getSite()); // @site + params.add(data.getBuNo()); // @bu_no + params.add(data.getRelatedOrderNo()); // @order_no 销售订单号 + params.add(data.getRelatedOrderLineNo()); // @seq_no 销售订单行号 + params.add(""); // @roll_no 空字符串 + params.add(data.getRequiredQty()); // @roll_qty 要求发货数量 + params.add(data.getOrderQty()); // @order_qty 销售订单数量 + params.add(sysUserEntity.getUsername()); // @username 当前登录人 + params.add(data.getCustomerId()); // @Supplier_id 客户编码 + params.add("OQC"); // @type 'OQC' + params.add("销售订单"); // @document_type '销售订单' + params.add(data.getOrderNo()); // @document_no 销售出库单号 + + logger.info("调用存储过程创建检验任务,出库单号: {}, 销售订单号: {}", data.getOrderNo(), data.getRelatedOrderNo()); + + // 调用存储过程 + List> resultList = procedureMapper.getProcedureData("getInspectionTaskAutomatically", params); + + // 判断是否成功 + if (resultList != null && !resultList.isEmpty()) { + String code = String.valueOf(resultList.get(0).get("code")); + if ("400".equalsIgnoreCase(code)) { + String msg = String.valueOf(resultList.get(0).get("message")); + throw new RuntimeException("创建检验任务失败: " + msg); + } + } + + logger.info("包装完成,检验任务已创建,出库单号: {}", data.getOrderNo()); + } catch (Exception e) { + logger.error("完成包装失败,出库单号: {}, 错误信息: {}", data.getOrderNo(), e.getMessage(), e); + throw new RuntimeException("完成包装失败: " + e.getMessage(), e); + } + } }