Files
zszq-trs/YLErpDAL/Modules/TradeModule/DealModule/TradeProcessService.cs
T
2024-05-09 14:06:26 +08:00

72 lines
2.6 KiB
C#

using YLErp.BLL;
using YLErp.Model;
namespace YLErp.Modules.TradeModule.DealModule
{
/// <summary>
/// 交易流程服务
/// </summary>
public class TradeProcessService : TradeServiceBase
{
public TradeProcessService(YLBaseService baseService) : base(baseService)
{
}
public TradeProcessService(OptUserInfo userInfo) : base(userInfo)
{
}
/// <summary>
/// from trade_cashcontroller.DenyReCheck
/// </summary>
public void DenyReCheck(TradeCashReq req)
{
var td = DbContext.trade.Find(req.TradeId);
if (td == null || (td.TradeStatus != ConsTrade.行权待复核 && td.TradeStatus != ConsTrade.平仓待复核 && td.TradeStatus != ConsTrade.互换待复核))
{
throw new ServiceException("拒绝失败,找不到要平仓的主交易,该交易不处于待复核状态,不能被拒绝!");
}
var delTradeCashes = DbContext.trade_cash.Where(O => O.TradeId == req.TradeId && O.ValidState == "InValid" && !O.IsDeleted);
DbContext.trade_cash.RemoveRange(delTradeCashes);
DbContext.SaveChanges();
//存在审批流程时,审批流程也进入拒绝状态
if (valuedateBLL.SystemDate.CloseReApprove == 1 && HasTradeProcess())
{
var result = new TradeOpenService(this).UpdateTradeProcessLog(new TradeOpenReqModel
{
tradeId = td.id,
status = "reject",
comments = "提前终止拒绝成功"
});
if (result.RetCode != TradeOpenRetCode.Success && !string.IsNullOrWhiteSpace(result.ErrorMsg))
{
throw new ServiceException("提前终止拒绝失败");
}
return;
}
td.TradeStatus = ConsTrade.提前终止拒绝;
td.IsApproval = false;
AddTradeOperationHistoryAndSetParentTradeInfo(false, td, "提前终止拒绝");
DbContext.SaveChanges();
}
/// <summary>
/// 分组了结 主交易复核拒绝
/// </summary>
/// <param name="parentTradeId"></param>
public void DenyReCheckByParent(int parentTradeId)
{
var result = new TradeOpenService(OptUser).UpdateParentTradeProcessLog(new TradeOpenReqModel
{
tradeId = parentTradeId,
status = "reject",
comments = "",
ignoreMoneyCheck = false
});
}
}
}