📄 blinvest.java
字号:
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 + -