94 lines
4.0 KiB
Java
94 lines
4.0 KiB
Java
package com.tenwa.loan.handler;
|
||
|
||
import java.math.BigDecimal;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
import jbo.com.tenwa.entity.comm.own.OWN_INFO;
|
||
import jbo.loan.LOAN_BILL_INFO;
|
||
import jbo.loan.LOAN_CONTRACT_INFO;
|
||
|
||
import com.amarsoft.are.jbo.BizObject;
|
||
import com.amarsoft.are.jbo.JBOFactory;
|
||
import com.amarsoft.are.jbo.JBOTransaction;
|
||
import com.amarsoft.awe.dw.handler.impl.CommonHandler;
|
||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||
import com.tenwa.loan.calc.FinancingCalculateServiceImpl;
|
||
import com.tenwa.reckon.util.NumberUtils;
|
||
|
||
public class LoanInfoHandler extends CommonHandler {
|
||
|
||
@Override
|
||
protected void initDisplayForAdd(BizObject bo) throws Exception {
|
||
|
||
String contractid=this.asPage.getParameter("contractid");
|
||
BizObject loan=JBOFactory.createBizObjectQuery(LOAN_CONTRACT_INFO.CLASS_NAME,"id=:id").setParameter("id", contractid).getSingleResult(false);
|
||
DataOperatorUtil.coptyJBOPropertyNoKey(loan, bo);
|
||
bo.setAttributeValue("contract_id", contractid);
|
||
String ownid=loan.getAttribute("own_id").getString();
|
||
BizObject own=JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME,"OWN_NUMBER=:id").setParameter("id", ownid).getSingleResult(false);
|
||
if(own!=null){
|
||
bo.setAttributeValue("OWN_NAME", own.getAttribute("OWN_NAME").getString());
|
||
}
|
||
BigDecimal loanAmout=new BigDecimal(loan.getAttribute("LOAN_AMOUNT").getString());
|
||
List<BizObject> bills=JBOFactory.createBizObjectQuery(LOAN_BILL_INFO.CLASS_NAME,"contract_id=:contractid").setParameter("contractid", contractid).getResultList(false);
|
||
BigDecimal billAmout=BigDecimal.ZERO;
|
||
for(BizObject bill:bills){
|
||
billAmout=billAmout.add(new BigDecimal(bill.getAttribute("LOAN_AMOUNT").getString()));
|
||
}
|
||
bo.setAttributeValue("LOAN_AMOUNT", loanAmout.subtract(billAmout).toString());
|
||
}
|
||
|
||
@Override
|
||
protected boolean validityCheck(BizObject bo, boolean isInsert) {
|
||
try{
|
||
String contractid=bo.getAttribute("contract_id").getString();
|
||
BizObject loan=JBOFactory.createBizObjectQuery(LOAN_CONTRACT_INFO.CLASS_NAME, "id=:id").setParameter("id", contractid).getSingleResult(false);
|
||
BigDecimal loanAmout=new BigDecimal(loan.getAttribute("LOAN_AMOUNT").getString());
|
||
List<BizObject> bills=JBOFactory.createBizObjectQuery(LOAN_BILL_INFO.CLASS_NAME,"contract_id=:contractid").setParameter("contractid", contractid).getResultList(false);
|
||
BigDecimal billAmout=BigDecimal.ZERO;
|
||
for(BizObject bill:bills){
|
||
if(!bill.getAttribute("id").getString().equals(bo.getAttribute("id").getString()))
|
||
billAmout=billAmout.add(new BigDecimal(bill.getAttribute("LOAN_AMOUNT").getString()));
|
||
}
|
||
billAmout=billAmout.add(new BigDecimal(bo.getAttribute("loan_amount").getString()));
|
||
if(loanAmout.compareTo(billAmout)<0){
|
||
this.errors="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"+NumberUtils.formatNumberDoubleQian( loanAmout.toString())+"С<EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD>"+NumberUtils.formatNumberDoubleQian(billAmout.toString())+"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><EFBFBD><EFBFBD>";
|
||
return false;
|
||
}
|
||
if(isInsert){
|
||
BizObject bill=JBOFactory.createBizObjectQuery(LOAN_BILL_INFO.CLASS_NAME,"BILL_ID=:billid").setParameter("billid",bo.getAttribute("BILL_ID").getString()).getSingleResult(false);
|
||
if(bill!=null){
|
||
this.errors="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>"+bo.getAttribute("BILL_ID").getString()+"<EFBFBD>ظ<EFBFBD>";
|
||
return false;
|
||
}
|
||
}else{
|
||
|
||
BizObject bill=JBOFactory.createBizObjectQuery(LOAN_BILL_INFO.CLASS_NAME,"BILL_ID=:billid and id<>'"+bo.getAttribute("id").getString()+"'").setParameter("billid",bo.getAttribute("BILL_ID").getString()).getSingleResult(false);
|
||
if(bill!=null){
|
||
this.errors="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>"+bo.getAttribute("BILL_ID").getString()+"<EFBFBD>ظ<EFBFBD>";
|
||
return false;
|
||
}
|
||
}
|
||
}catch(Exception e){
|
||
e.printStackTrace();
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
@Override
|
||
protected void afterInsert(JBOTransaction tx, BizObject bo)
|
||
throws Exception {
|
||
FinancingCalculateServiceImpl fcsi=new FinancingCalculateServiceImpl();
|
||
Map<String,String> param=new HashMap<String, String>();
|
||
param.put("lastDate", bo.getAttribute("loan_start_date").getString());
|
||
param.put("operType", "add");
|
||
fcsi.saveCalculateFundPlan(bo,param);
|
||
}
|
||
|
||
|
||
|
||
}
|