From eb389f05b32266b0d8de8cd7b18fb0db6f4841c2 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Sun, 26 Oct 2025 01:01:45 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=9B=BD=E8=B4=B82.0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=90=88=E5=90=8C=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=86=85=E9=83=A8=E4=BE=9B=E5=BA=94=E9=93=BE=E7=9A=84?= =?UTF-8?q?=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/contractorder/api/ContractApi.java | 8 +- .../vo/contract/international/Account.java | 18 + .../international/ContractRequest.java | 91 +++ .../vo/contract/international/Freight.java | 33 + .../vo/contract/international/GoodsSite.java | 24 + .../international/LoadingRequirement.java | 18 + .../vo/contract/international/Partner.java | 21 + .../contract/international/ReceivingAddr.java | 23 + .../vo/contract/international/ServiceFee.java | 14 + .../api/vo/contract/international/Storge.java | 15 + .../enums/ErrorCodeConstants.java | 1 + .../contractorder/api/ContractApiImpl.java | 582 +++++++++++++++++- .../service/contract/ContractService.java | 3 + .../service/contract/ContractServiceImpl.java | 6 +- 14 files changed, 838 insertions(+), 19 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index 6b94287..1f3ee92 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -4,7 +4,7 @@ package com.zt.plat.module.contractorder.api; import com.zt.plat.framework.common.pojo.CommonResult; 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.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -34,7 +34,7 @@ public interface ContractApi { @Operation(summary = "更新订单状态", description = "通过订单编号获取订单信息") CommonResult> getOrderByOrderNo(@RequestBody List orderNoS); - @PostMapping(PREFIX + "/create") - @Operation(summary = "创建合同") - CommonResult create(@Valid @RequestBody ContractSaveReqVO reqVO); + @PostMapping(PREFIX + "/send") + @Operation(summary = "国贸2.0系统创建合同调用") + CommonResult push(@Valid @RequestBody ContractRequest reqVO); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java new file mode 100644 index 0000000..7919387 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java @@ -0,0 +1,18 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 收付款账号 + */ +@Data +public class Account { + private String accountSourceId; // 收付款账号行号 + private String accountSourceCode; // 收付款账号编号 + private String accountType; // 类别 + private String accountName; // 名称 + private String bankAccountName; // 开户银行 + private String bankAccountNo; // 银行账号 + private String identificationNumber; // 纳税人识别号 + private String addressPhoneTel; // 地址、电话 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java new file mode 100644 index 0000000..2f92d66 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java @@ -0,0 +1,91 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.sql.Date; +import java.util.List; + +/** + * 合同请求主实体 + */ +@Data +public class ContractRequest { + + // 基础信息 + private String operateFlag; // 操作标志 + private String bookId; // 账套代码 + private String orgId; // 组织ID + private String contractId; // 合同唯一键 + private String operateType; // 合同操作类型 (新增, 变更, 修正) + private String contractCode; // 合同编号 + private String contractBusinessNo; // 业务合同编号 + private String contractExternalNo; // 对方合同号 + private BigDecimal contractVersion; // 系统合同版本号 + private String contractStatus; // 合同状态代码 (值集: 40-签约) + private String contractName; // 合同名称 + private String contractType; // 合同类型 (货运;货代;仓储;保险) + private String textType; // 是否非标准合同文本 + @DateTimeFormat(pattern = "yyyyMMdd") + private Date contractStartDate; // 合同有效期起 (格式: yyyyMMdd) + @DateTimeFormat(pattern = "yyyyMMdd") + private Date contractEndDate; // 合同有效期止 (格式: yyyyMMdd) + private String priceType; // 是否固定单价 (0-浮动, 1-固定) + private String currencyCode; // 合同币种 + private String settleMethod; // 结算方式 + private String firstContractCode; // 对方合同号 + private BigDecimal estimateAmountTotal; // 预估含税总金额 + private String settleGist; // 结算依据 (10-交货量, 20-卸车量) + private BigDecimal priceTaxRate; // 税率 + private String transType; // 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输) + private String packMethod; // 包装方式 + private BigDecimal intransitLoss; // 在途损耗 + private String pickupLocation; // 提货地 + private BigDecimal warehouseNum; // 仓库数 + private BigDecimal weightDisparity; // 按码单入库磅差比 + private String insuredSubjectMatter; // 投保标的 + private BigDecimal estimateCoverageAmount; // 预计年保险总额 + private BigDecimal estimatePremium; // 预计年保险费 + private BigDecimal premiumRate; // 保险费率 + private String remark; // 备注信息 + private String createdUser; // 经办人工号 + private String createdUserName; // 经办人姓名 + private String approveSubmitCode; // 拟签递交人工号 + private String approveSubmitName; // 拟签递交人姓名 + @DateTimeFormat(pattern = "yyyyMMdd") + private Date approveSubmitDate; // 拟签呈批日期 + private String approvePassCode; // 拟签通过人工号 + private String approvePassName; // 拟签通过人姓名 + @DateTimeFormat(pattern = "yyyyMMdd") + private Date approvePassDate; // 拟签通过日期 + private String signSite; // 签约地 (40-签约必填) + @DateTimeFormat(pattern = "yyyyMMdd") + private Date signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd) + private String signFirstPerson; // 对方签约人 (40-签约必填) + private String signSecondPersonCode; // 我方签约人工号 (40-签约必填) + private String signSecondPersonName; // 我方签约人 + private String onceAuthorityFlag; // 推荐签约人工号 (40-签约必填, Y/N) + private String signOnceAccredit; // 推荐签约人工号 + private String extCol1; // 备用字段1 + private String extCol2; // 备用字段2 + private String extCol3; // 备用字段3 + private String extCol4; // 备用字段4 + private String extCol5; // 备用字段5 + private String extCol6; // 备用字段6 + private String extCol7; // 备用字段7 + private String extCol8; // 备用字段8 + private String extCol9; // 备用字段9 + private String extCol10; // 备用字段10 + private List attachList; // 附件清单列表 + + // 嵌套列表 + private List partnerList; // 客商信息 + private List goodsSiteList; // 收发港/站点 + private List loadingRequirementsList; // 货物装卸要求 + private List accountList; // 收付款账号 + private List freightList; // 费用明细 + private List serviceFeeList; // 服务费用项目 + private List storgeList; // 仓库明细 + private List receivingAddrList; // 接货地址 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java new file mode 100644 index 0000000..740ba73 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; +import java.math.BigDecimal; + +/* + * 费用明细 + */ +@Data +public class Freight { + private String freightSourceId; // 费用明细行号 + private String freightSourceCode; // 费用明细编号 + private String beginSiteCode; // 发货地编号 + private String beginSiteName; // 发货地名称 + private String beginSiteAddress; // 详细地址 + private String endSiteCode; // 收货地编码 + private String endSiteName; // 收货地名称 + private String endSiteAddress; // 详细地址 + private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运) + private String feeTypeCode; // 费用类型 (包干费、汽运费、港口费...) + private String feeTypeName; // 费用名称 + private String isPartybPickup; // 是否乙方提货 + private BigDecimal partybPickupPrice; // 乙方提货单价 + private String feeCategoryL; // 费用大类 + private String feeCategoryS; // 费用小类 + private String goodsStorage; // 标的仓 + private String categoryName; // 标的物 + private BigDecimal noHeapDays; // 免堆期 + private String quantityUnitCode; // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车) + private BigDecimal priceWithtax; // 单价 + private BigDecimal priceTaxRate; // 税率(%) + private String costBearing; // 费用承担 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java new file mode 100644 index 0000000..d4fc687 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java @@ -0,0 +1,24 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 收发港/站点 + */ +@Data +public class GoodsSite { + private String goodsSiteSourceId; // 收发港站点行号 + private String goodsSiteSourceCode; // 收发港站点编号 + private String subMattercategoryLevel; // 标的物分类 + private String subMattercategoryCode; // 标的物编码 + private String subMatterCategoryName; // 标的物名称 + private String beginSiteType; // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + private String beginSiteCode; // 发货地编号 + private String beginSiteName; // 发货地名称 + private String beginSiteAddress; // 详细地址 + private String endSiteType; // 地点类型 + private String endSiteCode; // 收货地编号 + private String endSiteName; // 收货地名称 + private String endSiteAddress; // 详细地址 + private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运) +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java new file mode 100644 index 0000000..7b8f31e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java @@ -0,0 +1,18 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 货物装卸要求 + */ +@Data +public class LoadingRequirement { + private String loadingReqSourceId; // 货物装卸行号 + private String loadingReqSourceCode; // 货物装卸编号 + private String deliveredAtPlace; // 提货地责任方 + private String deliveredAtFeeparty; // 提货地费用承担方 + private String destinationResponsibleParty; // 终到地责任方 + private String intermediateStationParty; // 终到地费用承担方 + private String destinationResponsibleFeeparty; // 中间站责任方 + private String intermediateResponsibleFeeparty; // 中间站费用承担方 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java new file mode 100644 index 0000000..7ac0033 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java @@ -0,0 +1,21 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 客商信息 + */ +@Data +public class Partner { + private String partnerSourceId; // 客商信息行号 + private String partnerSourceCode; // 客商信息编码 + private String partnerName; // 供应商名称 + private String partnerCode; // 供应商代码 + private String legalRepresentative; // 对方法定代表人 + private String partnerCurrency; // 币种 + private String contactPerson; // 对方联系人 + private String contactInformation; // 对方联系人联系方式 + private String internalTransaction; // 是否内部交易 + private String partnerType; // 客商类型 + private String domesticOrOverseas; // 境内/外 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java new file mode 100644 index 0000000..b72dae8 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 接货地址 + */ +@Data +public class ReceivingAddr { + private String recivingAddrSourceId; // 接货地址行号 + private String recivingAddrSourceCode; // 接货地址编号 + private String categoryLevel; // 标的物分类 + private String ccCategoryCode; // 标的物编码 + private String categoryName; // 标的物名称 + private String siteCode; // 接货编码 + private String siteName; // 接货名称 + private String siteType; // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + private String siteAddress; // 详细地址 + private String consigneePrivatewire; // 专用线 + private String consignerContact; // 收货人 + private String contactPerson; // 联系人 + private String contactPhone; // 联系电话 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java new file mode 100644 index 0000000..d70adc0 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 服务费用项目 + */ +@Data +public class ServiceFee { + private String serviceFeeSourceId; // 服务费用项目行号 + private String serviceFeeSourceCode; // 服务费用项目编号 + private String serviceFeeName; // 服务项目名称 + private String expenseType; // 计费类别 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java new file mode 100644 index 0000000..18decdc --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import lombok.Data; + +/* + * 仓库明细 + */ +@Data +public class Storge { + private String storgeSourceId; // 合同明细行号 + private String storgeSourceCode; // 合同明细行编号 + private String warehouseCode; // 仓库编号 + private String warehouseName; // 仓库名称 + private String warehouseAddress; // 详细地址 +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java index d4eb20d..bd27b0c 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java @@ -27,4 +27,5 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档"); ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP"); ErrorCode CONTRACT_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在"); + ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败:{}"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 5f44aee..a0bf241 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -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 create(@Valid @RequestBody ContractSaveReqVO reqVO) { - log.info("外部调用创建合同接口,参数:{}", reqVO); - redisTemplate.opsForHash().put( - "HT-TEMP", - reqVO.getContractPaperNumber() - + "-" - + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmSSS")), - reqVO); + public CommonResult 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 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); } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index 81e3461..818c2a9 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -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 ids); + JSONObject sendToErp(ErpContractSaveReqVO erpContractVO); + ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 9ebf476..26f48aa 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -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 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 From fceba54124e57de793eddea657ba218be61f1919 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Sun, 26 Oct 2025 23:13:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9B=BD=E8=B4=B82.0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=90=88=E5=90=8C=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=86=85=E9=83=A8=E4=BE=9B=E5=BA=94=E9=93=BE=E7=9A=84?= =?UTF-8?q?=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/ErrorCodeConstants.java | 1 + .../contractorder/api/ContractApiImpl.java | 1113 ++++++++++++++++- 2 files changed, 1070 insertions(+), 44 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java index bd27b0c..6a2ebcc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java @@ -28,4 +28,5 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP"); ErrorCode CONTRACT_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在"); ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败:{}"); + ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_015, "未知的操作"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index a0bf241..355cd16 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -6,12 +6,16 @@ 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.international.ContractRequest; +import com.zt.plat.module.contractorder.api.vo.contract.international.*; 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.dataobject.contract.ContractOtherFormDO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; 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.dal.mysql.contract.ContractOtherFormMapper; +import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; 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; @@ -30,8 +34,7 @@ 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; +import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.*; @RestController @Validated @@ -45,7 +48,11 @@ public class ContractApiImpl implements ContractApi { @Resource private ContractMainMapper contractMainMapper; @Resource + private ContractOtherFormMapper contractOtherFormMapper; + @Resource private ContractOtherFieldMapper contractOtherFieldMapper; + @Resource + private SystemRelativityMapper systemRelativityMapper; @Override public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) { @@ -156,26 +163,35 @@ public class ContractApiImpl implements ContractApi { // 逻辑处理 // 操作标志 I 新增/更新;D 删除 String operateFlag = reqVO.getOperateFlag(); + // 合同唯一键 + String externalId = reqVO.getContractId(); // 系统合同ID Long contractId = null; - // 根据合同编号查询合同信息 - ContractMainDO oldContract = contractMainMapper.selectOne("CTRT_PPR_NUM", contractMainDO.getContractPaperNumber()); + // 查询系统关联合同 + SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne("UP_ID", externalId); if ("I".equals(operateFlag)) { - if (oldContract != null) { // 修改合同 - contractId = oldContract.getId(); + if (systemRelativityDO != null && systemRelativityDO.getDownId() != null) { // 修改合同 + contractId = systemRelativityDO.getDownId(); contractMainDO.setId(contractId); contractMainMapper.updateById(contractMainDO); } else { // 新增合同 contractMainMapper.insert(contractMainDO); contractId = contractMainDO.getId(); - // 生成关联数据 TODO - // 合同唯一键 + // 生成关联数据 + SystemRelativityDO saveRelation = new SystemRelativityDO(); + saveRelation.setUpId(Long.parseLong(externalId)); + saveRelation.setDownId(contractId); + saveRelation.setWay("EXTERNAL"); + saveRelation.setStatus(DictEnum.BSE_SYS_REL_TP_CONTRACT.getCode()); + systemRelativityMapper.insert(saveRelation); } } else if ("D".equals(operateFlag)) { - if (oldContract == null) throw exception(CONTRACT_NOT_EXISTS); - contractId = oldContract.getId(); + if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); + contractId = systemRelativityDO.getDownId(); contractMainMapper.deleteById(contractId); + } else { + throw exception(CONTRACT_UNKNOWN_OPERATE); } // 提交合同到erp @@ -243,7 +259,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("contractStatus"); contractOtherFieldDO.setFieldName("合同状态代码 (值集: 40-签约)"); - contractOtherFieldDO.setFieldValue(reqVO.getContractStatus().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getContractStatus()); contractOtherFieldDO.setFieldDescription("合同状态代码 (值集: 40-签约)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -252,7 +268,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("contractType"); contractOtherFieldDO.setFieldName("合同类型 (货运;货代;仓储;保险)"); - contractOtherFieldDO.setFieldValue(reqVO.getContractType().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getContractType()); contractOtherFieldDO.setFieldDescription("合同类型 (货运;货代;仓储;保险)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -261,7 +277,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("textType"); contractOtherFieldDO.setFieldName("是否非标准合同文本"); - contractOtherFieldDO.setFieldValue(reqVO.getTextType().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getTextType()); contractOtherFieldDO.setFieldDescription("是否非标准合同文本"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -270,7 +286,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("priceType"); contractOtherFieldDO.setFieldName("是否固定单价 (0-浮动, 1-固定)"); - contractOtherFieldDO.setFieldValue(reqVO.getPriceType().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getPriceType()); contractOtherFieldDO.setFieldDescription("是否固定单价 (0-浮动, 1-固定)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -279,7 +295,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("settleMethod"); contractOtherFieldDO.setFieldName("结算方式"); - contractOtherFieldDO.setFieldValue(reqVO.getSettleMethod().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSettleMethod()); contractOtherFieldDO.setFieldDescription("结算方式"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -288,7 +304,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("firstContractCode"); contractOtherFieldDO.setFieldName("对方合同号"); - contractOtherFieldDO.setFieldValue(reqVO.getFirstContractCode().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getFirstContractCode()); contractOtherFieldDO.setFieldDescription("对方合同号"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -297,7 +313,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("settleGist"); contractOtherFieldDO.setFieldName("结算依据 (10-交货量, 20-卸车量)"); - contractOtherFieldDO.setFieldValue(reqVO.getSettleGist().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSettleGist()); contractOtherFieldDO.setFieldDescription("结算依据 (10-交货量, 20-卸车量)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -315,7 +331,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("transType"); contractOtherFieldDO.setFieldName("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); - contractOtherFieldDO.setFieldValue(reqVO.getTransType().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getTransType()); contractOtherFieldDO.setFieldDescription("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -324,7 +340,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("packMethod"); contractOtherFieldDO.setFieldName("包装方式"); - contractOtherFieldDO.setFieldValue(reqVO.getPackMethod().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getPackMethod()); contractOtherFieldDO.setFieldDescription("包装方式"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -342,7 +358,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("pickupLocation"); contractOtherFieldDO.setFieldName("提货地"); - contractOtherFieldDO.setFieldValue(reqVO.getPickupLocation().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getPickupLocation()); contractOtherFieldDO.setFieldDescription("提货地"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -369,7 +385,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("insuredSubjectMatter"); contractOtherFieldDO.setFieldName("投保标的"); - contractOtherFieldDO.setFieldValue(reqVO.getInsuredSubjectMatter().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getInsuredSubjectMatter()); contractOtherFieldDO.setFieldDescription("投保标的"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -414,7 +430,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("createdUser"); contractOtherFieldDO.setFieldName("经办人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getCreatedUser().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getCreatedUser()); contractOtherFieldDO.setFieldDescription("经办人工号"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -423,7 +439,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("createdUserName"); contractOtherFieldDO.setFieldName("经办人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getCreatedUserName().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getCreatedUserName()); contractOtherFieldDO.setFieldDescription("经办人姓名"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -432,7 +448,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("approveSubmitCode"); contractOtherFieldDO.setFieldName("拟签递交人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitCode().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitCode()); contractOtherFieldDO.setFieldDescription("拟签递交人工号"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -441,7 +457,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("approveSubmitName"); contractOtherFieldDO.setFieldName("拟签递交人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitName().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitName()); contractOtherFieldDO.setFieldDescription("拟签递交人姓名"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -459,7 +475,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("approvePassCode"); contractOtherFieldDO.setFieldName("拟签通过人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getApprovePassCode().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getApprovePassCode()); contractOtherFieldDO.setFieldDescription("拟签通过人工号"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -468,7 +484,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("approvePassName"); contractOtherFieldDO.setFieldName("拟签通过人姓名"); - contractOtherFieldDO.setFieldValue(reqVO.getApprovePassName().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getApprovePassName()); contractOtherFieldDO.setFieldDescription("拟签通过人姓名"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -486,7 +502,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("signFirstPerson"); contractOtherFieldDO.setFieldName("对方签约人 (40-签约必填)"); - contractOtherFieldDO.setFieldValue(reqVO.getSignFirstPerson().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSignFirstPerson()); contractOtherFieldDO.setFieldDescription("对方签约人 (40-签约必填)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -495,7 +511,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("signSecondPersonCode"); contractOtherFieldDO.setFieldName("我方签约人工号 (40-签约必填)"); - contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonCode().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonCode()); contractOtherFieldDO.setFieldDescription("我方签约人工号 (40-签约必填)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -504,7 +520,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("signSecondPersonName"); contractOtherFieldDO.setFieldName("我方签约人"); - contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonName().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonName()); contractOtherFieldDO.setFieldDescription("我方签约人"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -513,7 +529,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("onceAuthorityFlag"); contractOtherFieldDO.setFieldName("推荐签约人工号 (40-签约必填, Y/N)"); - contractOtherFieldDO.setFieldValue(reqVO.getOnceAuthorityFlag().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getOnceAuthorityFlag()); contractOtherFieldDO.setFieldDescription("推荐签约人工号 (40-签约必填, Y/N)"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -522,7 +538,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("signOnceAccredit"); contractOtherFieldDO.setFieldName("推荐签约人工号"); - contractOtherFieldDO.setFieldValue(reqVO.getSignOnceAccredit().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getSignOnceAccredit()); contractOtherFieldDO.setFieldDescription("推荐签约人工号"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -531,7 +547,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol1"); contractOtherFieldDO.setFieldName("备用字段1"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol1().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol1()); contractOtherFieldDO.setFieldDescription("备用字段1"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -540,7 +556,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol2"); contractOtherFieldDO.setFieldName("备用字段2"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol2().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol2()); contractOtherFieldDO.setFieldDescription("备用字段2"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -549,7 +565,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol3"); contractOtherFieldDO.setFieldName("备用字段3"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol3().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol3()); contractOtherFieldDO.setFieldDescription("备用字段3"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -558,7 +574,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol4"); contractOtherFieldDO.setFieldName("备用字段4"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol4().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol4()); contractOtherFieldDO.setFieldDescription("备用字段4"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -567,7 +583,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol5"); contractOtherFieldDO.setFieldName("备用字段5"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol5().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol5()); contractOtherFieldDO.setFieldDescription("备用字段5"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -576,7 +592,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol6"); contractOtherFieldDO.setFieldName("备用字段6"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol6().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol6()); contractOtherFieldDO.setFieldDescription("备用字段6"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -585,7 +601,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol7"); contractOtherFieldDO.setFieldName("备用字段7"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol7().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol7()); contractOtherFieldDO.setFieldDescription("备用字段7"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -594,7 +610,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol8"); contractOtherFieldDO.setFieldName("备用字段8"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol8().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol8()); contractOtherFieldDO.setFieldDescription("备用字段8"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -603,7 +619,7 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol9"); contractOtherFieldDO.setFieldName("备用字段9"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol9().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol9()); contractOtherFieldDO.setFieldDescription("备用字段9"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); @@ -612,23 +628,1032 @@ public class ContractApiImpl implements ContractApi { contractOtherFieldDO = new ContractOtherFieldDO(); contractOtherFieldDO.setFieldNumber("extCol10"); contractOtherFieldDO.setFieldName("备用字段10"); - contractOtherFieldDO.setFieldValue(reqVO.getExtCol10().toString()); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol10()); contractOtherFieldDO.setFieldDescription("备用字段10"); contractOtherFieldDO.setType("String"); contractOtherFieldDO.setContractMainId(contractId.toString()); contractOtherFieldDOS.add(contractOtherFieldDO); + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + + // 明细部分保存 // 附件清单列表 - // 动态条款表保存 + ContractOtherFormDO contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("attachList"); + contractOtherFormDO.setFormName("附件清单列表"); + contractOtherFormDO.setFormDescription("附件清单列表"); + contractOtherFormMapper.insert(contractOtherFormDO); + contractOtherFieldDOS = new ArrayList<>(); + if (reqVO.getAttachList() != null && !reqVO.getAttachList().isEmpty()) { + for (String attach : reqVO.getAttachList()) { + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("attach"); + contractOtherFieldDO.setFieldName("附件"); + contractOtherFieldDO.setFieldValue(attach); + contractOtherFieldDO.setFieldDescription("附件"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + } + } + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); //----- 嵌套列表 // 客商信息 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + for (Partner partner : reqVO.getPartnerList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("partnerList"); + contractOtherFormDO.setFormName("客商信息"); + contractOtherFormDO.setFormDescription("客商信息"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + // 客商信息行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerSourceId"); + contractOtherFieldDO.setFieldName("客商信息行号"); + contractOtherFieldDO.setFieldValue(partner.getPartnerSourceId()); + contractOtherFieldDO.setFieldDescription("客商信息行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 客商信息编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerSourceCode"); + contractOtherFieldDO.setFieldName("客商信息编码"); + contractOtherFieldDO.setFieldValue(partner.getPartnerSourceCode()); + contractOtherFieldDO.setFieldDescription("客商信息编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 供应商名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerName"); + contractOtherFieldDO.setFieldName("供应商名称"); + contractOtherFieldDO.setFieldValue(partner.getPartnerName()); + contractOtherFieldDO.setFieldDescription("供应商名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 供应商代码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerCode"); + contractOtherFieldDO.setFieldName("供应商代码"); + contractOtherFieldDO.setFieldValue(partner.getPartnerCode()); + contractOtherFieldDO.setFieldDescription("供应商代码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方法定代表人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("legalRepresentative"); + contractOtherFieldDO.setFieldName("对方法定代表人"); + contractOtherFieldDO.setFieldValue(partner.getLegalRepresentative()); + contractOtherFieldDO.setFieldDescription("对方法定代表人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 币种 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerCurrency"); + contractOtherFieldDO.setFieldName("币种"); + contractOtherFieldDO.setFieldValue(partner.getPartnerCurrency()); + contractOtherFieldDO.setFieldDescription("币种"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方联系人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPerson"); + contractOtherFieldDO.setFieldName("对方联系人"); + contractOtherFieldDO.setFieldValue(partner.getContactPerson()); + contractOtherFieldDO.setFieldDescription("对方联系人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方联系人联系方式 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactInformation"); + contractOtherFieldDO.setFieldName("对方联系人联系方式"); + contractOtherFieldDO.setFieldValue(partner.getContactInformation()); + contractOtherFieldDO.setFieldDescription("对方联系人联系方式"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否内部交易 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("internalTransaction"); + contractOtherFieldDO.setFieldName("是否内部交易"); + contractOtherFieldDO.setFieldValue(partner.getInternalTransaction()); + contractOtherFieldDO.setFieldDescription("是否内部交易"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 客商类型 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerType"); + contractOtherFieldDO.setFieldName("客商类型"); + contractOtherFieldDO.setFieldValue(partner.getPartnerType()); + contractOtherFieldDO.setFieldDescription("客商类型"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 境内/外 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("domesticOrOverseas"); + contractOtherFieldDO.setFieldName("境内/外"); + contractOtherFieldDO.setFieldValue(partner.getDomesticOrOverseas()); + contractOtherFieldDO.setFieldDescription("境内/外"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 收发港/站点 + if (reqVO.getGoodsSiteList() != null && !reqVO.getGoodsSiteList().isEmpty()) { + for (GoodsSite goodsSite : reqVO.getGoodsSiteList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("goodsSiteList"); + contractOtherFormDO.setFormName("收发港/站点"); + contractOtherFormDO.setFormDescription("收发港/站点"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + // 收发港站点行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsSiteSourceId"); + contractOtherFieldDO.setFieldName("收发港站点行号"); + contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceId()); + contractOtherFieldDO.setFieldDescription("收发港站点行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收发港站点编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsSiteSourceCode"); + contractOtherFieldDO.setFieldName("收发港站点编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceCode()); + contractOtherFieldDO.setFieldDescription("收发港站点编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物分类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMattercategoryLevel"); + contractOtherFieldDO.setFieldName("标的物分类"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryLevel()); + contractOtherFieldDO.setFieldDescription("标的物分类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMattercategoryCode"); + contractOtherFieldDO.setFieldName("标的物编码"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryCode()); + contractOtherFieldDO.setFieldDescription("标的物编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMatterCategoryName"); + contractOtherFieldDO.setFieldName("标的物名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMatterCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteType"); + contractOtherFieldDO.setFieldName("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteType()); + contractOtherFieldDO.setFieldDescription("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteCode"); + contractOtherFieldDO.setFieldName("发货地编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteCode()); + contractOtherFieldDO.setFieldDescription("发货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteName"); + contractOtherFieldDO.setFieldName("发货地名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteName()); + contractOtherFieldDO.setFieldDescription("发货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地点类型 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteType"); + contractOtherFieldDO.setFieldName("地点类型"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteType()); + contractOtherFieldDO.setFieldDescription("地点类型"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteCode"); + contractOtherFieldDO.setFieldName("收货地编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteCode()); + contractOtherFieldDO.setFieldDescription("收货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteName"); + contractOtherFieldDO.setFieldName("收货地名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteName()); + contractOtherFieldDO.setFieldDescription("收货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 运输方式 (10-汽运;20-船运;30-水汽联运) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); + contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setFieldValue(goodsSite.getContractTypeDispatch()); + contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 货物装卸要求 + if (reqVO.getLoadingRequirementsList() != null && !reqVO.getLoadingRequirementsList().isEmpty()) { + for (LoadingRequirement loadingRequirement : reqVO.getLoadingRequirementsList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("loadingRequirementsList"); + contractOtherFormDO.setFormName("货物装卸要求"); + contractOtherFormDO.setFormDescription("货物装卸要求"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 货物装卸行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("loadingReqSourceId"); + contractOtherFieldDO.setFieldName("货物装卸行号"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceId()); + contractOtherFieldDO.setFieldDescription("货物装卸行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 货物装卸编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("loadingReqSourceCode"); + contractOtherFieldDO.setFieldName("货物装卸编号"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceCode()); + contractOtherFieldDO.setFieldDescription("货物装卸编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 提货地责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("deliveredAtPlace"); + contractOtherFieldDO.setFieldName("提货地责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtPlace()); + contractOtherFieldDO.setFieldDescription("提货地责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 提货地费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("deliveredAtFeeparty"); + contractOtherFieldDO.setFieldName("提货地费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtFeeparty()); + contractOtherFieldDO.setFieldDescription("提货地费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 终到地责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("destinationResponsibleParty"); + contractOtherFieldDO.setFieldName("终到地责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleParty()); + contractOtherFieldDO.setFieldDescription("终到地责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 终到地费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("intermediateStationParty"); + contractOtherFieldDO.setFieldName("终到地费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateStationParty()); + contractOtherFieldDO.setFieldDescription("终到地费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 中间站责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("destinationResponsibleFeeparty"); + contractOtherFieldDO.setFieldName("中间站责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleFeeparty()); + contractOtherFieldDO.setFieldDescription("中间站责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 中间站费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("intermediateResponsibleFeeparty"); + contractOtherFieldDO.setFieldName("中间站费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateResponsibleFeeparty()); + contractOtherFieldDO.setFieldDescription("中间站费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 收付款账号 + if (reqVO.getAccountList() != null && !reqVO.getAccountList().isEmpty()) { + for (Account account : reqVO.getAccountList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("accountList"); + contractOtherFormDO.setFormName("收付款账号"); + contractOtherFormDO.setFormDescription("收付款账号"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 收付款账号行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountSourceId"); + contractOtherFieldDO.setFieldName("收付款账号行号"); + contractOtherFieldDO.setFieldValue(account.getAccountSourceId()); + contractOtherFieldDO.setFieldDescription("收付款账号行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收付款账号编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountSourceCode"); + contractOtherFieldDO.setFieldName("收付款账号编号"); + contractOtherFieldDO.setFieldValue(account.getAccountSourceCode()); + contractOtherFieldDO.setFieldDescription("收付款账号编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 类别 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountType"); + contractOtherFieldDO.setFieldName("类别"); + contractOtherFieldDO.setFieldValue(account.getAccountType()); + contractOtherFieldDO.setFieldDescription("类别"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountName"); + contractOtherFieldDO.setFieldName("名称"); + contractOtherFieldDO.setFieldValue(account.getAccountName()); + contractOtherFieldDO.setFieldDescription("名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 开户银行 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("bankAccountName"); + contractOtherFieldDO.setFieldName("开户银行"); + contractOtherFieldDO.setFieldValue(account.getBankAccountName()); + contractOtherFieldDO.setFieldDescription("开户银行"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 银行账号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("bankAccountNo"); + contractOtherFieldDO.setFieldName("银行账号"); + contractOtherFieldDO.setFieldValue(account.getBankAccountNo()); + contractOtherFieldDO.setFieldDescription("银行账号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 纳税人识别号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("identificationNumber"); + contractOtherFieldDO.setFieldName("纳税人识别号"); + contractOtherFieldDO.setFieldValue(account.getIdentificationNumber()); + contractOtherFieldDO.setFieldDescription("纳税人识别号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地址、电话 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("addressPhoneTel"); + contractOtherFieldDO.setFieldName("地址、电话"); + contractOtherFieldDO.setFieldValue(account.getAddressPhoneTel()); + contractOtherFieldDO.setFieldDescription("地址、电话"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 费用明细 + if (reqVO.getFreightList() != null && !reqVO.getFreightList().isEmpty()) { + for (Freight freight : reqVO.getFreightList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("freightList"); + contractOtherFormDO.setFormName("费用明细"); + contractOtherFormDO.setFormDescription("费用明细"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 费用明细行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("freightSourceId"); + contractOtherFieldDO.setFieldName("费用明细行号"); + contractOtherFieldDO.setFieldValue(freight.getFreightSourceId()); + contractOtherFieldDO.setFieldDescription("费用明细行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用明细编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("freightSourceCode"); + contractOtherFieldDO.setFieldName("费用明细编号"); + contractOtherFieldDO.setFieldValue(freight.getFreightSourceCode()); + contractOtherFieldDO.setFieldDescription("费用明细编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteCode"); + contractOtherFieldDO.setFieldName("发货地编号"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteCode()); + contractOtherFieldDO.setFieldDescription("发货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteName"); + contractOtherFieldDO.setFieldName("发货地名称"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteName()); + contractOtherFieldDO.setFieldDescription("发货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteCode"); + contractOtherFieldDO.setFieldName("收货地编码"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteCode()); + contractOtherFieldDO.setFieldDescription("收货地编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteName"); + contractOtherFieldDO.setFieldName("收货地名称"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteName()); + contractOtherFieldDO.setFieldDescription("收货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 运输方式 (10-汽运;20-船运;30-水汽联运) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); + contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setFieldValue(freight.getContractTypeDispatch()); + contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用类型 (包干费、汽运费、港口费...) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeTypeCode"); + contractOtherFieldDO.setFieldName("费用类型 (包干费、汽运费、港口费...)"); + contractOtherFieldDO.setFieldValue(freight.getFeeTypeCode()); + contractOtherFieldDO.setFieldDescription("费用类型 (包干费、汽运费、港口费...)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeTypeName"); + contractOtherFieldDO.setFieldName("费用名称"); + contractOtherFieldDO.setFieldValue(freight.getFeeTypeName()); + contractOtherFieldDO.setFieldDescription("费用名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否乙方提货 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("isPartybPickup"); + contractOtherFieldDO.setFieldName("是否乙方提货"); + contractOtherFieldDO.setFieldValue(freight.getIsPartybPickup()); + contractOtherFieldDO.setFieldDescription("是否乙方提货"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 乙方提货单价 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partybPickupPrice"); + contractOtherFieldDO.setFieldName("乙方提货单价"); + contractOtherFieldDO.setFieldValue(freight.getPartybPickupPrice().toString()); + contractOtherFieldDO.setFieldDescription("乙方提货单价"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用大类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeCategoryL"); + contractOtherFieldDO.setFieldName("费用大类"); + contractOtherFieldDO.setFieldValue(freight.getFeeCategoryL()); + contractOtherFieldDO.setFieldDescription("费用大类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用小类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeCategoryS"); + contractOtherFieldDO.setFieldName("费用小类"); + contractOtherFieldDO.setFieldValue(freight.getFeeCategoryS()); + contractOtherFieldDO.setFieldDescription("费用小类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的仓 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsStorage"); + contractOtherFieldDO.setFieldName("标的仓"); + contractOtherFieldDO.setFieldValue(freight.getGoodsStorage()); + contractOtherFieldDO.setFieldDescription("标的仓"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryName"); + contractOtherFieldDO.setFieldName("标的物"); + contractOtherFieldDO.setFieldValue(freight.getCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 免堆期 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("noHeapDays"); + contractOtherFieldDO.setFieldName("免堆期"); + contractOtherFieldDO.setFieldValue(freight.getNoHeapDays().toString()); + contractOtherFieldDO.setFieldDescription("免堆期"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("quantityUnitCode"); + contractOtherFieldDO.setFieldName("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); + contractOtherFieldDO.setFieldValue(freight.getQuantityUnitCode()); + contractOtherFieldDO.setFieldDescription("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 单价 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("priceWithtax"); + contractOtherFieldDO.setFieldName("单价"); + contractOtherFieldDO.setFieldValue(freight.getPriceWithtax().toString()); + contractOtherFieldDO.setFieldDescription("单价"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 税率(%) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("priceTaxRate"); + contractOtherFieldDO.setFieldName("税率(%)"); + contractOtherFieldDO.setFieldValue(freight.getPriceTaxRate().toString()); + contractOtherFieldDO.setFieldDescription("税率(%)"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用承担 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("costBearing"); + contractOtherFieldDO.setFieldName("费用承担"); + contractOtherFieldDO.setFieldValue(freight.getCostBearing()); + contractOtherFieldDO.setFieldDescription("费用承担"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 服务费用项目 + if (reqVO.getServiceFeeList() != null && !reqVO.getServiceFeeList().isEmpty()) { + for (ServiceFee serviceFee : reqVO.getServiceFeeList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("serviceFeeList"); + contractOtherFormDO.setFormName("服务费用项目"); + contractOtherFormDO.setFormDescription("服务费用项目"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 服务费用项目行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeSourceId"); + contractOtherFieldDO.setFieldName("服务费用项目行号"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceId()); + contractOtherFieldDO.setFieldDescription("服务费用项目行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 服务费用项目编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeSourceCode"); + contractOtherFieldDO.setFieldName("服务费用项目编号"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceCode()); + contractOtherFieldDO.setFieldDescription("服务费用项目编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 服务项目名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeName"); + contractOtherFieldDO.setFieldName("服务项目名称"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeName()); + contractOtherFieldDO.setFieldDescription("服务项目名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 计费类别 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("expenseType"); + contractOtherFieldDO.setFieldName("计费类别"); + contractOtherFieldDO.setFieldValue(serviceFee.getExpenseType()); + contractOtherFieldDO.setFieldDescription("计费类别"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 仓库明细 + if (reqVO.getStorgeList() != null && !reqVO.getStorgeList().isEmpty()) { + for (Storge storge : reqVO.getStorgeList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("storgeList"); + contractOtherFormDO.setFormName("仓库明细"); + contractOtherFormDO.setFormDescription("仓库明细"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 合同明细行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("storgeSourceId"); + contractOtherFieldDO.setFieldName("合同明细行号"); + contractOtherFieldDO.setFieldValue(storge.getStorgeSourceId()); + contractOtherFieldDO.setFieldDescription("合同明细行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 合同明细行编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("storgeSourceCode"); + contractOtherFieldDO.setFieldName("合同明细行编号"); + contractOtherFieldDO.setFieldValue(storge.getStorgeSourceCode()); + contractOtherFieldDO.setFieldDescription("合同明细行编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 仓库编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseCode"); + contractOtherFieldDO.setFieldName("仓库编号"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseCode()); + contractOtherFieldDO.setFieldDescription("仓库编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 仓库名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseName"); + contractOtherFieldDO.setFieldName("仓库名称"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseName()); + contractOtherFieldDO.setFieldDescription("仓库名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } // 接货地址 + if (reqVO.getReceivingAddrList() != null && !reqVO.getReceivingAddrList().isEmpty()) { + for (ReceivingAddr receivingAddr : reqVO.getReceivingAddrList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("receivingAddrList"); + contractOtherFormDO.setFormName("接货地址"); + contractOtherFormDO.setFormDescription("接货地址"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 接货地址行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("recivingAddrSourceId"); + contractOtherFieldDO.setFieldName("接货地址行号"); + contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceId()); + contractOtherFieldDO.setFieldDescription("接货地址行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货地址编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("recivingAddrSourceCode"); + contractOtherFieldDO.setFieldName("接货地址编号"); + contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceCode()); + contractOtherFieldDO.setFieldDescription("接货地址编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物分类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryLevel"); + contractOtherFieldDO.setFieldName("标的物分类"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryLevel()); + contractOtherFieldDO.setFieldDescription("标的物分类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("ccCategoryCode"); + contractOtherFieldDO.setFieldName("标的物编码"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCcCategoryCode()); + contractOtherFieldDO.setFieldDescription("标的物编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryName"); + contractOtherFieldDO.setFieldName("标的物名称"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteCode"); + contractOtherFieldDO.setFieldName("接货编码"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteCode()); + contractOtherFieldDO.setFieldDescription("接货编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteName"); + contractOtherFieldDO.setFieldName("接货名称"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteName()); + contractOtherFieldDO.setFieldDescription("接货名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteType"); + contractOtherFieldDO.setFieldName("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteType()); + contractOtherFieldDO.setFieldDescription("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 专用线 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("consigneePrivatewire"); + contractOtherFieldDO.setFieldName("专用线"); + contractOtherFieldDO.setFieldValue(receivingAddr.getConsigneePrivatewire()); + contractOtherFieldDO.setFieldDescription("专用线"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("consignerContact"); + contractOtherFieldDO.setFieldName("收货人"); + contractOtherFieldDO.setFieldValue(receivingAddr.getConsignerContact()); + contractOtherFieldDO.setFieldDescription("收货人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 联系人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPerson"); + contractOtherFieldDO.setFieldName("联系人"); + contractOtherFieldDO.setFieldValue(receivingAddr.getContactPerson()); + contractOtherFieldDO.setFieldDescription("联系人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 联系电话 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPhone"); + contractOtherFieldDO.setFieldName("联系电话"); + contractOtherFieldDO.setFieldValue(receivingAddr.getContactPhone()); + contractOtherFieldDO.setFieldDescription("联系电话"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } return success(true); }