异步导入项目合同接口
接口说明
URL:/gys/gems-web-api/contract/asyncBatchSave
接口用途:通过异步方式导入项目合同接口
提交方式:POST
请求参数:JSON格式字符串
说明:
1、校验合同成功后会同步返回任务ID(taskId),根据taskId查询导入结果;
重点说明
一、集成合同有以下两种场景:
1、在推送合同的时候,合同中的材料和合作单位已经同步到【广联达云平台】的基础数据中:
需要重点关注:合同中材料和合作单位的三方id必须和已经推送过来的材料和合作单位的三方id保持一致。
2、在推送合同的时候,合同中的材料和合作单位没有【广联达云平台】的基础数据中:此时,该接口会自动将合同中的材料和合作单位同步到项目管理平台的基础数据中:
需要重点关注:
a、在项目管理平台的【集成管理】-【数据集成】模块中,添加了材料和合作单位的数据源,并且这两个数据源的接入状态和分发状态都必须“启用”,否则,会导致合同推送失败。
b、合同接口中材料和合作单位的相关参数必须正确
二、originQuantity的使用:
当补充协议需要对主合同相同材料的数量进行变更时,会使用originQuantity,分为以下两种场景:
1、主合同下钢筋的quantity=50,补充协议下钢筋的originQuantity=0,quantity=30 表示材料量的新增,钢筋的总量为两个合同的累加=80
2、主合同下钢筋的quantity=50,补充协议下钢筋的originQuantity=50,quantity=30 表示材料量的更新,钢筋的总量为补充协议变更后数量=30
请求参数
合同主表属性
参数 | 类型 | 必须 | 取值范围(字符长度) | 默认值 | 描述 | |
---|---|---|---|---|---|---|
projectId | Long | N | 项目ID | |||
syncCode | String | Y | 64 | 项目同步编码 | ||
optFlag | int | Y | 0,2 | 操作。新增或修改:0,删除:2 | ||
serialNumber | String | Y | 64 | 单据编号 | ||
signDate | Date | Y | 签约日期 格式(yyyy-MM-dd) | |||
purchaseType | String | Y | 64 | 采购类型(集采,自采) | ||
code | String | Y | 64 | 合同编号 | ||
name | String | Y | 64 | 合同名称 | ||
unitId | String | Y | 100 | 第三方合同id | ||
partyAId | Long | N | 20 | 甲方ID(GYS系统的ID,可以不传) | ||
partyAName | String | Y | 255 | 甲方名称 | ||
partyBId | Long | N | 20 | 乙方ID(广联达系统的ID,可以不传,会根据三方ID自动补全) | ||
partyBName | String | Y | 255 | 乙方名称 | ||
partyBCreditCode | String | N | 255 | 第三方供应商的统一社会信用代码(如果供应商未提前上传,则该字段必填) | ||
partyUnitId | String | Y | 100 | 第三方供应商id(第三方乙方id) | ||
materialCatalog | String | N | 200 | 材料类别 | ||
unitPid | String | N | 100 | 第三方合同父id | ||
agreementTypeCode | String | N | 100 | 补充协议类型编码 | ||
agreementType | String | N | 100 | 补充协议类型标识 | ||
paymentMethod | String | N | 255 | 付款方式(后期结算,直接付款) | ||
money | BigDecimal | N | 19 | 合同金额 | ||
taxRate | BigDecimal | N | 19 | 税率 | ||
invoiceType | String | N | 255 | 发票类型 | ||
moneyUnit | String | N | 64 | 金额单位 | ||
remark | String | N | 255 | 备注 | ||
contractType | String | N | 64 | 合同类型(材料采购/设备租赁/周材租赁) | ||
calculateType | String | N | 64 | 计量方式(过磅计量/理论计量/点数计量) | ||
supplyType | String | N | 64 | 供货模式(甲供/已供) | ||
allowed | Boolean | N | 是否允许过磅(允许:true,不允许:false) | |||
contractFormCode | String | N | 64 | 合同形式编码 | ||
contractForm | String | N | 64 | 合同形式 | ||
effectiveDate | Date | N | 生效日期 | |||
statusType | Integer | N | 10 | 1 | 合同状态:-1废除,1履约,2中止,4终止,8已完成(不传值默认为履约) | |
calculateStandard | Integer | N | 8 | 计量基准:1供方量,2实际收获量 | ||
calculateDeviation | BigDecimal | N | 19,2 | 计量偏差 | ||
extend | String | N | 扩展字段,json |
contractMaterialVoList 合同材料细表属性
参数 | 类型 | 必须 | 取值范围(字符长度) | 默认值 | 描述 |
---|---|---|---|---|---|
materialId | Long | Y | 20 | 若materialType为0(材料),取值材料ID;若materialType为1(材料类别),取值材料类别ID;若materialType为2(其他方式),可不传 ;广联达材料ID,不知道可传默认值:-1 | |
code | String | Y | 64 | 若materialType为0(材料),取值材料编码;若materialType为1(材料类别),取值材料类别编码;若materialType为2(其他方式),可不传; | |
name | String | Y | 128 | 若materialType为0(材料),取值材料名称;若materialType为1(材料类别),取值材料类别名称; | |
unitId | String | Y | 100 | 第三方合同材料明细数据ID | |
unitPid | String | Y | 100 | 第三方合同ID | |
unitMaterialId | String | Y | 100 | 第三方材料id | |
materialType | Integer | N | 4 | 材料类型 0:材料;1:材料类别 | |
specification | String | N | 255 | 材料规格型号 | |
texture | String | N | 256 | 材质 | |
materialUnitId | Long | N | 20 | 材料单位ID | |
materialUnit | String | N | 45 | 材料单位 | |
originQuantity | BigDecimal | N | 19,5 | 材料变更前数量(适用于补充协议进行材料数量变更,详情见上方重点说明二) | |
quantity | BigDecimal | N | 19,5 | 材料数量 | |
materialBrand | String | N | 255 | 材料品牌 | |
moneyUnit | String | N | 20 | 货币单位 | |
includingTaxPrice | BigDecimal | N | 9,2 | 材料含税单价 | |
taxRate | BigDecimal | N | 9,2 | 税率 | |
moneyIncludingTax | BigDecimal | N | 19,2 | 含税金额 | |
excludingTaxPrice | BigDecimal | N | 9,2 | 材料无税单价 | |
moneyExcludingTax | BigDecimal | N | 19,2 | 无税金额 | |
taxAmount | BigDecimal | N | 19,2 | 税额 | |
remark | String | N | 255 | 备注 | |
referBizCode | String | N | 64 | 材料参考来源业务编码 | |
referId | Long | N | 20 | 参考来源ID | |
referSerialNumber | String | N | 64 | 参考来源单据编号 | |
unitDetailParentId | String | N | 100 | 第三方父明细Id | |
conversion | String | N | 255 | 转换系数 | |
conversionType | String | N | 32 | 换算规范 | |
extend | String | N | 扩展字段,json |
注:转换系数(conversion)的格式:[{ baseUnit:'米', baseUnitQuantity:1, targetUnit:'吨', targetUnitQuantity:1.12 }]
contractOtherFeeVoList 合同附加费细表属性
参数 | 类型 | 必须 | 取值范围(字符长度) | 默认值 | 描述 |
---|---|---|---|---|---|
code | String | Y | 64 | 费用编码 | |
name | String | Y | 128 | 费用名称 | |
unitId | String | Y | 100 | 第三方附加费行id(第三方系统Id) | |
unitPid | String | Y | 100 | 第三方合同ID | |
unit | String | N | 255 | 单位 | |
quantity | BigDecimal | N | 19,5 | 数量 | |
moneyUnit | String | N | 45 | 货币单位 | |
includingTaxPrice | BigDecimal | N | 9,2 | 含税单价 | |
taxRate | BigDecimal | N | 9,2 | 税率 | |
moneyIncludingTax | BigDecimal | N | 19,2 | 含税金额 | |
excludingTaxPrice | BigDecimal | N | 9,2 | 无税单价 | |
moneyExcludingTax | BigDecimal | N | 19,2 | 无税金额 | |
taxAmount | BigDecimal | N | 19,2 | 税额 | |
remark | String | N | 255 | 备注 |
请求参数jsonStr具体格式:
[
{
"projectId": 1231231231, -- 所属项目ID
"serialNumber":"A00001", --单据编号
"signDate":"2019-03-05", --签约日期
"purchaseType":"集采", -- 采购类型
"code":"WTHT20171024001-050", -- 合同编号
"name":"配砖合同(旭明)", -- 合同名称
"materialCatalog":"砖", --材料类别
"partyAId":null, --甲方ID
"partyAName":"狼图腾有限公司", --甲方名称
"partyBId":null, --乙方ID
"partyBName":"重庆市新兴有限公司", -- 乙方名称
"partyBCreditCode":"统一社会信用代码1", --统一社会信用代码
"paymentMethod":"后期结算", --付款方式
"money":50000, --合同金额
"moneyUnit":"元", --金额单位
"taxRate": 29.5, -- 税率
"invoiceType": "增值税专票", -- 发票类型显示值 增值税专票
"contractForm": "固定单价", -- 计价方式 固定单价
"contractFormCode": "gddj", -- 计价方式编码 固定单价的编码
"effectiveDate": "2019-03-05", -- 生效日期
"remark":"合同备注信息",
"syncCode":'PA00004, --项目层的同步编码
"contractType":"材料采购",-- 合同类型
"calculateType":"过磅计量", --计量方式
"supplyType":"甲供", --供货模式
"unitId":"123", -- 第三方合同id
"agreementTypeCode": "zlzx", -- 补充协议类型编码 增量增项编码
"agreementType": "增量增项", -- 补充协议类型显示值 增量增项
"partyUnitId":"dsf001", --第三方供应商id(第三方乙方id)
"allowed":true, -- 是否允许过磅
"statusType":1, --合同状态,1履约
"calculateStandard":1,-- 计量基准:1供方量,2实际收获量
"calculateDeviation":0.03,---计量偏差
"extend":"",-- 扩展字段,json
"optFlag":0, -- 新增或修改
"contractMaterialVoList": [
{
"materialType":0, -- 如果是材料,则传0
"materialId":-1, --材料ID
"unitMaterialId":"14", --第三方材料id
"code":"2041300400200002", --材料编码
"texture":"材质", --材质
"name":"螺纹钢", --材料名称
"specification":"规格03", --材料规格型号
"materialUnitId":null, --材料单位ID
"materialUnit":"匹", -- 材料单位
"originQuantity":0, -- 材料变更前数量
"quantity":100, -- 材料数量
"materialBrand":"首钢品牌123",
"moneyUnit":"元", --货币单位
"includingTaxPrice":10.6, -- 材料含税单价
"taxRate":0.52, -- 税率
"moneyIncludingTax":10600, --含税金额
"excludingTaxPrice":9, -- 材料无税单价
"moneyExcludingTax":9000, -- 无税金额
"taxAmount":1600, --税额
"remark":"材料备注",
"referBizCode":null, --材料参考来源业务编码
"referId":1, --参考来源ID
"referSerialNumber":"abc", --参考来源单据编号
"unitId":"1421333", -- 第三方合同材料ID(第三方系统Id)
"unitPid":"123", --第三方合同ID
"unitDetailParentId": "123", -- 补充协议明细的父明细Id
"extend":"",-- 扩展字段,json
"conversion":"[{baseUnit:'匹',baseUnitQuantity:1,targetUnit:'KG',targetUnitQuantity:0.53}]", -- 转换系数
"conversionType":"1匹=0.53KG" --换算规范
}
],
"contractOtherFeeVoList": [
{
"code":"2041300400200002", --费用编码
"name":"60m汽车泵", --费用名称
"unit":"立方米", -- 单位
"quantity":100, -- 数量
"moneyUnit":"万元", --货币单位
"includingTaxPrice":10.6, -- 含税单价
"taxRate":0.52, -- 税率
"moneyIncludingTax":10600, --含税金额
"excludingTaxPrice":9, -- 无税单价
"moneyExcludingTax":9000, -- 无税金额
"taxAmount":1600, --税额
"remark":"备注",
"unitPid":"123", --第三方合同id
"unitId":"123" --第三方费用项行ID
}
]
}
]
返回结果:
{
"data":{
"successList": [
{
"id": 123123, -- 物料侧合同ID
"projectId": 1231231231, -- 所属项目ID
"serialNumber": "A00001", --单据编号
"signDate": "2019-03-05", --签约日期
"purchaseType": "集采", -- 采购类型
"code": "WTHT20171024001-050", -- 合同编号
"name": "配砖合同(旭明)", -- 合同名称
"materialCatalog": "砖", --材料类别
"partyAId": null, --甲方ID
"partyAName": "狼图腾有限公司", --甲方名称
"partyBId": null, --乙方ID
"partyBName": "重庆市新兴有限公司", -- 乙方名称
"partyBCreditCode":"统一社会信用代码1", --统一社会信用代码
"paymentMethod": "后期结算", --付款方式
"money": 50000, --合同金额
"moneyUnit": "元", --金额单位
"taxRate": 29.5, -- 税率
"invoiceType": "增值税专票", -- 发票类型显示值 增值税专票
"contractForm": "固定单价", -- 计价方式 固定单价
"contractFormCode": "gddj", -- 计价方式编码 固定单价的编码
"effectiveDate": "2019-03-05", -- 生效日期
"remark": "合同备注信息",
"syncCode":'PA00004, --项目层的同步编码
"contractType": "材料采购",-- 合同类型
"calculateType": "过磅计量", --计量方式
"supplyType": "甲供", --供货模式
"unitId": "123", -- 第三方合同id
"agreementTypeCode": "zlzx", -- 补充协议类型编码 增量增项编码
"agreementType": "增量增项", -- 补充协议类型显示值 增量增项
"partyUnitId": "dsf001", --第三方供应商id(第三方乙方id)
"statusType":1, --合同状态,1履约
"allowed": true, -- 是否允许过磅
"optFlag": 0, -- 新增或修改
"contractMaterialVoList": [
{
"id": 123123, -- 物料侧合同材料明细ID
"materialType": 0, -- 如果是材料,则传0
"materialId": -1, --材料ID
"unitMaterialId": "14", --第三方材料id
"code": "2041300400200002", --材料编码
"texture": "材质", --材质
"name": "螺纹钢", --材料名称
"specification": "规格03", --材料规格型号
"materialUnitId": null, --材料单位ID
"materialUnit": "匹", -- 材料单位
"originQuantity":0, -- 材料变更前数量
"quantity": 100, -- 材料数量
"materialBrand": "首钢品牌123",
"moneyUnit": "元", --货币单位
"includingTaxPrice": 10.6, -- 材料含税单价
"taxRate": 0.52, -- 税率
"moneyIncludingTax": 10600, --含税金额
"excludingTaxPrice": 9, -- 材料无税单价
"moneyExcludingTax": 9000, -- 无税金额
"taxAmount": 1600, --税额
"remark": "材料备注",
"referBizCode":null, --材料参考来源业务编码
"referId":1, --参考来源ID
"referSerialNumber":"abc", --参考来源单据编号
"unitId": "1421333", -- 第三方合同材料ID(第三方系统Id)
"unitPid": "123", --第三方合同ID
"detailParentId": 12312 -- 物料侧父明细Id
"unitDetailParentId": "123", -- 补充协议明细的父明细Id
"conversion": "[{baseUnit:'匹',baseUnitQuantity:1,targetUnit:'KG',targetUnitQuantity:0.53}]", -- 转换系数
"conversionType": "1匹=0.53KG" --换算规范
}
]
}
],
"errorList": [
{
"projectId": 1231231231, -- 所属项目ID
"serialNumber": "A00001", --单据编号
"signDate": "2019-03-05", --签约日期
"purchaseType": "集采", -- 采购类型
"code": "WTHT20171024001-050", -- 合同编号
"name": "配砖合同(旭明)", -- 合同名称
"materialCatalog": "砖", --材料类别
"partyAId": null, --甲方ID
"partyAName": "狼图腾有限公司", --甲方名称
"partyBId": null, --乙方ID
"partyBName": "重庆市新兴有限公司", -- 乙方名称
"partyBCreditCode":"统一社会信用代码2", --统一社会信用代码
"paymentMethod": "后期结算", --付款方式
"money": 50000, --合同金额
"moneyUnit": "元", --金额单位
"taxRate": 29.5, -- 税率
"invoiceType": "增值税专票", -- 发票类型显示值 增值税专票
"contractForm": "固定单价", -- 计价方式 固定单价
"contractFormCode": "gddj", -- 计价方式编码 固定单价的编码
"effectiveDate": "2019-03-05", -- 生效日期
"remark": "合同备注信息",
"syncCode":'PA00004, --项目层的同步编码
"contractType": "材料采购",-- 合同类型
"calculateType": "过磅计量", --计量方式
"supplyType": "甲供", --供货模式
"unitId": "123", -- 第三方合同id
"agreementTypeCode": "zlzx", -- 补充协议类型编码 增量增项编码
"agreementType": "增量增项", -- 补充协议类型显示值 增量增项
"partyUnitId": "dsf001", --第三方供应商id(第三方乙方id)
"statusType":1, --合同状态,1履约
"allowed": true, -- 是否允许过磅
"optFlag": 0, -- 新增或修改
"contractMaterialVoList": [
{
"materialType": 0, -- 如果是材料,则传0
"materialId": -1, --材料ID
"unitMaterialId": "14", --第三方材料id
"code": "2041300400200002", --材料编码
"texture": "材质", --材质
"name": "螺纹钢", --材料名称
"specification": "规格03", --材料规格型号
"materialUnitId": null, --材料单位ID
"materialUnit": "匹", -- 材料单位
"originQuantity":0, -- 材料变更前数量
"quantity": 100, -- 材料数量
"materialBrand": "首钢品牌123",
"moneyUnit": "元", --货币单位
"includingTaxPrice": 10.6, -- 材料含税单价
"taxRate": 0.52, -- 税率
"moneyIncludingTax": 10600, --含税金额
"excludingTaxPrice": 9, -- 材料无税单价
"moneyExcludingTax": 9000, -- 无税金额
"taxAmount": 1600, --税额
"remark": "材料备注",
"referBizCode":null, --材料参考来源业务编码
"referId":1, --参考来源ID
"referSerialNumber":"abc", --参考来源单据编号
"unitId": "1421333", -- 第三方合同材料ID(第三方系统Id)`
"unitPid": "123", --第三方合同ID
"unitDetailParentId": "123", -- 补充协议明细的父明细Id
"conversion": "[{baseUnit:'匹',baseUnitQuantity:1,targetUnit:'KG',targetUnitQuantity:0.53}]", -- 转换系数
"conversionType": "1匹=0.53KG" --换算规范
}
]
}
],
"message":"数据校验成功:1条,失败:0条",
"taskId":584680794465280
},
"success":true
}
查询异步导入状态接口
接口说明
接口地址:/exotic/services/async/common/org/product/type/tasks/{taskId}/status
接口用途:查询异步导入合同任务的状态信息
提交方式:GET
说明:
1、任务状态值:Initial:初始化,doing:执行中,error:错误,done:正常结束
请求参数
参数 | 类型 | 必须 | 取值范围 | 默认值 | 描述 |
---|---|---|---|---|---|
taskId | Long | Y | 上一步结果返回的taskId,通过url的path传递 |
返回结果:
处理失败返回结果:
{
"code": 200,
"data": {
"message": "[\"未能正确匹配unitMaterialId:[202112140022]的材料,请检查材料必填项是否完整\"]", -- 错误信息
"status": "error", -- 状态,状态值参考Initial:初始化,doing:执行中,error:错误,done:正常结束
"updatedAt": 1639644441000
},
"message": "操作成功",
"success": true
}
处理成功返回结果:
{
"code":200,
"data":{
"status":"done", -- 状态,状态值参考Initial:初始化,doing:执行中,error:错误,done:正常结束
"updatedAt":1639965151732
},
"message":"操作成功",
"success":true
}