⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blinvest.java

📁 保单相互转化数据的流向生成各个表中数据并回写数据保证准确
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
package com.sinosoft.prpall.blsvr.misc;

import java.math.BigDecimal;
import java.util.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.sinosoft.sysframework.reference.DBManager;
import com.sinosoft.utility.database.DbPool;
import com.sinosoft.utility.error.UserException;
import com.sinosoft.utility.string.ChgDate;
import com.sinosoft.utility.string.Str;
import com.sinosoft.utility.SysConfig;

import com.sinosoft.sysframework.common.datatype.DateTime;
import com.sinosoft.platform.bl.facade.BLPrpDagreementFacade;
import com.sinosoft.platform.bl.facade.BLPrpDagreeDetailFacade;
import com.sinosoft.platform.bl.facade.BLPrpDbankFacade;
import com.sinosoft.platform.dto.domain.BankInterFace_DetailDto;
import com.sinosoft.platform.dto.domain.PrpDagreementDto;
import com.sinosoft.platform.dto.domain.PrpDagreeDetailDto;
import com.sinosoft.platform.bl.action.domain.BLBankInterFace_DetailAction;
import com.sinosoft.platform.bl.action.domain.BLPrpDkindAction;
import com.sinosoft.platform.bl.action.domain.BLPrpDbankInvestAction;
import com.sinosoft.platform.bl.action.domain.BLPrpDbankRateAction;
import com.sinosoft.platform.bl.action.domain.BLPrpDfloatYieldAction;
import com.sinosoft.platform.dto.domain.PrpDbankDto;
import com.sinosoft.platform.dto.domain.PrpDbankInvestDto;
import com.sinosoft.platform.dto.domain.PrpDbankRateDto;
import com.sinosoft.platform.dto.domain.PrpDfloatYieldDto;
import com.sinosoft.platform.dto.domain.PrpDkindDto;
import com.sinosoft.platform.resource.dtofactory.domain.DBBankInterFace_Detail;
import com.sinosoft.utiall.blsvr.BLPrpDcustomer;
import com.sinosoft.utiall.blsvr.BLPrpDcustomerIdv;
import com.sinosoft.utiall.schema.PrpDcustomerIdvSchema;
import com.sinosoft.utiall.schema.PrpDcustomerSchema;
import com.sinosoft.prpall.blsvr.cb.BLPolicy;
import com.sinosoft.prpall.blsvr.cb.BLPolicyOrigin;
import com.sinosoft.prpall.blsvr.cb.BLPrpCaddress;
import com.sinosoft.prpall.blsvr.cb.BLPrpCfee;
import com.sinosoft.prpall.blsvr.cb.BLPrpCinsured;
import com.sinosoft.prpall.blsvr.cb.BLPrpCitemKind;
import com.sinosoft.prpall.blsvr.cb.BLPrpCmain;
import com.sinosoft.prpall.blsvr.cb.BLPrpCmainInvest;
import com.sinosoft.prpall.blsvr.cb.BLPrpCplan;
import com.sinosoft.prpall.blsvr.jf.BLPrpJinvest;
import com.sinosoft.prpall.blsvr.tb.BLProposal;
import com.sinosoft.prpall.blsvr.tb.BLPrpTaddress;
import com.sinosoft.prpall.blsvr.tb.BLPrpTfee;
import com.sinosoft.prpall.blsvr.tb.BLPrpTinsured;
import com.sinosoft.prpall.blsvr.tb.BLPrpTitemKind;
import com.sinosoft.prpall.blsvr.tb.BLPrpTmain;
import com.sinosoft.prpall.blsvr.tb.BLPrpTmainInvest;
import com.sinosoft.prpall.blsvr.tb.BLPrpTplan;
import com.sinosoft.prpall.dbsvr.cb.DBPrpCmain;
import com.sinosoft.prpall.dbsvr.misc.DBInvest;
import com.sinosoft.prpall.interf.Visa;
import com.sinosoft.prpall.schema.PrpCaddressSchema;
import com.sinosoft.prpall.schema.PrpCfeeSchema;
import com.sinosoft.prpall.schema.PrpCinsuredSchema;
import com.sinosoft.prpall.schema.PrpCitemKindSchema;
import com.sinosoft.prpall.schema.PrpCmainInvestSchema;
import com.sinosoft.prpall.schema.PrpCmainSchema;
import com.sinosoft.prpall.schema.PrpCplanSchema;
import com.sinosoft.prpall.schema.PrpCommissionSchema;
import com.sinosoft.prpall.schema.PrpJinvestSchema;
import com.sinosoft.prpall.schema.PrpTaddressSchema;
import com.sinosoft.prpall.schema.PrpTfeeSchema;
import com.sinosoft.prpall.schema.PrpTinsuredSchema;
import com.sinosoft.prpall.schema.PrpTitemKindSchema;
import com.sinosoft.prpall.schema.PrpTmainInvestSchema;
import com.sinosoft.prpall.schema.PrpTmainSchema;
import com.sinosoft.prpall.schema.PrpTplanSchema;
import com.sinosoft.prpall.pubfun.Bill;

/**
 * 定义投联险BLInvest类
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>@createdate 2007-03-21</p>
 * @author Luyang
 * @version 1.0
 */
public class BLInvest {

    /*
     * 本类完成的功能:
     * 将BankInterFace_Detail表中当前所有的数据转换为保单数据,并送相关数据到收付的接口表中
     * for(BankInterFace_Detail) {
     *   1、获得BankInterFace_Detail表数据
     *   2、获得客户代码
     *   3、生成客户资料数据
     *   4、生成投保单数据
     *   5、获得保单号码
     *   6、生成保单数据
     *   7、生成财务接口表数据
     *   8、修改BankInterFace_Detail表数据
     *   9、反写BankInterFace_Detail表中的数据
     *   10、11、将对象放入Attribute中
     * }
     */

    public BLInvest() {
    }

    /**
     * @desc 投联险由接口表数据生成保单数据
     * @param request
     * @param response
     * @param strRiskCode
     * @param strComCode
     * @return strReturnMessage:size=0 没有可生成的投保单、保单/size>0 空字符串,将对象放入Attribute中
     * @throws Exception
     */
    public String build(HttpServletRequest request, HttpServletResponse response, String strRiskCode, String strComCode, String userCode ,String vscode) throws Exception {
        DbPool dbPool = new DbPool();
        DBManager dbManager = null;
        BLBankInterFace_DetailAction blBankInterFace_DetailAction = new BLBankInterFace_DetailAction();
        ArrayList bankInterFace_DetailDtoList = null;
        ArrayList policyNoList = new ArrayList();
        String strSessionId = request.getSession().getId();
        String strCondition = "";
        String strReturnMessage = "";
        //add begin by hezhuan 20080523 reason:富安居手续费调整
        String strTOCOMCODE = "";     //代理点/出单归属核算单位
        String strTOCENTERCODE = "";  //代理点/出单归属部门
        String isScenePolicy = "Y";    //是否现场出单数据,默认为现场出单.
        //add end by hezhuan
        try {
            dbPool.open(SysConfig.CONST_DDCCDATASOURCE);
            dbPool.beginTransaction();
            dbManager = dbPool.getDBManager(SysConfig.CONST_DDCCDATASOURCE);
//begin add by hezhuan 20080421 reason:增加银保数据生成保单与富安居数据区别开
            if(vscode.equals("EIES")){
            strCondition = " RevolutionFlag='0'" // RevolutionFlag:转数标记 0 可转数未转/1 可转数已转
                         + " AND Invalid='0'"    // Invalid: 冲阵标记 0 有效 /1 无效
            	         + " AND IseiesFlag='1'" // IseiesFlag: 是否银保通数据 0 富安居数据/1 银保数据
                         + " AND RiskCode='" + strRiskCode + "'" // RiskCode:每个险种只能转自己险种的信息
//begin add by zhouming 20070830 更改HandlerCode=userCode                        
                         + " AND HandlerCode='" + userCode + "'" // HandlerCode:经办人代码
//end add by zhouming 20070830
                         /* 此处的[ORDER BY UploadFileSeq]非常重要,因为jsp的显示结果依赖这个顺序 */
                         + " ORDER BY UploadFileSeq,Trans_Seq"; // Trans_Seq:转数序号
            }else{
            strCondition = " RevolutionFlag='0'" // RevolutionFlag:转数标记 0 可转数未转/1 可转数已转
            		 + " AND Invalid='0'"    // Invalid: 冲阵标记 0 有效 /1 无效
                     + " AND IseiesFlag='0'" // IseiesFlag: 是否银保数据 0 富安居数据/1 银保数据
                     + " AND RiskCode='" + strRiskCode + "'" // RiskCode:每个险种只能转自己险种的信息
//begin add by zhouming 20070830 更改HandlerCode=userCode                        
                     + " AND HandlerCode='" + userCode + "'" // HandlerCode:经办人代码
//end add by zhouming 20070830
                     /* 此处的[ORDER BY UploadFileSeq]非常重要,因为jsp的显示结果依赖这个顺序 */
                     + " ORDER BY UploadFileSeq,Trans_Seq"; // Trans_Seq:转数序号       	
            }
//end add by hezhuan 20080421 reason:增加银保数据生成保单
//modify begin by hezhuan at 20071029 reason:跳过BL层的处理,直接调平台DB层的方法
            DBBankInterFace_Detail dbBankInterFace_Detail = new DBBankInterFace_Detail(dbManager);
//            bankInterFace_DetailDtoList = (ArrayList)blBankInterFace_DetailAction.findByConditions(dbManager,strCondition);
            bankInterFace_DetailDtoList = (ArrayList)dbBankInterFace_Detail.findByConditions(strCondition,1,100);
//modify end by hezhuan
            for(int i = 0; i < bankInterFace_DetailDtoList.size(); i++) {
                BankInterFace_DetailDto bankInterFace_DetailDto = null;
                BLPrpDcustomer blPrpDcustomer = null;
                BLPrpDcustomerIdv blPrpDcustomerIdv = null;

                BLProposal blProposal = null;
                BLPolicy blPolicy = null;
                //add by hezhuan 20080123 begin reason:投联生成手续费数据,手续费明细
                BLPrpCommission blPrpCommission = null;
             	BLPrpCommissionDetail blPrpCommissionDetail = new BLPrpCommissionDetail();
                DBPrpCmain dbPrpCmain = new DBPrpCmain();
                //add by hezhuan 20080123 end
                BLPolicyOrigin blPolicyOrigin = null;

                BLPrpJinvest blPrpJinvest = null;

                String[] arrCustomerCode = new String[2];
                String strRelation = ""; // Relation:投保人和被保险人
                String strPolicyNo = "";
                //modify begin by hezhuan at 20080601 reason:根据bankInterFace_Detail表ISEIESFLAG字段区分富安居和银保数据来生成Main表数据
                String strIsEiesFlag = "";
                //modify end by hezhuan at 20080601

                // 1、获得BankInterFace_Detail表数据
                bankInterFace_DetailDto = (BankInterFace_DetailDto)bankInterFace_DetailDtoList.get(i);                
                // 2、获得客户代码
                strRelation = bankInterFace_DetailDto.getRelation();
                //add begin by hezhuan 20080421 begin reason:如果是银保数据生成保单单证类型从接口表中获得
                strIsEiesFlag = bankInterFace_DetailDto.getIseiesFlag();
                if(strIsEiesFlag.equals("1"))
                {
                	vscode= bankInterFace_DetailDto.getVisacode();
                }
                //add end by hezhuan 20080421
                arrCustomerCode = getCustomerCodes(dbPool, strComCode, strRelation);
                // 3、生成客户资料数据
                blPrpDcustomer = generateObjectOfDcustomer(arrCustomerCode, bankInterFace_DetailDto);
                blPrpDcustomer.addCustomerList(dbPool);
                blPrpDcustomerIdv = generateObjectOfDcustomerIdv(arrCustomerCode, bankInterFace_DetailDto);
                blPrpDcustomerIdv.addCustomerIdvList(dbPool);
                // 4、生成投保单数据
                blProposal = generateObjectOfProposal(dbPool, arrCustomerCode, bankInterFace_DetailDto,vscode);
                blProposal.save(dbPool, "I", false);
                //begin add by zhouming 20070830 先取接口明细表里的保单号,如果是空的话再调用方法生成
                strPolicyNo = bankInterFace_DetailDto.getPolicyno();
                // 5、获得保单号码 
                if(strPolicyNo.equals(""))
                {
                	strPolicyNo = getPolicyNo(dbPool, strComCode, strSessionId, blProposal.getBLPrpTmain());
                	//add begin by hezhuan 20080523
                	isScenePolicy = "N"; //接口表中没有保单好的代表非现场出单
                    //add end by hezhuan 20080523
                }
                //end add by zhouming 20070830
                // 6、生成保单数据
                blPolicy = generateObjectOfPolicy(strPolicyNo, blProposal);
                blPolicy.save(dbPool);
                blPolicyOrigin = new BLPolicyOrigin();
                blPolicyOrigin.policyToOriginPolicy(dbPool, blPolicy);
                
                //  生成手续费表,手续费明细数据 
                //add by hezhuan 20080123 begin
                blPrpCommission = generateObjectOfCommission(bankInterFace_DetailDto, blPolicy);
                blPrpCommission.save(dbPool);
                dbPrpCmain.getInfo(dbPool,strPolicyNo);
                blPrpCommissionDetail.createCommissionCDetail(dbPool,blPrpCommission,dbPrpCmain);
                blPrpCommissionDetail.save(dbPool);
                //add by hezhuan 20080123 end
                
                //7、生成财务接口表数据前整理手续费个字段值
                //add begin by hezhuan at 20080523 reason:富安居手续费调整,prpjinvest表增加两个字段,生成保单做相应调整.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -