175 lines
7.7 KiB
Java
175 lines
7.7 KiB
Java
package com.tenwa.lease.app.quartzmession;
|
||
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
import jbo.app.tenwa.calc.LC_CALC_CONDITION_STATUS;
|
||
import jbo.app.tenwa.customer.DISTRIBUTOR_INFO;
|
||
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.amarsoft.awe.util.Transaction;
|
||
import com.base.util.QuartzUtil;
|
||
import com.tenwa.comm.util.date.DateAssistant;
|
||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||
import com.tenwa.flow.comm.handler.flowmanage.OverdueProjectCache;
|
||
import com.tenwa.lease.flow.project.commbusiness.CreateFiveGradeDataAction;
|
||
|
||
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();
|
||
BizObjectManager diManager = JBOFactory.getBizObjectManager(DISTRIBUTOR_INFO.CLASS_NAME);
|
||
BizObjectManager lccsManager = JBOFactory.getBizObjectManager(LC_CALC_CONDITION_STATUS.CLASS_NAME);
|
||
BizObjectManager lciManager = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.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);
|
||
List<Map<String, String>> lccss = DataOperatorUtil.getDataBySql("select CONTRACT_ID,PAYMENT_NUMBER from LC_CALC_CONDITION_STATUS where is_auto = 'Y' and PLAN_STATUS = '31'");
|
||
if(lccss!=null && lccss.size()>0){
|
||
for(int i = 0 ; i < lccss.size() ; i++ ){
|
||
String FIVE_GRADE;
|
||
BizObject lci = lciManager.createQuery("ID=:id and businesstype is not null").setParameter("id", lccss.get(i).get("CONTRACT_ID") ).getSingleResult(false);
|
||
String productId = lci.getAttribute("PRODUCT_ID").getString();
|
||
String businessType = lci.getAttribute(LB_CONTRACT_INFO.BUSINESSTYPE).getString();
|
||
if(productId!=null){
|
||
//0.<2E><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||
String overday = OverdueProjectCache.getOverDays( lccss.get(i).get("CONTRACT_ID") , lccss.get(i).get("PAYMENT_NUMBER") );
|
||
//1.<2E><>ȡ<EFBFBD>ȼ<EFBFBD>
|
||
String fiveGrade = getFiveConfig(overday,businessType);//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", lccss.get(i).get("CONTRACT_ID") ).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" , lccss.get(i).get("CONTRACT_ID") ).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", lccss.get(i).get("CONTRACT_ID") );
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
Transaction txv = Transaction.createTransaction(tx);
|
||
List<BizObject> diList = diManager.createQuery("1=1").getResultList(false);
|
||
CreateFiveGradeDataAction cfgda = null;
|
||
for(BizObject dibo:diList){
|
||
cfgda=new CreateFiveGradeDataAction(dibo.getAttribute("distributor_no").getString(),txv);
|
||
cfgda.insertFiveGradeTable(txv);
|
||
}
|
||
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,String businessType) throws JBOException{
|
||
BizObject gradeConfg = JBOFactory.getBizObjectManager(LM_GRADE_CLASSIFICATION.CLASS_NAME).createQuery(overDays+" BETWEEN overdue_loan_min and overdue_loan_max and businesstype='"+businessType+"'").getSingleResult(false);
|
||
if(gradeConfg!=null){
|
||
return gradeConfg.getAttribute(LM_GRADE_CLASSIFICATION.loan_result).getString();
|
||
}else{
|
||
return "ClassifyResult01";
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|