123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package main
- import (
- "flag"
- "fmt"
- "github.com/tealeg/xlsx"
- "go.mongodb.org/mongo-driver/bson"
- mgo "mongodb"
- qu "qfw/util"
- "util"
- )
- var (
- path string
- Mgo *mgo.MongodbSim
- )
- func init() {
- Mgo = &mgo.MongodbSim{
- MongodbAddr: "192.168.3.166:27082", // 127.0.0.1:27084
- Size: 5,
- DbName: "jyqykhfw",
- }
- Mgo.InitPool()
- }
- func main() {
- flag.StringVar(&path, "f", "", "文件路径")
- flag.Parse()
- if path != "" {
- file, err := xlsx.OpenFile(path)
- if err != nil {
- panic(err)
- }
- sheet := file.Sheets[0]
- cellFieldName := map[int]string{}
- for rn, row := range sheet.Rows {
- if rn == 0 {
- for index, cell := range row.Cells {
- //if cell.Value == "招标人" || cell.Value == "中标人" || cell.Value == "中标金额" {
- // qu.Debug(cell.Value, index)
- //}
- if v := FieldsMap[cell.Value]; v != "" {
- cellFieldName[index] = v
- }
- }
- } else {
- q := bson.M{}
- for i, f := range cellFieldName {
- if val := row.Cells[i].Value; val != "" && (f == "s_winner" || f == "buyer") {
- q[f] = val
- }
- if val := row.Cells[i].Value; val != "" && f == "bidamount" {
- if qu.Float64All(val) != 0 {
- q[f] = qu.Float64All(val)
- }
- }
- }
- info, _ := Mgo.FindOne("zglt_history", q)
- if len(*info) > 0 {
- row.Cells[12].SetValue(-1)
- } else {
- row.Cells[12].SetValue(1)
- }
- }
- }
- err = file.Save(path)
- } else {
- flag.PrintDefaults()
- }
- }
- var FieldsMap = map[string]string{
- "是否优选": "is_push",
- "运营商中标标签": "tagname",
- "主体公司": "tagname2",
- "中标人": "s_winner",
- "招标人": "buyer",
- "中标金额": "bidamount",
- }
- func main1() {
- flag.StringVar(&path, "f", "", "文件路径")
- flag.Parse()
- if path != "" {
- file, err := xlsx.OpenFile(path)
- if err != nil {
- panic(err)
- }
- sheet := file.Sheets[0]
- idcolnum := -1
- cellFieldName := map[int]string{}
- update := make(map[string]interface{})
- for rn, row := range sheet.Rows {
- if rn == 0 {
- for index, cell := range row.Cells {
- if cell.Value == "唯一标识" || cell.Value == "标讯编码(infoID)" { //id所在列
- idcolnum = index
- }
- if v := FieldsMap[cell.Value]; v != "" {
- cellFieldName[index] = v
- }
- }
- if idcolnum == -1 {
- break
- }
- continue
- } else {
- id := row.Cells[idcolnum].String()
- id = util.SE.DecodeString(id)
- for i, f := range cellFieldName {
- if val := row.Cells[i].Value; val != "" {
- if f == "is_push" {
- update[f] = qu.IntAll(val)
- } else {
- update[fmt.Sprintf("v_baseinfo.%s", f)] = val
- }
- }
- }
- qu.Debug(id, update)
- Mgo.UpdateById("f_sourceinfo_chinaunicom_zb_data", id, bson.M{"$set": update})
- }
- }
- err = file.Save(path)
- } else {
- flag.PrintDefaults()
- }
- }
|