@@ -706,7 +706,7 @@ public class ContractServiceImpl implements ContractService {
| | DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) . equals ( oldContractMainDO . getStatus ( ) ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_UPDATE ,
DictEnum . getByCode ( oldContractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( oldContractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 校验合同名称是否重复
@@ -730,6 +730,29 @@ public class ContractServiceImpl implements ContractService {
// 请求更新的合同信息
ContractMainDO newContractMainDO = BeanUtils . toBean ( reqVO , ContractMainDO . class ) ;
// 校验ERP的公司
if ( StringUtils . isNotEmpty ( reqVO . getPurchaseCompanyNumber ( ) )
| | StringUtils . isNotEmpty ( reqVO . getSalesCompanyNumber ( ) ) ) {
if ( StringUtils . isNotEmpty ( reqVO . getPurchaseCompanyNumber ( ) ) ) {
ErpCompanyDO erpCompany = erpCompanyService . getErpCompanyByNumber ( reqVO . getPurchaseCompanyNumber ( ) ) ;
if ( erpCompany = = null ) {
throw exception ( CONTRACT_ERP_COMPANY_PLEASE_BIND , ApiConstants . PURCHASE ) ;
} else {
newContractMainDO . setErpPurchaseCompanyNumber ( erpCompany . getNumber ( ) ) ;
newContractMainDO . setErpPurchaseCompanyName ( erpCompany . getName ( ) ) ;
}
}
if ( StringUtils . isNotEmpty ( reqVO . getSalesCompanyNumber ( ) ) ) {
ErpCompanyDO erpCompany = erpCompanyService . getErpCompanyByNumber ( reqVO . getSalesCompanyNumber ( ) ) ;
if ( erpCompany = = null ) {
throw exception ( CONTRACT_ERP_COMPANY_PLEASE_BIND , ApiConstants . SALES ) ;
} else {
newContractMainDO . setErpSalesCompanyNumber ( erpCompany . getNumber ( ) ) ;
newContractMainDO . setErpSalesCompanyName ( erpCompany . getName ( ) ) ;
}
}
}
// 删除关联信息
// 查询合同明细
List < ContractDetailDO > detailDOS = contractDetailMapper
@@ -952,7 +975,7 @@ public class ContractServiceImpl implements ContractService {
String msg = id . toString ( )
+ " : "
+ CONTRACT_STATUS_NOT_DELETE . getMsg ( )
. replace ( " {} " , DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
. replace ( " {} " , DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
result . add ( new JSONObject ( ) . putOnce ( " deleted " , false ) . putOnce ( " msg " , msg ) ) ;
}
@@ -1032,7 +1055,7 @@ public class ContractServiceImpl implements ContractService {
| | DictEnum . BSE_CTRT_STS_WAIT_AUDIT . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_SUBMIT_APPROVAL ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 合同内容校验
@@ -1119,7 +1142,7 @@ public class ContractServiceImpl implements ContractService {
if ( ! DictEnum . BSE_CTRT_STS_UNDER_REVIEW . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_APPROVAL ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 获取当前流程正在审批的任务节点
@@ -1289,7 +1312,9 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public Boolean submitErp ( List < Long > ids ) {
public List < String > submitErp ( List < Long > ids ) {
List < String > results = new ArrayList < > ( ) ;
// 遍历合同ID集合
ids . forEach ( id - > {
@@ -1305,30 +1330,47 @@ public class ContractServiceImpl implements ContractService {
| | DictEnum . BSE_CTRT_STS_TERMINATED . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_SUBMIT_ERP ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 生成ERP合同映射表
ErpContractSaveReqVO erpContractVO = getErpContract ( contractMainDO ) ;
// 调用ERP模块
Map < Boolean , String > erpResult = sendToErp ( erpContractVO ) ;
JSONObject erpResult = sendToErp ( erpContractVO ) ;
log . info ( " 合同提交ERP结果: {} " , erpResult ) ;
String result = id
+ " - " + erpResult . getBool ( " success " )
+ ( erpResult . getBool ( " success " ) ? " " : " - " + erpResult . getStr ( " errMsg " ) ) ;
results . add ( result ) ;
// 更新合同状态
if ( erpResult . getBool ( " success " ) ) {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) ) ;
contractMainDO . setErpStatus ( DictEnum . ERP_REQ_STS_FIND . getCode ( ) ) ;
contractMainMapper . updateById ( contractMainDO ) ;
} else {
contractMainDO . setStatus ( DictEnum . BSE_CTRT_STS_PUSH_ERROR . getCode ( ) ) ;
contractMainDO . setErpStatus ( DictEnum . ERP_REQ_STS_RLBK . getCode ( ) ) ;
// contractMainDO.setCause(erpResult.getStr("errMsg"));
contractMainMapper . updateById ( contractMainDO ) ;
}
} else {
throw exception ( CONTRACT_NOT_EXISTS ) ;
results . add ( id + " - " + " false " + " - " + CONTRACT_NOT_EXISTS ) ;
}
} ) ;
return true ;
return results ;
}
private Map < Boolean , String > sendToErp ( ErpContractSaveReqVO erpContractVO ) {
Map < Boolean , String > erpResult = new HashMap < > ( ) ;
private JSONObject sendToErp ( ErpContractSaveReqVO erpContractVO ) {
JSONObject erpResult = new JSONObject ( ) ;
try {
String result = erpContractService . submitErp ( erpContractVO ) ;
erpResult . put( true , result ) ;
erpResult . putOnce ( " success " , true ) ;
} catch ( Exception e ) {
erpResult . put( false , e . getMessage ( ) ) ;
erpResult . putOnce ( " success " , false ) ;
erpResult . putOnce ( " errMsg " , e . getMessage ( ) ) ;
}
return erpResult ;
@@ -1439,7 +1481,7 @@ public class ContractServiceImpl implements ContractService {
// 合同状态校验
if ( ! DictEnum . BSE_CTRT_STS_TERMINATED . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_ARCHIVE ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 设置归档状态
@@ -1467,7 +1509,7 @@ public class ContractServiceImpl implements ContractService {
// 合同状态校验
if ( ! DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_ARCHIVE ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 设置作废状态
@@ -1498,7 +1540,7 @@ public class ContractServiceImpl implements ContractService {
// 合同状态校验
if ( ! DictEnum . BSE_CTRT_STS_IN_PROGRESS . getCode ( ) . equals ( contractMainDO . getStatus ( ) ) ) {
throw exception ( CONTRACT_STATUS_NOT_ARCHIVE ,
DictEnum . getByCode ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
DictEnum . getByCodeAndType ( contractMainDO . getStatus ( ) , DictTypeConstants . BSE_CTRT_STS ) . getLabel ( ) ) ;
}
// 设置完结状态