Commit 20b615eb by Joneq

修改动态评分

parent 1e9478f0
...@@ -116,9 +116,6 @@ func (d *dao) BankDongMain(ctx context.Context,project_id int,erp_company_code s ...@@ -116,9 +116,6 @@ func (d *dao) BankDongMain(ctx context.Context,project_id int,erp_company_code s
} }
month_six = strings.TrimRight(month_six,",") // 六个月sql month_six = strings.TrimRight(month_six,",") // 六个月sql
d.QueryOne(ctx,3,"update lie_scores set current_score = 0,current_score =0,total_score=0,final_score=0 where type = 2 and month in ("+month_six+")")
fmt.Println("update lie_scores set current_score = 0,current_score =0,total_score=0,final_score=0 where type = 2 and month in ("+month_six+")")
for _,v := range company_info{ //循环当前公司,计算各个公司对应分数 for _,v := range company_info{ //循环当前公司,计算各个公司对应分数
if v["erp_company_code"] == "" { if v["erp_company_code"] == "" {
continue; continue;
......
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"kaopu-server/internal/logic" "kaopu-server/internal/logic"
"kaopu-server/internal/model" "kaopu-server/internal/model"
"strings"
"time" "time"
) )
...@@ -30,12 +31,13 @@ const ( ...@@ -30,12 +31,13 @@ const (
_sql6 = "select * from lie_basic_month where erp_company_code='%s' and month in(%s)" //获取详情 _sql6 = "select * from lie_basic_month where erp_company_code='%s' and month in(%s)" //获取详情
_sql7 = "SELECT ((t.my_rate+1)/(t.plat_rate+1))-1 as delay_rate FROM " + _sql7 = "SELECT ( sum(delay_amount)/sum(receive_amount) ) as plat_rate from lie_basic_month where MONTH in (%s)"
"( " + //客户近6个月平均逾期金额率
"SELECT " + _sql8 = "SELECT ( SELECT SUM(delay_amount) / SUM(receive_amount) FROM lie_basic_month WHERE erp_company_code = '%s' AND MONTH IN (%s)) AS my_rate "
" (SELECT sum(delay_amount)/sum(receive_amount) from lie_basic_month where erp_company_code = '%s' and MONTH in (%s)) my_rate, " + //平台完成账期订单金额
" (SELECT sum(delay_amount)/sum(receive_amount) from lie_basic_month where MONTH in (%s)) plat_rate " + _sql10 = "SELECT (sum(receive_amount)) as success_money from lie_basic_month where MONTH in (%s)"
")t " //近6个月平台账期金额
_sql11 = "SELECT sum(receive_amount) as sum_money from lie_basic_month where MONTH in (%s)"
) )
/* /*
...@@ -47,6 +49,14 @@ func (d *dao) DongRate(ctx context.Context,y map[string]string,modelItems []map[ ...@@ -47,6 +49,14 @@ func (d *dao) DongRate(ctx context.Context,y map[string]string,modelItems []map[
score_one float64 =0; //对应梯度分数 score_one float64 =0; //对应梯度分数
s1,s2 string //拼接六个月月份字符串 s1,s2 string //拼接六个月月份字符串
) )
companyMonthInfoSql := fmt.Sprintf("select * from lie_basic_month where erp_company_code = '%s' and month in (%s)",y["erp_company_code"],month_six)
monthInfo,_ := d.QueryOne(ctx,1,companyMonthInfoSql)
if len(monthInfo) == 0 {
logic.LogWrite("没有订单数据跳过:"+y["erp_company_code"],"dong_error",1)
return
}
sqla := fmt.Sprintf(_sql4,y["erp_company_code"],month_six) sqla := fmt.Sprintf(_sql4,y["erp_company_code"],month_six)
c1,_ := d.QueryOne(ctx,1,sqla) c1,_ := d.QueryOne(ctx,1,sqla)
...@@ -76,10 +86,20 @@ func (d *dao) DongRate(ctx context.Context,y map[string]string,modelItems []map[ ...@@ -76,10 +86,20 @@ func (d *dao) DongRate(ctx context.Context,y map[string]string,modelItems []map[
s1 = c1["return_amount"] s1 = c1["return_amount"]
s2 = c1["unload_amount"] s2 = c1["unload_amount"]
case 44: //近6个月逾期变化率 case 44: //近6个月逾期变化率
sql7 := fmt.Sprintf(_sql7,y["erp_company_code"],month_six,month_six) sql8 := fmt.Sprintf(_sql8,y["erp_company_code"],month_six)
c3,_ := d.QueryOne(ctx,1,sql7) c3,_ := d.QueryOne(ctx,1,sql8)
if c3["delay_rate"] == "" { //近6月逾期金额率
if c3["my_rate"] == "" {
c3["my_rate"] = "0"
}
//获取平台6个月加权平均逾期金额率
c3["plat_rate"] = d.GetBankPlatRate(ctx,1,month_six,y["erp_company_code"])
if c3["plat_rate"] == "" {
c3["delay_rate"] = "0" c3["delay_rate"] = "0"
}else{
c3["delay_rate"] = logic.MyFloat64ToStr(1 - ( logic.MyFloat64(c3["my_rate"]) / logic.MyFloat64(c3["plat_rate"] )))
} }
ladder_rate = logic.MyFloat64(c3["delay_rate"]); ladder_rate = logic.MyFloat64(c3["delay_rate"]);
...@@ -160,5 +180,36 @@ ear := time.Now().Format("2006") ...@@ -160,5 +180,36 @@ ear := time.Now().Format("2006")
*/ */
//平台6个月加权平均逾期金额率算法为:
// (第1月的平台逾期率*第1月平台完成账期订单金额+第2月的平台逾期率*第2月平台完成账期订单金额+第3月的平台逾期率*第3月平台完成账期订单金额.......)/近6个月平台账期订单金额
func (d *dao) GetBankPlatRate(ctx context.Context,db int,monthsix,erpcompany_code string)(plat_rate string){
var plat_rate_float float64
plat_rate_float = 0;
sql11 := fmt.Sprintf(_sql11,monthsix)
sumMoney,_ := d.QueryOne(ctx,db,sql11)
if sumMoney["sum_money"] == "" {
sumMoney["sum_money"] = "0"
plat_rate = "0"
return
}
for _,current_month:= range strings.Split(monthsix,","){
sql7 := fmt.Sprintf(_sql7,current_month)
sql10 := fmt.Sprintf(_sql10,current_month)
current_rate,_ := d.QueryOne(ctx,db,sql7)
current_money,_:= d.QueryOne(ctx,db,sql10)
plat_rate_float += logic.MyFloat64(current_rate["plat_rate"]) * logic.MyFloat64(current_money["success_money"])
}
plat_rate = logic.MyFloat64ToStr(plat_rate_float / logic.MyFloat64(sumMoney["sum_money"]))
return
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment