优化“收益互换”确认书查询与编号生成逻辑

This commit is contained in:
锦麟 王
2026-04-14 11:24:03 +08:00
parent 130cbedaba
commit f11e8ea27a
6 changed files with 94 additions and 46 deletions
@@ -186,6 +186,74 @@ namespace YLErp.Web.Controllers
return Json(sList);
}
/// <summary>
/// 互换确认书查询(只查询收益互换)
/// </summary>
public JsonResult SwapQuery(TradeReq req)
{
req.AssetIdList = AssetUnitModel.IntersectAssetUnits(req.AssetIdGroupList, req.AssetIdList).ToList();
req.UserAssets = CurUser.GetAssetUnitIds();
req.UserClients = CurUser.GetClientIdsByCurUser(CurUser._查看所有交易);
req.CurUserTradeIds = CurUser.GetTradeIdsByCurUser();
// 只查询收益互换
req.TradeTypes = "收益互换";
var sList = new tradeBLL().SearchListForTradeConfirm(req);
var rowList = sList.rows;
// 增加交易确认书编号
if (rowList != null && rowList.Any())
{
var tradeIds = rowList.Select(x => x.id).ToList();
var tradeContractCodeList = (from tradeContractR in yldb.trade_contract_r
join tradeContractDoc in (from tradeContractDocTemp in yldb.trade_contract_document where ContractTypeEnum.Trade == tradeContractDocTemp.Type select tradeContractDocTemp)
on tradeContractR.ContractCode equals tradeContractDoc.Code into tradeContractDoc1
from tradeContractDoc2 in tradeContractDoc1.DefaultIfEmpty()
where tradeIds.Contains(tradeContractR.TradeId) && ContractTypeEnum.Trade == tradeContractR.Type && tradeContractR.Type == tradeContractDoc2.Type && tradeContractR.IsValid
select new
{
tradeContractR.id,
tradeContractR.TradeId,
tradeContractR.ContractCode,
tradeContractR.send_email_result,
tradeContractDoc = tradeContractDoc2
}).ToList();
foreach (var trade in rowList)
{
if (trade.TradeType == "合成价差期权")
{
trade.SyntheticUnderlyingTipsInfo = synthetic_underlyingBLL.GetUnderlyingTipsInfo(trade.UnderlyingCode);
}
var tradeContractinfo = tradeContractCodeList.FirstOrDefault(t => t.TradeId == trade.id);
trade.MetaDic["send_email_result"] = "";
if (tradeContractinfo != null)
{
trade.ContractCode = tradeContractinfo.ContractCode;
if (null != tradeContractinfo.tradeContractDoc)
{
trade.MetaDic["ContractEncryptId"] = tradeContractinfo.tradeContractDoc.EncryptId;
trade.MetaDic["ContractRId"] = tradeContractinfo.id.ToString();
trade.MetaDic["ContractDocUrl"] = tradeContractinfo.tradeContractDoc.RelativePath;
trade.MetaDic["HasGeneratedConfirmBook"] = "True";
trade.MetaDic["send_email_result"] = tradeContractinfo.send_email_result;
}
else
{
trade.MetaDic["ContractEncryptId"] = "";
trade.MetaDic["ContractRId"] = tradeContractinfo.id.ToString();
trade.MetaDic["HasGeneratedConfirmBook"] = "False";
}
}
else
{
trade.MetaDic["ContractEncryptId"] = "";
trade.MetaDic["ContractRId"] = "";
trade.MetaDic["HasGeneratedConfirmBook"] = "False";
}
}
}
return Json(sList);
}
public async Task<ActionResult> SentMail(string enid, List<string> reciver)
{
var result = await DoSendMailSywg(enid, reciver);