Files
Inbound20260114/入库秤设备端接口文档.md
T
lvmengandClaude Sonnet 4.6 fabc4d780a feat(inbound): 新增入库秤毛菜/净材入库功能
- 新增入库专用网络层(InboundApiService、InboundRepository、InboundNetworkModule、InboundInterceptor)
- 新增入库相关数据模型(IngredientByTrace、SupplierOption、ZoneOption、GoodsSearchModel、CleanInboundParam、RawInboundParam、InboundApiResponse)
- 新增 FormField 动态表单模型(FieldType 枚举、apiKey 字段映射、submitValueId 控制提交值)
- 新增 FormFieldAdapter,基于 FlexboxLayoutManager 实现两列自动换行表单,支持五种字段类型
- 新增 InboundGoodsSearchDialog(溯源码检索食材)和 InboundGoodsStoreDialog(入库录入,表单转 Map 提交)
- 新增 StoreViewModel,提交接口入参改为 Map<String, Any>
- 重构 StoreActivity:注入 StoreViewModel,onResume 预加载供应商/区域列表到 GlobalData
- 修改 GoodsListActivity:抽取 onGoodsSearchRequested() 供子类重写
- 修改 GoodsRecognizeDialog:StoreActivity 场景下打开 InboundGoodsStoreDialog
- GlobalData 新增 inboundSupplierList / inboundZoneList 全局缓存
- build.gradle.kts 新增 flexbox:3.0.0 依赖

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 21:18:09 +08:00

6.6 KiB
Raw Blame History

入库秤设备端接口文档

Base URLhttp://192.168.10.101:24801/nutrition/neglect/inbound 鉴权:无需 Sa-TokenNacos 白名单 /nutrition/neglect/**

Header 字段 说明 示例值
authorization 固定鉴权值 57ee87183f2a4fa59683ec9ef41c8f5d
Content-Typeapplication/json

通用响应结构

{
  "code": 200,
  "msg": "success",
  "data": { ... }
}
字段 类型 说明
code int 200 成功,其他为业务错误码
msg string 提示信息
data any 响应数据,无数据时为 null

接口列表

1. 按溯源码查食材

GET /nutrition/neglect/inbound/ingredient-by-trace

按溯源码反查命中的食材列表,返回食材 id、名称、净菜类型,用于毛菜/净菜入库时联动选择食材。

Query 参数

参数 类型 必填 说明
traceCode string 溯源码

响应示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "traceCode": "TC20240501001",
      "materId": 1001,
      "materName": "西红柿",
      "vegTypes": "切丁,切片"
    }
  ]
}

响应字段说明

字段 类型 说明
traceCode string 溯源码
materId long 食材 id(关联 nut_mater_base.id
materName string 食材名称
vegTypes string 净菜类型,逗号分隔,如 切丁,切片

2. 仓库区域下拉列表

GET /nutrition/neglect/inbound/zone-options

获取仓库区域选项,用于入库时选择存放区域。

Query 参数

参数 类型 必填 说明
warehouseId long 仓库 id,不传则返回所有区域
keyword string 关键字模糊搜索(区域编号/名称)

响应示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "id": 101,
      "zoneNo": "WH-A-01",
      "zoneName": "A仓-蔬菜区-01",
      "warehouseId": 10
    }
  ]
}

响应字段说明

字段 类型 说明
id long 区域主键 id
zoneNo string 区域编号,如 WH-A-01
zoneName string 区域名称,如 A仓-蔬菜区-01
warehouseId long 关联仓库 id

3. 供应商下拉列表

GET /nutrition/neglect/inbound/supplier-options

获取供应商选项,内部与外部供应商合并返回。

Query 参数

参数 类型 必填 说明
type int 供应商类型:1-内部,2-外部,不传则返回全部
keyword string 关键字模糊搜索(供应商名称)

响应示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "id": 201,
      "name": "绿源农场",
      "type": 1
    },
    {
      "id": 202,
      "name": "鲜达食品有限公司",
      "type": 2
    }
  ]
}

响应字段说明

字段 类型 说明
id long 供应商 id
name string 供应商名称
type int 1-内部供应商,2-外部供应商

4. 毛菜入库提交

POST /nutrition/neglect/inbound/raw-inbound

入库秤设备提交毛菜入库记录,opType 由后端固定为 1(设备自动),无需传入。

Request Body

{
  "traceCode": "TC20240501001",
  "supplierType": 1,
  "materialName": "西红柿",
  "supplierId": 201,
  "spec": "25kg/件",
  "quantity": 2,
  "weight": 49.8,
  "zoneId": 101,
  "operator": "张三",
  "storageArea": "A仓-蔬菜区-01",
  "reportNo": "RPT-2024-001",
  "cameraCode": "CAM-001",
  "videoUrl": "http://example.com/video/001.mp4",
  "remark": ""
}

字段说明

字段 类型 必填 说明
traceCode string 溯源码
supplierType short 供应商类型:1-内部,2-外部
materialName string 食材名称
supplierId long 供应商 id
spec string 入库规格,如 25kg/件散装(kg)
quantity int 入库数量
weight decimal 入库重量(kg
zoneId long 存放区域 id
operator string 操作人姓名
storageArea string 存放区域名称(冗余字段,可与 zoneId 对应名称一致)
reportNo string 卫生检测报告编号
cameraCode string 摄像头编号
videoUrl string 监控视频地址
remark string 备注

响应示例

{
  "code": 200,
  "msg": "保存成功",
  "data": null
}

5. 净菜入库提交

POST /nutrition/neglect/inbound/clean-inbound

入库秤设备提交净菜入库记录,opType 由后端固定为 1(设备自动),无需传入。

Request Body

{
  "traceCode": "TC20240501002",
  "ingredientName": "西红柿",
  "cleanType": "切丁",
  "spec": "袋装/500g",
  "quantity": 10,
  "weight": 5.0,
  "inboundTime": "2024-05-01T08:30:00",
  "zoneId": 102,
  "operator": "李四",
  "expiryDate": "2024-05-03T00:00:00",
  "storageTemp": 4.5,
  "cameraCode": "CAM-002",
  "videoUrl": "http://example.com/video/002.mp4",
  "remark": ""
}

字段说明

字段 类型 必填 说明
traceCode string 溯源码
ingredientName string 食材名称
cleanType string 净菜类型,如 切丁切片(参考接口1返回的 vegTypes
spec string 入库规格,如 袋装/500g盒装/300g
quantity int 入库数量(包/盒/份)
weight decimal 入库重量(kg
inboundTime datetime 入库时间,格式:yyyy-MM-dd'T'HH:mm:ss
zoneId long 仓库区域 id
operator string 操作人姓名
expiryDate datetime 保质期至,格式同 inboundTime
storageTemp decimal 存放温度(℃)
cameraCode string 摄像头编号
videoUrl string 监控视频地址
remark string 备注

响应示例

{
  "code": 200,
  "msg": "保存成功",
  "data": null
}

典型业务流程

设备扫溯源码
    ↓
GET /ingredient-by-trace?traceCode=xxx   → 获取食材列表
    ↓
GET /zone-options                         → 获取区域列表
GET /supplier-options                     → 获取供应商列表(毛菜需要)
    ↓
用户确认信息 / 秤自动称重
    ↓
POST /raw-inbound  (毛菜)
 或
POST /clean-inbound(净菜)