预算冻结 、占用、释放

说明

可用于外部系统调用该接口冻结、占用、释放每刻的可用预算。

注:

  1. 如需要做预算释放,amount参数传负数即可。
  2. 如已冻结需要转为占用,则需要先释放相应金额,再调用占用接口冻结相应金额。
  3. 此接口为全部失败,即一条数据错误则整批失败。
  4. 预算组织传参规则:若不传orgBizCode而传具体匹配条件,则需根据对应预算组织匹配条件传参:
    1. 若配置的条件为且关系,则必须传入所有参数才能匹配成功。如配置了承担人为A1且承担部门为B2,则必须传入employeesNo为A1和departmentBizCode为B2。
    2. 若配置的条件为或关系,则传入任一参数均能匹配成功。如配置了承担人为A1或承担部门为B2,则传employeesNo为A1或departmentBizCode为B2均能成功。
  5. 预算科目传参规则:若不传subjectBizCode而传具体匹配条件,则需根据对应预算科目配置类型传参:
    1. 若配置的类型为费用类型+自定义档案,则必须传入两个类型的参数才能匹配成功,但若某一参数有多个值,可传该参数任一值。如配置费用A1、A2、A3,自定义档案B1、B2,则传expenseTypeBizCode为A1/A2/A3和referenceDataDetailBizCodes包含B1/B2任一组合均可成功。
  6. 当参数集合中有任一参数忽略弱控强占预算时,所有参数都会忽略弱控强占预算,参考3
  7. 若写入金额的币种和预算方案的预算币种不一致,则会根据操作时间时的汇率转换(接口写入时生效汇率)。

接口限制

该接口单笔最多支持50条明细。

接口地址

/api/openapi/budget/{operationType}
冻结:operationType = "FREEZE"
占用:operationType ="OCCUPY"
释放:OCCUPY/FREEZE均可

请求类型

POST

请求参数

参数说明

参数名称 类型 是否必填 参数说明 默认值
uniqueCode String(25) 外部写入的行数据唯一标识(可自定义;全局唯一),不可重复,重复的话会提示异常。长度<=25
type String(50) 预算编制类型 固定值:EXTERNAL_OPENAPI
orgMatch Map 用于匹配预算组织的参数
subjectMatch Map 用于匹配预算科目的参数(若系统内对应预算方案未配置需匹配预算科目,则此参数不传)
budgetTime long 用于匹配预算期间的时间,精确到毫秒,例如:1648693651000
amount Bigdecimal 调整预算的金额,精确到2位小数。
冻结/占用:传正数,如100.00
释放:传负数,如-100.00
currency String(50) 币种
如:人民币:CNY。若所传币种和预算方案币种不一致,则会根据系统内汇率转换为预算方案币种并调整预算金额。
reportCode String(100) 外部系统单据号、订单号 ,长度<=100
desc String(200) 事由,描述
ignoreWeakControl Boolean 当弱控超标时,是否忽略弱控提示强占预算,当参数集合中有其他参数忽略弱控提示时,该值会默认为true false
字段名称 类型 是否必填 字段说明 默认值
orgBizCode String(50) 预算组织编码。该字段有值时,将不会再使用下面的字段匹配预算组织
departmentBizCode String(50) 用于匹配预算组织的部门编码
employeesNo String(50) 用于匹配预算组织的人员编码
legalEntityBizCode String(50) 用于匹配预算组织的公司抬头编码
referenceDataDetailBizCodes List<String> 用于匹配预算组织的选项编码
字段名称 类型 是否必填 字段说明 默认值
subjectBizCode String(50) 预算科目编码,该字段有值时,将不会再使用下面的字段匹配预算科目
expenseTypeBizCode String(50) 用于匹配预算科目的费用类型编码
referenceDataDetailBizCodes List<String> 用于匹配预算科目的选项编码

参数样例

[{
  "uniqueCode": "uniqueCode_001",
  "type": "EXTERNAL_OPENAPI",
  "orgMatch": {
    "orgBizCode": "",
    "departmentBizCode": "",
    "employeesNo": "A1",
    "legalEntityBizCode": "",
    "referenceDataDetailBizCodes": []
  },
  "subjectMatch": {
    "subjectBizCode": "",
    "expenseTypeBizCode": "A1",
    "referenceDataDetailBizCodes": ["B1"]
  },
  "budgetTime": "1648025714000",
  "amount": "10000.00",
  "currency": "CNY",
  "reportCode": "",
  "desc": ""
}]

响应参数

响应参数说明

参数名称 类型 是否必填 参数说明
uniqueCode String(25) 一行数据的唯一标识,对应入参的uniqueCode
matchSuccess booloon 该明细行是否,匹配成功 或 冻结成功 或 占用成功的标记位
budgetUnitCode String(25) 匹配到的预算单元code
budgetOrgCode String(25) 匹配到的预算组织bizCode
budgetSubjectCode String(25) 匹配到的预算科目bizCode
periodNum int 匹配到的预算单元期数
usableAmount Bigdecimal 该预算单元的可用金额(含结转/科目共享)减去本次执行金额
excessAmount Bigdecimal 超标金额
errorMessage String(200) 错误信息
level String 错误类型,null为无异常,"ERROR"为强控异常,“WARNING”为弱控异常

参数样例

正确示例返回

{
    "code": "ACK",
    "message": "",
    "data": [
        {
            "uniqueCode": "hs0039",
            "budgetUnitCode": "BDG2206011DUWY0SG",
            "budgetOrgCode": "BDG2206011DOBR75S",
            "budgetSubjectCode": "BDG2206011DPGNQ4G",
            "periodNum": 1,
            "usableAmount": 700.00,
            "excessAmount": 0,
            "matchSuccess": true,
            "errorMessage": null,
            "level": null
        }
    ],
    "errorCode": null,
    "success": true
}

错误示例返回

{
    "code": "NACK",
    "message": "",
    "data": [
        {
            "uniqueCode": "hs0038",
            "budgetUnitCode": "BDG2206011DUWY0SG",
            "budgetOrgCode": "budget_org_code_hs",
            "budgetSubjectCode": "budget_subject_hs",
            "periodNum": 1,
            "usableAmount": 900.00,
            "excessAmount": 4100.00,
            "matchSuccess": false,
            "errorMessage": "该预算 小狼的预算组织-小狼的预算科目-10期 已超标 CNY:4100.00",
            "level": "ERROR"
        }
    ],
    "errorCode": null,
    "success": false
}
{
   "code": "NACK",
   "message": "预算组织不存在,请检查 [orgBizCode]",
   "data": null,
   "errorCode": null,
   "success": false
}

常见错误提示说明--data.errorMessage

错误提示 说明
该预算 小狼的预算组织-小狼的预算科目-10期 已超标 CNY:4100.00 该预算组织【小狼的预算组织】+预算科目【小狼的预算科目】匹配到的预算行的第【10期】预算金额超标,超标金额为【4100.00】
存在已经执行过的uniqueCode uniqueCode参数全局唯一且长度<=25
未匹配到预算单元 1、入参budgetTime不在每刻已启用预算方案的预算期间内;2、已启用的预算方案不按照科目编制,且入参的预算组织无法匹配预算行
此科目下未找到预算组织,请联系管理员 没有该预算组织+预算科目匹配的预算行

常见错误提示说明--message

错误提示 说明
预算组织不存在,请检查 [orgBizCode] 该预算组织【orgBizCode】系统内不存在
预算科目不存在,请检查 [subjectBizCode] 该预算科目【subjectBizCode】系统内不存在
存在uniqueCode为空或者长度>25,请检查 uniqueCode参数必填且长度<=25
Copyright © 杭州每刻科技有限公司 www.maycur.com all right reserved,powered by Gitbook该文件修订时间: 2024-11-20 10:52:00

results matching ""

    No results matching ""

    results matching ""

      No results matching ""