From a496fc235b8dc4bc00b9a1ecc7e56de812efe9df Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Tue, 8 Sep 2026 10:53:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(oms):=20=E6=96=B0=E5=A2=9E/=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=85=A5=E5=BA=93=E5=8D=95=E4=BB=A5=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BA=E5=87=86=E5=90=8C=E6=AD=A5=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=80=80?= =?UTF-8?q?=E8=B4=A7=E5=85=A5=E5=BA=93=E8=A2=AB=E5=86=99=E6=88=90=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E5=85=A5=E5=BA=93=E5=8F=8A=E7=BC=96=E8=BE=91=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExecutionStockInOrderAssembler.java | 20 +++++++++---------- ...rvationStockInOrderApplicationService.java | 5 ----- .../ReservationStockInOrderAssembler.java | 15 +++++++++----- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderAssembler.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderAssembler.java index efe87076d..062359a10 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderAssembler.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderAssembler.java @@ -78,6 +78,16 @@ public class ExecutionStockInOrderAssembler { // 最后使用username(账号)作为兜底 userRealName = loginUser.getUsername(); } + // 单据类型跟随业务类型:页面唯一的类型选择项是"业务类型"(只提交businessType), + // 编辑时前端回显提交的orderTypeCode/orderTypeName是旧值,若以回显值为准会导致编辑改类型不生效; + // 系统内businessType与orderTypeCode同值域(pu_tong_ru_ku/tui_huo_ru_ku),以businessType为准保持三者一致 + if (stockInOrderDO.getBusinessType() != null && stockInOrderDO.getBusinessType().trim().length() > 0) { + stockInOrderDO.setOrderTypeCode(stockInOrderDO.getBusinessType().trim()); + } else if (stockInOrderDTO.getInOrderId() == null + && (stockInOrderDO.getOrderTypeCode() == null || stockInOrderDO.getOrderTypeCode().trim().length() == 0)) { + // 仅新增且无业务类型时兜底普通入库;编辑时两字段都为空则不覆盖(updateById跳过null字段) + stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku"); + } if(stockInOrderDTO.getInOrderId() != null){ stockInOrderDO.setUpdateBy(userId); stockInOrderDO.setUpdateByName(userRealName); @@ -91,16 +101,6 @@ public class ExecutionStockInOrderAssembler { stockInOrderDO.setCreateByName(userRealName); stockInOrderDO.setCreateTime(new Date()); stockInOrderDO.setDelFlag(1); - // 新增入库单时,如果入库单类型为空,默认设置为普通入库 - // 前端新增只传业务类型(businessType)不传单据类型时,先用业务类型回填单据类型编码, - // 否则退货单会被兜底成pu_tong_ru_ku,再被setDataDict按字典反查覆盖成"普通入库" - if (stockInOrderDO.getOrderTypeCode() == null || stockInOrderDO.getOrderTypeCode().trim().length() == 0) { - if (stockInOrderDO.getBusinessType() != null && stockInOrderDO.getBusinessType().trim().length() > 0) { - stockInOrderDO.setOrderTypeCode(stockInOrderDO.getBusinessType().trim()); - } else { - stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku"); - } - } String orderTypeName = stockInOrderDO.getOrderTypeName(); if (orderTypeName == null || orderTypeName.trim().length() == 0) { stockInOrderDO.setOrderTypeName("普通入库单"); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java index 801e6acf8..9e5049c8f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java @@ -1948,11 +1948,6 @@ public class ReservationStockInOrderApplicationService { } stockInOrderDO.setOrderTypeName(documentTypeData.getDictLabel()); } - String businessType = stockInOrderDO.getBusinessType(); - if ("tui_huo_ru_ku".equals(businessType)) { - stockInOrderDO.setOrderTypeCode("tui_huo_ru_ku"); - stockInOrderDO.setOrderTypeName("退货入库"); - } //翻译优先级别类型 if (StringUtils.isNotBlank(stockInOrderDO.getPriorityLevelCode())){ AjaxResult priorityLevelResult = systemServiceFeign.selectListByDictType(DictCode.PRIORITY_LEVEL.getCode()); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderAssembler.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderAssembler.java index c82183cd1..2c47a724a 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderAssembler.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderAssembler.java @@ -78,6 +78,16 @@ public class ReservationStockInOrderAssembler { // 最后使用username(账号)作为兜底 userRealName = loginUser.getUsername(); } + // 单据类型跟随业务类型:页面唯一的类型选择项是"业务类型"(只提交businessType), + // 编辑时前端回显提交的orderTypeCode/orderTypeName是旧值,若以回显值为准会导致编辑改类型不生效; + // 系统内businessType与orderTypeCode同值域(pu_tong_ru_ku/tui_huo_ru_ku),以businessType为准保持三者一致 + if (stockInOrderDO.getBusinessType() != null && stockInOrderDO.getBusinessType().trim().length() > 0) { + stockInOrderDO.setOrderTypeCode(stockInOrderDO.getBusinessType().trim()); + } else if (stockInOrderDTO.getInOrderId() == null + && (stockInOrderDO.getOrderTypeCode() == null || stockInOrderDO.getOrderTypeCode().trim().length() == 0)) { + // 仅新增且无业务类型时兜底普通入库;编辑时两字段都为空则不覆盖(updateById跳过null字段) + stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku"); + } if(stockInOrderDTO.getInOrderId() != null){ stockInOrderDO.setUpdateBy(userId); stockInOrderDO.setUpdateByName(userRealName); @@ -91,11 +101,6 @@ public class ReservationStockInOrderAssembler { stockInOrderDO.setCreateByName(userRealName); stockInOrderDO.setCreateTime(new Date()); stockInOrderDO.setDelFlag(1); - // 新增入库单时,如果入库单类型为空,默认设置为普通入库 - String orderTypeCode = stockInOrderDO.getOrderTypeCode(); - if (orderTypeCode == null || orderTypeCode.trim().length() == 0) { - stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku"); - } String orderTypeName = stockInOrderDO.getOrderTypeName(); if (orderTypeName == null || orderTypeName.trim().length() == 0) { stockInOrderDO.setOrderTypeName("普通入库单");