diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/detail/WmsInventoryDetailPageReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/detail/WmsInventoryDetailPageReqVO.java index e667ef2..05294c7 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/detail/WmsInventoryDetailPageReqVO.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/inventory/vo/detail/WmsInventoryDetailPageReqVO.java @@ -53,9 +53,8 @@ public class WmsInventoryDetailPageReqVO extends PageParam { @Schema(description = "批号", example = "BATCH001") private String batchNo; - @Schema(description = "过期日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] expirationDate; + @Schema(description = "距离过期天数", example = "30") + private Integer daysToExpires; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryDetailMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryDetailMapper.java index ba30ab0..a5973cf 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryDetailMapper.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/inventory/WmsInventoryDetailMapper.java @@ -10,6 +10,10 @@ import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO; import org.apache.ibatis.annotations.Mapper; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; + /** * WMS 库存明细 Mapper * @@ -31,12 +35,21 @@ public interface WmsInventoryDetailMapper extends BaseMapperX query, Integer daysToExpires) { + if (daysToExpires == null) { + return; + } + LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); + query.geIfPresent(WmsInventoryDetailDO::getExpirationDate, startTime) + .leIfPresent(WmsInventoryDetailDO::getExpirationDate, startTime.plusDays(daysToExpires)); + } + private static void appendDimensionOrder(MPJLambdaWrapperX query, String type) { if (StrUtil.equals(WmsInventoryDetailPageReqVO.TYPE_WAREHOUSE, type)) { query.orderByAsc(WmsInventoryDetailDO::getWarehouseId) diff --git a/yudao-module-wms/src/test/resources/sql/clean.sql b/yudao-module-wms/src/test/resources/sql/clean.sql index 0a725e4..03fc147 100644 --- a/yudao-module-wms/src/test/resources/sql/clean.sql +++ b/yudao-module-wms/src/test/resources/sql/clean.sql @@ -1,3 +1,4 @@ +DELETE FROM "wms_inventory_detail"; DELETE FROM "wms_inventory"; DELETE FROM "wms_item_sku"; DELETE FROM "wms_item"; diff --git a/yudao-module-wms/src/test/resources/sql/create_tables.sql b/yudao-module-wms/src/test/resources/sql/create_tables.sql index 9337130..172dee9 100644 --- a/yudao-module-wms/src/test/resources/sql/create_tables.sql +++ b/yudao-module-wms/src/test/resources/sql/create_tables.sql @@ -52,3 +52,27 @@ CREATE TABLE IF NOT EXISTS "wms_inventory" ( "tenant_id" bigint NOT NULL DEFAULT '0', PRIMARY KEY ("id") ) COMMENT 'WMS 库存表'; + +CREATE TABLE IF NOT EXISTS "wms_inventory_detail" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "sku_id" bigint NOT NULL, + "warehouse_id" bigint NOT NULL, + "area_id" bigint NOT NULL DEFAULT '0', + "quantity" decimal(24, 6) NOT NULL DEFAULT '0', + "remain_quantity" decimal(24, 6) NOT NULL DEFAULT '0', + "batch_no" varchar(64) DEFAULT NULL, + "production_date" timestamp DEFAULT NULL, + "expiration_date" timestamp DEFAULT NULL, + "amount" decimal(24, 6) DEFAULT NULL, + "remark" varchar(255) DEFAULT NULL, + "order_id" bigint DEFAULT NULL, + "order_no" varchar(64) DEFAULT NULL, + "order_type" tinyint DEFAULT NULL, + "creator" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + "tenant_id" bigint NOT NULL DEFAULT '0', + PRIMARY KEY ("id") +) COMMENT 'WMS 库存明细表';