diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/facade/IReservationMaterialInventoryService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/facade/IReservationMaterialInventoryService.java index 5344f3163..bd81f1a21 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/facade/IReservationMaterialInventoryService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/facade/IReservationMaterialInventoryService.java @@ -2,6 +2,7 @@ package com.mhd.oms.domain.reservationMaterialInventory.repository.facade; import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory; +import com.mhd.oms.domain.reservationMaterialInventory.repository.po.MaterialInventoryExpiryBatchPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryQueryListPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialInventoryParamDO; @@ -113,4 +114,9 @@ public interface IReservationMaterialInventoryService extends IService selectRecentExpiryBatches(String materialCode, Long topOrganizationId); } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/mapper/ReservationMaterialInventoryMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/mapper/ReservationMaterialInventoryMapper.java index e655c623d..a73033a6b 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/mapper/ReservationMaterialInventoryMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/mapper/ReservationMaterialInventoryMapper.java @@ -2,6 +2,7 @@ package com.mhd.oms.domain.reservationMaterialInventory.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory; +import com.mhd.oms.domain.reservationMaterialInventory.repository.po.MaterialInventoryExpiryBatchPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialBarCodePO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialBaseInfo; @@ -36,4 +37,7 @@ public interface ReservationMaterialInventoryMapper extends BaseMapper getInfoByMaterialBaseInfoIds(@Param("id") Long id); + + //入库业务单新增:根据物料编号查询库存批次去重后的过期日期+批次号(最近5条),供前端下拉回显 + public List selectRecentExpiryBatches(@Param("materialCode") String materialCode, @Param("topOrganizationId") Long topOrganizationId); } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/persistence/ReservationMaterialInventoryImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/persistence/ReservationMaterialInventoryImpl.java index d7840252b..d666fc65a 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/persistence/ReservationMaterialInventoryImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/persistence/ReservationMaterialInventoryImpl.java @@ -13,6 +13,7 @@ import com.mhd.oms.domain.reservationInventoryAdjustmentRecord.repository.mapper import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory; import com.mhd.oms.domain.reservationMaterialInventory.repository.facade.IReservationMaterialInventoryService; import com.mhd.oms.domain.reservationMaterialInventory.repository.mapper.ReservationMaterialInventoryMapper; +import com.mhd.oms.domain.reservationMaterialInventory.repository.po.MaterialInventoryExpiryBatchPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryQueryListPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialBarCodePO; @@ -120,6 +121,14 @@ public class ReservationMaterialInventoryImpl extends ServiceImpl selectRecentExpiryBatches(String materialCode, Long topOrganizationId) { + return materialInventoryMapper.selectRecentExpiryBatches(materialCode, topOrganizationId); + } + @Override public Boolean omsEdit(MaterialInventoryOmsParamDO materialInventoryOmsParamDO) { String inOrderNumber = materialInventoryOmsParamDO.getInOrderNumber(); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/po/MaterialInventoryExpiryBatchPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/po/MaterialInventoryExpiryBatchPO.java new file mode 100644 index 000000000..eb47478e3 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/po/MaterialInventoryExpiryBatchPO.java @@ -0,0 +1,25 @@ +package com.mhd.oms.domain.reservationMaterialInventory.repository.po; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 物料库存批次过期日期对象(入库业务单新增页面下拉回显) + * + * @author rcx + * @date 2026-08-31 + */ +@Data +@ApiModel(value = "物料库存批次过期日期", description = "物料库存批次过期日期响应对象") +public class MaterialInventoryExpiryBatchPO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("过期日期 yyyy-MM-dd") + private String expiryDate; + + @ApiModelProperty("批次号") + private String batchNumber; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java index fe6184862..c41ef1051 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java @@ -8,6 +8,7 @@ import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.oms.domain.reservationMaterialInventory.repository.mapper.ReservationMaterialInventoryMapper; +import com.mhd.oms.domain.reservationMaterialInventory.repository.po.MaterialInventoryExpiryBatchPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryQueryListPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.MaterialBarCodePO; @@ -185,6 +186,22 @@ public class ReservationMaterialInventoryApplicationService { return materialInventoryDomainService.getInventoryByStorageLocationIdAndMaterialBaseInfoId(storageLocationId, materialBaseInfoId); } + /** + * 根据物料编号查询库存批次最近5条过期日期+批次号(入库业务单新增页面下拉回显) + * 与 queryList 一致:按登录用户一级组织(租户)过滤,一级组织(平台)不限制 + */ + public List selectRecentExpiryBatches(String materialCode) { + Long topOrganizationId = null; + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null) { + Long loginTopOrgId = loginUser.getUserPo().getTopOrganizationId(); + if (loginTopOrgId != null && loginTopOrgId != 1) { + topOrganizationId = loginTopOrgId; + } + } + return materialInventoryDomainService.selectRecentExpiryBatches(materialCode, topOrganizationId); + } + /** * @description:库存查询列表 * @param materialInventoryQueryListDO diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryDomainService.java index fc73a5f42..40cc12ad1 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryDomainService.java @@ -3,6 +3,7 @@ package com.mhd.oms.domain.reservationMaterialInventory.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mhd.oms.domain.reservationMaterialInventory.entity.ReservationMaterialInventory; import com.mhd.oms.domain.reservationMaterialInventory.repository.facade.IReservationMaterialInventoryService; +import com.mhd.oms.domain.reservationMaterialInventory.repository.po.MaterialInventoryExpiryBatchPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.po.ReservationMaterialInventoryQueryListPO; import com.mhd.oms.domain.reservationMaterialInventory.repository.todo.ReservationMaterialInventoryDO; @@ -88,6 +89,13 @@ public class ReservationMaterialInventoryDomainService { return materialInventory.getInventoryQuantity(); } + /** + * 根据物料编号查询库存批次最近5条过期日期+批次号(入库业务单新增页面下拉回显) + */ + public List selectRecentExpiryBatches(String materialCode, Long topOrganizationId) { + return materialInventoryService.selectRecentExpiryBatches(materialCode, topOrganizationId); + } + /** * @description:库存查询列表 * @param materialInventoryQueryListDO diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java index 16f52281b..bae725a5c 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java @@ -177,6 +177,20 @@ public class ReservationMaterialInventoryApi extends BaseController { return AjaxResult.success(materialInventoryApplicationService.getInventoryByStorageLocationIdAndMaterialBaseInfoId(storageLocationId, materialBaseInfoId)); } + /** + * 入库业务单新增页面:根据物料编号查询其库存批次过期日期+批次号,去重取最近5条, + * 供前端下拉回显;用户也可点击右侧"日期"小图标手动选择日期 + */ + @ApiOperation("根据物料编号查询库存批次最近5条过期日期+批次号") + @GetMapping(value = "/queryRecentExpiryDates/{materialCode}") + public AjaxResult queryRecentExpiryDates(@PathVariable("materialCode") String materialCode) + { + if (StringUtils.isBlank(materialCode)) { + return AjaxResult.error("物料编号不能为空"); + } + return AjaxResult.success(materialInventoryApplicationService.selectRecentExpiryBatches(materialCode)); + } + /** diff --git a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml index dd3ab9e73..1bea8b465 100644 --- a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml @@ -557,4 +557,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM NGWL_TEST_WMS.material_bar_code WHERE material_base_info_id = #{id} AND del_flag = 1 + + + \ No newline at end of file