feat: 完成7项功能任务

后端:
- fix(backend): InventoryLog 增加 Product/Warehouse 关联,Logs 接口加 Preload 修复流水记录显示"-"
- feat(backend): 新增 /inventory/batches 批次追踪接口
- feat(backend): 新增财务记录、编号规则接口(finance、number_rule handler)
- fix(backend): service/stock_test.go 修复 model.Date 类型错误

前端:
- feat(client): 入库/出库管理 Tab 调换顺序(审核在前),审核 Tab 加新建按钮,列表 Tab 无按钮
- feat(client): 入库单/出库单增加详情弹窗,显示完整单据信息和商品明细
- feat(client): 完善出库单新建表单(StockOutFormScreen),支持选客户/仓库/商品
- fix(client): StockInItem/StockOutItem.fromJson 修复读取嵌套 product 对象而非平铺字段
- feat(client): 批次追踪页面(BatchTrackingScreen)及侧边栏入口
- feat(client): 财务管理、盘点、编号规则接入真实后端 API
- fix(client): 入库/出库审核通过后 invalidate inventoryListProvider 刷新库存

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-04-10 22:03:19 +08:00
parent 5f8e7cfa7e
commit ce1cbf404c
28 changed files with 2507 additions and 1072 deletions
+18 -7
View File
@@ -242,12 +242,23 @@ INSERT INTO inventory_logs (id, shop_id, warehouse_id, product_id, direction, qu
(12, 1, 2, 8, 'out', 12, 36, 24, 'stock_out', 2, 1, NOW());
-- ── 财务记录 ────────────────────────────────────────────────
-- 出库单 #1 对应应收款 + 已回款
-- 应收账款:出库单 #1 (君悦大酒店) + #2 (外滩华尔道夫)
-- 收款:出库单 #1 已回款
-- 应付账款:入库单 #1 (茅台 339000) + #2 (五粮液代理 51360) + #3 (郎酒 108480)
-- 付款:入库单 #1 已付款
INSERT INTO finance_records (id, shop_id, partner_id, type, amount, balance, ref_type, ref_id,
operator_id, record_date, remark, created_at, updated_at) VALUES
(1, 1, 5, 'receivable', 48960, 48960, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 3 DAY), '君悦大酒店4月供货应收款', NOW(), NOW()),
(2, 1, 6, 'receivable', 39360, 39360, 'stock_out', 2, 1,
DATE_SUB(CURDATE(), INTERVAL 2 DAY), '外滩华尔道夫进口酒应收款', NOW(), NOW()),
(3, 1, 5, 'receipt', 48960, 0, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 1 DAY), '君悦大酒店回款,结清', NOW(), NOW());
(1, 1, 5, 'receivable', 48960, 48960, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 6 DAY), '君悦大酒店4月供货应收款', NOW(), NOW()),
(2, 1, 6, 'receivable', 39360, 39360, 'stock_out', 2, 1,
DATE_SUB(CURDATE(), INTERVAL 5 DAY), '外滩华尔道夫进口酒应收款', NOW(), NOW()),
(3, 1, 5, 'receipt', 48960, 0, 'stock_out', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 2 DAY), '君悦大酒店回款,结清', NOW(), NOW()),
(4, 1, 1, 'payable', 339000, 339000, 'stock_in', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 6 DAY), '茅台系列首批入库应付款', NOW(), NOW()),
(5, 1, 2, 'payable', 51360, 51360, 'stock_in', 2, 1,
DATE_SUB(CURDATE(), INTERVAL 4 DAY), '浓香型白酒入库应付款', NOW(), NOW()),
(6, 1, 4, 'payable', 108480, 108480, 'stock_in', 3, 1,
DATE_SUB(CURDATE(), INTERVAL 3 DAY), '进口烈酒专库入库应付款', NOW(), NOW()),
(7, 1, 1, 'payment', 100000, 0, 'stock_in', 1, 1,
DATE_SUB(CURDATE(), INTERVAL 3 DAY), '预付茅台货款10万,银行转账', NOW(), NOW());