Пример #1
0
        /// <summary>
        /// 根据项目成本中心对应的差旅政策信息
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="isAllowUserInsurance"></param>
        /// <returns></returns>
        public List <CorpPolicyChangeModel> GetCorpPolicyChangeInfoByProjectId(int projectId,
                                                                               int isAllowUserInsurance)
        {
            List <int> policyIdList =
                _corpPolicyConfigProjectDal.Query <CorpPolicyConfigProjectEntity>(
                    n => projectId == n.ProjectId, true).Select(n => n.PolicyId).ToList();//根据项目Id获取对应的差标信息


            if (policyIdList == null || policyIdList.Count == 0)
            {
                return(null);
            }


            List <CorpPolicyChangeModel> resultList = new List <CorpPolicyChangeModel>();

            List <CorpPolicyConfigEntity> policyList = _corpPolicyConfigDal.Query <CorpPolicyConfigEntity>(
                n => policyIdList.Contains(n.PolicyId) && !string.IsNullOrEmpty(n.IsDel) && n.IsDel.ToUpper() == "F",
                true).ToList();

            foreach (var entity in policyList)
            {
                List <CorpPolicyDetailConfigEntity> policyDetailList =
                    _corpPolicyDetailConfigDal.Query <CorpPolicyDetailConfigEntity>(
                        n => n.PolicyId == entity.PolicyId, true).ToList();
                CorpPolicyDetailConfigModel policyModel = CorpPolicyConvertFactory.Convert(policyDetailList);
                if (isAllowUserInsurance == 0)//如果当前公司个性化不许购买保险,则统一设置F;如果允许购买保险,则看差标允许不允许
                {
                    policyModel.NPolicyValI = "F";
                }
                resultList.Add(new CorpPolicyChangeModel()
                {
                    PolicyId           = entity.PolicyId,
                    PolicyName         = entity.PolicyName,
                    ViolateNPolicyValL = policyModel.NPolicyValL,
                    ViolateNPolicyValT = policyModel.NPolicyValT,
                    ViolateNPolicyValR = policyModel.NPolicyValR,
                    ViolateNPolicyValY = policyModel.NPolicyValY,
                    ViolateNPolicyValI = policyModel.NPolicyValI,
                    ViolateTPolicyValQ = policyModel.TPolicyValQ,
                    ViolateTPolicyValM = policyModel.TPolicyValM,
                    ViolateTPolicyValS = policyModel.TPolicyValS
                });
            }



            return(resultList);
        }
Пример #2
0
        public List <ProjectNameModel> GetCorpPolicyProjectByCorpId(string corpId, int?policyId, int?aduitId)
        {
            List <ProjectNameModel> projectNameModels = GetProjectNameByCorpId(corpId, "F");
            List <int> projectIdList = new List <int>();

            foreach (var projectNameModel in projectNameModels)
            {
                projectIdList.Add(projectNameModel.ProjectId);
            }

            List <CorpPolicyConfigProjectEntity> corpPolicyConfigProjectEntities = null;

            if (policyId.HasValue)
            {
                corpPolicyConfigProjectEntities = _corpPolicyConfigProjectDal.Query <CorpPolicyConfigProjectEntity>(
                    n => projectIdList.Contains(n.ProjectId) && n.PolicyId == policyId.Value, true).ToList();
            }

            List <CorpAduitConfigProjectEntity> corpAduitConfigProjectEntities = null;

            if (aduitId.HasValue)
            {
                corpAduitConfigProjectEntities = _corpAduitConfigProjectDal.Query <CorpAduitConfigProjectEntity>(
                    n => projectIdList.Contains(n.ProjectId) && n.AduitId == aduitId.Value, true).ToList();
            }


            foreach (var projectNameModel in projectNameModels)
            {
                CorpPolicyConfigProjectEntity corpPolicyConfigProjectEntity =
                    corpPolicyConfigProjectEntities?.Find(n => n.ProjectId == projectNameModel.ProjectId);
                if (corpPolicyConfigProjectEntity != null)
                {
                    projectNameModel.IsHasPolicy = true;
                }

                CorpAduitConfigProjectEntity corpAduitConfigDepartmentEntity =
                    corpAduitConfigProjectEntities?.Find(n => n.ProjectId == projectNameModel.ProjectId);
                if (corpAduitConfigDepartmentEntity != null)
                {
                    projectNameModel.IsHasAduit = true;
                }
            }

            return(projectNameModels);
        }
        public bool AddPolicyProjectRelation(CorpPolicyConfigProjectModel model)
        {
            List <CorpPolicyConfigProjectEntity> corpPolicyConfigProjectEntities =
                _corpPolicyConfigProjectDal.Query <CorpPolicyConfigProjectEntity>(
                    n => n.PolicyId == model.PolicyId, true)
                .ToList();                                                              //根据政策id获取与项目成本中心的关系信息

            bool isClearAll = (model.ProjectIdList.Find(n => n.Value == true) == null); //是否清空所有关系

            if (!isClearAll)
            {
                foreach (var departKeyValue in model.ProjectIdList)
                {
                    var configProject = corpPolicyConfigProjectEntities.Find(n => n.ProjectId == departKeyValue.Key);
                    if (configProject == null && departKeyValue.Value)//不存在关系,并且勾选了部门
                    {
                        //新增
                        _corpPolicyConfigProjectDal.Insert(new CorpPolicyConfigProjectEntity()
                        {
                            ProjectId = departKeyValue.Key,
                            PolicyId  = model.PolicyId
                        });
                    }

                    if (configProject != null && !departKeyValue.Value)//存在关系,并且不选部门
                    {
                        //删除部门关系
                        _corpPolicyConfigProjectDal.Delete <CorpPolicyConfigProjectEntity>(configProject.Id);
                    }
                }
            }
            else
            {
                if (corpPolicyConfigProjectEntities.Count > 0)
                {
                    //清空对应的关系
                    foreach (var entity in corpPolicyConfigProjectEntities)
                    {
                        _corpPolicyConfigProjectDal.Delete <CorpPolicyConfigProjectEntity>(entity.Id);
                    }
                }
            }

            return(true);
        }