예제 #1
0
        public JsonResult GetSeniorAuditList(CarInsureCommissionRateCondition condition)
        {
            var waitAuditCount = (from h in CurrentDb.BizProcessesAudit where (h.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit) && h.Status == (int)Enumeration.CommissionRateAuditStatus.WaitSeniorAudit select h.Id).Count();
            var inAuditCount   = (from h in CurrentDb.BizProcessesAudit where (h.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit) && h.Status == (int)Enumeration.CommissionRateAuditStatus.InSeniorAudit && h.Auditor == this.CurrentUserId select h.Id).Count();


            var query = (from b in CurrentDb.BizProcessesAudit
                         join e in CurrentDb.CarInsureCommissionRate on
                         b.AduitReferenceId equals e.Id
                         where (b.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit)
                         select new { b.Id, e.ReferenceName, e.Commercial, e.Compulsory, b.Status, b.Auditor, b.CreateTime, b.JsonData });

            if (condition.AuditStatus == Enumeration.CommissionRateAuditStatus.WaitSeniorAudit)
            {
                query = query.Where(m => m.Status == (int)Enumeration.CommissionRateAuditStatus.WaitSeniorAudit);
            }
            else if (condition.AuditStatus == Enumeration.CommissionRateAuditStatus.InSeniorAudit)
            {
                query = query.Where(m => m.Status == (int)Enumeration.CommissionRateAuditStatus.InSeniorAudit && m.Auditor == this.CurrentUserId);
            }

            int total = query.Count();

            int pageIndex = condition.PageIndex;
            int pageSize  = 10;

            query = query.OrderByDescending(r => r.CreateTime).Skip(pageSize * (pageIndex)).Take(pageSize);

            List <object> list = new List <object>();

            foreach (var item in query)
            {
                CommissionRateAdjustModel commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(item.JsonData);
                list.Add(new
                {
                    item.Id,
                    BeforeCommercial = commissionRateAdjustModel.Before.Commercial.ToPrice(),
                    AfterCommercial  = commissionRateAdjustModel.After.Commercial.ToPrice(),
                    BeforeCompulsory = commissionRateAdjustModel.Before.Compulsory.ToPrice(),
                    AfterCompulsory  = commissionRateAdjustModel.After.Compulsory.ToPrice(),
                    AuditStatus      = item.Status,
                    item.ReferenceName,
                    item.CreateTime,
                });
            }

            PageEntity pageEntity = new PageEntity {
                PageSize = pageSize, TotalRecord = total, Rows = list, Status = new { waitAuditCount = waitAuditCount, inAuditCount = inAuditCount }
            };

            return(Json(ResultType.Success, pageEntity, ""));
        }
        public CustomJsonResult Apply(int operater, CarInsureCommissionRate afterCommissionRate, string reason)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var beforeCommissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == afterCommissionRate.Id).FirstOrDefault();

                if (beforeCommissionRate == null)
                {
                    return(new CustomJsonResult(ResultType.Failure, "不存在该对象"));
                }

                if (beforeCommissionRate.Commercial >= 10)
                {
                    return(new CustomJsonResult(ResultType.Failure, "交强险比例过大,不能超过10%"));
                }

                if (beforeCommissionRate.Compulsory >= 10)
                {
                    return(new CustomJsonResult(ResultType.Failure, "商业险比例过大,不能超过10%"));
                }

                var bizProcessesAuditing = CurrentDb.BizProcessesAudit.Where(m => m.AduitReferenceId == beforeCommissionRate.Id && m.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit && m.Status < 5).FirstOrDefault();
                if (bizProcessesAuditing != null)
                {
                    return(new CustomJsonResult(ResultType.Failure, "已经在有1个在申请中,请等候"));
                }

                CommissionRateAdjustModel adjustModel = new CommissionRateAdjustModel();
                adjustModel.Before = beforeCommissionRate;
                adjustModel.After  = afterCommissionRate;



                var bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CommissionRateAudit, beforeCommissionRate.Id, Enumeration.CommissionRateAuditStatus.WaitPrimaryAudit, "佣金修改申请", reason, adjustModel);


                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CommissionRateAuditStep.Apply, bizProcessesAudit.Id, operater, reason, "提交申请调整费率,正等待初审", this.DateTime);

                CurrentDb.SaveChanges();
                ts.Complete();


                result = new CustomJsonResult(ResultType.Success, "申请成功");
            }

            return(result);
        }
        public CustomJsonResult Add(int operater, int insuranceCompanyId, string insuranceCompanyName, string insuranceCompanyImgUrl, decimal commercialRate, decimal compulsoryRate)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var isExsits = CurrentDb.CarInsuranceCompany.Where(m => m.InsuranceCompanyId == insuranceCompanyId).Count();
                if (isExsits > 0)
                {
                    ts.Dispose();
                    return(new CustomJsonResult(ResultType.Failure, "已存在相同保险公司的名称"));
                }
                CarInsuranceCompany carInsuranceCompany = new CarInsuranceCompany();
                carInsuranceCompany.InsuranceCompanyId     = insuranceCompanyId;
                carInsuranceCompany.InsuranceCompanyImgUrl = insuranceCompanyImgUrl;
                carInsuranceCompany.Creator    = operater;
                carInsuranceCompany.CreateTime = DateTime.Now;
                carInsuranceCompany.Status     = Enumeration.CarInsuranceCompanyStatus.Audit;
                CurrentDb.CarInsuranceCompany.Add(carInsuranceCompany);
                CurrentDb.SaveChanges();


                CarInsureCommissionRate carInsureCommissionRate = new CarInsureCommissionRate();
                carInsureCommissionRate.Commercial    = commercialRate;
                carInsureCommissionRate.Compulsory    = compulsoryRate;
                carInsureCommissionRate.CreateTime    = this.DateTime;
                carInsureCommissionRate.Creator       = operater;
                carInsureCommissionRate.ReferenceId   = insuranceCompanyId;
                carInsureCommissionRate.ReferenceName = insuranceCompanyName;
                carInsureCommissionRate.Type          = Enumeration.CommissionRateType.InsuranceCompany;
                CurrentDb.CarInsureCommissionRate.Add(carInsureCommissionRate);
                CurrentDb.SaveChanges();


                CommissionRateAdjustModel adjustModel = new CommissionRateAdjustModel();
                adjustModel.Before = new CarInsureCommissionRate();
                adjustModel.After  = carInsureCommissionRate;

                var bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CommissionRateAudit, carInsureCommissionRate.Id, Enumeration.CommissionRateAuditStatus.WaitPrimaryAudit, "佣金修改申请", "", adjustModel);

                CurrentDb.SaveChanges();
                ts.Complete();

                result = new CustomJsonResult(ResultType.Success, "提交成功");
            }

            return(result);
        }
        public SeniorAuditViewModel(int id)
        {
            var bizProcessesAudit = BizFactory.BizProcessesAudit.ChangeCommissionRateAuditStatus(this.Operater, id, Enumeration.CommissionRateAuditStatus.InSeniorAudit, "正在复审中");

            if (bizProcessesAudit != null)
            {
                _bizProcessesAudit = bizProcessesAudit;

                var commissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == bizProcessesAudit.AduitReferenceId).FirstOrDefault();
                if (commissionRate != null)
                {
                    _commissionRate = commissionRate;
                }

                _commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(bizProcessesAudit.JsonData);
            }
        }
예제 #5
0
        public JsonResult GetApplyList(CarInsureCommissionRateCondition condition)
        {
            string name  = condition.Name.ToSearchString();
            var    query = (from b in CurrentDb.BizProcessesAudit
                            join e in CurrentDb.CarInsureCommissionRate on
                            b.AduitReferenceId equals e.Id
                            where b.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit &&
                            (name.Length == 0 || e.ReferenceName.Contains(name))

                            select new { e.Id, e.ReferenceName, e.Commercial, e.Compulsory, b.Status, b.CreateTime, b.JsonData });

            int total = query.Count();

            int pageIndex = condition.PageIndex;
            int pageSize  = 10;

            query = query.OrderByDescending(r => r.CreateTime).Skip(pageSize * (pageIndex)).Take(pageSize);

            List <object> list = new List <object>();

            foreach (var item in query)
            {
                CommissionRateAdjustModel commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(item.JsonData);
                list.Add(new
                {
                    item.Id,
                    BeforeCommercial = commissionRateAdjustModel.Before.Commercial.ToPrice(),
                    AfterCommercial  = commissionRateAdjustModel.After.Commercial.ToPrice(),
                    BeforeCompulsory = commissionRateAdjustModel.Before.Compulsory.ToPrice(),
                    AfterCompulsory  = commissionRateAdjustModel.After.Compulsory.ToPrice(),
                    item.ReferenceName,
                    Status = ((Enumeration.CommissionRateAuditStatus)item.Status).GetCnName(),
                    item.CreateTime,
                });
            }

            PageEntity pageEntity = new PageEntity {
                PageSize = pageSize, TotalRecord = total, Rows = list
            };

            return(Json(ResultType.Success, pageEntity, ""));
        }