批量保存合同详情

  • 接口:/corp/contract/save

  • Method:POST

  • 数据格式:JSON

  • 请求参数:

参数 类型 是否必填 描述
contractId String Y 合同编号
businessCode String N 合同单据号
contractName String Y 合同名称
totalAmount BigDecimal N 合同总金额(当合同的类型为控制金额的和同时,需要填入一个大于0的数值)
fulfillAmount BigDecimal N 已履行金额
applicantUserEmployeeId String Y 申请人工号
agentUserEmployeeIds array Y 责任人工号
agentDepartmentBizCodes array N 责任部门
supplierBizCode String Y 供应商业务编码
departmentBizCode String Y 申请人部门编码
subsidiaryBizCode String Y 业务实体编码
formSubTypeBizCode String Y 单据类型编码(合同的单据类型)
externalLink String Y 外部链接,可含有参数{employeeId},将替换成员工工号
freezeBudget boolean Y 是否占用预算(当合同的类型为不控制金额的合同时,不能占预算,值必须为false)
budgetExecutingForms List<BudgetExecutingForm> N 占用预算的请求对象(当需要占预算的时候才填入这部分信息)
customFormValues CustomFormValue数组 自定义表单内容
currency String N 合同币种(默认业务实体币种),如:CNY、USD
attachmentDtoList AttachmentDto数组 N 附件数据
submitAt long N 传时间戳,精确到毫秒,不能超过当前时间(不传该字段,默认当前时间)
contractType String N 合同类型(normal -普通合同(默认);append- 附加合同)
mainContractBizCode String N 关联主合同编码(若合同类型为附加合同则必填)
contractDeadline long N 合同到期日
BudgetExecutingForm结构
参数 类型 是否必填 描述
budgetaryAccountBizCode String Y 预算三级科目业务编码
budgetEntryTargetType String Y 目标预算类型,可选值为:SUBSIDIARY - 业务实体预算, DEPARTMENT - 部门预算,
AUX_ACCOUNTING - 项目预算, PERSONAL - 个人预算
budgetAttributionDate Date Y 预算归属日期
auxAccountingBizCode String N 项目预算的项目编码,当目标预算类型为AUX_ACCOUNTING时,需要传入此参数
employeeId String N 个人预算的员工工号,当目标预算类型为PERSONAL时,需要传入此参数
departmentBizCode String N 部门预算的部门编码,当目标预算类型为DEPARTMENT时,
需要传入此参数,当使用部门预算时,如果预算业务实体编码为空,
使用不带业务实体的部门预算,如果有值则使用带业务实体的部门预算
subsidiaryBizCode String N 业务实体预算的业务实体编码,当需要占业务实体预算或者是带有业务实体的部门预算
的时候需要传入此参数,并且值应该与合同的业务实体一致
amount BigDecimal Y 冻结的预算金额,所有冻结明细的总金额不允许超出合同的总金额
CustomFormValue 结构(详细说明请参考-自定义字段参数说明
参数 类型 是否必填 描述
identifier string Y 字段占位符
value string 字段内容
detailFieldValues List<Map<String,String>> 明细类型字段
installmentFieldValues List<Map<String,String>> 分期付款类型字段
AttachmentDto结构
参数 类型 是否必填 描述
fileName string Y 文件名
fileUrl string N 有效文件url
base64 string N 文件base64

注:fileUrl 与 base64 二选一必填一个,fileUrl优先

  • 该接口采用单条失败的处理方式,即整批数据中,如果只有其中的几条因为各种原因失败,那么只有那几条数据不会被保存;其它的数据仍然会被正常处理;错误数据的位置会被放在errorData里面errorData为结构体,包含出错记录位置, 以及与之对应的出错信息; 类似 {"请检查第1条数据": "供应商编码不正确"}; 具体参见失败实例;

  • 请求示例:包含分期付款组件导入

installmentFieldValues 参数

参数 类型 描述
installmentFieldValues List<Map<String,String>> 分期付款类型字段
fieldXX-1 付款金额
fieldXX-2 支付状态(PAID-已支付)(UNPAID-未支付)
fieldXX-3 付款日期
componentDataCode 更新付款计划对应期数编码(不传表示新增,原先未支付对应的期数会删除)
customRowNo 若用户系统维护了合同付款计划期数行ID,可传该参数与每刻期数行ID(componentDataCode)映射
  • 请求示例:
{
    "data":[
        {
            "contractId":"22",
            "businessCode":"MK-001",
            "contractName":"openApi导入分期合同名字",
            "totalAmount":999,
            "applicantUserEmployeeId":"200070",
            "agentUserEmployeeIds":[
                "200070"
            ],
            "supplierBizCode":"FW00001900",
            "departmentBizCode":"www",
            "subsidiaryBizCode":"test",
            "formSubTypeBizCode":"PLC2112281HR4V7NK",
            "externalLink":"",
            "freezeBudget":false,
            "contractType":"append",
            "mainContractBizCode":"MK822036121",
            "attachmentDtoList":[
                            {
                                "fileName":"picture1.png",
                                "fileUrl":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F202105%2F29%2F20210529001057_aSeLB.thumb.1000_0.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1661331430&t=4ccd64b1b51c96f6d8cb8e73851072ab"
                            },
 {
                                "fileName":"picture1.png",
                                "base64":"UEsDBBQACAgIAEZYpVQAAAAAAAAAAAAAAAAJAAAAZG9jUHJvcHMvAwBQSwc..."
                            }

],
            "customFormValues":[
                {
                    "identifier":"field10",
                    "value":"",
                    "installmentFieldValues":[
                        {
                            "field10-1":100,
                            "field10-2":"2021-03-29",
                            "field10-3":"PAID",
                            "customRowNo":"" 
                        },
                        {
                            "field10-1":200,
                            "field10-2":"2021-03-30",
                            "field10-3":"UNPAID",
                            "customRowNo":""
                        }
                    ]
                }
            ]
        }
    ]
}

image-分期付款导入合同示意图.png

  • 请求示例1:不控制金额的合同(不能占用预算)
{
  "timestamp": "1488522206",
  "data": [
    {
      "contractId": "AA0044",
      "contractName": "不控金额示例合同",
      "totalAmount": "",//可以是任意数值
      "fulfillAmount": 0,
      "applicantUserEmployeeId": "EM10001",
      "agentUserEmployeeIds": [
        "EM10000",
        "EM10002"
      ],
      "supplierBizCode": "1231",
      "externalLink": "www.test.com/AA0044",
      "subsidiaryBizCode": "EM-SUB1",
      "departmentBizCode": "EM-DEP1",
      "formSubTypeBizCode": "EM-FORM",
      "freezeBudget": false//必须为false
    }
  ]
}
  • 请求示例2:控制金额但不占预算的合同
{
  "timestamp": "1488522206",
  "data": [
    {
     "contractId": "AA0044",
      "contractName": "控制金额不占预算示例合同",
      "totalAmount": "100",
      "fulfillAmount": 0,
      "applicantUserEmployeeId": "EM10001",
      "agentUserEmployeeIds": [
        "EM10000",
        "EM10002"
      ],
      "supplierBizCode": "1231",
      "externalLink": "www.test.com/AA0044",
      "subsidiaryBizCode": "EM-SUB1",
      "departmentBizCode": "EM-DEP1",
      "formSubTypeBizCode": "EM-FORM",
      "freezeBudget": false
    }
  ]
}
  • 请求示例1:控制金额并且占预算的合同
{
  "timestamp": "1488522206",
  "data": [
    {
      "contractId": "AA0044",
      "contractName": "占预算示例合同",
      "totalAmount": "100",
      "fulfillAmount": 0,
      "applicantUserEmployeeId": "EM10001",
      "agentUserEmployeeIds": [
        "EM10000",
        "EM10002"
      ],
      "supplierBizCode": "1231",
      "externalLink": "www.test.com/AA0044",
      "subsidiaryBizCode": "EM-SUB1",
      "departmentBizCode": "EM-DEP1",
      "formSubTypeBizCode": "EM-FORM",
      "freezeBudget": true,
      "budgetExecutingForms": [{
        "budgetaryAccountBizCode": "EM-BA1",
        "budgetEntryTargetType": "SUBSIDIARY",
        "budgetAttributionDate": "2018-06-15",
        "departmentBizCode": "111",
        "auxAccountingBizCode": "",
        "subsidiaryBizCode": "SUB1",
        "employeeId": ""
      }]
    }
  ]
}
  • 返回示例:上传成功的返回
{
    "code": "ACK",
    "message": "",
    "data": {},
    "args": null,
    "linkDetail": false,
    "nonBizError": false
}
  • 返回示例2:上传失败的返回
{
    "code": "NACK",
    "message": null,
    "data": {
        "请检查第1条数据": "该合同已经存在"
    },
    "args": null,
    "linkDetail": false,
    "errorData": {
        "请检查第1条数据": "该合同已经存在"
    },
    "nonBizError": false
}

合同单据类型的详情页面:

有一个开关---根据合同金额对关联对公支付单的支付金额进行控制

1、开关打开,合同控制金额,接口传入该类型的合同:合同金额必填,值大于0,可以占用预算;

2、当开关关闭时,合同不控制金额,接口传入该类型的合同:合同金额不必填(可以填写任意数值),不可以占预算(即"freezeBudget"字段的值必须为false )

results matching ""

    No results matching ""