{
  "openapi": "3.0.1",
  "info": {
    "title": "默认模块",
    "description": "",
    "version": "1.0.0"
  },
  "tags": [],
  "paths": {
    "/api/v1/resource/list": {
      "get": {
        "summary": "分页查询资源列表",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "pageNum",
            "in": "query",
            "description": "",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "",
            "required": true,
            "example": 10,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "resourceType",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponsePageMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/{id}": {
      "get": {
        "summary": "根据ID查询资源详情",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseResource"
                }
              }
            }
          }
        },
        "security": []
      },
      "delete": {
        "summary": "删除资源",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource": {
      "post": {
        "summary": "新增资源",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Resource",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseLong"
                }
              }
            }
          }
        },
        "security": []
      },
      "put": {
        "summary": "修改资源",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResourceUpdateRequest",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/{id}/status": {
      "put": {
        "summary": "更新资源状态",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/{id}/quantity": {
      "put": {
        "summary": "更新资源数量",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "actualQuantity",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/stats/budget": {
      "get": {
        "summary": "查询资源预算汇总",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/pending-arrival": {
      "get": {
        "summary": "查询即将到位的资源",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "",
            "required": true,
            "example": 7,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListResource"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/resource/pending-approval": {
      "get": {
        "summary": "查询待审批的资源申请",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    }
  },
  "components": {
    "schemas": {
      "OrderItem": {
        "type": "object",
        "properties": {
          "column": {
            "type": "string",
            "description": "需要进行排序的字段"
          },
          "asc": {
            "type": "boolean",
            "description": "是否正序排列，默认 true",
            "default": true
          }
        }
      },
      "MapObject": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/key"
          }
        }
      },
      "PageMapObject": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapObject"
            },
            "description": "查询数据列表",
            "default": "Collections.emptyList()"
          },
          "total": {
            "type": "integer",
            "description": "总数",
            "format": "int64",
            "default": 0
          },
          "size": {
            "type": "integer",
            "description": "每页显示条数，默认 10",
            "format": "int64",
            "default": 10
          },
          "current": {
            "type": "integer",
            "description": "当前页",
            "format": "int64",
            "default": 1
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItem",
              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
            },
            "description": "排序字段信息",
            "default": "new ArrayList<>()"
          },
          "optimizeCountSql": {
            "type": "boolean",
            "description": "自动优化 COUNT SQL",
            "default": true
          },
          "searchCount": {
            "type": "boolean",
            "description": "是否进行 count 查询",
            "default": true
          },
          "optimizeJoinOfCountSql": {
            "type": "boolean",
            "description": "{@link #optimizeJoinOfCountSql()}",
            "default": true
          },
          "maxLimit": {
            "type": "integer",
            "description": "单页分页条数限制",
            "format": "int64"
          },
          "countId": {
            "type": "string",
            "description": "countId"
          },
          "pages": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "BaseResponsePageMapObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/PageMapObject",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "Resource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "",
            "format": "int64"
          },
          "resourceCode": {
            "type": "string",
            "description": "资源编号"
          },
          "projectId": {
            "type": "integer",
            "description": "项目ID",
            "format": "int64"
          },
          "resourceType": {
            "type": "string",
            "description": "资源类型: human-人力, material-物料, equipment-设备, software-软件, finance-资金, other-其他"
          },
          "resourceName": {
            "type": "string",
            "description": "资源名称"
          },
          "description": {
            "type": "string",
            "description": "资源描述"
          },
          "specification": {
            "type": "string",
            "description": "规格型号"
          },
          "unit": {
            "type": "string",
            "description": "单位"
          },
          "planQuantity": {
            "type": "number",
            "description": "计划数量"
          },
          "actualQuantity": {
            "type": "number",
            "description": "实际数量"
          },
          "unitPrice": {
            "type": "number",
            "description": "单价"
          },
          "currency": {
            "type": "string",
            "description": "币种"
          },
          "supplier": {
            "type": "string",
            "description": "供应商/来源"
          },
          "status": {
            "type": "string",
            "description": "状态: planned-计划中, requested-已申请, approved-已批准, procuring-采购中, arrived-已到货, in_use-使用中, completed-已完成"
          },
          "planArriveDate": {
            "type": "string",
            "description": "计划到位日期"
          },
          "actualArriveDate": {
            "type": "string",
            "description": "实际到位日期"
          },
          "responsibleId": {
            "type": "integer",
            "description": "负责人ID",
            "format": "int64"
          },
          "location": {
            "type": "string",
            "description": "存放位置"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "标签"
          },
          "extraData": {
            "type": "object",
            "properties": {},
            "description": "扩展数据"
          },
          "createBy": {
            "type": "integer",
            "description": "创建人",
            "format": "int64"
          },
          "createTime": {
            "type": "string",
            "description": "创建时间"
          },
          "updateBy": {
            "type": "integer",
            "description": "更新人",
            "format": "int64"
          },
          "updateTime": {
            "type": "string",
            "description": "更新时间"
          },
          "deleted": {
            "type": "integer",
            "description": "删除标记"
          }
        }
      },
      "key": {
        "type": "object",
        "properties": {}
      },
      "BaseResponseLong": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "integer",
            "description": "",
            "format": "int64"
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseResource": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/Resource",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseVoid": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "description": "",
            "type": "null"
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "ResourceUpdateRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "资源ID（必填）",
            "format": "int64"
          },
          "resourceType": {
            "type": "string",
            "description": "资源类型: human-人力, material-物料, equipment-设备, software-软件, finance-资金, other-其他"
          },
          "resourceName": {
            "type": "string",
            "description": "资源名称"
          },
          "description": {
            "type": "string",
            "description": "资源描述"
          },
          "specification": {
            "type": "string",
            "description": "规格型号"
          },
          "unit": {
            "type": "string",
            "description": "单位"
          },
          "planQuantity": {
            "type": "number",
            "description": "计划数量"
          },
          "actualQuantity": {
            "type": "number",
            "description": "实际数量"
          },
          "unitPrice": {
            "type": "number",
            "description": "单价"
          },
          "currency": {
            "type": "string",
            "description": "币种"
          },
          "supplier": {
            "type": "string",
            "description": "供应商/来源"
          },
          "status": {
            "type": "string",
            "description": "状态: planned-计划中, requested-已申请, approved-已批准, procuring-采购中, arrived-已到货, in_use-使用中, completed-已完成"
          },
          "planArriveDate": {
            "type": "string",
            "description": "计划到位日期"
          },
          "actualArriveDate": {
            "type": "string",
            "description": "实际到位日期"
          },
          "responsibleId": {
            "type": "integer",
            "description": "负责人ID（直接传递ID时使用）",
            "format": "int64"
          },
          "responsibleName": {
            "type": "string",
            "description": "负责人姓名（根据姓名自动匹配用户ID）"
          },
          "location": {
            "type": "string",
            "description": "存放位置"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "标签"
          },
          "extraData": {
            "type": "object",
            "properties": {},
            "description": "扩展数据"
          }
        }
      },
      "BaseResponseListMapObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapObject"
            },
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseListResource": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Resource",
              "description": "资源实体类\n对应数据库表: resource"
            },
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      }
    },
    "responses": {},
    "securitySchemes": {}
  },
  "servers": [],
  "security": []
}
