From 4b8bc03343068c7893f343b61928b6dd941721a4 Mon Sep 17 00:00:00 2001 From: zgw <13623675548@163.com> Date: Thu, 25 Jun 2026 17:42:39 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BF=9D=E5=AD=98=E7=9B=98=E7=82=B9?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=89=8D=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handoff.md | 48 ++ pda/api/warehouse/inbound.js | 6 +- pda/api/warehouse/outbound.js | 29 +- pda/api/warehouse/stock.js | 10 + pda/pages.json | 13 +- pda/pages/index.vue | 30 +- pda/pages/login.vue | 23 +- pda/pages/mine/about/index.vue | 20 +- pda/pages/warehouse/inbound/bindTray.vue | 48 +- pda/pages/warehouse/inbound/emptyTray.vue | 298 +++++++++++ pda/pages/warehouse/inbound/index.vue | 18 +- pda/pages/warehouse/inbound/supply.vue | 318 ------------ pda/pages/warehouse/inventory/index.vue | 176 ++++--- pda/pages/warehouse/outbound/confirm.vue | 189 +++++-- pda/pages/warehouse/outbound/emptyTray.vue | 416 +++++++++++++++ pda/pages/warehouse/outbound/exception.vue | 411 --------------- pda/pages/warehouse/outbound/index.vue | 26 +- pda/pages/warehouse/stock/index.vue | 429 +++++++++++----- pda/static/logo.png | Bin 3616 -> 22968 bytes pda/static/logo200.png | Bin 7995 -> 22968 bytes .../com/ruoyi/api/aspect/ApiLogAspect.java | 41 +- .../java/com/ruoyi/api/client/WcsClient.java | 43 +- .../com/ruoyi/api/config/ExternalProp.java | 4 + .../api/controller/ExternalApiController.java | 162 +++++- .../api/domain/WcsJobExceptionRequest.java | 84 +++ .../mapper/BasCargoSpaceMapper.java | 65 +++ .../stationpoint/domain/BasStationPoint.java | 4 +- .../stock/controller/BasStockController.java | 13 + .../bas/stock/domain/BasStockDetail.java | 14 + .../stock/mapper/BasStockDetailMapper.java | 5 + .../bas/stock/mapper/BasStockMapper.java | 8 + .../service/impl/BasStockServiceImpl.java | 32 +- .../job/controller/InMydoJobController.java | 33 +- .../ruoyi/in/job/mapper/MydoJobMapper.java | 16 + .../ruoyi/in/job/service/IMydoJobService.java | 19 + .../job/service/impl/MydoJobServiceImpl.java | 219 +++++++- .../jobdetail/mapper/MydoJobDetailMapper.java | 2 + .../controller/InStockinController.java | 20 +- .../service/impl/InStockinServiceImpl.java | 15 + .../kpi/service/impl/KpiServiceImpl.java | 100 ++-- .../job/controller/OutMydoJobController.java | 33 +- .../LocationOutboundController.java | 53 ++ .../LocationOutboundGenerateRequest.java | 35 ++ .../domain/LocationOutboundStock.java | 290 +++++++++++ .../mapper/LocationOutboundMapper.java | 25 + .../service/ILocationOutboundService.java | 16 + .../impl/LocationOutboundServiceImpl.java | 310 +++++++++++ .../controller/OutStockoutController.java | 34 +- .../stockout/domain/OutStockoutAssignDTO.java | 24 + .../domain/OutStockoutManualAssignDTO.java | 28 + .../stockout/mapper/OutStockoutMapper.java | 8 + .../stockout/service/IOutStockoutService.java | 13 +- .../service/impl/OutStockoutServiceImpl.java | 102 +++- .../domain/OutStockoutDetail.java | 14 + .../mapper/OutStockoutDetailMapper.java | 8 + .../ruoyi/pda/controller/PdaController.java | 72 ++- .../pda/domain/EmptyTrayOutboundRequest.java | 40 ++ .../java/com/ruoyi/pda/mapper/PdaMapper.java | 44 +- .../com/ruoyi/pda/service/PdaService.java | 40 +- .../pda/service/impl/PdaServiceImpl.java | 412 ++++++++++++++- .../src/main/resources/application.yml | 2 + .../mapper/bas/BasCargoSpaceMapper.xml | 96 +++- .../mapper/bas/BasStockDetailMapper.xml | 51 +- .../resources/mapper/bas/BasStockMapper.xml | 21 +- .../mapper/in/MydoJobDetailMapper.xml | 4 + .../resources/mapper/in/MydoJobMapper.xml | 35 +- .../mapper/out/LocationOutboundMapper.xml | 245 +++++++++ .../mapper/out/OutStockoutDetailMapper.xml | 90 +++- .../mapper/out/OutStockoutMapper.xml | 22 + .../main/resources/mapper/pda/PdaMapper.xml | 234 +++++++-- .../ruoyi/api/aspect/ApiLogAspectTest.java | 106 ++++ .../com/ruoyi/api/client/WcsClientTest.java | 200 +++++++- .../ExternalApiControllerWcsCodeTest.java | 146 ++++++ .../mapper/BasCargoSpaceMapperSqlTest.java | 72 +++ .../BasStationPointConfigurationTest.java | 41 ++ .../service/impl/BasStockServiceImplTest.java | 91 ++++ .../in/job/mapper/MydoJobMapperSqlTest.java | 125 +++++ .../service/impl/MydoJobServiceImplTest.java | 320 +++++++++++- .../impl/InStockinServiceImplTest.java | 97 ++++ .../kpi/service/impl/KpiServiceImplTest.java | 109 ++++ .../impl/LocationOutboundServiceImplTest.java | 199 ++++++++ .../mapper/OutStockoutMapperSqlTest.java | 213 ++++++++ .../impl/OutStockoutServiceImplTest.java | 105 ++++ .../ruoyi/pda/mapper/PdaMapperSqlTest.java | 112 ++++ .../pda/service/impl/PdaServiceImplTest.java | 483 ++++++++++++++++++ ruoyi-ui/src/api/out/locationOutbound.js | 19 + ruoyi-ui/src/api/out/stockout.js | 5 +- ruoyi-ui/src/assets/logo/logo.png | Bin 5663 -> 20029 bytes .../src/layout/components/Sidebar/Logo.vue | 17 +- ruoyi-ui/src/views/bas/barcodeData/index.vue | 74 ++- ruoyi-ui/src/views/bas/stationpoint/index.vue | 5 +- ruoyi-ui/src/views/bas/stock/index.vue | 6 +- ruoyi-ui/src/views/in/job/index.vue | 54 +- ruoyi-ui/src/views/out/job/index.vue | 28 +- .../src/views/out/locationOutbound/index.vue | 472 +++++++++++++++++ ruoyi-ui/src/views/out/stockout/index.vue | 243 ++++++++- ruoyi-ui/src/views/search/inJobFlow/index.vue | 213 ++++++++ .../views/search/inStockinHistory/index.vue | 204 ++++++++ .../src/views/search/outJobFlow/index.vue | 133 +++++ .../views/search/outStockoutHistory/index.vue | 125 +++++ .../src/views/search/stockDetail/index.vue | 139 +++++ ruoyi-ui/src/views/tool/build/index.vue | 5 +- .../verify-history-query-and-barcode-print.js | 92 ++++ scripts/verify-inbound-job-fixes.js | 119 +++++ scripts/verify-outbound-stock-fixes.js | 208 ++++++++ sql/20260624_update_job_dicts.sql | 133 +++++ sql/bas_station_point.sql | 1 + sql/bas_stock_master_detail.sql | 49 +- sql/location_outbound.sql | 170 ++++++ sql/out_stockout_flow.sql | 304 +++++++++-- sql/proc_hand_delete_in_job.sql | 7 +- sql/search_statistics.sql | 341 +++++++++++++ sql/wms.sql | 3 +- tmp-tool-check.txt | 1 + 114 files changed, 10005 insertions(+), 1392 deletions(-) create mode 100644 handoff.md create mode 100644 pda/api/warehouse/stock.js create mode 100644 pda/pages/warehouse/inbound/emptyTray.vue delete mode 100644 pda/pages/warehouse/inbound/supply.vue create mode 100644 pda/pages/warehouse/outbound/emptyTray.vue delete mode 100644 pda/pages/warehouse/outbound/exception.vue create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/WcsJobExceptionRequest.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/controller/LocationOutboundController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/domain/LocationOutboundGenerateRequest.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/domain/LocationOutboundStock.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/mapper/LocationOutboundMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/service/ILocationOutboundService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/location/service/impl/LocationOutboundServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/stockout/domain/OutStockoutAssignDTO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/pda/domain/EmptyTrayOutboundRequest.java create mode 100644 ruoyi-admin/src/main/resources/mapper/out/LocationOutboundMapper.xml create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/api/aspect/ApiLogAspectTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/api/controller/ExternalApiControllerWcsCodeTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/bas/cargospace/mapper/BasCargoSpaceMapperSqlTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/bas/stationpoint/BasStationPointConfigurationTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/bas/stock/service/impl/BasStockServiceImplTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/in/job/mapper/MydoJobMapperSqlTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImplTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/kpi/service/impl/KpiServiceImplTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/out/location/service/impl/LocationOutboundServiceImplTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/out/stockout/mapper/OutStockoutMapperSqlTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/out/stockout/service/impl/OutStockoutServiceImplTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/pda/mapper/PdaMapperSqlTest.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/pda/service/impl/PdaServiceImplTest.java create mode 100644 ruoyi-ui/src/api/out/locationOutbound.js create mode 100644 ruoyi-ui/src/views/out/locationOutbound/index.vue create mode 100644 ruoyi-ui/src/views/search/inJobFlow/index.vue create mode 100644 ruoyi-ui/src/views/search/inStockinHistory/index.vue create mode 100644 ruoyi-ui/src/views/search/outJobFlow/index.vue create mode 100644 ruoyi-ui/src/views/search/outStockoutHistory/index.vue create mode 100644 ruoyi-ui/src/views/search/stockDetail/index.vue create mode 100644 scripts/verify-history-query-and-barcode-print.js create mode 100644 scripts/verify-inbound-job-fixes.js create mode 100644 scripts/verify-outbound-stock-fixes.js create mode 100644 sql/20260624_update_job_dicts.sql create mode 100644 sql/location_outbound.sql create mode 100644 sql/search_statistics.sql create mode 100644 tmp-tool-check.txt diff --git a/handoff.md b/handoff.md new file mode 100644 index 0000000..93c0cf0 --- /dev/null +++ b/handoff.md @@ -0,0 +1,48 @@ +# FTC25009 会话交接文档 + +## 当前状态 + +### 仓库操作已完成 + +1. **仓库名称已更新**: + - `01` → `托盘库1` + - `02` → `托盘库2` + +2. **货位已重建(按 proc_create_cargo_space 规则)**: + - `01` 仓库:4排 × 12列 × 5层 = **240个货位**,4条巷道(1-4)已存在 + - `02` 仓库:2排 × 10列 × 5层 = **100个货位**,新增了2条巷道(1-2) + +3. **旧数据已清空**:01仓库的旧库存、作业、货位记录已删除 + +4. **新货位编码格式**(proc_create_cargo_space 规则): + - `cargo_space_id`:`010100101`(warehouse + platoon(2位) + column(3位) + floor(2位)) + - `cargo_space_name`:`01排001列01层` + +### 关键变更 - 编码格式不兼容 + +旧货位格式:`CS001` / `A-1-1-1` +新货位格式:`010100101` / `01排001列01层` + +**系统中可能有代码依赖旧的 `cargo_space_id` 或 `cargo_space_name` 命名格式,需要排查。** + +### 数据库信息 +- 服务器:`172.16.4.12:1433` +- 数据库:`FTC25009-WMS` +- 用户:`sa` +- MCP 已配置并正常工作 + +### MCP 配置文件位置 +- `C:\Users\13623\.cursor\mcp.json`(Cursor 主要读取) +- `C:\Users\13623\AppData\Roaming\Cursor\User\globalStorage\mcp-settings.json` +- `D:\workSpace\PROJECT_SPACE\FTC25009\.cursorrules-mcp.json` + +### Git 仓库 +- 本地:`D:\workSpace\PROJECT_SPACE\FTC25009` +- 远程:`http://106.13.86.63:10082/zgw/FTC25009.git` +- 项目框架:若依(RuoYi) WMS 系统 + +## 建议下一步 + +1. 检查 Java 代码中是否有硬编码 `CS001` 或其他旧货位编码的地方 +2. 检查前端 ruoyi-ui 是否对货位编码格式有依赖 +3. 如果有入库流程测试,验证新货位编码能否正常使用 diff --git a/pda/api/warehouse/inbound.js b/pda/api/warehouse/inbound.js index faabcac..36aea00 100644 --- a/pda/api/warehouse/inbound.js +++ b/pda/api/warehouse/inbound.js @@ -78,10 +78,10 @@ export function submitBindTrayAndAddInJob(data) { }) } -// 提交补料入库 -export function submitSupplyInbound(data) { +// 空托入库并立即生成入库作业 +export function submitEmptyTrayInbound(data) { return request({ - url: '/wms/inbound/supply', + url: '/pda/emptyTrayInbound', method: 'post', data: data }) diff --git a/pda/api/warehouse/outbound.js b/pda/api/warehouse/outbound.js index 7b1c34f..dc0aa78 100644 --- a/pda/api/warehouse/outbound.js +++ b/pda/api/warehouse/outbound.js @@ -9,6 +9,27 @@ export function getOutboundTaskList(query) { }) } +// 查询仓库空托按条码头分组的数量 +export function getEmptyTrayOutboundTypes(warehouseId) { + return request({ + url: '/pda/emptyTrayOutbound/count', + method: 'get', + params: { warehouseId } + }) +} + +// 兼容旧调用名 +export const getEmptyTrayOutboundCount = getEmptyTrayOutboundTypes + +// 生成空托出库作业并下发 WCS +export function submitEmptyTrayOutbound(data) { + return request({ + url: '/pda/emptyTrayOutbound', + method: 'post', + data: data + }) +} + // 获取出库任务详情 export function getOutboundDetail(query) { return request({ @@ -27,11 +48,3 @@ export function confirmOutbound(data) { }) } -// 提交出库异常确认 -export function submitOutboundException(data) { - return request({ - url: '/pda/outboundException', - method: 'post', - data: data - }) -} diff --git a/pda/api/warehouse/stock.js b/pda/api/warehouse/stock.js new file mode 100644 index 0000000..4f5a2b1 --- /dev/null +++ b/pda/api/warehouse/stock.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 扫描托盘码查询托盘绑定的库存物料 +export function getTrayStock(trayCode) { + return request({ + url: '/pda/trayStock', + method: 'get', + params: { trayCode } + }) +} diff --git a/pda/pages.json b/pda/pages.json index 4ff1d18..d1d8db5 100644 --- a/pda/pages.json +++ b/pda/pages.json @@ -71,9 +71,9 @@ "navigationBarTitleText": "入库绑盘" } }, { - "path": "pages/warehouse/inbound/supply", + "path": "pages/warehouse/inbound/emptyTray", "style": { - "navigationBarTitleText": "补料入库" + "navigationBarTitleText": "空托盘入库" } }, { "path": "pages/warehouse/outbound/index", @@ -86,9 +86,9 @@ "navigationBarTitleText": "出库确认" } }, { - "path": "pages/warehouse/outbound/exception", + "path": "pages/warehouse/outbound/emptyTray", "style": { - "navigationBarTitleText": "出库异常确认" + "navigationBarTitleText": "空托盘出库" } }, { "path": "pages/warehouse/inventory/index", @@ -121,11 +121,6 @@ "iconPath": "static/images/tabbar/home.png", "selectedIconPath": "static/images/tabbar/home_.png", "text": "首页" - }, { - "pagePath": "pages/work/index", - "iconPath": "static/images/tabbar/work.png", - "selectedIconPath": "static/images/tabbar/work_.png", - "text": "工作台" }, { "pagePath": "pages/mine/index", "iconPath": "static/images/tabbar/mine.png", diff --git a/pda/pages/index.vue b/pda/pages/index.vue index 7c15acc..fe07d0a 100644 --- a/pda/pages/index.vue +++ b/pda/pages/index.vue @@ -19,7 +19,7 @@ 入库管理 - 入库绑盘 / 补料入库 + 入库绑盘 / 空托盘入库 @@ -27,7 +27,7 @@ 出库管理 - 出库确认 / 异常确认 + 出库确认 / 空托盘出库 @@ -56,17 +56,17 @@ 入库绑盘 - - - 补料入库 + + + 空托入库 出库确认 - - - 出库异常 + + + 空托出库 @@ -97,10 +97,11 @@ } .header { - background: linear-gradient(135deg, #1890ff, #096dd9); + background: #fff; border-radius: 20rpx; padding: 40rpx 36rpx; margin-bottom: 32rpx; + box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06); } .header-info { @@ -109,27 +110,28 @@ } .logo { - width: 80rpx; - height: 80rpx; - border-radius: 16rpx; + flex-shrink: 0; + width: 220rpx; + height: 70rpx; margin-right: 24rpx; } .header-text { display: flex; flex-direction: column; + min-width: 0; } .app-name { font-size: 36rpx; font-weight: 500; - color: #fff; + color: #1f2933; margin-bottom: 8rpx; } .welcome-text { font-size: 24rpx; - color: rgba(255, 255, 255, 0.8); + color: #6b7280; } .menu-section { diff --git a/pda/pages/login.vue b/pda/pages/login.vue index 8794386..09660ee 100644 --- a/pda/pages/login.vue +++ b/pda/pages/login.vue @@ -1,9 +1,10 @@