|
@@ -4,6 +4,7 @@ import (
|
|
|
"fmt"
|
|
|
log "github.com/donnie4w/go-logger/logger"
|
|
|
"github.com/tealeg/xlsx"
|
|
|
+ "go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
"os"
|
|
|
qu "qfw/util"
|
|
|
"time"
|
|
@@ -56,13 +57,6 @@ func initBidata() {
|
|
|
|
|
|
|
|
|
log.Debug("测试保存数据...")
|
|
|
-
|
|
|
- f_1.Save("招标信息.xlsx")
|
|
|
- f_2.Save("中标信息.xlsx")
|
|
|
- f_3.Save("招标项目.xlsx")
|
|
|
- f_4.Save("开标公示.xlsx")
|
|
|
- f_5.Save("评标公示.xlsx")
|
|
|
-
|
|
|
}
|
|
|
|
|
|
func exportBidata() {
|
|
@@ -124,9 +118,15 @@ func exportBidata() {
|
|
|
tmp = make(map[string]interface{})
|
|
|
}
|
|
|
|
|
|
- log.Debug("is over bid ~",total,num_1,num_2,num_3,num_4)
|
|
|
+ log.Debug("is over bid ~",total,"~",num_1,num_2,num_3,num_4)
|
|
|
|
|
|
|
|
|
+ if total>0 {
|
|
|
+ f_1.Save("招标信息.xlsx")
|
|
|
+ f_2.Save("中标信息.xlsx")
|
|
|
+ f_3.Save("招标项目.xlsx")
|
|
|
+ f_4.Save("开标公示.xlsx")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//导出抽取数据-评标相关
|
|
@@ -151,27 +151,48 @@ func exportExtdata() {
|
|
|
continue
|
|
|
}
|
|
|
spidercode := qu.ObjToString(tmp["spidercode"])
|
|
|
- if pb_spicode[spidercode]!=""||tmp["winnerorder"]!=nil{
|
|
|
+ winnerorder := []map[string]interface{}{}
|
|
|
+ if w_order, ok := tmp["winnerorder"].(primitive.A); ok {
|
|
|
+ winnerorder = qu.ObjArrToMapArr(w_order)
|
|
|
+ }else {
|
|
|
+ if w_order, ok := tmp["winnerorder"].([]interface{}); ok {
|
|
|
+ winnerorder = qu.ObjArrToMapArr(w_order)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if pb_spicode[spidercode]!=""||len(winnerorder)>0{
|
|
|
num_5++
|
|
|
- data_5 := dealWithPingBiao(tmp,num_5)
|
|
|
+ winners:=""
|
|
|
+ if len(winnerorder)>0 {
|
|
|
+ for _,v := range winnerorder {
|
|
|
+ entname := qu.ObjToString(v["entname"])
|
|
|
+ if entname!=""{
|
|
|
+ if winners=="" {
|
|
|
+ winners = entname
|
|
|
+ }else {
|
|
|
+ winners = winners+","+entname
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if winners=="" {
|
|
|
+ winners = qu.ObjToString(tmp["s_winner"])
|
|
|
+ }
|
|
|
+ data_5 := dealWithPingBiao(tmp,num_5,winners)
|
|
|
row_5:= sheet_5.AddRow()
|
|
|
for _,v := range data_5{
|
|
|
row_5.AddCell().Value = v
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
tmp = make(map[string]interface{})
|
|
|
}
|
|
|
|
|
|
|
|
|
log.Debug("is over ext ~",total,num_5)
|
|
|
|
|
|
-
|
|
|
+ if total>0 {
|
|
|
+ f_5.Save("评标公示.xlsx")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -194,32 +215,47 @@ func dealWithZhaoBiao(tmp map[string]interface{},index int)[]string {
|
|
|
dataArr = append(dataArr,"")
|
|
|
}
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["buyerclass"]))
|
|
|
-
|
|
|
publishtime := qu.Int64All(tmp["publishtime"])
|
|
|
- dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ if publishtime>0 {
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+
|
|
|
dataArr = append(dataArr,"")//公告结束日期
|
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ buyer := qu.ObjToString(tmp["buyer"])
|
|
|
+ dataArr = append(dataArr,buyer)
|
|
|
price := qu.Float64All(tmp["budget"])
|
|
|
- price_str := ""
|
|
|
+ price_str,price_unit := "",""
|
|
|
if price>0.0 {
|
|
|
price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ price_unit = "元"
|
|
|
}
|
|
|
dataArr = append(dataArr,price_str)
|
|
|
- dataArr = append(dataArr,"元")
|
|
|
+ dataArr = append(dataArr,price_unit)
|
|
|
+
|
|
|
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"]))
|
|
|
+
|
|
|
+ if buyer!="" {
|
|
|
+ qy_data := qy_mgo.FindOne(qy_coll, map[string]interface{}{
|
|
|
+ "company_name":buyer,
|
|
|
+ })
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(qy_data["company_email"]))//邮箱
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")//邮箱
|
|
|
+ }
|
|
|
+
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["href"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
|
|
|
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))
|
|
@@ -236,35 +272,47 @@ func dealWithZhongBiao(tmp map[string]interface{},index int)[]string {
|
|
|
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 publishtime>0 {
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+ dataArr = append(dataArr,"")//招标公告发布日期
|
|
|
+ bidopentime := qu.Int64All(tmp["bidopentime"])
|
|
|
+ if bidopentime>0 {
|
|
|
+ dataArr = append(dataArr,time.Unix(bidopentime, 0).Format(timeLayout))
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ }
|
|
|
+
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["s_winner"]))
|
|
|
+ price := qu.Float64All(tmp["bidamount"])
|
|
|
+ price_str,price_unit := "",""
|
|
|
if price>0.0 {
|
|
|
price_str = fmt.Sprintf("%.2f",price)
|
|
|
+ price_unit = "元"
|
|
|
}
|
|
|
dataArr = append(dataArr,price_str)
|
|
|
- dataArr = append(dataArr,"元")
|
|
|
- dataArr = append(dataArr,qu.ObjToString(tmp["buyeraddr"]))
|
|
|
+ dataArr = append(dataArr,price_unit)
|
|
|
+
|
|
|
+ dataArr = append(dataArr,"")//评标委员会名单
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
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"]))
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["detail"]))
|
|
|
|
|
|
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["buyerclass"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
@@ -273,38 +321,37 @@ func dealWithXiangMu(tmp map[string]interface{},index int)[]string {
|
|
|
}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,"")//招标项目建立时间
|
|
|
+ agency := qu.ObjToString(tmp["agency"])
|
|
|
+ if agency!="" {
|
|
|
+ qy_data := qy_mgo.FindOne(qy_coll, map[string]interface{}{
|
|
|
+ "company_name":agency,
|
|
|
+ })
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(qy_data["credit_no"]))//招标代理机构代码
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr)//招标代理机构代码
|
|
|
}
|
|
|
- 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"]))
|
|
|
+ dataArr = append(dataArr,agency)
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["buyer"]))
|
|
|
+ //组织~~~部门名称
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
+ dataArr = append(dataArr,qu.ObjToString(tmp["projectscope"]))
|
|
|
|
|
|
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["buyerclass"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
@@ -313,38 +360,23 @@ func dealWithKaiBiao(tmp map[string]interface{},index int)[]string {
|
|
|
}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)
|
|
|
+ bidopentime := qu.Int64All(tmp["bidopentime"])
|
|
|
+ if bidopentime>0 {
|
|
|
+ dataArr = append(dataArr,time.Unix(bidopentime, 0).Format(timeLayout))
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
}
|
|
|
- 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 {
|
|
|
-
|
|
|
+func dealWithPingBiao(tmp map[string]interface{},index int,winners string)[]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["buyerclass"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["area"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["city"]))
|
|
|
dataArr = append(dataArr,qu.ObjToString(tmp["district"]))
|
|
@@ -353,27 +385,14 @@ func dealWithPingBiao(tmp map[string]interface{},index int)[]string {
|
|
|
}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)
|
|
|
+ if publishtime>0 {
|
|
|
+ dataArr = append(dataArr,time.Unix(publishtime, 0).Format(timeLayout))
|
|
|
+ }else {
|
|
|
+ dataArr = append(dataArr,"")
|
|
|
}
|
|
|
- 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"]))
|
|
|
-
|
|
|
+ dataArr = append(dataArr,"")//公式结束时间
|
|
|
+ dataArr = append(dataArr,winners)
|
|
|
return dataArr
|
|
|
}
|
|
|
|