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 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", "成功"); // } catch (Exception e) { // QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "失败"); // 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 { autoFiveGradeClassificationNew(); QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "成功", curUserId); } catch (Exception e) { QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "error", "失败", curUserId); e.printStackTrace(); } } public void autoFiveGradeClassificationNew() throws Exception { Transaction sqlca = null; Transaction sqlca1 = null; try { sqlca = Transaction.createTransaction(JBOFactory.createJBOTransaction()); //更新合同状态为100,105 分类状态 sqlca.executeSQL("update LC_CALC_CONDITION_STATUS LCCS join lb_contract_info lci on LCCS.CONTRACT_ID = lci.ID set LCCS.FIVE_GRADE='ClassifyResult01',LCCS.FIVE_GRADE_DATE= date_format(curdate(),'%Y/%m/%d'),LCCS.FIVE_GRADE_DEMO=concat(date_format(curdate(),'%Y/%m/%d'),'日自动跑批') where lci.CONTRACT_STATUS in ('100','105') and LCCS.FIVE_GRADE <> 'ClassifyResult01'"); //更新合同状态为31分类状态(逾期) sqlca.executeSQL("{call proc_autoFiveClassify()}"); //更新合同状态为31分类状态(未逾期,刚起租) 2022/03/15 sqlca.executeSQL("{call proc_autoFiveClassify_normal()}"); sqlca.commit(); List diList = JBOFactory.getBizObjectManager(DISTRIBUTOR_INFO.CLASS_NAME).createQuery("1=1").getResultList(false); for (BizObject bo : diList) { sqlca1 = Transaction.createTransaction(JBOFactory.createJBOTransaction()); new CreateFiveGradeDataAction(bo.getAttribute("distributor_no").getString(), bo, sqlca1).insertFiveGradeTable(sqlca1); sqlca1.commit(); } } catch (Exception e) { if (sqlca != null) sqlca.rollback(); if (sqlca1 != null) sqlca1.rollback(); } } /** * 自动五级分类 * @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 lccss = lccsManager.createQuery("select CONTRACT_ID,PAYMENT_NUMBER from O where O.is_auto = 'Y' and PLAN_STATUS = '31'").getResultList(false); List> 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.获取逾期天数和期次 String overday = OverdueProjectCache.getOverDays( lccss.get(i).get("CONTRACT_ID") , lccss.get(i).get("PAYMENT_NUMBER") ); //1.获取等级 String fiveGrade = getFiveConfig(overday,businessType);//ProductParamUtil.getFiveGradeClassification(productId, overdays); //2.更新跑批状态表(最新) 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.入分类等级明细表(累计) 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()+"||日自动跑批"); fgbo.setAttributeValue("INPUTUSERID", "admin"); fgbo.setAttributeValue("INPUTUSERID", "admin"); fgbo.setAttributeValue("INPUTTIME", DateAssistant.getToday()); five_gr.saveObject(fgbo); } } } } Transaction txv = Transaction.createTransaction(tx); List 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"; } } }