提前结清部分结清

This commit is contained in:
zzk 2022-04-07 15:04:12 +08:00
parent 7a4287863c
commit 27f1de5fa0
5 changed files with 987 additions and 5 deletions

View File

@ -11,11 +11,11 @@
String RightType = CurPage.getParameter("RightType");//选择模式
String ishistory=CurPage.getParameter("IsHistory");
String nodeNo=CurPage.getParameter("NodeNo");
String contractId = CurPage.getParameter("ContractId");
BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
String paymentnumber=condition.getAttribute("payment_number").getString();
String yearrate=condition.getAttribute("YEAR_RATE").getString();
String contractId=condition.getAttribute("contract_id").getString();
//String contractId=condition.getAttribute("contractid").getString();
String nominalPrice=condition.getAttribute("NOMINAL_PRICE").getString();
String cautionmoney = Sqlca.getString("select ifnull(round( sum(case lfi.FEE_TYPE when 'feetype2' then FACT_MONEY else 0 end)- sum(case lfi.FEE_TYPE when 'feetype2' then 0 else FACT_MONEY end ),2),0) as over_caution_monry from lc_fund_income lfi where lfi.CONTRACT_ID = '"+contractId+"' and lfi.FEE_TYPE in ('feetype2', 'feetype16', 'feetype17')");
String mayopemoney = Sqlca.getString("select sum(MAYOPE_MONEY) from LC_EBANK_TEMP where flowunid='"+flowunid+"'");
@ -23,14 +23,35 @@
BizObject flow=GetFlowAction.getFlowBussinessObject(flowunid);
String productId=flow.getAttribute("productId").getString();
String ratio = Sqlca.getString("select EarlySettleBreachRatio from PRD_SPECIFIC_LIBRARY where productid='"+productId+"'");
String CLEAN_LEASE_MONEY = Sqlca.getString("select CLEAN_LEASE_MONEY from lc_calc_condition where CONTRACT_ID='"+contractId+"'");
System.out.println(ratio+"===================");
String sTempletNo = "LCContractTerminate";//--模板号--
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
doTemp.setDefaultValue("PAYMENT_NUMBER", paymentnumber);
doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTerminateInfo");
// doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTerminateInfo");
doTemp.setHtmlEvent("ADJUST_TYPE","onchange","changeInfo");
doTemp.setHtmlEvent("OTHER_IN","onchange","changeContract");
doTemp.setHtmlEvent("REPURCHASE_RATIO","onchange","getRepurchaseMoney");
doTemp.setHtmlEvent("SETTLE_METHOD","onchange","setEquipmentRatioCharge");
/*
* 获取合同金额
*/
String PAYMENT_NUMBER = "";
String START_DATE = "";
String YEAR_RATE = "";
if(condition!=null){
PAYMENT_NUMBER = condition.getAttribute("PAYMENT_NUMBER").getString();
START_DATE = condition.getAttribute("START_DATE").getString();
YEAR_RATE = condition.getAttribute("YEAR_RATE").getString();
}else{
BizObject condition2=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CONTRACT_CONDITION","CONTRACT_ID=:CONTRACT_ID").setParameter("CONTRACT_ID", contractId).getSingleResult(false);
PAYMENT_NUMBER = condition2.getAttribute("PAYMENT_NUMBER").getString();
START_DATE = condition2.getAttribute("START_DATE").getString();
YEAR_RATE = condition2.getAttribute("YEAR_RATE").getString();
}
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request);
dwTemp.Style = "2";//freeform
if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){
@ -163,6 +184,8 @@
//计算债券总计
function updateContractBondTotal(){
var SETTLE_METHOD = getItemValue(0,0,"SETTLE_METHOD");
if(SETTLE_METHOD == "SETTLE_METHOD01"){
var dunrent = getItemValue(0,getRow(),"DUN_RENT");
var agreedPenalty = getItemValue(0,getRow(),"AGREED_PENALTY");
var corpusOverage = getItemValue(0,getRow(),"CORPUS_OVERAGE");
@ -175,6 +198,21 @@
return (Number(dunrent ? dunrent : 0 ) + Number(agreedPenalty ? agreedPenalty : 0 ) + Number(corpusOverage ? corpusOverage : 0 )
+ Number(sdhandlingCharge ? sdhandlingCharge : 0 ) + Number(otherin ? otherin : 0 )
- Number(otherout ? otherout : 0 ) + Number(sdnominalPrice ? sdnominalPrice : 0 ) +Number(agreeddatepenalty ? agreeddatepenalty : 0 )).toFixed(2);
}else if(SETTLE_METHOD == "SETTLE_METHOD02"){
// 获取未到期本金
var PREMATURE_MONEY = getItemValue(0,getRow(),"PREMATURE_MONEY");
// 获取罚息
var DUN_RENT = getItemValue(0,getRow(),"DUN_RENT");
// 获取商定还款日息差
var AGREED_DATEPENALTY = getItemValue(0,getRow(),"AGREED_DATEPENALTY");
// 获取商定逾期罚息
var AGREED_PENALTY = getItemValue(0,getRow(),"AGREED_PENALTY");
// 获取商定违约金
var SDHANDLING_CHARGE = getItemValue(0,getRow(),"SDHANDLING_CHARGE");
var MAXIMUM_TOTAL = (Number(PREMATURE_MONEY ? PREMATURE_MONEY : 0 )+Number(DUN_RENT ? DUN_RENT : 0 ) + Number(AGREED_DATEPENALTY ? AGREED_DATEPENALTY : 0 )
+Number(AGREED_PENALTY ? AGREED_PENALTY : 0 )+Number(SDHANDLING_CHARGE ? SDHANDLING_CHARGE : 0 )).toFixed(2);
return MAXIMUM_TOTAL;
}
}
//计算债券总计
/* function getContractBondTotal(){
@ -206,6 +244,7 @@
//保存数据
function saveRecord(sPostEvents)
{
debugger;
//校验是否有保证金代偿
var isCompensation = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","isCompensation","contractId=<%=contractId%>");
if("false" == isCompensation){
@ -262,8 +301,22 @@
}
function run()
{
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runTerminate","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,productId=<%=productId%>,calType=pay_process");
{
var EQUIPMENT_RATIO=getItemValue(0,0,'PROPROTION_NUMBER');//租赁物比重
var PAYDAY_ADJUST = getItemValue(0,0,'PAYDAY_ADJUST'); //约定终止日
var SETTLE_METHOD = getItemValue(0,0,"SETTLE_METHOD"); // 结清方式
var ret = "";
if(SETTLE_METHOD == "SETTLE_METHOD01"){
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runTerminate","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,productId=<%=productId%>,calType=pay_process");
ret = "操作成功"
}else if(SETTLE_METHOD == "SETTLE_METHOD02"){
ret = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","partSettlement","REPURCHASE_RATIO="+EQUIPMENT_RATIO+",flowunid=<%=flowunid%>,contractId=<%=contractId%>,START_DATE=<%=START_DATE%>,plannumber=<%=PAYMENT_NUMBER%>,calType=pay_process,PAYDAY_ADJUST="+PAYDAY_ADJUST+",SettleMethod="+SETTLE_METHOD);
}
if(ret=="操作成功"){
$m.alert("操作成功","success");
}else{
$m.alert("结清失败,请联系管理员!","error");
}
}
@ -326,6 +379,139 @@
}
}
}
function setEquipmentRatioCharge(){
var settlemethod = getItemValue(0,0,"SETTLE_METHOD");
var ADJUST_TYPE = getItemValue(0,0,"ADJUST_TYPE");
var PAYDAY_ADJUST = getItemValue(0,0,"PAYDAY_ADJUST");
if(ADJUST_TYPE.length==0){
alert("请先选择变更类型!!!");
setItemValue(0,getRow(),"ADJUST_TYPE","");
return;
}
if(PAYDAY_ADJUST.length==0){
alert("请先选择约定终止日!!!");
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
return;
}
setItemValue(0,0,"CLEAN_LEASE_MONEY","<%=CLEAN_LEASE_MONEY%>");
if(settlemethod=="SETTLE_METHOD02"){
$("#A_div_1008").attr("style","display:block;");
$("#A_div_1009").attr("style","display:block;");
$("#A_div_2096").attr("style","display:block;");
$("#A_div_2098").attr("style","display:block;");
settlemet();
}else if(settlemethod=="SETTLE_METHOD01") {
$("#A_div_1008").attr("style","display:none;");
$("#A_div_1009").attr("style","display:none;");
$("#A_div_2096").attr("style","display:none;");
$("#A_div_2098").attr("style","display:none;");
getTerminateInfo();
}
}
function settlemet(){
AsDialog.OpenSelector("selectEquipCarTermination","contractid,<%=contractId%>,flowunid,<%=flowunid%>","dialogWidth=" + parseInt(window.screen.width * 0.8) + "px dialogHeight=" + parseInt(window.screen.height * 0.6) + "px",function(sReturn){
if(!sReturn||sReturn=="_CANCEL_"||sReturn=="_NONE_"){
setItemValue(0,0,'SETTLE_METHOD',"");
}else{
var IDS= sReturn;
// 获取选中租赁物参融比例
var PROPROTION_NUMBER = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getReductionRatio","flowunid=<%=flowunid%>,IDS="+IDS);
var returns = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","setEquipmentTerminateStatus","flowunid=<%=flowunid%>,IDS="+IDS);
if(returns=="false"){
$m.alert("系统异常,请联系管理员!", 'error');
}else{
setItemValue(0,0,'PROPROTION_NUMBER',PROPROTION_NUMBER);
if(PAYDAY_ADJUST!=""){
changeContractTotal();
}
}
}
},"请选择租赁物");
}
/*
* 提前结清结清金额计算
*/
function changeContractTotal(){
var ADJUST_TYPE = getItemValue(0,0,"ADJUST_TYPE");
var AGREED_PENALTY = parseFloat(getItemValue(0,0,"AGREED_PENALTY"));
var SDHANDLING_CHARGE = parseFloat(getItemValue(0,0,"SDHANDLING_CHARGE"));
var AGREED_DATEPENALTY = parseFloat(getItemValue(0,0,"AGREED_DATEPENALTY"));
if(AGREED_PENALTY>DUN_PENALTY){
$m.alert("减免减免逾期违约金不能大于逾期违约金!", "warning");
setItemValue(0,getRow(),"AGREED_PENALTY","0");
}
var REPURCHASE_RATIO = parseFloat(getItemValue(0,0,"PROPROTION_NUMBER"));
var PAYDAY_ADJUST = getItemValue(0,0,"PAYDAY_ADJUST");
if(PAYDAY_ADJUST!="" && REPURCHASE_RATIO>0){
// 减免逾期违约金
var AGREED_PENALTY = getItemValue(0,0,"AGREED_PENALTY");
// 其他应收
var OTHER_IN = getItemValue(0,0,"OTHER_IN");
var params = "contractId=<%=contractId%>,flowunid=<%=flowunid%>,YEAR_RATE=<%=YEAR_RATE%>,PAYDAY_ADJUST="+PAYDAY_ADJUST+",REPURCHASE_RATIO="+REPURCHASE_RATIO+",AGREED_PENALTY="+AGREED_PENALTY+",OTHER_IN="+OTHER_IN+",SDHANDLING_CHARGE="+SDHANDLING_CHARGE;
var result = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getSettlementMoney",params);
// 根据提前终止日计算还款日息差
var dateRate=Number("<%=yearrate%>")/100;//获取利率
var rentPlanDate = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","rentPlanDate","contractId=<%=contractId%>,paydayAdjust="+PAYDAY_ADJUST);
var idays = datedifference(rentPlanDate,PAYDAY_ADJUST);//获取约定终止日和提出日期相差天数
result = result.split("@");
var CORPUS_OVERAGE = result[0];
var PREMATURE_MONEY = result[1];
var RESIDUE_MONEY = result[2];
var DUN_RENT = result[3];
var DUN_PENALTY = result[4];
// 未到期本金
setItemValue(0,getRow(),"CORPUS_OVERAGE",CORPUS_OVERAGE);
// 部分结清车辆未到期本金
setItemValue(0,getRow(),"PREMATURE_MONEY",PREMATURE_MONEY);
// 剩余车辆未到期本金
setItemValue(0,getRow(),"RESIDUE_MONEY",RESIDUE_MONEY);
// 逾期租金
setItemValue(0,getRow(),"DUN_RENT",DUN_RENT);
// 逾期罚息
setItemValue(0,getRow(),"DUN_PENALTY",DUN_PENALTY);
// 应退金额
setItemValue(0,getRow(),"OTHER_OUT",'0.00');
// 留购价
setItemValue(0,getRow(),"NOMINAL_PRICE","<%=nominalPrice%>");
// 违约金
var ratio=0;
if("<%=ratio%>"==""||"<%=ratio%>"==null||"<%=ratio%>"=="null"){
ratio = 0.05;
}else{
ratio = (Number("<%=ratio%>")/100).toFixed(2);
}
var HANDLING_CHARGE = Math.round(Number(PREMATURE_MONEY*ratio)*100)/100;
setItemValue(0,getRow(),"HANDLING_CHARGE",HANDLING_CHARGE);
//计算还款日息差
var REPAYMENT=((Number(PREMATURE_MONEY)*dateRate)/360)*Number(idays);
setItemValue(0,0,'REPAYMENT_INTEREST',REPAYMENT);
// 提前还款金额
var CONTRACT_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(DUN_PENALTY)+Number(HANDLING_CHARGE)+Number(REPAYMENT));
setItemValue(0,0,'CONTRACT_TOTAL',CONTRACT_TOTAL);
// 最终还款金额
var MAXIMUM_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(AGREED_PENALTY)+SDHANDLING_CHARGE+AGREED_DATEPENALTY);
setItemValue(0,0,'MAXIMUM_TOTAL',MAXIMUM_TOTAL);
if(ADJUST_TYPE=="coerce_terminate"){
setItemValue(0,getRow(),"PENALTY_MONEY","0.00");
setItemValue(0,getRow(),"DUN_PENALTY","0.00");
setItemValue(0,getRow(),"RECEIVABLE_MONEY02","0.00");
}else if(ADJUST_TYPE=="normal_terminate"){
setItemValue(0,getRow(),"PENALTY_MONEY","0.00");
setItemValue(0,getRow(),"OPEN_MONEY","0.00");
}else{
setItemValue(0,getRow(),"OPEN_MONEY","0.00");
}
}
}
function changeContract(){
getTerminateInfo();
// setItemValue(0,0,"CONTRACT_TOTAL",(Number(getItemValue(0,getRow(),"CONTRACT_TOTAL"))+Number(getItemValue(0,getRow(),"OTHER_IN"))).toFixed(2));

View File

@ -326,6 +326,11 @@
<attribute name="SurplusINTEREST" label="剩余利息" type="STRING" length="32"/>
<attribute name="MAXIMUM_TOTAL" label="最终还款金额" type="STRING" length="32"/>
<attribute name="AGREED_DATEPENALTY" label="商定还款日息差" type="STRING" length="32"/>
<attribute name="SETTLE_METHOD" label="结清方式" type="STRING" length="32"/>
<attribute name="PROPROTION_NUMBER" label="租赁物比重" type="STRING" length="32"/>
<attribute name="CLEAN_LEASE_MONEY" label="融资金额(元)" type="STRING" length="32"/>
<attribute name="PREMATURE_MONEY" label="部分结清车辆未到期本金" type="STRING" length="32"/>
<attribute name="RESIDUE_MONEY" label="剩余车辆未到期本金" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>
@ -378,6 +383,11 @@
<attribute name="SurplusINTEREST" label="剩余利息" type="STRING" length="32"/>
<attribute name="MAXIMUM_TOTAL" label="最终还款金额" type="STRING" length="32"/>
<attribute name="AGREED_DATEPENALTY" label="商定还款日息差" type="STRING" length="32"/>
<attribute name="SETTLE_METHOD" label="结清方式" type="STRING" length="32"/>
<attribute name="PROPROTION_NUMBER" label="租赁物比重" type="STRING" length="32"/>
<attribute name="CLEAN_LEASE_MONEY" label="融资金额(元)" type="STRING" length="32"/>
<attribute name="PREMATURE_MONEY" label="部分结清车辆未到期本金" type="STRING" length="32"/>
<attribute name="RESIDUE_MONEY" label="剩余车辆未到期本金" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>

View File

@ -0,0 +1,746 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.jbo.manager.DataUtil;
import com.tenwa.reckon.bean.TabCalBean;
import com.tenwa.reckon.util.DateUtil;
import com.tenwa.reckon.util.TbBeanTools;
import com.tenwa.reckon.util.UUIDUtil;
public class EarlyContract {
// 流程编号
private String flowunid;
// 租赁物编号
private String IDS;
// 提出日期
private String PAYDAY_ADJUST;
// 提请结清租赁物占比
private String REPURCHASE_RATIO;
// 合同ID
private String contractId;
// 合同年利率
private String YEAR_RATE;
// 变更类型
private String ADJUST_TYPE;
// 商定逾期罚息
private String AGREED_PENALTY;
// 其它应收
private String OTHER_IN;
// 投放编号
private String plannumber;
// 产品编号
private String productId;
//
private String calType;
//
private String planList;
//结清方式
private String SettleMethod;
public String getSettleMethod() {
return SettleMethod;
}
public void setSettleMethod(String settleMethod) {
SettleMethod = settleMethod;
}
public String getPlanList() {
return planList;
}
public void setPlanList(String planList) {
this.planList = planList;
}
public String getCalType() {
return calType;
}
public void setCalType(String calType) {
this.calType = calType;
}
public String getPlannumber() {
return plannumber;
}
public void setPlannumber(String plannumber) {
this.plannumber = plannumber;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getPAYDAY_ADJUST() {
return PAYDAY_ADJUST;
}
public void setPAYDAY_ADJUST(String pAYDAY_ADJUST) {
PAYDAY_ADJUST = pAYDAY_ADJUST;
}
public String getREPURCHASE_RATIO() {
return REPURCHASE_RATIO;
}
public void setREPURCHASE_RATIO(String rEPURCHASE_RATIO) {
REPURCHASE_RATIO = rEPURCHASE_RATIO;
}
public String getContractId() {
return contractId;
}
public void setContractId(String contractId) {
this.contractId = contractId;
}
public String getYEAR_RATE() {
return YEAR_RATE;
}
public void setYEAR_RATE(String yEAR_RATE) {
YEAR_RATE = yEAR_RATE;
}
public String getADJUST_TYPE() {
return ADJUST_TYPE;
}
public void setADJUST_TYPE(String aDJUST_TYPE) {
ADJUST_TYPE = aDJUST_TYPE;
}
public String getAGREED_PENALTY() {
return AGREED_PENALTY;
}
public void setAGREED_PENALTY(String aGREED_PENALTY) {
AGREED_PENALTY = aGREED_PENALTY;
}
public String getOTHER_IN() {
return OTHER_IN;
}
public void setOTHER_IN(String oTHER_IN) {
OTHER_IN = oTHER_IN;
}
public String getFlowunid() {
return flowunid;
}
public void setFlowunid(String flowunid) {
this.flowunid = flowunid;
}
public String getIDS() {
return IDS;
}
public void setIDS(String iDS) {
IDS = iDS;
}
/**
* 获取租赁物比重
*/
public String getReductionRatio(JBOTransaction tx) {
Transaction Sqlca = null;
String REDUCTION_RATIO="";
try {
Sqlca = Transaction.createTransaction(tx);
String idss="";
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
for (String id : ids) {
if("".equals(idss)) {
idss="'"+id+"'";
}else {
idss+=",'"+id+"'";
}
}
}
// 获取租赁物-增融后租赁物价格()
REDUCTION_RATIO = Sqlca.getString("SELECT ROUND(ifnull(LECT.EQUIP_PRICE,0)/ifnull(LEC.EQUIP_PRICE,0),4) AS REDUCTION_RATIO FROM ( SELECT CONTRACT_ID, SUM(ifnull(EQUIP_PRICE,0)) AS EQUIP_PRICE FROM LB_EQUIPMENT_CAR_TEMP WHERE ID IN ( "+idss+" ) AND FLOWUNID='"+flowunid+"' GROUP BY CONTRACT_ID ) LECT LEFT JOIN ( SELECT CONTRACT_ID, SUM(ifnull(EQUIP_PRICE,0)) AS EQUIP_PRICE FROM LB_EQUIPMENT_CAR WHERE ifnull(TERMINATE_TYPE,'1')<>'2' GROUP BY CONTRACT_ID )LEC ON LEC.CONTRACT_ID=LECT.CONTRACT_ID ");
REDUCTION_RATIO = new BigDecimal(REDUCTION_RATIO).multiply(new BigDecimal(100)).toString();
DecimalFormat df = new DecimalFormat("#.00");
REDUCTION_RATIO = df.format(Double.valueOf(REDUCTION_RATIO.toString()));
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
Sqlca=null;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
// return REDUCTION_RATIO;
return ""+REDUCTION_RATIO+"";
}
/**
* 全部结清将租赁物等于未结清的标记为本次结清如果是部分结清将选中租赁物标记为本次结清
*/
@SuppressWarnings("deprecation")
public String setEquipmentTerminateStatus(JBOTransaction tx) {
Transaction Sqlca = null;
String returns="true";
try {
Sqlca = Transaction.createTransaction(tx);
/**
* 每次选择全部结清与部分结清初始化租赁物状态
*/
String sql="UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE='1',SETTLE_STATUS='1' WHERE FLOWUNID='"+flowunid+"' AND ifnull(TERMINATE_TYPE,'1') <> '2' ";
Sqlca.executeSQL(sql);
sql = "UPDATE LB_EQUIPMENT_CAR_TEMP SET SETTLE_STATUS='1',TERMINATE_TYPE='1' WHERE (TERMINATE_TYPE='3' or SETTLE_STATUS='3') AND FLOWUNID='"+flowunid+"'";
Sqlca.executeSQL(sql);
sql="UPDATE LB_EQUIPMENT_CAR_TEMP SET SETTLE_STATUS='3' WHERE (TERMINATE_TYPE IS NULL OR TERMINATE_TYPE='1') AND FLOWUNID='"+flowunid+"' ";
/**
* 查询本次结清车辆加融总额
*/
String sql2="SELECT SUM(ifnull(EQUIP_PRICE,0)) AS EQUIP_PRICE FROM LB_EQUIPMENT_CAR_TEMP WHERE (TERMINATE_TYPE IS NULL OR TERMINATE_TYPE='1') AND FLOWUNID='"+flowunid+"' ";
// 部分结清将选中的变更为本次结清
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
String idss="";
for (String id : ids) {
if("".equals(idss)) {
idss="'"+id+"'";
}else {
idss+=",'"+id+"'";
}
}
sql2+=" AND ID IN("+idss+") ";
Sqlca.executeSQL(sql+" AND ID IN("+idss+")");
// 全部结清将未结清租赁物全部转入本次结清租赁物
}else {
Sqlca.executeSQL(sql);
}
returns = Sqlca.getString(sql2);
Sqlca.commit();
} catch (Exception e) {
returns="false";
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
Sqlca=null;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
// return returns;
return ""+returns+"";
}
/**
* 获取结清金额数据
*/
public String getSettlementMoney(JBOTransaction tx){
Transaction Sqlca = null;
try{
Sqlca = Transaction.createTransaction(tx);
// 剩余本金- 本次结清车辆约定终止日次月后所有本金
String CORPUS_OVERAGE = Sqlca.getString("select sum(round(ifnull(lrp.CORPUS, 0) - ifnull(lri.CORPUS, 0),2)) as CORPUS from LC_RENT_PLAN LRP left join (select CONTRACT_ID,PLAN_LIST,SUM(ifnull(CORPUS, 0)) as CORPUS from LC_RENT_INCOME group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRP.CONTRACT_ID and LRP.PLAN_LIST = LRI.PLAN_LIST where date_format(STR_TO_DATE(lrp.PLAN_DATE,'%Y/%m/%d'),'%Y/%m')> date_format(STR_TO_DATE('"+PAYDAY_ADJUST+"','%Y/%m/%d'),'%Y/%m') and lrp.CONTRACT_ID = '"+contractId+"'");
if(CORPUS_OVERAGE == null) {
CORPUS_OVERAGE="0.00";
}
// 部分结清车辆未到期本金- 本次结清车辆约定终止日次月后所有本金
String PREMATURE_MONEY = Sqlca.getString("select sum(round(((ifnull(lrp.CORPUS, 0) - ifnull(lri.CORPUS, 0))*'"+REPURCHASE_RATIO+"'/100),2)) as CORPUS from LC_RENT_PLAN LRP left join (select CONTRACT_ID,PLAN_LIST,SUM(ifnull(CORPUS, 0)) as CORPUS from LC_RENT_INCOME group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRP.CONTRACT_ID and LRP.PLAN_LIST = LRI.PLAN_LIST where date_format(STR_TO_DATE(lrp.PLAN_DATE,'%Y/%m/%d'),'%Y/%m')> date_format(STR_TO_DATE('"+PAYDAY_ADJUST+"','%Y/%m/%d'),'%Y/%m') and lrp.CONTRACT_ID = '"+contractId+"'");
if(PREMATURE_MONEY == null) {
PREMATURE_MONEY="0.00";
}
// 剩余车辆未到期本金- 本次结清车辆约定终止日次月后所有本金
BigDecimal bg = new BigDecimal(Double.parseDouble(CORPUS_OVERAGE) - Double.parseDouble(PREMATURE_MONEY));
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
String RESIDUE_MONEY = Double.toString(f1);
if(RESIDUE_MONEY == null) {
RESIDUE_MONEY="0.00";
}
// 逾期租金- 本次结清车辆截止约定终止日上月所有逾期租金
String DUN_RENT = Sqlca.getString("select ifnull(sum(round(ifnull(ifnull(LRP.RENT,0),0) - ifnull(ifnull(LRI.RENT,0),0),2)),0) as OVER_RENT from LC_RENT_PLAN LRP left join (select CONTRACT_ID,PLAN_LIST,SUM(ifnull(RENT, 0)) as RENT from LC_RENT_INCOME group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRP.CONTRACT_ID and LRP.PLAN_LIST = LRI.PLAN_LIST where STR_TO_DATE(LRP.PLAN_DATE,'%Y/%m/%d') < STR_TO_DATE('"+PAYDAY_ADJUST+"','%Y/%m/%d') and LRP.CONTRACT_ID = '"+contractId+"'");
if(DUN_RENT == null) {
DUN_RENT="0.00";
}
// 逾期罚息- 本次结清车辆截止约定终止日所有罚息
String DUN_PENALTY =Sqlca.getString("select ifnull(SUM(ROUND(ifnull(GETRENTPENALTY (LRP.PAYMENT_NUMBER, LRP.PLAN_LIST, '\"+PAYDAY_ADJUST+\"')-ifnull(LRI.PENALTY, 0)-ifnull(LRI.PENALTY_ADJUST, 0), 0), 2)),0) as DUN_PENALTY from LC_RENT_PLAN LRP left join (select PAYMENT_NUMBER,PLAN_LIST,SUM(ifnull(PENALTY, 0)) as PENALTY,SUM(ifnull(PENALTY_ADJUST, 0)) as PENALTY_ADJUST from LC_RENT_INCOME group by PAYMENT_NUMBER,PLAN_LIST) LRI on LRI.PAYMENT_NUMBER = LRP.PAYMENT_NUMBER and LRI.PLAN_LIST = LRP.PLAN_LIST where date_format(STR_TO_DATE(lrp.PLAN_DATE, '%Y/%m/%d'), '%Y/%m')> date_format(STR_TO_DATE('\"+PAYDAY_ADJUST+\"', '%Y/%m/%d'), '%Y/%m') and LRP.CONTRACT_ID = '"+contractId+"'");
// return CORPUS_OVERAGE+"@"+PREMATURE_MONEY+"@"+RESIDUE_MONEY+"@"+DUN_RENT+"@"+DUN_PENALTY;
return ""+CORPUS_OVERAGE+"@"+PREMATURE_MONEY+"@"+RESIDUE_MONEY+"@"+DUN_RENT+"@"+DUN_PENALTY+"";
}catch(Exception e){
e.printStackTrace();
return "ERR";
}
}
@SuppressWarnings("unchecked")
public String partSettlement(JBOTransaction tx){
com.amarsoft.awe.util.Transaction Sqlca = null;
try{
TabCalBean bean = TbBeanTools.getTabInfoTrans(calType, flowunid,plannumber,productId,tx);
BigDecimal t = new BigDecimal( "0.01" );
BigDecimal zero = new BigDecimal(0);
Sqlca = com.amarsoft.awe.util.Transaction.createTransaction(tx);
//本次结清租赁物比例
String equipmentRatio = REPURCHASE_RATIO;
String paydayAdjust = PAYDAY_ADJUST;
BigDecimal equipmentRatio2 = new BigDecimal(equipmentRatio).divide(new BigDecimal(100));
BizObjectManager lfratBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_RENT_ADJUST_TEMP",Sqlca);
BizObject lfrat = lfratBm.createQuery("FLOWUNID='"+flowunid+"'").getSingleResult(true);
String CONTRACT_ID = Sqlca.getString("SELECT lci.id FROM lb_contract_info_temp lcit left join lb_contract_info lci on lci.CONTRACT_NO = lcit.CONTRACT_NO where lcit.FLOWUNID='"+flowunid+"'");
String adjustType = lfrat.getAttribute("ADJUST_TYPE").toString();//coerce_terminate
// 获取网银ID
String EBANK_NUMBER = Sqlca.getString("SELECT LE.ID FROM LC_EBANK_TEMP LET LEFT JOIN LC_EBANK LE ON LE.EBANK_NUMBER=LET.EBANK_NUMBER where LET.FLOWUNID='"+flowunid+"'");
String MAXIMUM_TOTAL = lfrat.getAttribute("MAXIMUM_TOTAL").getString();
String RECEIVABLE_MONEY02 = MAXIMUM_TOTAL;
//String OPEN_MONEY = lfrat.getAttribute("OPEN_MONEY").getString();
// 判断结清类型是否为提前结清
if("01".equals(adjustType)){
Sqlca.executeSQL(new SqlObject("update LC_EBANK_TEMP let set HAD_MONEY = HAD_MONEY+"+RECEIVABLE_MONEY02+",MAYOPE_MONEY=MAYOPE_MONEY-"+RECEIVABLE_MONEY02+" where LET.FLOWUNID = '" +flowunid+ "'") );
}else if("coerce_terminate".equals(adjustType)){
Sqlca.executeSQL(new SqlObject("update LC_EBANK_TEMP let set HAD_MONEY = HAD_MONEY+MAYOPE_MONEY,MAYOPE_MONEY=MAYOPE_MONEY-MAYOPE_MONEY where LET.FLOWUNID = '" +flowunid+ "'") );
}
/**
* 变更租金计划表
*/
// 获取日期大于约定终止日所在月的租金计划按比例算出每期租金本金利息,在约定终止日那一月汇总后边的
BizObjectManager lrptBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_PLAN_TEMP",Sqlca);
List<BizObject> lrptBoList = lrptBm.createQuery("FLOWUNID='"+flowunid+"' and v.date_format(v.STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=v.date_format(v.STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d') order by plan_list desc").getResultList(true);
//查询结清租金
// BigDecimal tax = new BigDecimal( bean.getTax() ).multiply( t );
// BigDecimal other = new BigDecimal( bean.getOther() ).multiply( t ).add( BigDecimal.ONE );
// 获取该合同约定终止日所在月开始所有本金
String SUM_CORPUS = Sqlca.getString("SELECT ifnull(SUM(ifnull(CORPUS,0)),0) FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')");
// 未结清租金
BigDecimal now_rent = new BigDecimal(0);
// 未结清本金
BigDecimal now_corpus = new BigDecimal(0);
// 结清日最近的一期租金
BigDecimal end_rent = new BigDecimal(0);
// 结清日最近的一期本金
BigDecimal end_corpus = new BigDecimal(0);
// 结清日最近的一期利息
BigDecimal end_interest = new BigDecimal(0);
String last_plan_date = "";
for(int i=0; i<lrptBoList.size();i++) {
BizObject lrptBo = lrptBoList.get(i);
BigDecimal rent= new BigDecimal(0);
BigDecimal corpus= new BigDecimal(0);
BigDecimal interest= new BigDecimal(0);
// 约定终止日所在那一期次, 如果约定日期小于第一期月份本金为0
if(i==lrptBoList.size()-1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat sdfM = new SimpleDateFormat("yyyy/MM");
last_plan_date = lrptBo.getAttribute("PLAN_DATE").getString();
String planList = lrptBo.getAttribute("plan_list").getString();
String incomeCorpus = Sqlca.getString("SELECT ifnull(SUM(ifnull(CORPUS,0)),0) FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' AND PLAN_LIST='"+planList+"'");
String incomeInterest = Sqlca.getString("SELECT ifnull(SUM(ifnull(INTEREST,0)),0) FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' AND PLAN_LIST='"+planList+"'");
BigDecimal noIncomeCorpus = new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).subtract(new BigDecimal(incomeCorpus));
BigDecimal noIncomeInterest = new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).subtract(new BigDecimal(incomeInterest));
Date date1 = sdf.parse(last_plan_date);
Date date2 = sdf.parse(paydayAdjust);
//如果约定终止日的月份和最后一次循环所在月份是一个月才加上利息否则减免一部分利息
if(sdfM.format(date1).equals(sdfM.format(date2))){
corpus=new BigDecimal(SUM_CORPUS).subtract(now_corpus);
//强制结清不要利息
if("coerce_terminate".equals(adjustType)){
interest = BigDecimal.ZERO;
}else{
interest=new BigDecimal(lrptBoList.get(i).getAttribute("INTEREST").getString());
}
rent=corpus.add(interest);
end_corpus = noIncomeCorpus.subtract(noIncomeCorpus.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
end_interest = noIncomeInterest.subtract(noIncomeInterest.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
}else{
corpus=new BigDecimal(SUM_CORPUS).subtract(now_corpus);
interest = new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).subtract(new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
rent=corpus.add(interest);
end_corpus = noIncomeCorpus.subtract(noIncomeCorpus.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
end_interest = noIncomeInterest.subtract(noIncomeInterest.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
}
}else {
// 获取结清后约定终止日后边期次当期租金计划的租金本金利息
rent = new BigDecimal(lrptBo.getAttribute("RENT").toString()).subtract(new BigDecimal(lrptBo.getAttribute("RENT").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
corpus = new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).subtract(new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
interest = new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).subtract(new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
if(interest.compareTo(zero)==1) {
interest=rent.subtract(corpus);
}
now_rent=now_rent.add(rent);
now_corpus=now_corpus.add(corpus);
}
lrptBo.setAttributeValue("RENT",rent.toString());
lrptBo.setAttributeValue("CORPUS_BUSINESS",corpus.toString());
lrptBo.setAttributeValue("CORPUS",corpus.toString());
lrptBo.setAttributeValue("INTEREST_BUSINESS",interest);
lrptBo.setAttributeValue("INTEREST",interest);
lrptBo.setAttributeValue("MEMO","部分结清");
lrptBm.saveObject(lrptBo);
}
// 因为不确定结清日期是否大于等于第一期月份所以不按照月份删除按照实际金额删除
Sqlca.executeSQL(new SqlObject("delete from LC_RENT_PLAN_TEMP where flowunid='"+flowunid+"' AND ifnull(rent,0)=0 AND MEMO='部分结清' "));
/**
* 保证金抵扣租金
* 对应的逾期租金当期租金未到期本金逾期违约金名义价款提前终止合同损失金及其他应收
*/
BizObject lrptBo2 = lrptBm.createQuery("FLOWUNID='"+flowunid+"' ").getSingleResult(false);
//创建租金实收
BizObjectManager lritBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_INCOME_TEMP",Sqlca);
//创建资金收付
BizObjectManager lfitBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP",Sqlca);
// 创建资金计划
BizObjectManager lfptBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN_TEMP",Sqlca);
String sql="";
if("coerce_terminate".equals(adjustType)){
sql = "select ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now(),'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now(),'%Y/%m/%d %h:%i:%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST )LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST where ifnull(LRPT.RENT,0)>ifnull(LRI.RENT,0) order by LRPT.PLAN_LIST";
}else{
sql = "select ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now() ,'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now(),'%Y/%m/%d %h:%m:%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST )LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST where ifnull(LRPT.RENT,0)>ifnull(LRI.RENT,0) and LRPT.PLAN_DATE <= '"+last_plan_date+"' order by LRPT.PLAN_LIST ";
}
/**
* 保证金抵扣留购价款 (强制结清不核销留购价)
*/
BigDecimal REPURCHASE_MONEY = new BigDecimal(lfrat.getAttribute("REPURCHASE_MONEY").toString());
/**
* 处理资金计划表-其他应收
*/
BigDecimal OTHER_IN = new BigDecimal(lfrat.getAttribute("OTHER_IN").toString());
String OTHER_IN_ID = UUID.randomUUID().toString().replaceAll("-","");
if(OTHER_IN.compareTo(zero)>0) {
BizObject lfptBo = lfptBm.newObject();
lfptBo.setAttributeValue("ID",OTHER_IN_ID);
lfptBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lfptBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lfptBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lfptBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lfptBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lfptBo.setAttributeValue("PLAN_LIST","1");
lfptBo.setAttributeValue("PAY_TYPE","pay_type_in");
lfptBo.setAttributeValue("FEE_TYPE","feetype8");
lfptBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfptBo.setAttributeValue("PLAN_DATE",paydayAdjust);
lfptBo.setAttributeValue("PLAN_MONEY",OTHER_IN.toString());
lfptBo.setAttributeValue("FLOWUNID",flowunid);
lfptBo.setAttributeValue("INPUTTIME",DateUtil.getSystemDateTime());
lfptBm.saveObject(lfptBo);
}
BigDecimal OTHER_OUT = new BigDecimal(lfrat.getAttribute("OTHER_OUT").toString());
String OTHER_OUT_ID = UUID.randomUUID().toString().replaceAll("-","");
if(OTHER_OUT.compareTo(zero)>0) {
BizObject lfptBo = lfptBm.newObject();
lfptBo.setAttributeValue("ID",OTHER_OUT_ID);
lfptBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lfptBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lfptBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lfptBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lfptBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lfptBo.setAttributeValue("PLAN_LIST","1");
lfptBo.setAttributeValue("PAY_TYPE","pay_type_out");
lfptBo.setAttributeValue("FEE_TYPE","feetype11");
lfptBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfptBo.setAttributeValue("PLAN_DATE",paydayAdjust);
lfptBo.setAttributeValue("PLAN_MONEY",OTHER_OUT.toString());
lfptBo.setAttributeValue("FLOWUNID",flowunid);
lfptBo.setAttributeValue("INPUTTIME",DateUtil.getSystemDateTime());
lfptBm.saveObject(lfptBo);
}
/**
* 租金实收表操作
*/
if(!"coerce_terminate".equals(adjustType)){
sql = "SELECT ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0)-ifnull(LRIT.RENT,0) AS OVER_RENT, ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0)-ifnull(LRIT.CORPUS,0) AS OVER_CORPUS, ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0)-ifnull(LRIT.INTEREST,0) AS OVER_INTEREST, LRPT.PLAN_LIST AS PLAN_LIST, LRPT.PLAN_DATE AS PLAN_DATE, LRP.PLAN_ID, date_format(now(),'%Y/%m/%d') AS ACCOUNTING_DATE, date_format(now(),'%Y/%m/%d %h:%m:%s') AS INPUTTIME FROM ( SELECT MAX(ID) AS PLAN_ID, CONTRACT_ID, PLAN_LIST, MAX(PLAN_DATE) AS PLAN_DATE, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRPT LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, MAX(ID) AS PLAN_ID FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST )LRP ON LRP.CONTRACT_ID=LRPT.CONTRACT_ID AND LRP.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRPT.CONTRACT_ID AND LRI.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRIT ON LRIT.CONTRACT_ID=LRPT.CONTRACT_ID AND LRIT.PLAN_LIST=LRPT.PLAN_LIST WHERE ifnull(LRPT.RENT,0)>(ifnull(LRI.RENT,0)+ifnull(LRIT.RENT,0)) AND LRPT.PLAN_LIST<=(SELECT MIN(PLAN_LIST) FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')) ORDER BY LRPT.PLAN_LIST";
}
List<Map<String, String>> dataList = DataUtil.query(sql, Sqlca);
for(int i=0; i<dataList.size();i++) {
// 获取抵扣前当期应收租金本金利息
String PLAN_LIST=dataList.get(i).get("PLAN_LIST");
String PLAN_DATE = dataList.get(i).get("PLAN_DATE");
String PLAN_ID = dataList.get(i).get("PLAN_ID");
String INPUTTIME = dataList.get(i).get("INPUTTIME");
// end_corpus
BigDecimal over_rent = new BigDecimal(0);
BigDecimal over_corpus = new BigDecimal(0);
BigDecimal over_interest = new BigDecimal(0);
BigDecimal over_penalty = new BigDecimal(0);
if(i==dataList.size()-1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat sdfM = new SimpleDateFormat("yyyy/MM");
Date date1 = sdf.parse(PLAN_DATE);
Date date2 = sdf.parse(paydayAdjust);
//如果约定终止日的月份和最后一次循环所在月份是一个月才加上利息否则减免一部分利息
if(sdfM.format(date1).equals(sdfM.format(date2))){
//提交结清收取当月利息,强制结清不收利息
if("terminate".equals(adjustType)){
over_interest=new BigDecimal(dataList.get(i).get("OVER_INTEREST")).subtract(end_interest);
}
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus);
over_rent=over_interest.add(over_corpus);
}else{
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus);
over_rent=over_corpus;
}
}else {
String overSql = "select ifnull(LRPT.RENT,0) - ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0) - ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0) - ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now() ,'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now() ,'%Y/%m/%d %h/%m/%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST left join VI_LC_RENT_PLAN vlrp on vlrp.CONTRACT_ID = LRPT.CONTRACT_ID and vlrp.PLAN_LIST = LRPT.PLAN_LIST where (ifnull(LRPT.RENT,0) > ifnull(LRI.RENT,0)or vlrp.PENALTY_OVER>0) and LRPT.PLAN_LIST = '"+PLAN_LIST+"' order by LRPT.PLAN_LIST";
List<Map<String, String>> dataOverList = DataUtil.query(overSql, Sqlca);
BigDecimal plan_rent = new BigDecimal(dataOverList.get(0).get("OVER_RENT"));
BigDecimal plan_corpus = new BigDecimal(dataOverList.get(0).get("OVER_CORPUS"));
String factSql = "SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' and plan_list='"+PLAN_LIST+"' GROUP BY CONTRACT_ID, PLAN_LIST";
List<Map<String, String>> dataFactList = DataUtil.query(factSql, Sqlca);
BigDecimal old_rent = new BigDecimal(0);
BigDecimal old_corpus = new BigDecimal(0);
if(dataFactList.size()>0){
old_rent = new BigDecimal(dataFactList.get(0).get("RENT"));
old_corpus = new BigDecimal(dataFactList.get(0).get("CORPUS"));
}
over_rent=plan_rent.setScale(2,BigDecimal.ROUND_HALF_UP).subtract(old_rent);
over_corpus=plan_corpus.setScale(2,BigDecimal.ROUND_HALF_UP).subtract(old_corpus);
//提交结清收取逾期利息,强制结清不收利息
if("SETTLE_METHOD02".equals(SettleMethod)){
over_interest=over_rent.subtract(over_corpus);
}else{
over_rent=over_corpus;
}
}
if(over_rent.compareTo(BigDecimal.ZERO)!=0){
BizObject lritBo = lritBm.newObject();
lritBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lritBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lritBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lritBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lritBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lritBo.setAttributeValue("PLAN_LIST",PLAN_LIST);
lritBo.setAttributeValue("PLAN_ID",PLAN_ID);
lritBo.setAttributeValue("RENT",over_rent.toString());
lritBo.setAttributeValue("CORPUS",over_corpus.toString());
lritBo.setAttributeValue("INTEREST",over_interest.toString());
lritBo.setAttributeValue("PENALTY",over_penalty);
lritBo.setAttributeValue("HIRE_LIST",getHireList(lrptBo2.getAttribute("PAYMENT_NUMBER").toString(),PLAN_LIST,Sqlca));
lritBo.setAttributeValue("HIRE_DATE",paydayAdjust);
lritBo.setAttributeValue("CORPUS_ADJUST","0.00");
lritBo.setAttributeValue("INTEREST_ADJUST","0.00");
lritBo.setAttributeValue("PENALTY_ADJUST","0.00");
lritBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lritBo.setAttributeValue("DEDUCTION_ID","");
lritBo.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lritBo.setAttributeValue("ROLL_BACK","0");
lritBo.setAttributeValue("FLOWUNID",flowunid);
lritBo.setAttributeValue("IS_FLOWING","0");
lritBo.setAttributeValue("INPUTTIME",INPUTTIME);
lritBo.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lritBm.saveObject(lritBo);
}
}
/**
* 处理保证金未抵扣的留购价款
*/
BizObject boLFP = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN",tx).createQuery("CONTRACT_ID='"+CONTRACT_ID+"' and FEE_TYPE='feetype4'").getSingleResult(false);
if(!"coerce_terminate".equals(adjustType)){
if(REPURCHASE_MONEY.compareTo(BigDecimal.ZERO)!=0){
BizObject lfitBo2 = lfitBm.newObject();
lfitBo2.setAttributeValue("ID", UUIDUtil.getUUID());
lfitBo2.setAttributeValue("PROJECT_ID",boLFP.getAttribute("PROJECT_ID").getString());
lfitBo2.setAttributeValue("PROJECT_PLAN_NUMBER",boLFP.getAttribute("PROJECT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("CONTRACT_ID",boLFP.getAttribute("CONTRACT_ID").getString());
lfitBo2.setAttributeValue("CONTRACT_PLAN_NUMBER",boLFP.getAttribute("CONTRACT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("PAYMENT_NUMBER",boLFP.getAttribute("PAYMENT_NUMBER").getString());
lfitBo2.setAttributeValue("PLAN_ID",boLFP.getAttribute("ID").getString());
lfitBo2.setAttributeValue("PLAN_LIST","1");
lfitBo2.setAttributeValue("PAY_TYPE","pay_type_in");
lfitBo2.setAttributeValue("FEE_TYPE","feetype4");
lfitBo2.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfitBo2.setAttributeValue("CHARGE_LIST","1");
lfitBo2.setAttributeValue("FACT_DATE",paydayAdjust);
lfitBo2.setAttributeValue("FACT_MONEY",REPURCHASE_MONEY);
lfitBo2.setAttributeValue("FEE_ADJUST","0.00");
lfitBo2.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lfitBo2.setAttributeValue("ROLL_BACK","0");
lfitBo2.setAttributeValue("FLOWUNID",flowunid);
lfitBo2.setAttributeValue("IS_FLOWING","0");
lfitBo2.setAttributeValue("INPUTTIME", DateAssistant.getTodayNow());
lfitBo2.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lfitBm.saveObject(lfitBo2);
}
}
/**
* 处理保证金未抵扣的其他应收
*/
if(OTHER_IN.compareTo(BigDecimal.ZERO)!=0){
BizObject lfitBo2 = lfitBm.newObject();
lfitBo2.setAttributeValue("ID", UUIDUtil.getUUID());
lfitBo2.setAttributeValue("PROJECT_ID",boLFP.getAttribute("PROJECT_ID").getString());
lfitBo2.setAttributeValue("PROJECT_PLAN_NUMBER",boLFP.getAttribute("PROJECT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("CONTRACT_ID",boLFP.getAttribute("CONTRACT_ID").getString());
lfitBo2.setAttributeValue("CONTRACT_PLAN_NUMBER",boLFP.getAttribute("CONTRACT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("PAYMENT_NUMBER",boLFP.getAttribute("PAYMENT_NUMBER").getString());
lfitBo2.setAttributeValue("PLAN_ID",OTHER_IN_ID);
lfitBo2.setAttributeValue("PLAN_LIST","1");
lfitBo2.setAttributeValue("PAY_TYPE","pay_type_in");
lfitBo2.setAttributeValue("FEE_TYPE","feetype8");
lfitBo2.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfitBo2.setAttributeValue("CHARGE_LIST","1");
lfitBo2.setAttributeValue("FACT_DATE",paydayAdjust);
lfitBo2.setAttributeValue("FACT_MONEY",OTHER_IN);
lfitBo2.setAttributeValue("FEE_ADJUST","0.00");
lfitBo2.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lfitBo2.setAttributeValue("ROLL_BACK","0");
lfitBo2.setAttributeValue("FLOWUNID",flowunid);
lfitBo2.setAttributeValue("IS_FLOWING","0");
lfitBo2.setAttributeValue("INPUTTIME", DateAssistant.getTodayNow());
lfitBo2.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lfitBm.saveObject(lfitBo2);
}
if("coerce_terminate".equals(adjustType)){
String sql1="SELECT ((((ifnull(lcfd.interest,0))+ifnull(lcfd.interest_adjust,0)))) AS interest_over,lrpt.PLAN_LIST AS plan_list FROM LC_RENT_PLAN lrpt LEFT JOIN (SELECT lri.PAYMENT_NUMBER AS payment_number,lri.PLAN_LIST AS plan_list,SUM(lri.INTEREST) AS interest,SUM(lri.INTEREST_ADJUST) AS interest_adjust FROM lc_rent_income lri WHERE lri.ROLL_BACK='0' GROUP BY lri.PAYMENT_NUMBER,lri.PLAN_LIST) lcfd ON lrpt.PAYMENT_NUMBER=lcfd.payment_number AND lrpt.PLAN_LIST=lcfd.plan_list WHERE lrpt.CONTRACT_ID='\" + CONTRACT_ID + \"' AND (lrpt.INTEREST-(ifnull(lcfd.interest,0)+ifnull(lcfd.interest_adjust,0)))> 0 AND ifnull(lcfd.interest,0)>=0";
List<Map<String, String>> dataList1 = DataUtil.query(sql1, tx);
String plan_list="";
String INTEREST_OVER="";
for(int i=0;i<dataList1.size();i++) {
plan_list=dataList1.get(i).get("PLAN_LIST");
INTEREST_OVER=dataList1.get(i).get("INTEREST_OVER");
Sqlca.executeSQL(new SqlObject("update LC_RENT_PLAN_temp set rent=corpus+"+INTEREST_OVER+", INTEREST="+INTEREST_OVER+" where CONTRACT_ID='"+CONTRACT_ID+"' AND PLAN_LIST='"+plan_list+"'"));
}
}
/**
* 租金计划临时表变更回笼状态
*/
List<BizObject> lrptBoList2 = lrptBm.createQuery("FLOWUNID='"+flowunid+"' and v.ifnull(PLAN_STATUS,'未回笼')<>'已回笼' order by plan_list desc").getResultList(false);
for(int i=0;i<lrptBoList2.size();i++) {
String PLAN_LIST = lrptBoList2.get(i).getAttribute("PLAN_LIST").toString();
double RENT = Double.parseDouble(lrptBoList2.get(i).getAttribute("RENT").toString());
DataUtil.executeUpdate("UPDATE LC_RENT_PLAN_TEMP SET PLAN_STATUS=(SELECT CASE WHEN (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))>="+RENT+" THEN '已回笼' WHEN (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))> 0 AND (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))<"+RENT+" THEN '部分回笼' ELSE '未回笼' END FROM (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID, SUM(ifnull(RENT,0)) AS RENT FROM LC_RENT_INCOME_TEMP WHERE FLOWUNID='"+flowunid+"' AND PLAN_LIST='"+PLAN_LIST+"' )LFIT LEFT JOIN (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID, SUM(ifnull(RENT,0)) AS RENT FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+CONTRACT_ID+"' AND PLAN_LIST='"+PLAN_LIST+"' )LRI ON LRI.CONTRACT_ID=LFIT.CONTRACT_ID ) WHERE FLOWUNID='"+flowunid+"' AND PLAN_LIST='"+PLAN_LIST+"'", tx);
}
// 变更租赁物
DataUtil.executeUpdate("UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE=SETTLE_STATUS WHERE FLOWUNID='"+flowunid+"' ",tx);
BizObjectManager lcctBom = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP", Sqlca);
BizObject lcctBo = lcctBom.createQuery("flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
BigDecimal clean_lease_money = new BigDecimal(lcctBo.getAttribute("CLEAN_LEASE_MONEY").toString()); //融资额
List<BizObject> lrptBList = lrptBm.createQuery("flowunid=:flowunid order by plan_list").setParameter("flowunid", flowunid).getResultList(true);
for(BizObject lrptB : lrptBList) {
String corpus = lrptB.getAttribute("CORPUS").toString();
BigDecimal bdCorpus = new BigDecimal(corpus);
lrptB.setAttributeValue("ALL_REMAIN_CORPUS", clean_lease_money.subtract(bdCorpus).toString());
clean_lease_money = clean_lease_money.subtract(bdCorpus);
lrptBm.saveObject(lrptB);
}
Sqlca.commit();
}catch(Exception e){
e.printStackTrace();
try {
Sqlca.rollback();
} catch (JBOException jboException) {
jboException.printStackTrace();
}
return "操作失败";
} finally {
try {
if(Sqlca!=null) {
Sqlca.disConnect();
}
} catch (JBOException e) {
e.printStackTrace();
}
}
return "操作成功";
}
/**
* 获取回笼期项
*/
public String getHireList(String paymentNumber,String planList,com.amarsoft.awe.util.Transaction Sqlca) throws Exception{
String hireList = Sqlca.getString("select max(HIRE_LIST) HIRE_LIST from (select max(HIRE_LIST) HIRE_LIST from LC_RENT_INCOME_TEMP where ROLL_BACK='0' and IS_FLOWING='0' and PAYMENT_NUMBER='"+paymentNumber+"' and PLAN_LIST='"+planList+"' union all select max(HIRE_LIST) HIRE_LIST from LC_RENT_INCOME where ROLL_BACK='0' and PAYMENT_NUMBER='"+paymentNumber+"' and PLAN_LIST='"+planList+"') aa");
if(hireList==null){
return "1";
}
int hireList2 = Integer.valueOf(hireList);
return hireList2+1+"";
}
}

View File

@ -177,4 +177,24 @@ public interface LC_FUND_RENT_ADJUST{
* 商定还款日息差 STRING(32)<br>
*/
public static final String AGREED_DATEPENALTY = "AGREED_DATEPENALTY";
/**
* 结清方式 STRING(32)<br>
*/
public static final String SETTLE_METHOD = "SETTLE_METHOD";
/**
* 租赁物比重 STRING(32)<br>
*/
public static final String PROPROTION_NUMBER = "PROPROTION_NUMBER";
/**
* 融资金额() STRING(32)<br>
*/
public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY";
/**
* 部分结清车辆未到期本金 STRING(32)<br>
*/
public static final String PREMATURE_MONEY = "PREMATURE_MONEY";
/**
* 剩余车辆未到期本金 STRING(32)<br>
*/
public static final String RESIDUE_MONEY = "RESIDUE_MONEY";
}

View File

@ -181,4 +181,24 @@ public interface LC_FUND_RENT_ADJUST_TEMP{
* 商定还款日息差 STRING(32)<br>
*/
public static final String AGREED_DATEPENALTY = "AGREED_DATEPENALTY";
/**
* 结清方式 STRING(32)<br>
*/
public static final String SETTLE_METHOD = "SETTLE_METHOD";
/**
* 租赁物比重 STRING(32)<br>
*/
public static final String PROPROTION_NUMBER = "PROPROTION_NUMBER";
/**
* 融资金额() STRING(32)<br>
*/
public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY";
/**
* 部分结清车辆未到期本金 STRING(32)<br>
*/
public static final String PREMATURE_MONEY = "PREMATURE_MONEY";
/**
* 剩余车辆未到期本金 STRING(32)<br>
*/
public static final String RESIDUE_MONEY = "RESIDUE_MONEY";
}