@@ -20,8 +20,8 @@ import com.zt.plat.module.base.dal.mysql.tmpltp.TmplInscBsnRelMapper;
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService ;
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi ;
import com.zt.plat.module.bpm.api.task.BpmTaskApi ;
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO ;
import com.zt.plat.module.bpm.api .task.dto.BpmTaskRespDTO ;
import com.zt.plat.module.bpm.api.task.dto.* ;
import com.zt.plat.module.bpm.enums .task.BpmProcessInstanceStatusEnum ;
import com.zt.plat.module.contractorder.api.dto.contract.* ;
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.* ;
import com.zt.plat.module.contractorder.dal.dataobject.contract.* ;
@@ -923,6 +923,7 @@ public class ContractServiceImpl implements ContractService {
newContractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_WAIT_PUSH . getCode ( ) ) ;
} else if ( DictEnum . BSE_CTRT_STS_REJECTED . getCode ( ) . equals ( oldContractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) . equals ( oldContractMainDO . getStatus ( ) ) ) {
// 其它状态编辑后都为“待审核”
newContractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_WAIT_AUDIT . getCode ( ) ) ;
}
@@ -1040,9 +1041,35 @@ public class ContractServiceImpl implements ContractService {
if ( StringUtils . isNotBlank ( contractMainDO . getProcessInstanceId ( ) ) ) {
// TODO: 待审核状态重新提交审批处理
// 进入审批流程的合同,查询当前审批的任务节点
// 获取流程当前审批的任务节点
List < BpmTaskRespDTO > taskList = bpmTaskApi . getTaskListByProcessInstanceId ( contractMainDO . getProcessInstanceId ( ) ) . getData ( ) ;
if ( CollectionUtils . isNotEmpty ( taskList ) ) {
BpmTaskRespDTO bpmTaskDto = taskList . get ( taskList . size ( ) - 1 ) ;
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO ( ) ;
badrDto . setProcessInstanceId ( contractMainDO . getProcessInstanceId ( ) ) ; // 流程实例id
badrDto . setTaskId ( bpmTaskDto . getId ( ) ) ; // 当前审核任务节点id
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi . getApprovalDetail ( SecurityFrameworkUtils . getLoginUserId ( ) , badrDto ) . getData ( ) ;
if ( BpmProcessInstanceStatusEnum . REJECT . getStatus ( ) . equals ( approvalDetail . getStatus ( ) ) ) {
// 如果状态是驳回状态,需要重新创建一个流程实例
BpmProcessInstanceCreateReqDTO pidtoNew = new BpmProcessInstanceCreateReqDTO ( ) ;
pidtoNew . setProcessDefinitionKey ( ProcessConstants . CONTRACT_APPROVAL_PROCESS ) ;
pidtoNew . setBusinessKey ( String . valueOf ( id ) ) ;
String data = bpmProcessInstanceApi . createProcessInstance ( adminUserRespDTO . getId ( ) , pidtoNew ) . getData ( ) ;
if ( StringUtils . isNotBlank ( data ) ) {
// 获取流程当前审批的任务节点
List < BpmTaskRespDTO > taskListNew = bpmTaskApi . getTaskListByProcessInstanceId ( data ) . getData ( ) ;
contractMainDO . setProcessInstanceId ( data ) ;
if ( CollectionUtils . isNotEmpty ( taskListNew ) ) {
BpmTaskRespDTO undoTask = taskListNew . get ( taskListNew . size ( ) - 1 ) ;
contractMainDO . setTaskNodeId ( undoTask . getId ( ) ) ;
}
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_UNDER_REVIEW . getCode ( ) ) ;
contractMainMapper . updateById ( contractMainDO ) ;
return true ;
}
}
}
} else {
// 未进入审批流程的合同,创建审批流程
@@ -1069,7 +1096,7 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public String approval ( ApprovalReqVO reqVO ) {
public Boolean approval ( ApprovalReqVO reqVO ) {
// 合同主键ID
Long id = reqVO . getId ( ) ;
@@ -1086,18 +1113,60 @@ public class ContractServiceImpl implements ContractService {
}
// 合同状态校验
if ( DictEnum . BSE_CTRT_STS_DRAFT . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_REJECTED . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_TERMINATED . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_ARCHIVED . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_DELETED . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) {
if ( ! ( DictEnum . BSE_CTRT_STS_DRAFT . getCode ( ) . equals ( contractMainDO . getStatus ( ) )
| | DictEnum . BSE_CTRT_STS_WAIT_AUDIT . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_APPROVAL ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
return " " ;
// 获取当前流程正在审批的任务节点
List < BpmTaskRespDTO > taskList = bpmTaskApi . getTaskListByProcessInstanceId ( contractMainDO . getProcessInstanceId ( ) ) . getData ( ) ;
BpmTaskRespDTO undoTask = taskList . get ( taskList . size ( ) - 1 ) ;
// 判断是否流程已经通过、驳回
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO ( ) ;
badrDto . setProcessInstanceId ( contractMainDO . getProcessInstanceId ( ) ) ; // 流程实例id
badrDto . setTaskId ( undoTask . getId ( ) ) ; // 当前审核任务节点id
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi . getApprovalDetail ( SecurityFrameworkUtils . getLoginUserId ( ) , badrDto ) . getData ( ) ;
// 更新合同状态,状态需要根据流程的状态进行判断
contractMainDO . setReviewOpinion ( reqVO . getReviewOpinion ( ) ) ;
if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . NOT_START . getStatus ( ) ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_UNDER_REVIEW . getCode ( ) ) ;
} else if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . RUNNING . getStatus ( ) ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_UNDER_REVIEW . getCode ( ) ) ;
} else if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . APPROVE . getStatus ( ) ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_WAIT_PUSH . getCode ( ) ) ;
} else if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . REJECT . getStatus ( ) ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_REJECTED . getCode ( ) ) ;
} else if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . CANCEL . getStatus ( ) ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_REJECTED . getCode ( ) ) ;
}
if ( ObjectUtils . isNotEmpty ( undoTask ) ) {
contractMainDO . setTaskNodeId ( undoTask . getId ( ) ) ;
}
contractMainMapper . updateById ( contractMainDO ) ;
// 需要调用bpm 审核接口更新审批中的状态
if ( DictEnum . BSE_CTRT_STS_WAIT_PUSH . getCode ( ) . equals ( reqVO . getStatus ( ) ) & & ObjectUtils . isNotEmpty ( undoTask ) ) {
if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . RUNNING . getStatus ( ) ) ) {
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO ( ) ;
btarDto . setId ( undoTask . getId ( ) ) ;
btarDto . setReason ( reqVO . getReviewOpinion ( ) ) ;
bpmProcessInstanceApi . approveTask ( btarDto ) ;
}
} else if ( DictEnum . BSE_CTRT_STS_REJECTED . getCode ( ) . equals ( reqVO . getStatus ( ) ) & & ObjectUtils . isNotEmpty ( undoTask ) ) {
if ( approvalDetail . getStatus ( ) . equals ( BpmProcessInstanceStatusEnum . RUNNING . getStatus ( ) ) ) {
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO ( ) ;
btrrDto . setId ( undoTask . getId ( ) ) ;
btrrDto . setReason ( reqVO . getReviewOpinion ( ) ) ;
bpmProcessInstanceApi . rejectTask ( btrrDto ) ;
}
}
return true ;
}
@Override
@@ -1232,148 +1301,7 @@ public class ContractServiceImpl implements ContractService {
if ( contractMainDO ! = null ) {
// 生成ERP合同映射表
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO ( ) ;
// 合同主信息表主键:BSE_CTRT_MAIN
erpContractVO . setContractMainId ( id ) ;
// 操作标识:OPTN_ID
// 1、先调用009ERP接口查询合同信息
ErpContractPageReqVO pageReqVO = new ErpContractPageReqVO ( ) ;
// BUKRS 合同签订主体公司代码 收支方向判断, 如果为“支出”, 传“ERP甲方公司编码”, 反之传“ERP乙方公司编码”
// PARTNER 对方客商编号 收支方向判断, 如果为“支出”, 传“ERP乙方公司编码”, 反之传“ERP甲方公司编码”
// INEDR 1-借(销售合同), 2-贷(采购合同) 收支方向判断, 如果为“支出”, 传“2”, 反之传“1”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
pageReqVO . setContractSignNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setSupplierNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setContractCategory ( " 2 " ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
pageReqVO . setContractSignNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setSupplierNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setContractCategory ( " 1 " ) ;
}
// ZHTBH 合同编号 合同编号:CTRT_PPR_NUM
pageReqVO . setContractTypeNumber ( contractMainDO . getContractPaperNumber ( ) ) ;
// ZHTMC 合同名称 合同名称:CTRT_NAME
pageReqVO . setContractName ( contractMainDO . getContractName ( ) ) ;
PageResult < ErpContractDO > erpContractPage = erpContractService . getErpContractPage ( pageReqVO ) ;
if ( erpContractPage . getTotal ( ) > 0 ) {
// 2、如果009接口返回值中“合同编号”字段存在值, 并且与传入的相同, 则OPTN_ID值为“1”
erpContractVO . setOperationId ( " 1 " ) ;
} else {
// 3、如果009接口返回值中“合同编号”字段不存在值, 根据合同主键查询映射表中是否存在没有删除的数据, 如果有, 值为“1”, 如果没有, 值为“0”
ErpContractDO erpContract = erpContractService . getErpContractByMainId ( id ) ;
if ( erpContract ! = null ) {
erpContractVO . setOperationId ( " 1 " ) ;
} else {
erpContractVO . setOperationId ( " 0 " ) ;
}
}
// 合同编号:CTRT_PPR_NUM
erpContractVO . setContractPaperNumber ( contractMainDO . getContractPaperNumber ( ) ) ;
// 合同名称:CTRT_NAME
erpContractVO . setContractName ( contractMainDO . getContractName ( ) ) ;
// 合同类型编号:CTRT_TP_NUM
erpContractVO . setContractTypeNumber ( contractMainDO . getConstructionTypeNumber ( ) ) ;
// 合同类型名称:CTRT_TP_NAME
erpContractVO . setContractTypeName ( contractMainDO . getConstructionTypeName ( ) ) ;
// 合同类别:CTRT_CTGR
erpContractVO . setContractCategory ( contractMainDO . getCategory ( ) ) ;
// 是否虚拟合同:IS_VRTL_CTRT
erpContractVO . setIsVirtualContract ( contractMainDO . getContractVirtual ( ) ) ;
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP乙方公司编码”, 反之为“ERP甲方公司编码”
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP乙方公司名称”, 反之为“ERP甲方公司名称”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setSupplierNumber ( contractMainDO . getErpSalesCompanyNumber ( ) ) ;
erpContractVO . setSupplierName ( contractMainDO . getErpSalesCompanyName ( ) ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setSupplierNumber ( contractMainDO . getErpPurchaseCompanyNumber ( ) ) ;
erpContractVO . setSupplierName ( contractMainDO . getErpPurchaseCompanyName ( ) ) ;
}
// 代理方:AGT
erpContractVO . setAgent ( contractMainDO . getAgent ( ) ) ;
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP甲方公司编码”, 反之为“ERP乙方公司编码”
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP甲方公司名称”, 反之为“ERP乙方公司名称”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setContractImplementNumber ( contractMainDO . getErpPurchaseCompanyNumber ( ) ) ;
erpContractVO . setContractSignNumber ( contractMainDO . getErpPurchaseCompanyName ( ) ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setContractImplementNumber ( contractMainDO . getErpSalesCompanyNumber ( ) ) ;
erpContractVO . setContractSignNumber ( contractMainDO . getErpSalesCompanyName ( ) ) ;
}
// 合同签订日期:SGN_DT
if ( contractMainDO . getSignDate ( ) ! = null ) {
erpContractVO . setSignDate ( contractMainDO . getSignDate ( ) . toLocalDate ( ) ) ;
}
// 合同起始日期:STRT_DT
if ( contractMainDO . getStartDate ( ) ! = null ) {
erpContractVO . setStartDate ( contractMainDO . getStartDate ( ) . toLocalDate ( ) ) ;
}
// 合同终止日期:STOP_DT
if ( contractMainDO . getEndDate ( ) ! = null ) {
erpContractVO . setStopDate ( contractMainDO . getEndDate ( ) . toLocalDate ( ) ) ;
}
// 币种编号:CUR
erpContractVO . setCurrency ( contractMainDO . getCurrency ( ) ) ;
// 合同总金额(原币-含税):SRC_AMT
erpContractVO . setSourceAmount ( contractMainDO . getCooAmount ( ) ) ;
// 合同总金额(本位币-含税):BSC_AMT
erpContractVO . setBasicAmount ( contractMainDO . getBasicAmount ( ) ) ;
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
erpContractVO . setChangeSourceAmount ( contractMainDO . getChangeCooAmount ( ) ) ;
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
erpContractVO . setChangeBasicAmount ( contractMainDO . getChangeBasicAmount ( ) ) ;
// 合同状态编号:STS_NUM 参照060接口
erpContractVO . setStatusNumber ( DictEnum . SUBMIT_ERP_CTRT_STS_EF . getCode ( ) ) ;
// 合同状态名称:STS_NAME 参照060接口
erpContractVO . setStatusName ( DictEnum . SUBMIT_ERP_CTRT_STS_EF . getLabel ( ) ) ;
// 是否有预付款:IS_PPYM
erpContractVO . setIsPrepayment ( contractMainDO . getHasPrepayment ( ) ) ;
// 预付款比例:PPYM_RTIO
erpContractVO . setPrepaymentRatio ( contractMainDO . getPrepaymentRatio ( ) ) ;
// 预付款金额:PPYM_AMT
erpContractVO . setPrepaymentAmount ( contractMainDO . getPrepaymentAmount ( ) ) ;
// 履约保证金-变更前(原币):SRC_BFR_BND
erpContractVO . setSourceBeforeBond ( contractMainDO . getChangeCooAmountDeposit ( ) ) ;
// 履约保证金-变更前(本位币):BSC_BFR_BND
erpContractVO . setBasicBeforeBond ( contractMainDO . getChangeBasicAmountDeposit ( ) ) ;
// 履约保证金-变更后(原币):SRC_AFT_BND
erpContractVO . setSourceAfterBond ( contractMainDO . getChangeCooAmountDeposit ( ) ) ;
// 履约保证金-变更后(本位币):BSC_AFT_BND
erpContractVO . setBasicAfterBond ( contractMainDO . getChangeBasicAmountDeposit ( ) ) ;
// 是否含质保金:IS_QUA_AMT
erpContractVO . setIsQualityassuranceAmount ( contractMainDO . getHasQualityAmount ( ) ) ;
// 质保金比例:QUA_RTIO
erpContractVO . setQualityassuranceRatio ( contractMainDO . getQualityRatio ( ) ) ;
// 质保金金额:QUA_AMT
erpContractVO . setQualityassuranceAmount ( contractMainDO . getQualityAmount ( ) ) ;
// 是否内部企业:IS_INTL
erpContractVO . setIsInternal ( contractMainDO . getIsInternal ( ) ) ;
// 收支性质:NTR
erpContractVO . setNature ( contractMainDO . getDirection ( ) ) ;
// 备注信息:RMK
erpContractVO . setRemark ( contractMainDO . getRemark ( ) ) ;
// 是否框架合同:IS_FMWK
erpContractVO . setIsFramework ( contractMainDO . getIsFramework ( ) ) ;
// 境内/境外:IS_DOM
erpContractVO . setIsDomestic ( contractMainDO . getIsDomestic ( ) ) ;
// 达到收款条件金额:PYEE_CND_AMT
erpContractVO . setPayeeConditionAmount ( contractMainDO . getPayeeConditionAmount ( ) ) ;
// 建筑服务发生地:ARCH_SVC_PLCE
erpContractVO . setArchitectureService Place ( contractMainDO . getArchitectureServicePlace ( ) ) ;
// 公司编号
erpContractVO . setCompanyId ( contractMainDO . getCompanyId ( ) ) ;
// 公司名称
erpContractVO . setCompanyName ( contractMainDO . getCompanyName ( ) ) ;
// 部门编号
erpContractVO . setDeptId ( contractMainDO . getDeptId ( ) ) ;
// 部门名称
erpContractVO . setDeptName ( contractMainDO . getDeptName ( ) ) ;
// 岗位编号
erpContractVO . setPostId ( contractMainDO . getPostId ( ) ) ;
// 创建者
erpContractVO . setCreatorName ( contractMainDO . getCreatorName ( ) ) ;
// 更新者
erpContractVO . setUpdaterName ( contractMainDO . getUpdaterName ( ) ) ;
ErpContractSaveReqVO erpContractVO = get ErpContract(contractMainDO ) ;
// 调用ERP模块
String erpResult = null ;
@@ -1535,6 +1463,9 @@ public class ContractServiceImpl implements ContractService {
contractMainMapper . updateById ( contractMainDO ) ;
} ) ;
// 重新提交erp
submitErp ( ids ) ;
return true ;
}
@@ -1563,9 +1494,160 @@ public class ContractServiceImpl implements ContractService {
contractMainMapper . updateById ( contractMainDO ) ;
} ) ;
// 重新提交erp
submitErp ( ids ) ;
return true ;
}
private ErpContractSaveReqVO getErpContract ( ContractMainDO contractMainDO ) {
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO ( ) ;
// 合同主信息表主键:BSE_CTRT_MAIN
erpContractVO . setContractMainId ( contractMainDO . getId ( ) ) ;
// 操作标识:OPTN_ID
// 1、先调用009ERP接口查询合同信息
ErpContractPageReqVO pageReqVO = new ErpContractPageReqVO ( ) ;
// BUKRS 合同签订主体公司代码 收支方向判断, 如果为“支出”, 传“ERP甲方公司编码”, 反之传“ERP乙方公司编码”
// PARTNER 对方客商编号 收支方向判断, 如果为“支出”, 传“ERP乙方公司编码”, 反之传“ERP甲方公司编码”
// INEDR 1-借(销售合同), 2-贷(采购合同) 收支方向判断, 如果为“支出”, 传“2”, 反之传“1”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
pageReqVO . setContractSignNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setSupplierNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setContractCategory ( " 2 " ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
pageReqVO . setContractSignNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setSupplierNumber ( contractMainDO . getSalesCompanyNumber ( ) ) ;
pageReqVO . setContractCategory ( " 1 " ) ;
}
// ZHTBH 合同编号 合同编号:CTRT_PPR_NUM
pageReqVO . setContractTypeNumber ( contractMainDO . getContractPaperNumber ( ) ) ;
// ZHTMC 合同名称 合同名称:CTRT_NAME
pageReqVO . setContractName ( contractMainDO . getContractName ( ) ) ;
PageResult < ErpContractDO > erpContractPage = erpContractService . getErpContractPage ( pageReqVO ) ;
if ( erpContractPage . getTotal ( ) > 0 ) {
// 2、如果009接口返回值中“合同编号”字段存在值, 并且与传入的相同, 则OPTN_ID值为“1”
erpContractVO . setOperationId ( " 1 " ) ;
} else {
// 3、如果009接口返回值中“合同编号”字段不存在值, 根据合同主键查询映射表中是否存在没有删除的数据, 如果有, 值为“1”, 如果没有, 值为“0”
ErpContractDO erpContract = erpContractService . getErpContractByMainId ( contractMainDO . getId ( ) ) ;
if ( erpContract ! = null ) {
erpContractVO . setOperationId ( " 1 " ) ;
} else {
erpContractVO . setOperationId ( " 0 " ) ;
}
}
// 合同编号:CTRT_PPR_NUM
erpContractVO . setContractPaperNumber ( contractMainDO . getContractPaperNumber ( ) ) ;
// 合同名称:CTRT_NAME
erpContractVO . setContractName ( contractMainDO . getContractName ( ) ) ;
// 合同类型编号:CTRT_TP_NUM
erpContractVO . setContractTypeNumber ( contractMainDO . getConstructionTypeNumber ( ) ) ;
// 合同类型名称:CTRT_TP_NAME
erpContractVO . setContractTypeName ( contractMainDO . getConstructionTypeName ( ) ) ;
// 合同类别:CTRT_CTGR
erpContractVO . setContractCategory ( contractMainDO . getCategory ( ) ) ;
// 是否虚拟合同:IS_VRTL_CTRT
erpContractVO . setIsVirtualContract ( contractMainDO . getContractVirtual ( ) ) ;
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP乙方公司编码”, 反之为“ERP甲方公司编码”
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP乙方公司名称”, 反之为“ERP甲方公司名称”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setSupplierNumber ( contractMainDO . getErpSalesCompanyNumber ( ) ) ;
erpContractVO . setSupplierName ( contractMainDO . getErpSalesCompanyName ( ) ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setSupplierNumber ( contractMainDO . getErpPurchaseCompanyNumber ( ) ) ;
erpContractVO . setSupplierName ( contractMainDO . getErpPurchaseCompanyName ( ) ) ;
}
// 代理方:AGT
erpContractVO . setAgent ( contractMainDO . getAgent ( ) ) ;
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP甲方公司编码”, 反之为“ERP乙方公司编码”
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断, 如果为“支出”, 值为“ERP甲方公司名称”, 反之为“ERP乙方公司名称”
if ( DictEnum . ERP_RCV_DLVY_EXPENSES . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setContractImplementNumber ( contractMainDO . getErpPurchaseCompanyNumber ( ) ) ;
erpContractVO . setContractSignNumber ( contractMainDO . getErpPurchaseCompanyName ( ) ) ;
} else if ( DictEnum . ERP_RCV_DLVY_INCOME . getCode ( ) . equals ( contractMainDO . getDirection ( ) ) ) {
erpContractVO . setContractImplementNumber ( contractMainDO . getErpSalesCompanyNumber ( ) ) ;
erpContractVO . setContractSignNumber ( contractMainDO . getErpSalesCompanyName ( ) ) ;
}
// 合同签订日期:SGN_DT
if ( contractMainDO . getSignDate ( ) ! = null ) {
erpContractVO . setSignDate ( contractMainDO . getSignDate ( ) . toLocalDate ( ) ) ;
}
// 合同起始日期:STRT_DT
if ( contractMainDO . getStartDate ( ) ! = null ) {
erpContractVO . setStartDate ( contractMainDO . getStartDate ( ) . toLocalDate ( ) ) ;
}
// 合同终止日期:STOP_DT
if ( contractMainDO . getEndDate ( ) ! = null ) {
erpContractVO . setStopDate ( contractMainDO . getEndDate ( ) . toLocalDate ( ) ) ;
}
// 币种编号:CUR
erpContractVO . setCurrency ( contractMainDO . getCurrency ( ) ) ;
// 合同总金额(原币-含税):SRC_AMT
erpContractVO . setSourceAmount ( contractMainDO . getCooAmount ( ) ) ;
// 合同总金额(本位币-含税):BSC_AMT
erpContractVO . setBasicAmount ( contractMainDO . getBasicAmount ( ) ) ;
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
erpContractVO . setChangeSourceAmount ( contractMainDO . getChangeCooAmount ( ) ) ;
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
erpContractVO . setChangeBasicAmount ( contractMainDO . getChangeBasicAmount ( ) ) ;
// 合同状态编号:STS_NUM 参照060接口
erpContractVO . setStatusNumber ( DictEnum . SUBMIT_ERP_CTRT_STS_EF . getCode ( ) ) ;
// 合同状态名称:STS_NAME 参照060接口
erpContractVO . setStatusName ( DictEnum . SUBMIT_ERP_CTRT_STS_EF . getLabel ( ) ) ;
// 是否有预付款:IS_PPYM
erpContractVO . setIsPrepayment ( contractMainDO . getHasPrepayment ( ) ) ;
// 预付款比例:PPYM_RTIO
erpContractVO . setPrepaymentRatio ( contractMainDO . getPrepaymentRatio ( ) ) ;
// 预付款金额:PPYM_AMT
erpContractVO . setPrepaymentAmount ( contractMainDO . getPrepaymentAmount ( ) ) ;
// 履约保证金-变更前(原币):SRC_BFR_BND
erpContractVO . setSourceBeforeBond ( contractMainDO . getChangeCooAmountDeposit ( ) ) ;
// 履约保证金-变更前(本位币):BSC_BFR_BND
erpContractVO . setBasicBeforeBond ( contractMainDO . getChangeBasicAmountDeposit ( ) ) ;
// 履约保证金-变更后(原币):SRC_AFT_BND
erpContractVO . setSourceAfterBond ( contractMainDO . getChangeCooAmountDeposit ( ) ) ;
// 履约保证金-变更后(本位币):BSC_AFT_BND
erpContractVO . setBasicAfterBond ( contractMainDO . getChangeBasicAmountDeposit ( ) ) ;
// 是否含质保金:IS_QUA_AMT
erpContractVO . setIsQualityassuranceAmount ( contractMainDO . getHasQualityAmount ( ) ) ;
// 质保金比例:QUA_RTIO
erpContractVO . setQualityassuranceRatio ( contractMainDO . getQualityRatio ( ) ) ;
// 质保金金额:QUA_AMT
erpContractVO . setQualityassuranceAmount ( contractMainDO . getQualityAmount ( ) ) ;
// 是否内部企业:IS_INTL
erpContractVO . setIsInternal ( contractMainDO . getIsInternal ( ) ) ;
// 收支性质:NTR
erpContractVO . setNature ( contractMainDO . getDirection ( ) ) ;
// 备注信息:RMK
erpContractVO . setRemark ( contractMainDO . getRemark ( ) ) ;
// 是否框架合同:IS_FMWK
erpContractVO . setIsFramework ( contractMainDO . getIsFramework ( ) ) ;
// 境内/境外:IS_DOM
erpContractVO . setIsDomestic ( contractMainDO . getIsDomestic ( ) ) ;
// 达到收款条件金额:PYEE_CND_AMT
erpContractVO . setPayeeConditionAmount ( contractMainDO . getPayeeConditionAmount ( ) ) ;
// 建筑服务发生地:ARCH_SVC_PLCE
erpContractVO . setArchitectureService Place ( contractMainDO . getArchitectureServicePlace ( ) ) ;
// 公司编号
erpContractVO . setCompanyId ( contractMainDO . getCompanyId ( ) ) ;
// 公司名称
erpContractVO . setCompanyName ( contractMainDO . getCompanyName ( ) ) ;
// 部门编号
erpContractVO . setDeptId ( contractMainDO . getDeptId ( ) ) ;
// 部门名称
erpContractVO . setDeptName ( contractMainDO . getDeptName ( ) ) ;
// 岗位编号
erpContractVO . setPostId ( contractMainDO . getPostId ( ) ) ;
// 创建者
erpContractVO . setCreatorName ( contractMainDO . getCreatorName ( ) ) ;
// 更新者
erpContractVO . setUpdaterName ( contractMainDO . getUpdaterName ( ) ) ;
return erpContractVO ;
}
/**
* 校验合同内容
*