渠道商五级分类逾期率错误
This commit is contained in:
parent
0c6982b0a2
commit
fa90133da6
@ -374,6 +374,7 @@
|
||||
<attribute name="FINANCING_AMOUNT_LOSS" label="融资金额损失" type="STRING" length="32"/>
|
||||
<attribute name="NOTBACK_PRINCIPAL_LOSS" label="未还本金损失" type="STRING" length="32"/>
|
||||
<attribute name="INPUTTIME" label="创建时间" type="STRING" length="32"/>
|
||||
<attribute name="NO_DUE_CORPUS" label="逾期客户的未到期本金" type="STRING" length="32"/>
|
||||
</attributes>
|
||||
<manager>
|
||||
<managerProperties>
|
||||
|
||||
@ -153,4 +153,8 @@ public interface LB_FIVEGRADEDETAILED_INFO{
|
||||
* 创建时间 STRING(32)<br>
|
||||
*/
|
||||
public static final String INPUTTIME = "INPUTTIME";
|
||||
/**
|
||||
* 逾期客户的未到期本金 STRING(32)<br>
|
||||
*/
|
||||
public static final String NO_DUE_CORPUS = "NO_DUE_CORPUS";
|
||||
}
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user