diff --git a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml index cd0033a27..d7f055de4 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml @@ -374,6 +374,7 @@ + diff --git a/src_jbo/jbo/com/tenwa/entity/comm/own/LB_FIVEGRADEDETAILED_INFO.java b/src_jbo/jbo/com/tenwa/entity/comm/own/LB_FIVEGRADEDETAILED_INFO.java index 1785600e5..8e390bc7c 100644 --- a/src_jbo/jbo/com/tenwa/entity/comm/own/LB_FIVEGRADEDETAILED_INFO.java +++ b/src_jbo/jbo/com/tenwa/entity/comm/own/LB_FIVEGRADEDETAILED_INFO.java @@ -153,4 +153,8 @@ public interface LB_FIVEGRADEDETAILED_INFO{ * ʱ STRING(32)
*/ public static final String INPUTTIME = "INPUTTIME"; + /** + * ڿͻδڱ STRING(32)
+ */ + public static final String NO_DUE_CORPUS = "NO_DUE_CORPUS"; } \ No newline at end of file diff --git a/src_tenwa/com/tenwa/lease/flow/project/commbusiness/CreateFiveGradeDataAction.java b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/CreateFiveGradeDataAction.java index 8fdae5bd1..39281c48e 100644 --- a/src_tenwa/com/tenwa/lease/flow/project/commbusiness/CreateFiveGradeDataAction.java +++ b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/CreateFiveGradeDataAction.java @@ -28,12 +28,15 @@ public class CreateFiveGradeDataAction { double ALL_TOTAL_OUTSTANDING_PRINCIPAL; //ڿͻδϼ double TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL; + //ڿͻδڱ + double NO_DUE_CORPUS; //---弶δ---- double NOTBACK_PRINCIPAL_NORMAL; double NOTBACK_PRINCIPAL_ATTENTION; double NOTBACK_PRINCIPAL_SECONDARY; double NOTBACK_PRINCIPAL_SUSPICIOUS; double NOTBACK_PRINCIPAL_LOSS; + //---弶ͻ---- String EXISTING_CUSTOMERS_NUM_NORMAL; String EXISTING_CUSTOMERS_NUM_ATTENTION; @@ -58,6 +61,8 @@ public class CreateFiveGradeDataAction { TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL = this.calcOverDueCustomerAllCorpus(distributorNo, tx); + NO_DUE_CORPUS = this.getNoDueCORPUS(distributorno, tx); + NOTBACK_PRINCIPAL_NORMAL = this.calcOverDuePrincipal(distributorNo, "CORPUS", false, "ClassifyResult01", tx); NOTBACK_PRINCIPAL_ATTENTION = this.calcOverDuePrincipal(distributorNo, "CORPUS", false, "ClassifyResult02", tx); NOTBACK_PRINCIPAL_SECONDARY = this.calcOverDuePrincipal(distributorNo, "CORPUS", false, "ClassifyResult03", tx); @@ -113,8 +118,10 @@ public class CreateFiveGradeDataAction { newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.TOTAL_OUTSTANDING_PRINCIPAL, new BigDecimal(TOTAL_OUTSTANDING_PRINCIPAL).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()); // newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.OVERDUERATE, new BigDecimal(ALL_TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL/ALL_TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); - newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.OVERDUERATE, new BigDecimal(TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL/TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); - + //newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.OVERDUERATE, new BigDecimal(TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL/TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); + newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.OVERDUERATE, new BigDecimal(TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:(NO_DUE_CORPUS+TOTAL_OVERDUE_PRINCIPAL)/TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); + newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.NO_DUE_CORPUS, new BigDecimal(NO_DUE_CORPUS).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()); + // newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.BADNESSRATE, new BigDecimal(ALL_TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:(NOTBACK_PRINCIPAL_LOSS+NOTBACK_PRINCIPAL_SUSPICIOUS+NOTBACK_PRINCIPAL_SECONDARY)/ALL_TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.BADNESSRATE, new BigDecimal(TOTAL_OUTSTANDING_PRINCIPAL==0.0?0.0:(NOTBACK_PRINCIPAL_LOSS+NOTBACK_PRINCIPAL_SUSPICIOUS+NOTBACK_PRINCIPAL_SECONDARY)/TOTAL_OUTSTANDING_PRINCIPAL).multiply(yibai).setScale(4, BigDecimal.ROUND_HALF_UP).toPlainString()+"%"); newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.EXISTING_CUSTOMERS_NUM_NORMAL, EXISTING_CUSTOMERS_NUM_NORMAL); @@ -196,6 +203,9 @@ public class CreateFiveGradeDataAction { + " left join lb_contract_info lci on lci.ID = lrp.CONTRACT_ID " + " where lci.distributor_id = '"+distributorNo+"' and lrp.PLAN_DATE<'"+StringFunction.getTodayNow().substring(0, 10)+"' " + " group by lci.distributor_id "; + System.out.println("================================"); + System.out.println("弶ඨʱ鿴ڽsql"+sql); + System.out.println("================================"); SqlObject sqlobj = new SqlObject(sql); ASResultSet rs = tx.getASResultSet(sqlobj); if(rs.next()){ @@ -258,6 +268,22 @@ public class CreateFiveGradeDataAction { return sumsurpcorpus; } + private Double getNoDueCORPUS(String distributorNo,Transaction tx) throws Exception{ + double noDueCorpus = 0.00; + String sql = "SELECT SUM(IFNULL(LRP2.NO_DUE_CORPUS,0)) AS NO_DUE_CORPUS FROM LB_CONTRACT_INFO LCI " + + "LEFT JOIN (SELECT LRP.CONTRACT_ID FROM LC_RENT_PLAN LRP LEFT JOIN " + + "(SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME " + + "GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST " + + "WHERE (IFNULL(LRP.RENT,0)-IFNULL(LRI.RENT,0))>0 AND DATEDIFF(NOW(),LRP.PLAN_DATE)>=3 GROUP BY LRP.CONTRACT_ID )LRP1 ON LRP1.CONTRACT_ID=LCI.ID " + + "LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS) AS NO_DUE_CORPUS FROM LC_RENT_PLAN WHERE DATEDIFF(PLAN_DATE,NOW())>=0 GROUP BY CONTRACT_ID )LRP2 ON LRP2.CONTRACT_ID=LRP1.CONTRACT_ID " + + "WHERE LCI.DISTRIBUTOR_ID='"+distributorNo+"' GROUP BY LCI.DISTRIBUTOR_ID "; + SqlObject sqlobj = new SqlObject(sql); + ASResultSet rs = tx.getASResultSet(sqlobj); + if(rs.next()){ + noDueCorpus = rs.getDouble("sumsurpcorpus"); + } + return noDueCorpus; + } public String getContractId() { return contractId; } @@ -289,6 +315,7 @@ public String toString() { + ", TOTAL_OVERDUE_PRINCIPAL=" + TOTAL_OVERDUE_PRINCIPAL + ", TOTAL_OVERDUE_INTEREST=" + TOTAL_OVERDUE_INTEREST + ", TOTAL_PENALTY=" + TOTAL_PENALTY + + ", NO_DUE_CORPUS="+NO_DUE_CORPUS + ", TOTAL_OUTSTANDING_PRINCIPAL=" + TOTAL_OUTSTANDING_PRINCIPAL + ", TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL=" + TOTAL_OUTSTANDINGCUSTOMER_PRINCIPAL