/* *

ClassName: OtoFBL

*

Description: OtoFBL类文件

*

Copyright: Copyright (c) 2002

*

Company: sinosoft

* @Database: LIS * @CreateDate: */ package com.sinosoft.lis.otof; import com.sinosoft.lis.bl.LCPolBL; import com.sinosoft.lis.db.LCGrpPolDB; import com.sinosoft.lis.db.LDBankDB; import com.sinosoft.lis.db.LDCodeDB; import com.sinosoft.lis.db.LITranInfoDB; import com.sinosoft.lis.db.LIVertifyDB; import com.sinosoft.lis.db.LJAGetClaimDB; import com.sinosoft.lis.db.LJAGetDB; import com.sinosoft.lis.db.LJAGetDrawDB; import com.sinosoft.lis.db.LJAGetEndorseDB; import com.sinosoft.lis.db.LJAPayPersonDB; import com.sinosoft.lis.db.LJTempFeeDB; import com.sinosoft.lis.db.LMRiskAppDB; import com.sinosoft.lis.db.OFinaLogDB; import com.sinosoft.lis.i18n.I18nMessage; import com.sinosoft.lis.pubfun.FDate; import com.sinosoft.lis.pubfun.GlobalInput; import com.sinosoft.lis.pubfun.MMap; import com.sinosoft.lis.pubfun.OtoFLockBL; import com.sinosoft.lis.pubfun.PubFun; import com.sinosoft.lis.pubfun.PubFun1; import com.sinosoft.lis.pubfun.PubSubmit; import com.sinosoft.lis.schema.LCGrpPolSchema; import com.sinosoft.lis.schema.LCInsureAccTraceSchema; import com.sinosoft.lis.schema.LCPolSchema; import com.sinosoft.lis.schema.LITranErrSchema; import com.sinosoft.lis.schema.LITranInfoSchema; import com.sinosoft.lis.schema.LIVertifySchema; import com.sinosoft.lis.schema.LJABonusGetSchema; import com.sinosoft.lis.schema.LJAGetClaimSchema; import com.sinosoft.lis.schema.LJAGetDrawSchema; import com.sinosoft.lis.schema.LJAGetEndorseSchema; import com.sinosoft.lis.schema.LJAGetOtherSchema; import com.sinosoft.lis.schema.LJAGetSchema; import com.sinosoft.lis.schema.LJAGetTempFeeSchema; import com.sinosoft.lis.schema.LJAPayGrpSchema; import com.sinosoft.lis.schema.LJAPayPersonSchema; import com.sinosoft.lis.schema.LJAPaySchema; import com.sinosoft.lis.schema.LJTempFeeClassSchema; import com.sinosoft.lis.schema.LJTempFeeSchema; import com.sinosoft.lis.schema.OFInterfaceSchema; import com.sinosoft.lis.schema.OFinaLogSchema; import com.sinosoft.lis.sql.otof.OtoFBLSQL; import com.sinosoft.lis.sql.repository.LAAgentSQL; import com.sinosoft.lis.sql.repository.LCContSQL; import com.sinosoft.lis.sql.repository.LCGrpPolSQL; import com.sinosoft.lis.sql.repository.LCInsureAccTraceSQL; import com.sinosoft.lis.sql.repository.LIVertifySQL; import com.sinosoft.lis.sql.repository.LJABonusGetSQL; import com.sinosoft.lis.sql.repository.LJAGetClaimSQL; import com.sinosoft.lis.sql.repository.LJAGetEndorseSQL; import com.sinosoft.lis.sql.repository.LJAGetOtherSQL; import com.sinosoft.lis.sql.repository.LJAGetTempFeeSQL; import com.sinosoft.lis.sql.repository.LJAPayGrpSQL; import com.sinosoft.lis.sql.repository.LJAPayPersonSQL; import com.sinosoft.lis.sql.repository.LJAPaySQL; import com.sinosoft.lis.sql.repository.LJTempFeeClassSQL; import com.sinosoft.lis.sql.repository.LJTempFeeSQL; import com.sinosoft.lis.sql.repository.LMRiskAppSQL; import com.sinosoft.lis.vschema.LCInsureAccTraceSet; import com.sinosoft.lis.vschema.LITranErrSet; import com.sinosoft.lis.vschema.LITranInfoSet; import com.sinosoft.lis.vschema.LIVertifySet; import com.sinosoft.lis.vschema.LJABonusGetSet; import com.sinosoft.lis.vschema.LJAGetClaimSet; import com.sinosoft.lis.vschema.LJAGetDrawSet; import com.sinosoft.lis.vschema.LJAGetEndorseSet; import com.sinosoft.lis.vschema.LJAGetOtherSet; import com.sinosoft.lis.vschema.LJAGetSet; import com.sinosoft.lis.vschema.LJAGetTempFeeSet; import com.sinosoft.lis.vschema.LJAPayGrpSet; import com.sinosoft.lis.vschema.LJAPayPersonSet; import com.sinosoft.lis.vschema.LJAPaySet; import com.sinosoft.lis.vschema.LJTempFeeClassSet; import com.sinosoft.lis.vschema.LJTempFeeSet; import com.sinosoft.lis.vschema.OFInterfaceSet; import com.sinosoft.persistence.SQLProxy; import com.sinosoft.utility.CError; import com.sinosoft.utility.CErrors; import com.sinosoft.utility.SSRS; import com.sinosoft.utility.TransferData; import com.sinosoft.utility.VData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashSet; public class OtoFBL { private static final Logger logger = LoggerFactory.getLogger(OtoFBL.class); /** 错误处理类,每个需要错误处理的类中都放置该类 */ public CErrors mErrors = new CErrors(); /** 往后面传输数据的容器 */ private VData mInputData; /** 数据操作字符串 */ private String mOperate; private String mStartDate = ""; private String mEndDate = ""; private String mToday = ""; private int mTime = 0; private String DateFlag = "0"; private String mInputDate = ""; // 界面传入的记帐日期 private GlobalInput mGlobalInput = new GlobalInput(); private String cManageCom = ""; // 提取管理机构 private String tmoney = ""; // >金额 private String mBillID = ""; // 对应凭证科目,便于查找 == 凭证类别+凭证分类(一张凭证内部有多个分类的情况)+内部编码 private String mReversedStatus = ""; // 冲消状态 private String mOrigRowID = ""; // 被冲消的行 private String mReversedRowID = ""; // 冲消生成的行 private String mCurrencyCode = ""; // 币别 private String mVoucherType = ""; // 凭证类别 private String mManageCom = ""; // 核算单位代码 private String mSegment2 = ""; // 成本中心 private String mAccountCode = ""; // 科目代码 private String mAccountSubCode = ""; // 科目明细代码 private String mSaleChnl = ""; // 销售渠道 private String mRiskCode = ""; // 保险产品代码 private String mTransDate = ""; // 事务日期 private String mAccountingDate = ""; // 记帐日期 private int mMatchID = 0; // 借贷关系key值 private String mBatchNo = ""; // 批次号 private String mEnteredDR = ""; // 事务借计金额 private String mEnteredCR = ""; // 事务贷计金额 private String mHeadDescription = ""; // 日记帐摘要 private String mLineDescription = ""; // 行记帐摘要 private String mPolNo = ""; // 保单号 private String mContNo = ""; // 合同号 private String mInsuredName = ""; // 被保险人姓名 private String mEndYear = ""; //保险期间 private String mBranchType = ""; //销售渠道 private String mAgentName = ""; //代理人姓名 private String mBankCode = ""; //银行编码 private String mAgentCom = ""; //代理机构 private String mBussNo = ""; // 收付款单据号 private String mAttribute5 = ""; // 行为明细类别 private String mAttribute6 = ""; // 代理机构(航意险应收凭证) private int mPayIntv = 0; // 保费交费间隔 private Date dbdate; private Date dedate; double tYHSLMoney = 0.0;//印花税金额 private HashSet mLITranInfoSetHashtable=new HashSet(); // 对表的定义 private OFInterfaceSet mOFInterfaceSet = new OFInterfaceSet(); private LITranInfoSet mLITranInfoSet = new LITranInfoSet(); private LITranErrSet mLITranErrSet = new LITranErrSet(); private LIVertifySet mLIVertifySet = new LIVertifySet(); //科目约束性 private OtoFLockBL tOtoFLockBL = new OtoFLockBL(); private String tRecordNo; //进行锁表的管理机构 private OFinaLogSchema tFinaLogSchema = new OFinaLogSchema();//提取日志表 private OtoFBLSQL otoFBLSQL = SQLProxy.getInstance(OtoFBLSQL.class); private LJTempFeeSQL ljTempFeeSQL = SQLProxy.getInstance(LJTempFeeSQL.class); private LJTempFeeClassSQL ljTempFeeClassSQL = SQLProxy.getInstance(LJTempFeeClassSQL.class); private LCInsureAccTraceSQL lcInsureAccTraceSQL = SQLProxy.getInstance(LCInsureAccTraceSQL.class); private LCGrpPolSQL lcGrpPolSQL = SQLProxy.getInstance(LCGrpPolSQL.class); private LAAgentSQL laAgentSQL = SQLProxy.getInstance(LAAgentSQL.class); private LCContSQL lcContSQL = SQLProxy.getInstance(LCContSQL.class); private LJAGetEndorseSQL ljaGetEndorseSQL = SQLProxy.getInstance(LJAGetEndorseSQL.class); public OtoFBL() { } /** * 传输数据的公共方法 */ public boolean submitData(VData cInputData, String cOperate) { logger.debug("--- OtoFBL begin ---"); mInputData = (VData)cInputData.clone(); this.mOperate = cOperate; try { if(!cOperate.equals("Buss")) { CError.buildErr(this, new I18nMessage("不支持的业务凭证提取操作字符串", "LIS-12636")); return false; } initVar(); // 避免getinputdata中的数据被冲掉 // 得到外部传入的数据,将数据备份到本类中 if(!getInputData(cInputData)) { return false; } if(!checkData()) { CError.buildErr(this, new I18nMessage("校验数据失败!", "LIS-12637")); return false; } while(dbdate.compareTo(dedate) <= 0) { try { FDate chgdate = new FDate(); mToday = chgdate.getString(dbdate); Date mDate = chgdate.getDate(PubFun.getCurrentDate()); tRecordNo=cManageCom+new SimpleDateFormat("yyyyMMdd").format(dbdate) +new SimpleDateFormat("yyyyMMdd").format(mDate)+String.valueOf(mTime); logger.debug("tRecordNo---------"+tRecordNo); //调用并发控制程序 tFinaLogSchema = new OFinaLogSchema(); if(!tOtoFLockBL.lock(tRecordNo, cManageCom, String.valueOf(mTime),mToday,mGlobalInput)) { CError.buildErr(this, new I18nMessage("自动提取加锁或者解锁失败", "LIS-12748")); return false; } else { //针对自动运行的并发控制,且一天的一中类型的凭证的批次号一致 // if("1".equals(DateFlag)) // { //手工界面提取的规则与自动运行提取一致,即提取日期一致、操作日期一致、凭证类型一致的批次号则一致 OFinaLogDB tFinaLogDB = new OFinaLogDB(); tFinaLogDB.setRecordNo(tRecordNo); tFinaLogSchema =tFinaLogDB.query().get(1); mBatchNo = tFinaLogSchema.getBatchNo(); mMatchID = (int)tFinaLogSchema.getMatchID();//一个批次下mMatchID不重复 // } // else // mBatchNo = PubFun1.CreateMaxNo("OTOF","20"); } // 准备所有要打印的数据 if(!getVoucherData(mTime)) { CError.buildErr(this, new I18nMessage("凭证提取错误!", "LIS-12749")); return false; } tFinaLogSchema.setMatchID(mMatchID); prepareOutputData(); PubSubmit ps = new PubSubmit(); if(!ps.submitData(mInputData)) { mErrors.copyAllErrors(ps.mErrors); CError.buildErr(this, new I18nMessage("提交数据库失败!", "LIS-12638")); return false; } } catch(Exception ex) { logger.error("程序执行异常",ex); CError.buildErr(this, new I18nMessage( ex.toString(), null)); return false; } finally { logger.debug("unlock"); tOtoFLockBL.unLock(tRecordNo); } dbdate = PubFun.calDate(dbdate, 1, "D", null); } } catch(Exception ex) { logger.error("程序执行异常",ex); CError.buildErr(this, new I18nMessage( ex.toString(), null)); return false; } return true; } /** * 从输入数据中得到所有对象 输出:如果没有得到足够的业务数据对象,则返回false,否则返回true */ private boolean getInputData(VData cInputData) { mGlobalInput.setSchema(cInputData.get(GlobalInput.class, 0)); TransferData mTransferData = cInputData.get(TransferData.class, 0); mStartDate = (String)mTransferData.getValueByName("mStartDate"); mEndDate = (String)mTransferData.getValueByName("mEndDate"); Integer itemp = (Integer)mTransferData.getValueByName("itemp"); mTime = itemp.intValue(); DateFlag = (String)mTransferData.getValueByName("DateFlag"); mInputDate = (String)mTransferData.getValueByName("mInputDate"); // 记账日期 cManageCom = (String)mTransferData.getValueByName("cManageCom"); // 提取管理机构 logger.debug("凭证编码:" + mTime); if(mStartDate.equals("")) { CError.buildErr(this, new I18nMessage("没有起始日期!", "LIS-12639")); return false; } if(mEndDate.equals("")) { CError.buildErr(this, new I18nMessage("没有终止日期!", "LIS-12640")); return false; } if(mStartDate.length() != 10 || mEndDate.length() != 10) { CError.buildErr(this, new I18nMessage("请检查本地机器的时间格式设置,请采用YYYY-MM-DD格式!", "LIS-12641")); return false; } if(mGlobalInput == null) { CError.buildErr(this, new I18nMessage("没有得到足够的信息!", "LIS-12642")); return false; } return true; } private boolean checkData() { FDate chgdate = new FDate(); dbdate = chgdate.getDate(mStartDate); dedate = chgdate.getDate(mEndDate); mLITranErrSet.clear(); mLITranInfoSet.clear(); LIVertifyDB tLIVertifyDB = new LIVertifyDB(); LIVertifySQL liVertifySQL = SQLProxy.getInstance(LIVertifySQL.class); mLIVertifySet = liVertifySQL.findAll(); return true; } private boolean dealData() { return true; } /** * 凭证提取的分类 **/ private boolean getVoucherData(int i) { try { switch(i) { case 1: // 暂收保费 if(!getFeeDataTemp()) return false; break; case 2: // 预收保费 if(!getFeeDataAdvance()) return false; break; case 3: // 保费收入 if(!getFeeDataPrem()) return false; break; case 4: // 赔款支出 if(!PayFeeDataClaimJ()) return false; break; case 5: // 保全应付 if(!PayFeeDataEndordseJ()) return false; break; case 6: // 领取类给付 if(!PayFeeDataDrawJ()) return false; break; case 7: // 其他应付 if(!PayFeeDataJ()) return false; break; case 8: // 实付 if(!PayFeeDataD()) return false; break; // case 9: // 保全收费 // if(!getEndorsePrem()) // return false; // break; } } catch(Exception ex) { logger.error("程序执行异常",ex); CError.buildErr(this, new I18nMessage( ex.toString(), null)); return false; } return true; } /** * 暂收凭证的提取 **/ private boolean getFeeDataTemp() { // 暂收费(排除银保通的处理) SSRS tSSRS = otoFBLSQL.getDistinctTempFeeNoByConfMakeDateAndManageComLikeAndTempFeeTypeAndCodeType(mToday,cManageCom,"1","bank"); for(int i = 1; i <= tSSRS.getMaxRow(); i++) { String tTempfeeno = tSSRS.GetText(i, 1); LJTempFeeSet tLJTempFeeSet = ljTempFeeSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); LJTempFeeClassSet tLJTempFeeClassSet = ljTempFeeClassSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006", mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+j, "管理机构为2位,不予提取"); continue; } if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+j, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 mRiskCode = tLJTempFeeSchema.getRiskCode(); String tFailFlag = "0"; // 取值 LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tLJTempFeeClassSchema.setPayMoney(new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema .getPayMoney()))); if(tLJTempFeeClassSchema.getPayMoney() < 0.01) { dealError("LJTempFeeClass", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收分类金额为非正数"); continue; } mHeadDescription = "分类收暂收保费!"; tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); //判断如果是邮保通的保单则获取保单信息 if(tLJTempFeeClassSchema.getPayMode().toUpperCase().equals("A")) { if(!setPolInfo(mPolNo,mRiskCode, "LJTempFeeClass", mVoucherType+mMatchID+k)) { tFailFlag = "1"; continue; } } for(int t = 1; t <= 2; t++) { if(t == 1) { // 贷方如果有问题,则借方不再处理 if(tFailFlag.equals("1")) break; if("8637".equals(mManageCom.substring(0, 4)) && "2227".equals(tLJTempFeeClassSchema.getBankCode())) { mBillID = "0116"; mAccountCode = "其他应收款-资金中转-邮政储蓄"; } else { mBillID = "1001002"; mAccountCode = "庫存現金"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { // 借方如果有问题,则贷方不再处理 if(tFailFlag.equals("1")) break; if(tLJTempFeeClassSchema.getPayMode().toUpperCase().equals("A")) // 邮保通保费核销 { mBillID = "0111"; mAccountCode = "应收保费-首期-邮保通"; mHeadDescription = "应收保费"; mAccountSubCode = "NA"; } else { mBillID = "229300311"; mAccountCode = "暫收-系統現金"; // 暂收 mAccountSubCode = "NA"; mHeadDescription = "收暂收保费!"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } // 处理集中代收的数据 SSRS ssrs = otoFBLSQL.getDistinctTempFeeNoByConfMakeDateAndTempFeeTypeAndBankeCodeIsNotNull(mToday,cManageCom,"1","bank"); for(int i = 1; i <= ssrs.getMaxRow(); i++) { String tTempfeeno = ssrs.GetText(i, 1); LJTempFeeSet tLJTempFeeSet = ljTempFeeSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); LJTempFeeClassSet tLJTempFeeClassSet = ljTempFeeClassSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006", mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+j, "管理机构为2位,不予提取"); continue; } if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+j, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mRiskCode = tLJTempFeeSchema.getRiskCode(); String tFailFlag = "0"; // 取值 LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tLJTempFeeClassSchema.setPayMoney(new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema .getPayMoney()))); if(tLJTempFeeClassSchema.getPayMoney() < 0.01) { dealError("LJTempFeeClass", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收分类金额为非正数"); continue; } mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); if(tLJTempFeeClassSchema.getPayMode().equals("A")) { mHeadDescription = "应收保费!"; mTransDate = tLJTempFeeSchema.getEnterAccDate(); //如果是邮保通的单子,先进行判断,如果保单不存在则直接跳出 if(!setPolInfo(mPolNo,mRiskCode, "LJTempFeeClass", mVoucherType+mMatchID+k)) { tFailFlag = "1"; continue; } } else { mHeadDescription = "分类收暂收保费!"; } String tBankCom = getTBankCom(tLJTempFeeClassSchema.getBankCode(), mVoucherType+mMatchID+k); for(int t = 1; t <= 2; t++) { if(t == 1) { if(tFailFlag.equals("1")) break; // 判断是否是分公司代支公司集中扣款 if(!tLJTempFeeClassSchema.getPayMode().equals("1") && !tLJTempFeeClassSchema.getPayMode().equals("5")) { // //如果是邮保通的单子,先进行判断,如果保单不存在则直接跳出 // if(tLJTempFeeClassSchema.getPayMode().toUpperCase().equals("A")) // 邮保通保费核销 // { // if(!setPolInfo(mPolNo,mRiskCode, "LJTempFeeClass", mVoucherType+mMatchID+k)) // { // tFailFlag = "1"; // continue; // } // } // 支公司 if(!tBankCom.equals(mManageCom)) { mBillID = "0105"; mAccountCode = "其他应收款-资金中转-集中批收"; // 集中批收的处理 mAccountSubCode = "C"+ tLJTempFeeSchema.getManageCom().substring(2, 4).concat("0000"); // 分公司代码转化,如86513400分公司记为C510100 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } if(!("B".equals(tLJTempFeeClassSchema.getPayMode()))) { mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); // 分公司帐套记录 if(("8637".equals(mManageCom.substring(0, 4))) && "2227".equals(tLJTempFeeClassSchema.getBankCode())) // 针对山东分公司集中批收 { mBillID = "0115"; mAccountCode = "其他应收款-资金中转-邮政储蓄"; } else { if(tLJTempFeeClassSchema.getBankCode() == null) // 银行托收银行代码为空 { dealError("LJTempFeeClass", tLJTempFeeClassSchema.getTempFeeNo(), tLJTempFeeClassSchema.getTempFeeNo(), "008", mVoucherType+mMatchID+k, "银行集中批收的银行编码为空"); tFailFlag = "1"; break; } mBillID = "0107"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收" + tLJTempFeeClassSchema.getBankCode(); } } } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { // 贷方如果有问题,则借方不再处理 if(tFailFlag.equals("1")) break; if(!("B".equals(tLJTempFeeClassSchema.getPayMode()) && "CBC".equals(tLJTempFeeClassSchema.getOperator()))) { mBillID = "0108"; mAccountCode = "其他应付款-资金中转-集中批收"; // 暂收 mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 6).concat("00"); // 支公司的科目改变,如86513400-C513400 mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 if(!tBankCom.equals(mManageCom)) { if(tLJTempFeeClassSchema.getPayMode().toUpperCase().equals("A")) // 邮保通保费核销 { mBillID = "0113"; mAccountCode = "应收保费-首期-邮保通"; mEnteredCR = String.valueOf(tmoney); mHeadDescription = "应收保费"; mAccountSubCode = "NA"; } else { mBillID = "0109"; mAccountCode = "暂收保费"; // 暂收 mAccountSubCode = "NA"; mHeadDescription = "收暂收保费!"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } } } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } // 提取银保通单子的凭证(PAYMODE='B') ! // 2008-11-08 zy 增加对建行银保通的处理 由于工商银行的银保通银行编码同一为011,无法获取明细银行编码,所以需要对建行和工行做特殊处理 // 2008-11-26 为了保证日结单的提取,要求工行的银行编码获取到最明细的银行编码 //2009-12-21 zy 新总对总邮储的暂收凭证记账规则等同于银保通的记账规则 /*String ySql = "select distinct(tempfeeno) from LJTempFee a where Confmakedate='"+mToday+"' " + "and ManageCom like '"+cManageCom+"%' and TempFeeType='1' and exists( " + "select 1 from ljtempfeeclass b where tempfeeno = a.tempfeeno and paymode='B' " + "and ((operator='CBC' and exists(select 1 from ldcode where codetype='bank' and " + "code = b.bankcode and rpad(trim(comcode),6,'0') = substr(b.managecom,0,6))) or operator<>'CBC' ))"; logger.debug(ySql); SSRS ySSRS = tExeSQL.execSQL(ySql); for(int i = 1; i <= ySSRS.getMaxRow(); i++) { String tTempfeeno = ySSRS.GetText(i, 1); LJTempFeeDB tLJTempFeeDB = new LJTempFeeDB(); LJTempFeeClassDB tLJTempFeeClassDB = new LJTempFeeClassDB(); String tSql1 = "select * from LJTempFee where tempfeeno='" + tTempfeeno.trim() + "' order by paymoney desc"; LJTempFeeSet tLJTempFeeSet = tLJTempFeeDB.executeQuery(tSql1); String tSql2 = "select * from LJTempFeeClass where tempfeeno='" + tTempfeeno.trim() + "' order by paymoney desc"; LJTempFeeClassSet tLJTempFeeClassSet = tLJTempFeeClassDB.executeQuery(tSql2); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006", mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+j, "管理机构为2位,不予提取"); continue; } if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+j, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mSegment2 = tLJTempFeeSchema.getManageCom(); mRiskCode = tLJTempFeeSchema.getRiskCode(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); String tFailFlag = "0"; // 取值 LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tLJTempFeeClassSchema.setPayMoney(new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema .getPayMoney()))); if(tLJTempFeeClassSchema.getPayMoney() < 0.01) { dealError("LJTempFeeClass", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收分类金额为非正数"); continue; } mHeadDescription = "分类收暂收保费!"; tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); for(int t = 1; t <= 2; t++) { if(t == 1) { //建行分公司处理 if("CBC".equals(tLJTempFeeClassSchema.getOperator())) { mBillID = "0103"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收" + tLJTempFeeClassSchema.getBankCode(); } else { //工行的处理 if(tLJTempFeeClassSchema.getManageCom().substring(0, 4).concat("0000").equals( tLJTempFeeClassSchema.getManageCom())) // 如果是分公司直接借:银行存款 { mBillID = "0117"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收"+ tLJTempFeeClassSchema.getBankCode(); // mAccountSubCode = "收"+ getYBankCode( // tLJTempFeeClassSchema.getBankCode(), tLJTempFeeClassSchema.getManageCom()); } else { mBillID = "0118"; mAccountCode = "其他应收款-资金中转-工行银保通"; mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 4).concat("0000"); // 如果是支公司,则借其他应收科目,然后分公司手工做帐 } } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { // 贷方如果有问题,则借方不再处理 if(tFailFlag.equals("1")) continue; mBillID = "0104"; mAccountCode = "暂收保费"; // 暂收 mAccountSubCode = "NA"; mHeadDescription = "收暂收保费!"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } }// end of 银保通处理分公司的处理 */ // 增加对建行银保通支公司的处理 // String jySql = "select distinct(tempfeeno) from LJTempFee a where Confmakedate='"+mToday+"' " // + "and ManageCom like '"+cManageCom+"%' and TempFeeType='1' and exists( " // + "select 1 from ljtempfeeclass b where tempfeeno = a.tempfeeno and paymode='B' and operator='CBC' " // + "and exists(select 1 from ldcode where codetype='bank' and code = b.bankcode " // + "and rpad(trim(comcode),6,'0') <> substr(b.managecom,0,6)))"; // 增加对建行银保通支公司的处理 SSRS jySSRS = otoFBLSQL.getDistinctTempFeeNoByConfMakeDateAndManageComAndTempFeeTypeAndPayMode(mToday,cManageCom,"1","B"); for(int i = 1; i <= jySSRS.getMaxRow(); i++) { String tTempfeeno = jySSRS.GetText(i, 1); LJTempFeeSet tLJTempFeeSet = ljTempFeeSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); LJTempFeeClassSet tLJTempFeeClassSet = ljTempFeeClassSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006", mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+j, "管理机构为2位,不予提取"); continue; } if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+j, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 mRiskCode = tLJTempFeeSchema.getRiskCode(); String tFailFlag = "0"; // 取值 LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tLJTempFeeClassSchema.setPayMoney(new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema .getPayMoney()))); if(tLJTempFeeClassSchema.getPayMoney() < 0.01) { dealError("LJTempFeeclass", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收分类金额为非正数"); continue; } mHeadDescription = "分类收暂收保费!"; tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); String tBankCom = getTBankCom(tLJTempFeeClassSchema.getBankCode(), mVoucherType+mMatchID+k); for(int t = 1; t <= 2; t++) { if(t == 1) { if("CBC".equals(tLJTempFeeClassSchema.getOperator())) { if(!tBankCom.equals(mManageCom)) { mBillID = "0115"; mAccountCode = "其他应收款-资金中转-建行银保通"; // 银行存款 mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 4).concat("0000"); } else { // dealError("LJTempFeeClass", mBussNo, mPolNo, "005", mVoucherType+mMatchID+k, // "银保通对应的管理机构为分公司,不进行凭证提取"); // tFailFlag="1"; // break; mBillID = "0103"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收" + tLJTempFeeClassSchema.getBankCode(); } } else if("ICBC".equals(tLJTempFeeClassSchema.getOperator())) { if(!tBankCom.equals(mManageCom)) { mBillID = "0118"; mAccountCode = "其他应收款-资金中转-工行银保通"; mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 4).concat("0000"); } else { mBillID = "0117"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收"+ tLJTempFeeClassSchema.getBankCode(); } } else if("YBT".equals(tLJTempFeeClassSchema.getOperator())) { if(!tBankCom.equals(mManageCom)) { mBillID = "01151"; mAccountCode = "其他应收款-资金中转-邮储银保通"; // 银行存款 mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 4).concat("0000"); } else { mBillID = "0119"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收"+ tLJTempFeeClassSchema.getBankCode(); } } else // 分公司手工做账 { dealError("LJTempFeeClass", mBussNo, mPolNo, "005", mVoucherType+mMatchID+k, "不支持的凭证提取"); tFailFlag = "1"; break; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { // 贷方如果有问题,则借方不再处理 if(tFailFlag.equals("1")) continue; // // 排除分公司处理 // if(!tBankCom.equals(mManageCom)) // { mBillID = "0104"; mAccountCode = "暂收保费"; // 暂收 mAccountSubCode = "NA"; mHeadDescription = "收暂收保费!"; // } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } return true; } /** * 预收凭证的提取 **/ private boolean getFeeDataAdvance() { // 暂收费 SSRS tSSRS = otoFBLSQL.getDistinctTempFeeNoByConfMakeDateAndManageComLike(mToday,cManageCom,"1","4"); for(int i = 1; i <= tSSRS.getMaxRow(); i++) { String tTempfeeno = tSSRS.GetText(i, 1); LJTempFeeSet tLJTempFeeSet = ljTempFeeSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); LJTempFeeClassSet tLJTempFeeClassSet = ljTempFeeClassSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006",mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+j, "管理机构为2位,不予提取"); continue; } // if("1".equals(tLJTempFeeSchema.getTempFeeNoType())) //zy 2010-02-22 判断健康委托产品的字段应为risktype if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+j, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } if(tLJTempFeeSchema.getPayMoney() > 0) { initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); mRiskCode = tLJTempFeeSchema.getRiskCode(); // 取值 String tFailFlag = "0"; LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); if(Double.parseDouble(tmoney) < 0.01) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收分类金额为非正数"); continue; } for(int t = 1; t <= 2; t++) { if(t == 1) { // 如果贷方有问题,则借方不再处理 if(tFailFlag.equals("1")) break; if(mManageCom.substring(0, 4).equals("8637") && "2227".equals(tLJTempFeeClassSchema.getBankCode())) { mBillID = "0215"; mAccountCode = "其他应收款-资金中转-邮政储蓄"; } else { if(tLJTempFeeClassSchema.getPayMode().equals("1")) { mBillID = "0200"; mAccountCode = "库存现金-人民币-业务"; } else if(tLJTempFeeClassSchema.getPayMode().equals("5")) { mBillID = "0201"; mAccountCode = "应付业务支出-内部转帐"; // 应付业务支出?? } else if(tLJTempFeeClassSchema.getPayMode().equals("3")) { mBillID = "0202"; mAccountCode = "银行存款-活期-人民币"; // 银行支票 mAccountSubCode = "支" + mManageCom; } else { if(tLJTempFeeClassSchema.getBankCode() == null) // 银行托收银行代码为空 { dealError("LJTempFeeClass", tLJTempFeeClassSchema.getTempFeeNo(), tLJTempFeeClassSchema.getTempFeeNo(), "008", mVoucherType+mMatchID+k, "银行托收/现金支票的银行编码为空"); tFailFlag = "1"; break; } mBillID = "0203"; mAccountCode = "银行存款-活期-人民币"; mAccountSubCode = "收" + tLJTempFeeClassSchema.getBankCode(); } } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = "分类收预收保费!"; } else { // 如果贷方有问题,则借方不再处理 if(tFailFlag.equals("1")) continue; mBillID = "0204"; mAccountCode = "预收保费"; mAccountSubCode = "NA"; mHeadDescription = "收预收保费!"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } } // 处理集中代收的数据 SSRS ssrs = otoFBLSQL.getDistinctTempFeeNoByConfMakeDateAndLDBankAndBankeCodeIsNotNull(mToday,cManageCom,"1","4"); for(int i = 1; i <= ssrs.getMaxRow(); i++) { String tTempfeeno = ssrs.GetText(i, 1); LJTempFeeSet tLJTempFeeSet = ljTempFeeSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); LJTempFeeClassSet tLJTempFeeClassSet = ljTempFeeClassSQL.findAllByTempFeeNoOrderByPayMoneyDesc(tTempfeeno.trim()); double tLJTempFeeSum = 0; double tLJTempFeeClassSum = 0; for(int k = 1; k <= tLJTempFeeSet.size(); k++) { tLJTempFeeSum = tLJTempFeeSum + tLJTempFeeSet.get(k).getPayMoney(); } for(int k = 1; k <= tLJTempFeeClassSet.size(); k++) { tLJTempFeeClassSum = tLJTempFeeClassSum + tLJTempFeeClassSet.get(k).getPayMoney(); } if(Math.abs((tLJTempFeeSum - tLJTempFeeClassSum)) >= 0.001) { dealError("LJTempFee", tTempfeeno, tTempfeeno, "006",mVoucherType+mMatchID+i, "暂收费与暂收费分类金额不一致"); continue; } for(int j = 1; j <= tLJTempFeeSet.size(); j++) { LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema(); tLJTempFeeSchema = tLJTempFeeSet.get(j); if(tLJTempFeeSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+j, "暂收金额为非正数"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeSchema.getOtherNo(); mContNo = tLJTempFeeSchema.getOtherNo(); mBussNo = tLJTempFeeSchema.getTempFeeNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJTempFeeSchema.getConfMakeDate(); mRiskCode = tLJTempFeeSchema.getRiskCode(); String tFailFlag = "0"; // 取值 LJTempFeeClassSet ttLJTempFeeClassSet = this.getAccTemp(1, tLJTempFeeSchema.getPayMoney(), tLJTempFeeClassSet); for(int k = 1; k <= ttLJTempFeeClassSet.size(); k++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); tLJTempFeeClassSchema.setSchema(ttLJTempFeeClassSet.get(k)); tLJTempFeeClassSchema.setPayMoney(new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema .getPayMoney()))); if(tLJTempFeeClassSchema.getPayMoney() <= 0) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "004", mVoucherType+mMatchID+k, "暂收费金额为非正数"); continue; } if(tLJTempFeeSchema.getManageCom().trim().length() == 2) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "007", mVoucherType+mMatchID+k, "管理机构为2位,不予提取"); continue; } // if("1".equals(tLJTempFeeSchema.getTempFeeNoType())) //zy 2010-02-22 判断健康委托产品的字段应为risktype if("1".equals(tLJTempFeeSchema.getRiskType())) { dealError("LJTempFee", tLJTempFeeSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "013", mVoucherType+mMatchID+k, "该保单为健康委托产品,不在此进行凭证的提取"); continue; } mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 mHeadDescription = "分类收预收保费!"; tmoney = new DecimalFormat("0.00").format(new Double(tLJTempFeeClassSchema.getPayMoney())); String tBankCom = getBankCom(tLJTempFeeClassSchema.getBankCode(), "002"); for(int t = 1; t <= 2; t++) { if(t == 1) { // 判断是否是分公司代支公司集中扣款 if(!tLJTempFeeClassSchema.getPayMode().equals("1") && !tLJTempFeeClassSchema.getPayMode().equals("5")) { if(!tBankCom.equals(mManageCom)) { mBillID = "0209"; mAccountCode = "其他应收款-资金中转-集中批收"; // 集中批收的处理 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000");//支公司的科目改变,如86513400-C513400 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); // 分公司帐套记录 if(mManageCom.substring(0, 4).equals("8637") && "2227".equals(tLJTempFeeClassSchema.getBankCode())) // 针对山东分公司集中批收 { mBillID = "0214"; mAccountCode = "其他应收款-资金中转-邮政储蓄"; // 银行支票 } else { if(tLJTempFeeClassSchema.getPayMode().equals("3")) { mBillID = "0210"; mAccountCode = "银行存款-活期-人民币"; // 银行支票 mAccountSubCode = "支" + mManageCom; } else { if(tLJTempFeeClassSchema.getBankCode() == null) // 银行托收银行代码为空 { dealError("LJTempFeeClass", tLJTempFeeClassSchema.getTempFeeNo(), tLJTempFeeSchema.getOtherNo(), "009", mVoucherType+mMatchID+k, "银行托收/现金支票的银行编码为空"); tFailFlag = "1"; break; } mBillID = "0211"; mAccountCode = "银行存款-活期-人民币"; // 银行存款 mAccountSubCode = "收" + tLJTempFeeClassSchema.getBankCode(); } } } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { // 贷方如果有问题,则借方不再处理 if(tFailFlag.equals("1")) continue; mBillID = "0212"; mAccountCode = "其他应付款-资金中转-集中批收"; // 预收 mAccountSubCode = "C" + tLJTempFeeSchema.getManageCom().substring(2, 6).concat("00"); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); mSegment2 = tLJTempFeeSchema.getManageCom(); mManageCom = tLJTempFeeSchema.getManageCom().substring(0, 6); // 所有支票都转入商业银行账户 if(!tBankCom.equals(mManageCom)) { mBillID = "0213"; mAccountCode = "预收保费"; // 预收 mAccountSubCode = "NA"; mHeadDescription = "收预收保费!"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } } if(isExitInTab(mBussNo, null, mBillID)) { tFailFlag = "1"; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } LJAPayPersonSQL ljaPayPersonSQL = SQLProxy.getInstance(LJAPayPersonSQL.class); LJAPayPersonSet tLJAPayPersonSet = ljaPayPersonSQL.findAllByConfDateAndManageComLikeAndPayTypeAndPayCount(mToday,cManageCom,"YET","1"); for(int i = 1; i <= tLJAPayPersonSet.size(); i++) { LJAPayPersonSchema tLJAPayPersonSchema = new LJAPayPersonSchema(); tLJAPayPersonSchema.setSchema(tLJAPayPersonSet.get(i)); if(tLJAPayPersonSchema.getSumActuPayMoney() == 0) { dealError("LJAPayPerson", tLJAPayPersonSchema.getPayNo(), tLJAPayPersonSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "实收个人表金额为非正数"); continue; } initVar(); mMatchID++; mPolNo = tLJAPayPersonSchema.getPolNo(); mContNo = tLJAPayPersonSchema.getContNo(); mRiskCode = tLJAPayPersonSchema.getRiskCode(); mBussNo = tLJAPayPersonSchema.getPayNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAPayPersonSchema.getConfDate(); mSegment2 = tLJAPayPersonSchema.getManageCom(); mManageCom = tLJAPayPersonSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAPayPersonSchema.getSumActuPayMoney())); if(!this.setPolInfo(mPolNo,mRiskCode, "LJAPayPerson", "002")) { mHeadDescription = "暂收余额转预收" + mInsuredName + "保费"; continue; } else mHeadDescription = "暂收余额转预收"; for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0205"; mAccountCode = "暂收保费"; // 借暂收 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { mBillID = "0206"; mAccountCode = "预收保费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } LJAPayGrpSQL ljaPayGrpSQL = SQLProxy.getInstance(LJAPayGrpSQL.class); LJAPayGrpSet tLJAPayGrpSet = ljaPayGrpSQL.findAllByConfDateAndManageComLikeAndPayTypeAndPayCount(mToday,cManageCom,"YET","1"); for(int i = 1; i <= tLJAPayGrpSet.size(); i++) { LJAPayGrpSchema tLJAPayGrpSchema = new LJAPayGrpSchema(); tLJAPayGrpSchema.setSchema(tLJAPayGrpSet.get(i)); if(tLJAPayGrpSchema.getSumActuPayMoney() == 0) { dealError("LJAPayGrp", tLJAPayGrpSchema.getPayNo(), tLJAPayGrpSchema.getGrpPolNo(), "004", mVoucherType+mMatchID+i, "实收个人表金额为非正数"); continue; } initVar(); mMatchID++; mBussNo = tLJAPayGrpSchema.getPayNo(); mContNo = tLJAPayGrpSchema.getGrpContNo(); mPolNo = tLJAPayGrpSchema.getGrpPolNo(); mRiskCode = tLJAPayGrpSchema.getRiskCode(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAPayGrpSchema.getConfDate(); mRiskCode = tLJAPayGrpSchema.getRiskCode(); mSegment2 = tLJAPayGrpSchema.getManageCom(); mManageCom = tLJAPayGrpSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAPayGrpSchema.getSumActuPayMoney())); if(!this.setPolInfo(mPolNo,mRiskCode, "LJAPayGrp", mVoucherType+mMatchID+i)) { mHeadDescription = "暂收余额转预收" + mInsuredName + "保费"; continue; } else mHeadDescription = "暂收余额转预收,收据号:" + tLJAPayGrpSchema.getPayNo(); for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0207"; mAccountCode = "暂收保费"; // 借暂收 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { mBillID = "0208"; mAccountCode = "预收保费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(mBussNo, null, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } /** * 保费收入凭证的提取 */ private boolean getFeeDataPrem() { // 个人实收 LJAPayPersonSet tLJAPayPersonSet = otoFBLSQL.findAllLJAPayPersonByConfDateAndManageComLikeAndOtherNoTypeAnIncomeType(mToday,cManageCom,"10","10"); for(int i = 1; i <= tLJAPayPersonSet.size(); i++) { LJAPayPersonSchema tLJAPayPersonSchema = new LJAPayPersonSchema(); tLJAPayPersonSchema = tLJAPayPersonSet.get(i); if(!tLJAPayPersonSchema.getPayType().equals("ZC")) { dealError("LJAPayPerson", tLJAPayPersonSchema.getPayNo(), tLJAPayPersonSchema.getPolNo(), "005", mVoucherType+mMatchID+i,"交费类型为" + tLJAPayPersonSchema.getPayType() + ",不属于凭证提取范围"); continue; } if(tLJAPayPersonSchema.getSumActuPayMoney() == 0) { dealError("LJAPayPerson", tLJAPayPersonSchema.getPayNo(), tLJAPayPersonSchema.getPolNo(), "004", mVoucherType+mMatchID+i,"实收个人表交费金额为零"); continue; } // 为变量附值 initVar(); mMatchID++; mPolNo = tLJAPayPersonSchema.getPolNo(); mContNo = tLJAPayPersonSchema.getContNo(); mBussNo = tLJAPayPersonSchema.getPayNo(); mTransDate = tLJAPayPersonSchema.getConfDate(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mSegment2 = tLJAPayPersonSchema.getManageCom(); mManageCom = tLJAPayPersonSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAPayPersonSchema.getSumActuPayMoney())); LCPolSchema tLCPolBL = (LCPolSchema)getPol(mPolNo, mVoucherType+mMatchID+i); if(tLCPolBL == null) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { //zy 2009-12-18 调整邮保通记账规则 if("ybt".equals(tLJAPayPersonSchema.getOperator().toLowerCase())||"hnyz".equals(tLJAPayPersonSchema.getOperator().toLowerCase())) // 邮保通网点出单 { String mYType=getYBTPayMode(tLJAPayPersonSchema.getPayNo()); if("A".equals(mYType)) { mBillID = "0325"; mAccountCode = "应收保费-首期-邮保通"; } else if("B".equals(mYType)) { if(tLJAPayPersonSchema.getPayCount() == 1 && (tLCPolBL.getRenewCount()<=0)) { mBillID = "0310"; mAccountCode = "暂收保费"; // 新保暂转 } else { mBillID = "0311"; mAccountCode = "预收保费"; // 续期暂转 } } else { dealError("LJAPayPerson", tLJAPayPersonSchema.getPayNo(), tLJAPayPersonSchema.getPolNo(), "005", mVoucherType+mMatchID+i,"不支持的邮保通凭证提取"); break; } } else if("04".equals(mSaleChnl)) { mBillID = "0312"; mAccountCode = "其他应收款-电子商务保单"; // 电子商务保单应收款 } else { if(tLJAPayPersonSchema.getPayCount() == 1 && (tLCPolBL.getRenewCount()<=0)) { mBillID = "0310"; mAccountCode = "暂收保费"; // 新保暂转 } else { mBillID = "0311"; mAccountCode = "预收保费"; // 续期暂转 } } mEnteredDR = String.valueOf(tmoney); // 借 mEnteredCR = ""; // 贷 mHeadDescription = "转" + mInsuredName + "保费"; } else { if(tLJAPayPersonSchema.getPayIntv() == 0 || tLJAPayPersonSchema.getPayIntv() == -1) { mBillID = "0313"; mAccountCode = "保费收入-趸缴"; // 趸缴 } else { if(tLJAPayPersonSchema.getPayCount() == 1 ) { mBillID = "0314"; mAccountCode = "保费收入-首年首期"; // 首年首期 } else { String tPolDate = PubFun.calDate(tLCPolBL.getCValiDate(), 1, "Y", tLCPolBL.getCValiDate()); if(PubFun.calInterval(tPolDate, tLJAPayPersonSchema.getCurPayToDate(), "D") > 0) { mBillID = "0315"; mAccountCode = "保费收入-续年续期"; // 续年续期 } else { mBillID = "0316"; mAccountCode = "保费收入-首年续期"; // 首年续期 } } } mEnteredDR = ""; // 借 mEnteredCR = String.valueOf(tmoney); // 贷 mHeadDescription = "收" + mInsuredName + "保费"; } if(isExitInTab(mBussNo, mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } //团单的保费收入提取 LJAPayGrpSet tLJAPayGrpSet = otoFBLSQL.findAllLJAPayGrpByConfDateAndManageComLikeAndOtherNoTypeAnIncomeType(mToday,cManageCom,"10","10"); for(int i = 1; i <= tLJAPayGrpSet.size(); i++) { LJAPayGrpSchema tLJAPayGrpSchema = new LJAPayGrpSchema(); tLJAPayGrpSchema = tLJAPayGrpSet.get(i); if(!tLJAPayGrpSchema.getPayType().equals("ZC")) { dealError("LJAPayGrp", tLJAPayGrpSchema.getPayNo(), tLJAPayGrpSchema.getGrpPolNo(), "005", mVoucherType+mMatchID+i,"交费类型为" + tLJAPayGrpSchema.getPayType() + ",不属于提取范围"); continue; } if(tLJAPayGrpSchema.getSumActuPayMoney() == 0) { dealError("LJAPayGrp", tLJAPayGrpSchema.getPayNo(), tLJAPayGrpSchema.getGrpPolNo(), "004", mVoucherType+mMatchID+i,"实收集体表交费金额为零"); continue; } initVar(); mMatchID++; mPolNo = tLJAPayGrpSchema.getGrpPolNo(); mContNo = tLJAPayGrpSchema.getGrpContNo(); mBussNo = tLJAPayGrpSchema.getPayNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAPayGrpSchema.getConfDate(); mSegment2 = tLJAPayGrpSchema.getManageCom(); mManageCom = tLJAPayGrpSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAPayGrpSchema.getSumActuPayMoney())); LCGrpPolSchema tLCGrpPolBL = (LCGrpPolSchema)getGrpPol(mPolNo, mVoucherType+mMatchID+i); if(tLCGrpPolBL == null) continue; double douAirPolPrem = getPremAirPol(mContNo,tLJAPayGrpSchema.getRiskCode().trim()); if(douAirPolPrem > 0) mVoucherType = "1"; //如果这笔记录有航意险信息,记在暂收凭证中-视作借贷相等,专款专用 for(int j = 1; j <= 2; j++) { if(j == 1) { if(tLJAPayGrpSchema.getPayCount() == 1) { mBillID = "0317"; mAccountCode = "暂收保费"; // 新保暂转 } else { mBillID = "0318"; mAccountCode = "预收保费"; // 续期暂转 } if(mSaleChnl.equals("04")) { mBillID = "0319"; mAccountCode = "其他应收款-电子商务保单"; // 电子商务保单应收款 } mEnteredDR = String.valueOf(tmoney); // 借 mEnteredCR = ""; // 贷 mHeadDescription = "暂收保费"; } else { if(douAirPolPrem > 0) //判断是否是航意险保单交费 { mBillID = "0324"; mAccountCode = "应收保费-首期-中介代理"; mEnteredDR = ""; //借 mEnteredCR = String.valueOf(douAirPolPrem); //贷航意险保费这部金额 mHeadDescription = "应收保费"; if (isExitInTab(mBussNo,mPolNo,mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema) entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); //如果扣除航意险这部分保费还有多交的部分(或者交费保单比应收保费多,则记入后面的保费收入科目) double tRemainMoney = Double.parseDouble(tmoney) - douAirPolPrem; tmoney = (tRemainMoney >= 0) ? String.valueOf(tRemainMoney) : "0"; } if(tLJAPayGrpSchema.getPayIntv() == 0 || tLJAPayGrpSchema.getPayIntv() == -1) { mBillID = "0320"; mAccountCode = "保费收入-趸缴"; // 趸交 } else { if(tLJAPayGrpSchema.getPayCount() == 1) { mBillID = "0321"; mAccountCode = "保费收入-首年首期"; // 首年首期 } else { String tPolDate = PubFun.calDate(tLCGrpPolBL.getCValiDate(), 1, "Y", tLCGrpPolBL .getCValiDate()); if(PubFun.calInterval(tPolDate, tLJAPayGrpSchema.getCurPayToDate(), "D") > 0) { mBillID = "0322"; mAccountCode = "保费收入-续年续期"; // 续年续期 } else { mBillID = "0323"; mAccountCode = "保费收入-首年续期"; // 首年续期 } } } mEnteredDR = ""; // 借 mEnteredCR = String.valueOf(tmoney); // 贷 mHeadDescription = "收" + mInsuredName + "保费"; } if(isExitInTab(mBussNo, mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null && Double.parseDouble(tmoney) > 0.0) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } /** * 获取该团体航意险保单的保费金额/交费金额 * @param cGrpPolNo * @return */ private double getPremAirPol(String cGrpPolNo,String cRiskCode) { //由于航意险的升级暂时未决定(sequenceno)不存在了,所以暂时不做调整 //航意险升级在lcpol中contno为lcairpol表的polno double prem=0.00; if("141801".equals(cRiskCode) || "141807".equals(cRiskCode)|| "141810".equals(cRiskCode)|| "141813".equals(cRiskCode) || "211603".equals(cRiskCode) || "211609".equals(cRiskCode)) { //由于满期终止可能导致保单失效,且终止时间正好卡在财务接口提取时间导致获取保单信息失败,所以屏蔽appflag='1'条件 SSRS ssrs = otoFBLSQL.getSumMoneyByGrpContNoAndVoucherTypeAndManageComLike(cGrpPolNo,"3",mManageCom); if(ssrs == null || ssrs.getMaxRow() <= 0) prem=0.00; else prem= Double.parseDouble(ssrs.GetText(1,1)); } return prem; } /** * 理赔应付凭证 待完善的部分:跨机构理赔的财务凭证是否由系统提取 */ private boolean PayFeeDataClaimJ() { LJAGetClaimSQL ljaGetClaimSQL = SQLProxy.getInstance(LJAGetClaimSQL.class); ArrayList feeFinaType = new ArrayList(Arrays.asList("HDLX", "HKLX","BF","HK", "HD","TM","CM","HLRB","YFRB","HLTF","DJTF","XJTF","LJTF")); LJAGetClaimSet tLJAGetClaimSet = ljaGetClaimSQL.findAllByMakeDateAndManageComLikeAndFeeFinaTypeNot(mToday,cManageCom,feeFinaType); for(int i = 1; i <= tLJAGetClaimSet.size(); i++) { LJAGetClaimSchema tLJAGetClaimSchema = new LJAGetClaimSchema(); tLJAGetClaimSchema = tLJAGetClaimSet.get(i); if(tLJAGetClaimSchema.getPay() == 0) { dealError("LJAGetClaim", tLJAGetClaimSchema.getActuGetNo(), tLJAGetClaimSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "理赔金额为零"); continue; } initVar(); mMatchID++; mPolNo = tLJAGetClaimSchema.getPolNo(); mContNo = tLJAGetClaimSchema.getContNo(); mBussNo = tLJAGetClaimSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetClaimSchema.getMakeDate(); mSegment2 = tLJAGetClaimSchema.getManageCom(); mManageCom = tLJAGetClaimSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetClaimSchema.getPay())); LCPolSchema tLCPolBL = new LCPolSchema(); tLCPolBL = getPol(mPolNo, mVoucherType+mMatchID+i); if(tLCPolBL == null) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { if("TF".equals(tLJAGetClaimSchema.getFeeFinaType())) { if("0".equals(String.valueOf(tLCPolBL.getPayIntv())) || "-1".equals(String.valueOf(tLCPolBL.getPayIntv()))) { mBillID = "04090"; mAccountCode = "保费收入-趸缴"; //保全退费 } else { mBillID = "04091"; mAccountCode = "保费收入-首年首期"; } // this.tmoney = "-" + this.tmoney; tmoney = new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay())); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else { if("SWPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0400"; mAccountCode = "死亡给付"; // 死亡给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("YLPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0401"; mAccountCode = "医疗给付"; // 医疗给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("SCPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0402"; mAccountCode = "伤残给付"; // 伤残给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("DQPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0403"; mAccountCode = "赔款支出"; mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } //取消预付赔付款科目 // else if("YFPK".equals(tLJAGetClaimSchema.getFeeFinaType()) ) // { // //二次赔付时产生的与原预付记录相反的数据 // if("A".equals(tLJAGetClaimSchema.getSubFeeOperationType()) ) // { // break; // } // //预付记录 // if("B".equals(tLJAGetClaimSchema.getSubFeeOperationType())) // { // mBillID = "0404"; // mAccountCode = "预付赔付款"; // } // } else if("TB".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0405"; mAccountCode = "退保金"; // 理赔退保金 mHeadDescription = tLCPolBL.getInsuredName().trim()+mAccountCode; } else if("YCLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0408"; mAccountCode = "利息支出-延滞赔款利息"; mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if ("YF".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0413"; mAccountCode = "年金给付"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if("YFLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0417"; mAccountCode = "利息支出-延滞领取利息"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if ("EF".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0414"; mAccountCode = "应付业务支出-满期"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if("YE".equals(tLJAGetClaimSchema.getFeeFinaType()) ) { mBillID = "0410"; mAccountCode = "预收保费"; //退余额 mHeadDescription = tLCPolBL.getInsuredName().trim()+mAccountCode; } else { dealError("LJAGetClaim", mBussNo, mPolNo, "005", mVoucherType+mMatchID+i, "未描述的财务类型"+tLJAGetClaimSchema.getFeeFinaType()+""); break; //待补充 } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } } else { if("SWPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "04071"; mAccountCode = "应付业务支出-死亡给付"; // 死亡给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("YLPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "04072"; mAccountCode = "应付业务支出-医疗给付"; // 医疗给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("SCPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "04073"; mAccountCode = "应付业务支出-伤残给付"; // 伤残给付金 mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("DQPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "04074"; mAccountCode = "应付业务支出-赔款支出"; mHeadDescription = mAccountCode + tLCPolBL.getInsuredName().trim() + "赔付费,保单号:" + tLCPolBL.getContNo(); } else if("TB".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0411"; mAccountCode = "应付业务支出-退保金"; // 理赔退保金 mHeadDescription = tLCPolBL.getInsuredName().trim() + mAccountCode; } else if("YCLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0412"; mAccountCode = "应付业务支出-理赔"; mHeadDescription = tLCPolBL.getInsuredName().trim() + mAccountCode; } else if("TF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "YE".equals(tLJAGetClaimSchema.getFeeFinaType())) { if(getRiskPeriod(mRiskCode, "005").equals("M") || getRiskPeriod(mRiskCode, "005").equals("S")) { mBillID = "0415"; mAccountCode = "应付业务支出-短期险退保"; } else { mBillID = "04150"; mAccountCode = "应付业务支出-其他"; } mHeadDescription = tLCPolBL.getInsuredName().trim() + mAccountCode; } else if ("YF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "YFLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "0416"; mAccountCode = "应付业务支出-年金"; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else { dealError("LJAGetClaim", mBussNo, mPolNo, "005", mVoucherType+mMatchID+i, "未描述的财务类型"+tLJAGetClaimSchema.getFeeFinaType()+""); break; //待补充 } tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetClaimSchema.getPay())); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } if(isExitInTab(tLJAGetClaimSchema.getActuGetNo(), tLJAGetClaimSchema.getPolNo(), mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } /** * 判断银行代码对应的管理机构 * * @param cBankCode * @return ComCode-6位 */ private String getBankCom(String cBankCode, String tID) { if(cBankCode == null || cBankCode.equals("")) return ""; LDBankDB tLDBankDB = new LDBankDB(); tLDBankDB.setBankCode(cBankCode); if(!tLDBankDB.getInfo()) { dealError("ldbank", mBussNo, mPolNo, "009", tID, "无法获取银行" + cBankCode + "的机构信息!"); return ""; } return PubFun.RCh(tLDBankDB.getComCode(),"0",6); } /** * 判断银行代码对应的管理机构,针对暂收银行编码在ldbank中没有描述的银行 * * @param cBankCode * @return ComCode-6位 */ private String getTBankCom(String cBankCode, String tID) { if(cBankCode == null || cBankCode.equals("")) return ""; LDCodeDB tLDCodeDB = new LDCodeDB(); tLDCodeDB.setCodeType("bank"); tLDCodeDB.setCode(cBankCode.trim()); if(!tLDCodeDB.getInfo()) { dealError("LDCode", mBussNo, mPolNo, "009", tID, "无法获取银行" + cBankCode + "的机构信息!"); return ""; } return PubFun.RCh(tLDCodeDB.getComCode(),"0",6); } /******************************************************************************************************************* * PayFeeData()分为以下几个部分; PayFeeDataEndordseJ()批改补退费表的业务付费部分; * PayFeeDataEndordseD()批改补退费的财务付费部分; * PayFeeDataDrawJ()生存领取表的业务付费部分; PayFeeDataDrawD()生存领取的财务付费部分; * PayFeeDataOtherJ()其它退费表的业务付费操作 PayFeeDataOtheD()退费表的财务付费操作 PayFeeDataClaimJ() * 赔付退费表的业务付费操作 PayFeeDataClaimD()赔付退费表的财务付费操作 * PayFeeDataBonusGetJ()红利给付实付表的业务付费操作; PayFeeDataBonusGetD()红利给付实付表的财务付费操作; ************** */ private boolean PayFeeDataD() { if(!getEndorsePay()) { return false; } //由于生存金领取涉及贷款的清偿,所以部分放到保全实付凭证中进行提取 if(!PayFeeDataDrawD()) { return false; } if(!PayFeeDataTempD()) { return false; } if(!PayFeeDataClaimD()) { return false; } if(!PayFeeDataBonusGetD()) { return false; } if(!PayFeeDataOtherGetD()) { return false; } return true; } private boolean PayFeeDataJ() { if(!PayFeeDataTempJ()) { return false; } if(!PayFeeDataBonusGetJ()) { return false; } if(!PayFeeDataOtherJ()) { return false; } return true; } // 对批改补退费表业务付费的操作 private boolean PayFeeDataEndordseJ() { ArrayList feeFinaType = new ArrayList(Arrays.asList("LX", "BF", "GB", "HK", "HD", "RV","TM","CM","BD")); LJAGetEndorseSet tLJAGetEndorseSet = ljaGetEndorseSQL.findAllByMakeDateAndManageComLikeAndFeeFinaTypeNot(mToday,cManageCom,feeFinaType); for(int i = 0; i < tLJAGetEndorseSet.size(); i++) { LJAGetEndorseSchema tLJAGetEndorseSchema = new LJAGetEndorseSchema(); tLJAGetEndorseSchema = tLJAGetEndorseSet.get(i + 1); LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetEndorseSchema.getActuGetNo()); if(tLJAGetEndorseSchema.getGetMoney() == 0) { dealError("LJAGetEndorse", tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "保全应付金额为零"); continue; } //由于保全的回滚业务产生相应的金额为负数,所以该校验屏蔽掉 initVar(); mMatchID++; mPolNo = tLJAGetEndorseSchema.getPolNo(); mContNo = tLJAGetEndorseSchema.getContNo(); mBussNo = tLJAGetEndorseSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetEndorseSchema.getMakeDate(); mSegment2 = tLJAGetEndorseSchema.getManageCom(); mManageCom = tLJAGetEndorseSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetEndorseSchema.getGetMoney())); double tYHSL = 0; //针对保全团单不到个单的特殊处理 if("00000000000000000000".equals(tLJAGetEndorseSchema.getContNo())) { // if(getGrpPol(tLJAGetEndorseSchema.getGrpPolNo(),mVoucherType+mMatchID+i)==null) //zy 2009-07-27 由于保全有些项目针对合同,grppolno记得是20个0,所以调整查询逻辑 if(!getEGrpPol(tLJAGetEndorseSchema.getGrpContNo(),tLJAGetEndorseSchema.getRiskCode(),mVoucherType+mMatchID+i)) continue; } else { if(!this.setPolInfo(mContNo, tLJAGetEndorseSchema.getRiskCode(),"LJAGetEndorse", mVoucherType+mMatchID+i)) continue; } for(int j = 1; j <= 2; j++) { if(j == 1) { if(tLJAGetEndorseSchema.getFeeFinaType().equals("TF")) { if(mPayIntv == 0 || mPayIntv == -1) { mBillID = "05010"; mAccountCode = "保费收入-趸缴"; // 保全退费 } else { mBillID = "05011"; mAccountCode = "保费收入-首年首期"; } // String ttmoney = "-" + this.tmoney; String ttmoney =new DecimalFormat("0.00").format(new Double(0-tLJAGetEndorseSchema.getGetMoney())); mEnteredDR = ""; mEnteredCR = String.valueOf(ttmoney); } else { if(tLJAGetEndorseSchema.getFeeFinaType().equals("TB")) { mBillID = "0500"; mAccountCode = "退保金"; // 保全退保金 } else if(tLJAGetEndorseSchema.getFeeFinaType().equals("YE")) { mBillID = "0502"; mAccountCode = "预收保费"; // 退余额 } else if(tLJAGetEndorseSchema.getFeeFinaType().equals("DK")) // 借款 { mBillID = "0503"; mAccountCode = "贷款-保户质押贷款-本金"; } else if(tLJAGetEndorseSchema.getFeeFinaType().equals("DJ")) // 垫交 { mBillID = "0504"; mAccountCode = "垫交保费"; } else if ("LJTF".equals(tLJAGetEndorseSchema.getFeeFinaType())) //红利 { mBillID = "0511"; mAccountCode = "应付保单红利-累计生息"; } else { dealError("LJAGetEndorse", mBussNo, mPolNo, "004", mVoucherType+mMatchID+i, "保全财务类型为" + tLJAGetEndorseSchema.getFeeFinaType() + ",不支持该类型的凭证提取"); break; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } mHeadDescription = mInsuredName + mAccountCode; } else { if(tLJAGetEndorseSchema.getFeeFinaType().equals("TB")) { mBillID = "0505"; mAccountCode = "应付业务支出-退保金"; } else if(tLJAGetEndorseSchema.getFeeFinaType().equals("DK")) { tYHSL = Double.valueOf(ljaGetEndorseSQL.getSumGetMoneyByActuGetNoAndPolNoAndEndorsementNoAndFeeOperationTypeAndMore(tLJAGetEndorseSchema.getActuGetNo(),tLJAGetEndorseSchema.getPolNo(),tLJAGetEndorseSchema.getEndorsementNo(),"LN","RV").GetText(1, 1)).doubleValue(); mBillID = "0506"; mAccountCode = "应付业务支出-保单贷款"; tmoney = new DecimalFormat("0.00") .format(new Double(tLJAGetEndorseSchema.getGetMoney() - tYHSL)); if(Double.parseDouble(this.tmoney) ==0) { dealError("ljagetendorse", tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema .getPolNo(), "004", mVoucherType+mMatchID+i, "贷款金额合计为零"); continue; } } else // TF,YE,DJ 都贷保全其它应付款 { if("TF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "YE".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "DJ".equals(tLJAGetEndorseSchema.getFeeFinaType())) { if("WT".equals(tLJAGetEndorseSchema.getFeeOperationType())) { mBillID = "0509"; mAccountCode = "应付业务支出-犹豫期撤单"; } else if(getRiskPeriod(mRiskCode, "005").equals("M") || getRiskPeriod(mRiskCode, "005").equals("S")) { mBillID = "0510"; mAccountCode = "应付业务支出-短期险退保"; } else { mBillID = "0507"; mAccountCode = "应付业务支出-其他"; } } else if ("LJTF".equals(tLJAGetEndorseSchema.getFeeFinaType())) //红利 { mBillID = "0512"; mAccountCode = "应付业务支出-红利"; } else { dealError("LJAGetEndorse", mBussNo, mPolNo, "004", mVoucherType+mMatchID+i, "保全财务类型为" + tLJAGetEndorseSchema.getFeeFinaType() + ",不支持该类型的凭证提取"); } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mInsuredName + mAccountCode; } if(isExitInTab(tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getPolNo(), mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } if(tLJAGetEndorseSchema.getFeeFinaType().equals("DK")) { tmoney = new DecimalFormat("0.00").format(new Double(tYHSL)); if(Double.parseDouble(this.tmoney) ==0) { dealError("ljagetendorse", tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "贷款金额合计为零"); continue; } mBillID = "0508"; mAccountCode = "应交税费-印花税"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); } } return true; } private LJAGetEndorseSet getAccEndorse(int Flag, double tSumMoney, LJAGetEndorseSet tLJAGetEndorseSet) { LJAGetEndorseSet tReturnEndorseSet = new LJAGetEndorseSet(); if(tSumMoney == 0.00) { return tReturnEndorseSet; } double[] a = new double[tLJAGetEndorseSet.size()]; for(int i = 0; i < tLJAGetEndorseSet.size(); i++) a[i] = tLJAGetEndorseSet.get(i + 1).getGetMoney(); Arrays.sort(a); if(Flag == 1) // 降序排列 { double[] b = new double[tLJAGetEndorseSet.size()]; for(int i = 0; i < a.length; i++) { b[i] = a[i]; } for(int i = 0; i < a.length; i++) { a[i] = b[a.length - i - 1]; } } double tSumArr = 0; for(int i = 0; i < a.length; i++) { LJAGetEndorseSchema tLJAGetEndorseSchema = new LJAGetEndorseSchema(); for(int j = 1; j <= tLJAGetEndorseSet.size(); j++) { tLJAGetEndorseSchema = tLJAGetEndorseSet.get(j); if(tLJAGetEndorseSchema.getGetMoney() == a[i]) { tLJAGetEndorseSet.remove(tLJAGetEndorseSchema); break; } } tSumArr = tSumArr + a[i]; if(tSumArr > tSumMoney) { double ttBalance = tSumArr - tSumMoney; double tBalance = tLJAGetEndorseSchema.getGetMoney() - ttBalance; if(tBalance < 0.01) break; tLJAGetEndorseSchema.setGetMoney(tBalance); tReturnEndorseSet.add(tLJAGetEndorseSchema); LJAGetEndorseSchema ttLJAGetEndorseSchema = new LJAGetEndorseSchema(); ttLJAGetEndorseSchema.setSchema(tLJAGetEndorseSchema); ttLJAGetEndorseSchema.setGetMoney(ttBalance); tLJAGetEndorseSet.add(ttLJAGetEndorseSchema); break; } else { tReturnEndorseSet.add(tLJAGetEndorseSchema); } } return tReturnEndorseSet; } private LJTempFeeClassSet getAccTemp(int Flag, double tSumMoney, LJTempFeeClassSet tLJTempFeeClassSet) { LJTempFeeClassSet tReturnTempSet = new LJTempFeeClassSet(); if(tSumMoney == 0.00) { return tReturnTempSet; } double[] a = new double[tLJTempFeeClassSet.size()]; for(int i = 0; i < tLJTempFeeClassSet.size(); i++) a[i] = tLJTempFeeClassSet.get(i + 1).getPayMoney(); Arrays.sort(a); if(Flag == 1) // 降序排列 { double[] b = new double[tLJTempFeeClassSet.size()]; for(int i = 0; i < a.length; i++) { b[i] = a[i]; } for(int i = 0; i < a.length; i++) { a[i] = b[a.length - i - 1]; } } double tSumArr = 0; for(int i = 0; i < a.length; i++) { LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema(); for(int j = 1; j <= tLJTempFeeClassSet.size(); j++) { tLJTempFeeClassSchema = tLJTempFeeClassSet.get(j); if(tLJTempFeeClassSchema.getPayMoney() == a[i]) { tLJTempFeeClassSet.remove(tLJTempFeeClassSchema); break; } } tSumArr = tSumArr + a[i]; if(tSumArr > tSumMoney) { double ttBalance = tSumArr - tSumMoney; double tBalance = tLJTempFeeClassSchema.getPayMoney() - ttBalance; tLJTempFeeClassSchema.setPayMoney(tBalance); tReturnTempSet.add(tLJTempFeeClassSchema); LJTempFeeClassSchema ttLJTempFeeClassSchema = new LJTempFeeClassSchema(); ttLJTempFeeClassSchema.setSchema(tLJTempFeeClassSchema); ttLJTempFeeClassSchema.setPayMoney(ttBalance); tLJTempFeeClassSet.add(ttLJTempFeeClassSchema); break; } else { tReturnTempSet.add(tLJTempFeeClassSchema); } } return tReturnTempSet; } // 保全实付 private boolean getEndorsePay() { //zy 增加网银代付的处理,处理规则与银行转账一致 // String tSql = "select * from LJAGet a where " // + "ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and OtherNoType='10' and not exists(select 1 from ljabonusget where actugetno=a.actugetno) " // + " and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank where " // + "bankcode = a.bankcode and rpad(trim(comcode),6,'0') = substr(a.managecom,0,6)))) "; //zy 2009-06-26 由于网银代付的银行在ldbank中没有描述,所以查询逻辑同一调整为ldcode LJAGetSet tLJAGetSet = new LJAGetSet(); tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManageComLikeAndOtherNoTypeAndCodeType(mToday,cManageCom,"10","bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = new LJAGetSchema(); tLJAGetSchema.setSchema(tLJAGetSet.get(i)); this.initVar(); mMatchID++; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); // if(tLJAGetSchema.getSumGetMoney() == 0) // { // dealError("LJAGet", mBussNo, tLJAGetSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "保全实付金额为0"); // continue; // } for(int j = 1; j <= 2; j++) { if(j == 1) { if(!getEndorsePayCode(tLJAGetSchema.getActuGetNo(),tLJAGetSchema.getManageCom(),tLJAGetSchema.getConfDate(),"G")) break; } else { //当出现坏账类型的财务数据时,总表的数据为0,不做下列科目的处理 if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { if(tLJAGetSchema.getPayMode() != null) { if("1".equals(tLJAGetSchema.getPayMode())) { mBillID = "0805"; mAccountCode = "库存现金-人民币-业务"; } else { if(tLJAGetSchema.getPayMode().equals("5")) // 内部转账 { mBillID = "0803"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0804"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } } else { mBillID = "0806"; mAccountCode = "库存现金-人民币-业务"; } tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney()) ); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } // String sql = "select * from LJAGet a where " // + "ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and OtherNoType='10' and not exists(select 1 from ljabonusget where actugetno=a.actugetno) " // + "and paymode in ( '4','9') and bankcode is not null and exists(select 1 from ldbank where bankcode = a.bankcode and " // + "rpad(trim(comcode),6,'0') <> substr(a.managecom,0,6)) "; tLJAGetSet = new LJAGetSet(); tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManageComLike(mToday,cManageCom,"10","bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = new LJAGetSchema(); tLJAGetSchema.setSchema(tLJAGetSet.get(i)); // if(tLJAGetSchema.getSumGetMoney() == 0) // { // dealError("LJAGet", tLJAGetSchema.getActuGetNo(), tLJAGetSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "保全实付金额为0"); // continue; // } this.initVar(); mMatchID++; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); //支公司科目 if(!getEndorsePayCode(tLJAGetSchema.getActuGetNo(),tLJAGetSchema.getManageCom(),tLJAGetSchema.getConfDate(),"G")) continue; if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) // 内部转账 { mBillID = "0863"; mAccountCode = "应付业务支出-内部转帐"; } else { mBillID = "0864"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); } } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema ttOFInterfaceSchema = new OFInterfaceSchema(); ttOFInterfaceSchema = (OFInterfaceSchema)entry(); if(ttOFInterfaceSchema != null) mOFInterfaceSet.add(ttOFInterfaceSchema); dealLITranInfo(); // 分公司借记科目 // 取得机构对应的分公司 mManageCom = tLJAGetSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0865"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJAGetSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = new OFInterfaceSchema(); t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0866"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(tLJAGetSchema.getActuGetNo(),mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } } //查询实收总表 LJAPaySet tLJAPaySet = new LJAPaySet(); LJAPaySQL ljaPaySQL = SQLProxy.getInstance(LJAPaySQL.class); tLJAPaySet=ljaPaySQL.findAllByConfDateAndManageComLikeAndIncomeType(mToday,cManageCom,"10"); for (int i=1;i<=tLJAPaySet.size();i++) { LJAPaySchema tLJAPaySchema = new LJAPaySchema(); tLJAPaySchema.setSchema(tLJAPaySet.get(i)); // if(tLJAPaySchema.getSumActuPayMoney() == 0) // { // dealError("LJAGet", tLJAPaySchema.getPayNo(), tLJAPaySchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "实收金额为0"); // continue; // } initVar(); mMatchID ++ ; mBussNo = tLJAPaySchema.getPayNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAPaySchema.getConfDate(); mSegment2 = tLJAPaySchema.getManageCom(); mManageCom = tLJAPaySchema.getManageCom().substring(0,6); if(!getEndorsePayCode(tLJAPaySchema.getPayNo(),tLJAPaySchema.getManageCom(),tLJAPaySchema.getConfDate(),"P")) continue; if(tLJAPaySchema.getSumActuPayMoney()>0 || tLJAPaySchema.getSumActuPayMoney()<0) { mBillID = "0909"; mAccountCode = "预收保费"; //续期暂转 mHeadDescription = "转预收保费"; tmoney = new DecimalFormat("0.00").format(new Double(tLJAPaySchema.getSumActuPayMoney())); tmoney = String.valueOf(Double.parseDouble(tmoney) - tYHSLMoney); mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if (isExitInTab(tLJAPaySchema.getPayNo(),mPolNo,mBillID)) continue; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema) entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 生存领取表的业务操作 private boolean PayFeeDataDrawJ() { // 生存金的应付处理 ArrayList moneyType = new ArrayList(Arrays.asList("YF", "EF","YFLX","EFLX")); LCInsureAccTraceSet tLCInsureAccTraceSet = lcInsureAccTraceSQL.findAllByMakeDateAndManageComAndMoneyTypeAndMoneyTypeInAndGrpContNo( mToday,cManageCom,moneyType,"00000000000000000000"); for(int i = 1; i <= tLCInsureAccTraceSet.size(); i++) { LCInsureAccTraceSchema tLCInsureAccTraceSchema = new LCInsureAccTraceSchema(); tLCInsureAccTraceSchema = tLCInsureAccTraceSet.get(i); if(tLCInsureAccTraceSchema.getMoney() == 0) { dealError("LCInsureAccTrace", tLCInsureAccTraceSchema.getContNo(), tLCInsureAccTraceSchema.getRiskCode(), "004", mVoucherType+mMatchID+i, "生存金应付金额为非正数!"); continue; } initVar(); mMatchID++; mPolNo = tLCInsureAccTraceSchema.getPolNo(); mContNo = tLCInsureAccTraceSchema.getContNo(); mBussNo = tLCInsureAccTraceSchema.getSerialNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLCInsureAccTraceSchema.getMakeDate(); mSegment2 = tLCInsureAccTraceSchema.getManageCom(); mManageCom = tLCInsureAccTraceSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLCInsureAccTraceSchema.getMoney())); if(!this.setPolInfo(mContNo,tLCInsureAccTraceSchema.getRiskCode(), "LCInsureAccTrace", mVoucherType+mMatchID+i)) continue; LMRiskAppDB mLMRiskAppDB = new LMRiskAppDB(); mLMRiskAppDB.setRiskCode(mRiskCode); if(mLMRiskAppDB.getInfo()) { if("1".equals(mLMRiskAppDB.getHealthType())) { dealError("LCInsureAccTrace", mBussNo, mPolNo, "013",mVoucherType+mMatchID+i, "健康委托产品不在该处进行凭证提取!"); continue; } } for(int j = 1; j <= 2; j++) { if(j == 1) { if("YF".equals(tLCInsureAccTraceSchema.getMoneyType())) // 红利累计生息账户中的累计生息利息 { mBillID = "0602"; mAccountCode = "年金给付"; } if("YFLX".equals(tLCInsureAccTraceSchema.getMoneyType())) { mBillID = "0601"; mAccountCode = "利息支出-延滞领取利息"; } if("EF".equals(tLCInsureAccTraceSchema.getMoneyType())) { mBillID = "0600"; mAccountCode = "满期给付"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if("YF".equals(tLCInsureAccTraceSchema.getMoneyType()) || "YFLX".equals(tLCInsureAccTraceSchema.getMoneyType()) ) { mBillID = "0605"; mAccountCode = "应付业务支出-年金"; } else { mBillID = "0603"; mAccountCode = "应付业务支出-满期"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode + "," + mInsuredName + "生存领取费"; if(isExitInTab(tLCInsureAccTraceSchema.getSerialNo(), tLCInsureAccTraceSchema.getPolNo(), mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 生存领取表的财务付费操作 private boolean PayFeeDataDrawD() { //zy 需要兼容5.3的生存领取数据,即ljaget表中othernotype为1 // String tSql = "select * from LJAGet a where " // + "ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' and OtherNoType in ('1','2') " // + " and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank where " // + "bankcode = a.bankcode and rpad(trim(comcode),6,'0') = substr(a.managecom,0,6)))) "; LJAGetSet tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManangeComLikeAndCodeType(mToday,cManageCom,"bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = tLJAGetSet.get(i); // if(tLJAGetSchema.getSumGetMoney()==0) // { // dealError("LJAGet", tLJAGetSchema.getActuGetNo(), tLJAGetSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "生存领取给付金额为非正数"); // continue; // } initVar(); mMatchID++; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); if(!this.getDrawCode(mBussNo)) continue; if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0813"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0814"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } else { mBillID = "0815"; mAccountCode = "库存现金-人民币-业务"; } } else { mBillID = "0816"; mAccountCode = "库存现金-人民币-业务"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } // String sql = "select * from LJAGet a where " // + "ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' and OtherNoType in ('1','2') " // + "and paymode in ( '4','9') and bankcode is not null and exists(select 1 from ldbank where bankcode = a.bankcode and " // + "rpad(trim(comcode),6,'0') <> substr(a.managecom,0,6)) "; tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManangeComLikeAndCodeTypeAndBankCodeIsNotNull(mToday,cManageCom,"bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = new LJAGetSchema(); tLJAGetSchema.setSchema(tLJAGetSet.get(i)); initVar(); mMatchID++; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); if(!this.getDrawCode(mBussNo)) continue; if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0870"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0871"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema ttOFInterfaceSchema = (OFInterfaceSchema)entry(); if(ttOFInterfaceSchema != null) mOFInterfaceSet.add(ttOFInterfaceSchema); dealLITranInfo(); } // 分公司借记科目 // 取得机构对应的分公司 mManageCom = tLJAGetSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0872"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJAGetSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(tLJAGetSchema.getActuGetNo(),mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = new OFInterfaceSchema(); t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0873"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } } return true; } // 临时退费表的借操作 private boolean PayFeeDataTempJ() { LJAGetTempFeeSQL ljaGetTempFeeSQL = SQLProxy.getInstance(LJAGetTempFeeSQL.class); LJAGetTempFeeSet tLJAGetTempFeeSet = ljaGetTempFeeSQL.findAllByMakeDateAndManageComLike(mToday,cManageCom); for(int i = 1; i <= tLJAGetTempFeeSet.size(); i++) { LJAGetTempFeeSchema tLJAGetTempFeeSchema = new LJAGetTempFeeSchema(); tLJAGetTempFeeSchema = tLJAGetTempFeeSet.get(i); LJTempFeeDB tLJTempFeeDB = new LJTempFeeDB(); tLJTempFeeDB.setTempFeeNo(tLJAGetTempFeeSchema.getTempFeeNo()); tLJTempFeeDB.setTempFeeType(tLJAGetTempFeeSchema.getTempFeeType()); tLJTempFeeDB.setRiskCode(tLJAGetTempFeeSchema.getRiskCode()); if(!tLJTempFeeDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, "暂收退费对应的收据号为" + tLJAGetTempFeeSchema.getTempFeeNo() + "的暂收信息不存在!"); continue; } if("CM".equals(tLJAGetTempFeeSchema.getFeeFinaType())) // 排除健康委托产品 { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "013", mVoucherType+mMatchID+i, "健康委托产品退费不在该处提取凭证!"); continue; } if(tLJAGetTempFeeSchema.getGetMoney() <= 0) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJTempFeeDB.getOtherNo(), "004", "007", "暂收退费的金额为非正数!"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetTempFeeSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, tLJAGetTempFeeSchema.getActuGetNo() + "的实付总表信息不存在!"); continue; } initVar(); mMatchID++; mPolNo = tLJTempFeeDB.getOtherNo(); mContNo = tLJTempFeeDB.getOtherNo(); mBussNo = tLJAGetTempFeeSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetTempFeeSchema.getMakeDate(); mRiskCode = tLJAGetTempFeeSchema.getRiskCode(); mSegment2 = tLJAGetTempFeeSchema.getManageCom(); mManageCom = tLJAGetTempFeeSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetTempFeeSchema.getGetMoney())); for(int j = 1; j <= 2; j++) { if(j == 1) { if("1".equals(tLJAGetTempFeeSchema.getTempFeeType())) { mBillID = "0700"; mAccountCode = "暂收保费"; // 退首期保费 } else { mBillID = "0701"; mAccountCode = "预收保费"; // 退续期保费 } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mBillID = "0702"; mAccountCode = "应付业务支出-暂收退费"; } if(tLJAGetTempFeeSchema.getAPPntName() != null) mHeadDescription = mAccountCode + mInsuredName; else mHeadDescription = mAccountCode; if(isExitInTab(mBussNo, mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 临时退费表的代操作 private boolean PayFeeDataTempD() { // String tSql = "select * from LJAGetTempFee a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno " // + "and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank " // + "where bankcode = b.bankcode and rpad(trim(comcode),6,'0') = substr(b.managecom,0,6)))))"; LJAGetTempFeeSet tLJAGetTempFeeSet = otoFBLSQL.findAllLJAGetTempFeeByConfDateAndManangeComLikeAndCodeType(mToday,cManageCom,"bank"); LJAGetSchema tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJAGetTempFeeSet.size(); i++) { LJAGetTempFeeSchema tLJAGetTempFeeSchema = new LJAGetTempFeeSchema(); tLJAGetTempFeeSchema = tLJAGetTempFeeSet.get(i + 1); if(tLJAGetTempFeeSchema.getGetMoney() <= 0) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "004", mVoucherType+mMatchID+i,"暂收退费金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetTempFeeSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在LJAGetTempFee相应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); LJTempFeeDB mLJTempFeeDB = new LJTempFeeDB(); mLJTempFeeDB.setTempFeeNo(tLJAGetTempFeeSchema.getTempFeeNo()); mLJTempFeeDB.setTempFeeType(tLJAGetTempFeeSchema.getTempFeeType()); mLJTempFeeDB.setRiskCode(tLJAGetTempFeeSchema.getRiskCode()); if(!mLJTempFeeDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, "LJTempFee不存在LJAGetTempFee对应的记录"); continue; } initVar(); mMatchID++; mBussNo = tLJAGetTempFeeSchema.getActuGetNo(); mPolNo = mLJTempFeeDB.getOtherNo(); mContNo = mLJTempFeeDB.getOtherNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetTempFeeSchema.getConfDate(); mSegment2 = tLJAGetTempFeeSchema.getManageCom(); mManageCom = tLJAGetTempFeeSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetTempFeeSchema.getGetMoney())); mSaleChnl = tranSaleChnl(tLJAGetSchema.getSaleChnl(), tLJAGetSchema.getAgentCode(), mLJTempFeeDB.getOtherNo()); mRiskCode = tLJAGetTempFeeSchema.getRiskCode(); if(tLJAGetTempFeeSchema.getGetMoney() > 0) { for(int j = 1; j <= 2; j++) { if(j == 1) { mAccountCode = "应付业务支出-暂收退费"; mBillID = "0820"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0821"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0822"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } else { mBillID = "0823"; mAccountCode = "库存现金-人民币-业务"; } } else { mBillID = "0824"; mAccountCode = "库存现金-人民币-业务"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode; if(isExitInTab(tLJAGetTempFeeSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } // String sql = "select * from LJAGetTempFee a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno and paymode in ( '4','9') " // + "and (bankcode is not null and exists(select 1 from ldbank where bankcode = b.bankcode " // + "and rpad(trim(comcode),6,'0') <> substr(b.managecom,0,6))))"; tLJAGetTempFeeSet = otoFBLSQL.findAllLJAGetTempFeeByConfDateAndManangeComLikeAndCodeTypeAndBankCodeIsNotNull(mToday,cManageCom,"bank"); tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJAGetTempFeeSet.size(); i++) { LJAGetTempFeeSchema tLJAGetTempFeeSchema = new LJAGetTempFeeSchema(); tLJAGetTempFeeSchema = tLJAGetTempFeeSet.get(i + 1); if(tLJAGetTempFeeSchema.getGetMoney() <= 0) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "004", mVoucherType+mMatchID+i,"暂收退费金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetTempFeeSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在LJAGetTempFee相应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); LJTempFeeDB mLJTempFeeDB = new LJTempFeeDB(); mLJTempFeeDB.setTempFeeNo(tLJAGetTempFeeSchema.getTempFeeNo()); mLJTempFeeDB.setTempFeeType(tLJAGetTempFeeSchema.getTempFeeType()); mLJTempFeeDB.setRiskCode(tLJAGetTempFeeSchema.getRiskCode()); if(!mLJTempFeeDB.getInfo()) { dealError("LJAGetTempFee", tLJAGetTempFeeSchema.getActuGetNo(), tLJAGetTempFeeSchema.getTempFeeNo(), "002", mVoucherType+mMatchID+i, "LJTempFee不存在LJAGetTempFee对应的记录"); continue; } initVar(); mMatchID++; mBussNo = tLJAGetTempFeeSchema.getActuGetNo(); mPolNo = mLJTempFeeDB.getOtherNo(); mContNo = mLJTempFeeDB.getOtherNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetTempFeeSchema.getConfDate(); mSegment2 = tLJAGetTempFeeSchema.getManageCom(); mManageCom = tLJAGetTempFeeSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetTempFeeSchema.getGetMoney())); mSaleChnl = tranSaleChnl(tLJAGetSchema.getSaleChnl(), tLJAGetSchema.getAgentCode(), mLJTempFeeDB.getOtherNo()); mRiskCode = tLJAGetTempFeeSchema.getRiskCode(); if(tLJAGetTempFeeSchema.getGetMoney() > 0) { for(int j = 1; j <= 2; j++) { if(j == 1) { mAccountCode = "应付业务支出-暂收退费"; mBillID = "0874"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0875"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0876"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); } } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode; if(isExitInTab(tLJAGetTempFeeSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } // 分公司借记科目 // 取得机构对应的分公司 mManageCom = tLJAGetTempFeeSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0877"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJAGetTempFeeSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0878"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } } return true; } // 理赔退费表的代操作 private boolean PayFeeDataClaimD() { // String tSql = "select * from LJAGet a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and OtherNoType='5' " // + "and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank " // + "where bankcode = a.bankcode and rpad(trim(comcode),6,'0') = substr(a.managecom,0,6))))"; LJAGetSet tLJAGetSet = new LJAGetSet(); tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManangeComLikeAndOtherNoTypeAndCodeType(mToday,cManageCom,"5","bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = new LJAGetSchema(); tLJAGetSchema = tLJAGetSet.get(i); initVar(); mMatchID++; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); // if(tLJAGetSchema.getSumGetMoney() == 0) // { // dealError("LJAGet", mBussNo, tLJAGetSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "理赔实付金额为0"); // continue; // } for(int j = 1; j <= 2; j++) { if(j == 1) { if(!getClaimCode(tLJAGetSchema.getActuGetNo(),tLJAGetSchema.getManageCom(),tLJAGetSchema.getConfDate(),"G")) break; } else { //当出现豁免垫交部分垫交的财务数据时,总表的数据为0,不做下列科目的处理 if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0831"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0832"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } else { mBillID = "0833"; mAccountCode = "库存现金-人民币-业务"; } } else { mBillID = "0834"; mAccountCode = "库存现金-人民币-业务"; } tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName.trim(); if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } } // String sql = "select * from LJAGet a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and OtherNoType='5' and paymode in ( '4','9') " // + "and bankcode is not null and exists(select 1 from ldbank where bankcode = a.bankcode " // + "and rpad(trim(comcode),6,'0') <> substr(a.managecom,0,6))"; tLJAGetSet = new LJAGetSet(); tLJAGetSet = otoFBLSQL.findAllLJAGetByConfDateAndManangeComLike(mToday,cManageCom,"5","bank"); for(int i = 1; i <= tLJAGetSet.size(); i++) { LJAGetSchema tLJAGetSchema = new LJAGetSchema(); tLJAGetSchema = tLJAGetSet.get(i); initVar(); mMatchID++; boolean cFlag=true; mBussNo = tLJAGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetSchema.getConfDate(); mSegment2 = tLJAGetSchema.getManageCom(); mManageCom = tLJAGetSchema.getManageCom().substring(0, 6); // if(tLJAGetSchema.getSumGetMoney() == 0) // { // dealError("LJAGet", mBussNo, tLJAGetSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "理赔实付金额为0"); // continue; // } for(int j = 1; j <= 2; j++) { if(j == 1) { if(!getClaimCode(tLJAGetSchema.getActuGetNo(),tLJAGetSchema.getManageCom(),tLJAGetSchema.getConfDate(),"G")) { cFlag=false; break; } } else { if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); mBillID = "0882"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mAccountCode + mInsuredName.trim(); if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) { cFlag=false; break; } OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } // 分公司借记科目 // 取得机构对应的分公司 if(cFlag) { if(tLJAGetSchema.getSumGetMoney() > 0 || tLJAGetSchema.getSumGetMoney() < 0) { tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetSchema.getSumGetMoney())); mManageCom = tLJAGetSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0883"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJAGetSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0884"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(tLJAGetSchema.getActuGetNo(), mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } } } //主要针对理赔回滚产生的实收总表,理赔加费核销的保费收入在保费收入凭证中进行提取 //查询实收总表 LJAPaySet tLJAPaySet = new LJAPaySet(); tLJAPaySet=otoFBLSQL.findAllLJAPayByConfDateAndManangeComLikeAndIncomeType(mToday,cManageCom,"5"); for (int i=1;i<=tLJAPaySet.size();i++) { LJAPaySchema tLJAPaySchema = new LJAPaySchema(); tLJAPaySchema.setSchema(tLJAPaySet.get(i)); // if(tLJAPaySchema.getSumActuPayMoney() == 0) // { // dealError("LJAPay", tLJAPaySchema.getPayNo(), tLJAPaySchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "理赔实收金额为0"); // continue; // } initVar(); mMatchID ++ ; mBussNo = tLJAPaySchema.getPayNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAPaySchema.getConfDate(); mSegment2 = tLJAPaySchema.getManageCom(); mManageCom = tLJAPaySchema.getManageCom().substring(0,6); if(!getClaimCode(tLJAPaySchema.getPayNo(),tLJAPaySchema.getManageCom(),tLJAPaySchema.getConfDate(),"P")) continue; if(tLJAPaySchema.getSumActuPayMoney()>0 || tLJAPaySchema.getSumActuPayMoney()<0) { mBillID = "08116"; mAccountCode = "预收保费"; //续期暂转 mHeadDescription = "转预收保费"; tmoney = new DecimalFormat("0.00").format(new Double(tLJAPaySchema.getSumActuPayMoney())); mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if (isExitInTab(tLJAPaySchema.getPayNo(),mPolNo,mBillID)) continue; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema) entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 对红利给付实付表的业务操作; private boolean PayFeeDataBonusGetJ() { // 处理现金领取、抵交保费、增额交清、累计生息的应付处理 ArrayList moneyType = new ArrayList(Arrays.asList("HL", "HLLX","DJLX","YCLX")); LCInsureAccTraceSet tLCInsureAccTraceSet = lcInsureAccTraceSQL.findAllByMakeDateAndManageComAndMoneyTypeAndMoneyTypeInAndGrpContNo( mToday,cManageCom,moneyType,"00000000000000000000"); for(int i = 1; i <= tLCInsureAccTraceSet.size(); i++) { LCInsureAccTraceSchema tLCInsureAccTraceSchema = new LCInsureAccTraceSchema(); tLCInsureAccTraceSchema = tLCInsureAccTraceSet.get(i); if(tLCInsureAccTraceSchema.getMoney() == 0) { dealError("LCInsureAccTrace", tLCInsureAccTraceSchema.getContNo(), tLCInsureAccTraceSchema.getRiskCode(), "004", mVoucherType+mMatchID+i, "红利应付金额为非正数!"); continue; } initVar(); mMatchID++; mPolNo = tLCInsureAccTraceSchema.getPolNo(); mContNo = tLCInsureAccTraceSchema.getContNo(); mBussNo = tLCInsureAccTraceSchema.getSerialNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLCInsureAccTraceSchema.getMakeDate(); mSegment2 = tLCInsureAccTraceSchema.getManageCom(); mManageCom = tLCInsureAccTraceSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLCInsureAccTraceSchema.getMoney())); if(!this.setPolInfo(mContNo,tLCInsureAccTraceSchema.getRiskCode(), "LCInsureAccTrace", mVoucherType+mMatchID+i)) continue; LMRiskAppDB mLMRiskAppDB = new LMRiskAppDB(); mLMRiskAppDB.setRiskCode(mRiskCode); if(mLMRiskAppDB.getInfo()) { if("1".equals(mLMRiskAppDB.getHealthType())) { dealError("LCInsureAccTrace", mBussNo, mPolNo, "013",mVoucherType+mMatchID+i, "健康委托产品不在该处进行凭证提取!"); continue; } } for(int j = 1; j <= 2; j++) { if(j == 1) { if("HLLX".equals(tLCInsureAccTraceSchema.getMoneyType())) // 红利累计生息账户中的累计生息利息 { mBillID = "0714"; // mAccountCode = "保户红利支出-红利利息"; mAccountCode = "保单红利支出-红利利息"; } if("DJLX".equals(tLCInsureAccTraceSchema.getMoneyType()) || "YCLX".equals(tLCInsureAccTraceSchema.getMoneyType())) { mBillID = "0719"; mAccountCode = "利息支出-延滞领取利息"; } if("HL".equals(tLCInsureAccTraceSchema.getMoneyType())) { mBillID = "0711"; mAccountCode = "应付保单红利-保单红利"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if("HLLX".equals(tLCInsureAccTraceSchema.getMoneyType()) || ("HL".equals(tLCInsureAccTraceSchema.getMoneyType()) && "000001".equals(tLCInsureAccTraceSchema.getInsuAccNo()))) { mBillID = "0715"; mAccountCode = "应付保单红利-累计生息"; } else { mBillID = "0712"; mAccountCode = "应付业务支出-红利"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode + mInsuredName + ",保单号" + mContNo; if(isExitInTab(tLCInsureAccTraceSchema.getSerialNo(), tLCInsureAccTraceSchema.getPolNo(), mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } //处理累计生息的红利和增额缴清的红利 LJABonusGetSQL ljaBonusGetSQL = SQLProxy.getInstance(LJABonusGetSQL.class); ArrayList feeFinaType = new ArrayList<>(Arrays.asList("LJTF","HLTF")); LJABonusGetSet tLJABonusGetSet = ljaBonusGetSQL.findAllByMakeDateAndManageComLikeAndFeeFinaTypeIn(mToday,cManageCom,feeFinaType); for (int i =0;i moneyType1 = new ArrayList<>(Arrays.asList("HL","HLLX")); SSRS tssrs = otoFBLSQL.getGrpContNoAndManangeComByMakeDateAndManageComLikeAndMoneyTypeIn(mToday,cManageCom,moneyType1); if(tssrs == null) { dealError("LCInsureAccTrace", "null", "null", "002", "007","查询团单帐户红利失败"); return true; // 继续提取别的科目段数据 } for(int i = 1; i <= tssrs.getMaxRow(); i++) { initVar(); mMatchID++; mPolNo = tssrs.GetText(i, 3) + "(" + mToday + ")"; // 因多期红利之间只有serialno能区分开各期数据,此时借用日期+金额类型来区分 mContNo = tssrs.GetText(i, 1); mBussNo = tssrs.GetText(i, 1); mSegment2 = tssrs.GetText(i, 3); mManageCom = tssrs.GetText(i, 3).substring(0, 6); mAccountingDate = mToday; mTransDate = mToday; tmoney = new DecimalFormat("0.00").format(new Double(tssrs.GetText(i, 5))); if(Double.parseDouble(tmoney) <= 0) { dealError("LCInsureAccTrace", mBussNo, mPolNo, "004", mVoucherType+mMatchID+i, "团单帐户红利金额为非正数"); continue; } // LCGrpPolBL tLCGrpPolBL = new LCGrpPolBL(); // tLCGrpPolBL.setGrpContNo(mContNo); if(lcGrpPolSQL.findAllByGrpContNoAndRiskCode(mContNo,tssrs.GetText(i, 2)).size()<=0) { dealError("LCGRPPOL", mBussNo, mPolNo, "001", mVoucherType+mMatchID+i,"保单号为" + mContNo + "对应保单信息不存在"); continue; } else { LCGrpPolSchema tLCGrpPolSchema = lcGrpPolSQL.findAllByGrpContNoAndRiskCode(mContNo,tssrs.GetText(i, 2)).get(1); mRiskCode = tLCGrpPolSchema.getRiskCode(); mSaleChnl = tranSaleChnl(tLCGrpPolSchema.getSaleChnl(), tLCGrpPolSchema.getAgentCode(), tLCGrpPolSchema.getGrpContNo()); mInsuredName = tLCGrpPolSchema.getGrpName(); } for(int j = 1; j <= 2; j++) { if(j == 1) { if(tssrs.GetText(i, 3).equals("HL")) { mBillID = "0716"; mAccountCode = "应付保单红利-保单红利"; } else { mBillID = "0717"; // mAccountCode = "保户红利支出-红利利息"; // 保户红利利息 mAccountCode = "保单红利支出-红利利息"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { mBillID = "0718"; mAccountCode = "应付保单红利-累计生息"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode + mInsuredName; if(isExitInTab(mBussNo, mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 对其他给付实付表的业务操作; private boolean PayFeeDataOtherJ() { LJAGetOtherSQL ljaGetOtherSQL = SQLProxy.getInstance(LJAGetOtherSQL.class); LJAGetOtherSet tLJAGetOtherSet = ljaGetOtherSQL.findAllByMakeDateAndManageComLike(mToday,cManageCom); for(int i = 0; i < tLJAGetOtherSet.size(); i++) { LJAGetOtherSchema tLJAGetOtherSchema = new LJAGetOtherSchema(); tLJAGetOtherSchema = tLJAGetOtherSet.get(i + 1); if(tLJAGetOtherSchema.getGetMoney() <= 0) { dealError("LJAGetOther", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "溢交应付金额为非正数!"); continue; } if("CM".equals(tLJAGetOtherSchema.getFeeFinaType())) { dealError("LJAGetOther", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "013", mVoucherType+mMatchID+i, "该产品为健康委托产品,不在此进行凭证提取!"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetOtherSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAGetOther", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "002", mVoucherType+mMatchID+i, tLJAGetOtherSchema.getActuGetNo()+"实付总表记录不存在!"); continue; } initVar(); mMatchID++; mPolNo = tLJAGetOtherSchema.getOtherNo(); mContNo = tLJAGetOtherSchema.getOtherNo(); mBussNo = tLJAGetOtherSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetOtherSchema.getMakeDate(); mSegment2 = tLJAGetOtherSchema.getManageCom(); mManageCom = tLJAGetOtherSchema.getManageCom().substring(0, 6); if(!this.setPolInfo(mContNo,"", "LJAGetOther", mVoucherType+mMatchID+i)) continue; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetOtherSchema.getGetMoney())); for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0720"; mAccountCode = "预收保费"; // 其它支出 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mInsuredName + "的其它给付"; } else { mBillID = "0721"; mAccountCode = "应付业务支出-溢额退费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); mHeadDescription = mInsuredName + "的业务其它给付"; } if(isExitInTab(tLJAGetOtherSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } return true; } // 对红利给付实付表的财务付费操作; private boolean PayFeeDataBonusGetD() { // String tSql = "select * from LJABonusGet a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno " // + "and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank " // + "where bankcode = b.bankcode and rpad(trim(comcode),6,'0') = substr(b.managecom,0,6)))))"; LJABonusGetSet tLJABonusGetSet = otoFBLSQL.findAllLJABonusGetByConfDateAndManangeComLikeAndCodeType(mToday,cManageCom,"bank"); LJAGetSchema tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJABonusGetSet.size(); i++) { LJABonusGetSchema tLJABonusGetSchema = new LJABonusGetSchema(); tLJABonusGetSchema = tLJABonusGetSet.get(i + 1); if(tLJABonusGetSchema.getGetMoney() == 0) { dealError("LJABonusGet", tLJABonusGetSchema.getActuGetNo(), tLJABonusGetSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "红利给付金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJABonusGetSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJABonusGet", tLJABonusGetSchema.getActuGetNo(), tLJABonusGetSchema.getPolNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在相应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); initVar(); mMatchID++; mPolNo = tLJABonusGetSchema.getPolNo(); mContNo = tLJABonusGetSchema.getContNo(); mBussNo = tLJABonusGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJABonusGetSchema.getConfDate(); mSegment2 = tLJABonusGetSchema.getManageCom(); mManageCom = tLJABonusGetSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJABonusGetSchema.getGetMoney())); if(!setPolInfo(mContNo,tLJABonusGetSchema.getRiskCode(), "LJABonusGet", mVoucherType+mMatchID+i)) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0840"; mAccountCode = "应付业务支出-红利"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0841"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0842"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } else { mBillID = "0843"; mAccountCode = "库存现金-人民币-业务"; } } else { mBillID = "0844"; mAccountCode = "库存现金-人民币-业务"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode + mInsuredName; if(isExitInTab(mBussNo, mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } // String sql = "select * from LJABonusGet a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno and paymode in ( '4','9') " // + "and bankcode is not null and exists(select 1 from ldbank where bankcode = b.bankcode " // + "and rpad(trim(comcode),6,'0') <> substr(b.managecom,0,6)))"; tLJABonusGetSet = otoFBLSQL.findAllLJABonusGetByConfDateAndManangeComLikeAndCodeTypeAndBankCodeIsNotNull(mToday,cManageCom,"bank"); tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJABonusGetSet.size(); i++) { LJABonusGetSchema tLJABonusGetSchema = new LJABonusGetSchema(); tLJABonusGetSchema = tLJABonusGetSet.get(i + 1); if(tLJABonusGetSchema.getGetMoney() == 0) { dealError("LJABonusGet", tLJABonusGetSchema.getActuGetNo(), tLJABonusGetSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "红利给付金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJABonusGetSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJABonusGet", tLJABonusGetSchema.getActuGetNo(), tLJABonusGetSchema.getPolNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在相应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); initVar(); mMatchID++; mPolNo = tLJABonusGetSchema.getPolNo(); mContNo = tLJABonusGetSchema.getContNo(); mBussNo = tLJABonusGetSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJABonusGetSchema.getConfDate(); mSegment2 = tLJABonusGetSchema.getManageCom(); mManageCom = tLJABonusGetSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJABonusGetSchema.getGetMoney())); if(!setPolInfo(mContNo,tLJABonusGetSchema.getRiskCode(), "LJABonusGet", mVoucherType+mMatchID+i)) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0885"; mAccountCode = "应付业务支出-红利"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0886"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0887"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); } } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mAccountCode + mInsuredName; if(isExitInTab(tLJABonusGetSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } // 分公司借记科目 // 取得机构对应的分公司 mManageCom = tLJABonusGetSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0888"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJABonusGetSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0889"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } return true; } // 对其它给付实付表的财务付费操作; private boolean PayFeeDataOtherGetD() { // String tSql = "select * from LJAGetOther a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno " // + "and (paymode not in ( '4','9') or (paymode in ( '4','9') and exists(select 1 from ldbank " // + "where bankcode = b.bankcode and rpad(trim(comcode),6,'0') = substr(b.managecom,0,6)))))"; LJAGetOtherSet tLJAGetOtherSet = otoFBLSQL.findAllLJAGetOtherByConfDateAndManangeComLikeAndCodeType(mToday,cManageCom,"bank"); LJAGetSchema tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJAGetOtherSet.size(); i++) { LJAGetOtherSchema tLJAGetOtherSchema = new LJAGetOtherSchema(); tLJAGetOtherSchema = tLJAGetOtherSet.get(i + 1); if(tLJAGetOtherSchema.getGetMoney() <= 0) { dealError("LJAGetOther", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "溢交退费金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetOtherSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAOtherGet", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在对应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); initVar(); mMatchID++; mPolNo = tLJAGetOtherSchema.getOtherNo(); mContNo = tLJAGetOtherSchema.getOtherNo(); mBussNo = tLJAGetOtherSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetOtherSchema.getConfDate(); mSegment2 = tLJAGetOtherSchema.getManageCom(); mManageCom = tLJAGetOtherSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetOtherSchema.getGetMoney())); if(tLJAGetOtherSchema.getGetMoney() > 0) { if(!this.setPolInfo(mPolNo,"", "LJAGetOther",mVoucherType+mMatchID+i)) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0850"; mAccountCode = "应付业务支出-溢额退费"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0851"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0852"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); } } else { mBillID = "0853"; mAccountCode = "库存现金-人民币-业务"; } } else { mBillID = "0854"; mAccountCode = "库存现金-人民币-业务"; } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mInsuredName + "的其它给付退费"; if(isExitInTab(tLJAGetOtherSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } } } // String sql = "select * from LJAGetOther a " // + "where ConfDate='"+ mToday+ "' and ManageCom like '"+ cManageCom+ "%' " // + "and exists(select 1 from ljaget b where actugetno = a.actugetno and paymode in ( '4','9') " // + "and bankcode is not null and exists(select 1 from ldbank where bankcode = b.bankcode " // + "and rpad(trim(comcode),6,'0') <> substr(b.managecom,0,6)))"; tLJAGetOtherSet = otoFBLSQL.findAllLJAGetOtherByConfDateAndManangeComLikeAndCodeTypeAndBankCodeIsNotNull(mToday,cManageCom,"bank"); tLJAGetSchema = new LJAGetSchema(); for(int i = 0; i < tLJAGetOtherSet.size(); i++) { LJAGetOtherSchema tLJAGetOtherSchema = new LJAGetOtherSchema(); tLJAGetOtherSchema = tLJAGetOtherSet.get(i + 1); if(tLJAGetOtherSchema.getGetMoney() <= 0) { dealError("LJAGetOther", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "004", mVoucherType+mMatchID+i, "溢交退费金额为非正数"); continue; } LJAGetDB tLJAGetDB = new LJAGetDB(); tLJAGetDB.setActuGetNo(tLJAGetOtherSchema.getActuGetNo()); if(!tLJAGetDB.getInfo()) { dealError("LJAOtherGet", tLJAGetOtherSchema.getActuGetNo(), tLJAGetOtherSchema.getOtherNo(), "002", mVoucherType+mMatchID+i, "LJAGet不存在对应的记录"); continue; } tLJAGetSchema.setSchema(tLJAGetDB.getSchema()); initVar(); mMatchID++; mPolNo = tLJAGetOtherSchema.getOtherNo(); mContNo = tLJAGetOtherSchema.getOtherNo(); mBussNo = tLJAGetOtherSchema.getActuGetNo(); mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; mTransDate = tLJAGetOtherSchema.getConfDate(); mSegment2 = tLJAGetOtherSchema.getManageCom(); mManageCom = tLJAGetOtherSchema.getManageCom().substring(0, 6); tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetOtherSchema.getGetMoney())); if(tLJAGetOtherSchema.getGetMoney() > 0) { if(!this.setPolInfo(mPolNo, "","LJAGetOther", mVoucherType+mMatchID+i)) continue; for(int j = 1; j <= 2; j++) { if(j == 1) { mBillID = "0890"; mAccountCode = "应付业务支出-溢额退费"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; } else { if(tLJAGetSchema.getPayMode() != null) { if(!tLJAGetSchema.getPayMode().equals("") && !tLJAGetSchema.getPayMode().equals("1")) { if(tLJAGetSchema.getPayMode().equals("5")) { mBillID = "0891"; mAccountCode = "应付业务支出-内部转帐"; // 内部转账贷 } else { mBillID = "0892"; mAccountCode = "其他应付款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + mManageCom.substring(2, 4).concat("0000"); } } } mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } mHeadDescription = mInsuredName + "的其它给付退费"; if(isExitInTab(tLJAGetOtherSchema.getActuGetNo(), mPolNo, mBillID)) break; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } // 分公司借记科目 // 取得机构对应的分公司 mManageCom = tLJAGetSchema.getManageCom().substring(0, 4).concat("00"); mSegment2 = mManageCom.concat("00"); mBillID = "0893"; mAccountCode = "其他应收款-资金中转-集中批付"; // 银行存款支 mAccountSubCode = "C" + tLJAGetSchema.getManageCom().substring(2, 6).concat("00"); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t1OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t1OFInterfaceSchema != null) mOFInterfaceSet.add(t1OFInterfaceSchema); dealLITranInfo(); // 分公司贷记科目 mBillID = "0894"; mAccountCode = "银行存款-活期-人民币"; // 银行存款支 mAccountSubCode = "付" + tLJAGetSchema.getBankCode(); mHeadDescription = mAccountCode + mInsuredName; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if(isExitInTab(mBussNo, mPolNo, mBillID)) continue; OFInterfaceSchema t2OFInterfaceSchema = new OFInterfaceSchema(); t2OFInterfaceSchema = (OFInterfaceSchema)entry(); if(t2OFInterfaceSchema != null) mOFInterfaceSet.add(t2OFInterfaceSchema); dealLITranInfo(); } } return true; } //获取保全项目详细科目代码 private boolean getEndorsePayCode(String mActugetno,String mManageCom,String mConfDate,String mFlag) { LJAGetEndorseSet tLJAGetEndorseSet = new LJAGetEndorseSet(); LJAGetEndorseDB tLJAGetEndorseDB = new LJAGetEndorseDB(); tLJAGetEndorseDB.setActuGetNo(mActugetno); tLJAGetEndorseSet = (LJAGetEndorseSet)tLJAGetEndorseDB.query(); for(int k = 1; k <= tLJAGetEndorseSet.size(); k++) { LJAGetEndorseSchema tLJAGetEndorseSchema = new LJAGetEndorseSchema(); tLJAGetEndorseSchema.setSchema(tLJAGetEndorseSet.get(k)); if("CM".equals(tLJAGetEndorseSchema.getFeeFinaType())) // 排除健康委托产品 { dealError("LJAGetEndorse", tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getContNo(), "013", mVoucherType+mMatchID+k, "健康委托产品退费不在该处提取凭证!"); continue; } mPolNo = tLJAGetEndorseSchema.getPolNo(); mContNo = tLJAGetEndorseSchema.getContNo(); if(tLJAGetEndorseSchema.getGetMoney() == 0) { dealError("LJAGetEndorse", mBussNo, mPolNo, "004", mVoucherType+mMatchID+k, "保全实付金额为0"); continue; } //针对保全团单不到个单的特殊处理 if("00000000000000000000".equals(tLJAGetEndorseSchema.getContNo())) { // if(getGrpPol(tLJAGetEndorseSchema.getGrpPolNo(),"008")==null) //zy 2009-07-27 由于保全有些项目针对合同,grppolno记得是20个0,所以调整查询逻辑 if(!getEGrpPol(tLJAGetEndorseSchema.getGrpContNo(),tLJAGetEndorseSchema.getRiskCode(),"008")) return false; } else { if(!this.setPolInfo(mContNo,tLJAGetEndorseSchema.getRiskCode(), "LJAGetEndorse", "008")) return false; } tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetEndorseSchema.getGetMoney()) ); if("TB".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mAccountCode = "应付业务支出-退保金"; mBillID = "0800"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if("P".equals(mFlag)) { mBillID = "0902"; mHeadDescription = "借" + mInsuredName + "业务应付退保金"; } if("G".equals(mFlag)) { mHeadDescription = "其它应付退保" + mInsuredName ; } } else if("DK".equals(tLJAGetEndorseSchema.getFeeFinaType())) // 借款 { double tYHSLMoney = 0.0; LJAGetEndorseDB YLJAGetEndorseDB = new LJAGetEndorseDB(); YLJAGetEndorseDB.setActuGetNo(tLJAGetEndorseSchema.getActuGetNo()); YLJAGetEndorseDB.setPolNo(tLJAGetEndorseSchema.getPolNo()); YLJAGetEndorseDB.setEndorsementNo(tLJAGetEndorseSchema.getEndorsementNo()); YLJAGetEndorseDB.setFeeOperationType("LN"); YLJAGetEndorseDB.setFeeFinaType("RV"); LJAGetEndorseSet YLJAGetEndorseSet = YLJAGetEndorseDB.query(); for (int jj=1;jj<=YLJAGetEndorseSet.size();jj++) { tYHSLMoney = tYHSLMoney + YLJAGetEndorseSet.get(jj).getGetMoney(); } mAccountCode = "应付业务支出-保单贷款"; mBillID = "0801"; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetEndorseSchema.getGetMoney()-tYHSLMoney) ); mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if("P".equals(mFlag)) { mBillID = "0903"; mHeadDescription = "借" + mInsuredName + "业务应付借款"; } if("G".equals(mFlag)) { mHeadDescription = "其它应付借款" + mInsuredName ; } } else if("TF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "YE".equals(tLJAGetEndorseSchema.getFeeFinaType()) ||"DJ".equals(tLJAGetEndorseSchema.getFeeFinaType())) { if("WT".equals(tLJAGetEndorseSchema.getFeeOperationType())) { mBillID = "0895"; mAccountCode = "应付业务支出-犹豫期撤单"; } else if("M".equals(getRiskPeriod(mRiskCode, "008")) || "S".equals(getRiskPeriod(mRiskCode, "008"))) { mBillID = "0896"; mAccountCode = "应付业务支出-短期险退保"; } else { mAccountCode = "应付业务支出-其他"; mBillID = "0802"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = "借" + mInsuredName + "业务其它应付"; } else if ("BF".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0900"; mAccountCode = "保费收入-趸缴"; //实交 mHeadDescription = "收" + mInsuredName + "保费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if("LX".equals(tLJAGetEndorseSchema.getFeeFinaType())) { if("RE".equals(tLJAGetEndorseSchema.getFeeOperationType())) { mBillID = "09010"; mAccountCode = "利息收入-保单复效利息收入"; //利息收入 } else { mBillID = "0901"; mAccountCode = "利息收入-垫交保费"; //利息收入 } mHeadDescription = "收" + mInsuredName + "利息"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if ("HK".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0904"; mAccountCode = "贷款-保户质押贷款-本金"; mHeadDescription = "贷" + mInsuredName + "业务还款"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if ("HD".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0905"; mAccountCode = "垫交保费"; //贷垫交 mHeadDescription = mInsuredName + "垫交"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if ("GB".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0906"; mAccountCode = "其他业务收入-补发保单款"; mHeadDescription = mInsuredName + "工本费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } // else if ("LJTF".equals(tLJAGetEndorseSchema.getFeeFinaType())) //累计生息红利 // { // mBillID = "0906"; // mAccountCode = "应付保单红利-累计生息"; // mEnteredDR = String.valueOf(tmoney); // mEnteredCR = ""; // } else if ("XJTF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "DJTF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "HLTF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "LJTF".equals(tLJAGetEndorseSchema.getFeeFinaType())) //红利 { mBillID = "0840"; mAccountCode = "应付业务支出-红利"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName ; } else if ("YHSL".equals(tLJAGetEndorseSchema.getFeeFinaType())) { tYHSLMoney = Double.parseDouble(tmoney); continue; //该凭证中不处理印花税率 } else if ("YF".equals(tLJAGetEndorseSchema.getFeeFinaType()) || "YFLX".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0812"; mAccountCode = "应付业务支出-年金"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if ("EF".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0810"; mAccountCode = "应付业务支出-满期"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if("BD".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0907"; // mAccountCode = "资产减值损失-客户贷(垫)款"; mAccountCode = "资产减值损失-垫交保费";//zy 2009-06-30 调整科目名称 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName ; } else //以后新增保全财务类型,待以后补充 { dealError("LJAGetEndorse", mBussNo, mPolNo, "005", mVoucherType+mMatchID+k, "未描述的财务类型"+tLJAGetEndorseSchema.getFeeFinaType()+""); continue; } if(isExitInTab(tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getPolNo(), mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } LJAGetDrawDB tLJAGetDrawDB = new LJAGetDrawDB(); tLJAGetDrawDB.setActuGetNo(mActugetno); LJAGetDrawSet tLJAGetDrawSet =(LJAGetDrawSet) tLJAGetDrawDB.query(); for(int j=1;j<=tLJAGetDrawSet.size();j++) { LJAGetDrawSchema tLJAGetDrawSchema = tLJAGetDrawSet.get(j); if(tLJAGetDrawSchema.getGetMoney() == 0) { dealError("tLJAGetDrawSchema", mBussNo, tLJAGetDrawSchema.getPolNo(), "004", mVoucherType+mMatchID+j, "生存领取实付金额为0"); continue; } mPolNo = tLJAGetDrawSchema.getPolNo(); mContNo = tLJAGetDrawSchema.getContNo(); if(!this.setPolInfo(mContNo,tLJAGetDrawSchema.getRiskCode(), "LJAGetDraw", "008")) return false; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetDrawSchema.getGetMoney()) ); if ("YF".equals(tLJAGetDrawSchema.getFeeFinaType()) || "YFLX".equals(tLJAGetDrawSchema.getFeeFinaType())) { mBillID = "0812"; mAccountCode = "应付业务支出-年金"; } if ("EF".equals(tLJAGetDrawSchema.getFeeFinaType())) { mBillID = "0810"; mAccountCode = "应付业务支出-满期"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; if(isExitInTab(mActugetno, tLJAGetDrawSchema.getPolNo(), mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } LJAPayPersonDB tLJAPayPersonDB = new LJAPayPersonDB(); tLJAPayPersonDB.setPayNo(mActugetno); LJAPayPersonSet tLJAPayPersonSet =tLJAPayPersonDB.query(); for(int i=1;i<=tLJAPayPersonSet.size();i++) { LJAPayPersonSchema tLJAPayPersonSchema =tLJAPayPersonSet.get(i); if(!"ZC".equals(tLJAPayPersonSchema.getPayType())) { dealError("LJAPayPerson", tLJAPayPersonSchema.getPayNo(), tLJAPayPersonSchema.getPolNo(), "005", mVoucherType+mMatchID+i,"交费类型为" + tLJAPayPersonSchema.getPayType() + ",不属于凭证提取范围"); continue; } if(tLJAPayPersonSchema.getSumActuPayMoney()==0) { dealError("LJAPayPerson", mBussNo, tLJAPayPersonSchema.getPolNo(), "004", mVoucherType+mMatchID+i, "保费收入金额为0"); continue; } mPolNo = tLJAPayPersonSchema.getPolNo(); mContNo = tLJAPayPersonSchema.getContNo(); if(!this.setPolInfo(mContNo,tLJAPayPersonSchema.getRiskCode(), "LJAPayPerson", "008")) return false; tmoney = new DecimalFormat("0.00").format(new Double(tLJAPayPersonSchema.getSumActuPayMoney())); mBillID = "0918"; mAccountCode = "保费收入-趸缴"; //实交 mHeadDescription = "收" + mInsuredName + "保费"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); if (isExitInTab(mActugetno,tLJAPayPersonSchema.getPolNo(),mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema) entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } return true; } /** * 生存领取涉及的科目 **/ private boolean getDrawCode(String mActugetno) { LJAGetDrawDB tLJAGetDrawDB = new LJAGetDrawDB(); tLJAGetDrawDB.setActuGetNo(mActugetno); LJAGetDrawSet tLJAGetDrawSet =(LJAGetDrawSet) tLJAGetDrawDB.query(); for(int j=1;j<=tLJAGetDrawSet.size();j++) { LJAGetDrawSchema tLJAGetDrawSchema = tLJAGetDrawSet.get(j); if(tLJAGetDrawSchema.getGetMoney() == 0) { dealError("tLJAGetDrawSchema", mBussNo, tLJAGetDrawSchema.getPolNo(), "004", mVoucherType+mMatchID+j, "生存领取实付金额为0"); continue; } mPolNo = tLJAGetDrawSchema.getPolNo(); mContNo = tLJAGetDrawSchema.getContNo(); if(!this.setPolInfo(mContNo,tLJAGetDrawSchema.getRiskCode(), "LJAGetDraw", "008")) return false; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetDrawSchema.getGetMoney()) ); // if ("YF".equals(tLJAGetDrawSchema.getFeeFinaType()) || "YFLX".equals(tLJAGetDrawSchema.getFeeFinaType())) // { // mBillID = "0812"; // mAccountCode = "应付业务支出-年金"; // } if ("EF".equals(tLJAGetDrawSchema.getFeeFinaType())) { mBillID = "0810"; mAccountCode = "应付业务支出-满期"; } else //为了兼容历史数据,将LX纳入年金科目中 { mBillID = "0812"; mAccountCode = "应付业务支出-年金"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; if(isExitInTab(mActugetno, tLJAGetDrawSchema.getPolNo(), mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } LJAGetEndorseSet tLJAGetEndorseSet = new LJAGetEndorseSet(); LJAGetEndorseDB tLJAGetEndorseDB = new LJAGetEndorseDB(); tLJAGetEndorseDB.setActuGetNo(mActugetno); tLJAGetEndorseSet = (LJAGetEndorseSet)tLJAGetEndorseDB.query(); for(int k = 1; k <= tLJAGetEndorseSet.size(); k++) { LJAGetEndorseSchema tLJAGetEndorseSchema = new LJAGetEndorseSchema(); tLJAGetEndorseSchema.setSchema(tLJAGetEndorseSet.get(k)); if("CM".equals(tLJAGetEndorseSchema.getFeeFinaType())) // 排除健康委托产品 { dealError("LJAGetEndorse", tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getContNo(), "013", mVoucherType+mMatchID+k, "健康委托产品退费不在该处提取凭证!"); continue; } mPolNo = tLJAGetEndorseSchema.getPolNo(); mContNo = tLJAGetEndorseSchema.getContNo(); if(tLJAGetEndorseSchema.getGetMoney() == 0) { dealError("LJAGetEndorse", mBussNo, mPolNo, "004", mVoucherType+mMatchID+k, "保全实付金额为0"); continue; } if(!this.setPolInfo(mContNo,tLJAGetEndorseSchema.getRiskCode(), "LJAGetEndorse", "008")) return false; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetEndorseSchema.getGetMoney()) ); if("LX".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0901"; mAccountCode = "利息收入-垫交保费"; //利息收入 mHeadDescription = "收" + mInsuredName + "利息"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if ("HK".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0904"; mAccountCode = "贷款-保户质押贷款-本金"; mHeadDescription = "贷" + mInsuredName + "业务还款"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else if ("HD".equals(tLJAGetEndorseSchema.getFeeFinaType())) { mBillID = "0905"; mAccountCode = "垫交保费"; //贷垫交 mHeadDescription = mInsuredName + "垫交"; mEnteredDR = ""; mEnteredCR = String.valueOf(tmoney); } else //生存金领取涉及清偿贷款 { dealError("LJAGetEndorse", mBussNo, mPolNo, "005", mVoucherType+mMatchID+k, "未描述的财务类型"+tLJAGetEndorseSchema.getFeeFinaType()+""); continue; } if(isExitInTab(tLJAGetEndorseSchema.getActuGetNo(), tLJAGetEndorseSchema.getPolNo(), mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } return true; } /** * 理赔实付及理赔清算涉及的科目定义 **/ private boolean getClaimCode(String mActugetno,String mManageCom,String mConfDate,String mFlag) { LJAGetClaimSet tLJAGetClaimSet = new LJAGetClaimSet(); LJAGetClaimDB tLJAGetClaimDB = new LJAGetClaimDB(); tLJAGetClaimDB.setActuGetNo(mActugetno); tLJAGetClaimSet = (LJAGetClaimSet)tLJAGetClaimDB.query(); for(int k = 1; k <= tLJAGetClaimSet.size(); k++) { LJAGetClaimSchema tLJAGetClaimSchema = new LJAGetClaimSchema(); tLJAGetClaimSchema.setSchema(tLJAGetClaimSet.get(k)); if("CM".equals(tLJAGetClaimSchema.getFeeFinaType())) // 排除健康委托产品 { dealError("LJAGetClaim", tLJAGetClaimSchema.getActuGetNo(), tLJAGetClaimSchema.getContNo(), "013", mVoucherType+mMatchID+k, "健康委托产品退费不在该处提取凭证!"); continue; } mPolNo = tLJAGetClaimSchema.getPolNo(); mContNo = tLJAGetClaimSchema.getContNo(); if(tLJAGetClaimSchema.getPay() == 0) { dealError("LJAGetClaim", mBussNo, mPolNo, "004", mVoucherType+mMatchID+k, "理赔实付金额为0"); continue; } if(!this.setPolInfo(mContNo,tLJAGetClaimSchema.getRiskCode(), "LJAGetClaim", "008")) return false; tmoney = new DecimalFormat("0.00").format(new Double(tLJAGetClaimSchema.getPay()) ); if("SWPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08301"; mAccountCode = "应付业务支出-死亡给付"; // 死亡给付金 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName.trim()+"赔付退费"; } else if("YLPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08302"; mAccountCode = "应付业务支出-医疗给付"; // 医疗给付金 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName.trim()+"赔付退费"; } else if("SCPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08303"; mAccountCode = "应付业务支出-伤残给付"; // 伤残给付金 mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName.trim()+"赔付退费"; } else if("DQPK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08304"; mAccountCode = "应付业务支出-赔款支出"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName.trim()+"赔付退费"; } else if("YCLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mAccountCode = "应付业务支出-理赔"; mBillID = "0830"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName.trim()+"赔付退费"; } else if("TB".equals(tLJAGetClaimSchema.getFeeFinaType())) { mAccountCode = "应付业务支出-退保金"; mBillID = "08100"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; if("P".equals(mFlag)) { mBillID = "08101"; mHeadDescription = "借" + mInsuredName + "业务应付退保金"; } if("G".equals(mFlag)) { mHeadDescription = "其它应付退保" + mInsuredName ; } } else if("TF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "YE".equals(tLJAGetClaimSchema.getFeeFinaType())) { if("M".equals(getRiskPeriod(mRiskCode, "008")) || "S".equals(getRiskPeriod(mRiskCode, "008"))) { mBillID = "08102"; mAccountCode = "应付业务支出-短期险退保"; } else { mAccountCode = "应付业务支出-其他"; mBillID = "08103"; } mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = "借" + mInsuredName + "业务其它应付"; } else if ("BF".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08104"; mAccountCode = "保费收入-趸缴"; //实交 mHeadDescription = "收" + mInsuredName + "保费"; mEnteredDR = ""; // mEnteredCR = String.valueOf(tmoney); //理赔业务记录的是负值 mEnteredCR = String.valueOf( new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); } else if("HDLX".equals(tLJAGetClaimSchema.getFeeFinaType()) || "HKLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08105"; mAccountCode = "利息收入-垫交保费"; //利息收入 mHeadDescription = "收" + mInsuredName + "利息"; mEnteredDR = ""; // mEnteredCR = String.valueOf(tmoney); mEnteredCR = String.valueOf( new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); } else if ("HK".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08106"; mAccountCode = "贷款-保户质押贷款-本金"; mHeadDescription = "贷" + mInsuredName + "业务还款"; mEnteredDR = ""; // mEnteredCR = String.valueOf(tmoney); mEnteredCR = String.valueOf( new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); } else if ("HD".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08107"; mAccountCode = "垫交保费"; //贷垫交 mHeadDescription = mInsuredName + "垫交"; mEnteredDR = ""; // mEnteredCR = String.valueOf(tmoney); mEnteredCR = String.valueOf( new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); } else if ("LJTF".equals(tLJAGetClaimSchema.getFeeFinaType())) //累计生息红利 { mBillID = "08108"; mAccountCode = "应付保单红利-累计生息"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName ; } else if ("XJTF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "DJTF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "HLTF".equals(tLJAGetClaimSchema.getFeeFinaType())) //红利 { mBillID = "08109"; mAccountCode = "应付业务支出-红利"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName ; } else if ("YF".equals(tLJAGetClaimSchema.getFeeFinaType()) || "YFLX".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08110"; mAccountCode = "应付业务支出-年金"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if ("EF".equals(tLJAGetClaimSchema.getFeeFinaType())) { mBillID = "08111"; mAccountCode = "应付业务支出-满期"; mEnteredDR = String.valueOf(tmoney); mEnteredCR = ""; mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else if ("HLRB".equals(tLJAGetClaimSchema.getFeeFinaType())) //红利追回 { mBillID = "08112"; mAccountCode = "保单红利支出-清算收入"; mEnteredDR ="" ; // mEnteredCR = String.valueOf(tmoney); //zy 理赔清算时该数据存放的是负值,所以财务接口取相反值 mEnteredCR = String.valueOf(new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); mHeadDescription = mAccountCode + mInsuredName ; } else if ("YFRB".equals(tLJAGetClaimSchema.getFeeFinaType()))//年金追回 { mBillID = "08113"; mAccountCode = "年金-清算收入"; mEnteredDR = ""; mEnteredCR = String.valueOf( new DecimalFormat("0.00").format(new Double(0-tLJAGetClaimSchema.getPay()))); mHeadDescription = mAccountCode + mInsuredName + "生存领取费"; } else //以后新增保全财务类型,待以后补充 { dealError("LJAGetClaim", mBussNo, mPolNo, "005", mVoucherType+mMatchID+k, "未描述的财务类型"+tLJAGetClaimSchema.getFeeFinaType()+""); continue; } if(isExitInTab(tLJAGetClaimSchema.getActuGetNo(), tLJAGetClaimSchema.getPolNo(), mBillID)) return false; OFInterfaceSchema tOFInterfaceSchema = (OFInterfaceSchema)entry(); if(tOFInterfaceSchema != null) mOFInterfaceSet.add(tOFInterfaceSchema); dealLITranInfo(); } return true; } /***************************************************************************************************************************************************** * 错误处理函数开始 */ private void dealError(String TabName, String RecNo, String PNo, String ErrNo, String BID, String ErrDesc) { LITranErrSchema tLITranErrSchema = new LITranErrSchema(); tLITranErrSchema.setSerialNo(PubFun1.CreateMaxNo("LITranErrNo",20)); tLITranErrSchema.setBatchNo(mBatchNo); tLITranErrSchema.setBussDate(mToday); tLITranErrSchema.setTableName(TabName); tLITranErrSchema.setBussNo(RecNo); tLITranErrSchema.setErrFlag(ErrNo); tLITranErrSchema.setErrDes(ErrDesc); tLITranErrSchema.setPolicyNo(PNo); tLITranErrSchema.setBillId(BID); tLITranErrSchema.setManageCom(cManageCom); tLITranErrSchema.setMakeDate(PubFun.getCurrentDate()); tLITranErrSchema.setMakeTime(PubFun.getCurrentTime()); tLITranErrSchema.setOperator(mGlobalInput.Operator); if((tLITranErrSchema.getBussNo() == null) || (tLITranErrSchema.getPolicyNo() == null)) return; mLITranErrSet.add(tLITranErrSchema); } private void dealLITranInfo() { LITranInfoSchema tLITranInfoSchema = new LITranInfoSchema(); tLITranInfoSchema.setBatchNo(mBatchNo); tLITranInfoSchema.setBillId(mBillID); tLITranInfoSchema.setBussNo(mBussNo); tLITranInfoSchema.setPolNo(mPolNo); tLITranInfoSchema.setMakeDate(PubFun.getCurrentDate()); tLITranInfoSchema.setMakeTime(PubFun.getCurrentTime()); tLITranInfoSchema.setTransDate(this.mToday); tLITranInfoSchema.setVoucherType(this.mTime); tLITranInfoSchema.setManageCom(mManageCom); tLITranInfoSchema.setMatchID(mMatchID); if(!isExistInSet(tLITranInfoSchema)) mLITranInfoSet.add(tLITranInfoSchema); } private OFInterfaceSchema entry() { String tMakeDate = PubFun.getCurrentDate(); String tMakeTime = PubFun.getCurrentTime(); mLineDescription = mManageCom + "||" + mBussNo + "||" + mInsuredName + "||" + mAttribute5 + "||" + mBillID; // 公司段说明||收付单据号||保户人姓名||类别明细||BillID String[] tVerSubject = { mAccountSubCode, mManageCom, mRiskCode, mSaleChnl }; try { tVerSubject = vertifySubject(mAccountCode); // 校验科目代码 String tRecordID = PubFun1.CreateMaxNo("OTOF", "RECORD"); OFInterfaceSchema rOFInterfaceSchema = new OFInterfaceSchema(); rOFInterfaceSchema.setRecordID(tRecordID); // 记录行ID rOFInterfaceSchema.setReversedStatus(mReversedStatus); // 冲消状态 rOFInterfaceSchema.setOrigRowID(mOrigRowID); // 被冲消的行 rOFInterfaceSchema.setReversedRowID(mReversedRowID); // 冲消生成的行 rOFInterfaceSchema.setCurrencyCode(mCurrencyCode); // 币别 rOFInterfaceSchema.setVoucherType(mVoucherType); // 凭证类别 rOFInterfaceSchema.setManageCom(tVerSubject[1]); // 核算单位代码 rOFInterfaceSchema.setSegment2(mSegment2); // 成本中心 rOFInterfaceSchema.setAccountCode(mAccountCode); // 科目代码 rOFInterfaceSchema.setAccountSubCode(tVerSubject[0]); // 科目明细代码 rOFInterfaceSchema.setSaleChnl(tVerSubject[3]); // 销售渠道 rOFInterfaceSchema.setRiskCode(tVerSubject[2]); // 保险产品代码 rOFInterfaceSchema.setSegment7("NA"); // 备用段1 rOFInterfaceSchema.setSegment8("NA"); // 备用段2 rOFInterfaceSchema.setTransDate(mTransDate); // 事务日期 rOFInterfaceSchema.setAccountingDate(mAccountingDate); // 记帐日期 rOFInterfaceSchema.setMakeDate(tMakeDate); // 创建日期 rOFInterfaceSchema.setMakeTime(tMakeTime); // 创建时间 rOFInterfaceSchema.setModifyDate(tMakeDate); // 最后一次修改日期 rOFInterfaceSchema.setModifyTime(tMakeTime); // 最后一次修改时间 rOFInterfaceSchema.setMatchID(mMatchID); // 借贷关系key值 rOFInterfaceSchema.setBatchNo(mBatchNo); // 批次号 rOFInterfaceSchema.setEnteredDR(mEnteredDR); // 事务借计金额 rOFInterfaceSchema.setEnteredCR(mEnteredCR); // 事务贷计金额 rOFInterfaceSchema.setHeadDescription(mHeadDescription); // 日记帐摘要 rOFInterfaceSchema.setLineDescription(mLineDescription); // 行记帐摘要 rOFInterfaceSchema.setCurrencyConversionDate(""); // 汇率日期 rOFInterfaceSchema.setCurrencyConversionRate(""); // 汇率 rOFInterfaceSchema.setAccountedDR(""); // 记帐借计金额 rOFInterfaceSchema.setAccountedCR(""); // 记帐贷计金额 rOFInterfaceSchema.setAttribute1(""); // 空闲属性1 rOFInterfaceSchema.setPolNo(mContNo); // 保单号 rOFInterfaceSchema.setInsuredName(mInsuredName); // 被保险人姓名 rOFInterfaceSchema.setBussNo(mBussNo); // 收付款单据号 rOFInterfaceSchema.setAttribute5(mAttribute5); // 行为明细类别 if("02".equals(mSaleChnl)) //个险 { rOFInterfaceSchema.setAttribute6(mAgentName); //代理人名称 } if("03".equals(mSaleChnl)) //银代 { rOFInterfaceSchema.setAttribute6(mAgentCom); //焦谨让修改为代理机构(原来是银行编码) } if("7".equals(mBranchType)) //中介 { rOFInterfaceSchema.setAttribute6(mAgentCom); //代理机构 } rOFInterfaceSchema.setAttribute7("NA"); // 空闲属性7 rOFInterfaceSchema.setAttribute8("NA"); // 空闲属性8 if(mAccountCode.startsWith("保费收入")) { rOFInterfaceSchema.setAttribute9(mEndYear); //保险期间及单位 } rOFInterfaceSchema.setVoucherID("-1"); // 总帐凭证号回写 rOFInterfaceSchema.setVoucherFlag("NA"); // 回写标志 rOFInterfaceSchema.setVoucherDate(""); // 回写导入日期 return rOFInterfaceSchema; } catch(Exception ex) { logger.debug("Exception in entry " + ex.toString()); dealError("OFInterface", mBussNo, mPolNo, "012", String.valueOf(mMatchID), "接口表赋值错误"); CError.buildErr(this, new I18nMessage( ex.toString(), null)); return null; } } /** * 校验科目约束性 */ private String[] vertifySubject(String cSubjectName) { String[] rSubject = { mAccountSubCode, mManageCom, mRiskCode, mSaleChnl }; LIVertifySchema tLIVertifySchema = new LIVertifySchema(); for(int i = 1 ; i <= mLIVertifySet.size() ; i ++) { tLIVertifySchema = (LIVertifySchema)mLIVertifySet.get(i); if(tLIVertifySchema.getSubjectName().equals(cSubjectName)) { if(tLIVertifySchema.getSegAccountSub().equals("N")) rSubject[0] = "NA"; if(tLIVertifySchema.getSegComCode().equals("N")) rSubject[1] = "NA"; if(tLIVertifySchema.getSegRiskCode().equals("N")) rSubject[2] = "NA"; if(tLIVertifySchema.getSegSaleChnl().equals("N")) rSubject[3] = "NA"; break; } } return rSubject; } // 预留出对日志表的操作 private boolean isExistInSet(LITranInfoSchema tLITranInfoSchema) { if (!mLITranInfoSetHashtable .contains((tLITranInfoSchema.getBillId().trim() + ":" + tLITranInfoSchema.getBussNo().trim() + ":" + tLITranInfoSchema .getPolNo().trim()))) { mLITranInfoSetHashtable .add((tLITranInfoSchema.getBillId().trim() + ":" + tLITranInfoSchema.getBussNo().trim() + ":" + tLITranInfoSchema .getPolNo().trim())); return false; } return true; // for(int i = 1; i <= mLITranInfoSet.size(); i++) // { // LITranInfoSchema ttLITranInfoSchema = new LITranInfoSchema(); // ttLITranInfoSchema.setSchema(mLITranInfoSet.get(i)); // if((ttLITranInfoSchema.getBillId().trim().equals(tLITranInfoSchema.getBillId().trim())) // && (ttLITranInfoSchema.getBussNo().trim().equals(tLITranInfoSchema.getBussNo().trim())) // && (ttLITranInfoSchema.getPolNo().trim().equals(tLITranInfoSchema.getPolNo().trim()))) // { // return true; // } // } // return false; } private boolean isExitInTab(String tBussNo, String tPolNo, String tBillId) { if(tBillId == null || tBillId.equals("")) { dealError("LITranInfo", tBussNo, tPolNo, "010", "001", "科目代码为空"); return true; } if(mContNo==null || "".equals(mContNo) || mPolNo==null || "".equals(mPolNo) ) { dealError("LITranInfo", tBussNo, tBussNo, "010", "001", "保单号或者合同号为空"); return true; } LITranInfoDB tLITranInfoDB = new LITranInfoDB(); tLITranInfoDB.setBussNo(tBussNo); tLITranInfoDB.setBillId(tBillId); tLITranInfoDB.setPolNo(tPolNo); if(tLITranInfoDB.getCount() > 0) { dealError("LITranInfo", tBussNo, tPolNo, "011", "001", "该保单已经提取过相应的凭证"); return true; } return false; } // 预留出对接口流转表的操作 private void prepareOutputData() { MMap mp = new MMap(); mp.put(mLITranInfoSet, MMap.Action.INSERT); mp.put(mLITranErrSet, MMap.Action.INSERT); mp.put(mOFInterfaceSet, MMap.Action.INSERT); mp.put(tFinaLogSchema, MMap.Action.UPDATE); mInputData.clear(); mInputData.add(mp); } private boolean setPolInfo(String tPolNo, String tRiskCode,String tTableName, String tId) { SSRS mSSRS = new SSRS(); //针对险种为000000的处理 if(!( tRiskCode==null||tRiskCode.equals("") || "000000".equals(tRiskCode))) { mSSRS = otoFBLSQL.getByRiskCodeAndPolNo(tRiskCode,tPolNo); } else { mSSRS = otoFBLSQL.getByPolNo(tPolNo); } SSRS tSSRS = new SSRS(); if(mSSRS.getMaxRow() <= 0) { tSSRS = lcGrpPolSQL.getRiskCodeAndSaleChnlAndGrpNameAndPayIntvAndAgentCodeByGrpPolNo(tPolNo); if(tSSRS == null || tSSRS.getMaxRow() <= 0) { SSRS gSSRS = new SSRS(); gSSRS = lcGrpPolSQL.getRiskCodeAndSaleChnlAndGrpNameAndPayIntvAndAgentCodeByGrpPolNo(tPolNo); if(gSSRS == null || gSSRS.getMaxRow() <= 0) { dealError(tTableName, mBussNo, tPolNo, "001", tId, "lcgrppol表对应的保单信息不存在"); return false; } else { mRiskCode = gSSRS.GetText(1, 1); mSaleChnl =tranSaleChnl(gSSRS.GetText(1, 2),gSSRS.GetText(1, 5),""); mInsuredName = gSSRS.GetText(1, 3).trim(); mPayIntv = Integer.parseInt(gSSRS.GetText(1, 4)); if(mInsuredName.length() > 20) mInsuredName = mInsuredName.substring(0, 20); } } else { mRiskCode = tSSRS.GetText(1, 1); // mSaleChnl = mSSRS.GetText(1, 2); mSaleChnl =tranSaleChnl(tSSRS.GetText(1, 2),tSSRS.GetText(1, 5),""); mInsuredName = tSSRS.GetText(1, 3).trim(); mPayIntv = Integer.parseInt(tSSRS.GetText(1, 4)); if(mInsuredName.length() > 20) mInsuredName = mInsuredName.substring(0, 20); } } else { mRiskCode = mSSRS.GetText(1, 1); // mSaleChnl = mSSRS.GetText(1, 2); mSaleChnl = tranSaleChnl(mSSRS.GetText(1, 2),mSSRS.GetText(1, 8),mSSRS.GetText(1, 7)); mInsuredName = mSSRS.GetText(1, 3); mPayIntv = Integer.parseInt(mSSRS.GetText(1, 5)); mEndYear = mSSRS.GetText(1, 9) + mSSRS.GetText(1, 10); mBranchType = mSSRS.GetText(1, 11); mAgentName = mSSRS.GetText(1, 12); mBankCode = mSSRS.GetText(1, 13); mAgentCom = mSSRS.GetText(1, 14); } return true; } private LCPolSchema getPol(String tPolNo, String tId) { LCPolSchema tLCPolBL = new LCPolSchema(); tLCPolBL.setPolNo(tPolNo); if(!LCPolBL.getInfo(tLCPolBL)) { dealError("LCPOL", mBussNo, tPolNo, "001", tId, "保单号为" + tPolNo + "对应保单信息不存在"); return null; } mRiskCode = tLCPolBL.getRiskCode(); // mSaleChnl = tLCPolBL.getSaleChnl(); mSaleChnl = tranSaleChnl(tLCPolBL.getSaleChnl(), tLCPolBL.getAgentCode(), tLCPolBL.getContNo()); mInsuredName = tLCPolBL.getInsuredName(); mEndYear = tLCPolBL.getPayEndYear()+tLCPolBL.getPayEndYearFlag(); SSRS aSsrs = laAgentSQL.getBranchTypeAndNameByAgentCode(tLCPolBL.getAgentCode()); mBranchType = aSsrs.GetText(1, 1); mAgentName = aSsrs.GetText(1, 2); SSRS bSsrs = lcContSQL.getBankCodeByContNo(tLCPolBL.getContNo()); mBankCode = bSsrs.GetText(1, 1); mAgentCom = tLCPolBL.getAgentCom(); return tLCPolBL; } private LCGrpPolSchema getGrpPol(String tPolNo, String tId) { LCGrpPolDB tLCGrpPolBL = new LCGrpPolDB(); tLCGrpPolBL.setGrpPolNo(tPolNo); if(!tLCGrpPolBL.getInfo()) { dealError("LCGRPPOL", mBussNo, tPolNo, "001", tId, "保单号为" + tPolNo + "对应保单信息不存在"); return null; } mRiskCode = tLCGrpPolBL.getRiskCode(); // mSaleChnl = tLCGrpPolBL.getSaleChnl(); mSaleChnl = tranSaleChnl(tLCGrpPolBL.getSaleChnl(), tLCGrpPolBL.getAgentCode(), tLCGrpPolBL.getGrpContNo()); mInsuredName = tLCGrpPolBL.getGrpName(); return tLCGrpPolBL; } /** * 由于保全有些项目针对合同,所以相应的grppolno就为20个0,所以针对这种情况则查询相应的合同下的任一条保单信息 * * **/ private boolean getEGrpPol(String tGrpContno,String tRiskcode, String tId) { SSRS tSSRS = new SSRS(); if("".equals(tRiskcode) || tRiskcode==null || "000000".equals(tRiskcode)) { tSSRS = lcGrpPolSQL.getRiskCodeAndSaleChnlAndGrpNameAndGrpPolNoAndAgentCodeByGrpContNo(tGrpContno); } else{ tSSRS = lcGrpPolSQL.getRiskCodeAndSaleChnlAndGrpNameAndGrpPolNoAndAgentCodeByGrpContNoAndRiskCode(tGrpContno,tRiskcode); } if(tSSRS == null || tSSRS.getMaxRow() <= 0) { dealError("lcgrppol", mBussNo, tGrpContno, "001", tId, "lcgrppol表对应的保单信息不存在"); return false; } else { mContNo = tGrpContno; mPolNo = tSSRS.GetText(1,5); mRiskCode = tSSRS.GetText(1, 1); mSaleChnl =tranSaleChnl(tSSRS.GetText(1, 2),tSSRS.GetText(1, 4),tGrpContno); mInsuredName = tSSRS.GetText(1, 3).trim(); if(mInsuredName.length() > 20) mInsuredName = mInsuredName.substring(0, 20); } return true; } private void initVar() { mReversedStatus = "0"; // 冲消状态 mOrigRowID = ""; // 被冲消的行 mReversedRowID = ""; // 冲消生成的行 mCurrencyCode = "CNY"; // 币别 mVoucherType = String.valueOf(mTime); // 凭证类别 mManageCom = "NA"; // 核算单位代码 mSegment2 = "NA"; // 成本中心 mAccountCode = "NA"; // 科目代码 mAccountSubCode = "NA"; // 科目明细代码 mSaleChnl = "NA"; // 销售渠道 mRiskCode = "NA"; // 保险产品代码 mTransDate = ""; // 事务日期 mAccountingDate = (mInputDate.equals("")) ? mToday : mInputDate; // 记帐日期 mEnteredDR = ""; // 事务借计金额 mEnteredCR = ""; // 事务贷计金额 mHeadDescription = "NA"; // 日记帐摘要 mLineDescription = "NA"; // 行记帐摘要 mPolNo = ""; // 保单号 mInsuredName = ""; // 被保险人姓名 mBussNo = ""; // 收付款单据号 mAttribute5 = "核心业务系统"; // 行为明细类别-来源 mAttribute6 = "NA"; } private String getRiskPeriod(String riskcode, String tID) { LMRiskAppSQL lmRiskAppSQL = SQLProxy.getInstance(LMRiskAppSQL.class); SSRS tssrs = lmRiskAppSQL.getRiskPeriodByRiskCode(riskcode); if( tssrs.getMaxRow() <= 0) { dealError("lmriskapp", mBussNo, mPolNo, "014", tID, "获取险种的长短期类型失败!"); return ""; } String mRiskPeriod = tssrs.GetText(1, 1).trim(); return mRiskPeriod; } /** * 核心系统渠道的升级: * @param salechnl * 个险、团单、银代、中介、续收、联办、收展 */ private String tranSaleChnl(String mSaleChnl,String mAgentCode,String mContno) { String rSaleChnl=mSaleChnl; SSRS rSsrs = laAgentSQL.getBranchTypeAndNameByAgentCode(mAgentCode); //团险的拆分 if("01".equals(rSaleChnl)) { if(rSsrs.getMaxRow()>0) { if("2".equals(rSsrs.GetText(1, 1)) && ("LB".equals(rSsrs.GetText(1, 2).substring(0,2)))) { rSaleChnl="07"; //联办 } } } //专业的拆分 if("05".equals(rSaleChnl) || "06".equals(rSaleChnl) || "08".equals(rSaleChnl) || "09".equals(rSaleChnl)) { SSRS cSSrs = lcContSQL.getAgentComByContNoAndGrpContNo(mContNo,"00000000000000000000"); if(cSSrs.getMaxRow()>0) { if((cSSrs.GetText(1, 1).trim().length()==13 || cSSrs.GetText(1, 1).trim().length()==16) &&("86".equals(cSSrs.GetText(1, 1).trim().substring(0,2))) && ("8".equals(cSSrs.GetText(1, 1).trim().substring(8,9)))) { rSaleChnl="07"; //联办 } } } return rSaleChnl; } // private String getYBankCode(String bankcode, String managecom) // { // String bSql = "select code from ldcode where codetype='bank' and code like '01%' and trim(comcode)=substr(" // + managecom + ",0,4) and rownum=1"; // ExeSQL tExeSQL = new ExeSQL(); // String mBankCode = tExeSQL.getOneValue(bSql); // return mBankCode; // // } private String getYBTPayMode(String tPayNo) { if(tPayNo == null || tPayNo.equals("")) return ""; LJTempFeeClassSQL ljTempFeeClassSQL = SQLProxy.getInstance(LJTempFeeClassSQL.class); String tPayMode = ljTempFeeClassSQL.findPayModeByOtherNo(tPayNo); if(tPayMode==null || "".equals(tPayMode)) tPayMode="A"; return tPayMode; } }