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