예제 #1
0
        /// <summary>
        /// 进行审批
        /// </summary>
        public AuditResultModel RunAudit(AuditTypeQueryModel query)
        {
            int code = 0;

            if (query.OrderSourceType == OrderSourceTypeEnum.Flt)
            {
                AuditFltOrderQueryModel fltOrderQuery = new AuditFltOrderQueryModel().ConvertFatherToSon(query);
                var result = _auditFltOrderBll.RunAudit(fltOrderQuery);
                return(result);
            }
            if (query.OrderSourceType == OrderSourceTypeEnum.FltModApply)
            {
                AuditFltModApplyQueryModel fltModApplyQueryModel =
                    new AuditFltModApplyQueryModel().ConvertFatherToSon(query);
                var result = _auditFltModApplyBll.RunAudit(fltModApplyQueryModel);
                return(result);
            }
            if (query.OrderSourceType == OrderSourceTypeEnum.FltRetApply)
            {
                AuditFltRetApplyQueryModel fltRetApplyQueryModel =
                    new AuditFltRetApplyQueryModel().ConvertFatherToSon(query);
                var result = _auditFltRetApplyBll.RunAudit(fltRetApplyQueryModel);
                return(result);
            }

            throw new Exception("审批类型错误");
        }
예제 #2
0
        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);
        }
예제 #3
0
        public bool Validata(AuditFltOrderQueryModel auditFltOrderQuery)
        {
            ValidataAuditContext context = new ValidataAuditContext()
            {
                FltOrder  = auditFltOrderQuery.FltOrder,
                AuditStep = auditFltOrderQuery.AuditStep,
                AuditCid  = auditFltOrderQuery.AuditCustomer.Cid
            };


            AuditAbstractValidate alreadyAuditedValidate = new AlreadyAuditedValidate();
            AuditAbstractValidate auditeCidValidate      = new AuditeCidValidate();

            alreadyAuditedValidate.SetNextNode(auditeCidValidate);


            return(alreadyAuditedValidate.ActionValidate(context));
        }
예제 #4
0
 /// <summary>
 /// 机票正单审批构造
 /// </summary>
 public RunAuditVisitor(IFltOrderDal fltOrderDal, IFltOrderLogDal fltOrderLogDal, AuditFltOrderQueryModel query)
 {
     _fltOrderDal    = fltOrderDal;
     _fltOrderLogDal = fltOrderLogDal;
     this._query     = query;
 }