国贸2.0系统合同调用接口生成内部供应链的合同:根据客商信息列表提交多个合同映射到erp
This commit is contained in:
@@ -186,17 +186,47 @@ public class ContractApiImpl implements ContractApi {
|
||||
throw exception(CONTRACT_UNKNOWN_OPERATE);
|
||||
}
|
||||
|
||||
// 提交合同到erp
|
||||
// 生成ERP合同映射表
|
||||
ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO);
|
||||
// 根据客商信息列表提交多个合同映射到erp
|
||||
if (reqVO.getPartnerList() == null || reqVO.getPartnerList().isEmpty()) {
|
||||
throw exception(CONTRACT_PARTNER_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 调用ERP模块
|
||||
JSONObject erpResult = contractService.sendToErp(erpContractVO);
|
||||
log.info("合同提交ERP结果:{}", erpResult);
|
||||
// 合同主信息-合同编号
|
||||
String contractPaperNumber = contractMainDO.getContractPaperNumber();
|
||||
// 合同主信息-合同名称
|
||||
String contractName = contractMainDO.getContractName();
|
||||
for (int i = 0; i < reqVO.getPartnerList().size(); i++) {
|
||||
Partner partner = reqVO.getPartnerList().get(i);
|
||||
|
||||
// 调用ERP失败
|
||||
if (!erpResult.getBool("success")) {
|
||||
throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg"));
|
||||
// 根据客商信息设置合同信息
|
||||
// 合同编号
|
||||
contractMainDO.setContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1)));
|
||||
reqVO.getPartnerList().get(i)
|
||||
.setErpContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1)));
|
||||
// 合同名称
|
||||
contractMainDO.setContractName(contractName + "_" + String.format("%03d", (i+1)));
|
||||
// 境内/境外 -> 客商信息:境内/外
|
||||
contractMainDO.setIsDomestic(partner.getDomesticOrOverseas());
|
||||
// 乙方公司编号(销售方) -> 客商信息:供应商代码
|
||||
contractMainDO.setSalesCompanyNumber(partner.getPartnerCode());
|
||||
// ERP乙方公司编码
|
||||
contractMainDO.setErpSalesCompanyNumber(partner.getPartnerCode());
|
||||
// 乙方公司名称 -> 客商信息:供应商名称
|
||||
contractMainDO.setSalesCompanyName(partner.getPartnerName());
|
||||
// ERP乙方公司名称
|
||||
contractMainDO.setErpSalesCompanyName(partner.getPartnerName());
|
||||
|
||||
// 生成ERP合同映射表
|
||||
ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO);
|
||||
|
||||
// 调用ERP模块
|
||||
JSONObject erpResult = contractService.sendToErp(erpContractVO);
|
||||
log.info("合同提交ERP结果:{}", erpResult);
|
||||
|
||||
// 调用ERP失败
|
||||
if (!erpResult.getBool("success")) {
|
||||
throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg"));
|
||||
}
|
||||
}
|
||||
|
||||
// 删除动态条款信息
|
||||
@@ -339,6 +369,8 @@ public class ContractApiImpl implements ContractApi {
|
||||
|
||||
// 合同主信息表映射
|
||||
ContractMainDO contractMainDO = new ContractMainDO();
|
||||
// 系统合同编号
|
||||
contractMainDO.setSystemContractNumber(contractService.generateSystemContractNumber("SAP02NCOZC"));
|
||||
// 合同编号
|
||||
contractMainDO.setContractPaperNumber(reqVO.getContractCode());
|
||||
// 合同名称
|
||||
@@ -385,10 +417,6 @@ public class ContractApiImpl implements ContractApi {
|
||||
contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode());
|
||||
// 是否框架合同
|
||||
contractMainDO.setIsFramework(reqVO.getIsFramework());
|
||||
// 境内/境外 -> 客商信息:境内/外
|
||||
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
|
||||
contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getDomesticOrOverseas());
|
||||
}
|
||||
// 建筑服务发生地 默认值:NULL
|
||||
// 达到收款条件金额 默认值:NULL
|
||||
// 是否有履约保证金 默认值:否
|
||||
@@ -410,18 +438,6 @@ public class ContractApiImpl implements ContractApi {
|
||||
contractMainDO.setErpPurchaseCompanyName("");
|
||||
// 甲方地址 默认值:NULL
|
||||
// 甲方法定代表人 默认值:NULL
|
||||
// 乙方公司编号(销售方) -> 客商信息:供应商代码
|
||||
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
|
||||
contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode());
|
||||
// ERP乙方公司编码
|
||||
contractMainDO.setErpSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode());
|
||||
}
|
||||
// 乙方公司名称 -> 客商信息:供应商名称
|
||||
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
|
||||
contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName());
|
||||
// ERP乙方公司名称
|
||||
contractMainDO.setErpSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName());
|
||||
}
|
||||
// 乙方地址 默认值:NULL
|
||||
// 乙方企业负责人 默认值:NULL
|
||||
|
||||
|
||||
@@ -207,4 +207,6 @@ public interface ContractService {
|
||||
JSONObject sendToErp(ErpContractSaveReqVO erpContractVO);
|
||||
|
||||
ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO);
|
||||
|
||||
String generateSystemContractNumber(String category);
|
||||
}
|
||||
|
||||
@@ -1635,7 +1635,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
operationId = "1";
|
||||
} else {
|
||||
// 3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0”
|
||||
ErpContractDO erpContract = erpContractService.getErpContractByMainId(contractMainDO.getId());
|
||||
ErpContractDO erpContract = erpContractService.getErpContractByPaperNumber(contractMainDO.getContractPaperNumber());
|
||||
if (erpContract != null) {
|
||||
operationId = "1";
|
||||
} else {
|
||||
@@ -1971,7 +1971,8 @@ public class ContractServiceImpl implements ContractService {
|
||||
*
|
||||
* @return 系统合同编号
|
||||
*/
|
||||
private String generateSystemContractNumber(String category) {
|
||||
@Override
|
||||
public String generateSystemContractNumber(String category) {
|
||||
|
||||
// 单据名称(拼音)
|
||||
String documentName = "XTHT";
|
||||
|
||||
Reference in New Issue
Block a user