This commit is contained in:
葛林强 2024-07-04 07:43:04 +08:00
commit 66eb901956
155 changed files with 13946 additions and 0 deletions

34
.gitignore vendored Normal file
View File

@ -0,0 +1,34 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
.log
### VS Code ###
.vscode/

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -0,0 +1,15 @@
2023-12-25 16:24:26.481 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 10632 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2023-12-25 16:24:26.484 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2023-12-25 16:24:28.720 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:28.722 [main] INFO com.wms.WmsApplication - Started WmsApplication in 2.87 seconds (process running for 4.259)
2023-12-25 16:24:28.724 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2023-12-25 16:24:28.725 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...
2023-12-25 16:24:30.258 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:31.273 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:32.289 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:33.303 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:34.319 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:35.340 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:36.349 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:37.364 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务
2023-12-25 16:24:38.383 [scheduling-1] INFO com.wms.controller.JobComponent - 查询待下发任务

View File

@ -0,0 +1,5 @@
2023-12-29 10:07:31.665 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 13296 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2023-12-29 10:07:31.669 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2023-12-29 10:07:34.935 [main] INFO com.wms.WmsApplication - Started WmsApplication in 4.075 seconds (process running for 5.984)
2023-12-29 10:07:34.938 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2023-12-29 10:07:34.939 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...

View File

@ -0,0 +1,309 @@
2024-03-11 10:11:56.463 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 65832 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2024-03-11 10:11:56.465 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2024-03-11 10:11:59.970 [main] INFO com.wms.WmsApplication - Started WmsApplication in 4.233 seconds (process running for 5.859)
2024-03-11 10:11:59.972 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2024-03-11 10:11:59.972 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...
2024-03-11 10:19:17.268 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - WMS前端用户登录登录账户名admin
2024-03-11 10:19:17.301 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - 登录成功登录账户名admin
2024-03-11 10:19:17.564 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - 构造用户信息成功,当前用户:{"addTime":"2023-03-23 11:17:06","addUser":"系统","loginAccount":"admin","loginPassword":"812C0C84E2970FA98456DDC5B0B59594","roleId":1,"updateTime":"2023-03-23 11:17:10","userId":1,"userName":"管理员"}
2024-03-11 10:19:18.488 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:18.493 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:18.610 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:21.416 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:21.418 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:21.440 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:30.505 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:30.505 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:30.524 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:30.708 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:30.709 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:30.722 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:30.896 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:30.897 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:30.910 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:31.082 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:31.083 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:31.101 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:31.277 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:31.278 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:31.292 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:34.758 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:34.759 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:34.771 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:34.953 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:34.953 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:34.966 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 10:19:35.161 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 10:19:35.161 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 10:19:35.177 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:21:21.458 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 33008 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2024-03-11 14:21:21.461 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2024-03-11 14:21:24.628 [main] INFO com.wms.WmsApplication - Started WmsApplication in 3.787 seconds (process running for 4.679)
2024-03-11 14:21:24.630 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2024-03-11 14:21:24.630 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...
2024-03-11 14:24:37.393 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - WMS前端用户登录登录账户名admin
2024-03-11 14:24:37.409 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 登录成功登录账户名admin
2024-03-11 14:24:37.667 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 构造用户信息成功,当前用户:{"addTime":"2023-03-23 11:17:06","addUser":"系统","loginAccount":"admin","loginPassword":"812C0C84E2970FA98456DDC5B0B59594","roleId":1,"updateTime":"2023-03-23 11:17:10","userId":1,"userName":"管理员"}
2024-03-11 14:24:38.715 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:24:38.719 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:24:38.804 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:24:41.759 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:24:41.760 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:24:41.784 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:24:53.082 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:24:53.083 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:24:53.093 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:24:54.538 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:24:54.538 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:24:54.554 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:24:55.754 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:24:55.754 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:24:55.762 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:02.139 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:02.139 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:02.164 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:02.322 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:02.323 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:02.350 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:02.517 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:02.517 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:02.531 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:06.266 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:06.267 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:06.281 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:08.484 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:08.484 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:08.502 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:21.500 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:21.500 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:21.518 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:21.694 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:21.695 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:21.710 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:21.889 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:21.889 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:21.918 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:23.037 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:23.037 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:23.047 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:24.206 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:24.207 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:24.213 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:24.402 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:24.403 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:24.409 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:24.589 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:24.589 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:24.597 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:24.753 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:24.753 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:24.759 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:24.941 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:24.942 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:24.948 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:25.121 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:25.121 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:25.126 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:25.308 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:25.309 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:25.313 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:34.256 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:34.256 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:34.275 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:34.443 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:34.443 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:34.456 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:34.623 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:34.623 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:34.641 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:34.818 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:34.819 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:34.840 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:25:34.998 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:25:34.998 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:25:35.013 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数0当前页1当前页数量10
2024-03-11 14:27:05.281 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:05.281 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:05.292 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:05.466 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:05.466 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:05.474 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:05.638 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:05.638 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:05.647 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:05.810 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:05.810 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:05.819 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:06.005 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:06.005 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:06.012 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:06.178 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:06.178 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:06.185 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:13.625 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:13.626 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:13.633 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:13.819 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:13.820 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:13.829 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:14.007 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:14.008 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:14.016 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:14.195 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:14.195 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:14.207 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:27:14.413 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:27:14.413 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:27:14.421 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:27.628 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:27.629 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:27.640 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:28.085 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:28.086 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:28.098 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:28.265 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:28.266 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:28.282 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:29.899 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:29.899 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:29.938 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:31.985 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:31.986 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:31.995 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:37.131 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:37.132 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:37.180 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:38.480 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:38.480 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:38.494 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:39.575 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:39.575 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:39.604 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:47.961 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:47.961 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:47.975 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:49.144 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:49.145 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:49.194 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:50.135 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:50.135 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:50.150 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:51.036 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:51.036 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:51.078 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:52.249 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:52.249 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:52.261 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:53.329 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:53.329 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:53.358 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:29:54.221 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:54.221 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:54.232 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:29:56.651 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:29:56.651 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:29:56.687 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:35.973 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:35.973 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:36.010 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:39.364 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:39.365 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:39.404 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:43.953 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:43.953 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:43.986 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:44.141 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:44.141 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:44.193 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:44.335 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:44.335 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:44.378 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:46.739 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:46.740 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:46.770 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:49.945 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:49.945 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:49.957 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:30:51.617 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:51.617 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:51.644 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:53.044 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:53.044 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:53.055 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:30:54.069 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:54.069 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:54.105 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:55.832 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:55.832 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:55.846 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:30:57.474 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:57.474 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:57.505 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:30:58.554 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:30:58.554 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:30:58.565 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:31:01.374 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:31:01.374 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:31:01.414 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:31:02.611 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:31:02.612 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:31:02.621 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:31:05.138 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:31:05.139 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:31:05.175 [http-nio-12315-exec-9] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:31:06.758 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:31:06.758 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:31:06.770 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:52:59.812 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:52:59.813 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:52:59.856 [http-nio-12315-exec-6] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:53:01.211 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:53:01.212 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:53:01.234 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:53:02.967 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:53:02.967 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:53:03.021 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:53:24.051 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:53:24.052 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:53:24.084 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:53:37.579 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:53:37.579 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:53:37.595 [http-nio-12315-exec-3] INFO com.wms.controller.StockController - 查询库存成功总数2当前页1当前页数量10
2024-03-11 14:53:39.340 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:53:39.340 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:53:39.382 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:57:52.237 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:57:52.237 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:57:52.275 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 14:58:48.206 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 14:58:48.207 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 14:58:48.249 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:05:35.051 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:05:35.052 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:05:35.089 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:37:54.511 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 55580 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2024-03-11 15:37:54.513 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2024-03-11 15:37:56.611 [main] INFO com.wms.WmsApplication - Started WmsApplication in 2.665 seconds (process running for 3.623)
2024-03-11 15:37:56.612 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2024-03-11 15:37:56.613 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...
2024-03-11 15:39:32.802 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - WMS前端用户登录登录账户名admin
2024-03-11 15:39:32.814 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 登录成功登录账户名admin
2024-03-11 15:39:32.989 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 构造用户信息成功,当前用户:{"addTime":"2023-03-23 11:17:06","addUser":"系统","loginAccount":"admin","loginPassword":"812C0C84E2970FA98456DDC5B0B59594","roleId":1,"updateTime":"2023-03-23 11:17:10","userId":1,"userName":"管理员"}
2024-03-11 15:39:33.673 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:39:33.676 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:39:33.759 [http-nio-12315-exec-4] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:39:35.968 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:39:35.969 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:39:35.997 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:40:09.836 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - WMS前端用户登录登录账户名admin
2024-03-11 15:40:09.839 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - 登录成功登录账户名admin
2024-03-11 15:40:09.841 [http-nio-12315-exec-5] INFO com.wms.controller.UserController - 构造用户信息成功,当前用户:{"addTime":"2023-03-23 11:17:06","addUser":"系统","loginAccount":"admin","loginPassword":"812C0C84E2970FA98456DDC5B0B59594","roleId":1,"updateTime":"2023-03-23 11:17:10","userId":1,"userName":"管理员"}
2024-03-11 15:40:10.444 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:40:10.445 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:40:10.470 [http-nio-12315-exec-10] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:40:14.677 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:40:14.677 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:40:14.701 [http-nio-12315-exec-1] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-11 15:40:37.962 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-11 15:40:37.962 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-11 15:40:37.987 [http-nio-12315-exec-2] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10

View File

@ -0,0 +1,17 @@
2024-03-12 13:24:20.313 [main] INFO com.wms.WmsApplication - Starting WmsApplication using Java 17.0.5 with PID 18516 (D:\workspace\徐州宝开项目\FDBK_XUZHOU\back\target\classes started by 59475 in D:\workspace\徐州宝开项目\FDBK_XUZHOU\back)
2024-03-12 13:24:20.315 [main] INFO com.wms.WmsApplication - The following 1 profile is active: "online"
2024-03-12 13:24:23.388 [main] INFO com.wms.WmsApplication - Started WmsApplication in 3.629 seconds (process running for 5.859)
2024-03-12 13:24:23.390 [main] INFO com.wms.config.InitLocalConfig - 加载设置到内存中...
2024-03-12 13:24:23.390 [main] INFO com.wms.config.InitLocalConfig - 加载配置到内存中...
2024-03-12 14:04:54.679 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - WMS前端用户登录登录账户名admin
2024-03-12 14:04:54.694 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 登录成功登录账户名admin
2024-03-12 14:04:54.859 [http-nio-12315-exec-2] INFO com.wms.controller.UserController - 构造用户信息成功,当前用户:{"addTime":"2023-03-23 11:17:06","addUser":"系统","loginAccount":"admin","loginPassword":"812C0C84E2970FA98456DDC5B0B59594","roleId":1,"updateTime":"2023-03-23 11:17:10","userId":1,"userName":"管理员"}
2024-03-12 14:04:55.727 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-12 14:04:55.730 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-12 14:04:55.824 [http-nio-12315-exec-8] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-12 14:05:46.700 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-12 14:05:46.701 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-12 14:05:46.727 [http-nio-12315-exec-5] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10
2024-03-12 14:20:02.489 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 请求的ip地址127.0.0.1
2024-03-12 14:20:02.489 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 接收到查询库存请求:{"page":{"isAsc":"asc","orderBy":"","pageNum":1,"pageSize":10},"param":""}
2024-03-12 14:20:02.515 [http-nio-12315-exec-7] INFO com.wms.controller.StockController - 查询库存成功总数3当前页1当前页数量10

View File

View File

View File

View File

View File

View File

View File

316
mvnw vendored Normal file
View File

@ -0,0 +1,316 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /usr/local/etc/mavenrc ] ; then
. /usr/local/etc/mavenrc
fi
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`\\unset -f command; \\command -v java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

188
mvnw.cmd vendored Normal file
View File

@ -0,0 +1,188 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%

154
pom.xml Normal file
View File

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>WMS</artifactId>
<version>1.0</version>
<name>WMS</name>
<description>WMS</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<!-- MAP工具 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.oltu.oauth2/org.apache.oltu.oauth2.client -->
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.client</artifactId>
<version>1.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>4.4.0</version>
</dependency>
<!--Swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>16</source>
<target>16</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: com.wuxiShenNan_W8.WmsTestversionApplication

View File

@ -0,0 +1,24 @@
package com.wms;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
@MapperScan("com.wms.mapper")
public class WmsApplication {
/**
* 主函数程序的入口
*
* @param args 命令行参数以字符串数组形式传入
*/
public static void main(String[] args) {
SpringApplication.run(WmsApplication.class, args);
}
}

View File

@ -0,0 +1,22 @@
package com.wms.config;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(1)
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class InitLocalConfig implements ApplicationRunner {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("加载设置到内存中...");
logger.info("加载配置到内存中...");
}
}

View File

@ -0,0 +1,23 @@
package com.wms.config;
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
@Configuration
public class PageHelperConfig {
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
//添加配置也可以指定文件路径
Properties p = new Properties();
p.setProperty("helperDialect", "mysql");
p.setProperty("reasonable", "true");
p.setProperty("supportMethodsArguments", "true");
p.setProperty("params", "count=countSql");
pageHelper.setProperties(p);
return pageHelper;
}
}

View File

@ -0,0 +1,61 @@
package com.wms.constants;
import java.math.BigDecimal;
import java.util.Map;
import com.google.common.collect.ImmutableMap;
import com.wms.constants.enums.WcsTaskStatus;
import com.wms.constants.enums.WmsTaskStatus;
/**
* WMS系统所需的常量
* @author 梁州
* &#064;date 2023/2/13
*/
public class WmsConstants {
public static String EMPTY_STRING = "";
public static BigDecimal NUMBER_ONE = BigDecimal.valueOf(1);
public static String ROOT_MENU_ID = "0";
/**
* 虚拟库位设备号
*/
public static Integer VIRTUAL_LOCATION_EQUIP_ID = 11;
/**
* 入库库位类型虚拟库位
*/
public static String VIRTUAL_LOCATION_IN = "0";
/**
* 虚拟库位库区编码
*/
public static int VIRTUAL_LOCATION_AREA_ID = 99;
/**
* 空托盘编号
*/
public static String EMPTY_STOCK_GOODS_ID = "000000000";
/**
* 空托盘批次号
*/
public static String EMPTY_STOCK_BATCH_NO = "EMPTY";
/**
* 设备号对应入库口
*/
public static Map<Integer, Integer> LOCATOR_AREA_MAP = ImmutableMap.<Integer, Integer>builder()
.put(WcsTaskStatus.WAIT.getCode(), WmsTaskStatus.WAIT.getCode())
.put(WcsTaskStatus.RUN.getCode(), WmsTaskStatus.RUN.getCode())
.put(WcsTaskStatus.LEAVE.getCode(), WmsTaskStatus.RUN.getCode())
.put(WcsTaskStatus.PARK.getCode(), WmsTaskStatus.RUN.getCode())
.put(WcsTaskStatus.ARRIVE.getCode(), WmsTaskStatus.RUN.getCode())
.put(WcsTaskStatus.FINISH.getCode(), WmsTaskStatus.FINISH.getCode())
.put(WcsTaskStatus.CANCEL.getCode(), WmsTaskStatus.CANCEL.getCode())
.put(WcsTaskStatus.EXCEPTION.getCode(), WmsTaskStatus.EXCEPTION.getCode())
.build();
}

View File

@ -0,0 +1,29 @@
package com.wms.constants.enums;
/**
* 物料状态枚举
*/
public enum GoodsStatus {
OK(0, "合格"),
BAD(1, "不合格"),
DELAY(2, "延期"),
OVERDUE(3, "过期"),
SCRAP(5, "长时间未使用");
private final Integer code;
private final String value;
GoodsStatus(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,25 @@
package com.wms.constants.enums;
public enum KateTaskStatus {
NEW(0, "待下发"),
WAIT(1, "已下发"),
RUN(2, "执行中"),
PICKING(3, "正在拣货"),
FINISH(5, "任务完成");
private final Integer code;
private final String name;
KateTaskStatus(Integer code, String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@ -0,0 +1,27 @@
package com.wms.constants.enums;
/**
* 库位状态枚举
* /// 托盘状态和站台状态通用
*/
public enum LocationStatus {
EMPTY(0, "空闲"),
OCCUPY(1, "占用");
private final Integer code;
private final String value;
LocationStatus(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,27 @@
package com.wms.constants.enums;
/**
* 接口响应码枚举
*/
public enum ResponseCode {
OK(0, "正常"),
WARNING(200, "警告"),
ERROR(999, "异常");
private final Integer code;
private final String value;
ResponseCode(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,32 @@
package com.wms.constants.enums;
/**
* 库存状态枚举
*/
public enum StockStatus {
OK(0, "库存正常"),
OUT(1, "准备出库"),
MOVING(2, "正在出库"),
TRANS(3, "出库完成"),
PICKING(4, "站台拣货中"),
INVENTORY_OUT(5, "站台盘点中"),
BACKING(6, "正在回库"),
LOCK(9, "库存锁定");
private final Integer code;
private final String value;
StockStatus(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,27 @@
package com.wms.constants.enums;
/**
* 任务类型枚举
*/
public enum TaskType {
IN(1, "入库"),
OUT(2, "出库"),
INVENTORY(3, "盘点");
private final Integer code;
private final String value;
TaskType(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,22 @@
package com.wms.constants.enums;
public enum UrlEnums {
URL_WMS_TO_WCS_SEND_TASK("WMS向WCS发送任务", "http://192.168.103.202:18990/api/Wms/WmsTask/SetStackerTask"),
URL_WMS_TO_WCS_CHANGE_TASK("WMS请求变更任务状态", "http://192.168.103.202:18990/api/Wms/WmsTask/ChangeTaskStatus");
private final String description;
private final String value;
UrlEnums(String description, String value) {
this.description = description;
this.value = value;
}
public String getDescription() {
return description;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,27 @@
package com.wms.constants.enums;
/**
* 载具状态
*/
public enum VehicleStatus {
IN(1, "入库中"),
ON(2, "在库中"),
OUT(3, "出库中");
private final Integer code;
private final String value;
VehicleStatus(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}

View File

@ -0,0 +1,31 @@
package com.wms.constants.enums;
/**
* Wcs任务状态的枚举
*/
public enum WcsTaskStatus {
WAIT(1, "任务排队中"),
RUN(2, "任务开始执行"),
LEAVE(3, "任务已经离开初始位置"),
PARK(4, "任务到达中间点"),
ARRIVE(5, "任务到达目的地"),
FINISH(100, "任务完成"),
CANCEL(998, "任务取消"),
EXCEPTION(999, "任务异常");
private final Integer code;
private final String name;
WcsTaskStatus(Integer code, String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@ -0,0 +1,35 @@
package com.wms.constants.enums;
/**
* Wms任务状态的枚举
*/
public enum WmsTaskStatus {
NEW(0, "任务新建,待下发"),
WAIT(1, "任务已下发"),
RUN(2, "任务开始执行"),
OUT_SUCCESS(3, "出库完成"),
TRANS_MOVE(4, "输送线转运中"),
ARRIVE_STAND(5, "到达拣选站台"),
PICKING(6, "正在拣货"),
BACKING(7, "正在回库"),
INVENTORY(8, "盘点中"),
FINISH(100, "任务完成"),
CANCEL(998, "任务取消"),
EXCEPTION(999, "任务异常");
private final Integer code;
private final String name;
WmsTaskStatus(Integer code, String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}

View File

@ -0,0 +1,8 @@
package com.wms.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BaseController {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
}

View File

@ -0,0 +1,87 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Config;
import com.wms.service.ConfigService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* WMS系统配置控制类
* @author 梁州
* &#064;date 2023/3/23
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/config")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ConfigController extends BaseController{
/**
* 系统配置服务
*/
private final ConfigService configService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查找所有配置
* @return 配置
*/
@GetMapping("/getConfigs")
@ResponseBody
public List<Config> getConfigs(){
logger.info("查询系统配置");
return configService.selectConfigs("");
}
/**
* 更新系统配置
*
* @param config 配置
* @return 结果
*/
@PostMapping("/updateConfig")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateConfig(@RequestBody Config config) {
logger.info("更新系统配置,{}{}", config.getConfigName(), config.getConfigValue());
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
configService.updateConfig(config);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("更新系统配置错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新系统配置成功!");
return JSON.toJSONString(rsp);
}
}

View File

@ -0,0 +1,104 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.WmsConstants;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.display.LocationData;
import com.wms.entity.app.display.LocationInfo;
import com.wms.entity.table.Location;
import com.wms.entity.table.Stock;
import com.wms.service.LocationService;
import com.wms.service.StockService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.LinkedList;
import java.util.List;
@Controller
@CrossOrigin
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping(value = "/api/query")
public class DisplayController extends BaseController{
private final StockService stockService;
private final LocationService locationService;
private final HttpServletRequest servletRequest;
/**
* 大屏查询库位信息
* @param location 参数---库位
* @return 结果
*/
@GetMapping("/queryLocationInfo")
@ResponseBody
public String queryLocationInfo(@RequestParam String location) {
logger.info("接收到查询大屏库位信息请求ip地址{},参数:{}", HttpUtils.getIpAddr(servletRequest), location);
ResponseEntity response = new ResponseEntity();
if (StringUtils.isEmpty(location)) {
logger.error("查询失败,参数中库位号为空");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("查询失败,参数中库位号为空");
return JSON.toJSONString(response);
}
Location locationQuery = new Location();
locationQuery.setLocationId(location);
List<Location> locations = locationService.selLocations(locationQuery);
if (locations.size() == 0) {
logger.error("查询失败,该库位立体库中不存在");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("查询失败,请检查库位号正确性");
return JSON.toJSONString(response);
}
Location currentLocation = locations.get(0);
String vehicleNo = currentLocation.getVehicleId();
if (StringUtils.isEmpty(vehicleNo)) {
// 设定
LocationInfo returnData = new LocationInfo();
returnData.setLocationId(location);
returnData.setVehicleNo(WmsConstants.EMPTY_STRING);
response.setCode(ResponseCode.OK.getCode());
response.setMessage("查询成功");
response.setReturnData(returnData);
return JSON.toJSONString(response);
}
// 查询库存
Stock stockQuery = new Stock();
stockQuery.setLocationId(location);
stockQuery.setVehicleId(vehicleNo);
List<Stock> stocks = stockService.selStocks(stockQuery);
List<LocationData> locationData = new LinkedList<>();
for (Stock tempStock : stocks) {
LocationData tempData = new LocationData();
tempData.setGoodsId(tempStock.getGoodsId());
tempData.setGoodsName(tempStock.getGoodsName());
tempData.setGoodsNum(tempStock.getRealNum());
locationData.add(tempData);
}
// 设定
LocationInfo returnData = new LocationInfo();
returnData.setLocationId(location);
returnData.setVehicleNo(WmsConstants.EMPTY_STRING);
returnData.setLocationData(locationData);
response.setCode(ResponseCode.OK.getCode());
response.setMessage("查询成功");
response.setReturnData(returnData);
return JSON.toJSONString(response);
}
/**
* 查询所有库位
* @return 结果
*/
@GetMapping("/getAllLocations")
@ResponseBody
public String queryLocationInfo() {
logger.info("接收到查询大屏所有库位信息请求ip地址{}", HttpUtils.getIpAddr(servletRequest));
return JSON.toJSONString(locationService.selLocations(new Location()));
}
}

View File

@ -0,0 +1,110 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.enums.KateTaskStatus;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.table.*;
import com.wms.service.*;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import com.wms.utils.WmsUtils;
import com.wms.utils.excel.ExcelUtils;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.*;
/**
*
*/
@Controller
@CrossOrigin
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping(value = "/wms/excel")
public class ExcelController extends BaseController {
private final StockService stockService;// 库存服务
private final PartInfoService partInfoService;// 零件服务
private final HttpServletRequest servletRequest;// 请求服务
private final TaskRecordService taskRecordService;// 任务记录服务
/**
* 导入零件信息
*
* @param file 文件
* @return 导入结果
*/
@PostMapping("/uploadPartInfos")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String uploadPartInfos(@RequestPart("file") MultipartFile file) {
logger.info("接收到导入零件信息请求ip地址{}", HttpUtils.getIpAddr(servletRequest));
ResponseEntity response = new ResponseEntity();
try {
List<PartInfo> files = ExcelUtils.readMultipartFile(file, PartInfo.class);
// 添加进物料表
for (PartInfo pageInfo : files) {
if (partInfoService.selPartByPartNo(pageInfo.getMaterial()) != null) {// 当前零件号的数据已经存在过
partInfoService.modifyPart(pageInfo);
} else {// 新零件
partInfoService.addPart(pageInfo);
}
}
response.setCode(ResponseCode.OK.getCode());
response.setMessage("导入excel成功");
response.setReturnData(files);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage(e.getMessage());
}
return JSON.toJSONString(response);
}
/**
* 导出库存数据
*
* @param response 请求
*/
@GetMapping("/downloadStockExcel")
@ResponseBody
public void downloadStockExcel(HttpServletResponse response) {
List<Stock> stocks = stockService.selStocks(new Stock());
ExcelUtils.export(response, "库存报表", stocks, Stock.class);
}
/**
* 导出入库记录
*
* @param response 请求
*/
@GetMapping("/downloadRukuExcel")
@ResponseBody
public void downloadRukuExcel(HttpServletResponse response) {
List<Task> ruku = taskRecordService.selTasks(new Task());
ExcelUtils.export(response, "入库记录报表", ruku, Task.class);
}
/**
* 导出物料信息
*
* @param response 请求
*/
@GetMapping("/downloadMaterialExcel")
@ResponseBody
public void downloadMaterialExcel(HttpServletResponse response) {
List<PartInfo> Material = partInfoService.selParts(new PartInfo());
ExcelUtils.export(response, "物料信息", Material, PartInfo.class);
}
}

View File

@ -0,0 +1,274 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Goods;
import com.wms.entity.table.PartInfo;
import com.wms.service.GoodsService;
import com.wms.service.PartInfoService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* WMS物料控制类
* @author 梁州
* &#064;date 2023/3/9
*/
@Controller
@CrossOrigin
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping(value = "/wms/goods")
public class GoodsController extends BaseController{
/**
* 物料服务
*/
private final GoodsService goodsService;
/**
* 零件服务
*/
private final PartInfoService partInfoService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查找所有零件信息
*/
@PostMapping("/getPartInfo")
@ResponseBody
public String getPartInfo(@RequestBody TableRequest<PartInfo, String> tableRequest){
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询零件数据请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
// String[] orderByArr = {"location_id", "vehicle_id", "goods_id", "batch_no", "remain_num", "expiration_date", "create_time"};
String orderByStr = "material asc";
// if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
// orderByStr = pageRequest.getOrderBy();
// } else {
// // 默认排序
// orderByStr = "expiration_date desc";
// }
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<PartInfo> parts = partInfoService.selParts(tableRequest.getParam());
PageInfo<PartInfo> partPageInfo = new PageInfo<>(parts);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询零件信息成功!");
tblResp.setRows(partPageInfo.getList());
tblResp.setTotal(partPageInfo.getTotal());
return JSON.toJSONString(tblResp);
}
/**
* 更新零件信息
*
* @param partInfo 零件信息
* @return 结果
*/
@PostMapping("/updatePartInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updatePartInfo(@RequestBody PartInfo partInfo) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到更新零件信息请求:{}", JSON.toJSONString(partInfo));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(partInfo.getMaterial())) {// 箱号为空不执行
logger.error("请求零件号为空");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求零件号为空");
return JSON.toJSONString(rsp);
}
partInfoService.modifyPart(partInfo);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新零件信息成功");
return JSON.toJSONString(rsp);
}
/**
* 更新物料信息
*
* @param goods 物料
* @return 结果
*/
@PostMapping("/updateGoodsInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateGoodsInfo(@RequestBody Goods goods) {
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
goodsService.modifyGoods(goods);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("更新物料信息发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
logger.info("更新物料信息成功:{}", goods.toLoggerString());
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新物料信息成功");
return JSON.toJSONString(rsp);
}
@PostMapping("/queryPartInfoByPartNo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String queryPartInfoByPartNo(@RequestBody PartInfo partInfo) {
logger.info("前台查询零件数据");
ResponseEntity rsp = new ResponseEntity();
if (partInfo == null || StringUtils.isEmpty(partInfo.getMaterial())) {
logger.info("请求查询的参数为空");
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求查询的参数为空");
return JSON.toJSONString(rsp);
}
try {
PartInfo partInfoNeed = partInfoService.selPartByPartNo(partInfo.getMaterial());
if (partInfoNeed == null) {
logger.info("查询零件信息发生错误,零件号:{}", partInfo.getMaterial());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("查询的零件信息为空");
return JSON.toJSONString(rsp);
}
rsp.setReturnData(partInfoNeed);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("查询零件信息发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
logger.info("查询零件信息成功");
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("查询零件信息成功");
return JSON.toJSONString(rsp);
}
@PostMapping("/queryPartNo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String queryPartNo(@RequestBody PartInfo partInfo) {
logger.info("前台查询零件数据");
ResponseEntity rsp = new ResponseEntity();
if (partInfo == null || StringUtils.isEmpty(partInfo.getMaterial())) {
logger.info("请求查询的参数为空");
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求查询的参数为空");
return JSON.toJSONString(rsp);
}
try {
PartInfo query = new PartInfo();
query.setMaterial(partInfo.getMaterial());
List<PartInfo> partInfoNeed = partInfoService.selParts(query);
if (partInfoNeed.size() == 0) {
logger.info("查询零件信息发生错误,零件号:{}", partInfo.getMaterial());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("查询的零件信息为空");
return JSON.toJSONString(rsp);
}
rsp.setReturnData(partInfoNeed);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("查询零件信息发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
logger.info("查询零件信息成功");
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("查询零件信息成功");
return JSON.toJSONString(rsp);
}
/**
* 删除当前零件信息
*
* @param partInfo 零件
* @return 结果
*/
@PostMapping("/deletePartInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String deleteVehicle(@RequestBody PartInfo partInfo) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到更新料箱信息请求:{}", JSON.toJSONString(partInfo));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(partInfo.getMaterial())) {// 零件号为空不做处理
logger.error("请求删除的零件号为空");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求删除的零件号为空");
return JSON.toJSONString(rsp);
}
partInfoService.deletePartByPartNo(partInfo.getMaterial());
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("删除零件信息成功");
return JSON.toJSONString(rsp);
}
}

View File

@ -0,0 +1,170 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.enums.*;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.wcs.WcsTask;
import com.wms.entity.table.*;
import com.wms.constants.WmsConstants;
import com.wms.service.*;
import com.wms.utils.HttpUtils;
import com.wms.utils.WmsUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import springfox.documentation.spring.web.json.Json;
import java.util.*;
/**
* 定期任务类
*/
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class JobComponent extends BaseController {
/**
* 任务服务
*/
private final TaskService taskService;
/**
* 载具/料箱 服务
*/
private final VehicleService vehicleService;
/**
* 库位服务
*/
private final LocationService locationService;
/**
* 站台服务
*/
private final StandService standService;
/**
* 配置服务
*/
private final ConfigService configService;
/**
* 库存服务
*/
private final StockService stockService;
private final TaskRecordService taskRecordService;
/**
* 每隔一秒检索一遍任务列表同时向WCS下发任务
*/
@Scheduled(fixedDelay = 1000)
public void executeTasks() {
try {
// 检索任务列表查询状态为等待状态的任务
Task taskForQuery = new Task();
taskForQuery.setTaskStatus(WmsTaskStatus.NEW.getCode());
List<Task> tasks = taskService.selTasks(taskForQuery);
// 相同任务组的任务只发一次
List<String> taskGroupIds = new LinkedList<>();
List<WcsTask> request = new ArrayList<>();
if (tasks.size() > 0) {// 存在等待中的任务
for (Task task : tasks) {
if (taskGroupIds.contains(task.getTaskGroup())) {// 该taskGroup的任务已经发送过
task.setTaskStatus(WmsTaskStatus.WAIT.getCode());
continue;
}
// 创建发送的任务
WcsTask tempTask = new WcsTask();
tempTask.setTaskId(task.getTaskGroup());
if (TaskType.OUT.getCode().equals(task.getTaskType()) || TaskType.INVENTORY.getCode().equals(task.getTaskType())) {
tempTask.setTaskType(TaskType.OUT.getCode());
} else {
tempTask.setTaskType(TaskType.IN.getCode());
}
tempTask.setOrigin(task.getOrigin());
tempTask.setDestination(task.getDestination());
tempTask.setVehicleNo(task.getVehicleNo());
tempTask.setVehicleSize(1);
tempTask.setWeight(task.getWeight() == null ? 0 : task.getWeight());
tempTask.setPriority(task.getTaskPriority());
request.add(tempTask);
taskGroupIds.add(task.getTaskGroup());
task.setTaskStatus(WmsTaskStatus.WAIT.getCode());
}
if (request.size() == 0) {
return;
}
// 发送任务
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(UrlEnums.URL_WMS_TO_WCS_SEND_TASK.getValue(), JSON.toJSONString(request)), ResponseEntity.class);
if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
// 更新任务列表
for (Task task : tasks) {
// 更新任务
taskService.executeTask(task);
}
}
}
} catch (Exception exception) {
logger.error("发生异常:{}", exception.getMessage());
}
}
/**
* 定期检查设备状态
* 5秒钟
*/
// @Scheduled(fixedDelay = 5000)
public void checkEquipmentStatus() {
}
/**
* 每天查询一次是否有过期的库存
* 每天晚上8点执行一次
*/
// @Scheduled(cron = "0 0 20 * * ?")
public void detectOutOfDateStock() {
logger.info("执行定时任务:查询过期库存");
List<Stock> outOfDateStocks = stockService.selStockOutOfDate();
if (outOfDateStocks.size() > 0) {
logger.info("过期库存数量不为0准备更新过期库存");
for (Stock outOfDateStock : outOfDateStocks) {
try {
outOfDateStock.setGoodsStatus(GoodsStatus.OVERDUE.getCode());
stockService.modifyStock(outOfDateStock);
logger.info("过期库存更新成功");
} catch (Exception e) {
logger.error("过期库存更新异常:{}", e.getMessage());
}
}
}
}
/**
* 每天查询一次是否有入库后长期未使用的库存
* 每天晚上9点执行一次
*/
// @Scheduled(cron = "0 0 21 * * ?")
public void detectStockLongTimeNoUse() {
logger.info("执行定时任务:查询是否有入库后长期未使用的库存");
List<Stock> stocksLongTimeNoUse = stockService.selStockLongTimeNoUse(7);
if (stocksLongTimeNoUse.size() > 0) {
logger.info("有入库后长期未使用的库存, 准备更新库存状态");
for (Stock stockLongTimeNoUse : stocksLongTimeNoUse) {
try {
stockLongTimeNoUse.setGoodsStatus(GoodsStatus.SCRAP.getCode());
stockService.modifyStock(stockLongTimeNoUse);
logger.info("长时间未使用库存状态更新成功");
} catch (Exception e) {
logger.error("长时间未使用库存状态更新异常:{}", e.getMessage());
}
}
}
}
/**
* 每天查询一次是否有过期记录
* 每天晚上10点执行一次
*/
@Scheduled(cron = "0 0 22 * * ?")
public void deleteOutOfDateData() {
logger.info("执行定时任务:删除过期数据");
taskRecordService.deleteTaskRecordRegularly();
}
}

View File

@ -0,0 +1,336 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.constants.enums.VehicleStatus;
import com.wms.entity.app.LayerLocation;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.RowLocation;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Location;
import com.wms.entity.table.Vehicle;
import com.wms.constants.WmsConstants;
import com.wms.constants.enums.LocationStatus;
import com.wms.service.LocationService;
import com.wms.service.VehicleService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* WMS库位控制类
*
* @author 梁州
* &#064;date 2023/3/6
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/location")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class LocationController extends BaseController {
/**
* 库位服务
*/
private final LocationService locationService;
/**
* 料箱服务
*/
private final VehicleService vehicleService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查询库位
*
* @param location 查询参数
* @return 结果
*/
@PostMapping("/getLocations")
@ResponseBody
public String getLocations(@RequestBody Location location) {
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
// 查询出所有符合条件的库位
List<Location> locations = locationService.selLocations(location);
if (locations.size() < 1) {
logger.error("查询库位发生错误:库位不存在");
// 返回错误
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("查询库位发生错误:库位不存在");
return JSON.toJSONString(rsp);
}
List<RowLocation> rowLocations = new LinkedList<>();
// 查找到最大的排
locations.sort(Comparator.comparing(Location::getQueue).reversed());
int maxRow = locations.get(0).getQueue();
// 按排查找库位
for (int i = 0; i < maxRow; i++) {
int finalI = i;
List<Location> currentRowLocations = new ArrayList<>(locations.stream()
.filter(l -> l.getQueue().equals(finalI + 1))
.toList());
// 先查找每一层的库位
List<LayerLocation> layerLocations = new LinkedList<>();
// 找到这一排最大的层
currentRowLocations.sort(Comparator.comparing(Location::getLayer).reversed());
int maxLayer = currentRowLocations.get(0).getLayer();
// 按照每一列查找库位
for (int j = 0; j < maxLayer; j++) {
int finalJ = j;
List<Location> currentLayerLocations = currentRowLocations.stream()
.filter(l -> l.getLayer().equals(finalJ + 1))
.toList();
LayerLocation tempLayerLocation = new LayerLocation();
tempLayerLocation.setLayer(finalJ + 1);
tempLayerLocation.setCurrentColLocations(currentLayerLocations);
layerLocations.add(tempLayerLocation);
}
RowLocation tempRowLocation = new RowLocation();
tempRowLocation.setRow(finalI + 1);
tempRowLocation.setCurrentLayerLocations(layerLocations);
rowLocations.add(tempRowLocation);
}
logger.info("查询库位数据成功,库区:{}", location.getAreaId());
// 设置最终数据
rsp.setReturnData(rowLocations);
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("查询库位成功");
return JSON.toJSONString(rsp);
} catch (Exception e) {
logger.info("查询库位发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
}
/**
* 更新库位状态
*
* @param location 库位
* @return 结果
*/
@PostMapping("/updateLocation")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateLocation(@RequestBody Location location) {
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
// TODO 这里要更新料箱信息
if (StringUtils.isNotEmpty(location.getVehicleId())) {// 载具号不为空
// 判断是不是需要往载具表里面添加数据
if (vehicleService.selVehicleById(location.getVehicleId()) == null) {
// 添加新载具
Vehicle newVehicle = new Vehicle();
newVehicle.setVehicleId(location.getVehicleId());
newVehicle.setVehicleStatus(VehicleStatus.ON.getCode());
newVehicle.setCurrentLocation(location.getLocationId());
newVehicle.setIsEmpty(1);
vehicleService.addVehicle(newVehicle);
}
}
locationService.modifyLocation(location);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("更新库位状态发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新库位状态成功");
return JSON.toJSONString(rsp);
}
/**
* 更新库位状态
*
* @param location 库位
* @return 结果
*/
@PostMapping("/getAvailableLocations")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String getAvailableLocations(@RequestBody Location location) {
logger.info("查询空闲可用库位");
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
Location locationQuery = new Location();
locationQuery.setAreaId(location.getAreaId());
locationQuery.setLocationStatus(LocationStatus.EMPTY.getCode());
locationQuery.setIsLock(0);
List<Location> availableLocations = locationService.selLocations(locationQuery);
rsp.setReturnData(availableLocations);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("查询可用库位错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("查询可用库位成功");
return JSON.toJSONString(rsp);
}
/**
* 查询料箱信息
* @param tableRequest 请求
* @return 结果
*/
@PostMapping("/getVehicles")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String getVehicles(@RequestBody TableRequest<Vehicle, String> tableRequest) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询料箱请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
// String[] orderByArr = {"task_id", "task_type", "task_status", "goods_id", "goods_name", "task_priority", "expiration_date", "create_time"};
String orderByStr = "";
// if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
// orderByStr = pageRequest.getOrderBy();
// } else {
// // 默认排序
// orderByStr = "";
// }
Vehicle vehicleQuery = new Vehicle();
vehicleQuery.setVehicleId(tableRequest.getParam().getVehicleId());
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<Vehicle> vehicles = vehicleService.selVehicles(vehicleQuery);
PageInfo<Vehicle> vehiclePageInfo = new PageInfo<>(vehicles);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询料箱成功!");
tblResp.setRows(vehiclePageInfo.getList());
tblResp.setTotal(vehiclePageInfo.getTotal());
return JSON.toJSONString(tblResp);
}
/**
* 更新料箱信息
*
* @param vehicle 料箱
* @return 结果
*/
@PostMapping("/updateVehicleInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateVehicleInfo(@RequestBody Vehicle vehicle) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到更新料箱信息请求:{}", JSON.toJSONString(vehicle));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(vehicle.getVehicleId())) {// 箱号为空不执行
logger.error("请求箱号为空");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求箱号为空");
return JSON.toJSONString(rsp);
}
vehicleService.modifyVehicle(vehicle);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新料箱信息成功");
return JSON.toJSONString(rsp);
}
/**
* 删除当前料箱信息
*
* @param vehicle 料箱
* @return 结果
*/
@PostMapping("/deleteVehicle")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String deleteVehicle(@RequestBody Vehicle vehicle) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到更新料箱信息请求:{}", JSON.toJSONString(vehicle));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(vehicle.getVehicleId())) {// 箱号为空不执行
logger.error("请求箱号为空");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求箱号为空");
return JSON.toJSONString(rsp);
}
// 判断当前料箱是不是空箱带料不允许删除
Vehicle currentVehicle = vehicleService.selVehicleById(vehicle.getVehicleId());
if (currentVehicle != null && currentVehicle.getIsEmpty() != 1) {// 非空箱
logger.error("非空箱不允许删除");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("非空箱不允许删除");
return JSON.toJSONString(rsp);
}
// 将库中表中是当前载具的信息清空
Location locationQuery = new Location();
locationQuery.setVehicleId(vehicle.getVehicleId());
List<Location> locations = locationService.selLocations(locationQuery);
for (Location location : locations) {
location.setVehicleId(WmsConstants.EMPTY_STRING);
locationService.modifyLocation(location);
}
vehicleService.deleteVehicle(vehicle);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("删除料箱成功");
return JSON.toJSONString(rsp);
}
}

View File

@ -0,0 +1,90 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Task;
import com.wms.service.TaskRecordService;
import com.wms.utils.HttpUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* WMS记录控制类
*
* @author 梁州
* @date 2023/2/14
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/record")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class RecordController extends BaseController {
/**
* 任务记录服务
*/
private final TaskRecordService taskRecordService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查询任务记录
*
* @param tableRequest 请求
* @return 结果
*/
@PostMapping("/getTaskRecords")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String getVehicles(@RequestBody TableRequest<Task, String> tableRequest) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询任务记录请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
// String[] orderByArr = {"task_id", "task_type", "task_status", "goods_id", "goods_name", "task_priority", "expiration_date", "create_time"};
String orderByStr = "";
// if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
// orderByStr = pageRequest.getOrderBy();
// } else {
// // 默认排序
// orderByStr = "";
// }
Task taskRecordQuery = new Task();
taskRecordQuery.setTaskType(tableRequest.getParam().getTaskType());
taskRecordQuery.setGoodsId(tableRequest.getParam().getGoodsId());
taskRecordQuery.setVehicleNo(tableRequest.getParam().getVehicleNo());
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<Task> records = taskRecordService.selTasks(taskRecordQuery);
PageInfo<Task> taskRecordPageInfo = new PageInfo<>(records);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询任务记录成功!");
tblResp.setRows(taskRecordPageInfo.getList());
tblResp.setTotal(taskRecordPageInfo.getTotal());
return JSON.toJSONString(tblResp);
}
}

View File

@ -0,0 +1,133 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Stand;
import com.wms.service.StandService;
import com.wms.utils.HttpUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 站台控制类
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/stand")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class StandController extends BaseController {
/**
* 站台服务
*/
private final StandService standService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查询可用站台列表
* @return 符合条件的站台列表
*/
@PostMapping("/getAllStands")
@ResponseBody
public List<Stand> getAllStands(@RequestBody JSONObject type){
logger.info("查询站台{}", JSON.toJSONString(type));
int type_int = type.getIntValue("type");
Stand query = new Stand();
if (type_int == 1) {// 入库站台
query.setAllowIn(1);
} else if (type_int == 2) {// 出库站台
query.setAllowOut(1);
} else if (type_int == 3) {// 盘点站台
query.setAllowIn(1);
query.setAllowOut(1);
}
return standService.selStands(query);
}
/**
* 更新站台状态
*
* @param stand 站台
* @return 结果
*/
@PostMapping("/updateStandInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateStandInfo(@RequestBody Stand stand) {
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
standService.modifyStand(stand);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("更新站台信息发生错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
logger.info("更新站台信息成功:{}", stand.toLoggerString());
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新站台信息成功");
return JSON.toJSONString(rsp);
}
/**
* 查找所有库存
*/
@PostMapping("/getStands")
@ResponseBody
public String getStands(@RequestBody TableRequest<Stand, String> tableRequest){
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询库存请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
// String[] orderByArr = {"location_id", "vehicle_id", "goods_id", "batch_no", "remain_num", "expiration_date", "create_time"};
String orderByStr = "";
// if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
// orderByStr = pageRequest.getOrderBy();
// } else {
// // 默认排序
// orderByStr = "expiration_date desc";
// }
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<Stand> stands = standService.selStands(tableRequest.getParam());
PageInfo<Stand> standPageInfo = new PageInfo<>(stands);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询库存成功!");
tblResp.setRows(standPageInfo.getList());
tblResp.setTotal(standPageInfo.getTotal());
logger.info("查询库存成功,总数:{},当前页:{},当前页数量:{}", standPageInfo.getTotal(), standPageInfo.getPageNum(), standPageInfo.getPageSize());
return JSON.toJSONString(tblResp);
}
}

View File

@ -0,0 +1,202 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.page.PageDomain;
import com.wms.entity.page.TableRequest;
import com.wms.entity.page.TableResponse;
import com.wms.entity.table.Stock;
import com.wms.service.StockService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import com.wms.utils.WmsUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* WMS库存控制类
* @author 梁州
* &#064;date 2023/2/14
*/
@Controller
@CrossOrigin
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping(value = "/wms/stock")
public class StockController extends BaseController {
/**
* 库存服务
*/
private final StockService stockService;
/**
* 请求头部信息
*/
private final HttpServletRequest servletRequest;
/**
* 查找所有库存
*/
@PostMapping("/getAllStocks")
@ResponseBody
public String getAllStocks(@RequestBody TableRequest<String, String> tableRequest){
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询库存请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
String[] orderByArr = {"location_id", "vehicle_id", "goods_id", "batch_no", "remain_num", "expiration_date", "create_time"};
String orderByStr;
if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
orderByStr = pageRequest.getOrderBy();
} else {
// 默认排序
orderByStr = "expiration_date desc";
}
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<Stock> stocks = stockService.selStocksFront(tableRequest.getParam());
PageInfo<Stock> stockPageInfo = new PageInfo<>(stocks);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询库存成功!");
tblResp.setRows(stockPageInfo.getList());
tblResp.setTotal(stockPageInfo.getTotal());
logger.info("查询库存成功,总数:{},当前页:{},当前页数量:{}", stockPageInfo.getTotal(), stockPageInfo.getPageNum(), stockPageInfo.getPageSize());
return JSON.toJSONString(tblResp);
}
/**
* 查找所有库存---按物料汇总
*/
@PostMapping("/getAllStocksByGoodsId")
@ResponseBody
public String getAllStocksByGoodsId(@RequestBody TableRequest<String, String> tableRequest){
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到查询库存请求:{}", JSON.toJSONString(tableRequest));
TableResponse tblResp = new TableResponse();
// 解析请求数据
if (tableRequest == null || tableRequest.getPage() == null) {
tblResp.setCode(ResponseCode.ERROR.getCode());
tblResp.setMessage("请求数据为空,无法处理!");
logger.error("请求数据为空,无法处理!");
return JSON.toJSONString(tblResp);
}
// 处理分页信息
PageDomain pageRequest = tableRequest.getPage();
String[] orderByArr = {"location_id", "vehicle_id", "goods_id", "batch_no", "remain_num", "expiration_date", "create_time"};
String orderByStr;
if (StringUtils.isNotEmpty(pageRequest.getOrderByColumn()) && Arrays.asList(orderByArr).contains(StringUtils.toUnderScoreCase(pageRequest.getOrderByColumn()))) {
orderByStr = pageRequest.getOrderBy();
} else {
// 默认排序
orderByStr = "goods_id desc";
}
Stock stockQuery = new Stock();
stockQuery.setGoodsId(tableRequest.getParam());
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), orderByStr);
List<Stock> stocks = stockService.selStocksByGoodsId(stockQuery);
PageInfo<Stock> stockPageInfo = new PageInfo<>(stocks);
tblResp.setCode(ResponseCode.OK.getCode());
tblResp.setMessage("查询库存成功!");
tblResp.setRows(stockPageInfo.getList());
tblResp.setTotal(stockPageInfo.getTotal());
logger.info("查询库存成功,总数:{},当前页:{},当前页数量:{}", stockPageInfo.getTotal(), stockPageInfo.getPageNum(), stockPageInfo.getPageSize());
return JSON.toJSONString(tblResp);
}
/**
* 更新库存信息
*
* @param stock 库存
* @return 结果
*/
@PostMapping("/updateStockInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String updateStockInfo(@RequestBody Stock stock) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到更新库存信息请求:{}", JSON.toJSONString(stock));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(stock.getStockId())) {// 库存编号为空不允许执行
logger.error("请求的库存编号为空,不允许修改");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求的库存编号为空,不允许修改");
return JSON.toJSONString(rsp);
}
if (stock.getRealNum() == 0) {
stockService.deleteStock(stock.getStockId());
} else {
stockService.modifyStock(stock);
}
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("更新库存信息成功");
return JSON.toJSONString(rsp);
}
/**
* 新增库存
*
* @param stock 库存
* @return 结果
*/
@PostMapping("/addNewStock")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String addNewStock(@RequestBody Stock stock) {
logger.info("请求的ip地址{}", HttpUtils.getIpAddr(servletRequest));
logger.info("接收到人工添加库存:{}", JSON.toJSONString(stock));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
Stock tempStock = new Stock();
tempStock.setStockId(WmsUtils.generateId("ST"));
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
// 返回成功
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("添加库存信息成功");
return JSON.toJSONString(rsp);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,208 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.enums.*;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.table.Location;
import com.wms.entity.app.wcs.WmsReceiveTaskResultEntity;
import com.wms.entity.table.Stock;
import com.wms.entity.table.Task;
import com.wms.service.LocationService;
import com.wms.service.StockService;
import com.wms.service.TaskService;
import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
* 这个类处理任务反馈信息
*/
@Controller
@CrossOrigin
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping(value = "/wms/taskDeal")
public class TaskDealController extends BaseController{
private final TaskService taskService;
private final HttpServletRequest servletRequest;
private final TaskController taskController;
private final StockService stockService;
private final LocationService locationService;
/**
* 更改任务状态
*
* @param request 请求参数
* @return 结果
*/
@PostMapping("/changeTaskStatus")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String changeTaskStatus(@RequestBody Task request) {
logger.info("用户请求更改任务状态,用户名:{}ip地址{}", request.getUserName(), HttpUtils.getIpAddr(servletRequest));
logger.info("请求详细:{}", JSON.toJSONString(request));
ResponseEntity response = new ResponseEntity();
try {
if (request.getTaskStatus() == null) {
logger.error("请选择任务状态");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("请选择任务状态");
return JSON.toJSONString(response);
}
// 更改后的任务状态
int taskStatusRequest = request.getTaskStatus();
int wcsTaskStatusAfter = 0;
// 查询任务
Task taskQuery = new Task();
taskQuery.setTaskId(request.getTaskId());
List<Task> tasks = taskService.selTasks(taskQuery);
if (tasks.size() == 0) {
logger.error("当前任务不存在");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("当前任务不存在");
return JSON.toJSONString(response);
}
Task currentTask = tasks.get(0);
String newDestination = "";
if (Objects.equals(currentTask.getTaskType(), TaskType.IN.getCode()) && StringUtils.isNotEmpty(request.getDestination()) && !Objects.equals(request.getDestination(), currentTask.getDestination())) {// 入库任务库位变更
if (taskStatusRequest != 0) {
logger.error("更改库位必须重置任务");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("更改库位必须重置任务");
return JSON.toJSONString(response);
}
newDestination = request.getDestination();
}
if (currentTask.getTaskId().startsWith("HK") && taskStatusRequest == 1) {
logger.error("回库任务不允许取消");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("回库任务不允许取消");
return JSON.toJSONString(response);
}
String taskGroupId = currentTask.getTaskGroup();
if (taskStatusRequest == 0) {// 重置任务
logger.info("任务重置");
// 将当前taskGroup的所有任务都设置为新建状态
Task taskQuery2 = new Task();
taskQuery2.setTaskGroup(taskGroupId);
List<Task> tasks2 = taskService.selTasks(taskQuery2);
for (Task task2 : tasks2) {
if (StringUtils.isNotEmpty(newDestination)) {
task2.setDestination(newDestination);
}
task2.setTaskStatus(WmsTaskStatus.NEW.getCode());
task2.setUserName(request.getUserName());
taskService.executeTask(task2);
}
// 如果更新了任务那么该库位信息也要变更
if (Objects.equals(currentTask.getTaskType(), TaskType.IN.getCode()) && StringUtils.isNotEmpty(newDestination)) {
Location newLocationQuery = new Location(newDestination);
List<Location> newLocations = locationService.selLocations(newLocationQuery);
for (Location newLocation : newLocations) {
newLocation.setVehicleId(currentTask.getVehicleNo());
newLocation.setLocationStatus(LocationStatus.EMPTY.getCode());
locationService.modifyLocation(newLocation);
break;
}
}
// WCS取消任务
} else if (taskStatusRequest == 1) {// 取消任务
logger.info("任务取消");
WmsReceiveTaskResultEntity sendToWmsRequest = new WmsReceiveTaskResultEntity();
sendToWmsRequest.setTaskId(taskGroupId);
sendToWmsRequest.setTaskStatus(WcsTaskStatus.CANCEL.getCode());
sendToWmsRequest.setVehicleNo(currentTask.getVehicleNo());
sendToWmsRequest.setDestination(currentTask.getDestination());
taskController.receiveTaskResult(sendToWmsRequest);
wcsTaskStatusAfter = 999;
} else if (taskStatusRequest == 2) {// 完成任务
logger.info("任务完成");
WmsReceiveTaskResultEntity sendToWmsRequest = new WmsReceiveTaskResultEntity();
sendToWmsRequest.setTaskId(taskGroupId);
sendToWmsRequest.setTaskStatus(WcsTaskStatus.FINISH.getCode());
sendToWmsRequest.setVehicleNo(currentTask.getVehicleNo());
sendToWmsRequest.setDestination(currentTask.getDestination());
taskController.receiveTaskResult(sendToWmsRequest);
wcsTaskStatusAfter = 3;
}
// 向WCS反馈
WmsReceiveTaskResultEntity sendToWcsRequest = new WmsReceiveTaskResultEntity();
sendToWcsRequest.setTaskId(taskGroupId);
sendToWcsRequest.setTaskStatus(wcsTaskStatusAfter);
if (StringUtils.isNotEmpty(newDestination)) {
sendToWcsRequest.setDestination(newDestination);
}
ResponseEntity response1;
for (int i = 0; i < 5; i++) {
response1 = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(UrlEnums.URL_WMS_TO_WCS_CHANGE_TASK.getValue(), JSON.toJSONString(sendToWcsRequest)), ResponseEntity.class);
logger.info("向WCS反馈任务状态变更");
if (Objects.equals(response1.getCode(), 0)) {// 发送成功则不再发送不成功一共尝试发送5次
break;
}
}
logger.info("更新任务状态成功");
response.setCode(ResponseCode.OK.getCode());
response.setMessage("更新任务状态成功");
return JSON.toJSONString(response);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.error("发生异常{}", e.getMessage());
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("发生异常" + e.getMessage());
return JSON.toJSONString(response);
}
}
/**
* 删除kate清单数据
*
* @param request 请求参数
* @return 结果
*/
@PostMapping("/deleteAllKateTasks")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String deleteAllKateTasks(@RequestBody Task request) {
logger.info("用户请求删除配料任务清单,包括配件、合件、紧急件,用户名:{}ip地址{}", request.getUserName(), HttpUtils.getIpAddr(servletRequest));
ResponseEntity response = new ResponseEntity();
try {
// 有任务正在执行时不允许删除清单
Task taskQuery = new Task();
taskQuery.setTaskType(TaskType.OUT.getCode());
List<Task> tasks = taskService.selTasks(taskQuery);
if (tasks.size() > 0) {
for (Task task : tasks) {
if (StringUtils.isNotEmpty(task.getKateTaskId())) {// 卡特任务未做完
logger.error("卡特任务未做完,不允许删除");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("卡特任务未做完,不允许删除");
return JSON.toJSONString(response);
}
}
}
stockService.resetStock(new Stock());
logger.info("删除任务清单成功");
response.setCode(ResponseCode.OK.getCode());
response.setMessage("删除任务清单成功");
return JSON.toJSONString(response);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.error("发生异常{}", e.getMessage());
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("发生异常" + e.getMessage());
return JSON.toJSONString(response);
}
}
}

View File

@ -0,0 +1,236 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.enums.LocationStatus;
import com.wms.constants.enums.ResponseCode;
import com.wms.constants.enums.VehicleStatus;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.table.Location;
import com.wms.entity.table.User;
import com.wms.entity.table.Vehicle;
import com.wms.entity.test.ExcelTest;
import com.wms.service.LocationService;
import com.wms.service.VehicleService;
import com.wms.utils.MyPassword;
import com.wms.utils.excel.ExcelUtils;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
/**
* 测试控制类
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/test")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TestController extends BaseController {
/**
* 库位服务
*/
private final LocationService locationService;
private final VehicleService vehicleService;
@PostMapping("/genLocations")
@ResponseBody
public String genLocations() {
// 巷道1 一共2排45列12层
for (int i = 1; i <= 2; i++) {//
for (int j = 1; j <= 45; j++) {//
for (int k = 1; k <= 12; k++) {//
Location tempLocation = new Location();
tempLocation.setLocationId(StringUtils.leftPad(String.valueOf(i), 2, "0") + StringUtils.leftPad(String.valueOf(j), 2, "0") + StringUtils.leftPad(String.valueOf(k), 2, "0"));
tempLocation.setAreaId(1);
tempLocation.setTunnelId(1);
tempLocation.setEquipmentId(1);
tempLocation.setLocationType(0);
tempLocation.setQueue(i);
tempLocation.setLine(j);
tempLocation.setLayer(k);
tempLocation.setDepth(1);
tempLocation.setIsLock(0);
tempLocation.setLocationStatus(0);
if (locationService.selLocations(tempLocation).size() == 0) {
locationService.addLocation(tempLocation);
}
}
}
}
// // 巷道2
// for (int i = 3; i <= 4; i++) {//
// for (int j = 3; j <= 34; j++) {//
// Location tempLocation = new Location();
// tempLocation.setLocationId(StringUtils.leftPad(String.valueOf(i), 2, "0") + StringUtils.leftPad(String.valueOf(j), 2, "0") + StringUtils.leftPad(String.valueOf(13), 2, "0"));
// tempLocation.setAreaId(1);
// tempLocation.setTunnelId(2);
// tempLocation.setEquipmentId(2);
// tempLocation.setLocationType(0);
// tempLocation.setQueue(i);
// tempLocation.setLine(j);
// tempLocation.setLayer(13);
// tempLocation.setDepth(1);
// tempLocation.setIsLock(0);
// tempLocation.setLocationStatus(0);
// locationService.addLocation(tempLocation);
// }
// }
return "success";
}
@PostMapping("/genETagLocations")
@ResponseBody
public String genETagLocations() {
// for (int i = 1; i <= 40; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("A" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("1");
// eTagLocation.setStandId("2001");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("B" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("2");
// eTagLocation.setStandId("2002");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("C" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("3");
// eTagLocation.setStandId("2003");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("D" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("4");
// eTagLocation.setStandId("2004");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("E" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("5");
// eTagLocation.setStandId("2005");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("F" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("6");
// eTagLocation.setStandId("2006");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 70; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("G" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("7");
// eTagLocation.setStandId("2007");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
// for (int i = 1; i <= 40; i++) {
// ETagLocation eTagLocation = new ETagLocation();
// eTagLocation.setLocationId("H" + StringUtils.leftPad(String.valueOf(i), 2, "0"));
// eTagLocation.setAreaId("8");
// eTagLocation.setStandId("2008");
// eTagLocation.setSequenceNo(i);
// eTagLocationService.addETagLocation(eTagLocation);
// }
return "success";
}
/**
* 测试导入
*
* @param file 文件
* @return 导入结果
*/
@PostMapping("/testExcelImport")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String testExcelImport(@RequestPart("file") MultipartFile file) {
ResponseEntity response = new ResponseEntity();
try {
List<ExcelTest> tests = ExcelUtils.readMultipartFile(file, ExcelTest.class);
for (ExcelTest test : tests) {
// 更新库位
Location locationQuery = new Location();
locationQuery.setLocationId(test.getLocationId());
List<Location> locations = locationService.selLocations(locationQuery);
if (locations.size() > 0) {
Location currentLocation = locations.get(0);
currentLocation.setLocationStatus(LocationStatus.OCCUPY.getCode());
currentLocation.setVehicleId("XZBK" + StringUtils.leftPad(test.getVehicleId().trim(), 4, "0"));
locationService.modifyLocation(currentLocation);
// 添加载具
Vehicle vehicle = new Vehicle();
vehicle.setVehicleId("XZBK" + StringUtils.leftPad(test.getVehicleId().trim(), 4, "0"));
vehicle.setCurrentLocation(test.getLocationId());
vehicle.setVehicleStatus(VehicleStatus.ON.getCode());
vehicle.setIsEmpty(1);
if (vehicleService.selVehicleById(test.getVehicleId()) == null) {
vehicleService.addVehicle(vehicle);
} else {
vehicleService.modifyVehicle(vehicle);
}
}
}
response.setCode(ResponseCode.OK.getCode());
response.setMessage("导入excel成功");
response.setReturnData(tests);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("导入excel发生错误");
}
logger.info(JSON.toJSONString(response));
return JSON.toJSONString(response);
}
/**
* 测试导出
*
* @param response 请求
*/
@GetMapping("/testExcelExport")
@ResponseBody
public void testExcelExport(HttpServletResponse response) {
List<ExcelTest> tests = new ArrayList<>();
ExcelTest temp1 = new ExcelTest("010101", "XZBK0001");
ExcelTest temp2 = new ExcelTest("020101", "XZBK0002");
tests.add(temp1);
tests.add(temp2);
ExcelUtils.export(response, "测试导出", tests, ExcelTest.class);
}
@PostMapping("/genPassword")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String genPassword(@RequestBody User user) {
ResponseEntity response = new ResponseEntity();
response.setCode(ResponseCode.OK.getCode());
response.setMessage("创建密码成功");
response.setReturnData(MyPassword.encrypt(user.getLoginPassword()));
return JSON.toJSONString(response);
}
}

View File

@ -0,0 +1,205 @@
package com.wms.controller;
import com.alibaba.fastjson2.JSON;
import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.MenuEntity;
import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.UserConfigEntity;
import com.wms.entity.table.Menu;
import com.wms.entity.table.User;
import com.wms.service.MenuService;
import com.wms.service.UserService;
import com.wms.utils.MyPassword;
import com.wms.constants.WmsConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
/**
* WMS用户控制类
* @author 梁州
* &#064;date 2023/2/14
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/user")
public class UserController extends BaseController {
/**
* 用户服务
*/
final UserService userService;
/**
* 菜单服务
*/
final MenuService menuService;
@Autowired
public UserController(UserService userService, MenuService menuService) {
this.userService = userService;
this.menuService = menuService;
}
/**
* 带密码登录
* @param user 用户
* @return 结果
*/
@PostMapping("/loginWithAuth")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String loginWithAuth(@RequestBody User user) {
logger.info("WMS前端用户登录登录账户名{}", user.getLoginAccount());
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
// 查找对应用户的信息
User userForQuery = new User();
userForQuery.setLoginAccount(user.getLoginAccount());
List<User> waitForAuthUsers = userService.selectUsers(userForQuery);
if (waitForAuthUsers.size() < 1) {
logger.error("用户不存在,登录账户名:{}", user.getLoginAccount());
// 返回错误
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("用户不存在");
return JSON.toJSONString(rsp);
}
// 验证密码
User waitForAuthUser = waitForAuthUsers.get(0);
if (!Objects.equals(MyPassword.encrypt(user.getLoginPassword()), waitForAuthUser.getLoginPassword())) {
logger.error("密码错误,登录账户名:{}", user.getLoginAccount());
// 返回错误
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("密码错误");
return JSON.toJSONString(rsp);
}
// 当前用户
User currentUser = waitForAuthUsers.get(0);
// 返回成功
logger.info("登录成功,登录账户名:{}", currentUser.getLoginAccount());
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("登录成功");
// 返回用户数据
rsp.setReturnData(generateUserInfo(currentUser));
return JSON.toJSONString(rsp);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("数据库错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage());
return JSON.toJSONString(rsp);
}
}
/**
* 无密码登录
* @param user 用户
* @return 结果
*/
@PostMapping("/loginWithoutAuth")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public String loginWithoutAuth(@RequestBody User user) {
logger.info("WMS前端用户登录登录账户名{}", user.getLoginAccount());
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
// 查找对应用户的信息
User userForQuery = new User();
userForQuery.setLoginAccount(user.getLoginAccount());
List<User> waitForAuthUsers = userService.selectUsers(userForQuery);
if (waitForAuthUsers.size() < 1) {
// 返回错误
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("用户不存在");
return JSON.toJSONString(rsp);
}
User currentUser = waitForAuthUsers.get(0);
// 返回成功
logger.info("登录成功,登录账户名:{}", currentUser.getLoginAccount());
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("登录成功");
// 返回用户数据
rsp.setReturnData(generateUserInfo(currentUser));
return JSON.toJSONString(rsp);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("数据库错误:{}", e.getMessage());
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("数据库错误");
return JSON.toJSONString(rsp);
}
}
/**
* 构造用户信息菜单按钮等权限
* @param currentUser 当前用户
* @return 用户信息
*/
private UserConfigEntity generateUserInfo (User currentUser) {
UserConfigEntity userConfigEntity = new UserConfigEntity();
try {
List<Menu> menus = menuService.selMenuByRoleId(currentUser.getRoleId());
List<MenuEntity> menuList = new LinkedList<>();
// 查找一级菜单
for (Menu firstMenu : menus) {
if (WmsConstants.ROOT_MENU_ID.equals(firstMenu.getParentId())) {// 查找到所有的一级子菜单
MenuEntity tempFirstMenu = new MenuEntity();
tempFirstMenu.setId(firstMenu.getMenuId());// ID
tempFirstMenu.setLabelName(firstMenu.getLabelName());// 菜单显示名称
tempFirstMenu.setIconValue(firstMenu.getIconValue());// 图标
tempFirstMenu.setPath(firstMenu.getPath());// 路径
// 设置子菜单
List<MenuEntity> tempFirstMenuChildren = new LinkedList<>();
for (Menu secondMenu : menus) {
if (firstMenu.getMenuId().equals(secondMenu.getParentId())) {
MenuEntity tempSecondMenu = new MenuEntity();
tempSecondMenu.setId(secondMenu.getMenuId());// ID
tempSecondMenu.setLabelName(secondMenu.getLabelName());// 菜单显示名称
tempSecondMenu.setIconValue(secondMenu.getIconValue());// 图标
tempSecondMenu.setPath(secondMenu.getPath());// 路径
// 设置子菜单
List<MenuEntity> tempSecondMenuChildren = new LinkedList<>();
for (Menu thirdMenu : menus) {
if (secondMenu.getMenuId().equals(thirdMenu.getParentId())) {
MenuEntity tempThirdMenu = new MenuEntity();
tempSecondMenu.setId(thirdMenu.getMenuId());// ID
tempSecondMenu.setLabelName(thirdMenu.getLabelName());// 菜单显示名称
tempSecondMenu.setIconValue(thirdMenu.getIconValue());// 图标
tempSecondMenu.setPath(thirdMenu.getPath());// 路径
// 添加按钮
tempSecondMenuChildren.add(tempThirdMenu);
}
}
tempSecondMenu.setChildren(tempSecondMenuChildren);
// 添加二级菜单
tempFirstMenuChildren.add(tempSecondMenu);
}
}
tempFirstMenu.setChildren(tempFirstMenuChildren);
// 添加一级菜单
menuList.add(tempFirstMenu);
}
}
logger.info("构造用户信息成功,当前用户:{}", currentUser.toLoggerString());
// 设置返回信息
userConfigEntity.setUser(currentUser);
userConfigEntity.setMenuList(menuList);
} catch (Exception e) {
logger.error("构造用户信息失败,当前用户:{}", currentUser.toLoggerString());
}
return userConfigEntity;
}
}

View File

@ -0,0 +1,17 @@
package com.wms.controller.parent;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* mes 交互使用的 controller
* @author icewint
*/
@Controller
@CrossOrigin
@RequestMapping(value = "/wms/mes")
public class MesController {
}

View File

@ -0,0 +1,9 @@
package com.wms.entity;
import com.alibaba.fastjson2.JSON;
public class BaseEntity {
public String toLoggerString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,139 @@
package com.wms.entity.app;
/**
* 完成当前载具拣货任务实体类
*/
public class FinishPickTaskRequest {
/**
* 任务id
*/
private String taskId;
/**
* 卡特任务id
*/
private String kateTaskId;
/**
* 料盒号
*/
private String boxNo;
/**
* 零件号
*/
private String partNo;
/**
* 需求/分配数量
*/
private Integer needNum;
/**
* 实际库存
*/
private Integer realNum;
/**
* 实际拣货数量
*/
private Integer realPickNum;
/**
* 载具号
*/
private String vehicleNo;
/**
* 出库数量
*/
private Integer goodsNum;
/**
* 重量
*/
private Double weight;
/**
* 拣选数量
*/
private Integer pickNum;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getKateTaskId() {
return kateTaskId;
}
public void setKateTaskId(String kateTaskId) {
this.kateTaskId = kateTaskId;
}
public String getBoxNo() {
return boxNo;
}
public void setBoxNo(String boxNo) {
this.boxNo = boxNo;
}
public String getPartNo() {
return partNo;
}
public void setPartNo(String partNo) {
this.partNo = partNo;
}
public Integer getNeedNum() {
return needNum;
}
public void setNeedNum(Integer needNum) {
this.needNum = needNum;
}
public Integer getRealNum() {
return realNum;
}
public void setRealNum(Integer realNum) {
this.realNum = realNum;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public Integer getRealPickNum() {
return realPickNum;
}
public void setRealPickNum(Integer realPickNum) {
this.realPickNum = realPickNum;
}
public Integer getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(Integer goodsNum) {
this.goodsNum = goodsNum;
}
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public Integer getPickNum() {
return pickNum;
}
public void setPickNum(Integer pickNum) {
this.pickNum = pickNum;
}
}

View File

@ -0,0 +1,31 @@
package com.wms.entity.app;
/**
* 完成当前载具的当次拣货任务
*/
public class FinishVehicleAndPartRequest {
/**
* wms任务号
*/
private String wmsTaskId;
/**
* 实际拣货数量
*/
private Integer realPickNum;
public String getWmsTaskId() {
return wmsTaskId;
}
public void setWmsTaskId(String wmsTaskId) {
this.wmsTaskId = wmsTaskId;
}
public Integer getRealPickNum() {
return realPickNum;
}
public void setRealPickNum(Integer realPickNum) {
this.realPickNum = realPickNum;
}
}

View File

@ -0,0 +1,57 @@
package com.wms.entity.app;
import com.wms.entity.BaseEntity;
/**
* 盘点任务信息
*/
public class InventoryTask extends BaseEntity {
/**
* 零件号
*/
private String goodsId;
/**
* 料箱号
*/
private String vehicleId;
/**
* 库区id
*/
private String areaId;
/**
* 用户
*/
private String userName;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

View File

@ -0,0 +1,36 @@
package com.wms.entity.app;
import com.wms.entity.table.Location;
import java.util.List;
/**
* 按层划分的库位实体类
*/
public class LayerLocation {
/**
* 当前层
*/
private Integer layer;
/**
* 当前层的所有库位
*/
private List<Location> currentColLocations;
public Integer getLayer() {
return layer;
}
public void setLayer(Integer layer) {
this.layer = layer;
}
public List<Location> getCurrentColLocations() {
return currentColLocations;
}
public void setCurrentColLocations(List<Location> currentColLocations) {
this.currentColLocations = currentColLocations;
}
}

View File

@ -0,0 +1,70 @@
package com.wms.entity.app;
import java.util.List;
public class MenuEntity {
/**
* 菜单Id
*/
private String id;
/**
* 菜单名称
*/
private String labelName;
/**
* 图标值
*/
private String iconValue;
/**
* 地址
*/
private String path;
/**
* 子菜单
*/
private List<MenuEntity> children;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLabelName() {
return labelName;
}
public void setLabelName(String labelName) {
this.labelName = labelName;
}
public String getIconValue() {
return iconValue;
}
public void setIconValue(String iconValue) {
this.iconValue = iconValue;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public List<MenuEntity> getChildren() {
return children;
}
public void setChildren(List<MenuEntity> children) {
this.children = children;
}
}

View File

@ -0,0 +1,48 @@
package com.wms.entity.app;
import com.wms.entity.BaseEntity;
/**
* 接口响应实体类
*/
public class ResponseEntity extends BaseEntity {
/**
* 响应代码
*/
private Integer code;
/**
* 错误信息
*/
private String message;
/**
* 返回数据非必须
*/
private Object returnData;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Object getReturnData() {
return returnData;
}
public void setReturnData(Object returnData) {
this.returnData = returnData;
}
}

View File

@ -0,0 +1,34 @@
package com.wms.entity.app;
import java.util.List;
/**
*
*/
public class RowLocation {
/**
* 当前排
*/
private Integer row;
/**
* 当前排的所有库位
*/
private List<LayerLocation> currentLayerLocations;
public Integer getRow() {
return row;
}
public void setRow(Integer row) {
this.row = row;
}
public List<LayerLocation> getCurrentLayerLocations() {
return currentLayerLocations;
}
public void setCurrentLayerLocations(List<LayerLocation> currentLayerLocations) {
this.currentLayerLocations = currentLayerLocations;
}
}

View File

@ -0,0 +1,166 @@
package com.wms.entity.app;
import com.wms.entity.BaseEntity;
import java.util.Date;
/**
* WMS接收入库任务的接口实体类
*/
public class TaskInRequestEntity extends BaseEntity {
/**
* 物料编号
*/
private String goodsId;
/**
* 批次号
*/
private String batchNo;
/**
* 入库数量
*/
private Integer goodsNum;
/**
* 入库日期/生产日期
*/
private Date productionDate;
/**
* 托盘号
*/
private String vehicleNo;
/**
* 尺寸
*/
private Integer vehicleSize;
/**
* 重量
*/
private Double weight;
/**
* 起始位置
*/
private String origin;
/**
* 目标位置
*/
private String destination;
/**
* 入库库位类型是否为虚拟库位 0虚拟库位1真实库位
*/
private String isVirtual;
/**
* 是否空箱入库 0空箱入库1带料入库
*/
private String isEmpty;
/**
* 用户
*/
private String userName;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getBatchNo() {
return batchNo;
}
public void setBatchNo(String batchNo) {
this.batchNo = batchNo;
}
public Integer getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(Integer goodsNum) {
this.goodsNum = goodsNum;
}
public Date getProductionDate() {
return productionDate;
}
public void setProductionDate(Date productionDate) {
this.productionDate = productionDate;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public Integer getVehicleSize() {
return vehicleSize;
}
public void setVehicleSize(Integer vehicleSize) {
this.vehicleSize = vehicleSize;
}
public String getIsVirtual() {
return isVirtual;
}
public void setIsVirtual(String isVirtual) {
this.isVirtual = isVirtual;
}
public String getIsEmpty() {
return isEmpty;
}
public void setIsEmpty(String isEmpty) {
this.isEmpty = isEmpty;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

View File

@ -0,0 +1,57 @@
package com.wms.entity.app;
import com.wms.entity.BaseEntity;
/**
* 前台向后台发送出库请求实体类
*/
public class TaskOutRequestEntity extends BaseEntity {
/**
* 物料编号
*/
private String goodsId;
/**
* 需求数量
*/
private Integer needNum;
/**
* 载具编号
*/
private String vehicleNo;
/**
* 用户名称
*/
private String userName;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public Integer getNeedNum() {
return needNum;
}
public void setNeedNum(Integer needNum) {
this.needNum = needNum;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

View File

@ -0,0 +1,34 @@
package com.wms.entity.app;
import com.wms.entity.table.User;
import com.wms.entity.BaseEntity;
import java.util.List;
public class UserConfigEntity extends BaseEntity {
/**
* 用户认证信息
*/
private User user;
/**
* 菜单及各种按钮信息
*/
private List<MenuEntity> menuList;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<MenuEntity> getMenuList() {
return menuList;
}
public void setMenuList(List<MenuEntity> menuList) {
this.menuList = menuList;
}
}

View File

@ -0,0 +1,55 @@
package com.wms.entity.app.display;
/**
* 大屏用数据详细类
*/
public class LocationData {
/**
* 零件号
*/
private String goodsId;
/**
* 零件名称
*/
private String goodsName;
/**
* 数量
*/
private Integer goodsNum;
/**
* 备注
*/
private String remark;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public Integer getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(Integer goodsNum) {
this.goodsNum = goodsNum;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,45 @@
package com.wms.entity.app.display;
import java.util.List;
/**
* 大屏用库位信息
*/
public class LocationInfo {
/**
* 库位编号
*/
private String locationId;
/**
* 料箱号
*/
private String vehicleNo;
/**
* 详细数据
*/
private List<LocationData> locationData;
public String getLocationId() {
return locationId;
}
public void setLocationId(String locationId) {
this.locationId = locationId;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public List<LocationData> getLocationData() {
return locationData;
}
public void setLocationData(List<LocationData> locationData) {
this.locationData = locationData;
}
}

View File

@ -0,0 +1,40 @@
package com.wms.entity.app.wcs;
public class DisposeStandRequest {
/**
* 站台
*/
private String pickStand;
/**
* 载具号
*/
private String vehicleNo;
/**
* 状态
*/
private Integer status;
public String getPickStand() {
return pickStand;
}
public void setPickStand(String pickStand) {
this.pickStand = pickStand;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}

View File

@ -0,0 +1,45 @@
package com.wms.entity.app.wcs;
import java.util.List;
/**
* WCS上报箱子到达接口请求
*/
public class PickTaskRequest {
/**
* 载具号
*/
private String vehicleNo;
/**
* 拣选站台
*/
private List<String> pickStand;
/**
* 备注
*/
private String remark;
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public List<String> getPickStand() {
return pickStand;
}
public void setPickStand(List<String> pickStand) {
this.pickStand = pickStand;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,40 @@
package com.wms.entity.app.wcs;
public class PickTaskResponse {
/**
* 载具号
*/
private String vehicleNo;
/**
* 拣选站台
*/
private String pickStand;
/**
* 备注
*/
private String remark;
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public String getPickStand() {
return pickStand;
}
public void setPickStand(String pickStand) {
this.pickStand = pickStand;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,55 @@
package com.wms.entity.app.wcs;
/**
* WCS请求载具入库 实体类
*/
public class RequireInRequest {
/**
* 点位
*/
private String point;
/**
* 载具编号
*/
private String vehicleNo;
/**
* 条码信息
*/
private String codeMessage;
/**
* 备注
*/
private String remark;
public String getPoint() {
return point;
}
public void setPoint(String point) {
this.point = point;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public String getCodeMessage() {
return codeMessage;
}
public void setCodeMessage(String codeMessage) {
this.codeMessage = codeMessage;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,83 @@
package com.wms.entity.app.wcs;
import com.wms.entity.BaseEntity;
import java.math.BigDecimal;
/**
* wcs需要的物料信息
*/
public class WcsGoods extends BaseEntity {
/**
* 物品编号
*/
private String goodsId;
/**
* 物品名称
*/
private String goodsName;
/**
* 物品批次
*/
private String batch;
/**
* 物品条码
*/
private String goodsCode;
/**
* 物品单位
*/
private String unit;
/**
* 物品数量
*/
private BigDecimal goodsNum;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getBatch() {
return batch;
}
public void setBatch(String batch) {
this.batch = batch;
}
public String getGoodsCode() {
return goodsCode;
}
public void setGoodsCode(String goodsCode) {
this.goodsCode = goodsCode;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public BigDecimal getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(BigDecimal goodsNum) {
this.goodsNum = goodsNum;
}
}

View File

@ -0,0 +1,152 @@
package com.wms.entity.app.wcs;
import com.wms.entity.BaseEntity;
/**
* WMS向WCS发送任务请求的实体类
*/
public class WcsTask extends BaseEntity {
/**
* 任务编号
*/
private String taskId;
/**
* 任务类型
*/
private Integer taskType;
/**
* 优先级
*/
private Integer priority;
/**
* 任务状态
*/
private Integer taskStatus;
/**
* 起点
*/
private String origin;
/**
* 任务中间点
*/
private String midPoint;
/**
* 终点
*/
private String destination;
/**
* 载具编号
*/
private String vehicleNo;
/**
* 载具尺寸
*/
private Integer vehicleSize;
/**
* 重量
*/
private Double weight;
/**
* 信息---一般填异常信息
*/
private String message;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public Integer getTaskType() {
return taskType;
}
public void setTaskType(Integer taskType) {
this.taskType = taskType;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getMidPoint() {
return midPoint;
}
public void setMidPoint(String midPoint) {
this.midPoint = midPoint;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public Integer getVehicleSize() {
return vehicleSize;
}
public void setVehicleSize(Integer vehicleSize) {
this.vehicleSize = vehicleSize;
}
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

View File

@ -0,0 +1,102 @@
package com.wms.entity.app.wcs;
import com.wms.entity.BaseEntity;
import java.math.BigDecimal;
/**
* WCS向WMS发送容器信息的实体类
*/
public class WcsToWmsInspectVesselEntity extends BaseEntity {
/**
* 请求时间
*/
private String requestTime;
/**
* 任务类型
*/
private Integer taskType;
/**
* 载具编号
*/
private String vehicleNo;
/**
* 设备编号
*/
private Integer equipmentId;
/**
* 地点
*/
private String place;
/**
* 尺寸
*/
private Integer size;
/**
* 重量
*/
private BigDecimal weight;
public String getRequestTime() {
return requestTime;
}
public void setRequestTime(String requestTime) {
this.requestTime = requestTime;
}
public Integer getTaskType() {
return taskType;
}
public void setTaskType(Integer taskType) {
this.taskType = taskType;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
public BigDecimal getWeight() {
return weight;
}
public void setWeight(BigDecimal weight) {
this.weight = weight;
}
public Integer getEquipmentId() {
return equipmentId;
}
public void setEquipmentId(Integer equipmentId) {
this.equipmentId = equipmentId;
}
}

View File

@ -0,0 +1,70 @@
package com.wms.entity.app.wcs;
import com.wms.entity.BaseEntity;
/**
* WCS向WMS发送任务结果请求实体类
*/
public class WmsReceiveTaskResultEntity extends BaseEntity {
/**
* WMS任务编号
*/
private String taskId;
/**
* 任务状态
*/
private Integer taskStatus;
/**
* 任务终点
*/
private String destination;
/**
* 载具号/箱号
*/
private String vehicleNo;
/**
* 任务信息
*/
private String message;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

View File

@ -0,0 +1,67 @@
package com.wms.entity.page;
import com.wms.utils.StringUtils;
/**
* 分页请求
* 前端表格用
*/
public class PageDomain {
/**
* 当前记录起始索引
*/
private Integer pageNum;
/**
* 每页显示记录数
*/
private Integer pageSize;
/**
*排序列
*/
private String orderByColumn;
/**
* 排序方向
*/
private String isAsc = "asc";
public String getOrderBy()
{
if (StringUtils.isEmpty(orderByColumn))
{
return "";
}
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getOrderByColumn() {
return orderByColumn;
}
public void setOrderByColumn(String orderByColumn) {
this.orderByColumn = orderByColumn;
}
public String getIsAsc() {
return isAsc;
}
public void setIsAsc(String isAsc) {
this.isAsc = isAsc;
}
}

View File

@ -0,0 +1,43 @@
package com.wms.entity.page;
/**
* 前端请求表格数据
*/
public class TableRequest<T, T2> {
/**
* 分页请求数据
*/
private PageDomain page;
/**
* 参数
*/
private T param;
/**
* 参数2
*/
private T2 param2;
public PageDomain getPage() {
return page;
}
public void setPage(PageDomain page) {
this.page = page;
}
public T getParam() {
return param;
}
public void setParam(T param) {
this.param = param;
}
public T2 getParam2() {
return param2;
}
public void setParam2(T2 param2) {
this.param2 = param2;
}
}

View File

@ -0,0 +1,57 @@
package com.wms.entity.page;
import java.util.List;
/**
* 前端表格请求的返回值
*/
public class TableResponse {
/**
* 总记录数
*/
private long total;
/**
* 列表数据
*/
private List<?> rows;
/**
* 状态码
*/
private int code;
/**
* 消息
*/
private String message;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

View File

@ -0,0 +1,73 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
/**
* 配置
*/
public class Config extends BaseEntity {
/**
* 配置ID
*/
private Integer configId;
/**
* 配置键
*/
private String configKey;
/**
* 配置值
*/
private String configValue;
/**
* 配置展示类型
*/
private String configType;
/**
* 配置名称
*/
private String configName;
public Integer getConfigId() {
return configId;
}
public void setConfigId(Integer configId) {
this.configId = configId;
}
public String getConfigKey() {
return configKey;
}
public void setConfigKey(String configKey) {
this.configKey = configKey;
}
public String getConfigValue() {
return configValue;
}
public void setConfigValue(String configValue) {
this.configValue = configValue;
}
public String getConfigType() {
return configType;
}
public void setConfigType(String configType) {
this.configType = configType;
}
public String getConfigName() {
return configName;
}
public void setConfigName(String configName) {
this.configName = configName;
}
}

View File

@ -0,0 +1,149 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
import java.util.Date;
/**
* 物料
*/
public class Goods extends BaseEntity {
/**
* 物料编号
*/
private String goodsId;
/**
* 物料名称
*/
private String goodsName;
/**
* 单位
*/
private String goodsUnit;
/**
* 物料ID
*/
private String itemId;
/**
* 用户物料类型
*/
private String itemType;
/**
* 库存类别
*/
private String invCategory;
/**
* 存储天数
*/
private Integer lifeDays;
/**
* 库存组织Id
*/
private String organizationId;
/**
* 库存组织代码
*/
private String organizationCode;
/**
* 最后更新日期
*/
private Date lastUpdateTime;
/**
* 最后更新用户
*/
private String lastUpdateUser;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsUnit() {
return goodsUnit;
}
public void setGoodsUnit(String goodsUnit) {
this.goodsUnit = goodsUnit;
}
public String getItemId() {
return itemId;
}
public void setItemId(String itemId) {
this.itemId = itemId;
}
public String getItemType() {
return itemType;
}
public void setItemType(String itemType) {
this.itemType = itemType;
}
public String getInvCategory() {
return invCategory;
}
public void setInvCategory(String invCategory) {
this.invCategory = invCategory;
}
public Integer getLifeDays() {
return lifeDays;
}
public void setLifeDays(Integer lifeDays) {
this.lifeDays = lifeDays;
}
public String getOrganizationId() {
return organizationId;
}
public void setOrganizationId(String organizationId) {
this.organizationId = organizationId;
}
public String getOrganizationCode() {
return organizationCode;
}
public void setOrganizationCode(String organizationCode) {
this.organizationCode = organizationCode;
}
public Date getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
public String getLastUpdateUser() {
return lastUpdateUser;
}
public void setLastUpdateUser(String lastUpdateUser) {
this.lastUpdateUser = lastUpdateUser;
}
}

View File

@ -0,0 +1,175 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
/**
* 库位
*/
public class Location extends BaseEntity {
/**
* 库位编号
*/
private String locationId;
/**
* 库区编号
*/
private Integer areaId;
/**
* 巷道编号
*/
private Integer tunnelId;
/**
* 设备编号
*/
private Integer equipmentId;
/**
* 库位类型
*/
private Integer locationType;
/**
*
*/
private Integer queue;
/**
*
*/
private Integer line;
/**
*
*/
private Integer layer;
/**
* 深度
*/
private Integer depth;
/**
* 是否锁定
*/
private Integer isLock;
/**
* 库位状态
*/
private Integer locationStatus;
/**
* 载具编号
*/
private String vehicleId;
public Location() {
}
public Location(String locationId) {
this.locationId = locationId;
}
public Location(Integer equipmentId) {
this.equipmentId = equipmentId;
}
public String getLocationId() {
return locationId;
}
public void setLocationId(String locationId) {
this.locationId = locationId;
}
public Integer getEquipmentId() {
return equipmentId;
}
public void setEquipmentId(Integer equipmentId) {
this.equipmentId = equipmentId;
}
public Integer getAreaId() {
return areaId;
}
public void setAreaId(Integer areaId) {
this.areaId = areaId;
}
public Integer getQueue() {
return queue;
}
public void setQueue(Integer queue) {
this.queue = queue;
}
public Integer getLine() {
return line;
}
public void setLine(Integer line) {
this.line = line;
}
public Integer getLayer() {
return layer;
}
public void setLayer(Integer layer) {
this.layer = layer;
}
public Integer getDepth() {
return depth;
}
public void setDepth(Integer depth) {
this.depth = depth;
}
public Integer getIsLock() {
return isLock;
}
public void setIsLock(Integer isLock) {
this.isLock = isLock;
}
public Integer getLocationStatus() {
return locationStatus;
}
public void setLocationStatus(Integer locationStatus) {
this.locationStatus = locationStatus;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
public Integer getTunnelId() {
return tunnelId;
}
public void setTunnelId(Integer tunnelId) {
this.tunnelId = tunnelId;
}
public Integer getLocationType() {
return locationType;
}
public void setLocationType(Integer locationType) {
this.locationType = locationType;
}
}

View File

@ -0,0 +1,73 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
/**
* 菜单
*/
public class Menu extends BaseEntity {
/**
* 菜单Id
*/
private String menuId;
/**
* 菜单名称
*/
private String labelName;
/**
* 图标值
*/
private String iconValue;
/**
* 地址
*/
private String path;
/**
* 父菜单Id
*/
private String parentId;
public String getMenuId() {
return menuId;
}
public void setMenuId(String menuId) {
this.menuId = menuId;
}
public String getLabelName() {
return labelName;
}
public void setLabelName(String labelName) {
this.labelName = labelName;
}
public String getIconValue() {
return iconValue;
}
public void setIconValue(String iconValue) {
this.iconValue = iconValue;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
}

View File

@ -0,0 +1,212 @@
package com.wms.entity.table;
import com.wms.utils.excel.ExcelExport;
import com.wms.utils.excel.ExcelImport;
/**
* 零件数据
*/
public class PartInfo {
@ExcelImport("Material")
@ExcelExport("零件号")
private String material;
@ExcelImport("Desc")
@ExcelExport("描述")
private String itemDesc;
@ExcelImport("Category")
@ExcelExport("零件类型")
private String category;
@ExcelImport("CategoryRemark")
@ExcelExport("策略")
private String categoryRemark;
@ExcelImport("Unload Place")
@ExcelExport("卸货点")
private String unloadPlace;
@ExcelImport("Kitting Point")
@ExcelExport("配料点")
private String kittingPoint;
@ExcelImport("Property")
@ExcelExport("可用性")
private String property;
@ExcelImport("Vendor ID")
@ExcelExport("供应商代码")
private String vendorId;
@ExcelImport("Data Owner")
@ExcelExport("数据负责人")
private String dataOwner;
@ExcelImport("Part Weight")
@ExcelExport("重量")
private Double partWeight;
@ExcelImport("Storage Location")
@ExcelExport("库位")
private String storageLocation;
@ExcelImport("Storage Type")
@ExcelExport("存储类型")
private String storageType;
@ExcelImport("Storage Bin")
@ExcelExport("BIN位")
private String storageBin;
@ExcelImport("Vendor Name")
@ExcelExport("供应商名称(英文)")
private String vendorNameEN;
@ExcelImport("供应商")
@ExcelExport("供应商名称(中文)")
private String vendorNameCN;
@ExcelImport("Vendor Country")
@ExcelExport("供应商国家/地区")
private String vendorCountry;
@ExcelImport("SLED")
@ExcelExport("SLED")
private String SLED;
@ExcelImport("UpdateDate")
@ExcelExport("更新时间")
private String updateDate;
public String getMaterial() {
return material;
}
public void setMaterial(String material) {
this.material = material;
}
public String getItemDesc() {
return itemDesc;
}
public void setItemDesc(String itemDesc) {
this.itemDesc = itemDesc;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getCategoryRemark() {
return categoryRemark;
}
public void setCategoryRemark(String categoryRemark) {
this.categoryRemark = categoryRemark;
}
public String getUnloadPlace() {
return unloadPlace;
}
public void setUnloadPlace(String unloadPlace) {
this.unloadPlace = unloadPlace;
}
public String getKittingPoint() {
return kittingPoint;
}
public void setKittingPoint(String kittingPoint) {
this.kittingPoint = kittingPoint;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getVendorId() {
return vendorId;
}
public void setVendorId(String vendorId) {
this.vendorId = vendorId;
}
public String getDataOwner() {
return dataOwner;
}
public void setDataOwner(String dataOwner) {
this.dataOwner = dataOwner;
}
public Double getPartWeight() {
return partWeight;
}
public void setPartWeight(Double partWeight) {
this.partWeight = partWeight;
}
public String getStorageLocation() {
return storageLocation;
}
public void setStorageLocation(String storageLocation) {
this.storageLocation = storageLocation;
}
public String getStorageType() {
return storageType;
}
public void setStorageType(String storageType) {
this.storageType = storageType;
}
public String getStorageBin() {
return storageBin;
}
public void setStorageBin(String storageBin) {
this.storageBin = storageBin;
}
public String getVendorNameEN() {
return vendorNameEN;
}
public void setVendorNameEN(String vendorNameEN) {
this.vendorNameEN = vendorNameEN;
}
public String getVendorCountry() {
return vendorCountry;
}
public void setVendorCountry(String vendorCountry) {
this.vendorCountry = vendorCountry;
}
public String getUpdateDate() {
return updateDate;
}
public void setUpdateDate(String updateDate) {
this.updateDate = updateDate;
}
public String getSLED() {
return SLED;
}
public void setSLED(String SLED) {
this.SLED = SLED;
}
public String getVendorNameCN() {
return vendorNameCN;
}
public void setVendorNameCN(String vendorNameCN) {
this.vendorNameCN = vendorNameCN;
}
}

View File

@ -0,0 +1,151 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
/**
* 站台表
*/
public class Stand extends BaseEntity {
/**
* 站台id
*/
private String standId;
/**
* 是否允许入库
*/
private Integer allowIn;
/**
* 是否允许出库
*/
private Integer allowOut;
/**
* 任务号
*/
private String taskId;
/**
* 站台是否锁定
*/
private Integer isLock;
/**
* 站台状态
*/
private Integer standStatus;
/**
* 设备编号
*/
private Integer equipmentId;
/**
* 库区编号
*/
private Integer areaId;
/**
* 站台类型
*/
private Integer standType;
/**
* 站台ip
*/
private String standIp;
public Stand() {
}
public Stand(Integer standType, String standIp, Integer standStatus) {
this.standType = standType;
this.standIp = standIp;
this.standStatus = standStatus;
}
public Stand(String standId, Integer allowIn, Integer allowOut, String taskId, Integer isLock, Integer standStatus, Integer equipmentId, Integer areaId, Integer standType) {
this.standId = standId;
this.allowIn = allowIn;
this.allowOut = allowOut;
this.taskId = taskId;
this.isLock = isLock;
this.standStatus = standStatus;
this.equipmentId = equipmentId;
this.areaId = areaId;
this.standType = standType;
}
public String getStandId() {
return standId;
}
public void setStandId(String standId) {
this.standId = standId;
}
public Integer getAllowIn() {
return allowIn;
}
public void setAllowIn(Integer allowIn) {
this.allowIn = allowIn;
}
public Integer getAllowOut() {
return allowOut;
}
public void setAllowOut(Integer allowOut) {
this.allowOut = allowOut;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public Integer getIsLock() {
return isLock;
}
public void setIsLock(Integer isLock) {
this.isLock = isLock;
}
public Integer getStandStatus() {
return standStatus;
}
public void setStandStatus(Integer standStatus) {
this.standStatus = standStatus;
}
public Integer getEquipmentId() {
return equipmentId;
}
public void setEquipmentId(Integer equipmentId) {
this.equipmentId = equipmentId;
}
public Integer getAreaId() {
return areaId;
}
public void setAreaId(Integer areaId) {
this.areaId = areaId;
}
public Integer getStandType() {
return standType;
}
public void setStandType(Integer standType) {
this.standType = standType;
}
public String getStandIp() {
return standIp;
}
public void setStandIp(String standIp) {
this.standIp = standIp;
}
}

View File

@ -0,0 +1,342 @@
package com.wms.entity.table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wms.entity.BaseEntity;
import com.wms.utils.excel.ExcelExport;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 库存
*/
public class Stock extends BaseEntity {
/**
* 库存编号
*/
@ExcelExport("库存编号")
private String stockId;
/**
* 库位ID
*/
@ExcelExport("库位")
private String locationId;
/**
* 托盘号
*/
@ExcelExport("箱号")
private String vehicleId;
/**
* 物料编号
*/
@ExcelExport("零件号")
private String goodsId;
/**
* 物料名称
*/
@ExcelExport("零件名称")
private String goodsName;
/**
* 批次号
*/
@ExcelExport("批次号")
private String batchNo;
/**
* 可用数量
*/
@ExcelExport("可用数量")
private Integer availableNum;
/**
* 剩余数量
*/
@ExcelExport("剩余数量")
private Integer remainNum;
/**
* 实际数量
*/
@ExcelExport("实际数量")
private Integer realNum;
/**
* 供应商编号
*/
@ExcelExport("供应商编号")
private String providerId;
/**
* 供应商名称
*/
@ExcelExport("供应商名称")
private String providerName;
/**
* 生产日期
*/
@ExcelExport("生产日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date productionDate;
/**
* 过期日期
*/
@ExcelExport("过期日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expirationDate;
/**
* 库存状态
* 正常出库中锁定
*/
@ExcelExport("库存状态")
private Integer stockStatus;
/**
* 物料状态
* 合格不合格报废延期
*/
@ExcelExport("零件状态")
private Integer goodsStatus;
/**
* 创建时间
*/
@ExcelExport("入库时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 最后更新时间
*/
@ExcelExport("最后更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastUpdateTime;
/**
* 最后更新用户
*/
@ExcelExport("上架人")
private String lastUpdateUser;
/**
* 备注
*/
@ExcelExport("备注")
private String remark;
/**
* 是否盘点
*/
@ExcelExport("是否盘点")
private Integer isInventory;
/**
* 盘点任务号 盘点出库和盘点入库同样
*/
@ExcelExport("盘点任务号")
private String inventoryTaskId;
/**
* 当前位置
*/
@ExcelExport("当前位置")
private String currentLocation;
/**
* 保质期
*/
@ExcelExport("保质期")
private Double shelfLife;
public Stock() {
}
public Stock(String vehicleId) {
this.vehicleId = vehicleId;
}
public String getStockId() {
return stockId;
}
public void setStockId(String stockId) {
this.stockId = stockId;
}
public String getLocationId() {
return locationId;
}
public void setLocationId(String locationId) {
this.locationId = locationId;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getBatchNo() {
return batchNo;
}
public void setBatchNo(String batchNo) {
this.batchNo = batchNo;
}
public Integer getRemainNum() {
return remainNum;
}
public void setRemainNum(Integer remainNum) {
this.remainNum = remainNum;
}
public Integer getAvailableNum() {
return availableNum;
}
public void setAvailableNum(Integer availableNum) {
this.availableNum = availableNum;
}
public Integer getRealNum() {
return realNum;
}
public void setRealNum(Integer realNum) {
this.realNum = realNum;
}
public String getProviderId() {
return providerId;
}
public void setProviderId(String providerId) {
this.providerId = providerId;
}
public String getProviderName() {
return providerName;
}
public void setProviderName(String providerName) {
this.providerName = providerName;
}
public Date getProductionDate() {
return productionDate;
}
public void setProductionDate(Date productionDate) {
this.productionDate = productionDate;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
public Integer getStockStatus() {
return stockStatus;
}
public void setStockStatus(Integer stockStatus) {
this.stockStatus = stockStatus;
}
public Integer getGoodsStatus() {
return goodsStatus;
}
public void setGoodsStatus(Integer goodsStatus) {
this.goodsStatus = goodsStatus;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
public String getLastUpdateUser() {
return lastUpdateUser;
}
public void setLastUpdateUser(String lastUpdateUser) {
this.lastUpdateUser = lastUpdateUser;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Integer getIsInventory() {
return isInventory;
}
public void setIsInventory(Integer isInventory) {
this.isInventory = isInventory;
}
public String getInventoryTaskId() {
return inventoryTaskId;
}
public void setInventoryTaskId(String inventoryTaskId) {
this.inventoryTaskId = inventoryTaskId;
}
public String getCurrentLocation() {
return currentLocation;
}
public void setCurrentLocation(String currentLocation) {
this.currentLocation = currentLocation;
}
public Double getShelfLife() {
return shelfLife;
}
public void setShelfLife(Double shelfLife) {
this.shelfLife = shelfLife;
}
}

View File

@ -0,0 +1,345 @@
package com.wms.entity.table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wms.entity.BaseEntity;
import com.wms.utils.excel.ExcelExport;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 任务
*/
public class Task extends BaseEntity {
/**
* 物料编号
*/
@ExcelExport("零件号")
private String goodsId;
/**
* 任务编号
*/
@ExcelExport("箱号")
private String taskId;
/**
* 物料名称
*/
@ExcelExport("零件名称")
private String goodsName;
/**
* 任务类型
*/
@ExcelExport("任务类型")
private Integer taskType;
/**
* 任务组
*/
@ExcelExport("任务组")
private String taskGroup;
/**
* 起点
*/
@ExcelExport("起点")
private String origin;
/**
* 终点
*/
@ExcelExport("终点")
private String destination;
/**
* 拣选站台
*/
@ExcelExport("拣选站台")
private String pickStand;
/**
* 重量
*/
@ExcelExport("重量")
private Double weight;
/**
* 生产日期
*/
@ExcelExport("生产日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date productionDate;
/**
* 过期日期
*/
@ExcelExport("有效日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date expirationDate;
/**
* 本次操作数量
*/
@ExcelExport("操作数量")
private Integer operateNum;
/**
* 库存总数量
*/
@ExcelExport("库存数量")
private Integer totalNum;
/**
* 任务优先级
*/
@ExcelExport("任务优先级")
private Integer taskPriority;
/**
* 卡特任务的id
*/
@ExcelExport("配件任务号")
private String kateTaskId;
/**
* 操作人员姓名
*/
@ExcelExport("操作人员姓名")
private String userName;
/**
* 创建时间
*/
@ExcelExport("创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 完成时间
*/
@ExcelExport("任务完成时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date finishTime;
/**
* 任务状态
*/
@ExcelExport("任务状态")
private Integer taskStatus;
/**
* 载具编号
*/
private String vehicleNo;
/**
* 尺寸
*/
private Integer vehicleSize;
/**
* 电子标签库位
*/
private String etagLocation;
/**
* 备用字段
* 1. 原包装出库的货架号
*/
private String remark1;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public Integer getTaskType() {
return taskType;
}
public void setTaskType(Integer taskType) {
this.taskType = taskType;
}
public Integer getTaskStatus() {
return taskStatus;
}
public void setTaskStatus(Integer taskStatus) {
this.taskStatus = taskStatus;
}
public String getTaskGroup() {
return taskGroup;
}
public void setTaskGroup(String taskGroup) {
this.taskGroup = taskGroup;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getPickStand() {
return pickStand;
}
public void setPickStand(String pickStand) {
this.pickStand = pickStand;
}
public Double getWeight() {
return weight;
}
public void setWeight(Double weight) {
this.weight = weight;
}
public String getVehicleNo() {
return vehicleNo;
}
public void setVehicleNo(String vehicleNo) {
this.vehicleNo = vehicleNo;
}
public Integer getVehicleSize() {
return vehicleSize;
}
public void setVehicleSize(Integer vehicleSize) {
this.vehicleSize = vehicleSize;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public Date getProductionDate() {
return productionDate;
}
public void setProductionDate(Date productionDate) {
this.productionDate = productionDate;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
public Integer getOperateNum() {
return operateNum;
}
public void setOperateNum(Integer operateNum) {
this.operateNum = operateNum;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public String getEtagLocation() {
return etagLocation;
}
public void setEtagLocation(String etagLocation) {
this.etagLocation = etagLocation;
}
public Integer getTaskPriority() {
return taskPriority;
}
public void setTaskPriority(Integer taskPriority) {
this.taskPriority = taskPriority;
}
public String getKateTaskId() {
return kateTaskId;
}
public void setKateTaskId(String kateTaskId) {
this.kateTaskId = kateTaskId;
}
public Date getFinishTime() {
return finishTime;
}
public void setFinishTime(Date finishTime) {
this.finishTime = finishTime;
}
public String getRemark1() {
return remark1;
}
public void setRemark1(String remark1) {
this.remark1 = remark1;
}
}

View File

@ -0,0 +1,101 @@
package com.wms.entity.table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wms.entity.BaseEntity;
import java.util.Date;
/**
* 用户
*/
public class User extends BaseEntity {
/** 用户ID */
private Integer userId;
/** 用户名 */
private String userName;
/** 角色Id */
private Integer roleId = null;
/** 登录账户 */
private String loginAccount;
/** 登录密码 */
private String loginPassword;
/** 添加时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date addTime;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 添加用户名 */
private String addUser;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public String getLoginAccount() {
return loginAccount;
}
public void setLoginAccount(String loginAccount) {
this.loginAccount = loginAccount;
}
public String getLoginPassword() {
return loginPassword;
}
public void setLoginPassword(String loginPassword) {
this.loginPassword = loginPassword;
}
public Date getAddTime() {
return addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getAddUser() {
return addUser;
}
public void setAddUser(String addUser) {
this.addUser = addUser;
}
}

View File

@ -0,0 +1,65 @@
package com.wms.entity.table;
import com.wms.entity.BaseEntity;
/**
* 载具
*/
public class Vehicle extends BaseEntity {
/**
* 载具编号
*/
private String vehicleId;
/**
* 当前所在位置
*/
private String currentLocation;
/**
* 载具状态
*/
private Integer vehicleStatus;
/**
* 是否是空箱
*/
private Integer isEmpty;
public Vehicle() {
}
public Vehicle(String vehicleId) {
this.vehicleId = vehicleId;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
public String getCurrentLocation() {
return currentLocation;
}
public void setCurrentLocation(String currentLocation) {
this.currentLocation = currentLocation;
}
public Integer getVehicleStatus() {
return vehicleStatus;
}
public void setVehicleStatus(Integer vehicleStatus) {
this.vehicleStatus = vehicleStatus;
}
public Integer getIsEmpty() {
return isEmpty;
}
public void setIsEmpty(Integer isEmpty) {
this.isEmpty = isEmpty;
}
}

View File

@ -0,0 +1,36 @@
package com.wms.entity.test;
import com.wms.utils.excel.ExcelExport;
import com.wms.utils.excel.ExcelImport;
public class ExcelTest {
@ExcelImport("库位")
@ExcelExport("库位")
private String locationId;
@ExcelImport("箱号")
@ExcelExport("箱号")
private String vehicleId;
public ExcelTest(){};
public ExcelTest(String locationId, String vehicleId) {
this.locationId = locationId;
this.vehicleId = vehicleId;
}
public String getLocationId() {
return locationId;
}
public void setLocationId(String locationId) {
this.locationId = locationId;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
}

View File

@ -0,0 +1,26 @@
package com.wms.mapper;
import com.wms.entity.table.Config;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 配置
*/
@Mapper
public interface ConfigMapper {
/**
* 通过键查询配置值configKey为null或者空时查询所有的键值
* @param configKey 键值
* @return 结果
*/
List<Config> selectConfigs(String configKey);
/**
* 更新系统配置信息
* @param config 配置
* @return 结果
*/
int updateConfig(Config config);
}

View File

@ -0,0 +1,45 @@
package com.wms.mapper;
import com.wms.entity.table.Goods;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface GoodsMapper {
/**
* 查询物料信息
* @param goods
* @return
*/
List<Goods> selGoods(Goods goods);
/**
* 根据物料id查询物料信息
* @param goodsId
* @return
*/
Goods selGoodsByGoodsId(String goodsId);
/**
* 添加物料信息
* @param goods
* @return
*/
int addGoods(Goods goods);
/**
* 修改物料信息
* @param goods
* @return
*/
int modifyGoods(Goods goods);
/**
* 删除物料信息
* @param goodsId
* @return
*/
int deleteGoods(String goodsId);
}

View File

@ -0,0 +1,38 @@
package com.wms.mapper;
import com.wms.entity.table.Location;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface LocationMapper {
/**
* 查询库位列表
* @param location
* @return
*/
List<Location> selLocations(Location location);
/**
* 查找下一个可用库位
* @param location 具体信息
* @return 结果
*/
List<Location> selNextLocation(Location location);
/**
* 添加一个新库位
* @param location 库位信息
* @return 添加结果
*/
int addLocation(Location location);
/**
* 修改库位信息
* @param location
* @return
*/
int modifyLocation(Location location);
}

Some files were not shown because too many files have changed in this diff Show More