/// <summary> /// 待审批信息 /// </summary> /// <param name="sendAppMessageModel"></param> private void GetWaitAuditMessage(SendAppMessageModel sendAppMessageModel) { if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.AduitOrder && sendAppMessageModel.SendType == SendAppMessageTypeEnum.WaitAuditNotice) { List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => n.AduitOrderId == sendAppMessageModel.OrderId, true).ToList(); if (corpAduitOrderDetailEntities == null || corpAduitOrderDetailEntities.Count == 0) { return; } string orderType = corpAduitOrderDetailEntities[0].OrderType.ValueToDescription <OrderSourceTypeEnum>(); string orderId = corpAduitOrderDetailEntities[0].OrderId.ToString(); if (corpAduitOrderDetailEntities[0].OrderType == (int)OrderSourceTypeEnum.FltModApply || corpAduitOrderDetailEntities[0].OrderType == (int)OrderSourceTypeEnum.FltRetApply) { FltRetModApplyEntity fltRetModApplyEntity = base.Context.Set <FltRetModApplyEntity>().Find(corpAduitOrderDetailEntities[0].OrderId); orderId = fltRetModApplyEntity?.OrderId.ToString(); } sendAppMessageModel.SendContent = string.Format("{0}{1}{2}需要您进行审批", orderType, (orderType.Contains("申请") ? "" : "订单"), orderId); } }
public CorpAduitOrderInfoModel GetAduitOrderInfoById(int aduitOrderId) { CorpAduitOrderEntity corpAduitOrderEntity = _corpAduitOrderDal.Find <CorpAduitOrderEntity>(aduitOrderId); CorpAduitOrderInfoModel corpAduitOrderInfoModel = Mapper.Map <CorpAduitOrderEntity, CorpAduitOrderInfoModel>(corpAduitOrderEntity); //审批单与订单关联信息 List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => n.AduitOrderId == corpAduitOrderEntity.AduitOrderId, true).ToList(); corpAduitOrderInfoModel.OrderDetailList = Mapper.Map <List <CorpAduitOrderDetailEntity>, List <CorpAduitOrderDetailModel> >( corpAduitOrderDetailEntities); //审批环节信息 List <CorpAduitOrderFlowEntity> corpAduitOrderFlowEntities = _corpAduitOrderFlowDal.Query <CorpAduitOrderFlowEntity>( n => n.AduitOrderId == corpAduitOrderEntity.AduitOrderId, true).ToList(); corpAduitOrderInfoModel.FlowList = Mapper.Map <List <CorpAduitOrderFlowEntity>, List <CorpAduitOrderFlowModel> >( corpAduitOrderFlowEntities); //审批日志信息 List <CorpAduitOrderLogEntity> corpAduitOrderLogEntities = _corpAduitOrderLogDal.Query <CorpAduitOrderLogEntity>( n => n.AduitOrderId == corpAduitOrderEntity.AduitOrderId, true).ToList(); corpAduitOrderInfoModel.LogList = Mapper.Map <List <CorpAduitOrderLogEntity>, List <CorpAduitOrderLogModel> >( corpAduitOrderLogEntities); List <CustomerModel> customerModels = _getCustomerBll.GetCustomerByCidList(corpAduitOrderInfoModel.AduitCidList); if (corpAduitOrderInfoModel.FlowList != null && corpAduitOrderInfoModel.FlowList.Count > 0) { corpAduitOrderInfoModel.FlowList.ForEach(n => { n.FlowCustomerName = customerModels?.Find(x => x.Cid == n.FlowCid)?.RealName; }); } if (corpAduitOrderInfoModel.LogList != null && corpAduitOrderInfoModel.LogList.Count > 0) { corpAduitOrderInfoModel.LogList.ForEach(n => { if (n.DealCid.HasValue) { n.DealCustomerName = customerModels?.Find(x => x.Cid == n.DealCid.Value)?.RealName; } }); } return(corpAduitOrderInfoModel); }
public bool CheckAduitCidHasOrderId(int cid, int orderId) { List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => n.OrderId == orderId, true).ToList(); if (corpAduitOrderDetailEntities == null || corpAduitOrderDetailEntities.Count == 0) { return(false); } List <int> aduitOrderIdList = new List <int>(); corpAduitOrderDetailEntities.ForEach(n => { aduitOrderIdList.Add(n.AduitOrderId); }); int count = _corpAduitOrderFlowDal.Query <CorpAduitOrderFlowEntity>( n => aduitOrderIdList.Contains(n.AduitOrderId) && n.FlowCid == cid, true).Count(); if (count > 0) { return(true); } return(false); }
/// <summary> /// 获取待审批信息 /// </summary> /// <param name="query"></param> /// <returns></returns> public AuditOrderListModel GetWaitCorpAduitOrderList(AuditOrderListQueryModel query) { AuditOrderListModel resultModel = new AuditOrderListModel(); #region 分页查询 var select = from aduitOrder in Context.Set <CorpAduitOrderEntity>().AsNoTracking() join flow in Context.Set <CorpAduitOrderFlowEntity>().AsNoTracking() on new { AduitOrderId = aduitOrder.AduitOrderId, CurrentFlow = aduitOrder.CurrentFlow } equals new { AduitOrderId = flow.AduitOrderId, CurrentFlow = flow.Flow } into a from flow in a.DefaultIfEmpty() where aduitOrder.CurrentFlow > 0 && flow.FlowCid == query.AuditCid && !flow.DealResult.HasValue && aduitOrder.Status != 7 && aduitOrder.Status != 6 && (aduitOrder.IsDel ?? 0) == 0 select new AuditOrderListDataModel() { Id = aduitOrder.AduitOrderId, AuditStatusInt = aduitOrder.Status, CurrentAuditCid = flow.FlowCid, CreateTime = aduitOrder.CreateTime, CurrentFlow = aduitOrder.CurrentFlow }; if (query.AllowShowDataBeginTime.HasValue) { select = select.Where(n => n.CreateTime > query.AllowShowDataBeginTime.Value); } resultModel.TotalCount = select.Count();//查询所有结果的数量 select = select.OrderByDescending(n => n.CreateTime).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize); resultModel.DataList = select.ToList();//分页结果 if (resultModel.DataList == null || resultModel.DataList.Count == 0) { return(resultModel); } #endregion List <int> aduitOrderIdList = new List <int>(); resultModel.DataList.ForEach(n => { aduitOrderIdList.Add(n.Id); }); List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => aduitOrderIdList.Contains(n.AduitOrderId), true).ToList(); List <AuditOrderDetailModel> auditOrderDetailModels = new List <AuditOrderDetailModel>(); foreach (var detail in corpAduitOrderDetailEntities) { AuditOrderDetailModel model = new AuditOrderDetailModel() { OrderId = detail.OrderId, Id = detail.AduitOrderId, OrderType = detail.OrderType.ValueToEnum <OrderSourceTypeEnum>() }; auditOrderDetailModels.Add(model); } foreach (var aduitOrder in resultModel.DataList) { aduitOrder.DetailList = auditOrderDetailModels.FindAll(n => n.Id == aduitOrder.Id); } return(resultModel); }
/// <summary> /// 审批 /// </summary> /// <param name="model"></param> /// <returns></returns> public BaseDealAduitResultModel DoAduit(BaseDealAduitModel model) { CorpAduitOrderEntity corpAduitOrderEntity = _corpAduitOrderDal.Find <CorpAduitOrderEntity>(model.AduitOrderId); List <int> statusList = new List <int>() { (int)CorpAduitOrderStatusEnum.W, (int)CorpAduitOrderStatusEnum.P, (int)CorpAduitOrderStatusEnum.W1, (int)CorpAduitOrderStatusEnum.P1, (int)CorpAduitOrderStatusEnum.P2 }; if (corpAduitOrderEntity.Status == (int)CorpAduitOrderStatusEnum.J) { throw new Exception("当前审批已被拒绝"); } if (!statusList.Contains(corpAduitOrderEntity.Status)) { throw new Exception("当前审批单状态异常"); } if (corpAduitOrderEntity.CurrentFlow != model.CurrentFlow) { throw new Exception("当前审批环节异常"); } //获取当前环节信息 List <CorpAduitOrderFlowEntity> flowList = _corpAduitOrderFlowDal.Query <CorpAduitOrderFlowEntity>(n => n.AduitOrderId == model.AduitOrderId) .ToList(); //判断当前审批单订单是否已经被取消 if (!CheckOrderIsCancel(corpAduitOrderEntity)) { throw new MojoryException(MojoryApiResponseCode.AduitCancelOrder, "审批单中的订单已经被取消,系统自动设置审批单过期", flowList.Find(n => n.Flow == -1).FlowCid); } List <CorpAduitOrderFlowEntity> corpAduitOrderFlowEntities = flowList.FindAll(n => n.Flow == corpAduitOrderEntity.CurrentFlow); List <int> nextFlowCidList = new List <int>(); if (corpAduitOrderFlowEntities.Count == 1) { SingleAduit(model, corpAduitOrderEntity, corpAduitOrderFlowEntities[0], ref nextFlowCidList); } else if (corpAduitOrderFlowEntities.Count > 1) { TogetherAduit(model, corpAduitOrderEntity, corpAduitOrderFlowEntities, ref nextFlowCidList); } List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>(n => n.AduitOrderId == model.AduitOrderId, true).ToList(); BaseDealAduitResultModel resultModel = new BaseDealAduitResultModel() { AduitOrderId = model.AduitOrderId, IsSuccessed = true, DetailList = new List <BaseDealAduitResultDetailModel>(), CreateAduitOrderCid = flowList.Find(n => n.Flow == -1).FlowCid, IsFinished = (corpAduitOrderEntity.Status == (int)CorpAduitOrderStatusEnum.F || corpAduitOrderEntity.Status == (int)CorpAduitOrderStatusEnum.J), NextFlowCidList = nextFlowCidList, AduitOrderStatus = corpAduitOrderEntity.Status.ValueToEnum <CorpAduitOrderStatusEnum>() }; corpAduitOrderDetailEntities.ForEach(n => { resultModel.DetailList.Add(new BaseDealAduitResultDetailModel() { OrderId = n.OrderId, OrderSourceType = n.OrderType.ValueToEnum <OrderSourceTypeEnum>() }); }); return(resultModel); }
public int Copy(int copyFromOrderId, int newOrderId) { CorpAduitOrderDetailEntity copyAduitOrderDetailEntity = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => n.OrderId == copyFromOrderId, true).FirstOrDefault(); if (copyAduitOrderDetailEntity != null) { #region 获取原始审批单 CorpAduitOrderEntity copyCorpAduitOrderEntity = _corpAduitOrderDal.Find <CorpAduitOrderEntity>(copyAduitOrderDetailEntity.AduitOrderId); List <CorpAduitOrderDetailEntity> copyCorpAduitOrderDetailEntities = _corpAduitOrderDetailDal.Query <CorpAduitOrderDetailEntity>( n => n.AduitOrderId == copyCorpAduitOrderEntity.AduitOrderId, true).ToList(); List <CorpAduitOrderFlowEntity> copyCorpAduitOrderFlowEntities = _corpAduitOrderFlowDal.Query <CorpAduitOrderFlowEntity>( n => n.AduitOrderId == copyCorpAduitOrderEntity.AduitOrderId, true).ToList(); List <CorpAduitOrderLogEntity> copyCorpAduitOrderLogEntities = _corpAduitOrderLogDal.Query <CorpAduitOrderLogEntity>( n => n.AduitOrderId == copyCorpAduitOrderEntity.AduitOrderId, true).ToList(); #endregion #region 制原始审批单 CorpAduitOrderEntity corpAduitOrderEntity = Mapper.Map <CorpAduitOrderEntity, CorpAduitOrderEntity>(copyCorpAduitOrderEntity); corpAduitOrderEntity = _corpAduitOrderDal.Insert(corpAduitOrderEntity); List <CorpAduitOrderDetailEntity> corpAduitOrderDetailEntities = Mapper.Map <List <CorpAduitOrderDetailEntity>, List <CorpAduitOrderDetailEntity> >( copyCorpAduitOrderDetailEntities); foreach (var corpAduitOrderDetailEntity in corpAduitOrderDetailEntities) { corpAduitOrderDetailEntity.AduitOrderId = corpAduitOrderEntity.AduitOrderId; corpAduitOrderDetailEntity.OrderId = newOrderId; _corpAduitOrderDetailDal.Insert(corpAduitOrderDetailEntity); } List <CorpAduitOrderFlowEntity> corpAduitOrderFlowEntities = Mapper.Map <List <CorpAduitOrderFlowEntity>, List <CorpAduitOrderFlowEntity> >( copyCorpAduitOrderFlowEntities); foreach (var corpAduitOrderFlowEntity in corpAduitOrderFlowEntities) { corpAduitOrderFlowEntity.AduitOrderId = corpAduitOrderEntity.AduitOrderId; _corpAduitOrderFlowDal.Insert(corpAduitOrderFlowEntity); } List <CorpAduitOrderLogEntity> corpAduitOrderLogEntities = Mapper.Map <List <CorpAduitOrderLogEntity>, List <CorpAduitOrderLogEntity> >( copyCorpAduitOrderLogEntities); foreach (var corpAduitOrderLogEntity in corpAduitOrderLogEntities) { corpAduitOrderLogEntity.AduitOrderId = corpAduitOrderEntity.AduitOrderId; _corpAduitOrderLogDal.Insert(corpAduitOrderLogEntity); } #endregion return(corpAduitOrderEntity.AduitOrderId); } return(0); }