From 7a9f88d771a4f9e1945dabb53e7eb3cb6a2de17c Mon Sep 17 00:00:00 2001 From: jianghongdong Date: Tue, 14 Aug 2018 15:17:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E5=85=89=E5=A4=A7=20=E4=BA=94?= =?UTF-8?q?=E7=BA=A7=E5=88=86=E7=B1=BB=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/etc/jbo/jbo_lease.xml | 47 +++++ .../AutoFiveGradeClassification.java | 173 ++++++++++++++---- 2 files changed, 187 insertions(+), 33 deletions(-) diff --git a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml index d1f0641ae..fa994222a 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml @@ -4301,6 +4301,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/AutoFiveGradeClassification.java b/src_tenwa/com/tenwa/lease/app/quartzmession/AutoFiveGradeClassification.java index 99d499b68..79da82006 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/AutoFiveGradeClassification.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/AutoFiveGradeClassification.java @@ -3,7 +3,10 @@ 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; @@ -22,54 +25,158 @@ 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 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{ - 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 = lccs.getAttribute("FIVE_GRADE").toString().trim(); - if (!"".equals(fivegrade)) { - int i = Integer.valueOf(fiveResult.replace("ClassifyResult", "")); - int j = Integer.valueOf(fivegrade.replace("ClassifyResult", "")); - //Îå¼¶·ÖÀà·¢Éúϵ÷ - if (i > j) { - lccsManager.createQuery("update o set IS_REMIND=:isremind,FIVE_GRADE=:fivegrade,FIVE_GRADE_DATE=:fivegradedate where ID=:id ").setParameter("isremind","Y").setParameter("fivegrade",fiveResult).setParameter("fivegradedate",DateAssistant.getToday()).setParameter("id",lccs.getAttribute("ID").getString()).executeUpdate(); - } - }else{ - lccsManager.createQuery("update o set FIVE_GRADE=:fivegrade,FIVE_GRADE_DATE=:fivegradedate where ID=:id ").setParameter("fivegrade",fiveResult).setParameter("fivegradedate",DateAssistant.getToday()).setParameter("id",lccs.getAttribute("ID").getString()).executeUpdate(); - } - } - } - } - tx.commit(); + autoFiveGradeClassification(); QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "³É¹¦"); } catch (Exception e) { QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClassification", "success", "ʧ°Ü"); + e.printStackTrace(); + } + } + + /** + * ×Ô¶¯Îå¼¶·ÖÀà + * @return + * @throws Exception + */ + public String autoFiveGradeClassification() throws Exception{ + JBOTransaction tx=null; + try { + tx= JBOFactory.createJBOTransaction(); + int a=0;//Õý³£ºÏͬÊý + int b=0;//¹Ø×¢ºÏͬÊý + int c=0;//´Î¼¶ºÏͬÊý + int d=0;//¿ÉÒɺÏͬÊý + int e=0;//ËðʧºÏͬÊý + 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 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.»ñÈ¡ÓâÆÚÌìÊýºÍÆÚ´Î + 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.»ñÈ¡µÈ¼¶ + String fiveGrade = getFiveConfig(overday);//ProductParamUtil.getFiveGradeClassification(productId, overdays); + //2.¸üÐÂÅÜÅú״̬±í(×îÐÂ) + lccsManager.createQuery("update o set FIVE_GRADE='"+fiveGrade+"',FIVE_GRADE_DATE=:fivegradedate,overduedays='"+overday+"',overdue='"+outlist+"' 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.Èë·ÖÀàµÈ¼¶Ã÷ϸ±í(ÀÛ¼Æ) + 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()+"||ÈÕ×Ô¶¯ÅÜÅú"); + fgbo.setAttributeValue("INPUTUSERID", "admin"); + fgbo.setAttributeValue("INPUTUSERID", "admin"); + fgbo.setAttributeValue("INPUTTIME", DateAssistant.getToday()); + five_gr.saveObject(fgbo); + } + //3.¶Ô¸÷¸öµÈ¼¶½øÐÐͳ¼Æ + switch(fiveGrade){ + case "ClassifyResult01":a++;break; + case "ClassifyResult02":b++;break; + case "ClassifyResult03":c++;break; + case "ClassifyResult04":d++;break; + case "ClassifyResult05":e++;break; + } + } + } + //Èë»ã×ܱí + 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()+",×Ô¶¯ÅÜÅú"); + bo.setAttributeValue("INPUTUSERID","admin"); + five_grade.saveObject(bo); + } + tx.commit(); + } catch (Exception e) { try { if(tx!=null){ tx.rollback(); } } catch (JBOException e1) { - // TODO Auto-generated catch block 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("select * from O where "+overDays+" BETWEEN overdue_loan_min and overdue_loan_max").getSingleResult(false); + if(gradeConfg!=null){ + return gradeConfg.getAttribute(LM_GRADE_CLASSIFICATION.loan_result).getString(); + } + throw new JBOException("Îå¼¶·ÖÀàδÅäÖá­¡­"); } + + + }