diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java index 60f7a3d5d..95a81b9dd 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -1,5 +1,6 @@ package com.mhd.basic.domain.materialBaseInfo.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -44,14 +45,17 @@ public class MaterialBaseInfo extends BaseVOEntity{ @ApiModelProperty("货主id") @Excel(name = "货主id") + @TableField(updateStrategy = FieldStrategy.IGNORED) private Long shipperId; @ApiModelProperty("货主名称") @Excel(name = "货主名称") + @TableField(updateStrategy = FieldStrategy.IGNORED) private String shipperName; @ApiModelProperty("物料编码") @Excel(name = "物料编码") + @TableField(updateStrategy = FieldStrategy.IGNORED) private String materialCode; @ApiModelProperty("物料名称") diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/repository/vo/ReservedInventory.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/repository/vo/ReservedInventory.java index 1e86c733b..ae068746f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/repository/vo/ReservedInventory.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/repository/vo/ReservedInventory.java @@ -1,5 +1,6 @@ package com.mhd.oms.domain.reserveStockInOrder.repository.vo; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; import com.mhd.oms.domain.reserveStockInOrder.repository.util.StringToBigDecimalConverter; @@ -72,5 +73,6 @@ public class ReservedInventory { /** * WMS物料id(解析预览接口根据货物名称匹配后自动填充,匹配不到为空,不映射Excel) */ + @ExcelIgnore private Long materialBaseInfoId; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/repository/vo/ReservedInventoryOut.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/repository/vo/ReservedInventoryOut.java index bc2638873..9beb82261 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/repository/vo/ReservedInventoryOut.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/repository/vo/ReservedInventoryOut.java @@ -47,4 +47,8 @@ public class ReservedInventoryOut { */ @ExcelIgnore private Long materialInventoryId; + + + @ExcelIgnore + private Long materialBaseInfoId; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java index 160b18a08..be8106675 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java @@ -1385,6 +1385,7 @@ public class ReserveStockOutOrderApplicationService { BigDecimal allocationQuantity = inventory.getAllocationQuantity() == null ? BigDecimal.ZERO : inventory.getAllocationQuantity(); if (allocationQuantity.compareTo(importQuantity) > 0) { reservedInventory.setMaterialInventoryId(inventory.getMaterialInventoryId()); + reservedInventory.setMaterialBaseInfoId(inventory.getMaterialBaseInfoId()); break; } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index 23bd5b08b..0a9729fd3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -318,6 +318,8 @@ public class MaterialBaseInfoApplicationService { */ public Boolean update(MaterialBaseInfoDO materialBaseInfoDO) { Long shipperId = materialBaseInfoDO.getShipperId(); + //设置货主信息 + shipperParam(materialBaseInfoDO); if (shipperId != null&&shipperId!=0l) { String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString()); if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) { @@ -386,6 +388,28 @@ public class MaterialBaseInfoApplicationService { return true; } + /** + * @description 封装货主信息 + * @author ZhouGY + * @date 2024/5/9 20:43 + * @param materialBaseInfoDO + */ + private void shipperParam(MaterialBaseInfoDO materialBaseInfoDO){ + Long shipperId = materialBaseInfoDO.getShipperId(); + if (shipperId != null && shipperId != 0l) { + AjaxResult ajaxResult = userServiceFeign.getInfo(materialBaseInfoDO.getShipperId()); + if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ + throw new ServiceException("获取货主信息失败"); + } + UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class); + // 如果原始shipperName不为空,保留原始值(导入或手动输入时应该保留完整名称) + // 只有在原始shipperName为空时,才使用查询到的userName + if (materialBaseInfoDO.getShipperName() == null || materialBaseInfoDO.getShipperName().trim().isEmpty()) { + materialBaseInfoDO.setShipperName(userPo.getUserName()); + } + } + } + /** * 编辑物料时从库中反查子表主键,避免仅传 batchId 等字段时子表主键为 null 无法 UPDATE。 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java index 7250d613b..a227976e3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -1,9 +1,6 @@ package com.mhd.wms.domain.materialBaseInfo.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.handler.ListTypeHandler; @@ -47,14 +44,17 @@ public class MaterialBaseInfo extends BaseVOEntity { @ApiModelProperty("货主id") @Excel(name = "货主id") + @TableField(updateStrategy = FieldStrategy.IGNORED) private Long shipperId; @ApiModelProperty("货主编码") @Excel(name = "货主编码") + @TableField(updateStrategy = FieldStrategy.IGNORED) private String shipperCode; @ApiModelProperty("货主名称") @Excel(name = "货主名称") + @TableField(updateStrategy = FieldStrategy.IGNORED) private String shipperName; @ApiModelProperty("物料编码") diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index 3a6054c5d..7f4bc7e12 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -122,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.top_organization_id = #{topOrganizationId} - and a.shipper_id = #{shipperId} + and (a.shipper_id = #{shipperId} or a.shipper_id is null or a.shipper_id = 0) and a.shipper_code like concat('%', #{shipperCode}, '%') @@ -268,7 +268,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM ... LEFT JOIN material_base_info b ON ... 因此这里所有列名都加上 b. 前缀以避免和主表列名歧义 --> - and b.shipper_id = #{shipperId} + and (b.shipper_id = #{shipperId} or b.shipper_id is null or b.shipper_id = 0) and b.shipper_code like concat('%', #{shipperCode}, '%')