TRS-ZS-183 一个客户一天所有开仓的多头交易都放到一个交易确认书里
This commit is contained in:
@@ -162,38 +162,48 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
var tradeContractGroupTradeIds = tradeDic.Values.Select(x => x.trade.id).ToList();
|
||||
//var childs = DbContext.trade.Where(x => tradeContractGroupTradeIds.Contains(x.ParentTradeId ?? 0));
|
||||
var childs = service.GetStructTradeFromTradeOrEodTrade(tradeContractGroupTradeIds, SystemValueDate, true);
|
||||
foreach (var tradeContractGroup in tradeDic.Values)
|
||||
if (PS.Config.Company == Configuration.CompanyEnum.浙商)
|
||||
{
|
||||
if ((tradeContractGroup.trade.TradeType != "结构化交易" && tradeContractGroup.trade.TradeType != "收益互换" && tradeContractGroup.trade_cash == null)
|
||||
|| (tradeContractGroup.trade.TradeType == "结构化交易" && tradeContractGroup.trade.IsGroup == 0 && tradeContractGroup.trade.SubTrades.Any(O => O.trade_cash == null)))
|
||||
if (generatorV2 != null)
|
||||
{
|
||||
resultList.Add(new TradeDocGenerateResult(tradeContractGroup.trade)
|
||||
{
|
||||
ErrorMessage = "缺少现金交割记录"
|
||||
});
|
||||
}
|
||||
//插件版本
|
||||
else if (generatorV2 != null)
|
||||
{
|
||||
var result = GenerateSingleV2(generatorV2, tradeContractGroup, docType);
|
||||
var result = GenerateSingleV2(generatorV2, null, docType , allTradeList);
|
||||
resultList.Add(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = GenerateSingleV1(tradeContractGroup, docType);
|
||||
resultList.Add(result);
|
||||
//if (!string.IsNullOrWhiteSpace(result.OutputFilePath))
|
||||
//{
|
||||
// tradeContractGroup.trade.HasGeneratedConfirmBook = 1;
|
||||
// var childTds = childs.Where(x => x.ParentTradeId == tradeContractGroup.trade.id);
|
||||
// foreach (var child in childTds)
|
||||
// {
|
||||
// child.HasGeneratedConfirmBook = 1;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
foreach (var tradeContractGroup in tradeDic.Values)
|
||||
{
|
||||
if ((tradeContractGroup.trade.TradeType != "结构化交易" && tradeContractGroup.trade.TradeType != "收益互换" && tradeContractGroup.trade_cash == null)
|
||||
|| (tradeContractGroup.trade.TradeType == "结构化交易" && tradeContractGroup.trade.IsGroup == 0 && tradeContractGroup.trade.SubTrades.Any(O => O.trade_cash == null)))
|
||||
{
|
||||
resultList.Add(new TradeDocGenerateResult(tradeContractGroup.trade)
|
||||
{
|
||||
ErrorMessage = "缺少现金交割记录"
|
||||
});
|
||||
}
|
||||
//插件版本
|
||||
else if (generatorV2 != null)
|
||||
{
|
||||
var result = GenerateSingleV2(generatorV2, tradeContractGroup, docType);
|
||||
resultList.Add(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = GenerateSingleV1(tradeContractGroup, docType);
|
||||
resultList.Add(result);
|
||||
//if (!string.IsNullOrWhiteSpace(result.OutputFilePath))
|
||||
//{
|
||||
// tradeContractGroup.trade.HasGeneratedConfirmBook = 1;
|
||||
// var childTds = childs.Where(x => x.ParentTradeId == tradeContractGroup.trade.id);
|
||||
// foreach (var child in childTds)
|
||||
// {
|
||||
// child.HasGeneratedConfirmBook = 1;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (generatorV2 == null)
|
||||
{
|
||||
DbContext.SaveChanges();
|
||||
@@ -205,14 +215,21 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private TradeDocGenerateResult GenerateSingleV2(ITradeConfirmationGenerator generator, trade_contract_group tradeContractGroup, string docType = "DOCX")
|
||||
private TradeDocGenerateResult GenerateSingleV2(ITradeConfirmationGenerator generator, trade_contract_group tradeContractGroup, string docType = "DOCX", List<trade> allTrades = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
//修改调用的构造方法
|
||||
List<trade> trades = new List<trade>() { tradeContractGroup.trade };
|
||||
List<trade> trades = new List<trade>();
|
||||
if (allTrades != null && allTrades.Count() > 0)
|
||||
{
|
||||
trades = allTrades;
|
||||
}else
|
||||
{
|
||||
trades = new List<trade>() { tradeContractGroup.trade };
|
||||
}
|
||||
List<int> ids = new List<int>();
|
||||
if (tradeContractGroup.trade != null && tradeContractGroup.trade.trade_cash != null)
|
||||
if (tradeContractGroup != null && tradeContractGroup.trade != null && tradeContractGroup.trade.trade_cash != null)
|
||||
{
|
||||
ids.Add(tradeContractGroup.trade.trade_cash.id);
|
||||
}
|
||||
@@ -759,27 +776,26 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
}
|
||||
}
|
||||
|
||||
public (bool, string, DateTime, string) UploadContractFileNew(string encryptId, UploadFileModel uploadFileModel)
|
||||
public (bool, string, DateTime, string) UploadContractFileNew(string contractCode, UploadFileModel uploadFileModel)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var msg = "";
|
||||
#region 验证
|
||||
if (string.IsNullOrWhiteSpace(encryptId))
|
||||
if (string.IsNullOrWhiteSpace(contractCode))
|
||||
{
|
||||
|
||||
return (false, "请传入id", DateTime.Now, "");
|
||||
return (false, "请传入参数", DateTime.Now, "");
|
||||
}
|
||||
|
||||
var intid = DataProtectHelper.DecryptInt(encryptId);
|
||||
|
||||
|
||||
var db = DbContextFactory.GetYLDbContext();
|
||||
|
||||
var contractDoc = db.trade_contract_document.Find(intid);
|
||||
var contractDoc = db.trade_contract_document.FirstOrDefault(d => d.Code == contractCode );
|
||||
var contractDocRArr = db.trade_contract_r.Where(O => O.ContractCode == contractDoc.Code && O.Type == contractDoc.Type && O.IsValid).ToArray();
|
||||
var contractDocR = contractDocRArr.FirstOrDefault();
|
||||
if (contractDoc == null || contractDocR == null)
|
||||
var contractDocRF = contractDocRArr.FirstOrDefault();
|
||||
if (contractDoc == null || contractDocRF == null)
|
||||
{
|
||||
return (false, "没有相关的确认书文档", DateTime.Now, "");
|
||||
}
|
||||
@@ -806,9 +822,9 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
#endregion
|
||||
|
||||
var tradeNumber = "未知";
|
||||
if (contractDocR != null)
|
||||
if (contractDocRF != null)
|
||||
{
|
||||
tradeNumber = contractDocR.TradeNumber;
|
||||
tradeNumber = contractDocRF.TradeNumber;
|
||||
}
|
||||
var filePath = Path.Combine(OtcAppContext.AppDocsPath, "contractdoc", "output");
|
||||
|
||||
@@ -841,8 +857,12 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
}
|
||||
|
||||
#region 更新数据
|
||||
var confrimService = new TradeConfirmService(OptUser, db);
|
||||
foreach (var contractDocR in contractDocRArr)
|
||||
{
|
||||
new TradeConfirmService(OptUser, db).EditReportStatus(contractDocR.TradeId, true);
|
||||
}
|
||||
|
||||
new TradeConfirmService(OptUser, db).EditReportStatus(contractDocR.TradeId, true);
|
||||
db.SaveChanges();
|
||||
#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user