|
@@ -1,10 +1,12 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
log "github.com/donnie4w/go-logger/logger"
|
|
|
"github.com/tealeg/xlsx"
|
|
|
"os"
|
|
|
qu "qfw/util"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
var (
|
|
@@ -72,73 +74,57 @@ func exportBidata() {
|
|
|
"$lt": 1646064000,
|
|
|
},
|
|
|
},0
|
|
|
+ num_1,num_2,num_3,num_4:=0,0,0,0
|
|
|
it := sess.DB(bid_mgo.DbName).C(bid_coll).Find(&q).Sort("_id").Iter()
|
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
|
if total%10000==0 {
|
|
|
- log.Debug("curent index ",total,tmp["_id"])
|
|
|
+ log.Debug("curent index ",total,num_1,num_2,num_3,num_4)
|
|
|
}
|
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
|
if extracttype==-1 {
|
|
|
tmp = make(map[string]interface{})
|
|
|
continue
|
|
|
}
|
|
|
- ////逻辑处理
|
|
|
- //subtype := qu.ObjToString(tmp["subtype"])
|
|
|
- //toptype := qu.ObjToString(tmp["subtype"])
|
|
|
- //spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
- //site := qu.ObjToString(tmp["site"])
|
|
|
- //projectname := qu.ObjToString(tmp["projectname"])
|
|
|
- //area := qu.ObjToString(tmp["area"])
|
|
|
- //city := qu.ObjToString(tmp["city"])
|
|
|
- //district := qu.ObjToString(tmp["district"])
|
|
|
- //platform :=""
|
|
|
- //if spidercode=="竞品" {
|
|
|
- // platform = "剑鱼发布"
|
|
|
- //}else {
|
|
|
- //
|
|
|
- //}
|
|
|
- //buyerclass := qu.ObjToString(tmp["buyerclass"])
|
|
|
- //publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
- //p_time_str := time.Unix(publishtime, 0).Format(timeLayout)
|
|
|
- //
|
|
|
- //budget := qu.Float64All(tmp["budget"])
|
|
|
- //budget_str := ""
|
|
|
- //if budget>0.0 {
|
|
|
- // budget_str = fmt.Sprintf("%.2f",budget)
|
|
|
- //}
|
|
|
- //bidamount := qu.Float64All(tmp["bidamount"])
|
|
|
- //bidamount_str := ""
|
|
|
- //if bidamount>0.0 {
|
|
|
- // bidamount_str = fmt.Sprintf("%.2f",bidamount)
|
|
|
- //}
|
|
|
- //buyeraddr := qu.ObjToString(tmp["buyeraddr"])
|
|
|
- //buyerperson := qu.ObjToString(tmp["buyerperson"])
|
|
|
- //buyertel := qu.ObjToString(tmp["buyertel"])
|
|
|
- //href := qu.ObjToString(tmp["href"])
|
|
|
- //detail := qu.ObjToString(tmp["detail"])
|
|
|
- //
|
|
|
- //
|
|
|
- //
|
|
|
- //
|
|
|
- //
|
|
|
- //if toptype=="招标" {
|
|
|
- //
|
|
|
- //}
|
|
|
- //if subtype == "中标" || subtype == "成交" || subtype == "合同" {
|
|
|
- // dealWithZhongBiao(tmp)
|
|
|
- //}
|
|
|
- //
|
|
|
- //if spidercode=="项目" {
|
|
|
- // dealWithXiangMu(tmp)
|
|
|
- //}
|
|
|
- //if spidercode=="开标" {
|
|
|
- // dealWithKaiBiao(tmp)
|
|
|
- //}
|
|
|
-
|
|
|
+ //逻辑处理
|
|
|
+ subtype := qu.ObjToString(tmp["subtype"])
|
|
|
+ toptype := qu.ObjToString(tmp["toptype"])
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ if toptype=="招标" {
|
|
|
+ num_1++
|
|
|
+ data_1 := dealWithZhaoBiao(tmp,num_1)
|
|
|
+ row_1:= sheet_1.AddRow()
|
|
|
+ for _,v := range data_1{
|
|
|
+ row_1.AddCell().Value = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if subtype == "中标" || subtype == "成交" || subtype == "合同" {
|
|
|
+ num_2++
|
|
|
+ data_2 := dealWithZhongBiao(tmp,num_2)
|
|
|
+ row_2:= sheet_2.AddRow()
|
|
|
+ for _,v := range data_2{
|
|
|
+ row_2.AddCell().Value = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if xm_spicode[spidercode]!="" {
|
|
|
+ num_3++
|
|
|
+ data_3 := dealWithXiangMu(tmp,num_3)
|
|
|
+ row_3:= sheet_3.AddRow()
|
|
|
+ for _,v := range data_3{
|
|
|
+ row_3.AddCell().Value = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if kb_spicode[spidercode]!=""{
|
|
|
+ num_4++
|
|
|
+ data_4 := dealWithKaiBiao(tmp,num_4)
|
|
|
+ row_4:= sheet_4.AddRow()
|
|
|
+ for _,v := range data_4{
|
|
|
+ row_4.AddCell().Value = v
|
|
|
+ }
|
|
|
+ }
|
|
|
tmp = make(map[string]interface{})
|
|
|
}
|
|
|
|
|
|
- log.Debug("is over bid ~",total)
|
|
|
+ log.Debug("is over bid ~",total,num_1,num_2,num_3,num_4)
|
|
|
|
|
|
|
|
|
}
|
|
@@ -153,16 +139,27 @@ func exportExtdata() {
|
|
|
"$lt": 1646064000,
|
|
|
},
|
|
|
},0
|
|
|
+ num_5:=0
|
|
|
it := sess.DB(ext_mgo.DbName).C(ext_coll).Find(&q).Sort("_id").Iter()
|
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
|
if total%10000==0 {
|
|
|
- log.Debug("curent index ",total,tmp["_id"])
|
|
|
+ log.Debug("curent index ",total,num_5)
|
|
|
}
|
|
|
extracttype := qu.IntAll(tmp["extracttype"])
|
|
|
- if extracttype==-1 || tmp["winnerorder"]==nil{
|
|
|
+ if extracttype==-1 {
|
|
|
tmp = make(map[string]interface{})
|
|
|
continue
|
|
|
}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ if pb_spicode[spidercode]!=""||tmp["winnerorder"]!=nil{
|
|
|
+ num_5++
|
|
|
+ data_5 := dealWithPingBiao(tmp,num_5)
|
|
|
+ row_5:= sheet_5.AddRow()
|
|
|
+ for _,v := range data_5{
|
|
|
+ row_5.AddCell().Value = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -172,16 +169,211 @@ func exportExtdata() {
|
|
|
}
|
|
|
|
|
|
|
|
|
- log.Debug("is over ext ~",total)
|
|
|
+ log.Debug("is over ext ~",total,num_5)
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//招标信息
|
|
|
+func dealWithZhaoBiao(tmp map[string]interface{},index int)[]string {
|
|
|
+ dataArr := []string{}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
|
+ if jp_spicode[spidercode]!="" {
|
|
|
+ dataArr = append(dataArr,"剑鱼发布")
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
+
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ dataArr = append(dataArr,"")//公告结束日期
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ price := qu.Float64All(tmp["budget"])
|
|
|
+ price_str := ""
|
|
|
+ if price>0.0 {
|
|
|
+ price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,price_str)
|
|
|
+ dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
|
+
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
+
|
|
|
+ return dataArr
|
|
|
+}
|
|
|
|
|
|
+//中标信息
|
|
|
+func dealWithZhongBiao(tmp map[string]interface{},index int)[]string {
|
|
|
+
|
|
|
+ dataArr := []string{}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
|
+ if jp_spicode[spidercode]!="" {
|
|
|
+ dataArr = append(dataArr,"剑鱼发布")
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
+
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ dataArr = append(dataArr,"")//公告结束日期
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ price := qu.Float64All(tmp["budget"])
|
|
|
+ price_str := ""
|
|
|
+ if price>0.0 {
|
|
|
+ price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,price_str)
|
|
|
+ dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
|
+
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
|
|
|
+ return dataArr
|
|
|
}
|
|
|
|
|
|
+//项目信息
|
|
|
+func dealWithXiangMu(tmp map[string]interface{},index int)[]string {
|
|
|
+
|
|
|
+ dataArr := []string{}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
|
+ if jp_spicode[spidercode]!="" {
|
|
|
+ dataArr = append(dataArr,"剑鱼发布")
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
+
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ dataArr = append(dataArr,"")//公告结束日期
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ price := qu.Float64All(tmp["budget"])
|
|
|
+ price_str := ""
|
|
|
+ if price>0.0 {
|
|
|
+ price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,price_str)
|
|
|
+ dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
|
|
|
+ return dataArr
|
|
|
+}
|
|
|
+
|
|
|
+//开标信息
|
|
|
+func dealWithKaiBiao(tmp map[string]interface{},index int)[]string {
|
|
|
+
|
|
|
+ dataArr := []string{}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
|
+ if jp_spicode[spidercode]!="" {
|
|
|
+ dataArr = append(dataArr,"剑鱼发布")
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
+
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ dataArr = append(dataArr,"")//公告结束日期
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ price := qu.Float64All(tmp["budget"])
|
|
|
+ price_str := ""
|
|
|
+ if price>0.0 {
|
|
|
+ price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,price_str)
|
|
|
+ dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
|
|
|
+ return dataArr
|
|
|
+}
|
|
|
|
|
|
+//评标信息
|
|
|
+func dealWithPingBiao(tmp map[string]interface{},index int)[]string {
|
|
|
+
|
|
|
+ dataArr := []string{}
|
|
|
+ spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
+ dataArr = append(dataArr,fmt.Sprintf("%d",index))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["site"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectname"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
|
+ if jp_spicode[spidercode]!="" {
|
|
|
+ dataArr = append(dataArr,"剑鱼发布")
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
+
|
|
|
+ publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ dataArr = append(dataArr,"")//公告结束日期
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ price := qu.Float64All(tmp["budget"])
|
|
|
+ price_str := ""
|
|
|
+ if price>0.0 {
|
|
|
+ price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,price_str)
|
|
|
+ dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyerperson"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyertel"]))
|
|
|
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
|
|
|
+ return dataArr
|
|
|
+}
|
|
|
|