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