public List <CorpAduitConfigModel> GetCorpAduitConfigListByCorpId(string corpId)
        {
            List <CorpAduitConfigEntity> corpAduitConfigEntities =
                _corpAduitConfigDal.Query <CorpAduitConfigEntity>(n => n.CorpId == corpId && n.IsDel == 0, true).ToList();
            List <int> configList = new List <int>();

            corpAduitConfigEntities.ForEach(n => configList.Add(n.ConfigId));

            List <CorpAduitConfigDetailEntity> corpAduitConfigDetailEntities =
                _corpAduitConfigDetailDal.Query <CorpAduitConfigDetailEntity>(n => configList.Contains(n.ConfigId), true).OrderBy(n => n.AduitLevel)
                .ToList();

            List <int> cidList = new List <int>();

            corpAduitConfigDetailEntities.ForEach(n =>
            {
                cidList.Add(n.AduitCid);
            });

            List <CustomerInfoEntity> customerInfoEntities =
                _customerDal.Query <CustomerInfoEntity>(n => cidList.Contains(n.Cid), true).ToList();


            List <CorpAduitConfigModel> corpAduitConfigModels =
                Mapper.Map <List <CorpAduitConfigEntity>, List <CorpAduitConfigModel> >(corpAduitConfigEntities);
            List <CorpAduitConfigDetailModel> corpAduitConfigDetailModels =
                Mapper.Map <List <CorpAduitConfigDetailEntity>, List <CorpAduitConfigDetailModel> >(corpAduitConfigDetailEntities);

            foreach (var corpAduitConfigModel in corpAduitConfigModels)
            {
                corpAduitConfigModel.DetailList =
                    corpAduitConfigDetailModels.FindAll(n => n.ConfigId == corpAduitConfigModel.ConfigId);
                foreach (var corpAduitConfigDetailModel in corpAduitConfigModel.DetailList)
                {
                    corpAduitConfigDetailModel.AduitName =
                        customerInfoEntities.Find(n => n.Cid == corpAduitConfigDetailModel.AduitCid)?.RealName;
                }
            }

            return(corpAduitConfigModels);
        }
Exemple #2
0
        /// <summary>
        /// 产生审批规则
        /// </summary>
        /// <param name="cid"></param>
        /// <param name="departId"></param>
        /// <returns></returns>
        public List <CorpAduitChangeModel> GetCorpAduitChangeInfo(int cid, int departId)
        {
            List <CorpAduitChangeModel> resultList = null;

            #region 先根据cid查找员工的审批规则
            List <CorpAduitConfigCustomerEntity> corpAduitConfigCustomerEntities =
                _corpAduitConfigCustomerDal.Query <CorpAduitConfigCustomerEntity>(n => n.Cid == cid, true).ToList();

            if (corpAduitConfigCustomerEntities != null && corpAduitConfigCustomerEntities.Count > 0)
            {
                List <int> aduitIdList = new List <int>();
                corpAduitConfigCustomerEntities.ForEach(n => { aduitIdList.Add(n.AduitId); });
                //获取审批规则
                List <CorpAduitConfigEntity> aduitList = _corpAduitConfigDal.Query <CorpAduitConfigEntity>(
                    n => aduitIdList.Contains(n.ConfigId) && n.IsDel == 0,
                    true).ToList();

                resultList = new List <CorpAduitChangeModel>();
                foreach (var entity in corpAduitConfigCustomerEntities)
                {
                    var aduit = aduitList.Find(n => n.ConfigId == entity.AduitId);
                    if (aduit != null)
                    {
                        List <CorpAduitConfigDetailEntity> corpAduitConfigDetailEntities =
                            _corpAduitConfigDetailDal.Query <CorpAduitConfigDetailEntity>(
                                n => n.AduitCid == entity.AduitId, true).ToList();

                        resultList.Add(new CorpAduitChangeModel()
                        {
                            AduitId   = entity.AduitId,
                            AduitName = aduit.AduitName
                        });
                    }
                }
                return(resultList);
            }

            #endregion

            #region 如果没有审批规则,则查找部门的审批规则
            List <CorpAduitConfigDepartmentEntity> corpAduitConfigDepartmentEntities =
                _corpAduitConfigDepartmentDal.Query <CorpAduitConfigDepartmentEntity>(n => n.DepartmentId == departId,
                                                                                      true)
                .ToList();
            if (corpAduitConfigDepartmentEntities != null && corpAduitConfigDepartmentEntities.Count > 0)
            {
                List <int> aduitIdList = new List <int>();
                corpAduitConfigDepartmentEntities.ForEach(n => { aduitIdList.Add(n.AduitId); });

                //获取审批规则信息
                List <CorpAduitConfigEntity> aduitList = _corpPolicyConfigDal.Query <CorpAduitConfigEntity>(
                    n => aduitIdList.Contains(n.ConfigId) && n.IsDel == 0,
                    true).ToList();
                resultList = new List <CorpAduitChangeModel>();

                foreach (var entity in corpAduitConfigDepartmentEntities)
                {
                    var aduit = aduitList.Find(n => n.ConfigId == entity.AduitId);
                    if (aduit != null)
                    {
                        resultList.Add(new CorpAduitChangeModel()
                        {
                            AduitId   = entity.AduitId,
                            AduitName = aduit.AduitName
                        });
                    }
                }
                return(resultList);
            }
            #endregion

            return(null);
        }