更新交易确认书生成逻辑,过滤待确认和审批中的交易状态,调整交易状态下拉选项
This commit is contained in:
@@ -217,7 +217,7 @@ namespace YLErp.Modules.TradeModule.DealModule
|
||||
|
||||
var trades = DbContext.trade.Where(x => tradeIds.Contains(x.id)).AsNoTracking().ToList();
|
||||
logger.Info($"[GJGenerateConfirmBook] 查询到交易记录数: {trades.Count}");
|
||||
|
||||
|
||||
if (!trades.Any())
|
||||
{
|
||||
logger.Info("[GJGenerateConfirmBook] 未找到交易记录,直接返回");
|
||||
@@ -225,7 +225,26 @@ namespace YLErp.Modules.TradeModule.DealModule
|
||||
files = new List<string>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// 过滤掉待确认和审批中的交易,这些状态不允许生成确认书
|
||||
var invalidStatusList = new List<string> { ConsTrade.新增待确认, ConsTrade.修改待确认, ConsTrade.审批中 };
|
||||
var invalidTrades = trades.Where(t => invalidStatusList.Contains(t.TradeStatus)).ToList();
|
||||
if (invalidTrades.Any())
|
||||
{
|
||||
error.AddRange(invalidTrades.Select(t => $"交易 {t.TradeNumber} 状态为【{t.TradeStatus}】,不能生成确认书"));
|
||||
tradeIds = tradeIds.Where(id => !invalidTrades.Any(t => t.id == id)).ToList();
|
||||
trades = trades.Where(t => !invalidTrades.Any(it => it.id == t.id)).ToList();
|
||||
logger.Info($"[GJGenerateConfirmBook] 过滤掉 {invalidTrades.Count} 笔待确认/审批中交易");
|
||||
}
|
||||
|
||||
if (!trades.Any())
|
||||
{
|
||||
logger.Info("[GJGenerateConfirmBook] 过滤后无有效交易可生成确认书");
|
||||
errors = error;
|
||||
files = new List<string>();
|
||||
return false;
|
||||
}
|
||||
|
||||
var clientIds = trades.Select(x => x.ClientId).Distinct().ToList();
|
||||
logger.Info($"[GJGenerateConfirmBook] 客户ID数: {clientIds.Count}");
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
SettleDocModeMultiple = valuedate.SettleDocModeMultiple.Equals(valuedateBLL.SystemDate.SettleDocMode),
|
||||
BrokerMode = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.Broker,
|
||||
MarketMaker = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.MarketMaker,
|
||||
reqTradeStatus = $"{ConsTrade.确认成交},{ConsTrade.已到期},{ConsTrade.已平仓},{ConsTrade.已执行}",
|
||||
reqTradeStatus = $"{ConsTrade.新增待确认},{ConsTrade.修改待确认},{ConsTrade.审批中},{ConsTrade.确认成交},{ConsTrade.已到期},{ConsTrade.已平仓},{ConsTrade.已执行}",
|
||||
SelectConfirmationBookTemplate = GlobalConfig.SelectConfirmationBookTemplate == true,
|
||||
templateNames = ViewBag.TemplateNames,
|
||||
//初始化时使用空页面(清楚预置查询条件及初始不加载数据)
|
||||
@@ -68,7 +68,7 @@
|
||||
@Html.MyAceDropdownInput2("BuySell", "交易方向", GlobalData.GetSelectItems(new List<string> { "买入", "卖出" }))
|
||||
@Html.SearchDateRange("ExerciseDate", "到期日期")
|
||||
@Html.SearchDateRange("TradeDate", "交易日期")
|
||||
@Html.MyAceDropdownInput("TradeStatus", "交易状态", GlobalData.TradeStatusAfterConfirm(), true)
|
||||
@Html.MyAceDropdownInput("TradeStatus", "交易状态", GlobalData.GetSelectItems(new List<string> { ConsTrade.新增待确认, ConsTrade.修改待确认, ConsTrade.审批中, ConsTrade.确认成交, ConsTrade.已到期, ConsTrade.已执行, ConsTrade.已平仓 }), true)
|
||||
|
||||
@if (pageObj.IsAutoSealAndUploadFiles){
|
||||
@Html.MyAceDropdownInput("SealResults", "用印结果", GlobalData.GetSealResultItems())
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
SettleDocModeMultiple = valuedate.SettleDocModeMultiple.Equals(valuedateBLL.SystemDate.SettleDocMode),
|
||||
BrokerMode = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.Broker,
|
||||
MarketMaker = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.MarketMaker,
|
||||
reqTradeStatus = $"{ConsTrade.确认成交},{ConsTrade.已到期},{ConsTrade.已平仓},{ConsTrade.已执行}",
|
||||
reqTradeStatus = $"{ConsTrade.新增待确认},{ConsTrade.修改待确认},{ConsTrade.审批中},{ConsTrade.确认成交},{ConsTrade.已到期},{ConsTrade.已平仓},{ConsTrade.已执行}",
|
||||
SelectConfirmationBookTemplate = GlobalConfig.SelectConfirmationBookTemplate == true,
|
||||
templateNames = ViewBag.TemplateNames,
|
||||
//初始化时使用空页面(清楚预置查询条件及初始不加载数据)
|
||||
@@ -71,7 +71,7 @@
|
||||
@Html.MyAceDropdownInput2("BuySell", "交易方向", GlobalData.GetSelectItems(new List<string> { "买入", "卖出" }))
|
||||
@Html.SearchDateRange("ExerciseDate", "到期日期")
|
||||
@Html.SearchDateRange("TradeDate", "交易日期")
|
||||
@Html.MyAceDropdownInput("TradeStatus", "交易状态", GlobalData.TradeStatusAfterConfirm(), true)
|
||||
@Html.MyAceDropdownInput("TradeStatus", "交易状态", GlobalData.GetSelectItems(new List<string> { ConsTrade.新增待确认, ConsTrade.修改待确认, ConsTrade.审批中, ConsTrade.确认成交, ConsTrade.已到期, ConsTrade.已执行, ConsTrade.已平仓 }), true)
|
||||
|
||||
@if (pageObj.IsAutoSealAndUploadFiles){
|
||||
@Html.MyAceDropdownInput("SealResults", "用印结果", GlobalData.GetSealResultItems())
|
||||
|
||||
@@ -925,7 +925,9 @@ function showToolName(cellValue, options, rowObject) {
|
||||
var html = showDownload(cellValue, options, rowObject);
|
||||
|
||||
var title = page.IsAutoSealAndUploadFiles && page.IsAutoSealAfterGeneratedBook ? "生成并用印" : "生成确认书";
|
||||
var canGenerate = page.canGenerate == true ? "" : "disabled";
|
||||
// 待确认和审批中的交易不允许生成确认书
|
||||
var isUnconfirmed = rowObject.TradeStatus === "新增待确认" || rowObject.TradeStatus === "修改待确认" || rowObject.TradeStatus === "审批中";
|
||||
var canGenerate = page.canGenerate == true && !isUnconfirmed ? "" : "disabled";
|
||||
var isWait = (rowObject.MetaDic.SealResult == "用印等待中");
|
||||
html += "<input type=\"button\" class='wentiEdit' title='{2}' onclick=\"gJGenerateConfirmBook({0},{3},{1})\" value='{2}' {4}/>".template(rowObject.id, rowObject.MetaDic.HasGeneratedConfirmBook == "True", title, isWait, canGenerate);
|
||||
if (rowObject.MetaDic.ContractDocUrl && page.canSendEmail == true) {
|
||||
|
||||
Reference in New Issue
Block a user