更新swagger
This commit is contained in:
@@ -2722,6 +2722,18 @@
|
|||||||
],
|
],
|
||||||
"summary": "获取原料列表",
|
"summary": "获取原料列表",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"description": "参考价格最大值",
|
||||||
|
"name": "max_reference_price",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"description": "参考价格最小值",
|
||||||
|
"name": "min_reference_price",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "按原料名称模糊查询",
|
"description": "按原料名称模糊查询",
|
||||||
@@ -2793,7 +2805,7 @@
|
|||||||
"summary": "创建原料",
|
"summary": "创建原料",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"description": "原料信息",
|
"description": "原料信息,包含名称、描述和参考价格",
|
||||||
"name": "rawMaterial",
|
"name": "rawMaterial",
|
||||||
"in": "body",
|
"in": "body",
|
||||||
"required": true,
|
"required": true,
|
||||||
@@ -2895,7 +2907,7 @@
|
|||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "更新后的原料信息",
|
"description": "更新后的原料信息,包含名称、描述和参考价格",
|
||||||
"name": "rawMaterial",
|
"name": "rawMaterial",
|
||||||
"in": "body",
|
"in": "body",
|
||||||
"required": true,
|
"required": true,
|
||||||
@@ -3262,6 +3274,215 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/api/v1/inventory/stock/adjust": {
|
||||||
|
"post": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"BearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "手动调整指定原料的库存量。",
|
||||||
|
"consumes": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"库存管理"
|
||||||
|
],
|
||||||
|
"summary": "调整原料库存",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "库存调整请求",
|
||||||
|
"name": "request",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/dto.StockAdjustmentRequest"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "业务码为200代表调整成功",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/controller.Response"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/dto.StockLogResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/api/v1/inventory/stock/current": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"BearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "获取所有原料的当前库存列表,支持分页和过滤。",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"库存管理"
|
||||||
|
],
|
||||||
|
"summary": "获取当前库存列表",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "排序字段, 例如 \"stock DESC\"",
|
||||||
|
"name": "order_by",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "页码",
|
||||||
|
"name": "page",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "每页数量",
|
||||||
|
"name": "page_size",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "按原料名称模糊查询",
|
||||||
|
"name": "raw_material_name",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "业务码为200代表成功获取列表",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/controller.Response"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/dto.ListCurrentStockResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/api/v1/inventory/stock/logs": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"BearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "获取原料库存变动历史记录,支持分页、过滤和时间范围查询。",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"库存管理"
|
||||||
|
],
|
||||||
|
"summary": "获取库存变动日志",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "结束时间 (RFC3339格式)",
|
||||||
|
"name": "end_time",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "排序字段",
|
||||||
|
"name": "order_by",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "页码",
|
||||||
|
"name": "page",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "每页数量",
|
||||||
|
"name": "page_size",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "按原料ID精确查询",
|
||||||
|
"name": "raw_material_id",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"enum": [
|
||||||
|
"采购入库",
|
||||||
|
"饲喂出库",
|
||||||
|
"变质出库",
|
||||||
|
"售卖出库",
|
||||||
|
"杂用领取",
|
||||||
|
"手动盘点",
|
||||||
|
"发酵出库",
|
||||||
|
"发酵入库"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"collectionFormat": "csv",
|
||||||
|
"description": "按来源类型查询",
|
||||||
|
"name": "source_types",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "开始时间 (RFC3339格式, e.g., \"2023-01-01T00:00:00Z\")",
|
||||||
|
"name": "start_time",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "业务码为200代表成功获取列表",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/controller.Response"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/dto.ListStockLogResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/api/v1/monitor/device-command-logs": {
|
"/api/v1/monitor/device-command-logs": {
|
||||||
"get": {
|
"get": {
|
||||||
"security": [
|
"security": [
|
||||||
@@ -3443,6 +3664,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"enum": [
|
"enum": [
|
||||||
|
7,
|
||||||
-1,
|
-1,
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
@@ -3452,12 +3674,12 @@
|
|||||||
5,
|
5,
|
||||||
-1,
|
-1,
|
||||||
5,
|
5,
|
||||||
6,
|
6
|
||||||
7
|
|
||||||
],
|
],
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int32",
|
"format": "int32",
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
|
"_numLevels",
|
||||||
"DebugLevel",
|
"DebugLevel",
|
||||||
"InfoLevel",
|
"InfoLevel",
|
||||||
"WarnLevel",
|
"WarnLevel",
|
||||||
@@ -3467,8 +3689,7 @@
|
|||||||
"FatalLevel",
|
"FatalLevel",
|
||||||
"_minLevel",
|
"_minLevel",
|
||||||
"_maxLevel",
|
"_maxLevel",
|
||||||
"InvalidLevel",
|
"InvalidLevel"
|
||||||
"_numLevels"
|
|
||||||
],
|
],
|
||||||
"name": "level",
|
"name": "level",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
@@ -6999,6 +7220,10 @@
|
|||||||
"description": "原料名称",
|
"description": "原料名称",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 100
|
"maxLength": 100
|
||||||
|
},
|
||||||
|
"reference_price": {
|
||||||
|
"description": "参考价格(kg/元)",
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -7057,6 +7282,27 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dto.CurrentStockResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"last_updated": {
|
||||||
|
"description": "最后更新时间",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"raw_material_id": {
|
||||||
|
"description": "原料ID",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"raw_material_name": {
|
||||||
|
"description": "原料名称",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"stock": {
|
||||||
|
"description": "当前库存量, 单位: g",
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"dto.DeleteDeviceThresholdAlarmDTO": {
|
"dto.DeleteDeviceThresholdAlarmDTO": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
@@ -7254,6 +7500,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dto.ListCurrentStockResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"list": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/dto.CurrentStockResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pagination": {
|
||||||
|
"$ref": "#/definitions/dto.PaginationDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"dto.ListDeviceCommandLogResponse": {
|
"dto.ListDeviceCommandLogResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -7535,6 +7795,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dto.ListStockLogResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"list": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/dto.StockLogResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pagination": {
|
||||||
|
"$ref": "#/definitions/dto.PaginationDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"dto.ListTaskExecutionLogResponse": {
|
"dto.ListTaskExecutionLogResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -8491,6 +8765,10 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"$ref": "#/definitions/dto.RawMaterialNutrientDTO"
|
"$ref": "#/definitions/dto.RawMaterialNutrientDTO"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"reference_price": {
|
||||||
|
"description": "参考价格(kg/元)",
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8847,6 +9125,63 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dto.StockAdjustmentRequest": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"change_amount",
|
||||||
|
"raw_material_id"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"change_amount": {
|
||||||
|
"description": "变动数量, 正数为入库, 负数为出库, 单位: g",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"raw_material_id": {
|
||||||
|
"description": "要调整的原料ID",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"remarks": {
|
||||||
|
"description": "备注",
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 255
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dto.StockLogResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"after_quantity": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"before_quantity": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"change_amount": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"happened_at": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"raw_material_id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"raw_material_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"remarks": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"source_id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"source_type": {
|
||||||
|
"$ref": "#/definitions/models.StockLogSourceType"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"dto.SubPlanResponse": {
|
"dto.SubPlanResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -9465,6 +9800,10 @@
|
|||||||
"description": "原料名称",
|
"description": "原料名称",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 100
|
"maxLength": 100
|
||||||
|
},
|
||||||
|
"reference_price": {
|
||||||
|
"description": "参考价格(kg/元)",
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -10066,6 +10405,43 @@
|
|||||||
"FatalLevel"
|
"FatalLevel"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"models.StockLogSourceType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"采购入库",
|
||||||
|
"饲喂出库",
|
||||||
|
"变质出库",
|
||||||
|
"售卖出库",
|
||||||
|
"杂用领取",
|
||||||
|
"手动盘点",
|
||||||
|
"发酵出库",
|
||||||
|
"发酵入库"
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"StockLogSourceFermentEnd": "发酵料产出,作为新原料计入库存",
|
||||||
|
"StockLogSourceFermentStart": "原料投入发酵,从库存中扣除"
|
||||||
|
},
|
||||||
|
"x-enum-descriptions": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"原料投入发酵,从库存中扣除",
|
||||||
|
"发酵料产出,作为新原料计入库存"
|
||||||
|
],
|
||||||
|
"x-enum-varnames": [
|
||||||
|
"StockLogSourcePurchase",
|
||||||
|
"StockLogSourceFeeding",
|
||||||
|
"StockLogSourceDeteriorate",
|
||||||
|
"StockLogSourceSale",
|
||||||
|
"StockLogSourceMiscellaneous",
|
||||||
|
"StockLogSourceManual",
|
||||||
|
"StockLogSourceFermentStart",
|
||||||
|
"StockLogSourceFermentEnd"
|
||||||
|
]
|
||||||
|
},
|
||||||
"models.TaskType": {
|
"models.TaskType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
@@ -10142,6 +10518,7 @@
|
|||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int32",
|
"format": "int32",
|
||||||
"enum": [
|
"enum": [
|
||||||
|
7,
|
||||||
-1,
|
-1,
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
@@ -10151,10 +10528,10 @@
|
|||||||
5,
|
5,
|
||||||
-1,
|
-1,
|
||||||
5,
|
5,
|
||||||
6,
|
6
|
||||||
7
|
|
||||||
],
|
],
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
|
"_numLevels",
|
||||||
"DebugLevel",
|
"DebugLevel",
|
||||||
"InfoLevel",
|
"InfoLevel",
|
||||||
"WarnLevel",
|
"WarnLevel",
|
||||||
@@ -10164,8 +10541,7 @@
|
|||||||
"FatalLevel",
|
"FatalLevel",
|
||||||
"_minLevel",
|
"_minLevel",
|
||||||
"_maxLevel",
|
"_maxLevel",
|
||||||
"InvalidLevel",
|
"InvalidLevel"
|
||||||
"_numLevels"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -239,6 +239,7 @@ import {PaginationDTO, Response} from '../enums';
|
|||||||
* @property {string} name
|
* @property {string} name
|
||||||
* @property {string} description
|
* @property {string} description
|
||||||
* @property {Array<RawMaterialNutrientDTO>} raw_material_nutrients
|
* @property {Array<RawMaterialNutrientDTO>} raw_material_nutrients
|
||||||
|
* @property {number} [reference_price] - 参考价格(kg/元)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -251,6 +252,8 @@ import {PaginationDTO, Response} from '../enums';
|
|||||||
* @typedef {object} RawMaterialsParams
|
* @typedef {object} RawMaterialsParams
|
||||||
* @property {string} [name] - 按原料名称模糊查询
|
* @property {string} [name] - 按原料名称模糊查询
|
||||||
* @property {string} [nutrient_name] - 按营养名称模糊查询
|
* @property {string} [nutrient_name] - 按营养名称模糊查询
|
||||||
|
* @property {number} [max_reference_price] - 参考价格最大值
|
||||||
|
* @property {number} [min_reference_price] - 参考价格最小值
|
||||||
* @property {string} [order_by] - 排序字段,例如 "id DESC"
|
* @property {string} [order_by] - 排序字段,例如 "id DESC"
|
||||||
* @property {number} [page]
|
* @property {number} [page]
|
||||||
* @property {number} [page_size]
|
* @property {number} [page_size]
|
||||||
@@ -260,12 +263,14 @@ import {PaginationDTO, Response} from '../enums';
|
|||||||
* @typedef {object} CreateRawMaterialRequest
|
* @typedef {object} CreateRawMaterialRequest
|
||||||
* @property {string} name - 原料名称
|
* @property {string} name - 原料名称
|
||||||
* @property {string} [description] - 描述
|
* @property {string} [description] - 描述
|
||||||
|
* @property {number} [reference_price] - 参考价格(kg/元)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} UpdateRawMaterialRequest
|
* @typedef {object} UpdateRawMaterialRequest
|
||||||
* @property {string} name - 原料名称
|
* @property {string} name - 原料名称
|
||||||
* @property {string} [description] - 描述
|
* @property {string} [description] - 描述
|
||||||
|
* @property {number} [reference_price] - 参考价格(kg/元)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// --- Recipe ---
|
// --- Recipe ---
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { AlarmApi } from './alarm.js'; // 导入告警API
|
|||||||
import { HealthApi } from './health.js'; // 导入健康检查API
|
import { HealthApi } from './health.js'; // 导入健康检查API
|
||||||
import { DeviceTemplateApi } from './deviceTemplate.js'; // 导入设备模板API
|
import { DeviceTemplateApi } from './deviceTemplate.js'; // 导入设备模板API
|
||||||
import { FeedApi } from './feed.js'; // 导入饲料管理API
|
import { FeedApi } from './feed.js'; // 导入饲料管理API
|
||||||
|
import { InventoryApi } from './inventory.js'; // 导入库存管理API
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API客户端
|
* API客户端
|
||||||
@@ -19,6 +20,7 @@ export class ApiClient {
|
|||||||
this.alarms = AlarmApi; // 添加告警API
|
this.alarms = AlarmApi; // 添加告警API
|
||||||
this.deviceTemplates = DeviceTemplateApi; // 添加设备模板API
|
this.deviceTemplates = DeviceTemplateApi; // 添加设备模板API
|
||||||
this.feeds = FeedApi; // 添加饲料管理API
|
this.feeds = FeedApi; // 添加饲料管理API
|
||||||
|
this.inventory = InventoryApi; // 添加库存管理API
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
104
src/api/inventory.js
Normal file
104
src/api/inventory.js
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
import http from '../utils/http';
|
||||||
|
import { PaginationDTO, Response, StockLogSourceType } from '../enums';
|
||||||
|
|
||||||
|
// --- Typedefs for Inventory Management ---
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} StockAdjustmentRequest
|
||||||
|
* @property {number} change_amount - 变动数量, 正数为入库, 负数为出库, 单位: g
|
||||||
|
* @property {number} raw_material_id - 要调整的原料ID
|
||||||
|
* @property {string} [remarks] - 备注
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} StockLogResponse
|
||||||
|
* @property {number} after_quantity
|
||||||
|
* @property {number} before_quantity
|
||||||
|
* @property {number} change_amount
|
||||||
|
* @property {string} happened_at
|
||||||
|
* @property {number} id
|
||||||
|
* @property {number} raw_material_id
|
||||||
|
* @property {string} raw_material_name
|
||||||
|
* @property {string} remarks
|
||||||
|
* @property {number} source_id
|
||||||
|
* @property {StockLogSourceType} source_type
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} ListStockLogResponse
|
||||||
|
* @property {Array<StockLogResponse>} list
|
||||||
|
* @property {PaginationDTO} pagination
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} CurrentStockResponse
|
||||||
|
* @property {string} last_updated - 最后更新时间
|
||||||
|
* @property {number} raw_material_id - 原料ID
|
||||||
|
* @property {string} raw_material_name - 原料名称
|
||||||
|
* @property {number} stock - 当前库存量, 单位: g
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} ListCurrentStockResponse
|
||||||
|
* @property {Array<CurrentStockResponse>} list
|
||||||
|
* @property {PaginationDTO} pagination
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} AdjustStockParams
|
||||||
|
* @property {StockAdjustmentRequest} request - 库存调整请求
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} GetCurrentStockListParams
|
||||||
|
* @property {string} [order_by] - 排序字段, 例如 "stock DESC"
|
||||||
|
* @property {number} [page] - 页码
|
||||||
|
* @property {number} [page_size] - 每页数量
|
||||||
|
* @property {string} [raw_material_name] - 按原料名称模糊查询
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} GetStockLogListParams
|
||||||
|
* @property {string} [end_time] - 结束时间 (RFC3339格式)
|
||||||
|
* @property {string} [order_by] - 排序字段
|
||||||
|
* @property {number} [page] - 页码
|
||||||
|
* @property {number} [page_size] - 每页数量
|
||||||
|
* @property {number} [raw_material_id] - 按原料ID精确查询
|
||||||
|
* @property {Array<StockLogSourceType>} [source_types] - 按来源类型查询
|
||||||
|
* @property {string} [start_time] - 开始时间 (RFC3339格式, e.g., "2023-01-01T00:00:00Z")
|
||||||
|
*/
|
||||||
|
|
||||||
|
// --- API Functions ---
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调整原料库存
|
||||||
|
* @param {StockAdjustmentRequest} data - 库存调整请求
|
||||||
|
* @returns {Promise<Response<StockLogResponse>>}
|
||||||
|
*/
|
||||||
|
export const adjustStock = (data) => {
|
||||||
|
return http.post('/api/v1/inventory/stock/adjust', data);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前库存列表
|
||||||
|
* @param {GetCurrentStockListParams} params - 查询参数
|
||||||
|
* @returns {Promise<Response<ListCurrentStockResponse>>}
|
||||||
|
*/
|
||||||
|
export const getCurrentStockList = (params) => {
|
||||||
|
return http.get('/api/v1/inventory/stock/current', { params });
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取库存变动日志
|
||||||
|
* @param {GetStockLogListParams} params - 查询参数
|
||||||
|
* @returns {Promise<Response<ListStockLogResponse>>}
|
||||||
|
*/
|
||||||
|
export const getStockLogList = (params) => {
|
||||||
|
return http.get('/api/v1/inventory/stock/logs', { params });
|
||||||
|
};
|
||||||
|
|
||||||
|
export const InventoryApi = {
|
||||||
|
adjustStock,
|
||||||
|
getCurrentStockList,
|
||||||
|
getStockLogList,
|
||||||
|
};
|
||||||
16
src/enums.js
16
src/enums.js
@@ -64,6 +64,21 @@ export const LogChangeType = {
|
|||||||
CORRECTION: '盘点校正',
|
CORRECTION: '盘点校正',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存变动来源类型
|
||||||
|
* @enum {string}
|
||||||
|
*/
|
||||||
|
export const StockLogSourceType = {
|
||||||
|
PURCHASE: '采购入库',
|
||||||
|
FEEDING: '饲喂出库',
|
||||||
|
DETERIORATE: '变质出库',
|
||||||
|
SALE: '售卖出库',
|
||||||
|
MISCELLANEOUS: '杂用领取',
|
||||||
|
MANUAL: '手动盘点',
|
||||||
|
FERMENT_START: '发酵出库', // 原料投入发酵,从库存中扣除
|
||||||
|
FERMENT_END: '发酵入库', // 发酵料产出,作为新原料计入库存
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用药原因
|
* 用药原因
|
||||||
* @enum {string}
|
* @enum {string}
|
||||||
@@ -263,6 +278,7 @@ export const ZapcoreLevel = {
|
|||||||
PANIC: 4,
|
PANIC: 4,
|
||||||
FATAL: 5,
|
FATAL: 5,
|
||||||
INVALID: 6,
|
INVALID: 6,
|
||||||
|
NUM_LEVELS: 7, // 新增的级别数量
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user