单一维度个人预算编制
接口:/budget/single/formulate/personal
Method: POST
数据格式:JSON
请求参数:
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
budgetYear | String | Y | 预算的年度,例如2017,2018等 |
budgetTargetBizCode | String | Y | 需要编制预算的个人工号 |
budgetaryAccountCode | String | Y | 三级预算科目的编码 |
budgetAmounts | BigDecimal[] | Y | 各期预算总金额。 校验规则一:大于0,小数点后位数不多于两位; 校验规则二:数组的size必须与预算的科目的周期匹配,周期=月度(size=12), 周期=季度(size=4),周期=半年(size=2),周期=年度(size=1); 校验规则三:传给每刻的金额不能小于(每刻系统中已使用+已冻结) |
currency | String | N | 默认CNY,其他值需要与我们系统的币种符号匹配,币种跟随员工,如果同一个员工两次币种不同,只取第一次的值 |
principalEmployeeId | String | N | 算科目的负责人的工号,不填则没有预算负责人 |
- 返回参数:
字段 | 描述 |
---|---|
code | “ACK”代表操作成功,“NACK”代表操作失败 |
message | 显示操作失败的原因 |
data | 操作失败的数据 |
- 请求示例:
成功的请求
{
"data":[
{
"budgetYear":"2018",
"budgetTargetBizCode":"EM1",
"budgetaryAccountCode":"xiyi1",
"budgetAmounts":[100,100,100,180],
"currency":"CNY",
"principalEmployeeId":"007"
},{
"budgetYear":"2018",
"budgetTargetBizCode":"EM2",
"budgetaryAccountCode":"xiyi2",
"budgetAmounts":[100,100,100,180],
"currency":"CNY",
"principalEmployeeId":"007"
}
],
"timestamp":1497603851171
}
部分失败的请求
{
"data":[{
"budgetYear":"2018",
"budgetTargetBizCode":"Em1",
"budgetaryAccountCode":"xiyi2",
"budgetAmounts":[100,100,100,180],
"currency":"CNY",
"principalEmployeeId":"007"
},{
"budgetYear":"2018",
"budgetTargetBizCode":"EM2",
"budgetaryAccountCode":"xiyi3",
"budgetAmounts":[100,100,100,180],
"currency":"CNY",
"principalEmployeeId":"007"
}],
"timestamp":1497603851171
}
- 返回示例:
成功的返回
{
"code":"ACK",
"message":"操作成功"
}
部分失败的返回
{
"code": "NACK",
"message": "存在不合法数据,请求修改后重新提交",
"data": [
{
"budgetYear": "2018",
"budgetTargetBizCode": "EM1",
"budgetaryAccountCode": "xiyi3",
"budgetAmounts": [
100,
100,
100,
180
],
"currency": "CNY",
"principalEmployeeId": "007",
"errorMsg": "员工工号不正确"
}
],
"args": null,
"linkDetail": false,
"nonBizError": false
}
- 系统异常对照表
异常提示 | 描述 |
---|---|
* 时间戳小于之前的请求 | 请求时,对请求时间(timestamp)的校验,每刻的请求时间戳精确到毫秒 |
* 数据为空 | 当传入的编制预算的集合(data)为空时抛出 |
* 年份为必填项 | 年度(budgetYear)为空时抛出 |
* 预算年份异常 | 没有设置该年度(budgetYear)的预算期间 |
* 预算科目编码为必填项 | 三级预算科目(budgetaryAccountCode)为空时抛出 |
* 预算科目不正确 | 三级预算科目(budgetaryAccountCode)不存在时抛出 |
* 金额为必填项 | 各期预算总金额(budgetAmounts)为空时抛出 |
* 金额需要>=0 | 预算编制的总金额(budgetAmounts)存在小于0时抛 |
* 小数位数过多 | 当传入的金额小数位数大于2时抛出 |
* 员工工号为必填项 | 需要编制预算的员工的工号(budgetTargetBizCode)为空时抛出 |
* 员工工号不正确 | 需要编制预算的员工的工号(budgetTargetBizCode)不存在时抛出 |
* 币种无法匹配 | 当传入的预算币种(currency)没有在每刻中维护的时候抛出 |
* 预算负责人工号不正确 | 预算负责人工号(principalEmployeeId)不正确是抛出 |
* 预算期间类型不正确 | 填入的(budgetAmounts)不能对应到每一期时抛出(预算期间总数年度:共1期、半年:共2期、季度:共4期、月度:共12期) |
* 预算总额+转入金额低于已被使用预算总和 | 预算编制的总金额(budgetAmounts)中存在预算总额小于已使用总额的期数 |
* 有重复数据 | 当传入参数里存在budgetYear + ":" + budgetTargetCode + ":" + budgetaryAccountCode完全相同的多条记录时抛出 |
* 系统异常 | 系统未知异常 |