apzl_leasing/src_tenwa/com/tenwa/lease/app/quartzmession/AutoFiveGradeClassification.java
2018-08-27 11:59:21 +08:00

189 lines
8.1 KiB
Java
Raw Blame History

package com.tenwa.lease.app.quartzmession;
import java.util.List;
import jbo.app.tenwa.calc.LC_CALC_CONDITION_STATUS;
import jbo.app.tenwa.customer.LM_GRADE_CLASSIFICATION;
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
import jbo.com.tenwa.lease.comm.LB_FIVE_GRADE;
import jbo.com.tenwa.lease.comm.LB_FIVE_GRADE_SUMMARY;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.amarsoft.app.util.ProductParamUtil;
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.are.util.StringFunction;
import com.base.util.QuartzUtil;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.flow.comm.handler.flowmanage.OverdueProjectCache;
public class AutoFiveGradeClassification implements Job {
// @Override
// public void execute(JobExecutionContext arg0) throws JobExecutionException{
// JBOTransaction tx=null;
// String startime = StringFunction.getTodayNow();
// try {
// tx= JBOFactory.createJBOTransaction();
// BizObjectManager lccsManager = JBOFactory.getBizObjectManager(LC_CALC_CONDITION_STATUS.CLASS_NAME);
// BizObjectManager lciManager = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME);
// tx.join(lccsManager);
// tx.join(lciManager);
// List<BizObject> lccss = lccsManager.createQuery("IS_AUTO='Y' ").getResultList(false);
// if(lccss.size()>0){
// for(BizObject lccs:lccss){
// BizObject lci = lciManager.createQuery("ID=:id ").setParameter("id",lccs.getAttribute("CONTRACT_ID").getString()).getSingleResult(false);
// if (lci == null) {
// continue;
// }
// String productId = lci.getAttribute("PRODUCT_ID").getString();
// if(productId!=null){
// String overdays = OverdueProjectCache.getOverDays(lccs.getAttribute("CONTRACT_ID").getString(), lccs.getAttribute("PAYMENT_NUMBER").getString());
// //String fiveResult = ProductParamUtil.getFiveGradeClassification(productId,overdays,"OverDueDays","ClassifyResult");
// String fivegrade = getFiveConfig(overdays);//lccs.getAttribute("FIVE_GRADE").toString().trim();
// lccsManager.createQuery("update o set FIVE_GRADE=:fivegrade,FIVE_GRADE_DATE=:fivegradedate where ID=:id ").setParameter("fivegrade",fivegrade).setParameter("fivegradedate",DateAssistant.getToday()).setParameter("id",lccs.getAttribute("ID").getString()).executeUpdate();
// }
// }
// }
// tx.commit();
// QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "<22>ɹ<EFBFBD>");
// } catch (Exception e) {
// QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "ʧ<><CAA7>");
// try {
// if(tx!=null){
// tx.rollback();
// }
// } catch (JBOException e1) {
// e1.printStackTrace();
// }
// e.printStackTrace();
// }
// }
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException{
String startime = StringFunction.getTodayNow();
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
String curUserId = userId == null? "system" : userId.toString();
try {
autoFiveGradeClassification();
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "<EFBFBD>ɹ<EFBFBD>", curUserId);
} catch (Exception e) {
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "error", "ʧ<EFBFBD><EFBFBD>", curUserId);
e.printStackTrace();
}
}
/**
* <20>Զ<EFBFBD><D4B6><EFBFBD><E5BCB6><EFBFBD><EFBFBD>
* @return
* @throws Exception
*/
public String autoFiveGradeClassification() throws Exception{
JBOTransaction tx=null;
try {
tx= JBOFactory.createJBOTransaction();
// int a=0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
// int b=0;//<2F><>ע<EFBFBD><D7A2>ͬ<EFBFBD><CDAC>
// int c=0;//<2F>μ<EFBFBD><CEBC><EFBFBD>ͬ<EFBFBD><CDAC>
// int d=0;//<2F><><EFBFBD>ɺ<EFBFBD>ͬ<EFBFBD><CDAC>
// int e=0;//<2F><>ʧ<EFBFBD><CAA7>ͬ<EFBFBD><CDAC>
BizObjectManager lccsManager = JBOFactory.getBizObjectManager(LC_CALC_CONDITION_STATUS.CLASS_NAME);
BizObjectManager lciManager = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME);
// BizObjectManager five_grade = JBOFactory.getBizObjectManager(LB_FIVE_GRADE_SUMMARY.CLASS_NAME);
BizObjectManager five_gr = JBOFactory.getBizObjectManager(LB_FIVE_GRADE.CLASS_NAME);
tx.join(lccsManager);
tx.join(lciManager);
tx.join(five_gr);
List<BizObject> lccss = lccsManager.createQuery("select CONTRACT_ID,PAYMENT_NUMBER from O where O.is_auto = 'Y' and PLAN_STATUS = '31'").getResultList(false);
if(lccss.size()>0){
for(BizObject lccs:lccss){
String FIVE_GRADE;
BizObject lci = lciManager.createQuery("ID=:id ").setParameter("id",lccs.getAttribute("CONTRACT_ID").getString()).getSingleResult(false);
String productId = lci.getAttribute("PRODUCT_ID").getString();
if(productId!=null){
//0.<2E><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
String overday = OverdueProjectCache.getOverDays(lccs.getAttribute("CONTRACT_ID").getString(), lccs.getAttribute("PAYMENT_NUMBER").getString());
// Integer overdays=Integer.parseInt(overday.replaceAll("\\.0", ""));
// String outlist = OverdueProjectCache.getOutList(lccs.getAttribute("CONTRACT_ID").getString(), lccs.getAttribute("PAYMENT_NUMBER").getString());
// outlist=outlist.replaceAll("\\.0", "");
//1.<2E><>ȡ<EFBFBD>ȼ<EFBFBD>
String fiveGrade = getFiveConfig(overday);//ProductParamUtil.getFiveGradeClassification(productId, overdays);
//2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>(<28><><EFBFBD><EFBFBD>)
lccsManager.createQuery("update o set FIVE_GRADE='"+fiveGrade+"',FIVE_GRADE_DATE=:fivegradedate where CONTRACT_ID=:id ")
.setParameter("fivegradedate",DateAssistant.getToday()).setParameter("id",lccs.getAttribute("CONTRACT_ID").getString()).executeUpdate();
FIVE_GRADE=fiveGrade;
BizObject singleResult = five_gr.createQuery("select * from o where FIVE_GRADE_DATE=:fivegradedate and CONTRACT_ID=:id ").setParameter("fivegradedate",DateAssistant.getToday()).setParameter("id",lccs.getAttribute("CONTRACT_ID").getString()).getSingleResult(false);
//3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ϸ<EFBFBD><CFB8>(<28>ۼ<EFBFBD>)
if(null==singleResult){
BizObject fgbo=five_gr.newObject();
fgbo.setAttributeValue("CONTRACT_ID", lccs.getAttribute("CONTRACT_ID").getString());
fgbo.setAttributeValue("FIVE_GRADE",FIVE_GRADE);
fgbo.setAttributeValue("FIVE_GRADE_DATE", DateAssistant.getToday());
fgbo.setAttributeValue("FIVE_GRADE_DEMO", DateAssistant.getToday()+"||<7C><><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>");
fgbo.setAttributeValue("INPUTUSERID", "admin");
fgbo.setAttributeValue("INPUTUSERID", "admin");
fgbo.setAttributeValue("INPUTTIME", DateAssistant.getToday());
five_gr.saveObject(fgbo);
}
//3.<2E>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>
// switch(fiveGrade){
// case "ClassifyResult01":a++;break;
// case "ClassifyResult02":b++;break;
// case "ClassifyResult03":c++;break;
// case "ClassifyResult04":d++;break;
// case "ClassifyResult05":e++;break;
// }
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD>
// BizObject bo=five_grade.newObject();
// bo.setAttributeValue("EXCUTE_DATE", DateAssistant.getToday());
// bo.setAttributeValue("CONTRACT_TOTAL",a+b+c+d+e);
// bo.setAttributeValue("NORMAL_CONTRACT",a);
// bo.setAttributeValue("ATTENTION_CONTRACT",b);
// bo.setAttributeValue("SECONDARY_CONTRACT",c);
// bo.setAttributeValue("SUSPECT_CONTRACT",d);
// bo.setAttributeValue("LOSS_CONTRACT",e);
// bo.setAttributeValue("DEMO",DateAssistant.getToday()+",<2C>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>");
// bo.setAttributeValue("INPUTUSERID","admin");
// five_grade.saveObject(bo);
}
tx.commit();
} catch (Exception e) {
try {
if(tx!=null){
tx.rollback();
}
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
return "error";
}
return "success";
}
public String getFiveConfig(String overDays) throws JBOException{
BizObject gradeConfg = JBOFactory.getBizObjectManager(LM_GRADE_CLASSIFICATION.CLASS_NAME).createQuery(overDays+" BETWEEN overdue_loan_min and overdue_loan_max").getSingleResult(false);
if(gradeConfg!=null){
return gradeConfg.getAttribute(LM_GRADE_CLASSIFICATION.loan_result).getString();
}else{
return "ClassifyResult01";
}
}
}