using YLErp.BLL; using YLErp.Model; namespace YLErp.Modules.TradeModule.DealModule { /// /// 交易流程服务 /// public class TradeProcessService : TradeServiceBase { public TradeProcessService(YLBaseService baseService) : base(baseService) { } public TradeProcessService(OptUserInfo userInfo) : base(userInfo) { } /// /// from trade_cashcontroller.DenyReCheck /// 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(); } /// /// 分组了结 主交易复核拒绝 /// /// public void DenyReCheckByParent(int parentTradeId) { var result = new TradeOpenService(OptUser).UpdateParentTradeProcessLog(new TradeOpenReqModel { tradeId = parentTradeId, status = "reject", comments = "", ignoreMoneyCheck = false }); } } }