Beispiel #1
0
        private void GetLRAccountData(ContractInfoBusiness contractInfoBusiness, string dateyyyymm)
        {
            var listLRInsureContModel = contractInfoBusiness.lstLRInsureContModel;
            var listStatement         = contractInfoBusiness.lstInsuranceReinsuranceStatementModel;

            for (int i = 0; i < listStatement.Count; i++)
            {
                var model = listStatement[i];
                try
                {
                    LRInsureContModel lRInsureContModel = GetLRInsureContModel(listLRInsureContModel, model);
                    if (lRInsureContModel == null)
                    {
                        throw new Exception("Get " + model.ToCompanyName + " information error");
                    }
                    LRAccountModel lrAccountModel = new LRAccountModel();
                    var            reinsurer      = new Reinsurer().GetReinsurerInforByName(model.ToCompanyName);
                    var            reinsurerCode  = reinsurer == null ? string.Empty : reinsurer.ReinsurerCode;
                    lrAccountModel.TransactionNo              = CommFuns.GetTransactionNo2(i + 1, dateyyyymm);
                    lrAccountModel.CompanyCode                = origanizationCode;
                    lrAccountModel.AccountID                  = lRInsureContModel.MainReInsuranceContNo + dateyyyymm.Substring(0, 6);//账单编号
                    lrAccountModel.AccountingPeriodfrom       = Convert.ToDateTime(dateyyyymm.Substring(0, 4) + "-" + dateyyyymm.Substring(4, 2) + "-01").ToString("yyyy/MM/dd");
                    lrAccountModel.AccountingPeriodto         = Convert.ToDateTime(dateyyyymm.Substring(0, 4) + "-" + dateyyyymm.Substring(4, 2) + "-01").AddMonths(1).AddDays(-1).ToString("yyyy/MM/dd");
                    lrAccountModel.ReinsurerCode              = reinsurerCode;
                    lrAccountModel.ReinsurerName              = reinsurer == null ? string.Empty : reinsurer.ReinsurerChineseName;
                    lrAccountModel.ReInsuranceContNo          = lRInsureContModel.MainReInsuranceContNo;                                         //合同号码
                    lrAccountModel.ReInsuranceContName        = lRInsureContModel.ReInsuranceContName;                                           //合同名称
                    lrAccountModel.Currency                   = "156";
                    lrAccountModel.ReinsurancePremium         = decimal.Round(decimal.Parse(model.Debit.ReinsurancePremiums), 2).ToString();     //
                    lrAccountModel.ReinsuranceCommssionRate   = "0.5";                                                                           //分保佣金、分保费50%
                    lrAccountModel.ReinsuranceCommssion       = decimal.Round(decimal.Parse(model.Credit.ReinsuranceCommissions), 2).ToString(); //
                    lrAccountModel.ReturnReinsurancePremium   = "0";
                    lrAccountModel.ReturnReinsuranceCommssion = "0";
                    lrAccountModel.ReturnSurrenderPay         = "0";
                    lrAccountModel.ReturnClaimPay             = decimal.Round(decimal.Parse(model.Credit.ReinsuranceClaimAmounts), 2).ToString();
                    lrAccountModel.ReturnMaturity             = "0";
                    lrAccountModel.ReturnAnnuity              = "0";
                    lrAccountModel.ReturnLivBene              = "0";
                    lrAccountModel.AccountStatus              = "1";
                    lrAccountModel.PairingStatus              = "2";
                    lrAccountModel.PairingDate                = lrAccountModel.AccountingPeriodto == null ? "" : Convert.ToDateTime(lrAccountModel.AccountingPeriodto).ToString("yyyy/MM/dd");
                    lrAccountModel.CurrentRate                = "1";

                    listLRAccount.Add(lrAccountModel);
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
        }
Beispiel #2
0
        public void WriteLRInsureContSheet(ContractInfoBusiness contractInfoBusiness, string OutPutFolderPath, string LastDateOfMonthyyyyMMdd)
        {
            IExcel excelApp = new ExcelCore.ExcelCore();

            try
            {
                ProcessLogProxy.Normal("Start building LRInsureCont excel");
                LastDateOfMonth = LastDateOfMonthyyyyMMdd;
                var           excelPath     = OutPutFolderPath + @"\TEMP_" + ExcelTemplateName.LRInsureCont + ".xlsx";
                ExcelTemplate excelTemplate = new ExcelTemplate();
                excelTemplate.CreateTemplate(excelApp, excelPath, ExcelTemplateName.LRInsureCont);//创建模板
                //GetLRInsureContData(contractInfoBusiness);//得到需写入excel的数据
                excelApp.OpenExcel(excelPath, false);
                for (int i = 0; i < contractInfoBusiness.lstLRInsureContModel.Count; i++)
                {
                    var model = listLRInsureContModel[i];
                    excelApp.SetCellValue("Sheet1", i + 2, "A", CommFuns.GetTransactionNo2(i + 1, LastDateOfMonth));
                    excelApp.SetCellValue("Sheet1", i + 2, "B", model.CompanyCode);
                    excelApp.SetCellValue("Sheet1", i + 2, "C", model.ReInsuranceContNo);
                    excelApp.SetCellValue("Sheet1", i + 2, "D", model.ReInsuranceContName);
                    excelApp.SetCellValue("Sheet1", i + 2, "E", model.ReInsuranceContTitle);
                    excelApp.SetCellValue("Sheet1", i + 2, "F", model.MainReInsuranceContNo);
                    excelApp.SetCellValue("Sheet1", i + 2, "G", model.ContOrAmendmentType);
                    excelApp.SetCellValue("Sheet1", i + 2, "H", model.ContAttribute);
                    excelApp.SetCellValue("Sheet1", i + 2, "I", model.ContStatus);
                    excelApp.SetCellValue("Sheet1", i + 2, "J", model.TreatyOrFacultativeFlag);
                    excelApp.SetCellValue("Sheet1", i + 2, "K", model.ContSigndate);
                    excelApp.SetCellValue("Sheet1", i + 2, "L", model.PeriodFrom);
                    excelApp.SetCellValue("Sheet1", i + 2, "M", model.PeriodTo);
                    excelApp.SetCellValue("Sheet1", i + 2, "N", model.ContType);
                    excelApp.SetCellValue("Sheet1", i + 2, "O", model.ReinsurerCode);
                    excelApp.SetCellValue("Sheet1", i + 2, "P", model.ReinsurerName);
                    excelApp.SetCellValue("Sheet1", i + 2, "Q", model.ChargeType);
                }
                excelApp.SetSheetAutoFit("Sheet1");
                excelApp.Save();
                excelApp.Close();
                ProcessLogProxy.SuccessMessage("Build Success");
            }
            catch (Exception ex)
            {
                ProcessLogProxy.Error(ex.Message);
                ProcessLogProxy.Error("Build fail");
            }
        }
Beispiel #3
0
        public void WriteLREdorSheet(ContractInfoBusiness contractInfoBusiness, string OutPutFolderPath, string dateyyyymm)
        {
            IExcel excelApp     = new ExcelCore.ExcelCore();
            int    serialNumber = 0;

            try
            {
                ProcessLogProxy.Normal("Start building LREdor excel");
                var           excelPath     = OutPutFolderPath + @"\TEMP_" + ExcelTemplateName.LREdor + ".xlsx";
                ExcelTemplate excelTemplate = new ExcelTemplate();
                excelTemplate.CreateTemplate(excelApp, excelPath, ExcelTemplateName.LREdor);//创建模板
                GetGroupLREdorData(contractInfoBusiness, dateyyyymm);
                GetLREdorData(contractInfoBusiness, dateyyyymm);
                excelApp.OpenExcel(excelPath, false);
                for (int i = 0; i < lREdorModelList.Count; i++)
                {
                    serialNumber++;
                    var model = lREdorModelList[i];
                    excelApp.SetCellValue(i + 2, "A", CommFuns.GetTransactionNo5(i + 1, dateyyyymm));
                    excelApp.SetCellValue(i + 2, "B", model.CompanyCode);
                    excelApp.SetCellValue(i + 2, "C", model.GrpPolicyNo);
                    excelApp.SetCellValue(i + 2, "D", model.GrpProductNo);
                    excelApp.SetCellValue(i + 2, "E", model.PolicyNo);
                    excelApp.SetCellValue(i + 2, "F", model.ProductNo);
                    excelApp.SetCellValue(i + 2, "G", model.GPFlag);
                    excelApp.SetCellValue(i + 2, "H", model.MainProductNo);
                    excelApp.SetCellValue(i + 2, "I", model.MainProductFlag);
                    excelApp.SetCellValue(i + 2, "J", model.ProductCode);
                    excelApp.SetCellValue(i + 2, "K", model.LiabilityCode);
                    excelApp.SetCellValue(i + 2, "L", model.LiabilityName);
                    excelApp.SetCellValue(i + 2, "M", model.Classification);
                    excelApp.SetCellValue(i + 2, "N", model.TermType);
                    excelApp.SetCellValue(i + 2, "O", model.ManageCom);
                    excelApp.SetCellValue(i + 2, "P", model.SignDate);
                    excelApp.SetCellValue(i + 2, "Q", model.EffDate);
                    excelApp.SetCellValue(i + 2, "R", model.PolYear);
                    excelApp.SetCellValue(i + 2, "S", model.InvalidDate);
                    excelApp.SetCellValue(i + 2, "T", model.UWConclusion);
                    excelApp.SetCellValue(i + 2, "U", model.PolStatus);
                    excelApp.SetCellValue(i + 2, "V", model.Status);
                    excelApp.SetCellValue(i + 2, "W", model.BasicSumInsured);
                    excelApp.SetCellValue(i + 2, "X", model.RiskAmnt);
                    excelApp.SetCellValue(i + 2, "Y", model.Premium);
                    excelApp.SetCellValue(i + 2, "Z", model.AccountValue);
                    excelApp.SetCellValue(i + 2, "AA", model.FacultativeFlag);
                    excelApp.SetCellValue(i + 2, "AB", model.AnonymousFlag);
                    excelApp.SetCellValue(i + 2, "AC", model.WaiverFlag);
                    excelApp.SetCellValue(i + 2, "AD", model.WaiverPrem);
                    excelApp.SetCellValue(i + 2, "AE", model.FinalCashValue);
                    excelApp.SetCellValue(i + 2, "AF", model.FinalLiabilityReserve);
                    excelApp.SetCellValue(i + 2, "AG", model.InsuredNo);
                    excelApp.SetCellValue(i + 2, "AH", model.InsuredName);
                    excelApp.SetCellValue(i + 2, "AI", model.InsuredSex);
                    excelApp.SetCellValue(i + 2, "AJ", model.InsuredCertType);
                    excelApp.SetCellValue(i + 2, "AK", model.InsuredCertNo);
                    excelApp.SetCellValue(i + 2, "AL", model.OccupationType);
                    excelApp.SetCellValue(i + 2, "AM", model.AppntAge);
                    excelApp.SetCellValue(i + 2, "AN", model.PreAge);
                    excelApp.SetCellValue(i + 2, "AO", model.ProfessionalFee);
                    excelApp.SetCellValue(i + 2, "AP", model.SubStandardFee);
                    excelApp.SetCellValue(i + 2, "AQ", model.EMRate);
                    excelApp.SetCellValue(i + 2, "AR", model.ProjectFlag);
                    excelApp.SetCellValue(i + 2, "AS", model.InsurePeoples);
                    excelApp.SetCellValue(i + 2, "AT", model.EndorAcceptNo);
                    excelApp.SetCellValue(i + 2, "AU", model.EndorsementNo);
                    excelApp.SetCellValue(i + 2, "AV", model.EdorType);
                    excelApp.SetCellValue(i + 2, "AW", model.EdorValiDate);
                    excelApp.SetCellValue(i + 2, "AX", model.EdorConfDate);
                    excelApp.SetCellValue(i + 2, "AY", model.EdorMoney);
                    excelApp.SetCellValue(i + 2, "AZ", model.SaparateFlag);
                    excelApp.SetCellValue(i + 2, "BA", model.ReInsuranceContNo);
                    excelApp.SetCellValue(i + 2, "BB", model.ReinsurerCode);
                    excelApp.SetCellValue(i + 2, "BC", model.ReinsurerName);
                    excelApp.SetCellValue(i + 2, "BD", model.ReinsurMode);
                    excelApp.SetCellValue(i + 2, "BE", model.QuotaSharePercentage);
                    excelApp.SetCellValue(i + 2, "BF", model.PreInsuredAge);
                    excelApp.SetCellValue(i + 2, "BG", model.PreBasicSumInsured);
                    excelApp.SetCellValue(i + 2, "BH", model.PreRiskAmnt);
                    excelApp.SetCellValue(i + 2, "BI", model.PreReinsuranceAmnt);
                    excelApp.SetCellValue(i + 2, "BJ", model.PreRetentionAmount);
                    excelApp.SetCellValue(i + 2, "BK", model.PrePremium);
                    excelApp.SetCellValue(i + 2, "BL", model.PreAccountValue);
                    excelApp.SetCellValue(i + 2, "BM", model.PreWaiverPrem);
                    excelApp.SetCellValue(i + 2, "BN", model.ProjectAcreageChange);
                    excelApp.SetCellValue(i + 2, "BO", model.ProjectCostChange);
                    excelApp.SetCellValue(i + 2, "BP", model.ReinsuranceAmntChange);
                    excelApp.SetCellValue(i + 2, "BQ", model.RetentionAmount);
                    excelApp.SetCellValue(i + 2, "BR", model.ReinsurancePremiumChange);
                    excelApp.SetCellValue(i + 2, "BS", model.ReinsuranceCommssionChange);
                    excelApp.SetCellValue(i + 2, "BT", model.Currency);
                    excelApp.SetCellValue(i + 2, "BU", model.ReComputationsDate);
                    excelApp.SetCellValue(i + 2, "BV", model.AccountGetDate);
                }
                excelApp.SetSheetAutoFit("Sheet1");
                excelApp.Save();
                excelApp.Close();
                ProcessLogProxy.SuccessMessage("Build Success");
            }
            catch (Exception ex)
            {
                ProcessLogProxy.Error(ex.Message);
                ProcessLogProxy.Error("Build fail");
            }
        }
Beispiel #4
0
        /// <summary>
        /// 得到团体信息
        /// </summary>
        /// <param name="businessModel"></param>
        /// <param name="yyyymm"></param>
        private void GetGroupLRClaimData(ContractInfoBusiness businessModel, string yyyymm, ref int serialNumber)
        {
            for (int i = 0; i < businessModel.lstRIClaimReportGroup.Count; i++)
            {
                var          tempModel    = businessModel.lstRIClaimReportGroup[i];
                LRClaimModel currentModel = new LRClaimModel();
                //交易编码
                currentModel.TransactionNo = CommFuns.GetTransactionNo6(serialNumber, yyyymm);//已赋值
                //保险机构代码
                currentModel.CompanyCode = origanizationCode;
                //团体保单号
                currentModel.GrpPolicyNo = tempModel.Chdrnum;

                //团体保单险种号码
                currentModel.GrpProductNo = tempModel.ProdTyp;//16.4

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


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


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

                // 主险保险险种号码
                var tempLCProductGroup = businessModel.lstTEMP_LCProductGroup.Where(e =>
                                                                                    e.GrpPolicyNo.Equals(currentModel.GrpPolicyNo) &&
                                                                                    e.PolicyNo.Substring(1, 7).Equal(currentModel.PolicyNo) &&
                                                                                    e.ProductNo.Equal(currentModel.ProductNo)).FirstOrDefault();
                currentModel.MainProductNo = tempLCProductGroup == null ? string.Empty : tempLCProductGroup.MainProductNo;

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

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

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

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

                //给付责任代码
                currentModel.GetLiabilityCode = currentModel.LiabilityCode;

                //给付责任名称
                currentModel.GetLiabilityName = currentModel.LiabilityName;

                //赔案号
                var LLClaimDetailGroup = businessModel.lstLLClaimDetailGroup.Where(A => A.PolicyNo.PadLeft(7, '0') == currentModel.PolicyNo && A.GrpPolicyNo == currentModel.GrpPolicyNo).FirstOrDefault();
                currentModel.ClaimNo = LLClaimDetailGroup == null ? "" : LLClaimDetailGroup.ClmCaseNo;

                //赔付责任类型代码
                LLClaimDetailGroup       = businessModel.lstLLClaimDetailGroup.Where(A => A.ClmCaseNo == currentModel.ClaimNo).FirstOrDefault();
                currentModel.BenefitType = LLClaimDetailGroup == null ? "" : LLClaimDetailGroup.BenefitType;

                //保险期限类型
                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;

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

                //保单年度
                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";

                //基本保额
                var lCProduct_Group = businessModel.lstTEMP_LCProductGroup.Where(A => A.GrpPolicyNo == currentModel.GrpPolicyNo && A.PolicyNo.Substring(1, 7) == currentModel.PolicyNo && A.ProductNo == currentModel.GrpProductNo).FirstOrDefault();
                currentModel.BasicSumInsured = lCProduct_Group == null ? string.Empty : Common.ConvertToStrToStrDecimal(lCProduct_Group.BasicSumInsured.Trim());

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

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


                //免赔类型代码
                LLClaimDetailGroup          = businessModel.lstLLClaimDetailGroup.Where(A => A.ClmCaseNo == currentModel.ClaimNo).FirstOrDefault();
                currentModel.DeductibleType = LLClaimDetailGroup == null ? "" : LLClaimDetailGroup.DeductibleType;

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

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

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

                currentModel.AccountValue = "0";

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

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

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

                //所需豁免剩余保费
                currentModel.WaiverPrem = "0";
                //期末现金价值
                currentModel.FinalCashValue = ConfigInformation.NumberValue;

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

                //被保人姓名
                var tempInsuredGroup = businessModel.lst_LCInsuredGroup.Where(e => e.PolicyNo.Substring(1, 7).Equal(currentModel.PolicyNo) &&
                                                                              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.TextValue;

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

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

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

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

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

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

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

                //再保险公司代码
                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  前面赋值

                //出险日期
                currentModel.AccidentDate = tempModel.Incurrdate.Substring(0, 4) + "/" + tempModel.Incurrdate.Substring(4, 2) + "/" + tempModel.Incurrdate.Substring(6, 2);

                //结案日期
                LLClaimDetailGroup       = businessModel.lstLLClaimDetailGroup.Where(A => A.ClmCaseNo == currentModel.ClaimNo).FirstOrDefault();
                currentModel.ClmSettDate = LLClaimDetailGroup == null ? "" : LLClaimDetailGroup.ClmSettDate;

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

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

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

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

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

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

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

                serialNumber++;

                lRClaimModelList.Add(currentModel);
            }
        }
Beispiel #5
0
        /// <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);
            }
        }
Beispiel #6
0
        private void SetIndividualDataToModel(ContractInfoBusiness businessModel, string yearMonthDay,
                                              ref int serialNumber)
        {
            if (businessModel.lstInforceBusinessListing.Count > 0)
            {
                foreach (var tempModel in businessModel.lstInforceBusinessListing)
                {
                    LRContModel currentModel = new LRContModel();

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

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

                    //团体保单号
                    currentModel.GrpPolicyNo = string.Empty;

                    //团体保单险种号码
                    currentModel.GrpProductNo = string.Empty;

                    //个人保单号
                    string tempPolicyNo = string.IsNullOrWhiteSpace(tempModel.PolicyNo) ? string.Empty : tempModel.PolicyNo.Trim();
                    currentModel.PolicyNo = tempPolicyNo.PadLeft(8, '0');

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

                    // 个单保险险种号码
                    var tempLCProduct = businessModel.lstTEMP_LCProduct.Where(e =>
                                                                              e.PolicyNo.Equal(currentModel.PolicyNo) &&
                                                                              e.ProductCode.Equal(tempModel.ProductCode) &&
                                                                              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.ProductCode;

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

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

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

                    // 续期续保次数
                    var tempLCCont = businessModel.lstTEMP_LCCont.Where(e => e.PolicyNo.Equals(tempModel.PolicyNo)).FirstOrDefault();
                    currentModel.RenewalTimes = tempLCCont == null ? string.Empty : tempLCCont.RenewalTimes;

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

                    //管理机构代码
                    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;

                    //业务类型
                    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 = tempLCProduct == null ? string.Empty : tempLCProduct.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 = tempLCProduct == null ? string.Empty : tempLCProduct.InvalidDate;

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

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

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

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

                    // 风险保额
                    currentModel.RiskAmnt = Common.ConvertToStrToStrDecimal(tempModel.InitialSumatRisk);

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

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

                    decimal tempAccountTotal = 0m;
                    foreach (var temp in tempLstInsureAcc)
                    {
                        if (!string.IsNullOrWhiteSpace(temp.AccountValue))
                        {
                            tempAccountTotal += decimal.Parse(temp.AccountValue.Trim());
                        }
                    }

                    string strTempAccountTotal = tempAccountTotal.ToString("0.00");
                    currentModel.AccountValue = strTempAccountTotal;

                    //临分标记
                    if (tempModel.IsMrHealth)
                    {
                        currentModel.FacultativeFlag = "0";
                    }
                    else
                    {
                        currentModel.FacultativeFlag = tempModel.AutomaticorFacultative.Equals("A") ? "0" : "1";
                    }

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

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

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

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

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

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

                    //被保人姓名
                    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 = tempModel.Attainedage;

                    //职业加费金额
                    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;

                    //再保险公司代码
                    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;

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

                    //分保保额
                    if (tempModel.IsMrHealth)
                    {
                        currentModel.ReinsuranceAmnt = tempModel.SumReinsured;
                    }
                    else
                    {
                        string para1 = string.IsNullOrWhiteSpace(tempModel.SumReinsured) ? string.Empty : tempModel.SumReinsured.Trim();
                        string para2 = string.IsNullOrWhiteSpace(tempModel.SumReinsured2) ? string.Empty : tempModel.SumReinsured2.Trim();
                        currentModel.ReinsuranceAmnt = this.GetReinsuranceAmnt(para1, para2);
                    }

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

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

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

                    //分保费
                    if (tempModel.IsMrHealth)
                    {
                        currentModel.ReinsurancePremium = Common.ConvertToStrToStrDecimal(tempModel.MonthlyReinsurancePremium);
                    }
                    else
                    {
                        string para1 = string.IsNullOrWhiteSpace(tempModel.MonthlyReinsurancePremium) ?
                                       string.Empty : tempModel.MonthlyReinsurancePremium.Trim();
                        string para2 = string.IsNullOrWhiteSpace(tempModel.MonthlyReinsurancePremium2) ?
                                       string.Empty : tempModel.MonthlyReinsurancePremium2.Trim();

                        currentModel.ReinsurancePremium = this.GetReinsuranceAmnt(para1, para2);
                    }

                    //分保佣金
                    if (tempModel.IsMrHealth)
                    {
                        currentModel.ReinsuranceCommssion = Common.ConvertToStrToStrDecimal(tempModel.MonthlyReinsuranceCommission);
                    }
                    else
                    {
                        string para1 = string.IsNullOrWhiteSpace(tempModel.MonthlyReinsuranceCommission) ?
                                       string.Empty : tempModel.MonthlyReinsuranceCommission.Trim();
                        string para2 = string.IsNullOrWhiteSpace(tempModel.MonthlyReinsuranceCommission2) ?
                                       string.Empty : tempModel.MonthlyReinsuranceCommission2.Trim();

                        currentModel.ReinsuranceCommssion = this.GetReinsuranceAmnt(para1, para2);
                    }

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

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

                    serialNumber++;

                    lRContModelList.Add(currentModel);
                }
            }
        }
Beispiel #7
0
        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);
                }
            }
        }
Beispiel #8
0
        private void TestCommand()
        {
            if (!CheckExcelPath())
            {
                return;
            }
            Task.Factory.StartNew(() =>
            {
                CommFuns.KillExcelProcess();
                ContractInfoBusiness contractInfoBusiness = new ContractInfoBusiness();
                LRProduct lrProduct       = new LRProduct();
                LRInsureCont lRInsureCont = new LRInsureCont();
                LRAccount LRAccount       = new LRAccount();
                string lastDateOfMonth    = string.Empty;
                SetConfigInformationFilePath();
                try
                {
                    string[] lstInputStruct = this.InputFolderPath.Trim('\\').Split('\\');

                    if (lstInputStruct.Length > 1)
                    {
                        bool isValid;
                        string rootInputPathFolderName = lstInputStruct[lstInputStruct.Length - 1];
                        lastDateOfMonth = this.GetCurrentMonthLastDay(rootInputPathFolderName, out isValid);

                        if (!isValid)
                        {
                            ProcessLogProxy.Error("The input path is illegal. The last folder format must be yyyymm or yyyymmdd!");
                            return;
                        }
                    }
                    else
                    {
                        ProcessLogProxy.Error("The input path is illegal. The last folder format must be yyyymm or yyyymmdd!");
                        return;
                    }

                    // get data source from ContractInfo
                    contractInfoBusiness.GetInformationDataFromExcel(ReferenceFolder, InputFolderPath);

                    //得到表二的数据
                    lRInsureCont.GetLRInsureContData(contractInfoBusiness);

                    //1.16.1 input data to LRProduct sheet 再保产品信息表
                    if (LRProductChecked)
                    {
                        lrProduct.InputDataToLRProductSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    //1.16.2 LRInsureCont 生成再保合同信息表
                    if (LRInsureContChecked)
                    {
                        lRInsureCont.WriteLRInsureContSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    //1.16.3 LRAccount 再保账单信息表
                    if (LRAccountChecked)
                    {
                        LRAccount.WriteLRAccountSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    //1.16.4 LRCont 再保首续期险种明细表
                    if (LRContChecked)
                    {
                        LRCont lRCont = new LRCont(); lRCont.WriteLRContSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    //1.16.5 LREdor 再保保全变更信息表
                    if (LREdorChecked)
                    {
                        LREdor lREdor = new LREdor(); lREdor.WriteLREdorSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    //1.16.6 LRClaim 再保理赔信息表
                    if (LRClaimChecked)
                    {
                        LRClaim lRClaim = new LRClaim(); lRClaim.WriteLRClaimSheet(contractInfoBusiness, OutputFolderPath, lastDateOfMonth);
                    }

                    ProcessLogProxy.SuccessMessage("Success");
                }
                catch (Exception ex)
                {
                    ProcessLogProxy.Error(ex.Message);
                }
                finally
                {
                    CommFuns.KillExcelProcess();
                }
            });
        }
Beispiel #9
0
        private void Test3(string yearMonthDay, int serialNumber, int rowIndex,
                           HugeDisasterModel temp, int contractOrder, string productCode,
                           string productName, string productType, string termType, ContractInfoBusiness business)
        {
            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 = "RICN" + tempCompanyCode + "M"
            //    + contractOrder.ToString().PadLeft(2, '0') + "000";

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

            string 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", currentReInsuranceContNo);

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

            excelApp.SetCellValue(rowIndex, "H", productCode);

            excelApp.SetCellValue(rowIndex, "I", productName);

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

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

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

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

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

            var tempCateGory = PersonalLiabilityCategory.LstCategory.Where(e => e.CategoryName.Equals(temp.BenefitReinsured)).FirstOrDefault();

            //excelApp.SetCellValue(rowIndex, "L", liabilityCode);
            excelApp.SetCellValue(rowIndex, "L", tempCateGory == null ? string.Empty : tempCateGory.CategoryCode);

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

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

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

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

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

            excelApp.SetCellValue(rowIndex, "R", "01");
            excelApp.SetCellValue(rowIndex, "S", termType);
            excelApp.SetCellValue(rowIndex, "T", "0");
            excelApp.SetCellValue(rowIndex, "U", "0");
            excelApp.SetCellValue(rowIndex, "V", "0");

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

            tempModel.ReInsuranceContTitle  = ConfigInformation.TextValue;
            tempModel.MainReInsuranceContNo = currentReInsuranceContNo;
            tempModel.ContOrAmendmentType   = "1";
            tempModel.ProductCode           = productCode;

            tempModel.ProductName   = productName;
            tempModel.GPFlag        = productCodeFirstChar;
            tempModel.ProductType   = productType;
            tempModel.LiabilityCode = tempCateGory == null ? string.Empty : tempCateGory.CategoryCode;

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

            tempModel.ReinsurMode     = tempMethodCode;
            tempModel.ReInsuranceType = "01";
            tempModel.TermType        = termType;
            tempModel.RetentionAmount = "0";

            tempModel.RetentionPercentage  = "0";
            tempModel.QuotaSharePercentage = "0";


            business.lstZaiBaoProductInfo.Add(tempModel);
        }
Beispiel #10
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);
        }