Commit 1ce40d5f by huangchengyi

1.0

parent 2325d292
Showing with 103 additions and 132 deletions
...@@ -15,6 +15,10 @@ import ( ...@@ -15,6 +15,10 @@ import (
"time" "time"
) )
type Rabitmq struct {
Dsn string //rabitmq 配置1
}
type RecvPro struct {} type RecvPro struct {}
type RabbitMsg struct { type RabbitMsg struct {
...@@ -34,6 +38,7 @@ func main() { ...@@ -34,6 +38,7 @@ func main() {
model_dong := dao.Model_dong //所有动态模型算法列表 model_dong := dao.Model_dong //所有动态模型算法列表
if mod == -1 { if mod == -1 {
queues() //队列监听 queues() //队列监听
return
} }
_ ,ok := model_dong[mod] _ ,ok := model_dong[mod]
...@@ -42,10 +47,6 @@ func main() { ...@@ -42,10 +47,6 @@ func main() {
os.Exit(1) os.Exit(1)
} }
if mod == -1 {
queues() //队列监听
}
ctx := context.Background() //上下文 ctx := context.Background() //上下文
if mod >0 { if mod >0 {
...@@ -82,19 +83,25 @@ func main() { ...@@ -82,19 +83,25 @@ func main() {
fmt.Println("\r\n所有任务已经完成") fmt.Println("\r\n所有任务已经完成")
} }
} }
//队列监听 //队列监听
func queues() { func queues() {
t := &RecvPro{} t := &RecvPro{}
var (
dc struct {
Dsn1 *Rabitmq // rab配置1
}
)
paladin.Get("rabitmq.toml").UnmarshalTOML(&dc) //读取配置
queueExchange := &rabbitmq.QueueExchange{ queueExchange := &rabbitmq.QueueExchange{
"fengkong_dong_count", "fengkong_dong_count",
"fengkong_dong_count", "fengkong_dong_count",
"fengkong_exchange", "fengkong_exchange",
"direct", "direct",
"amqp://guest:guest@192.168.2.232:5672/", "amqp://"+dc.Dsn1.Dsn+"/",
} }
for{ for{
......
...@@ -5,7 +5,7 @@ import ( ...@@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"kaopu-server/internal/logic" "kaopu-server/internal/logic"
"kaopu-server/internal/model" "kaopu-server/internal/model"
"strconv" "math"
) )
const ( const (
...@@ -14,7 +14,7 @@ const ( ...@@ -14,7 +14,7 @@ const (
_sql5 = "select count(1) yuqibi from lie_basic_detail where delay_day>0 and erp_company_code='%s'" //发生逾期总笔数 _sql5 = "select count(1) yuqibi from lie_basic_detail where delay_day>0 and erp_company_code='%s'" //发生逾期总笔数
_sql6 = "select count(1) allbi from lie_basic_detail where return_amount>0 and erp_company_code='%s'" //收款总笔数 _sql6 = "select count(1) allbi from lie_basic_detail where return_amount>0 and erp_company_code='%s'" //收款总笔数
_sql8 = "select sum(delay_day) sum_delay_day from lie_basic_detail where delay_day>0 and erp_company_code='%s'" //每笔逾期账款的逾期时间合计 _sql8 = "select sum(delay_day) sum_delay_day from lie_basic_detail where delay_day>0 and erp_company_code='%s'" //每笔逾期账款的逾期时间合计
_sql9 = "select sum(delay_day) sum_zhang from lie_basic_detail where erp_company_code='%s'" //每笔付款账期合计 应收日期在1/1-1/31的支付天数合计 _sql9 = "select sum(return_time - business_time) sum_zhang from lie_basic_detail where erp_company_code='%s'" //每笔付款账期合计 应收日期在1/1-1/31的支付天数合计
_sql10 = "select sum(return_amount) sum_rongcha_huan from lie_basic_detail where delay_day<0 and erp_company_code='%s'" //容差范围内的收款(还款)金额 应收日期在1/1-1/31且逾期支付天数<容差值(目前为0)的下单金额合计 _sql10 = "select sum(return_amount) sum_rongcha_huan from lie_basic_detail where delay_day<0 and erp_company_code='%s'" //容差范围内的收款(还款)金额 应收日期在1/1-1/31且逾期支付天数<容差值(目前为0)的下单金额合计
_sql11 = "select count(1) sum_rongcha_bi from lie_basic_detail where delay_day<0 and erp_company_code='%s'" //完成容差范围内收款的笔数 应收日期在1/1-1/31且0<逾期支付天数<容差值(目前为0)的下单订单数 _sql11 = "select count(1) sum_rongcha_bi from lie_basic_detail where delay_day<0 and erp_company_code='%s'" //完成容差范围内收款的笔数 应收日期在1/1-1/31且0<逾期支付天数<容差值(目前为0)的下单订单数
_sql12 = "select sum(order_amount) sum_jiaohuo from lie_basic_detail where erp_company_code='%s'" //交货总金额 退货总金额+出库总金额 _sql12 = "select sum(order_amount) sum_jiaohuo from lie_basic_detail where erp_company_code='%s'" //交货总金额 退货总金额+出库总金额
...@@ -24,49 +24,52 @@ const ( ...@@ -24,49 +24,52 @@ const (
_sql16 = "select sum(final_score) sum_dong_score from lie_scores where type=2 and com_credits_id=%d"; //总计动态信用分 _sql16 = "select sum(final_score) sum_dong_score from lie_scores where type=2 and com_credits_id=%d"; //总计动态信用分
) )
var (
chrate float64; //算出来的率或天
score_one float64 =0; //对应梯度分数
)
/* /*
@param ladder_score 对应梯度 率 或天 @param ladder_score 对应梯度 率 或天
@param ladder_score 分数,最终对应哪个梯度得分 @param ladder_score 分数,最终对应哪个梯度得分
*/ */
//1 计算逾期金额率:延期支付时间超过平均账期的金额/收款总额: //1 计算逾期金额率:延期支付时间超过平均账期的金额/收款总额:
func (d *dao) DongYuqiRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongYuqiRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
)
//查询逾期率 //查询逾期率
oneyu,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql3,y["erp_company_code"])) oneyu,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql3,y["erp_company_code"]))
if oneyu["yuqilv"] == "" || oneyu == nil { //没有结果 if oneyu["yuqilv"] == "" || oneyu == nil { //没有结果
return chrate = 0
ladder_rate = "查询逾期率:0"
}else{
chrate = logic.MyFloat64(oneyu["yuqilv"])
ladder_rate = oneyu["yuqilv"]
} }
//查询逾期率对应分数 //查询逾期率对应分数
yuqilv,_ := strconv.ParseFloat(oneyu["yuqilv"],64)
for _,y := range modelItems{ for _,y := range modelItems{
ladder_range_min := logic.MyFloat64(y["ladder_range_min"]) ladder_range_min := logic.MyFloat64(y["ladder_range_min"])
ladder_range_max := logic.MyFloat64(y["ladder_range_max"]) ladder_range_max := logic.MyFloat64(y["ladder_range_max"])
if (ladder_range_min <= yuqilv && yuqilv < ladder_range_max ) { if (ladder_range_min <= chrate && chrate < ladder_range_max ) {
score_one = logic.MyFloat64(y["score"]) //得到的分数 score_one = logic.MyFloat64(y["score"]) //得到的分数
} }
} }
ladder_rate = oneyu["yuqilv"]
ladder_score = score_one ladder_score = score_one
return return
} }
//2 发生逾期笔数率: 发生逾期笔数/收款总笔数 //2 发生逾期笔数率: 发生逾期笔数/收款总笔数
func (d *dao) DongYuqiBi(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongYuqiBi(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
)
//查询逾期笔数 //查询逾期笔数
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql5,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql5,y["erp_company_code"]))
if c1["yuqibi"] == "0" { //没有结果 if c1["yuqibi"] == "0" { //没有结果
return chrate = 0
ladder_rate = "查询逾期笔数:0"
}else{
//收款总笔数
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"]))
chrate = logic.MyFloat64(c1["yuqibi"])/logic.MyFloat64(c2["allbi"])
ladder_rate = c1["yuqibi"]+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
} }
//收款总笔数
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"]))
chrate := logic.MyFloat64(c1["yuqibi"])/logic.MyFloat64(c2["allbi"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
ladder_range_min := logic.MyFloat64(y["ladder_range_min"]) ladder_range_min := logic.MyFloat64(y["ladder_range_min"])
...@@ -75,27 +78,23 @@ func (d *dao) DongYuqiBi(ctx context.Context,y map[string]string,modelItems []ma ...@@ -75,27 +78,23 @@ func (d *dao) DongYuqiBi(ctx context.Context,y map[string]string,modelItems []ma
score_one = logic.MyFloat64(y["score"]) //得到的分数 score_one = logic.MyFloat64(y["score"]) //得到的分数
} }
} }
//fmt.Print(modelItems,birate,score_one)
ladder_rate = c1["yuqibi"]+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//3 平均逾期支付时间(天): 每笔逾期账款的逾期时间合计/发生逾期总笔数 //3 平均逾期支付时间(天): 每笔逾期账款的逾期时间合计/发生逾期总笔数
func (d *dao) DongYuqiDivDay(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongYuqiDivDay(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
)
//每笔逾期账款的逾期时间合计 //每笔逾期账款的逾期时间合计
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql8,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql8,y["erp_company_code"]))
if c1["sum_delay_day"] == "0" { //没有结果 if c1["sum_delay_day"] == "0" { //没有结果
return chrate = 0
ladder_rate = "每笔逾期账款的逾期时间合计:0"
}else{
//发生逾期总笔数
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql5,y["erp_company_code"]))
chrate = logic.MyFloat64(c1["sum_delay_day"])/logic.MyFloat64(c2["yuqibi"])
ladder_rate = c1["sum_delay_day"]+"/"+c2["yuqibi"]+"="+logic.MyFloat64ToStr(chrate)
} }
//发生逾期总笔数
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql5,y["erp_company_code"]))
chrate := logic.MyFloat64(c1["sum_delay_day"])/logic.MyFloat64(c2["yuqibi"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
ladder_range_min := logic.MyFloat64(y["ladder_range_min"]) ladder_range_min := logic.MyFloat64(y["ladder_range_min"])
...@@ -105,35 +104,30 @@ func (d *dao) DongYuqiDivDay(ctx context.Context,y map[string]string,modelItems ...@@ -105,35 +104,30 @@ func (d *dao) DongYuqiDivDay(ctx context.Context,y map[string]string,modelItems
} }
} }
ladder_rate = c1["sum_delay_day"]+"/"+c2["yuqibi"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//4 平均付款时间(天): 每笔付款账期合计/收款总笔数 //4 平均付款时间(天): 每笔付款账期合计/收款总笔数
func (d *dao) DongDivPayDay(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongDivPayDay(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
mod_name string = Model_dong[project_id] //统计动态模型名称
log_pre string = Model_dong_log[project_id] //日志文件名称
)
//每笔付款账期合计 //每笔付款账期合计
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql9,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql9,y["erp_company_code"]))
if c1["sum_zhang"] == "0" { //没有结果 if c1["sum_zhang"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"每笔付款账期合计0,跳过"; chrate = 0
fmt.Print(log1) ladder_rate = "每笔付款账期合计:0"
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return //每笔付款账期合计算天,向下取整 1.1 =1
} sum_zhang_day := math.Floor(logic.MyFloat64(c1["sum_zhang"])/86400)
//收款总笔数 //收款总笔数
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"])) c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"]))
if c2["allbi"] == "0" { //没有结果 if c2["allbi"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"每笔付款账期合计0,跳过"; chrate = 0;
fmt.Print(log1) ladder_rate = "收款总笔数:0"
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return chrate = sum_zhang_day/logic.MyFloat64(c2["allbi"])
ladder_rate = logic.MyFloat64ToStr(sum_zhang_day)+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
}
} }
chrate := logic.MyFloat64(c1["sum_zhang"])/logic.MyFloat64(c2["allbi"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
...@@ -144,35 +138,28 @@ func (d *dao) DongDivPayDay(ctx context.Context,y map[string]string,modelItems [ ...@@ -144,35 +138,28 @@ func (d *dao) DongDivPayDay(ctx context.Context,y map[string]string,modelItems [
} }
} }
ladder_rate = c1["sum_zhang"]+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//5 正常收款金额率: 容差范围内的收款(还款)金额/收款总金额 //5 正常收款金额率: 容差范围内的收款(还款)金额/收款总金额
func (d *dao) DongNormalPayRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongNormalPayRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
mod_name string = Model_dong[project_id] //统计动态模型名称
log_pre string = Model_dong_log[project_id] //日志文件名称
)
//容差范围内的收款(还款)金额 //容差范围内的收款(还款)金额
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql10,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql10,y["erp_company_code"]))
if c1["sum_rongcha_huan"] == "0" { //没有结果 if c1["sum_rongcha_huan"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"容差范围内的收款(还款)金额0,跳过"; chrate = 0
fmt.Print(log1) ladder_rate = "容差范围内的收款(还款)金额:0"
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return //收款金额
} c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql15,y["erp_company_code"]))
//收款金额 if c2["sum_shou"] == "0" { //没有结果
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql15,y["erp_company_code"])) chrate = 0;
if c2["sum_shou"] == "0" { //没有结果 ladder_rate = "收款金额:0"
log1 := "公司编码:"+y["erp_company_code"]+"收款总金额合计0,跳过"; }else{
fmt.Print(log1) chrate = logic.MyFloat64(c1["sum_rongcha_huan"])/logic.MyFloat64(c2["sum_shou"])
logic.Loginfo("统计--"+mod_name+log1,log_pre) ladder_rate = c1["sum_rongcha_huan"]+"/"+c2["sum_shou"]+"="+logic.MyFloat64ToStr(chrate)
return }
} }
chrate := logic.MyFloat64(c1["sum_rongcha_huan"])/logic.MyFloat64(c2["sum_shou"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
...@@ -183,36 +170,28 @@ func (d *dao) DongNormalPayRate(ctx context.Context,y map[string]string,modelIte ...@@ -183,36 +170,28 @@ func (d *dao) DongNormalPayRate(ctx context.Context,y map[string]string,modelIte
} }
} }
ladder_rate = c1["sum_rongcha_huan"]+"/"+c2["sum_shou"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//6 正常收款笔数率:完成容差范围内收款的笔数/收款总笔数 //6 正常收款笔数率:完成容差范围内收款的笔数/收款总笔数
func (d *dao) DongNormalPayBi(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongNormalPayBi(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
mod_name string = Model_dong[project_id] //统计动态模型名称
log_pre string = Model_dong_log[project_id] //日志文件名称
)
//完成容差范围内收款的笔数 //完成容差范围内收款的笔数
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql11,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql11,y["erp_company_code"]))
if c1["sum_rongcha_bi"] == "0" { //没有结果 if c1["sum_rongcha_bi"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"完成容差范围内收款的笔数0,跳过"; chrate = 0
fmt.Print(log1) ladder_rate = "完成容差范围内收款的笔数:0"
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return //收款总笔数
} c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"]))
//收款总笔数 if c1["sum_rongcha_bi"] == "0" {
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql6,y["erp_company_code"])) chrate = 0;
if c2["allbi"] == "0" { //没有结果 ladder_rate = "收款总笔数:0"
log1 := "公司编码:"+y["erp_company_code"]+"收款总笔数0,跳过"; }else{
fmt.Print(log1) chrate := logic.MyFloat64(c1["sum_rongcha_bi"])/logic.MyFloat64(c2["allbi"])
logic.Loginfo("统计--"+mod_name+log1,log_pre) ladder_rate = c1["sum_rongcha_bi"]+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
return }
} }
chrate := logic.MyFloat64(c1["sum_rongcha_bi"])/logic.MyFloat64(c2["allbi"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
ladder_range_min := logic.MyFloat64(y["ladder_range_min"]) ladder_range_min := logic.MyFloat64(y["ladder_range_min"])
...@@ -222,35 +201,28 @@ func (d *dao) DongNormalPayBi(ctx context.Context,y map[string]string,modelItems ...@@ -222,35 +201,28 @@ func (d *dao) DongNormalPayBi(ctx context.Context,y map[string]string,modelItems
} }
} }
ladder_rate = c1["sum_rongcha_bi"]+"/"+c2["allbi"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//8 交货及时率: 按期交货总金额/交货总金额(下单总金额) PS按期交货:逾期交付天数<0 //8 交货及时率: 按期交货总金额/交货总金额(下单总金额) PS按期交货:逾期交付天数<0
func (d *dao) DongInTimeRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongInTimeRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
mod_name string = Model_dong[project_id] //统计动态模型名称
log_pre string = Model_dong_log[project_id] //日志文件名称
)
//按期交货总金额 //按期交货总金额
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql10,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql10,y["erp_company_code"]))
if c1["sum_rongcha_huan"] == "0" { //没有结果 if c1["sum_rongcha_huan"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"按期交货总金额0,跳过"; chrate = 0
fmt.Print(log1) ladder_rate = "按期交货总金额:0";
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return //下单总金额
} c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql12,y["erp_company_code"]))
//下单总金额 if c2["sum_jiaohuo"] == "0" { //没有结果
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql12,y["erp_company_code"])) chrate = 0;
if c2["sum_jiaohuo"] == "0" { //没有结果 ladder_rate = "下单总金额:0"
log1 := "公司编码:"+y["erp_company_code"]+"下单总金额0,跳过"; }else{
fmt.Print(log1) chrate = logic.MyFloat64(c1["sum_rongcha_huan"])/logic.MyFloat64(c2["sum_jiaohuo"])
logic.Loginfo("统计--"+mod_name+log1,log_pre) ladder_rate = c1["sum_rongcha_huan"]+"/"+c2["sum_jiaohuo"]+"="+logic.MyFloat64ToStr(chrate)
return }
} }
chrate := logic.MyFloat64(c1["sum_rongcha_huan"])/logic.MyFloat64(c2["sum_jiaohuo"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
...@@ -261,35 +233,28 @@ func (d *dao) DongInTimeRate(ctx context.Context,y map[string]string,modelItems ...@@ -261,35 +233,28 @@ func (d *dao) DongInTimeRate(ctx context.Context,y map[string]string,modelItems
} }
} }
ladder_rate = c1["sum_rongcha_huan"]+"/"+c2["sum_jiaohuo"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return return
} }
//9 退货率 : 退货总金额/出库总金额(下单总金额) PS退货总金额金额为负数的订单 //9 退货率 : 退货总金额/出库总金额(下单总金额) PS退货总金额金额为负数的订单
func (d *dao) DongReturnRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) { func (d *dao) DongReturnRate(ctx context.Context,y map[string]string,modelItems []map[string]string,project_id int) (ladder_rate string,ladder_score float64,err error) {
var (
score_one float64 =0; //分数
mod_name string = Model_dong[project_id] //统计动态模型名称
log_pre string = Model_dong_log[project_id] //日志文件名称
)
//退货总金额 //退货总金额
c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql13,y["erp_company_code"])) c1,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql13,y["erp_company_code"]))
if c1["sum_tuihuo"] == "0" { //没有结果 if c1["sum_tuihuo"] == "0" { //没有结果
log1 := "公司编码:"+y["erp_company_code"]+"按期交货总金额0,跳过"; chrate = 0
fmt.Print(log1) ladder_rate = "退货总金额:0"
logic.Loginfo("统计--"+mod_name+log1,log_pre) }else{
return //出库总金额
} c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql14,y["erp_company_code"]))
//出库总金额 if c2["sum_chuhuo"] == "0" { //没有结果
c2,_ := d.QueryOne(ctx,2,fmt.Sprintf(_sql14,y["erp_company_code"])) chrate = 0;
if c2["sum_chuhuo"] == "0" { //没有结果 ladder_rate = "出库总金额:0"
log1 := "公司编码:"+y["erp_company_code"]+"出库总金额0,跳过"; }else{
fmt.Print(log1) chrate = logic.MyFloat64(c1["sum_tuihuo"])/logic.MyFloat64(c2["sum_chuhuo"])
logic.Loginfo("统计--"+mod_name+log1,log_pre) ladder_rate = c1["sum_tuihuo"]+"/"+c2["sum_chuhuo"]+"="+logic.MyFloat64ToStr(chrate)
return }
} }
chrate := logic.MyFloat64(c1["sum_tuihuo"])/logic.MyFloat64(c2["sum_chuhuo"])
//计算分数 //计算分数
for _,y := range modelItems{ for _,y := range modelItems{
...@@ -300,7 +265,6 @@ func (d *dao) DongReturnRate(ctx context.Context,y map[string]string,modelItems ...@@ -300,7 +265,6 @@ func (d *dao) DongReturnRate(ctx context.Context,y map[string]string,modelItems
} }
} }
ladder_rate = c1["sum_tuihuo"]+"/"+c2["sum_chuhuo"]+"="+logic.MyFloat64ToStr(chrate)
ladder_score = score_one ladder_score = score_one
return 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