国贸2.0系统合同调用接口生成内部供应链的合同

This commit is contained in:
guojunyun
2025-10-26 01:01:45 +08:00
parent deb2cd12a8
commit eb389f05b3
14 changed files with 838 additions and 19 deletions

View File

@@ -1,28 +1,37 @@
package com.zt.plat.module.contractorder.api;
import cn.hutool.json.JSONObject;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.contractorder.api.dto.PrchOrdDtlDTO;
import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO;
import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO;
import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO;
import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderDetailsRespVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFieldDO;
import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper;
import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFieldMapper;
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
import com.zt.plat.module.contractorder.service.contract.ContractService;
import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_NOT_EXISTS;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_SUBMIT_ERP_FAIL;
@RestController
@Validated
@@ -34,7 +43,9 @@ public class ContractApiImpl implements ContractApi {
@Resource
private PurchaseOrderService purchaseOrderService;
@Resource
private RedisTemplate redisTemplate;
private ContractMainMapper contractMainMapper;
@Resource
private ContractOtherFieldMapper contractOtherFieldMapper;
@Override
public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) {
@@ -65,15 +76,560 @@ public class ContractApiImpl implements ContractApi {
return success(purchaseOrderWithDetailsDTOS);
}
@Transactional
@Override
public CommonResult<Boolean> create(@Valid @RequestBody ContractSaveReqVO reqVO) {
log.info("外部调用创建合同接口,参数:{}", reqVO);
redisTemplate.opsForHash().put(
"HT-TEMP",
reqVO.getContractPaperNumber()
+ "-"
+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmSSS")),
reqVO);
public CommonResult<Boolean> push(@RequestBody ContractRequest reqVO) {
// 合同主信息表映射
ContractMainDO contractMainDO = new ContractMainDO();
// 合同编号
contractMainDO.setContractPaperNumber(reqVO.getContractCode());
// 合同名称
contractMainDO.setContractName(reqVO.getContractName());
// 施工类型编号 默认值:SAPO2NCOZC
contractMainDO.setConstructionTypeNumber("SAPO2NCOZC");
// 施工类型名称 默认值:铜非施工合同支出类
contractMainDO.setConstructionTypeName("铜非施工合同支出类");
// 类别 默认值:购销合同(1)
contractMainDO.setCategory("1");
// 是否虚拟合同 默认值:否(0)
contractMainDO.setContractVirtual("0");
// 代理方 默认值:NULL
// 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd)
contractMainDO.setSignDate(LocalDateTime.ofInstant(reqVO.getSignDate().toInstant(), ZoneId.systemDefault()));
// 开始日期 -> 合同有效期起 (格式: yyyyMMdd)
contractMainDO.setStartDate(LocalDateTime.ofInstant(reqVO.getContractStartDate().toInstant(), ZoneId.systemDefault()));
// 结束日期 -> 合同有效期止 (格式: yyyyMMdd)
contractMainDO.setEndDate(LocalDateTime.ofInstant(reqVO.getContractEndDate().toInstant(), ZoneId.systemDefault()));
// 币种 -> 合同币种
contractMainDO.setCurrency(reqVO.getCurrencyCode());
// 原币金额 -> 预估含税总金额
contractMainDO.setCooAmount(reqVO.getEstimateAmountTotal());
// 本币金额 -> 预估含税总金额
contractMainDO.setBasicAmount(reqVO.getEstimateAmountTotal());
// 状态 默认值:正在执行(EF) 执行中
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode());
// 是否有预付款 默认值:否
contractMainDO.setHasPrepayment("0");
// 预付款比例 默认值:NULL
// 预付款金额 默认值:NULL
// 是否有质保金 默认值:否
contractMainDO.setHasQualityAmount("0");
// 质保金比例 默认值:NULL
// 质保金金额 默认值:NULL
// 是否内部企业 TODO
// 收支性质 默认值:支出
contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode());
// 是否框架合同 TODO
// 境内/境外 -> 客商信息:境内/外
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getPartnerCode());
}
// 建筑服务发生地 默认值:NULL
// 达到收款条件金额 默认值:NULL
// 是否有履约保证金 默认值:否
contractMainDO.setHasDeposit("0");
// 原币履约保证金 默认值:NULL
// 本币履约保证金 默认值:NULL
// 交易方式 默认值:先款后货
contractMainDO.setHasPayable("PRE_PAY");
// 合同类型 默认值:物流合同
contractMainDO.setContractType("3");
// 签署地 -> 签约地 (40-签约必填)
contractMainDO.setSignPlace(reqVO.getSignSite());
// 甲方公司编号(采购方) -> 账套代码
contractMainDO.setPurchaseCompanyNumber(reqVO.getBookId());
// 甲方公司名称 -> 账套名称 null
// 甲方地址 默认值:NULL
// 甲方法定代表人 默认值:NULL
// 乙方公司编号(销售方) -> 客商信息:供应商代码
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode());
}
// 乙方公司名称 -> 客商信息:供应商名称
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName());
}
// 乙方地址 默认值:NULL
// 乙方企业负责人 默认值:NULL
// 逻辑处理
// 操作标志 I 新增/更新D 删除
String operateFlag = reqVO.getOperateFlag();
// 系统合同ID
Long contractId = null;
// 根据合同编号查询合同信息
ContractMainDO oldContract = contractMainMapper.selectOne("CTRT_PPR_NUM", contractMainDO.getContractPaperNumber());
if ("I".equals(operateFlag)) {
if (oldContract != null) { // 修改合同
contractId = oldContract.getId();
contractMainDO.setId(contractId);
contractMainMapper.updateById(contractMainDO);
} else { // 新增合同
contractMainMapper.insert(contractMainDO);
contractId = contractMainDO.getId();
// 生成关联数据 TODO
// 合同唯一键
}
} else if ("D".equals(operateFlag)) {
if (oldContract == null) throw exception(CONTRACT_NOT_EXISTS);
contractId = oldContract.getId();
contractMainMapper.deleteById(contractId);
}
// 提交合同到erp
// 生成ERP合同映射表
ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO);
// 调用ERP模块
JSONObject erpResult = contractService.sendToErp(erpContractVO);
log.info("合同提交ERP结果{}", erpResult);
// 更新合同状态
if (!erpResult.getBool("success")) {
throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg"));
}
// 多余请求参数保存到动态条款明细表
List<ContractOtherFieldDO> contractOtherFieldDOS = new ArrayList<>();
ContractOtherFieldDO contractOtherFieldDO = new ContractOtherFieldDO();
// 基础信息-----
// 组织ID
contractOtherFieldDO.setFieldNumber("orgId");
contractOtherFieldDO.setFieldName("组织ID");
contractOtherFieldDO.setFieldValue(reqVO.getOrgId());
contractOtherFieldDO.setFieldDescription("组织ID");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 合同操作类型 (新增, 变更, 修正)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("operateType");
contractOtherFieldDO.setFieldName("合同操作类型 (新增, 变更, 修正)");
contractOtherFieldDO.setFieldValue(reqVO.getOperateType());
contractOtherFieldDO.setFieldDescription("合同操作类型 (新增, 变更, 修正)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 业务合同编号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("contractBusinessNo");
contractOtherFieldDO.setFieldName("业务合同编号");
contractOtherFieldDO.setFieldValue(reqVO.getContractBusinessNo());
contractOtherFieldDO.setFieldDescription("业务合同编号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 对方合同号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("contractExternalNo");
contractOtherFieldDO.setFieldName("对方合同号");
contractOtherFieldDO.setFieldValue(reqVO.getContractExternalNo());
contractOtherFieldDO.setFieldDescription("对方合同号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 系统合同版本号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("contractVersion");
contractOtherFieldDO.setFieldName("系统合同版本号");
contractOtherFieldDO.setFieldValue(reqVO.getContractVersion().toString());
contractOtherFieldDO.setFieldDescription("系统合同版本号");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 合同状态代码 (值集: 40-签约)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("contractStatus");
contractOtherFieldDO.setFieldName("合同状态代码 (值集: 40-签约)");
contractOtherFieldDO.setFieldValue(reqVO.getContractStatus().toString());
contractOtherFieldDO.setFieldDescription("合同状态代码 (值集: 40-签约)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 合同类型 (货运;货代;仓储;保险)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("contractType");
contractOtherFieldDO.setFieldName("合同类型 (货运;货代;仓储;保险)");
contractOtherFieldDO.setFieldValue(reqVO.getContractType().toString());
contractOtherFieldDO.setFieldDescription("合同类型 (货运;货代;仓储;保险)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 是否非标准合同文本
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("textType");
contractOtherFieldDO.setFieldName("是否非标准合同文本");
contractOtherFieldDO.setFieldValue(reqVO.getTextType().toString());
contractOtherFieldDO.setFieldDescription("是否非标准合同文本");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 是否固定单价 (0-浮动, 1-固定)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("priceType");
contractOtherFieldDO.setFieldName("是否固定单价 (0-浮动, 1-固定)");
contractOtherFieldDO.setFieldValue(reqVO.getPriceType().toString());
contractOtherFieldDO.setFieldDescription("是否固定单价 (0-浮动, 1-固定)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 结算方式
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("settleMethod");
contractOtherFieldDO.setFieldName("结算方式");
contractOtherFieldDO.setFieldValue(reqVO.getSettleMethod().toString());
contractOtherFieldDO.setFieldDescription("结算方式");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 对方合同号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("firstContractCode");
contractOtherFieldDO.setFieldName("对方合同号");
contractOtherFieldDO.setFieldValue(reqVO.getFirstContractCode().toString());
contractOtherFieldDO.setFieldDescription("对方合同号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 结算依据 (10-交货量, 20-卸车量)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("settleGist");
contractOtherFieldDO.setFieldName("结算依据 (10-交货量, 20-卸车量)");
contractOtherFieldDO.setFieldValue(reqVO.getSettleGist().toString());
contractOtherFieldDO.setFieldDescription("结算依据 (10-交货量, 20-卸车量)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 税率
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("priceTaxRate");
contractOtherFieldDO.setFieldName("税率");
contractOtherFieldDO.setFieldValue(reqVO.getPriceTaxRate().toString());
contractOtherFieldDO.setFieldDescription("税率");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("transType");
contractOtherFieldDO.setFieldName("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)");
contractOtherFieldDO.setFieldValue(reqVO.getTransType().toString());
contractOtherFieldDO.setFieldDescription("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 包装方式
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("packMethod");
contractOtherFieldDO.setFieldName("包装方式");
contractOtherFieldDO.setFieldValue(reqVO.getPackMethod().toString());
contractOtherFieldDO.setFieldDescription("包装方式");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 在途损耗
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("intransitLoss");
contractOtherFieldDO.setFieldName("在途损耗");
contractOtherFieldDO.setFieldValue(reqVO.getIntransitLoss().toString());
contractOtherFieldDO.setFieldDescription("在途损耗");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 提货地
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("pickupLocation");
contractOtherFieldDO.setFieldName("提货地");
contractOtherFieldDO.setFieldValue(reqVO.getPickupLocation().toString());
contractOtherFieldDO.setFieldDescription("提货地");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 仓库数
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("warehouseNum");
contractOtherFieldDO.setFieldName("仓库数");
contractOtherFieldDO.setFieldValue(reqVO.getWarehouseNum().toString());
contractOtherFieldDO.setFieldDescription("仓库数");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 按码单入库磅差比
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("weightDisparity");
contractOtherFieldDO.setFieldName("按码单入库磅差比");
contractOtherFieldDO.setFieldValue(reqVO.getWeightDisparity().toString());
contractOtherFieldDO.setFieldDescription("按码单入库磅差比");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 投保标的
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("insuredSubjectMatter");
contractOtherFieldDO.setFieldName("投保标的");
contractOtherFieldDO.setFieldValue(reqVO.getInsuredSubjectMatter().toString());
contractOtherFieldDO.setFieldDescription("投保标的");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 预计年保险总额
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("estimateCoverageAmount");
contractOtherFieldDO.setFieldName("预计年保险总额");
contractOtherFieldDO.setFieldValue(reqVO.getEstimateCoverageAmount().toString());
contractOtherFieldDO.setFieldDescription("预计年保险总额");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 预计年保险费
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("estimatePremium");
contractOtherFieldDO.setFieldName("预计年保险费");
contractOtherFieldDO.setFieldValue(reqVO.getEstimatePremium().toString());
contractOtherFieldDO.setFieldDescription("预计年保险费");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 保险费率
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("premiumRate");
contractOtherFieldDO.setFieldName("保险费率");
contractOtherFieldDO.setFieldValue(reqVO.getPremiumRate().toString());
contractOtherFieldDO.setFieldDescription("保险费率");
contractOtherFieldDO.setType("BigDecimal");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备注信息
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("remark");
contractOtherFieldDO.setFieldName("备注信息");
contractOtherFieldDO.setFieldValue(reqVO.getRemark());
contractOtherFieldDO.setFieldDescription("备注信息");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 经办人工号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("createdUser");
contractOtherFieldDO.setFieldName("经办人工号");
contractOtherFieldDO.setFieldValue(reqVO.getCreatedUser().toString());
contractOtherFieldDO.setFieldDescription("经办人工号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 经办人姓名
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("createdUserName");
contractOtherFieldDO.setFieldName("经办人姓名");
contractOtherFieldDO.setFieldValue(reqVO.getCreatedUserName().toString());
contractOtherFieldDO.setFieldDescription("经办人姓名");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签递交人工号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approveSubmitCode");
contractOtherFieldDO.setFieldName("拟签递交人工号");
contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitCode().toString());
contractOtherFieldDO.setFieldDescription("拟签递交人工号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签递交人姓名
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approveSubmitName");
contractOtherFieldDO.setFieldName("拟签递交人姓名");
contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitName().toString());
contractOtherFieldDO.setFieldDescription("拟签递交人姓名");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签呈批日期
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approveSubmitDate");
contractOtherFieldDO.setFieldName("拟签呈批日期");
contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitDate().toString());
contractOtherFieldDO.setFieldDescription("拟签呈批日期");
contractOtherFieldDO.setType("Date");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签通过人工号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approvePassCode");
contractOtherFieldDO.setFieldName("拟签通过人工号");
contractOtherFieldDO.setFieldValue(reqVO.getApprovePassCode().toString());
contractOtherFieldDO.setFieldDescription("拟签通过人工号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签通过人姓名
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approvePassName");
contractOtherFieldDO.setFieldName("拟签通过人姓名");
contractOtherFieldDO.setFieldValue(reqVO.getApprovePassName().toString());
contractOtherFieldDO.setFieldDescription("拟签通过人姓名");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 拟签通过日期
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("approvePassDate");
contractOtherFieldDO.setFieldName("拟签通过日期");
contractOtherFieldDO.setFieldValue(reqVO.getApprovePassDate().toString());
contractOtherFieldDO.setFieldDescription("拟签通过日期");
contractOtherFieldDO.setType("Date");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 对方签约人 (40-签约必填)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("signFirstPerson");
contractOtherFieldDO.setFieldName("对方签约人 (40-签约必填)");
contractOtherFieldDO.setFieldValue(reqVO.getSignFirstPerson().toString());
contractOtherFieldDO.setFieldDescription("对方签约人 (40-签约必填)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 我方签约人工号 (40-签约必填)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("signSecondPersonCode");
contractOtherFieldDO.setFieldName("我方签约人工号 (40-签约必填)");
contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonCode().toString());
contractOtherFieldDO.setFieldDescription("我方签约人工号 (40-签约必填)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 我方签约人
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("signSecondPersonName");
contractOtherFieldDO.setFieldName("我方签约人");
contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonName().toString());
contractOtherFieldDO.setFieldDescription("我方签约人");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 推荐签约人工号 (40-签约必填, Y/N)
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("onceAuthorityFlag");
contractOtherFieldDO.setFieldName("推荐签约人工号 (40-签约必填, Y/N)");
contractOtherFieldDO.setFieldValue(reqVO.getOnceAuthorityFlag().toString());
contractOtherFieldDO.setFieldDescription("推荐签约人工号 (40-签约必填, Y/N)");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 推荐签约人工号
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("signOnceAccredit");
contractOtherFieldDO.setFieldName("推荐签约人工号");
contractOtherFieldDO.setFieldValue(reqVO.getSignOnceAccredit().toString());
contractOtherFieldDO.setFieldDescription("推荐签约人工号");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段1
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol1");
contractOtherFieldDO.setFieldName("备用字段1");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol1().toString());
contractOtherFieldDO.setFieldDescription("备用字段1");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段2
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol2");
contractOtherFieldDO.setFieldName("备用字段2");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol2().toString());
contractOtherFieldDO.setFieldDescription("备用字段2");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段3
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol3");
contractOtherFieldDO.setFieldName("备用字段3");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol3().toString());
contractOtherFieldDO.setFieldDescription("备用字段3");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段4
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol4");
contractOtherFieldDO.setFieldName("备用字段4");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol4().toString());
contractOtherFieldDO.setFieldDescription("备用字段4");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段5
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol5");
contractOtherFieldDO.setFieldName("备用字段5");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol5().toString());
contractOtherFieldDO.setFieldDescription("备用字段5");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段6
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol6");
contractOtherFieldDO.setFieldName("备用字段6");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol6().toString());
contractOtherFieldDO.setFieldDescription("备用字段6");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段7
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol7");
contractOtherFieldDO.setFieldName("备用字段7");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol7().toString());
contractOtherFieldDO.setFieldDescription("备用字段7");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段8
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol8");
contractOtherFieldDO.setFieldName("备用字段8");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol8().toString());
contractOtherFieldDO.setFieldDescription("备用字段8");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段9
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol9");
contractOtherFieldDO.setFieldName("备用字段9");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol9().toString());
contractOtherFieldDO.setFieldDescription("备用字段9");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 备用字段10
contractOtherFieldDO = new ContractOtherFieldDO();
contractOtherFieldDO.setFieldNumber("extCol10");
contractOtherFieldDO.setFieldName("备用字段10");
contractOtherFieldDO.setFieldValue(reqVO.getExtCol10().toString());
contractOtherFieldDO.setFieldDescription("备用字段10");
contractOtherFieldDO.setType("String");
contractOtherFieldDO.setContractMainId(contractId.toString());
contractOtherFieldDOS.add(contractOtherFieldDO);
// 附件清单列表
// 动态条款表保存
//----- 嵌套列表
// 客商信息
// 收发港/站点
// 货物装卸要求
// 收付款账号
// 费用明细
// 服务费用项目
// 仓库明细
// 接货地址
return success(true);
}
}

View File

@@ -5,6 +5,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO;
import com.zt.plat.module.contractorder.api.vo.contract.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
import jakarta.validation.Valid;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.ResponseEntity;
@@ -203,5 +204,7 @@ public interface ContractService {
Boolean complete(List<Long> ids);
JSONObject sendToErp(ErpContractSaveReqVO erpContractVO);
ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO);
}

View File

@@ -1584,7 +1584,8 @@ public class ContractServiceImpl implements ContractService {
* @param erpContractVO 合同映射数据
* @return 提交结果
*/
private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) {
@Override
public JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) {
JSONObject erpResult = new JSONObject();
HashMap<String, String> result = erpContractService.submitErp(erpContractVO);
@@ -1651,7 +1652,8 @@ public class ContractServiceImpl implements ContractService {
* @param contractMainDO 合同主信息
* @return 合同映射信息
*/
private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
@Override
public ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
// 合同主信息表主键:BSE_CTRT_MAIN