#EQD-6604 国联民生-确认书编码生成环节移到簿记(支持手工录入)
feat: 国联民生收益互换簿记后按确认书规则生成交易编号 - - 国联收益互换首次入库后复用原交易确认书编号规则生成交易编号,保留手工填写的交易编号 - 覆盖手工新增、系统流水自动簿记、普通交易导入、流水导入和日终合成今日交易流水 - 自动流水簿记增加本地事务,交易编号回写与基础簿记数据失败时统一回滚 - 交易确认书生成时直接取交易编号,不再重新生成确认书编号 - 结算管理-交易确认书页面将合约编号更名为交易确认书编号 - 上传确认书时将合约编号更名为交易确认书编号 - 历史交易编号不处理
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using YLErp.BLL;
|
||||
using YLErp.Configuration;
|
||||
using YLErp.DBModels;
|
||||
using YLErp.DBModels.Consts;
|
||||
using YLErp.DBModels.Enums;
|
||||
@@ -17,6 +18,38 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
{
|
||||
private static readonly object _syncLock = new object();
|
||||
|
||||
public static bool IsGuolianSwapTrade(trade trade)
|
||||
{
|
||||
return PS.Config.Company == CompanyEnum.国联
|
||||
&& trade?.TradeType == "收益互换";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 交易首次入库后按国联交易确认书编号规则回写交易编号。
|
||||
/// </summary>
|
||||
/// <returns>是否生成了交易编号</returns>
|
||||
public static bool TryGenerateTradeNumberAfterSave(YLContext dbContext, trade trade)
|
||||
{
|
||||
if (!IsGuolianSwapTrade(trade) || !string.IsNullOrWhiteSpace(trade.TradeNumber))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (trade.id <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("国联收益互换交易编号必须在交易入库后生成");
|
||||
}
|
||||
|
||||
var clientCode = DataCacheProvider.GetClientDataSource().GetData(trade.ClientId)?.Code;
|
||||
if (string.IsNullOrWhiteSpace(clientCode))
|
||||
{
|
||||
throw new ServiceException("对手方代码缩写缺失,请联系运营组同事维护");
|
||||
}
|
||||
|
||||
trade.TradeNumber = Generate(dbContext, trade, clientCode);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成国贸交易确认书编号
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user