API.md 6.1 KB

API 接口文档

基础信息

  • 基础路径: /api
  • 数据格式: JSON
  • 字符编码: UTF-8

通用响应格式

{
  "code": 200,
  "message": "success",
  "data": {}
}

接口列表

1. 获取物料交货计划列表

接口地址: GET /delivery-schedule/list

请求参数:

参数名 类型 必填 说明
page number 页码,默认1
pageSize number 每页条数,默认20
ponumber string 采购单号(模糊查询)
dsnum string 交货单号(模糊查询)
itemnum string 物料编码(模糊查询)
suppliercode string 供应商(模糊查询)
status string 状态:N-初始,P-已发布,C-关闭
keywords string 关键词搜索
searchMode string 搜索模式:AND-全部包含,OR-任一包含
startDate string 开始日期 YYYY-MM-DD
endDate string 结束日期 YYYY-MM-DD

SQL查询:

SELECT 
  ss.Id as id,
  ss.domain,
  ss.icdsid,
  ss.dsnum,
  ss.status,
  ss.itemnum,
  im.Descr,
  im.UM as um,
  ss.purgroup,
  ss.suppliercode,
  ss.supplier,
  ss.submitdate,
  ss.requestdate,
  ss.needdate,
  ss.ponumber,
  ss.poline,
  ss.schedqty,
  ss.lastsentdate,
  ss.lastsentqty,
  ss.sentqty,
  ss.restqty
FROM srm_polist_ds ss 
LEFT JOIN ItemMaster im ON ss.domain = im.Domain AND ss.itemnum = im.ItemNum
WHERE ss.isactive = 1
-- 添加查询条件
ORDER BY ss.Id DESC
LIMIT :pageSize OFFSET :offset

响应数据:

{
  "code": 200,
  "message": "success",
  "data": {
    "list": [
      {
        "id": "1",
        "dsnum": "DS2024001",
        "status": "N",
        "itemnum": "MAT001",
        "Descr": "物料描述",
        "um": "PC",
        "purgroup": "PG01",
        "suppliercode": "SUP001",
        "supplier": "供应商名称",
        "requestdate": "2024-01-15",
        "needdate": "2024-01-20",
        "schedqty": 100.00,
        "sentqty": 50.00,
        "restqty": 50.00,
        "lastsentdate": "2024-01-10",
        "lastsentqty": 50.00,
        "submitdate": null,
        "ponumber": "PO2024001",
        "poline": "10"
      }
    ],
    "total": 100
  }
}

2. 生成交货单

接口地址: POST /delivery-schedule/generate

请求参数:

{
  "domain": "组织编号",
  "operator": "操作人账号"
}

业务逻辑: 调用存储过程或业务逻辑生成新的交货单

响应数据:

{
  "code": 200,
  "message": "生成交货单成功",
  "data": null
}

3. 发布交货单

接口地址: POST /delivery-schedule/publish

请求参数:

{
  "ids": ["1", "2", "3"]
}

SQL更新:

UPDATE srm_polist_ds 
SET status = 'P', submitdate = NOW()
WHERE id IN (:ids)

响应数据:

{
  "code": 200,
  "message": "发布成功",
  "data": null
}

4. 取消发布交货单

接口地址: POST /delivery-schedule/unpublish

请求参数:

{
  "id": "1"
}

SQL更新:

UPDATE srm_polist_ds 
SET status = 'N', submitdate = NULL
WHERE id = :id

响应数据:

{
  "code": 200,
  "message": "取消发布成功",
  "data": null
}

5. 作废交货单

接口地址: POST /delivery-schedule/void

请求参数:

{
  "id": "1"
}

SQL更新:

UPDATE srm_polist_ds 
SET status = 'C', isactive = 0
WHERE id = :id

响应数据:

{
  "code": 200,
  "message": "作废成功",
  "data": null
}

6. 批量添加交货单

接口地址: POST /delivery-schedule/batch-add

请求参数:

{
  "ponumber": "PO2024001",
  "domain": "组织编号",
  "operator": "操作人账号"
}

存储过程调用:

EXEC pr_MES_GenerateJHD 
  @ponumber = :ponumber,
  @domain = :domain,
  @operator = :operator

响应数据:

{
  "code": 200,
  "message": "批量添加成功",
  "data": null
}

7. 获取采购单列表

接口地址: GET /purchase-order/list

请求参数:

参数名 类型 必填 说明
page number 页码,默认1
pageSize number 每页条数,默认20
ponumber string 采购单号(模糊查询)
itemnum string 物料编码(模糊查询)
supplier string 供应商(模糊查询)
sortField string 排序字段
sortOrder string 排序方向:asc-升序,desc-降序

SQL查询:

SELECT DISTINCT 
  m.PurOrd,
  d.Line,
  d.ItemNum,
  d.UM,
  m.Supp,
  s.Name,
  d.DueDate,
  d.QtyOrded,
  m.Buyer,
  m.Domain
FROM PurOrdMaster m 
INNER JOIN PurOrdDetail d ON m.RecID = d.PurOrdRecID
LEFT JOIN srm_polist_ds ds ON d.PurOrd = ds.ponumber 
  AND d.Line = ds.poline 
  AND ds.isactive = 1
LEFT JOIN ConsigneeAddressMaster s ON m.Domain = s.Domain 
  AND m.Supp = s.Address 
  AND s.Typed = 'Supp'
WHERE m.Status <> 'C' 
  AND d.Status <> 'C' 
  AND (ISNULL(ds.dsnum, '') = '' OR (ds.status = 'C' AND d.QtyOrded - d.RctQty > 0))
-- 添加查询条件和排序
ORDER BY m.PurOrd DESC
LIMIT :pageSize OFFSET :offset

响应数据:

{
  "code": 200,
  "message": "success",
  "data": {
    "list": [
      {
        "PurOrd": "PO2024001",
        "Line": "10",
        "ItemNum": "MAT001",
        "UM": "PC",
        "Supp": "SUP001",
        "Name": "供应商名称",
        "DueDate": "2024-01-20",
        "QtyOrded": 100.00,
        "Buyer": "PG01",
        "Domain": "DOMAIN01"
      }
    ],
    "total": 50
  }
}

错误码说明

错误码 说明
200 成功
400 请求参数错误
401 未授权
403 无权限
404 资源不存在
500 服务器错误

注意事项

  1. 所有日期格式统一为 YYYY-MM-DDYYYY-MM-DD HH:mm
  2. 数值类型保留2位小数
  3. 分页从1开始计数
  4. 模糊查询使用 LIKE '%keyword%' 方式
  5. 需要在请求头中携带 Authorization: Bearer {token} 进行身份验证