public AuditResultModel RunAudit(AuditFltOrderQueryModel query) { FltOrderEntity orderEntity = _fltOrderDal.Find <FltOrderEntity>(query.Id); FltOrderModel orderModel = Mapper.Map <FltOrderEntity, FltOrderModel>(orderEntity); if (orderModel == null) { throw new MojoryException(MojoryApiResponseCode.NoFindOrder); } query.FltOrder = orderModel; //进行验证 _validataAuditInfoBll.Validata(query); //进行审批 AuditResultModel code = new AuditResultModel(); IRunAuditVisitor visitor = new RunAuditVisitor(_fltOrderDal, _fltOrderLogDal, query); if (query.AuditStep == FltOrderCheckStatusEnum.T.ToString())//待一级审批 { AuditOrderAbstract auditOrderFirst = new AuditOrderFirst(); code = auditOrderFirst.RunAudit(visitor); } else if (query.AuditStep == FltOrderCheckStatusEnum.S.ToString())//待二级审批 { AuditOrderAbstract auditOrderSecond = new AuditOrderSecond(); code = auditOrderSecond.RunAudit(visitor); } return(code); }
/// <summary> /// (有参构造)取得当前步骤的审批结果 /// </summary> /// <param name="step">审核步骤</param> /// <param name="userId">用户ID</param> /// <returns></returns> public AuditResultModel GetAuditResult(int step, int userId) { AuditResultModel arm = new AuditResultModel(); var ads = ap.ApplyDetails.Where(a => a.step == step); if (ap.success != null) { //已结束的 var ad = ads.Where(a => a.user_id == userId).OrderByDescending(a => a.pass).First(); //优先取已审批记录 arm.canAudit = false; arm.auditResult = ad.pass == null ? "已结束" : ad.pass == true ? "已同意" : "已NG"; arm.comment = ad.comment; } else { if (ads.Where(a => a.pass == true).Count() == 0) { //本轮还没人审批 arm.canAudit = true; } else { //本轮已有人审批 var ad = ads.Where(a => a.user_id == userId).OrderBy(a => a.pass).First(); //优先取未审批记录 if (ad.countersign == true) { //会签 if (ad.pass == null) { arm.canAudit = true; } else { arm.canAudit = false; arm.auditResult = ad.pass == true ? "已通过" : "已NG"; arm.comment = ad.comment; } } else { //不是会签 ad = ads.Where(a => a.user_id == userId).OrderByDescending(a => a.pass).First(); //优先取已审批记录 arm.canAudit = false; arm.auditResult = ad.pass == null ? "已结束" : ad.pass == true ? "已同意" : "已NG"; arm.comment = ad.comment; } } } return(arm); }
public AuditOrderResponseViewModel RunAudit(AuditOrderRequestViewModel request) { //1.根据Cid查询客户信息 CustomerModel customerModel = _getCustomerServiceBll.GetCustomerByCid(request.Cid); if (string.IsNullOrEmpty(customerModel.IsCheckPerson) || customerModel.IsCheckPerson.ToUpper() != "T") { throw new Exception("当前用户无权审批"); } AuditOrderResponseViewModel responseViewModel = new AuditOrderResponseViewModel(); AuditTypeQueryModel query = new AuditTypeQueryModel() { OrderSourceType = request.OrderSourceType, Cid = request.Cid, Id = request.Id, AuditCustomer = customerModel, IsAgree = request.IsAgree, AuditStep = request.AuditStep }; //机票类型审批 List <OrderSourceTypeEnum> fltOrderSourceTypeList = new List <OrderSourceTypeEnum>() { OrderSourceTypeEnum.Flt, OrderSourceTypeEnum.FltModApply, OrderSourceTypeEnum.FltRetApply }; if (fltOrderSourceTypeList.Contains(query.OrderSourceType)) { using (var transaction = this.Context.Database.BeginTransaction()) { try { //1.进行审批 AuditResultModel auditResultModel = _auditFltOrderServiceBll.RunAudit(query); responseViewModel.Code = auditResultModel.Code; if (auditResultModel.OwnCid != 0) { #region 推送app信息 /** * 这里推送app消息分为两种: * 1.推送审核结果给订单所属用户 * 2.如果存在下一级审核并且当前审核通过,则推送审核给下一级审核人 * */ //1.推送审核结果给订单所属用户 _addSendAppMessageServiceBll.AddAppAuditResultMessage(new SendAppAuditResultMessageModel() { IsAgree = request.IsAgree, AuditResult = auditResultModel.AuditResult, Cid = auditResultModel.OwnCid, OrderId = auditResultModel.Id, OrderType = auditResultModel.OrderType, SendType = SendAppMessageTypeEnum.AuditResultNotice }); //2.如果存在下一级审核并且当前审核通过,则推送审核给下一级审核人 if (auditResultModel.NextAuditCid.HasValue && request.IsAgree) { _addSendAppMessageServiceBll.AddAppWaitAuditMessage(new SendAppAuditResultMessageModel() { Cid = auditResultModel.NextAuditCid.Value, OrderId = auditResultModel.Id, OrderType = auditResultModel.OrderType, SendType = SendAppMessageTypeEnum.WaitAuditNotice }); } #endregion } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } } else { throw new Exception("审批类型不正确!"); } return(responseViewModel); }