コード例 #1
0
ファイル: LREdor.cs プロジェクト: omHsbc517/HSBC.Excel
        /// <summary>
        /// 得到团体信息
        /// </summary>
        /// <param name="businessModel"></param>
        /// <param name="yyyymm"></param>
        private void GetGroupLREdorData(ContractInfoBusiness businessModel, string yyyymm)
        {
            for (int i = 0; i < businessModel.lstPolicyAlternationReportGroup.Count; i++)
            {
                var         tempModel    = businessModel.lstPolicyAlternationReportGroup[i];
                LREdorModel currentModel = new LREdorModel();
                //交易编码
                currentModel.TransactionNo = "";
                //保险机构代码
                currentModel.CompanyCode = origanizationCode;

                //团体保单号
                currentModel.GrpPolicyNo = tempModel.ChdrNum;

                //团体保单险种号码
                //var tempLCGrpProduct = businessModel.lstTEMP_LCGrpProduct.Where(e => e.GrpPolicyNo == currentModel.GrpPolicyNo
                //  && e.ProductCode == tempModel.ProdTyp).FirstOrDefault();
                //currentModel.GrpProductNo = tempLCGrpProduct != null ? tempLCGrpProduct.GrpProductNo : string.Empty;
                currentModel.GrpProductNo = tempModel.ProdTyp;

                //个人保单号
                //var tempLCCont = businessModel.lstTEMP_LCCont.Where(a => a.GrpPolicyNo == currentModel.GrpPolicyNo).ToList().FirstOrDefault();
                string tempMbrno = string.IsNullOrWhiteSpace(tempModel.Mbrno) ? string.Empty : tempModel.Mbrno.Trim() + "00";
                currentModel.PolicyNo = tempMbrno.PadLeft(7, '0');

                // 个单保险险种号码
                currentModel.ProductNo = currentModel.GrpProductNo;

                //保单团个性质代码
                currentModel.GPFlag = "02";

                //主险保险险种号码
                var tempLCProductGroup = businessModel.lstTEMP_LCProductGroup.Where(e =>
                                                                                    e.GrpPolicyNo.Equals(currentModel.GrpPolicyNo) &&
                                                                                    e.PolicyNo.Equal(currentModel.PolicyNo.PadLeft(8, '0')) &&
                                                                                    e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();

                currentModel.MainProductNo = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.MainProductNo;

                //主附险性质代码
                currentModel.MainProductFlag = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.MainProductFlag;

                //产品编码
                string tempProductCode = string.IsNullOrWhiteSpace(tempModel.ProductCode) ? string.Empty : tempModel.ProductCode.Trim();
                currentModel.ProductCode = (tempProductCode.Equals("GIP") ||
                                            tempProductCode.Equals("GOP") || tempProductCode.Equals("GMA")) ? "GHB" : tempProductCode;
                //currentModel.ProductCode = tempModel.ProdTyp;

                //责任代码
                currentModel.LiabilityCode = Common.GetLiabilityCode(currentModel.ProductCode);

                //责任名称
                var tempCategory = PersonalLiabilityCategory.LstCategory.Where(e => e.CategoryCode.Equal(currentModel.LiabilityCode)).FirstOrDefault();
                currentModel.LiabilityName = tempCategory == null ? string.Empty : tempCategory.CategoryName;

                //责任分类代码
                currentModel.Classification = tempCategory == null ? string.Empty : tempCategory.LiabilityCategoryCode;

                //保险期限类型
                var tempProductModel = businessModel.lstTEMP_LMProductModel.Where(e => e.ProductCode == currentModel.ProductCode).FirstOrDefault();
                currentModel.TermType = tempProductModel == null ? string.Empty : tempProductModel.TermType;

                //管理机构代码
                var tempLcGrpContGroup = businessModel.lstLCGrpContGroup.Where(e => e.GrpPolicyNo.Equal(currentModel.GrpPolicyNo)).FirstOrDefault();
                currentModel.ManageCom = tempLcGrpContGroup == null ? string.Empty : tempLcGrpContGroup.ManageCom;

                //签单日期
                DateTime tempSignDate;
                string   strSignDate = string.Empty;
                if (tempLcGrpContGroup != null)
                {
                    bool convertResult = DateTime.TryParse(tempLcGrpContGroup.SignDate, out tempSignDate);
                    if (convertResult)
                    {
                        strSignDate = tempSignDate.ToString("yyyy-MM-dd");
                    }
                }
                currentModel.SignDate = strSignDate;


                //保险责任生效日期
                currentModel.EffDate = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.EffDate;

                //PolYear 所跑数据年份减去签单日期年份
                if (!string.IsNullOrEmpty(strSignDate))
                {
                    int currentYear  = int.Parse(yyyymm.Substring(0, 4));
                    int signDateYear = int.Parse(strSignDate.Substring(0, 4));
                    currentModel.PolYear = (currentYear - signDateYear).ToString();
                }
                else
                {
                    currentModel.PolYear = "0";
                }

                //保险责任终止日期
                currentModel.InvalidDate = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.InvalidDate;

                //核保结论代码
                currentModel.UWConclusion = "10";

                //保单状态代码
                currentModel.PolStatus = "03";

                //保单险种状态代码
                currentModel.Status = "03";

                //基本保额
                currentModel.BasicSumInsured = Common.ConvertToStrToStrDecimal(tempModel.SumSi);

                // 风险保额
                currentModel.RiskAmnt = ConfigInformation.NumberValue;

                //保费
                currentModel.Premium = Common.ConvertToStrToStrDecimal(tempModel.Pprem);

                //保险账户价值
                currentModel.AccountValue = "0";

                //临分标记
                currentModel.FacultativeFlag = ConfigInformation.TextValue;

                //无名单标志
                currentModel.AnonymousFlag = "0";

                //豁免险标志
                currentModel.WaiverFlag = "0";

                //所需豁免剩余保费
                currentModel.WaiverPrem = "0";

                //期末现金价值
                currentModel.FinalCashValue = ConfigInformation.NumberValue;

                //期末责任准备金
                currentModel.FinalLiabilityReserve = ConfigInformation.NumberValue;

                //被保人客户号
                currentModel.InsuredNo = tempModel.Clntnum.PadLeft(8, '0');

                //被保人姓名
                var tempInsuredGroup = businessModel.lst_LCInsuredGroup.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo.PadLeft(8, '0')) &&
                                                                              e.GrpPolicyNo.Equal(currentModel.GrpPolicyNo)).FirstOrDefault();
                currentModel.InsuredName = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredName;

                //被保人性别
                currentModel.InsuredSex = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredSex;

                //被保人证件类型
                currentModel.InsuredCertType = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredCertType;

                //被保人证件编码
                currentModel.InsuredCertNo = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredCertNo;

                //职业代码
                currentModel.OccupationType = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.OccupationType;

                //投保年龄
                currentModel.AppntAge = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.AppAge;

                //当前年龄
                currentModel.PreAge = ConfigInformation.NumberValue;

                //职业加费金额
                currentModel.ProfessionalFee = "0";

                //次标准体加费金额
                currentModel.SubStandardFee = "0";

                //EM加点
                if (tempLCProductGroup != null)
                {
                    currentModel.EMRate = Common.ConvertToStrToStrDecimal(tempLCProductGroup.EMRate);
                }
                else
                {
                    currentModel.EMRate = string.Empty;
                }

                //建工险标志
                currentModel.ProjectFlag = ConfigInformation.TextValue;

                //投保总人数
                currentModel.InsurePeoples = "1";

                //保全受理号码
                var listLCPolTransaction = businessModel.lstTEMP_LCPolTransaction.Where(A => A.PolicyNo == currentModel.PolicyNo.PadLeft(8, '0')).ToList();
                //currentModel.EndorAcceptNo = listLCPolTransaction.Count == 0 ? "" : listLCPolTransaction.First().EndorAcceptNo;

                string tempSign = "1";

                if (!string.IsNullOrWhiteSpace(currentModel.Premium))
                {
                    decimal d;
                    var     tempConvertResult = decimal.TryParse(currentModel.Premium, out d);

                    if (tempConvertResult)
                    {
                        tempSign = d > 0 ? "0" : "1";
                    }
                }

                currentModel.EndorAcceptNo = "PS" + currentModel.PolicyNo + yyyymm + tempSign + "00000";

                //保全批单号码
                //currentModel.EndorsementNo = listLCPolTransaction.Count == 0 ? "" : listLCPolTransaction.First().EndorsementNo;
                currentModel.EndorsementNo = currentModel.EndorAcceptNo;

                //保全项目类型
                currentModel.EdorType = "99";
                //保全生效日期
                currentModel.EdorValiDate = ConfigInformation.DateValue;
                //保全确认日期
                currentModel.EdorConfDate = ConfigInformation.DateValue;
                //保全发生费用
                currentModel.EdorMoney = ConfigInformation.NumberValue;

                //分出标记
                currentModel.SaparateFlag = "";

                //再保险公司名称
                currentModel.ReinsurerName = Common.DefaultCommanyName;/////////////////////////////////////

                //再保险公司代码
                Reinsurer Reinsurer = new Reinsurer();
                currentModel.ReinsurerCode = Reinsurer.GetReinsurerInforByName(currentModel.ReinsurerName).ReinsurerCode;

                //分出标记
                var templstZaiBaoProductInfo = businessModel.lstZaiBaoProductInfo.Where(e =>
                                                                                        e.ReinsurerCode.Equal(currentModel.ReinsurerCode) &&
                                                                                        e.ProductCode.Equals(currentModel.ProductCode) && e.LiabilityCode.Equals(currentModel.LiabilityCode)).FirstOrDefault();

                string tempQuotaSharePercentage = templstZaiBaoProductInfo == null ? string.Empty : (templstZaiBaoProductInfo.QuotaSharePercentage == "0" ||
                                                                                                     templstZaiBaoProductInfo.QuotaSharePercentage == "0.00") ? "0" : "1";
                currentModel.SaparateFlag = templstZaiBaoProductInfo == null ? string.Empty : tempQuotaSharePercentage;


                //再保险合同号码
                currentModel.ReInsuranceContNo = templstZaiBaoProductInfo == null ? string.Empty :
                                                 templstZaiBaoProductInfo.ReInsuranceContNo;

                // 分保方式
                currentModel.ReinsurMode = templstZaiBaoProductInfo == null ? string.Empty :
                                           templstZaiBaoProductInfo.ReinsurMode;

                //分保比例
                currentModel.QuotaSharePercentage = templstZaiBaoProductInfo == null ? string.Empty :
                                                    templstZaiBaoProductInfo.QuotaSharePercentage;

                //变更前被保人投保年龄
                currentModel.PreInsuredAge = ConfigInformation.NumberValue;

                //变更前基本保额
                currentModel.PreBasicSumInsured = ConfigInformation.NumberValue;

                //变更前风险保额
                currentModel.PreRiskAmnt = ConfigInformation.NumberValue;

                //变更前分保保额
                currentModel.PreReinsuranceAmnt = ConfigInformation.NumberValue;

                //变更前自留额
                currentModel.PreRetentionAmount = ConfigInformation.NumberValue;

                //变更前保费
                currentModel.PrePremium = ConfigInformation.NumberValue;

                //变更前账户价值
                currentModel.PreAccountValue = ConfigInformation.NumberValue;

                //变更前所需豁免剩余保费
                currentModel.PreWaiverPrem = ConfigInformation.NumberValue;

                //建筑面积变化量
                currentModel.ProjectAcreageChange = ConfigInformation.NumberValue;

                //工程造价变化量
                currentModel.ProjectCostChange = ConfigInformation.NumberValue;

                //变更后分保保额
                currentModel.ReinsuranceAmntChange = ConfigInformation.NumberValue;

                //变更后自留额
                currentModel.RetentionAmount = ConfigInformation.NumberValue;

                //变更分保费
                currentModel.ReinsurancePremiumChange = ConfigInformation.NumberValue;

                //变更分保佣金
                currentModel.ReinsuranceCommssionChange = ConfigInformation.NumberValue;

                //货币代码
                currentModel.Currency = "156";

                //分保计算日期
                currentModel.ReComputationsDate = GetLastDayOfMonth(yyyymm);

                //账单归属日期
                currentModel.AccountGetDate = GetLastDayOfMonth(yyyymm);

                lREdorModelList.Add(currentModel);
            }
        }
コード例 #2
0
ファイル: LRCont.cs プロジェクト: omHsbc517/HSBC.Excel
        private void SetGroupDataToModel(ContractInfoBusiness businessModel, string yearMonthDay,
                                         ref int serialNumber)
        {
            if (businessModel.lstRIMonthlyReportGroup.Count > 0)
            {
                foreach (var tempModel in businessModel.lstRIMonthlyReportGroup)
                {
                    LRContModel currentModel = new LRContModel();

                    currentModel.IsGroup       = true;
                    currentModel.TransactionNo = CommFuns.GetTransactionNo4(serialNumber, yearMonthDay);
                    currentModel.CompanyCode   = CommFuns.OriganizationCode;
                    currentModel.GrpPolicyNo   = tempModel.ChdrNumber;

                    //var tempLCGrpProduct = businessModel.lstTEMP_LCGrpProduct.Where(e => e.GrpPolicyNo == currentModel.GrpPolicyNo
                    //&& e.ProductCode == tempModel.Prodtyp).FirstOrDefault();

                    //若为团单则按右侧位置取数,inputFile: yyyymm\group\"RI Monthly report-GROUP.csv" -> Col F
                    //if (tempLCGrpProduct != null)
                    //{
                    //    currentModel.GrpProductNo = tempLCGrpProduct.GrpProductNo;
                    //}
                    //else
                    //{
                    //    currentModel.GrpProductNo = string.Empty;
                    //}

                    currentModel.GrpProductNo = tempModel.Prodtyp;

                    //个人保单号
                    //var tempLCCont = businessModel.lstTEMP_LCCont.Where(e => e.PolicyNo.Equals(currentModel.GrpPolicyNo)).FirstOrDefault();
                    //currentModel.PolicyNo = tempLCCont == null ? string.Empty : (tempLCCont.PolicyNo + "00").PadLeft(7, '0');

                    currentModel.PolicyNo = (tempModel.Mbrno + "00").PadLeft(7, '0');

                    // 个单保险险种号码
                    currentModel.ProductNo = tempModel.Prodtyp;

                    //保单团个性质代码
                    currentModel.GPFlag = "02";

                    // 主险保险险种号码
                    var tempLCProductGroup = businessModel.lstTEMP_LCProductGroup.Where(e =>
                                                                                        e.GrpPolicyNo.Equals(currentModel.GrpPolicyNo) &&
                                                                                        e.PolicyNo.Equal(currentModel.PolicyNo.PadLeft(8, '0')) &&
                                                                                        e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();

                    currentModel.MainProductNo = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.MainProductNo;

                    //主附险性质代码
                    currentModel.MainProductFlag = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.MainProductFlag;

                    //产品编码
                    string tempProductCode = string.IsNullOrWhiteSpace(tempModel.ProductCode) ? string.Empty : tempModel.ProductCode.Trim();
                    currentModel.ProductCode = (tempProductCode.Equals("GIP") ||
                                                tempProductCode.Equals("GOP") || tempProductCode.Equals("GMA")) ? "GHB" : tempProductCode;

                    //责任代码
                    //var templstZaiBaoProductInfo2 = businessModel.lstZaiBaoProductInfo.Where(e => e.ProductCode.Equals(tempModel.ProductCode)).FirstOrDefault();
                    currentModel.LiabilityCode = Common.GetLiabilityCode(currentModel.ProductCode);

                    //责任名称
                    var tempCategory = PersonalLiabilityCategory.LstCategory.Where(e => e.CategoryCode.Equal(currentModel.LiabilityCode)).FirstOrDefault();
                    currentModel.LiabilityName = tempCategory == null ? string.Empty : tempCategory.CategoryName;

                    //责任分类代码
                    currentModel.Classification = tempCategory == null ? string.Empty : tempCategory.LiabilityCategoryCode;

                    // 续期续保次数
                    currentModel.RenewalTimes = "0";

                    //保险期限类型
                    var tempProductModel = businessModel.lstTEMP_LMProductModel.Where(e => e.ProductCode == currentModel.ProductCode).FirstOrDefault();
                    currentModel.TermType = tempProductModel == null ? string.Empty : tempProductModel.TermType;

                    //管理机构代码
                    var tempLcGrpContGroup = businessModel.lstLCGrpContGroup.Where(e => e.GrpPolicyNo.Equal(currentModel.GrpPolicyNo)).FirstOrDefault();
                    currentModel.ManageCom = tempLcGrpContGroup == null ? ConfigInformation.TextValue : tempLcGrpContGroup.ManageCom;

                    //签单日期
                    DateTime tempSignDate;
                    string   strSignDate = string.Empty;
                    if (tempLcGrpContGroup != null)
                    {
                        bool convertResult = DateTime.TryParse(tempLcGrpContGroup.SignDate, out tempSignDate);

                        if (convertResult)
                        {
                            strSignDate = tempSignDate.ToString("yyyy/MM/dd");
                        }
                    }
                    currentModel.SignDate = strSignDate;

                    //业务类型
                    if (!string.IsNullOrEmpty(strSignDate))
                    {
                        bool checkResult = Common.CheckEventType(yearMonthDay, strSignDate);

                        if (checkResult)
                        {
                            currentModel.EventType = "01";
                        }
                        else
                        {
                            if (!currentModel.ProductCode.ToUpper().Equal("HBA"))
                            {
                                currentModel.EventType = "02";
                            }
                            else
                            {
                                currentModel.EventType = "03";
                            }
                        }
                    }
                    else
                    {
                        currentModel.EventType = string.Empty;
                    }

                    //保险责任生效日期
                    currentModel.EffDate = tempLcGrpContGroup == null ? string.Empty : tempLcGrpContGroup.EffDate;

                    //PolYear 所跑数据年份减去签单日期年份
                    if (!string.IsNullOrEmpty(strSignDate))
                    {
                        int currentYear  = int.Parse(yearMonthDay.Substring(0, 4));
                        int signDateYear = int.Parse(strSignDate.Substring(0, 4));
                        currentModel.PolYear = (currentYear - signDateYear).ToString();
                    }
                    else
                    {
                        currentModel.PolYear = "0";
                    }

                    //保险责任终止日期
                    currentModel.InvalidDate = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.InvalidDate;

                    //核保结论代码
                    currentModel.UWConclusion = "10";

                    //保单状态代码
                    currentModel.PolStatus = "03";

                    //保单险种状态代码
                    currentModel.Status = "03";

                    //基本保额
                    currentModel.BasicSumInsured = Common.ConvertToStrToStrDecimal(tempModel.SumSi);

                    // 风险保额
                    currentModel.RiskAmnt = ConfigInformation.NumberValue;

                    //保费
                    currentModel.Premium = Common.ConvertToStrToStrDecimal(tempModel.Pprem);

                    //保险账户价值
                    //var tempInsureAcc = businessModel.lstTEMP_LCInsureAcc.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo)
                    //&& e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();

                    currentModel.AccountValue = "0";

                    //临分标记
                    currentModel.FacultativeFlag = string.Empty;

                    //无名单标志
                    currentModel.AnonymousFlag = "0";

                    //豁免险标志
                    currentModel.WaiverFlag = "0";

                    //所需豁免剩余保费
                    currentModel.WaiverPrem = "0";

                    //期末现金价值
                    currentModel.FinalCashValue = ConfigInformation.NumberValue;

                    //期末责任准备金
                    currentModel.FinalLiabilityReserve = ConfigInformation.NumberValue;

                    //被保人客户号
                    currentModel.InsuredNo = tempModel.Clntnum;

                    //被保人姓名
                    var tempInsuredGroup = businessModel.lst_LCInsuredGroup.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo.PadLeft(8, '0')) &&
                                                                                  e.GrpPolicyNo.Equal(currentModel.GrpPolicyNo)).FirstOrDefault();
                    currentModel.InsuredName = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredName;

                    //被保人性别
                    currentModel.InsuredSex = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredSex;

                    //被保人证件类型
                    currentModel.InsuredCertType = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredCertType;

                    //被保人证件编码
                    currentModel.InsuredCertNo = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.InsuredCertNo;

                    //职业代码
                    currentModel.OccupationType = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.OccupationType;

                    //投保年龄
                    currentModel.AppntAge = tempInsuredGroup == null ? string.Empty : tempInsuredGroup.AppAge;

                    //当前年龄
                    currentModel.PreAge = ConfigInformation.NumberValue;

                    //职业加费金额
                    currentModel.ProfessionalFee = "0";

                    //次标准体加费金额
                    currentModel.SubStandardFee = "0";

                    //EM加点
                    if (tempLCProductGroup != null)
                    {
                        currentModel.EMRate = Common.ConvertToStrToStrDecimal(tempLCProductGroup.EMRate);
                    }
                    else
                    {
                        currentModel.EMRate = string.Empty;
                    }

                    //建工险标志
                    currentModel.ProjectFlag = ConfigInformation.TextValue;

                    //被保人数
                    currentModel.InsurePeoples = "1";

                    //再保险公司名称
                    currentModel.ReinsurerName = Common.DefaultCommanyName;

                    //再保险公司代码
                    var tempReinsurer = reinsurer.GetReinsurerInforByName(currentModel.ReinsurerName);
                    currentModel.ReinsurerCode = tempReinsurer == null ? string.Empty : tempReinsurer.ReinsurerCode;

                    //再保险合同号码
                    var templstZaiBaoProductInfo = businessModel.lstZaiBaoProductInfo.Where(e =>
                                                                                            e.ReinsurerCode.Equal(currentModel.ReinsurerCode) &&
                                                                                            e.ProductCode.Equals(currentModel.ProductCode) && e.LiabilityCode.Equals(currentModel.LiabilityCode)).FirstOrDefault();

                    currentModel.ReInsuranceContNo = templstZaiBaoProductInfo == null ? string.Empty :
                                                     templstZaiBaoProductInfo.ReInsuranceContNo;

                    // 分保方式
                    currentModel.ReinsurMode = templstZaiBaoProductInfo == null ? string.Empty :
                                               templstZaiBaoProductInfo.ReinsurMode;

                    //分出标记
                    if (templstZaiBaoProductInfo == null)
                    {
                        currentModel.SaparateFlag = string.Empty;
                    }
                    else
                    {
                        string tempQuotaSharePercentage = (templstZaiBaoProductInfo.QuotaSharePercentage == "0" ||
                                                           templstZaiBaoProductInfo.QuotaSharePercentage == "0.00") ? "0" : "1";
                        currentModel.SaparateFlag = templstZaiBaoProductInfo == null ? string.Empty : tempQuotaSharePercentage;
                    }



                    //分保保额
                    currentModel.ReinsuranceAmnt = ConfigInformation.NumberValue;

                    //自留额
                    currentModel.RetentionAmount = templstZaiBaoProductInfo == null ? string.Empty :
                                                   templstZaiBaoProductInfo.RetentionAmount;

                    //货币代码
                    currentModel.Currency = "156";

                    //分保比例
                    currentModel.QuotaSharePercentage = templstZaiBaoProductInfo == null ? string.Empty :
                                                        templstZaiBaoProductInfo.QuotaSharePercentage;

                    //分保费
                    currentModel.ReinsurancePremium = Common.ConvertToStrToStrDecimal(tempModel.RIAnnualizedPremiumTot);

                    //分保佣金
                    currentModel.ReinsuranceCommssion = Common.ConvertToStrToStrDecimal(tempModel.ReinsuranceCommssion);

                    //ReComputationsDate
                    currentModel.ReComputationsDate = Common.GetLastDayOfMonth(yearMonthDay);

                    //账单归属日期
                    currentModel.AccountGetDate = Common.GetLastDayOfMonth(yearMonthDay);

                    serialNumber++;

                    lRContModelList.Add(currentModel);
                }
            }
        }
コード例 #3
0
ファイル: LRClaim.cs プロジェクト: omHsbc517/HSBC.Excel
        /// <summary>
        /// 得到个人信息
        /// </summary>
        /// <param name="businessModel"></param>
        /// <param name="yyyymm"></param>
        private void GetLRClaimData(ContractInfoBusiness businessModel, string yearMonthDay, ref int serialNumber)
        {
            for (int i = 0; i < businessModel.lstClaimSheetModel.Count; i++)
            {
                var tempModel = businessModel.lstClaimSheetModel[i];

                LRClaimModel currentModel = new LRClaimModel();
                //交易编码
                currentModel.TransactionNo = CommFuns.GetTransactionNo6(serialNumber, yearMonthDay);

                //保险机构代码
                currentModel.CompanyCode = origanizationCode;

                //团体保单号
                currentModel.GrpPolicyNo = "";

                //团体保单险种号码
                currentModel.GrpProductNo = ""; //kong

                //个人保单号
                currentModel.PolicyNo = tempModel.PolicyNo.PadLeft(8, '0');

                //主附险性质代码
                currentModel.MainProductFlag = CommFuns.GetMainProductFlag(tempModel.Product);

                // 个单保险险种号码
                var tempLCProduct = businessModel.lstTEMP_LCProduct.Where(e =>
                                                                          e.PolicyNo.Equal(currentModel.PolicyNo) &&
                                                                          e.ProductCode.Equal(tempModel.Product) &&
                                                                          e.MainProductFlag.Equals(currentModel.MainProductFlag)).FirstOrDefault();
                currentModel.ProductNo = tempLCProduct == null ? string.Empty : tempLCProduct.ProductNo;

                //保单团个性质代码
                currentModel.GPFlag = "01";

                // 主险保险险种号码
                tempLCProduct = businessModel.lstTEMP_LCProduct.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo) && e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();
                currentModel.MainProductNo = tempLCProduct == null ? string.Empty : tempLCProduct.MainProductNo;



                //产品编码
                currentModel.ProductCode = tempModel.Product;

                //责任代码
                currentModel.LiabilityCode = tempModel.CauseOfClaim;

                //责任名称
                var tempCategory = PersonalLiabilityCategory.LstCategory.Where(e => e.CategoryCode.Equal(currentModel.LiabilityCode)).FirstOrDefault();
                currentModel.LiabilityName = tempCategory == null ? string.Empty : tempCategory.CategoryName;

                //赔案号
                var TEMPLLClaimDetail = businessModel.lstTEMP_LLClaimDetail.Where(A => A.PolicyNo == currentModel.PolicyNo && A.ProductNo == currentModel.ProductNo).FirstOrDefault();
                currentModel.ClaimNo = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.ClmCaseNo;

                //给付责任代码
                TEMPLLClaimDetail             = businessModel.lstTEMP_LLClaimDetail.Where(A => A.ClmCaseNo == currentModel.ClaimNo).FirstOrDefault();
                currentModel.GetLiabilityCode = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.GetLiabilityCode;

                //给付责任名称
                currentModel.GetLiabilityName = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.GetLiabilityName;

                //赔付责任类型代码
                currentModel.BenefitType = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.BenefitType;

                //保险期限类型
                var tempProductModel = businessModel.lstTEMP_LMProductModel.Where(e => e.ProductCode == currentModel.ProductCode).FirstOrDefault();
                currentModel.TermType = tempProductModel == null ? string.Empty : tempProductModel.TermType;

                //管理机构代码
                var tempLCCont = businessModel.lstTEMP_LCCont.Where(e => e.PolicyNo.Equals(tempModel.PolicyNo)).FirstOrDefault();
                currentModel.ManageCom = tempLCCont == null ? string.Empty : tempLCCont.ManageCom;

                //签单日期
                DateTime tempSignDate;
                string   strSignDate = string.Empty;
                if (tempLCCont != null)
                {
                    bool convertResult = DateTime.TryParse(tempLCCont.SignDate, out tempSignDate);

                    if (convertResult)
                    {
                        strSignDate = tempSignDate.ToString("yyyy/MM/dd");
                    }
                }
                currentModel.SignDate = strSignDate;

                //保险责任生效日期
                currentModel.EffDate = tempLCProduct == null ? string.Empty : tempLCProduct.EffDate;



                //保单年度
                if (!string.IsNullOrEmpty(strSignDate))
                {
                    int currentYear  = int.Parse(yearMonthDay.Substring(0, 4));
                    int signDateYear = int.Parse(strSignDate.Substring(0, 4));
                    currentModel.PolYear = (currentYear - signDateYear).ToString();
                }
                else
                {
                    currentModel.PolYear = "0";
                }

                //保险责任终止日期
                currentModel.InvalidDate = tempLCProduct == null ? string.Empty : tempLCProduct.InvalidDate;

                //核保结论代码
                currentModel.UWConclusion = tempLCProduct == null ? string.Empty : tempLCProduct.UWConclusion;

                //保单状态代码
                currentModel.PolStatus = "01";

                //保单险种状态代码
                currentModel.Status = "01";

                //基本保额
                var newTEMPLCProduct = businessModel.lstTEMP_LCProduct.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo) && e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();
                currentModel.BasicSumInsured = newTEMPLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(newTEMPLCProduct.BasicSumInsured.Trim());

                //风险保额
                currentModel.RiskAmnt = newTEMPLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(newTEMPLCProduct.RiskAmnt.Trim());

                //保费
                currentModel.Premium = newTEMPLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(newTEMPLCProduct.Premium.Trim());

                //免赔类型代码
                currentModel.DeductibleType = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.DeductibleType;

                //免赔额
                currentModel.Deductible = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.Deductible;

                //赔付比例
                currentModel.ClaimRatio = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.ClaimRatio;

                //保险账户价值
                var tempInsureAcc = businessModel.lstTEMP_LCInsureAcc.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo) &&
                                                                            e.ProductNo.Equal(currentModel.ProductNo)).ToList();
                decimal AccountValue = 0;
                for (int j = 0; j < tempInsureAcc.Count; j++)
                {
                    AccountValue += Common.ConvertToDecimalToStrDecimal(tempInsureAcc[i].AccountValue);
                }

                currentModel.AccountValue = AccountValue.ToString("0.00");

                //临分标记
                currentModel.FacultativeFlag = ConfigInformation.TextValue;

                //无名单标志
                currentModel.AnonymousFlag = "0";

                //豁免险标志
                currentModel.WaiverFlag = "0";

                //所需豁免剩余保费
                currentModel.WaiverPrem = "0";

                //期末现金价值
                currentModel.FinalCashValue = ConfigInformation.NumberValue;

                //被保人客户号
                currentModel.InsuredNo = tempModel.MembersCertificateNo.PadLeft(8, '0');;

                //被保人姓名
                var tempInsured = businessModel.lstTEMP_LCInsured.Where(e => e.PolicyNo.Equal(currentModel.PolicyNo) &&
                                                                        e.InsuredNo.Equal(currentModel.InsuredNo)).FirstOrDefault();
                currentModel.InsuredName = tempInsured == null ? string.Empty : tempInsured.InsuredName;

                //被保人性别
                currentModel.InsuredSex = tempInsured == null ? string.Empty : tempInsured.InsuredSex;

                //被保人证件类型
                currentModel.InsuredCertType = tempInsured == null ? string.Empty : tempInsured.InsuredCertType;

                //被保人证件编码
                currentModel.InsuredCertNo = tempInsured == null ? string.Empty : tempInsured.InsuredCertNo;

                //职业代码
                currentModel.OccupationType = tempInsured == null ? string.Empty : tempInsured.OccupationType;

                //投保年龄
                currentModel.AppntAge = tempInsured == null ? string.Empty : tempInsured.AppAge;

                //当前年龄
                currentModel.PreAge = ConfigInformation.TextValue;

                //期末责任准备金
                currentModel.FinalLiabilityReserve = ConfigInformation.NumberValue;

                //职业加费金额
                currentModel.ProfessionalFee = tempLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(tempLCProduct.ProfessionalFee);

                //次标准体加费金额
                currentModel.SubStandardFee = tempLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(tempLCProduct.SubStandardFee);

                //EM加点
                currentModel.EMRate = tempLCProduct == null ? string.Empty : Common.ConvertToStrToStrDecimal(tempLCProduct.EMRate);

                //建工险标志
                currentModel.ProjectFlag = ConfigInformation.TextValue;

                //投保总人数
                currentModel.InsurePeoples = "1";

                //再保险公司名称
                currentModel.ReinsurerName = tempModel.CompanyName;

                //再保险公司代码
                currentModel.ReinsurerCode = reinsurer.GetReinsurerInforByName(currentModel.ReinsurerName).ReinsurerCode;

                //再保险合同号码
                var templstZaiBaoProductInfo = businessModel.lstZaiBaoProductInfo.Where(e =>
                                                                                        e.ReinsurerCode.Equal(currentModel.ReinsurerCode) &&
                                                                                        e.ProductCode.Equals(currentModel.ProductCode) && e.LiabilityCode.Equals(currentModel.LiabilityCode)).FirstOrDefault();

                currentModel.ReInsuranceContNo = templstZaiBaoProductInfo == null ? string.Empty :
                                                 templstZaiBaoProductInfo.ReInsuranceContNo;

                //分保方式
                currentModel.ReinsurMode = templstZaiBaoProductInfo == null ? string.Empty :
                                           templstZaiBaoProductInfo.ReinsurMode;

                //分出标记
                string tempQuotaSharePercentage = templstZaiBaoProductInfo == null ? string.Empty : (templstZaiBaoProductInfo.QuotaSharePercentage == "0" ||
                                                                                                     templstZaiBaoProductInfo.QuotaSharePercentage == "0.00") ? "0" : "1";

                currentModel.SaparateFlag = templstZaiBaoProductInfo == null ? string.Empty : tempQuotaSharePercentage;

                //分保保额
                currentModel.ReinsuranceAmnt = ConfigInformation.NumberValue;

                //自留额
                currentModel.RetentionAmount = templstZaiBaoProductInfo == null ? string.Empty :
                                               Common.ConvertToStrToStrDecimal(templstZaiBaoProductInfo.RetentionAmount);

                //分保比例
                currentModel.QuotaSharePercentage = templstZaiBaoProductInfo == null ? string.Empty : templstZaiBaoProductInfo.QuotaSharePercentage;

                //赔案号 前面已经赋值 lRClaimModel.ClaimNo

                //出险日期
                var TEMP_LLClaimInfoModel = businessModel.lstTEMP_LLClaimInfo.Where(A => A.ClaimNo == currentModel.ClaimNo).FirstOrDefault();
                currentModel.AccidentDate = TEMP_LLClaimInfoModel == null ? "" : TEMP_LLClaimInfoModel.AccidentDate;

                //结案日期
                currentModel.ClmSettDate = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.ClmSettDate;

                //理赔结论代码
                currentModel.PayStatusCode = TEMPLLClaimDetail == null ? "" : TEMPLLClaimDetail.PayStatusCode;

                //实际赔款金额
                currentModel.ClaimMoney = tempModel.PaidAmount;

                //摊回赔款金额
                currentModel.BackClaimMoney = tempModel.RecoveryAmount;

                //摊回日期
                currentModel.BackDate = GetLastDayOfMonth(yearMonthDay);

                //货币代码
                currentModel.Currency = "156";

                //分保计算日期
                currentModel.ReComputationsDate = GetLastDayOfMonth(yearMonthDay);

                //账单归属日期
                currentModel.AccountGetDate = GetLastDayOfMonth(yearMonthDay);

                serialNumber++;
                lRClaimModelList.Add(currentModel);
            }
        }
コード例 #4
0
        private void Test(string yearMonthDay, int serialNumber, int rowIndex,
                          RIContractInfo temp, int contractOrder, int currentIndex,
                          string productType, string liabilityCode, string termType,
                          ContractInfoBusiness contractInfoBusiness, bool isMainContract = true)
        {
            ZaiBaoProductInfo tempModel = new ZaiBaoProductInfo();

            string currentTransactionNo = CommFuns.GetTransactionNo2(serialNumber, yearMonthDay);

            excelApp.SetCellValue(rowIndex, "A", currentTransactionNo);
            excelApp.SetCellValue(rowIndex, "B", origanizationCode);

            var tempEntity      = reinsurer.GetReinsurerInforByName(temp.Reinsurer);
            var tempCompanyCode = tempEntity == null ? string.Empty : tempEntity.ReinsurerCode;

            string currentReInsuranceContNo = string.Empty;
            string mainContractCode         = string.Empty;

            #region  废代码
            //string mainContractCode = "RICN" + tempCompanyCode + "M"
            //    + contractOrder.ToString().PadLeft(2, '0') + "000";

            //if (isMainContract)
            //{
            //    currentReInsuranceContNo = "RICN" + tempCompanyCode + temp.ContractTypeSign
            //    + contractOrder.ToString().PadLeft(2, '0') + "000";
            //}
            //else
            //{
            //    currentReInsuranceContNo = "RICN" + tempCompanyCode + temp.ContractTypeSign
            //    + contractOrder.ToString().PadLeft(2, '0') + currentIndex.ToString().PadLeft(3, '0');
            //}
            #endregion

            var referenceEntity = contractInfoBusiness.lstLRInsureContModel.Where(e => e.ReInsuranceContName.Equals(temp.TreatyName) &&
                                                                                  e.ReinsurerCode.Equals(tempCompanyCode)).FirstOrDefault();

            currentReInsuranceContNo = referenceEntity == null ? string.Empty : referenceEntity.ReInsuranceContNo;
            mainContractCode         = referenceEntity == null ? string.Empty : referenceEntity.MainReInsuranceContNo;

            excelApp.SetCellValue(rowIndex, "C", currentReInsuranceContNo);
            excelApp.SetCellValue(rowIndex, "D", temp.TreatyName);

            excelApp.SetCellValue(rowIndex, "E", string.Empty);
            excelApp.SetCellValue(rowIndex, "F", mainContractCode);

            string tempContractType = temp.ContractTypeSign.Equals("M") ? "1" : "2";

            excelApp.SetCellValue(rowIndex, "G", tempContractType);

            excelApp.SetCellValue(rowIndex, "H", temp.ProductCode);

            excelApp.SetCellValue(rowIndex, "I", temp.ReinsurerName);

            //string tempGpfFlag = string.Empty;
            string productCodeFirstChar = string.Empty;

            if (!string.IsNullOrEmpty(temp.ProductCode))
            {
                productCodeFirstChar = temp.ProductCode.Trim().Substring(0, 1);

                productCodeFirstChar = productCodeFirstChar.Equals("G") ? "02" : "01";

                excelApp.SetCellValue(rowIndex, "J", productCodeFirstChar);
            }

            excelApp.SetCellValue(rowIndex, "K", productType);
            excelApp.SetCellValue(rowIndex, "L", liabilityCode);

            excelApp.SetCellValue(rowIndex, "M", temp.BenefitReinsured);
            excelApp.SetCellValue(rowIndex, "N", tempCompanyCode);

            //excelApp.SetCellValue(rowIndex, "O", temp.Reinsurer);
            excelApp.SetCellValue(rowIndex, "O", tempEntity == null ? string.Empty : tempEntity.ReinsurerChineseName);

            excelApp.SetCellValue(rowIndex, "P", temp.RIratio);

            string tempMethodCode = this.GetRiMethodICodeByName(temp.RImethodI);

            excelApp.SetCellValue(rowIndex, "Q", tempMethodCode);

            excelApp.SetCellValue(rowIndex, "R", "04");
            excelApp.SetCellValue(rowIndex, "S", termType);

            string currentRetentionAmount = this.GetRetentionAmount(tempMethodCode, temp.Retention);
            excelApp.SetCellValue(rowIndex, "T", currentRetentionAmount);

            string currentRetentionPercentage = this.GetRetentionPercentage(tempMethodCode, temp.Retention);
            excelApp.SetCellValue(rowIndex, "U", currentRetentionPercentage);

            string QuotaSharePercentage = "0";
            if (tempMethodCode.Equals("2") || tempMethodCode.Equals("3"))
            {
                QuotaSharePercentage = (1 - decimal.Parse(currentRetentionPercentage)).ToString("0.00");
            }
            excelApp.SetCellValue(rowIndex, "V", QuotaSharePercentage);

            tempModel.TransactionNo       = currentTransactionNo;
            tempModel.CompanyCode         = origanizationCode;
            tempModel.ReInsuranceContNo   = currentReInsuranceContNo;
            tempModel.ReInsuranceContName = temp.TreatyName;

            tempModel.ReInsuranceContTitle  = ConfigInformation.TextValue;
            tempModel.MainReInsuranceContNo = mainContractCode;
            tempModel.ContOrAmendmentType   = tempContractType;
            tempModel.ProductCode           = temp.ProductCode;

            tempModel.ProductName   = temp.ReinsurerName;
            tempModel.GPFlag        = productCodeFirstChar;
            tempModel.ProductType   = productType;
            tempModel.LiabilityCode = liabilityCode;

            tempModel.LiabilityName    = temp.BenefitReinsured;
            tempModel.ReinsurerCode    = tempCompanyCode;
            tempModel.ReinsurerName    = temp.Reinsurer;
            tempModel.ReinsuranceShare = temp.RIratio;

            tempModel.ReinsurMode     = tempMethodCode;
            tempModel.ReInsuranceType = "04";
            tempModel.TermType        = termType;
            tempModel.RetentionAmount = currentRetentionAmount;

            tempModel.RetentionPercentage  = currentRetentionPercentage;
            tempModel.QuotaSharePercentage = QuotaSharePercentage;

            contractInfoBusiness.lstZaiBaoProductInfo.Add(tempModel);
        }