更新研发

This commit is contained in:
hoteas
2022-02-17 04:10:53 +08:00
parent d4759bb03c
commit 6a46d06e81
144 changed files with 81989 additions and 102 deletions
+308 -100
View File
@@ -15,7 +15,7 @@ import (
"unicode"
)
func analyse(companys []Map, tag Map) {
func TestAnalyse(companys []Map, tag Map) {
cs := append(NewCompanys{}, companys...)
for _, company := range companys {
vm := otto.New()
@@ -23,7 +23,7 @@ func analyse(companys []Map, tag Map) {
AnalyseSortType = call.Argument(0).String()
sort.Sort(cs)
for k, v := range cs {
if company.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) > v.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) {
if company.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) >= v.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) {
val, _ := vm.ToValue(k + 1)
return val
}
@@ -41,10 +41,11 @@ func analyse(companys []Map, tag Map) {
uploadData := company.GetMap("upload_data")
for k, _ := range uploadData {
strV := uploadData.GetString(k)
strV = strings.Replace(strV, " ", "", -1)
v := float64(0)
if strV == "是" {
v = 1
}
//if strV == "否" {
// v = 0
//}
if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 {
v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100
@@ -53,6 +54,11 @@ func analyse(companys []Map, tag Map) {
if flV != 0 && v == 0 {
v = flV
}
if v == 0 && strV != "否" && strV != "0" {
v = 1
}
vm.Set(k, v)
}
@@ -65,7 +71,7 @@ func analyse(companys []Map, tag Map) {
}
strV := collectData.GetString(k)
if strings.Index(strV, "万人民币") != -1 {
strV = strings.Replace(strV, "", "万人民币", -1)
strV = strings.Replace(strV, "万人民币", "", -1)
}
vm.Set(k, strV)
}
@@ -85,14 +91,14 @@ func analyse(companys []Map, tag Map) {
vm.Set("res", nil)
_, e := vm.Run(tag.GetString("cmd"))
if e != nil {
fmt.Println(e)
fmt.Println(e, "dasdas")
analyseData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
continue
}
result, e := vm.Get("res")
if e != nil {
fmt.Println(e)
fmt.Println(e, "312sdqweqw")
analyseData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
continue
@@ -101,6 +107,8 @@ func analyse(companys []Map, tag Map) {
analyseData[tag.GetString("name")] = ObjToFloat64(result.String())
} else if result.String() == "NaN" {
analyseData[tag.GetString("name")] = 0
} else if result.String() == "Infinity" {
analyseData[tag.GetString("name")] = 0
} else {
analyseData[tag.GetString("name")] = result.String()
}
@@ -128,59 +136,64 @@ func (s NewCompanys) Less(i, j int) bool {
return s[i].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) > s[j].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType)
}
func totalAnalyse(companys []Map, tag Map, totalData Map) {
func totalTestAnalyse(companys []Map, tag Map, totalData Map) {
cs := append(NewCompanys{}, companys...)
for _, company := range companys {
vm := otto.New()
vm.Set("vcount", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(0)
return val
}
key := call.Argument(0).String()
AnalyseTypeName := "upload_data"
if company.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
num := float64(0)
for _, v := range cs {
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
//num++
num = num + v.GetMap(AnalyseTypeName).GetFloat64(key)
}
}
val, _ := vm.ToValue(num)
return val
})
vm.Set("count", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(len(cs))
return val
}
key := call.Argument(0).String()
vm := otto.New()
vm.Set("vcount", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(0)
return val
}
key := call.Argument(0).String()
if key == "IEDCSJZJTX0" || key == "IEDCSJZJTX" {
fmt.Println(key)
}
num := float64(0)
for _, v := range cs {
AnalyseTypeName := "upload_data"
if company.GetMap(AnalyseTypeName)[key] == nil {
if v.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
num := 0
for _, v := range cs {
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
num++
}
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
//num++
num = num + v.GetMap(AnalyseTypeName).GetFloat64(key)
}
val, _ := vm.ToValue(num)
}
val, _ := vm.ToValue(num)
return val
})
vm.Set("count", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(len(cs))
return val
})
}
key := call.Argument(0).String()
num := 0
for _, v := range cs {
AnalyseTypeName := "upload_data"
if v.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
num++
}
}
val, _ := vm.ToValue(num)
return val
})
for _, company := range companys {
//上传数据
uploadData := company.GetMap("upload_data")
for k, _ := range uploadData {
strV := uploadData.GetString(k)
strV = strings.Replace(strV, " ", "", -1)
v := float64(0)
if strV == "是" {
v = 1
}
//if strV == "否" {
// v = 0
//}
if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 {
v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100
}
@@ -188,9 +201,18 @@ func totalAnalyse(companys []Map, tag Map, totalData Map) {
if flV != 0 && v == 0 {
v = flV
}
vm.Set(k, v)
}
if k == "IEDCSJZJTX0" || k == "IEDCSJZJTX" {
fmt.Println(k)
}
if v == 0 && strV != "否" && strV != "0" {
v = 1
}
//vm.Set(k, v)
uploadData[k] = v
}
company["upload_data"] = uploadData
//api采集数据
collectData := company.GetMap("collect_data")
for k, cv := range collectData {
@@ -200,51 +222,223 @@ func totalAnalyse(companys []Map, tag Map, totalData Map) {
}
strV := collectData.GetString(k)
if strings.Index(strV, "万人民币") != -1 {
strV = strings.Replace(strV, "", "万人民币", -1)
strV = strings.Replace(strV, "万人民币", "", -1)
}
vm.Set(k, strV)
//vm.Set(k, strV)
collectData[k] = strV
}
company["collect_data"] = collectData
//api采集数据
analyseData := company.GetMap("analyse")
if analyseData == nil {
analyseData = Map{}
company["analyse"] = analyseData
}
for k, cv := range analyseData {
vm.Set(k, cv)
}
//totalData:=Map{}
//analyse
//for _,v:=range cmds{
vm.Set("res", nil)
_, e := vm.Run(tag.GetString("cmd"))
if e != nil {
fmt.Println(e)
totalData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
continue
}
result, e := vm.Get("res")
if e != nil {
fmt.Println(e)
totalData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
continue
}
if result.String() == ObjToStr(ObjToFloat64(result.String())) {
totalData[tag.GetString("name")] = ObjToFloat64(result.String())
} else if result.String() == "NaN" {
totalData[tag.GetString("name")] = 0
} else {
totalData[tag.GetString("name")] = result.String()
}
vm.Set(tag.GetString("name"), totalData[tag.GetString("name")])
//for k, cv := range analyseData {
// vm.Set(k, cv)
//}
}
//totalData:=Map{}
//analyse
//for _,v:=range cmds{
vm.Set("res", nil)
_, e := vm.Run(tag.GetString("cmd"))
if e != nil {
fmt.Println(e, "asdas")
totalData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
return
}
result, e := vm.Get("res")
if e != nil {
fmt.Println(e, "312dqwe")
totalData[tag.GetString("name")] = 0
vm.Set(tag.GetString("name"), 0)
return
}
if result.String() == ObjToStr(ObjToFloat64(result.String())) {
totalData[tag.GetString("name")] = ObjToFloat64(result.String())
} else if result.String() == "NaN" {
totalData[tag.GetString("name")] = 0
} else if result.String() == "Infinity" {
totalData[tag.GetString("name")] = 0
} else {
totalData[tag.GetString("name")] = result.String()
}
vm.Set(tag.GetString("name"), totalData[tag.GetString("name")])
}
func ctgAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
func totalAnalyse1(companys []Map, totalData Map) {
cs := append(NewCompanys{}, companys...)
vm := otto.New()
vm.Set("vcount", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(0)
return val
}
key := call.Argument(0).String()
num := float64(0)
for _, v := range cs {
AnalyseTypeName := "upload_data"
if v.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
//num++
num = num + v.GetMap(AnalyseTypeName).GetFloat64(key)
}
}
val, _ := vm.ToValue(num)
return val
})
vm.Set("count", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(len(cs))
return val
}
key := call.Argument(0).String()
num := 0
for _, v := range cs {
AnalyseTypeName := "upload_data"
if v.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
num++
}
}
val, _ := vm.ToValue(num)
return val
})
vm.Set("hmax", func(call otto.FunctionCall) otto.Value {
AnalyseSortType = call.Argument(0).String()
sort.Sort(cs)
fmt.Println(0, AnalyseTypeName, AnalyseSortType, cs[0].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType))
val, _ := vm.ToValue(cs[0].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType))
return val
})
vm.Set("hmin", func(call otto.FunctionCall) otto.Value {
AnalyseSortType = call.Argument(0).String()
fmt.Println(AnalyseSortType, "asddas")
sort.Sort(cs)
val, _ := vm.ToValue(cs[len(cs)-1].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType))
return val
})
//平均值
vm.Set("haverage", func(call otto.FunctionCall) otto.Value {
if call.Argument(0).IsUndefined() {
val, _ := vm.ToValue(0)
return val
}
key := call.Argument(0).String()
num := float64(0)
for _, v := range cs {
AnalyseTypeName := "upload_data"
if v.GetMap(AnalyseTypeName)[key] == nil {
AnalyseTypeName = "analyse"
}
if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 {
//num++
num = num + v.GetMap(AnalyseTypeName).GetFloat64(key)
}
}
val, _ := vm.ToValue(num / float64(len(cs)))
return val
})
for _, company := range companys {
//上传数据
uploadData := company.GetMap("upload_data")
for k, _ := range uploadData {
strV := uploadData.GetString(k)
strV = strings.Replace(strV, " ", "", -1)
v := float64(0)
//if strV == "否" {
// v = 0
//}
if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 {
v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100
}
flV := uploadData.GetFloat64(k)
if flV != 0 && v == 0 {
v = flV
}
if v == 0 && strV != "否" && strV != "0" {
v = 1
}
//vm.Set(k, v)
uploadData[k] = v
}
company["upload_data"] = uploadData
//api采集数据
collectData := company.GetMap("collect_data")
for k, cv := range collectData {
if cv == nil {
vm.Set(k, 0)
continue
}
strV := collectData.GetString(k)
if strings.Index(strV, "万人民币") != -1 {
strV = strings.Replace(strV, "万人民币", "", -1)
}
//vm.Set(k, strV)
collectData[k] = strV
}
company["collect_data"] = collectData
//api采集数据
analyseData := company.GetMap("analyse")
if analyseData == nil {
analyseData = Map{}
company["analyse"] = analyseData
}
//for k, cv := range analyseData {
// vm.Set(k, cv)
//}
}
for k, _ := range companys[0].GetMap("analyse") {
if strings.Contains(k, "排名") {
continue
}
res, e := vm.Run(`res=hmax("` + k + `")`)
if e == nil {
totalData[k+"最大值"] = ObjToFloat64(res.String())
}
res, e = vm.Run(`res=hmin("` + k + `")`)
if e == nil {
totalData[k+"最小值"] = ObjToFloat64(res.String())
}
res, e = vm.Run(`res=haverage("` + k + `")`)
if e == nil {
totalData[k+"平均值"] = ObjToFloat64(res.String())
}
res, e = vm.Run(`res=vcount("` + k + `")`)
if e == nil {
totalData[k+"总值"] = ObjToFloat64(res.String())
}
res, e = vm.Run(`res=count("` + k + `")`)
if e == nil {
totalData[k+"总数"] = ObjToFloat64(res.String())
}
}
}
func ctgTestAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
cs := append(NewCompanys{}, companys...)
for _, company := range companys {
vm := otto.New()
@@ -292,11 +486,14 @@ func ctgAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
uploadData := company.GetMap("upload_data")
for k, _ := range uploadData {
strV := uploadData.GetString(k)
strV = strings.Replace(strV, " ", "", -1)
v := float64(0)
if strV == "是" {
v = 1
//if strV == "否" {
// v = 0
//}
if strV == "国家级专精特新" {
fmt.Println(15545)
}
if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 {
v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100
}
@@ -304,8 +501,14 @@ func ctgAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
if flV != 0 && v == 0 {
v = flV
}
vm.Set(k, v)
if v == 0 && strV != "否" && strV != "0" {
v = 1
}
uploadData[k] = v
}
company["upload_data"] = uploadData
//api采集数据
collectData := company.GetMap("collect_data")
@@ -316,19 +519,21 @@ func ctgAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
}
strV := collectData.GetString(k)
if strings.Index(strV, "万人民币") != -1 {
strV = strings.Replace(strV, "", "万人民币", -1)
strV = strings.Replace(strV, "万人民币", "", -1)
}
vm.Set(k, strV)
collectData[k] = strV
}
company["collect_data"] = collectData
//api采集数据
analyseData := company.GetMap("analyse")
if analyseData == nil {
analyseData = Map{}
company["analyse"] = analyseData
}
for k, cv := range analyseData {
vm.Set(k, cv)
}
//for k, cv := range analyseData {
// vm.Set(k, cv)
//}
//totalData:=Map{}
//analyse
@@ -360,6 +565,9 @@ func ctgAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) {
} else if result.String() == "NaN" {
totalData[tag.GetString("name")] = 0
totalData[tag.GetString("name")+"比值"] = 0
} else if result.String() == "Infinity" {
totalData[tag.GetString("name")] = 0
totalData[tag.GetString("name")+"比值"] = 0
} else {
totalData[tag.GetString("name")] = result.String()
//totalData[tag.GetString("name")+"比值"]=0
@@ -398,11 +606,11 @@ var TestCtr = Ctr{
//cs := append(NewCompanys{}, companys...)
ctgAn := Map{}
for _, tag := range tagCompany {
ctgAnalyse(companys, tag, ctgAn, totalAnalyse)
ctgTestAnalyse(companys, tag, ctgAn, totalAnalyse)
//fmt.Println(data)
}
//ctgAn := ctgAnalyse(companys, totalAnalyse)
//ctgAn := ctgTestAnalyse(companys, totalAnalyse)
data := Map{
"modify_time": time.Now().Unix(),
"data": ctgAn.ToJsonString(),
@@ -428,14 +636,14 @@ var TestCtr = Ctr{
//cs := append(NewCompanys{}, companys...)
totalData := Map{}
for _, tag := range tagCompany {
totalAnalyse(companys, tag, totalData)
totalTestAnalyse(companys, tag, totalData)
//fmt.Println(data)
}
//home_data, six_item_data, three_item_data, n_item_data := totalAnalyse(companys)
totalAnalyse1(companys, totalData)
//home_data, six_item_data, three_item_data, n_item_data := totalTestAnalyse(companys)
org := this.Db.Get("org", "*", Map{"id": orgId})
//fmt.Println(six_item_data.ToJsonString())
fmt.Println(totalData)
data := Map{
"name": org.GetString("name"),
"home_data": totalData.ToJsonString(),
@@ -471,7 +679,7 @@ var TestCtr = Ctr{
tagCompany := this.Db.Select("tag", "*", Map{"type": 2, "ORDER": "`sort` ASC"})
//cs := append(NewCompanys{}, companys...)
for _, tag := range tagCompany {
analyse(companys, tag)
TestAnalyse(companys, tag)
//fmt.Println(data)
}