You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
566 lines
27 KiB
566 lines
27 KiB
package com.sinosoft.lis.customer;
|
|
|
|
import com.sinosoft.lis.db.LCContDB;
|
|
import com.sinosoft.lis.db.LCPolDB;
|
|
import com.sinosoft.lis.db.LPEdorItemDB;
|
|
import com.sinosoft.lis.db.LPGrpEdorItemDB;
|
|
import com.sinosoft.lis.i18n.I18nMessage;
|
|
import com.sinosoft.lis.pubfun.MMap;
|
|
import com.sinosoft.lis.pubfun.PubFun;
|
|
import com.sinosoft.lis.pubfun.PubFun1;
|
|
import com.sinosoft.lis.schema.FICustomerAccSchema;
|
|
import com.sinosoft.lis.schema.FICustomerAccTraceSchema;
|
|
import com.sinosoft.lis.schema.LCContSchema;
|
|
import com.sinosoft.lis.schema.LCPolSchema;
|
|
import com.sinosoft.lis.schema.LJTempFeeClassSchema;
|
|
import com.sinosoft.lis.schema.LJTempFeeSchema;
|
|
import com.sinosoft.lis.sql.repository.FICustomerAccTraceSQL;
|
|
import com.sinosoft.lis.sql.repository.LCPolSQL;
|
|
import com.sinosoft.lis.vschema.FICustomerAccSet;
|
|
import com.sinosoft.lis.vschema.FICustomerAccTraceSet;
|
|
import com.sinosoft.lis.vschema.LCContSet;
|
|
import com.sinosoft.lis.vschema.LCPolSet;
|
|
import com.sinosoft.lis.vschema.LJTempFeeClassSet;
|
|
import com.sinosoft.lis.vschema.LJTempFeeSet;
|
|
import com.sinosoft.lis.vschema.LPEdorItemSet;
|
|
import com.sinosoft.lis.vschema.LPGrpEdorItemSet;
|
|
import com.sinosoft.persistence.SQLProxy;
|
|
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.util.ArrayList;
|
|
import java.util.Arrays;
|
|
|
|
public class FICustomerRN extends FICustomer
|
|
{
|
|
private static final Logger logger = LoggerFactory.getLogger(FICustomerRN.class);
|
|
|
|
|
|
private TransferData mTransferData = new TransferData();
|
|
|
|
private LJTempFeeSet mLJTempFeeSet = new LJTempFeeSet();
|
|
|
|
private LJTempFeeClassSet mLJTempFeeClassSet = new LJTempFeeClassSet();
|
|
|
|
private String mOperationType = "";
|
|
|
|
private String mOperator = "";
|
|
|
|
private double mSumPrem =0.0;
|
|
|
|
private double mSumDuePayMoney = 0.0;
|
|
|
|
private String mCurrency = "";
|
|
private String tempNo = "";
|
|
|
|
public boolean getInputData(VData cInputData)
|
|
{
|
|
this.mTransferData = cInputData.get(TransferData.class, 0);
|
|
this.mLJTempFeeSet.set(cInputData.get(LJTempFeeSet.class, 0));
|
|
this.mLJTempFeeClassSet.set(cInputData.get(LJTempFeeClassSet.class, 0));
|
|
this.mOperationType = String.valueOf(mTransferData.getValueByName("OperationType"));
|
|
this.mOperator= String.valueOf(mTransferData.getValueByName("Operator"));
|
|
this.mSumDuePayMoney = (Double) ((mTransferData.getValueByName("SumDuePayMoney")));
|
|
return true;
|
|
}
|
|
|
|
protected boolean dealData()
|
|
{
|
|
try
|
|
{
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
//需要获取币种
|
|
this.mCurrency = (String)mTransferData.getValueByName("Currency");
|
|
double sumMoney = 0.0;
|
|
String aAccType = "0";// 普通账户
|
|
String aOperationNo = "";
|
|
String aOperationType = mOperationType;
|
|
// 根据不同的业务类型获取合同号
|
|
// 新单交费
|
|
if ("1".equals(mLJTempFeeSet.get(1).getTempFeeType()))
|
|
{
|
|
LCContDB tLCContDB = new LCContDB();
|
|
tLCContDB.setPrtNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
LCContSet tLCContSet = tLCContDB.query();
|
|
LCContSchema tLCContSchema = tLCContSet.get(1);
|
|
if (tLCContSet == null || tLCContSet.size() < 1)
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
aOperationNo = tLCContSchema.getContNo();
|
|
aOperationType = "1";
|
|
}
|
|
}
|
|
// 续期催收交费//预交续期保费
|
|
else if ("2".equals(mLJTempFeeSet.get(1).getTempFeeType())
|
|
|| "3".equals(mLJTempFeeSet.get(1).getTempFeeType()))
|
|
{
|
|
LCContDB tLCContDB = new LCContDB();
|
|
tLCContDB.setContNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
LCContSet tLCContSet = tLCContDB.query();
|
|
LCContSchema tLCContSchema = tLCContSet.get(1);
|
|
if (tLCContSet == null || tLCContSet.size() < 1)
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
aOperationNo = tLCContSchema.getContNo();
|
|
aOperationType = "2";
|
|
}
|
|
}
|
|
// 保全交费
|
|
else if ("4".equals(mLJTempFeeSet.get(1).getTempFeeType()))
|
|
{
|
|
LPEdorItemDB tLPEdorItemDB = new LPEdorItemDB();
|
|
tLPEdorItemDB.setEdorAcceptNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
LPEdorItemSet tLPEdorItemSet = tLPEdorItemDB.query();
|
|
//LPEdorItemSchema tLPEdorItemSchema = tLPEdorItemSet.get(1);
|
|
|
|
LPGrpEdorItemSet tLPGrpEdorItemSet=new LPGrpEdorItemSet();
|
|
LPGrpEdorItemDB tLPGrpEdorItemDB= new LPGrpEdorItemDB();
|
|
tLPGrpEdorItemDB.setEdorAcceptNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
tLPGrpEdorItemSet=tLPGrpEdorItemDB.query();
|
|
|
|
if ((tLPEdorItemSet == null || tLPEdorItemSet.size() < 1)&&(tLPGrpEdorItemSet == null || tLPGrpEdorItemSet.size() < 1))
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
else
|
|
{
|
|
aOperationNo = mLJTempFeeSet.get(1).getOtherNo();
|
|
aOperationType = "3";
|
|
}
|
|
|
|
}
|
|
// 应付转入或者溢交的时候,取mOperationType
|
|
else if ("7".equals(mLJTempFeeSet.get(1).getTempFeeType())
|
|
|| "8".equals(mLJTempFeeSet.get(1).getTempFeeType()))
|
|
{
|
|
aOperationNo = mLJTempFeeSet.get(1).getOtherNo();
|
|
aOperationType = mOperationType;
|
|
}
|
|
// 理赔收费
|
|
// if ("5".equals(mLJTempFeeSet.get(1).getTempFeeType()))
|
|
// {}
|
|
else
|
|
{
|
|
//理赔是4
|
|
aOperationNo = mLJTempFeeSet.get(1).getOtherNo();
|
|
aOperationType = "4";
|
|
}
|
|
|
|
for (int i = 1; i <= mLJTempFeeSet.size(); i++)
|
|
{
|
|
if(mLJTempFeeSet.get(i).getCurrency().equals(this.mCurrency))
|
|
{
|
|
sumMoney += mLJTempFeeSet.get(i).getPayMoney();
|
|
}
|
|
}
|
|
|
|
//TODO add by wangguowei 2018年5月7日 增加对余额的判断,如果余额大于应缴保费也会生成预交续期保费
|
|
double tYET=0.0;
|
|
FICustomer tFICustomer = new FICustomerRN();
|
|
tYET = tFICustomer.queryAccount(mLJTempFeeSet.get(1).getOtherNo(), "2",mLJTempFeeSet.get(1).getCurrency());
|
|
|
|
if(mOperationType.equals("2")&& tYET>=sumMoney
|
|
)
|
|
{
|
|
// //余额使用,需要模拟生成暂收据
|
|
// LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema();
|
|
// tLJTempFeeSchema = (LJTempFeeSchema) mLJTempFeeSet.get(1).clone();
|
|
// String tLimit = PubFun.getNoLimit(tLJTempFeeSchema.getManageCom());
|
|
// tempNo = PubFun1.CreateMaxNo("GETNOTICENO", tLimit);
|
|
// tLJTempFeeSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
// tLJTempFeeSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
// String tempfeetype = "10";//余额使用
|
|
//
|
|
// double tYEShouleUseMoney = (Double)this.mTransferData.getValueByName("YEShouleUseMoney");
|
|
// String tGetNoticeNo = (String)this.mTransferData.getValueByName("GetNoticeNo");
|
|
//
|
|
// tLJTempFeeSchema.setRiskCode("MMP");//增加险种
|
|
// tLJTempFeeSchema.setTempFeeType(tempfeetype);// 交费余额
|
|
// tLJTempFeeSchema.setPayMoney(PubFun.round(tYEShouleUseMoney,2));
|
|
// tLJTempFeeSchema.setOtherNoType("0");// 交费对应的个单合同号
|
|
// tLJTempFeeSchema.setOtherNo(aOperationNo);
|
|
// tLJTempFeeSchema.setConfDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setConfFlag("1");
|
|
// tLJTempFeeSchema.setConfMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setConfMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeSchema.setCurrency(mCurrency);
|
|
// tLJTempFeeSchema.setOperator("001");
|
|
// tLJTempFeeSchema.setMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeSchema.setModifyDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setModifyTime(PubFun.getCurrentTime());
|
|
//
|
|
//
|
|
// super.mMap.put(tLJTempFeeSchema, MMap.Action.INSERT);
|
|
// // 余额重新生成ljtempfeeclass
|
|
// LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema();
|
|
//// tLJTempFeeClassSchema = (LJTempFeeClassSchema) mLJTempFeeClassSet.get(1).clone();
|
|
// tLJTempFeeClassSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
// tLJTempFeeClassSchema.setPayMoney(tYEShouleUseMoney);
|
|
// tLJTempFeeClassSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setOtherNoType(mOperationType);// 重新指定用途
|
|
// tLJTempFeeClassSchema.setConfFlag("1");
|
|
// tLJTempFeeClassSchema.setConfDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setConfMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setConfMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeClassSchema.setPayMoney(PubFun.round(tYEShouleUseMoney,2));
|
|
// tLJTempFeeClassSchema.setOtherNo(tGetNoticeNo); //其他号码记录缴费号
|
|
// tLJTempFeeClassSchema.setPayMode("M");
|
|
// tLJTempFeeClassSchema.setCurrency(mCurrency);
|
|
// tLJTempFeeClassSchema.setOperator("001");
|
|
// tLJTempFeeClassSchema.setMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeClassSchema.setModifyDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setModifyTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeClassSchema.setChequeNo(tempNo);
|
|
// super.mMap.put(tLJTempFeeClassSchema, MMap.Action.INSERT);
|
|
|
|
//add by zhangyf 2017-09-26 按照续期银行反盘格式生成咱缴费
|
|
double mPrem = 0.0;
|
|
|
|
String tCurrentDate=PubFun.getCurrentDate();
|
|
String tCurrentTime=PubFun.getCurrentTime();
|
|
String tPayMode="4";
|
|
LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema();
|
|
LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema();
|
|
LCContDB tLCContDB = new LCContDB();
|
|
tLCContDB.setContNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
LCContSet tLCContSet = tLCContDB.query();
|
|
LCContSchema tLCContSchema = tLCContSet.get(1);
|
|
LCPolDB tLCPolDB=new LCPolDB();
|
|
LCPolSet tLCPolSet=new LCPolSet();
|
|
LCPolSchema tLCPolSchema = new LCPolSchema();
|
|
tLCPolDB.setContNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
tLCPolDB.setAppFlag("1");
|
|
tLCPolSet.set(tLCPolDB.query());
|
|
if(tLCPolSet.size()<=0){
|
|
return false;
|
|
}
|
|
String tLimit = PubFun.getNoLimit(tLCPolSet.get(1).getManageCom()); // 产生通知书号即暂交费收据号
|
|
String tTempFeeNo = PubFun1.CreateMaxNo("GETNOTICENO", tLimit); //tempfeeno
|
|
String serNo = PubFun1.CreateMaxNo("SERIALNO",tLimit); // 流水号
|
|
String tPayno = tTempFeeNo;
|
|
// for (int i = 1; i <= tLCPolSet.size(); i++) {
|
|
// tLCPolSchema = new LCPolSchema();
|
|
// tLCPolSchema = tLCPolSet.get(i);
|
|
// tLJTempFeeSchema = new LJTempFeeSchema();
|
|
// tLJTempFeeSchema.setOtherNo(tLCPolSchema.getContNo()); // 投保单号
|
|
// tLJTempFeeSchema.setTempFeeType("2");
|
|
// tLJTempFeeSchema.setOtherNoType("0");
|
|
// tLJTempFeeSchema.setRiskCode(tLCPolSchema.getRiskCode());
|
|
// tLJTempFeeSchema.setPayIntv(tLCPolSchema.getPayIntv());
|
|
// tLJTempFeeSchema.setPayYears(tLCPolSchema.getPayYears());
|
|
// tLJTempFeeSchema.setPayMoney(tLCPolSchema.getPrem());
|
|
// tLJTempFeeSchema.setPayDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setSaleChnl(tLCPolSchema.getSaleChnl());
|
|
// tLJTempFeeSchema.setManageCom(tLCPolSchema.getManageCom());
|
|
// tLJTempFeeSchema.setPolicyCom(tLCPolSchema.getManageCom());
|
|
// tLJTempFeeSchema.setAPPntName(tLCPolSchema.getAppntName());
|
|
// tLJTempFeeSchema.setAgentCom(tLCPolSchema.getAgentCom());
|
|
// tLJTempFeeSchema.setAgentGroup(tLCPolSchema.getAgentGroup());
|
|
// tLJTempFeeSchema.setAgentCode(tLCPolSchema.getAgentCode());
|
|
// tLJTempFeeSchema.setConfFlag("1");
|
|
// tLJTempFeeSchema.setOperator(mOperator);
|
|
// tLJTempFeeSchema.setContCom(tLCPolSchema.getManageCom());
|
|
// tLJTempFeeSchema.setTempFeeNo(tTempFeeNo);
|
|
// tLJTempFeeSchema.setMakeDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setMakeTime(tCurrentTime);
|
|
// tLJTempFeeSchema.setModifyDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setModifyTime(tCurrentTime);
|
|
// tLJTempFeeSchema.setEnterAccDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setConfMakeDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setConfMakeTime(tCurrentTime);
|
|
// tLJTempFeeSchema.setConfDate(tCurrentDate);
|
|
// tLJTempFeeSchema.setSerialNo(serNo);
|
|
// tLJTempFeeSchema.setCurrency("01");
|
|
// mSumPrem += tLCPolSchema.getPrem();
|
|
// super.mMap.put(tLJTempFeeSchema, MMap.Action.INSERT);
|
|
// }
|
|
//add by lyx 查询保单下有效险种数
|
|
LCPolSQL lcPolSQL = SQLProxy.getInstance(LCPolSQL.class);
|
|
SSRS nSSRS = new SSRS();
|
|
nSSRS = lcPolSQL.getDistinctRiskCodeByContNoAndAppFlag(mLJTempFeeSet.get(1).getOtherNo(),"1");
|
|
if(nSSRS.getMaxRow()<=0){
|
|
return false;
|
|
}
|
|
String mRiskcode = "";
|
|
double mRiskPrem = 0.00;
|
|
for (int k = 1; k <= nSSRS.getMaxRow(); k++) {
|
|
mRiskcode = nSSRS.GetText(k, 1);
|
|
mRiskPrem= 0.00;
|
|
LCPolDB tempLCPolDB=new LCPolDB();
|
|
LCPolSet tempLCPolSet=new LCPolSet();
|
|
LCPolSchema tempLCPolSchema = new LCPolSchema();
|
|
tempLCPolDB.setContNo(mLJTempFeeSet.get(1).getOtherNo());
|
|
tempLCPolDB.setAppFlag("1");
|
|
tempLCPolDB.setRiskCode(mRiskcode);
|
|
tempLCPolSet.set(tempLCPolDB.query());
|
|
for(int j = 1; j <= tempLCPolSet.size(); j++){
|
|
tempLCPolSchema = new LCPolSchema();
|
|
tempLCPolSchema = tempLCPolSet.get(j);
|
|
mSumPrem += tempLCPolSchema.getPrem();
|
|
mRiskPrem+= tempLCPolSchema.getPrem();
|
|
}
|
|
tempLCPolSchema = tempLCPolSet.get(1);
|
|
tLJTempFeeSchema = new LJTempFeeSchema();
|
|
tLJTempFeeSchema.setOtherNo(tempLCPolSchema.getContNo()); // 投保单号
|
|
tLJTempFeeSchema.setTempFeeType("2");
|
|
tLJTempFeeSchema.setOtherNoType("0");
|
|
tLJTempFeeSchema.setRiskCode(tempLCPolSchema.getRiskCode());
|
|
tLJTempFeeSchema.setPayIntv(tempLCPolSchema.getPayIntv());
|
|
tLJTempFeeSchema.setPayYears(tempLCPolSchema.getPayYears());
|
|
tLJTempFeeSchema.setPayMoney(mRiskPrem);
|
|
tLJTempFeeSchema.setPayDate(tCurrentDate);
|
|
tLJTempFeeSchema.setSaleChnl(tempLCPolSchema.getSaleChnl());
|
|
tLJTempFeeSchema.setManageCom(tempLCPolSchema.getManageCom());
|
|
tLJTempFeeSchema.setPolicyCom(tempLCPolSchema.getManageCom());
|
|
tLJTempFeeSchema.setAPPntName(tempLCPolSchema.getAppntName());
|
|
tLJTempFeeSchema.setAgentCom(tempLCPolSchema.getAgentCom());
|
|
tLJTempFeeSchema.setAgentGroup(tempLCPolSchema.getAgentGroup());
|
|
tLJTempFeeSchema.setAgentCode(tempLCPolSchema.getAgentCode());
|
|
tLJTempFeeSchema.setConfFlag("1");
|
|
tLJTempFeeSchema.setOperator(mOperator);
|
|
tLJTempFeeSchema.setContCom(tempLCPolSchema.getManageCom());
|
|
tLJTempFeeSchema.setTempFeeNo(tTempFeeNo);
|
|
tLJTempFeeSchema.setMakeDate(tCurrentDate);
|
|
tLJTempFeeSchema.setMakeTime(tCurrentTime);
|
|
tLJTempFeeSchema.setModifyDate(tCurrentDate);
|
|
tLJTempFeeSchema.setModifyTime(tCurrentTime);
|
|
tLJTempFeeSchema.setEnterAccDate(tCurrentDate);
|
|
tLJTempFeeSchema.setConfMakeDate(tCurrentDate);
|
|
tLJTempFeeSchema.setConfMakeTime(tCurrentTime);
|
|
tLJTempFeeSchema.setConfDate(tCurrentDate);
|
|
tLJTempFeeSchema.setSerialNo(serNo);
|
|
tLJTempFeeSchema.setCurrency("01");
|
|
super.mMap.put(tLJTempFeeSchema, MMap.Action.INSERT);
|
|
}
|
|
|
|
tLCPolSchema = tLCPolSet.get(1);
|
|
tLJTempFeeClassSchema = new LJTempFeeClassSchema();
|
|
tLJTempFeeClassSchema.setTempFeeNo(tTempFeeNo);
|
|
tLJTempFeeClassSchema.setPayMode(tPayMode);//银行转账
|
|
tLJTempFeeClassSchema.setChequeNo("000000");
|
|
|
|
//判断应缴费金额与保单总金额是否相等
|
|
logger.debug("印刷号"+tLCPolSchema.getPrtNo()+"支付金额:mMoney="+mSumDuePayMoney+"保费金额:mSumPrem="+mSumPrem);
|
|
tLJTempFeeClassSchema.setPayMoney(mSumDuePayMoney);
|
|
tLJTempFeeClassSchema.setAppntName(tLCPolSchema.getAppntName());
|
|
tLJTempFeeClassSchema.setPayDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setConfFlag("1");
|
|
tLJTempFeeClassSchema.setManageCom(tLCPolSchema.getManageCom());
|
|
tLJTempFeeClassSchema.setPolicyCom(tLCPolSchema.getManageCom());
|
|
tLJTempFeeClassSchema.setOperator(mOperator);
|
|
tLJTempFeeClassSchema.setContCom(tLCPolSchema.getManageCom());
|
|
tLJTempFeeClassSchema.setBankCode(tLCContSchema.getBankCode());
|
|
tLJTempFeeClassSchema.setBankAccNo(tLCContSchema.getBankAccNo());
|
|
tLJTempFeeClassSchema.setAccName(tLCContSchema.getAccName());
|
|
tLJTempFeeClassSchema.setMakeDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setMakeTime(tCurrentTime);
|
|
tLJTempFeeClassSchema.setModifyDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setModifyTime(tCurrentTime);
|
|
tLJTempFeeClassSchema.setCurrency("01");
|
|
tLJTempFeeClassSchema.setOtherNo(tLCPolSchema.getContNo());// 投保单号 add by liushasha 2017-09-22 添加账户信息中有判断
|
|
tLJTempFeeClassSchema.setOtherNoType("0");// add by liushasha 2017-09-22
|
|
tLJTempFeeClassSchema.setEnterAccDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setConfMakeDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setConfMakeTime(tCurrentTime);
|
|
tLJTempFeeClassSchema.setConfDate(tCurrentDate);
|
|
tLJTempFeeClassSchema.setSerialNo(serNo);
|
|
super.mMap.put(tLJTempFeeClassSchema, MMap.Action.INSERT);
|
|
}
|
|
// if(mOperationType.equals("2"))
|
|
// {
|
|
// //余额使用,需要模拟生成暂收据
|
|
// LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema();
|
|
// tLJTempFeeSchema = (LJTempFeeSchema) mLJTempFeeSet.get(1).clone();
|
|
// String tLimit = PubFun.getNoLimit(tLJTempFeeSchema.getManageCom());
|
|
// tempNo = "TS" + PubFun1.CreateMaxNo("GETNOTICENO", tLimit);
|
|
// tLJTempFeeSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
// tLJTempFeeSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
// String tempfeetype = "10";//余额使用
|
|
//
|
|
// double tYEShouleUseMoney = (Double)this.mTransferData.getValueByName("YEShouleUseMoney");
|
|
// String tGetNoticeNo = (String)this.mTransferData.getValueByName("GetNoticeNo");
|
|
//
|
|
// tLJTempFeeSchema.setTempFeeType(tempfeetype);// 交费余额
|
|
// tLJTempFeeSchema.setPayMoney(PubFun.round(tYEShouleUseMoney,2));
|
|
// tLJTempFeeSchema.setOtherNoType("0");// 交费对应的个单合同号
|
|
// tLJTempFeeSchema.setOtherNo(aOperationNo);
|
|
// tLJTempFeeSchema.setConfDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setConfFlag("1");
|
|
// tLJTempFeeSchema.setConfMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeSchema.setConfMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeSchema.setCurrency(mCurrency);
|
|
//
|
|
// super.mMap.put(tLJTempFeeSchema, MMap.Action.INSERT);
|
|
// // 余额重新生成ljtempfeeclass
|
|
// LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema();
|
|
// tLJTempFeeClassSchema = (LJTempFeeClassSchema) mLJTempFeeClassSet.get(1).clone();
|
|
// tLJTempFeeClassSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
// tLJTempFeeClassSchema.setPayMoney(tYEShouleUseMoney);
|
|
// tLJTempFeeClassSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setOtherNoType(mOperationType);// 重新指定用途
|
|
// tLJTempFeeClassSchema.setConfFlag("1");
|
|
// tLJTempFeeClassSchema.setConfDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setConfMakeDate(PubFun.getCurrentDate());
|
|
// tLJTempFeeClassSchema.setConfMakeTime(PubFun.getCurrentTime());
|
|
// tLJTempFeeClassSchema.setPayMoney(PubFun.round(tYEShouleUseMoney,2));
|
|
// tLJTempFeeClassSchema.setOtherNo(tGetNoticeNo); //其他号码记录缴费号
|
|
// tLJTempFeeClassSchema.setPayMode("M");
|
|
// tLJTempFeeClassSchema.setCurrency(mCurrency);
|
|
// super.mMap.put(tLJTempFeeClassSchema, MMap.Action.INSERT);
|
|
// }
|
|
// 余额重新生成ljtempfee ?
|
|
//对于续期,不会有这种情况
|
|
if (sumMoney > mSumDuePayMoney)
|
|
{
|
|
LJTempFeeSchema tLJTempFeeSchema = new LJTempFeeSchema();
|
|
tLJTempFeeSchema = (LJTempFeeSchema) mLJTempFeeSet.get(1).clone();
|
|
String tLimit = PubFun.getNoLimit(tLJTempFeeSchema.getManageCom());
|
|
tempNo = "TS" + PubFun1.CreateMaxNo("GETNOTICENO", tLimit);
|
|
tLJTempFeeSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
tLJTempFeeSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
String tempfeetype = mOperationType;
|
|
if (tempfeetype.equals("2"))
|
|
{
|
|
tempfeetype = "3";
|
|
}
|
|
else if (tempfeetype.equals("3"))
|
|
{
|
|
tempfeetype = "4";
|
|
}
|
|
else if (tempfeetype.equals("4"))
|
|
{
|
|
tempfeetype = "5";
|
|
}
|
|
tLJTempFeeSchema.setTempFeeType(tempfeetype);// 交费余额
|
|
tLJTempFeeSchema.setOtherNoType(mOperationType);// 重新指定用途
|
|
tLJTempFeeSchema.setConfDate("");
|
|
tLJTempFeeSchema.setConfFlag("0");
|
|
|
|
tLJTempFeeSchema.setPayMoney(df.format(sumMoney - mSumDuePayMoney));
|
|
|
|
super.mMap.put(tLJTempFeeSchema, MMap.Action.INSERT);
|
|
// 余额重新生成ljtempfeeclass
|
|
LJTempFeeClassSchema tLJTempFeeClassSchema = new LJTempFeeClassSchema();
|
|
tLJTempFeeClassSchema = (LJTempFeeClassSchema) mLJTempFeeClassSet.get(1).clone();
|
|
tLJTempFeeClassSchema.setTempFeeNo(tempNo);// 临时生成暂交费号
|
|
tLJTempFeeClassSchema.setEnterAccDate(PubFun.getCurrentDate());
|
|
tLJTempFeeClassSchema.setOtherNoType(mOperationType);// 重新指定用途
|
|
tLJTempFeeClassSchema.setConfDate("");
|
|
tLJTempFeeClassSchema.setConfFlag("0");
|
|
tLJTempFeeClassSchema.setPayMoney(df.format(sumMoney - mSumDuePayMoney));
|
|
tLJTempFeeClassSchema.setPayMode("M");
|
|
tLJTempFeeClassSchema.setCurrency(mCurrency);
|
|
super.mMap.put(tLJTempFeeClassSchema, MMap.Action.INSERT);
|
|
}
|
|
|
|
// 客户账户表减去核销金额
|
|
//需要 按照币种获取客户账户
|
|
FICustomerAccSet tFICustomerAccSet = queryAccountAcc(aAccType, aOperationNo, aOperationType,this.mCurrency);
|
|
if (tFICustomerAccSet.size() > 0)
|
|
{
|
|
FICustomerAccSchema tFICustomerAccSchema = new FICustomerAccSchema();
|
|
tFICustomerAccSchema = tFICustomerAccSet.get(1);
|
|
tFICustomerAccSchema.setSummoney(PubFun.round((tFICustomerAccSet.get(1).getSummoney() - mSumDuePayMoney),2));
|
|
tFICustomerAccSchema.setModifyDate(PubFun.getCurrentDate());
|
|
tFICustomerAccSchema.setModifyTime(PubFun.getCurrentTime());
|
|
super.mMap.put(tFICustomerAccSchema, MMap.Action.UPDATE);
|
|
}
|
|
// 客户账户轨迹表按照金额从小到大核销金额
|
|
double useedmoney = 0.0;
|
|
FICustomerAccTraceSQL fiCustomerAccTraceSQL = SQLProxy.getInstance(FICustomerAccTraceSQL.class);
|
|
ArrayList<String> state = new ArrayList<>(Arrays.asList("00","03"));
|
|
FICustomerAccTraceSet tFICustomerAccTraceSet = fiCustomerAccTraceSQL.findAllByOperationNoAndOperationTypeAndStateInAndCurrencyOrderByMoney(aOperationNo,aOperationType,state,this.mCurrency);
|
|
if (tFICustomerAccTraceSet.size() > 0)
|
|
{
|
|
for (int i = 1; i <= tFICustomerAccTraceSet.size(); i++)
|
|
{
|
|
if (useedmoney < mSumDuePayMoney)
|
|
{
|
|
FICustomerAccTraceSchema tFICustomerAccTraceSchema = new FICustomerAccTraceSchema();
|
|
tFICustomerAccTraceSchema = tFICustomerAccTraceSet.get(i);
|
|
tFICustomerAccTraceSchema.setConfDate(PubFun.getCurrentDate());
|
|
tFICustomerAccTraceSchema.setConfTime(PubFun.getCurrentTime());
|
|
tFICustomerAccTraceSchema.setModifyDate(PubFun.getCurrentDate());
|
|
tFICustomerAccTraceSchema.setModifyTime(PubFun.getCurrentTime());
|
|
tFICustomerAccTraceSchema.setState("01");// 核销
|
|
super.mMap.put(tFICustomerAccTraceSchema, MMap.Action.UPDATE);
|
|
FICustomerAccTraceSchema cFICustomerAccTraceSchema = new FICustomerAccTraceSchema();
|
|
String Sequence = PubFun1.CreateMaxNo("FISEQUENCE", "66");
|
|
cFICustomerAccTraceSchema = (FICustomerAccTraceSchema) tFICustomerAccTraceSchema.clone();
|
|
cFICustomerAccTraceSchema.setSequence(Sequence);
|
|
cFICustomerAccTraceSchema.setDCFlag("C");
|
|
cFICustomerAccTraceSchema.setOperType("4");// 业务使用
|
|
if (useedmoney + cFICustomerAccTraceSchema.getMoney() > mSumDuePayMoney)
|
|
{
|
|
cFICustomerAccTraceSchema.setMoney(df.format(mSumDuePayMoney - useedmoney));
|
|
FICustomerAccTraceSchema ccFICustomerAccTraceSchema = new FICustomerAccTraceSchema();
|
|
Sequence = PubFun1.CreateMaxNo("FISEQUENCE", "66");
|
|
ccFICustomerAccTraceSchema = (FICustomerAccTraceSchema) cFICustomerAccTraceSchema.clone();
|
|
ccFICustomerAccTraceSchema.setSequence(Sequence);
|
|
ccFICustomerAccTraceSchema.setMoney(df.format(useedmoney
|
|
+ tFICustomerAccTraceSchema.getMoney() - mSumDuePayMoney));
|
|
ccFICustomerAccTraceSchema.setOtherNo(tempNo);
|
|
ccFICustomerAccTraceSchema.setOperType("7");// 重新指定
|
|
ccFICustomerAccTraceSchema.setMakeDate(PubFun.getCurrentDate());
|
|
ccFICustomerAccTraceSchema.setMakeTime(PubFun.getCurrentTime());
|
|
ccFICustomerAccTraceSchema.setModifyDate(PubFun.getCurrentDate());
|
|
ccFICustomerAccTraceSchema.setModifyTime(PubFun.getCurrentTime());
|
|
super.mMap.put(ccFICustomerAccTraceSchema, MMap.Action.INSERT);
|
|
// 领取时再到页面操作,这里只后台生成客户账户领取类型
|
|
// if (mOperationType.equals("5"))
|
|
// {
|
|
// // 生成应付数据
|
|
// }
|
|
// else
|
|
// {
|
|
FICustomerAccTraceSchema dFICustomerAccTraceSchema = new FICustomerAccTraceSchema();
|
|
Sequence = PubFun1.CreateMaxNo("FISEQUENCE", "66");
|
|
dFICustomerAccTraceSchema = (FICustomerAccTraceSchema) ccFICustomerAccTraceSchema.clone();
|
|
dFICustomerAccTraceSchema.setSequence(Sequence);
|
|
dFICustomerAccTraceSchema.setOperationType(mOperationType);
|
|
dFICustomerAccTraceSchema.setDCFlag("D");
|
|
dFICustomerAccTraceSchema.setState("00");
|
|
dFICustomerAccTraceSchema.setConfDate("");
|
|
dFICustomerAccTraceSchema.setConfTime("");
|
|
dFICustomerAccTraceSchema.setMakeDate(PubFun.getCurrentDate());
|
|
dFICustomerAccTraceSchema.setMakeTime(PubFun.getCurrentTime());
|
|
dFICustomerAccTraceSchema.setModifyDate(PubFun.getCurrentDate());
|
|
dFICustomerAccTraceSchema.setModifyTime(PubFun.getCurrentTime());
|
|
super.mMap.put(dFICustomerAccTraceSchema, MMap.Action.INSERT);
|
|
// }
|
|
}
|
|
cFICustomerAccTraceSchema.setMakeDate(PubFun.getCurrentDate());
|
|
cFICustomerAccTraceSchema.setMakeTime(PubFun.getCurrentTime());
|
|
cFICustomerAccTraceSchema.setModifyDate(PubFun.getCurrentDate());
|
|
cFICustomerAccTraceSchema.setModifyTime(PubFun.getCurrentTime());
|
|
super.mMap.put(cFICustomerAccTraceSchema, MMap.Action.INSERT);
|
|
useedmoney += tFICustomerAccTraceSchema.getMoney();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
buildError("FICustomerFI", "dealdata", new I18nMessage( "", null));
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|