Exemplo n.º 1
0
        public List <CorpAduitCustomerModel> GetCorpAduitCustomer(string corpId, int aduitId)
        {
            List <CorpAduitCustomerModel> corpAduitCustomerModels = new List <CorpAduitCustomerModel>();

            //根据审批规则Id从部门关联表中获取对应的部门Id
            List <CorpAduitConfigDepartmentEntity> configDepartmentEntities =
                _corpAduitConfigDepartmentDal.Query <CorpAduitConfigDepartmentEntity>(n => n.AduitId == aduitId, true)
                .ToList();

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

            configDepartmentEntities.ForEach(n => departIdList.Add(n.DepartmentId));

            //根据部门id获取客户id
            List <CustomerInfoEntity> customerInfoEntities =
                _customerDal.Query <CustomerInfoEntity>(
                    n =>
                    !string.IsNullOrEmpty(n.CorpID) && n.CorpID.ToUpper() == corpId.ToUpper() &&
                    departIdList.Contains(n.CorpDepartID ?? 0) && !string.IsNullOrEmpty(n.IsDel) &&
                    n.IsDel.ToUpper() == "F" && n.IsLock.ToUpper() == "F", true)
                .ToList();


            //根据审批规则Id获取对应的客户id信息
            List <CorpAduitConfigCustomerEntity> corpAduitConfigCustomerEntities =
                _corpAduitConfigCustomerDal.Query <CorpAduitConfigCustomerEntity>(
                    n => n.AduitId == aduitId, true).ToList();
            //排除已经删除的规则
            List <CorpAduitConfigCustomerEntity> corpAduitConfigCustomerEntities2 =
                (from c in base.Context.Set <CorpAduitConfigCustomerEntity>()
                 join a in Context.Set <CorpAduitConfigEntity>() on c.AduitId equals a.ConfigId
                 where a.IsDel == 0 && c.AduitId != aduitId
                 select c).ToList();


            foreach (var customerInfoEntity in customerInfoEntities)
            {
                if (corpAduitConfigCustomerEntities2.Find(n => n.Cid == customerInfoEntity.Cid) != null)
                {
                    continue;
                }

                CorpAduitConfigCustomerEntity configCustomerEntity =
                    corpAduitConfigCustomerEntities.Find(n => n.Cid == customerInfoEntity.Cid);

                corpAduitCustomerModels.Add(new CorpAduitCustomerModel()
                {
                    Cid            = customerInfoEntity.Cid,
                    CustomerName   = customerInfoEntity.RealName,
                    DepartmentName = customerInfoEntity.DepartmentName,
                    IsHasAduit     = (configCustomerEntity != null)
                });
            }
            corpAduitCustomerModels = corpAduitCustomerModels.OrderBy(n => n.DepartmentName).ToList();
            return(corpAduitCustomerModels);
        }
Exemplo n.º 2
0
        public List <CorpDepartmentModel> GetCorpPolicyDepartmentByCorpId(string corpId, int?policyId, int?aduitId)
        {
            List <CorpDepartmentModel> departmentModels = _getCorpDepartmentBll.GetCorpDepartmentByCorpId(corpId);
            List <int> departIdList = new List <int>();

            foreach (var corpDepartmentModel in departmentModels)
            {
                departIdList.Add(corpDepartmentModel.Id);
            }
            List <CorpPolicyConfigDepartmentEntity> policyDepartmentEntities = null;

            if (policyId.HasValue)
            {
                policyDepartmentEntities = _corpPolicyConfigDepartmentDal.Query <CorpPolicyConfigDepartmentEntity>(
                    n => departIdList.Contains(n.DepartmentId) && n.PolicyId == policyId.Value, true).ToList();
            }

            List <CorpAduitConfigDepartmentEntity> aduitConfigDepartmentEntities = null;

            if (aduitId.HasValue)
            {
                aduitConfigDepartmentEntities = _corpAduitConfigDepartmentDal.Query <CorpAduitConfigDepartmentEntity>(
                    n => departIdList.Contains(n.DepartmentId) && n.AduitId == aduitId.Value, true).ToList();
            }


            foreach (var corpDepartmentModel in departmentModels)
            {
                CorpPolicyConfigDepartmentEntity corpPolicyConfigDepartmentEntity =
                    policyDepartmentEntities?.Find(n => n.DepartmentId == corpDepartmentModel.Id);
                if (corpPolicyConfigDepartmentEntity != null)
                {
                    corpDepartmentModel.IsHasPolicy = true;
                }

                CorpAduitConfigDepartmentEntity corpAduitConfigDepartmentEntity =
                    aduitConfigDepartmentEntities?.Find(n => n.DepartmentId == corpDepartmentModel.Id);
                if (corpAduitConfigDepartmentEntity != null)
                {
                    corpDepartmentModel.IsHasAduit = true;
                }
            }
            return(departmentModels);
        }
Exemplo n.º 3
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);
        }
        public bool AddCorpAduitDepartmentRelation(CorpAduitConfigDepartmentModel model)
        {
            List <CorpAduitConfigDepartmentEntity> configDepartmentEntities =
                _corpAduitConfigDepartmentDal.Query <CorpAduitConfigDepartmentEntity>(n => n.AduitId == model.AduitId)
                .ToList();
            bool isClearAll = (model.DepartmentIdList.Find(n => n.Value == true) == null);//是否清空所有关系

            if (!isClearAll)
            {
                foreach (var departKeyValue in model.DepartmentIdList)
                {
                    var configDepartment = configDepartmentEntities.Find(n => n.DepartmentId == departKeyValue.Key);

                    if (configDepartment == null && departKeyValue.Value)//不存在关系,并且勾选了部门
                    {
                        //新增
                        _corpAduitConfigDepartmentDal.Insert <CorpAduitConfigDepartmentEntity>(new CorpAduitConfigDepartmentEntity()
                        {
                            DepartmentId = departKeyValue.Key,
                            AduitId      = model.AduitId
                        });
                    }

                    if (configDepartment != null && !departKeyValue.Value)//存在关系,并且不选部门
                    {
                        //删除部门关系
                        _corpAduitConfigDepartmentDal.Delete <CorpAduitConfigDepartmentEntity>(configDepartment.Id);
                        //删除员工关系
                        List <CorpAduitConfigCustomerEntity> corpAduitConfigCustomerEntities =
                            _corpAduitConfigDepartmentDal.Query <CorpAduitConfigCustomerEntity>(
                                n => n.AduitId == model.AduitId, true).ToList();
                        if (corpAduitConfigCustomerEntities.Count > 0)
                        {
                            foreach (var entity in corpAduitConfigCustomerEntities)
                            {
                                _corpAduitConfigCustomerDal.Delete <CorpAduitConfigCustomerEntity>(entity.Id);
                            }
                        }
                    }
                }
            }
            else
            {
                if (configDepartmentEntities.Count > 0)
                {
                    foreach (var entity in configDepartmentEntities)
                    {
                        _corpAduitConfigDepartmentDal.Delete <CorpAduitConfigDepartmentEntity>(entity.Id);
                    }
                }

                //在清空与员工的关系
                List <CorpAduitConfigCustomerEntity> corpAduitConfigCustomerEntities =
                    _corpAduitConfigCustomerDal.Query <CorpAduitConfigCustomerEntity>(
                        n => n.AduitId == model.AduitId, true).ToList();
                if (corpAduitConfigCustomerEntities.Count > 0)
                {
                    foreach (var entity in corpAduitConfigCustomerEntities)
                    {
                        _corpAduitConfigCustomerDal.Delete <CorpAduitConfigCustomerEntity>(entity.Id);
                    }
                }
            }

            return(true);
        }