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