From c99ae090e98bbaf72cdf4a42108a1d00e8812d6d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 9 May 2026 21:56:26 +0800 Subject: [PATCH] feat(wms):初始化 --- pom.xml | 1 + yudao-module-wms/pom.xml | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/package-info.java | 4 ++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/package-info.java | 6 ++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java | 18 ++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java | 9 +++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java | 14 ++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/package-info.java | 4 ++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/package-info.java | 6 ++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/config/WmsWebConfiguration.java | 24 ++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/package-info.java | 4 ++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/package-info.java | 10 ++++++++++ yudao-server/pom.xml | 7 +++++++ 14 files changed, 219 insertions(+), 0 deletions(-) create mode 100644 yudao-module-wms/pom.xml create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/package-info.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/package-info.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/package-info.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/package-info.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/config/WmsWebConfiguration.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/package-info.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/package-info.java diff --git a/pom.xml b/pom.xml index b79c0a6..81ed66a 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,7 @@ + yudao-module-wms diff --git a/yudao-module-wms/pom.xml b/yudao-module-wms/pom.xml new file mode 100644 index 0000000..9365862 --- /dev/null +++ b/yudao-module-wms/pom.xml @@ -0,0 +1,65 @@ + + + + cn.iocoder.boot + yudao + ${revision} + + 4.0.0 + yudao-module-wms + jar + + ${project.artifactId} + + wms 模块下,仓库管理系统(Warehouse Management System)。 + 例如说:仓库、物料、库存、入库、出库、移库、盘库等等 + + + + + cn.iocoder.boot + yudao-module-system + ${revision} + + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-excel + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + + + + + diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/package-info.java new file mode 100644 index 0000000..7f2a55f --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/package-info.java @@ -0,0 +1,4 @@ +/** + * WMS 管理后台 API + */ +package cn.iocoder.yudao.module.wms.controller.admin; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/package-info.java new file mode 100644 index 0000000..c75d9df --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 RESTful API 给前端: + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分 + */ +package cn.iocoder.yudao.module.wms.controller; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java new file mode 100644 index 0000000..af8bc90 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/DictTypeConstants.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.wms.enums; + +/** + * WMS 字典类型常量 + * + * @author 芋道源码 + */ +public interface DictTypeConstants { + + String RECEIPT_STATUS = "wms_receipt_status"; + String RECEIPT_TYPE = "wms_receipt_type"; + String SHIPMENT_STATUS = "wms_shipment_status"; + String SHIPMENT_TYPE = "wms_shipment_type"; + String INVENTORY_HISTORY_TYPE = "wms_inventory_history_type"; + String MOVEMENT_STATUS = "wms_movement_status"; + String CHECK_STATUS = "wms_check_status"; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..ed14d59 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.wms.enums; + +/** + * WMS 错误码枚举类 + *

+ * wms 系统,使用 1-060-000-000 段 + */ +public interface ErrorCodeConstants { +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java new file mode 100644 index 0000000..1dbe6d8 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsConfiguration.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.wms.framework.config; + +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * WMS 模块配置 + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(WmsProperties.class) +public class WmsConfiguration { +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java new file mode 100644 index 0000000..d6eb6fd --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/WmsProperties.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.wms.framework.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; + +/** + * WMS 配置项 + * + * @author 芋道源码 + */ +@ConfigurationProperties(prefix = "yudao.wms") +@Validated +@Data +public class WmsProperties { + + /** + * 是否启用库区模式 + */ + @NotNull(message = "是否启用库区模式不能为空") + private Boolean areaEnable = false; + + /** + * 是否启用批次/效期/库存明细模式 + * + * 依赖 {@link #areaEnable} 为 true + */ + @NotNull(message = "是否启用批次/效期/库存明细模式不能为空") + private Boolean batchEnable = false; + + public boolean isAreaEnabled() { + return Boolean.TRUE.equals(areaEnable); + } + + public boolean isBatchEnabled() { + return Boolean.TRUE.equals(batchEnable); + } + + @AssertTrue(message = "WMS 批次/效期模式依赖库区模式,请先开启 yudao.wms.area-enable") + public boolean isBatchDependsOnAreaValid() { + return !isBatchEnabled() || isAreaEnabled(); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/package-info.java new file mode 100644 index 0000000..2747c36 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/config/package-info.java @@ -0,0 +1,4 @@ +/** + * WMS 模块配置 + */ +package cn.iocoder.yudao.module.wms.framework.config; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/package-info.java new file mode 100644 index 0000000..115397b --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 WMS 模块的 framework 封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.wms.framework; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/config/WmsWebConfiguration.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/config/WmsWebConfiguration.java new file mode 100644 index 0000000..37c7571 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/config/WmsWebConfiguration.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.wms.framework.web.config; + +import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration; +import org.springdoc.core.models.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * WMS 模块的 web 组件的 Configuration + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class WmsWebConfiguration { + + /** + * WMS 模块的 API 分组 + */ + @Bean + public GroupedOpenApi wmsGroupedOpenApi() { + return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("wms"); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/package-info.java new file mode 100644 index 0000000..13cb703 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/framework/web/package-info.java @@ -0,0 +1,4 @@ +/** + * WMS 模块的 web 配置 + */ +package cn.iocoder.yudao.module.wms.framework.web; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/package-info.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/package-info.java new file mode 100644 index 0000000..099e22c --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/package-info.java @@ -0,0 +1,10 @@ +/** + * wms 包下,仓库管理系统(Warehouse Management System) + * 例如说:仓库、物料、库存、入库、出库、移库、盘库等等 + * + * 1. Controller URL:以 /wms/ 开头,避免和其它 Module 冲突 + * 2. DataObject 表名:以 wms_ 开头,方便在数据库中区分 + * + * 注意,由于 WMS 模块下,容易和其它模块重名,所以类名都加载 Wms 的前缀~ + */ +package cn.iocoder.yudao.module.wms; diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml index 0ac376f..e600e23 100644 --- a/yudao-server/pom.xml +++ b/yudao-server/pom.xml @@ -122,6 +122,13 @@ + + + cn.iocoder.boot + yudao-module-wms + ${revision} + + org.springframework.boot -- libgit2 0.21.4