|
@@ -11,10 +11,13 @@ import (
|
|
"os"
|
|
"os"
|
|
"strings"
|
|
"strings"
|
|
"sync"
|
|
"sync"
|
|
|
|
+ "time"
|
|
"unicode/utf8"
|
|
"unicode/utf8"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+// 验证单条数据···
|
|
func TestSingleFieldInfo(name string, tmpid string) {
|
|
func TestSingleFieldInfo(name string, tmpid string) {
|
|
|
|
+ now := time.Now().Unix()
|
|
tmp := ul.BidMgo.FindById(name, tmpid)
|
|
tmp := ul.BidMgo.FindById(name, tmpid)
|
|
if len(tmp) == 0 || tmp == nil {
|
|
if len(tmp) == 0 || tmp == nil {
|
|
log.Debug("未查询到数据...", tmpid)
|
|
log.Debug("未查询到数据...", tmpid)
|
|
@@ -25,6 +28,240 @@ func TestSingleFieldInfo(name string, tmpid string) {
|
|
for k, v := range data {
|
|
for k, v := range data {
|
|
log.Debug(k, "~", v)
|
|
log.Debug(k, "~", v)
|
|
}
|
|
}
|
|
|
|
+ log.Debug("耗时···", time.Now().Unix()-now)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 调试错误数据···
|
|
|
|
+func TestErrInfo0923() {
|
|
|
|
+ arr := []string{
|
|
|
|
+ "66e39b7bb25c3e1debf2cb66",
|
|
|
|
+ "66e39b7bb25c3e1debf2cb52",
|
|
|
|
+ "66e39b76b25c3e1debf2cb1c",
|
|
|
|
+ "66e39b71b25c3e1debf2ca58",
|
|
|
|
+ "66e39b71b25c3e1debf2ca47",
|
|
|
|
+ "66e39b71b25c3e1debf2ca3e",
|
|
|
|
+ "66e39b71b25c3e1debf2ca1d",
|
|
|
|
+ "66e39b62b25c3e1debf2c9a0",
|
|
|
|
+ "66e39b0db25c3e1debf2c788",
|
|
|
|
+ "66e39af3b25c3e1debf2c711",
|
|
|
|
+ "66e39ae5b25c3e1debf2c6ac",
|
|
|
|
+ "66e39ad5b25c3e1debf2c607",
|
|
|
|
+ "66e39ad5b25c3e1debf2c5fc",
|
|
|
|
+ "66e39ad1b25c3e1debf2c5e1",
|
|
|
|
+ "66e39acbb25c3e1debf2c56c",
|
|
|
|
+ "66e39ac6b25c3e1debf2c533",
|
|
|
|
+ "66e39ac1b25c3e1debf2c526",
|
|
|
|
+ "66e39a9eb25c3e1debf2c4e7",
|
|
|
|
+ "66e39a80b25c3e1debf2c441",
|
|
|
|
+ "66e39a5cb25c3e1debf2c357",
|
|
|
|
+ "66e39a30b25c3e1debf2c18f",
|
|
|
|
+ "66e39a12b25c3e1debf2c0cc",
|
|
|
|
+ "66e39a08b25c3e1debf2c050",
|
|
|
|
+ "66e39a08b25c3e1debf2bfce",
|
|
|
|
+ "66e3993fb25c3e1debf2b875",
|
|
|
|
+ "66e3990db25c3e1debf2b55b",
|
|
|
|
+ "66e398f1b25c3e1debf2b4bc",
|
|
|
|
+ "66e397ccb25c3e1debf2abed",
|
|
|
|
+ "66e397b9b25c3e1debf2ab81",
|
|
|
|
+ "66e3977db25c3e1debf2a7ae",
|
|
|
|
+ "66e396b3b25c3e1debf2a049",
|
|
|
|
+ "66e396b3b25c3e1debf29f97",
|
|
|
|
+ "66e3969eb25c3e1debf29e62",
|
|
|
|
+ "66e395feb25c3e1debf29abb",
|
|
|
|
+ "66e395e0b25c3e1debf298d2",
|
|
|
|
+ "66e395d6b25c3e1debf297e6",
|
|
|
|
+ "66e395ccb25c3e1debf296d1",
|
|
|
|
+ "66e39554b25c3e1debf29331",
|
|
|
|
+ "66e39517b25c3e1debf29160",
|
|
|
|
+ "66e394c7b25c3e1debf28f42",
|
|
|
|
+ "66e394bdb25c3e1debf28ef6",
|
|
|
|
+ "66e394b3b25c3e1debf28e48",
|
|
|
|
+ "66e3944fb25c3e1debf28ab5",
|
|
|
|
+ "66e393ccb25c3e1debf28729",
|
|
|
|
+ "66e393c2b25c3e1debf286dd",
|
|
|
|
+ "66e393c2b25c3e1debf286a5",
|
|
|
|
+ "66e393aeb25c3e1debf28572",
|
|
|
|
+ "66e3934ab25c3e1debf28423",
|
|
|
|
+ "66e39322b25c3e1debf282c6",
|
|
|
|
+ "66e392d1b25c3e1debf2809d",
|
|
|
|
+ "66e39212b25c3e1debf279d1",
|
|
|
|
+ "66e39209b25c3e1debf279c7",
|
|
|
|
+ "66e391f5b25c3e1debf2779e",
|
|
|
|
+ "66e391eab25c3e1debf2773f",
|
|
|
|
+ "66e391e0b25c3e1debf276a8",
|
|
|
|
+ "66e39168b25c3e1debf27347",
|
|
|
|
+ "66e3912cb25c3e1debf2714a",
|
|
|
|
+ "66e390e6b25c3e1debf26ee7",
|
|
|
|
+ "66e390e4b25c3e1debf26e7c",
|
|
|
|
+ "66e390b3b25c3e1debf26cce",
|
|
|
|
+ "66e3906cb25c3e1debf26a8f",
|
|
|
|
+ "66e3901bb25c3e1debf26822",
|
|
|
|
+ "66e38ff5b25c3e1debf26714",
|
|
|
|
+ "66e38fd5b25c3e1debf26694",
|
|
|
|
+ "66e38fb8b25c3e1debf265a4",
|
|
|
|
+ "66e38f90b25c3e1debf264c5",
|
|
|
|
+ "66e38f7bb25c3e1debf263de",
|
|
|
|
+ "66e38f68b25c3e1debf263b8",
|
|
|
|
+ "66e38f5eb25c3e1debf2638c",
|
|
|
|
+ "66e38f4ab25c3e1debf2633b",
|
|
|
|
+ "66e38f40b25c3e1debf2631a",
|
|
|
|
+ "66e38f18b25c3e1debf261c4",
|
|
|
|
+ "66e38ef8b25c3e1debf260e7",
|
|
|
|
+ "66e38ec8b25c3e1debf26063",
|
|
|
|
+ "66e38eb3b25c3e1debf26017",
|
|
|
|
+ "66e38e95b25c3e1debf25f78",
|
|
|
|
+ "66e38e6db25c3e1debf25ef0",
|
|
|
|
+ "66e38e61b25c3e1debf25eb4",
|
|
|
|
+ "66e38a57b25c3e1debf24a45",
|
|
|
|
+ "66e38a47b25c3e1debf24a09",
|
|
|
|
+ "66e38a47b25c3e1debf249dd",
|
|
|
|
+ "66e38a47b25c3e1debf249a1",
|
|
|
|
+ "66e38a47b25c3e1debf24998",
|
|
|
|
+ "66e38a47b25c3e1debf24995",
|
|
|
|
+ "66e38a1fb25c3e1debf2494a",
|
|
|
|
+ "66e389f3b25c3e1debf2482e",
|
|
|
|
+ "66e389f3b25c3e1debf24824",
|
|
|
|
+ "66e389f3b25c3e1debf2481d",
|
|
|
|
+ "66e389f3b25c3e1debf24819",
|
|
|
|
+ "66e389f3b25c3e1debf24816",
|
|
|
|
+ "66e389f3b25c3e1debf24808",
|
|
|
|
+ "66e389d5b25c3e1debf247ec",
|
|
|
|
+ "66e389adb25c3e1debf24792",
|
|
|
|
+ "66e389a6b25c3e1debf24733",
|
|
|
|
+ "66e389a6b25c3e1debf24727",
|
|
|
|
+ "66e389a3b25c3e1debf246f3",
|
|
|
|
+ "66e3899cb25c3e1debf246ee",
|
|
|
|
+ "66e3874db25c3e1debf23d91",
|
|
|
|
+ "66e38739b25c3e1debf23d28",
|
|
|
|
+ "66e38720b25c3e1debf23cf3",
|
|
|
|
+ "66e386f3b25c3e1debf23cac",
|
|
|
|
+ "66e386dfb25c3e1debf23c5b",
|
|
|
|
+ "66e386dfb25c3e1debf23c5a",
|
|
|
|
+ "66e386d5b25c3e1debf23c1b",
|
|
|
|
+ "66e38699b25c3e1debf23b3b",
|
|
|
|
+ "66e38694b25c3e1debf23b35",
|
|
|
|
+ "66e3867bb25c3e1debf23af4",
|
|
|
|
+ "66e38671b25c3e1debf23ad6",
|
|
|
|
+ "66e38671b25c3e1debf23aa3",
|
|
|
|
+ "66e38671b25c3e1debf23a97",
|
|
|
|
+ "66e38661b25c3e1debf23a6a",
|
|
|
|
+ "66e38657b25c3e1debf23a27",
|
|
|
|
+ "66e3864db25c3e1debf23a10",
|
|
|
|
+ "66e385f3b25c3e1debf23954",
|
|
|
|
+ "66e385dfb25c3e1debf2393a",
|
|
|
|
+ "66e385d0b25c3e1debf238de",
|
|
|
|
+ "66e385c6b25c3e1debf23896",
|
|
|
|
+ "66e385adb25c3e1debf2381b",
|
|
|
|
+ "66e385a3b25c3e1debf237eb",
|
|
|
|
+ "66e385a3b25c3e1debf237e0",
|
|
|
|
+ "66e38570b25c3e1debf23778",
|
|
|
|
+ "66e38566b25c3e1debf23765",
|
|
|
|
+ "66e3855cb25c3e1debf23755",
|
|
|
|
+ "66e38534b25c3e1debf2369e",
|
|
|
|
+ "66e38526b25c3e1debf2367c",
|
|
|
|
+ "66e3851cb25c3e1debf23646",
|
|
|
|
+ "66e3851cb25c3e1debf2363d",
|
|
|
|
+ "66e3851cb25c3e1debf2363a",
|
|
|
|
+ "66e38512b25c3e1debf23621",
|
|
|
|
+ "66e38512b25c3e1debf2360e",
|
|
|
|
+ "66e384f8b25c3e1debf23590",
|
|
|
|
+ "66e384eeb25c3e1debf23572",
|
|
|
|
+ "66e384c2b25c3e1debf2350b",
|
|
|
|
+ "66e3847fb25c3e1debf23474",
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pool_mgo := make(chan bool, 200)
|
|
|
|
+ wg_mgo := &sync.WaitGroup{}
|
|
|
|
+ log.Debug("预计处理条数···", len(arr))
|
|
|
|
+ for k, v := range arr {
|
|
|
|
+ if k%10 == 0 {
|
|
|
|
+ log.Debug("cur index ", k)
|
|
|
|
+ }
|
|
|
|
+ pool_mgo <- true
|
|
|
|
+ wg_mgo.Add(1)
|
|
|
|
+ go func(v string) {
|
|
|
|
+ defer func() {
|
|
|
|
+ <-pool_mgo
|
|
|
|
+ wg_mgo.Done()
|
|
|
|
+ }()
|
|
|
|
+ data := ul.BidMgo.FindById("bidding", v)
|
|
|
|
+ if len(data) >= 0 && data != nil {
|
|
|
|
+ detail := qu.ObjToString(data["detail"])
|
|
|
|
+ filetext := qu.ObjToString(data["filetext"]) //此处为附件信息···
|
|
|
|
+ title := qu.ObjToString(data["title"])
|
|
|
|
+ if strings.Contains(title, "开标记录") { //开标记录舍弃
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 0,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ log.Debug("开标记录舍弃···")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if data["jyfb_data"] != nil { //剑鱼发布舍弃qi
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 0,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ log.Debug("剑鱼发布舍弃···")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if ul.IsTool && utf8.RuneCountInString(detail) < 100 {
|
|
|
|
+ detail = filetext
|
|
|
|
+ }
|
|
|
|
+ if utf8.RuneCountInString(detail) < 100 {
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 0,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ log.Debug("长度不符舍弃···")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //获取外围字段数据
|
|
|
|
+ //分包判断-获取信息
|
|
|
|
+ //ispkg, pkg := false, map[string]interface{}{}
|
|
|
|
+ //if ispkg = prompt.AcquireIsPackageInfo(detail); ispkg {
|
|
|
|
+ // if pkg = prompt.AcquireMultiplePackageInfo(detail); len(pkg) > 0 {
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
|
|
+ pkg := prompt.AcquireMultiplePackageInfo(detail)
|
|
|
|
+ if s_pkg, ok := pkg["s_pkg"].(map[string]map[string]interface{}); ok {
|
|
|
|
+ if len(s_pkg) <= 0 {
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 0,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ } else if len(s_pkg) == 1 {
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 1,
|
|
|
|
+ "pkg": pkg,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 2,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ "pkg": pkg,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": 0,
|
|
|
|
+ "s_id": v,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ log.Debug("未查询到数据···")
|
|
|
|
+ ul.BidMgo.Save("zkzkzkzk", map[string]interface{}{
|
|
|
|
+ "ispkg": -1,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }(v)
|
|
|
|
+ }
|
|
|
|
+ wg_mgo.Wait()
|
|
|
|
+ log.Debug("is over ···")
|
|
}
|
|
}
|
|
|
|
|
|
// 导出需要修复的
|
|
// 导出需要修复的
|
|
@@ -420,116 +657,8 @@ func TestExportAiBuyer() {
|
|
}
|
|
}
|
|
|
|
|
|
func TestIsPackage() {
|
|
func TestIsPackage() {
|
|
- tmpArr := []string{
|
|
|
|
- "669e83fe66cf0db42a6520b3",
|
|
|
|
- "669e892066cf0db42a652c9b",
|
|
|
|
- "669e904966cf0db42a653b5d",
|
|
|
|
- "669f16f466cf0db42a669069",
|
|
|
|
- "669f186c66cf0db42a669bf0",
|
|
|
|
- "669efb6766cf0db42a65e0b4",
|
|
|
|
- "669f004266cf0db42a65f201",
|
|
|
|
- "669f02a666cf0db42a65fff3",
|
|
|
|
- "669f172766cf0db42a669193",
|
|
|
|
- "669ec89566cf0db42a659020",
|
|
|
|
- "669e86b266cf0db42a6526ac",
|
|
|
|
- "669e86e466cf0db42a6527b7",
|
|
|
|
- "669e87b766cf0db42a652a3e",
|
|
|
|
- "669f082d66cf0db42a662323",
|
|
|
|
- "669e95e966cf0db42a654dd1",
|
|
|
|
- "669ea39466cf0db42a656311",
|
|
|
|
- "669f140366cf0db42a66772f",
|
|
|
|
- "669ee59466cf0db42a65b8aa",
|
|
|
|
- "669f05a166cf0db42a66117b",
|
|
|
|
- "669e90d666cf0db42a653e0a",
|
|
|
|
- "669f08c466cf0db42a66273c",
|
|
|
|
- "669f155166cf0db42a6682c7",
|
|
|
|
- "669ef0ff66cf0db42a65c83a",
|
|
|
|
- "669efdc166cf0db42a65e8f3",
|
|
|
|
- "669f090066cf0db42a6629d0",
|
|
|
|
- "669f111366cf0db42a665ce7",
|
|
|
|
- "669f15fb66cf0db42a668901",
|
|
|
|
- "669f0baa66cf0db42a663a72",
|
|
|
|
- "669f039766cf0db42a66044e",
|
|
|
|
- "669eff3e66cf0db42a65ee73",
|
|
|
|
- "669f12c366cf0db42a666b9d",
|
|
|
|
- "669e913b66cf0db42a653ffc",
|
|
|
|
- "669e833466cf0db42a651e3a",
|
|
|
|
- "669f071e66cf0db42a661b03",
|
|
|
|
- "669f1a1266cf0db42a66a892",
|
|
|
|
- "669f0aec66cf0db42a6635e8",
|
|
|
|
- "669f169c66cf0db42a668e1d",
|
|
|
|
- "669ed6c966cf0db42a65a75d",
|
|
|
|
- "669f072866cf0db42a661b26",
|
|
|
|
- "669f185866cf0db42a669af0",
|
|
|
|
- "669f15d366cf0db42a6687aa",
|
|
|
|
- "669f182466cf0db42a669960",
|
|
|
|
- "669f0ed066cf0db42a664e5c",
|
|
|
|
- "669f076466cf0db42a661cd4",
|
|
|
|
- "669f172966cf0db42a6691c0",
|
|
|
|
- "669f198466cf0db42a66a385",
|
|
|
|
- "669f1ad366cf0db42a66afb9",
|
|
|
|
- "669f156666cf0db42a668403",
|
|
|
|
- "669f093c66cf0db42a662c08",
|
|
|
|
- "669f0d8266cf0db42a6646cb",
|
|
|
|
- "669f06e866cf0db42a661a1d",
|
|
|
|
- "669f1bd766cf0db42a66b86e",
|
|
|
|
- "669efcd066cf0db42a65e4f4",
|
|
|
|
- }
|
|
|
|
- pkgArr := []int{
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- 1,
|
|
|
|
- 0,
|
|
|
|
- 1,
|
|
|
|
- }
|
|
|
|
|
|
+ tmpArr := []string{}
|
|
|
|
+ pkgArr := []int{}
|
|
ok := 0
|
|
ok := 0
|
|
for k, v := range tmpArr {
|
|
for k, v := range tmpArr {
|
|
data := ul.SourceMgo.FindById("ai_41411", v)
|
|
data := ul.SourceMgo.FindById("ai_41411", v)
|
|
@@ -548,74 +677,69 @@ func TestIsPackage() {
|
|
}
|
|
}
|
|
|
|
|
|
func TestPackageInfo() {
|
|
func TestPackageInfo() {
|
|
- query := map[string]interface{}{
|
|
|
|
- "new_pkg": map[string]interface{}{
|
|
|
|
- "$exists": 1,
|
|
|
|
- },
|
|
|
|
- }
|
|
|
|
- dataArr, _ := ul.SourceMgo.Find("ai_41411_zhipu", query, nil, map[string]interface{}{})
|
|
|
|
- log.Debug("查询数量...", len(dataArr))
|
|
|
|
-
|
|
|
|
|
|
+ sess := ul.SourceMgo.GetMgoConn()
|
|
|
|
+ defer ul.SourceMgo.DestoryMongoConn(sess)
|
|
|
|
+ q, total := map[string]interface{}{"ai_zhipu.ispkg": true}, 0
|
|
|
|
+ it := sess.DB(ul.SourceMgo.DbName).C("result_20220218").Find(&q).Sort("-_id").Iter()
|
|
|
|
+ isok := 0
|
|
os.Remove("test.xlsx")
|
|
os.Remove("test.xlsx")
|
|
f := new_xlsx.NewFile()
|
|
f := new_xlsx.NewFile()
|
|
sheet, _ := f.AddSheet("数据信息")
|
|
sheet, _ := f.AddSheet("数据信息")
|
|
row := sheet.AddRow()
|
|
row := sheet.AddRow()
|
|
- writeRow(row, []string{"唯一标识", "站点", "剑鱼链接", "子包名称", "子包单位", "子包金额"})
|
|
|
|
- for _, v := range dataArr {
|
|
|
|
- tmpid := ul.BsonTOStringId(v["_id"])
|
|
|
|
- ttt := ul.SourceMgo.FindById("ai_41411", tmpid)
|
|
|
|
- site := qu.ObjToString(ttt["site"])
|
|
|
|
|
|
+ writeRow(row, []string{"序号", "唯一标识", "站点", "项目名称", "一级分类", "二级分类", "原文链接", "剑鱼链接", "子包名称", "子包单位", "子包金额"})
|
|
|
|
+ for tmp := make(map[string]interface{}); it.Next(&tmp); total++ {
|
|
|
|
+ if total%10000 == 0 {
|
|
|
|
+ log.Debug("cur index ", total, "~", isok)
|
|
|
|
+ }
|
|
|
|
+ tmpid := ul.BsonTOStringId(tmp["_id"])
|
|
|
|
+ site := qu.ObjToString(tmp["site"])
|
|
|
|
+ projectname := qu.ObjToString(tmp["projectname"])
|
|
|
|
+ toptype := qu.ObjToString(tmp["toptype"])
|
|
|
|
+ subtype := qu.ObjToString(tmp["subtype"])
|
|
|
|
+ href := qu.ObjToString(tmp["href"])
|
|
jyhref := fmt.Sprintf(ul.Url, qu.CommonEncodeArticle("content", tmpid))
|
|
jyhref := fmt.Sprintf(ul.Url, qu.CommonEncodeArticle("content", tmpid))
|
|
- p_info := *qu.ObjToMap(v["new_pkg"])
|
|
|
|
- p_arr := ul.IsMarkInterfaceMap(p_info["分包信息"])
|
|
|
|
- for _, v1 := range p_arr {
|
|
|
|
- row = sheet.AddRow()
|
|
|
|
- arr := []string{}
|
|
|
|
- arr = append(arr, tmpid)
|
|
|
|
- arr = append(arr, site)
|
|
|
|
- arr = append(arr, jyhref)
|
|
|
|
- arr = append(arr, qu.ObjToString(v1["包项目名称"]))
|
|
|
|
- arr = append(arr, qu.ObjToString(v1["中标单位"]))
|
|
|
|
- arr = append(arr, qu.ObjToString(v1["中标金额"]))
|
|
|
|
- writeRow(row, arr)
|
|
|
|
|
|
+ ai_zhipu := *qu.ObjToMap(tmp["ai_zhipu"])
|
|
|
|
+ if s_pkg := qu.ObjToMap(ai_zhipu["s_pkg"]); s_pkg != nil {
|
|
|
|
+ if s_info := qu.ObjToMap((*s_pkg)["s_pkg"]); s_info != nil && len(*s_info) > 1 {
|
|
|
|
+ isok++
|
|
|
|
+ for _, v := range *s_info {
|
|
|
|
+ if v1 := qu.ObjToMap(v); v1 != nil {
|
|
|
|
+ row = sheet.AddRow()
|
|
|
|
+ arr := []string{}
|
|
|
|
+ arr = append(arr, fmt.Sprintf("%d", isok))
|
|
|
|
+ arr = append(arr, tmpid)
|
|
|
|
+ arr = append(arr, site)
|
|
|
|
+ arr = append(arr, projectname)
|
|
|
|
+ arr = append(arr, toptype)
|
|
|
|
+ arr = append(arr, subtype)
|
|
|
|
+ arr = append(arr, href)
|
|
|
|
+ arr = append(arr, jyhref)
|
|
|
|
+ arr = append(arr, qu.ObjToString((*v1)["name"]))
|
|
|
|
+ arr = append(arr, qu.ObjToString((*v1)["winner"]))
|
|
|
|
+ bidamount := qu.Float64All((*v1)["bidamount"])
|
|
|
|
+ if bidamount > 0.0 {
|
|
|
|
+ arr = append(arr, fmt.Sprintf("%.2f", bidamount))
|
|
|
|
+ } else {
|
|
|
|
+ arr = append(arr, "")
|
|
|
|
+ }
|
|
|
|
+ writeRow(row, arr)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if isok > 1000 {
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ tmp = make(map[string]interface{})
|
|
}
|
|
}
|
|
|
|
+ log.Debug("is over ", total, isok)
|
|
|
|
+
|
|
if err := f.Save("test.xlsx"); err != nil {
|
|
if err := f.Save("test.xlsx"); err != nil {
|
|
fmt.Println("保存xlsx失败:", err)
|
|
fmt.Println("保存xlsx失败:", err)
|
|
} else {
|
|
} else {
|
|
fmt.Println("保存xlsx成功:", err)
|
|
fmt.Println("保存xlsx成功:", err)
|
|
}
|
|
}
|
|
log.Debug("is over ...")
|
|
log.Debug("is over ...")
|
|
-
|
|
|
|
- return
|
|
|
|
- //分包判断,获取信息
|
|
|
|
- pool_mgo := make(chan bool, 80)
|
|
|
|
- wg_mgo := &sync.WaitGroup{}
|
|
|
|
- for k, v := range dataArr {
|
|
|
|
- if k%10 == 0 {
|
|
|
|
- log.Debug(k, "~", v["_id"])
|
|
|
|
- }
|
|
|
|
- pool_mgo <- true
|
|
|
|
- wg_mgo.Add(1)
|
|
|
|
- go func(v map[string]interface{}) {
|
|
|
|
- defer func() {
|
|
|
|
- <-pool_mgo
|
|
|
|
- wg_mgo.Done()
|
|
|
|
- }()
|
|
|
|
- tmpid := ul.BsonTOStringId(v["_id"])
|
|
|
|
- data := ul.SourceMgo.FindById("ai_41411", tmpid)
|
|
|
|
- if detail := qu.ObjToString(data["detail"]); utf8.RuneCountInString(detail) > 100 {
|
|
|
|
- pkg := prompt.AcquireMultiplePackageInfo(detail)
|
|
|
|
- //最终结果...
|
|
|
|
- ul.SourceMgo.UpdateById("ai_41411_zhipu", tmpid, map[string]interface{}{
|
|
|
|
- "$set": map[string]interface{}{
|
|
|
|
- "new_pkg": pkg,
|
|
|
|
- },
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- }(v)
|
|
|
|
- }
|
|
|
|
- wg_mgo.Wait()
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// 更新链接
|
|
// 更新链接
|