2022-10-30 15:44:05 +00:00
package admin
import (
2022-10-30 17:18:19 +00:00
. "code.hoteas.com/golang/hotime"
. "code.hoteas.com/golang/hotime/common"
2022-10-30 15:44:05 +00:00
"fmt"
2022-10-30 17:18:19 +00:00
"github.com/Chain-Zhang/pinyin"
"github.com/xuri/excelize/v2"
2022-10-30 15:44:05 +00:00
"io"
"os"
"strings"
"time"
"unicode"
)
2023-02-28 08:24:37 +00:00
func convertToTitle ( columnNumber int ) string {
var res [ ] byte
for columnNumber > 0 {
a := columnNumber % 26
if a == 0 {
a = 26
}
res = append ( res , 'A' + byte ( a - 1 ) )
columnNumber = ( columnNumber - a ) / 26
}
// 上面输出的res是反着的, 前后交换
for i , n := 0 , len ( res ) ; i < n / 2 ; i ++ {
res [ i ] , res [ n - 1 - i ] = res [ n - 1 - i ] , res [ i ]
}
return string ( res )
}
2022-10-30 15:44:05 +00:00
var CompanyInOutCtr = Ctr {
2023-02-28 08:24:37 +00:00
//下载政企超链接里面填报的数据
"downloadQuestion" : func ( that * Context ) {
orgId := ObjToInt ( that . Req . FormValue ( "org_id" ) )
if orgId == 0 {
that . Display ( 3 , "参数错误" )
return
}
filePath := "temp/downloadQuestion" + ObjToStr ( orgId ) + ".xlsx"
f , e := excelize . OpenFile ( that . Config . GetString ( "tpt" ) + "/" + filePath )
// 设置单元格的值
questions := that . Db . Query ( "SELECT user.name AS user_name,user.phone,company.name AS company_name,question_company.name,question_company.question_data,question_company.status,question_company.modify_time FROM question_company INNER JOIN `user` ON question_company.`user_id`=`user`.id INNER JOIN `company` ON question_company.`company_id`=`company`.id WHERE question_company.org_id=?" , orgId )
if e != nil {
f = excelize . NewFile ( )
}
// 创建一个工作表
f . NewSheet ( "企业填报" )
f . DeleteSheet ( "Sheet1" )
//cs := append(NewCompanys{}, companys...)
f . SetCellValue ( "企业填报" , convertToTitle ( 1 ) + "1" , "调查名" )
f . SetCellValue ( "企业填报" , convertToTitle ( 2 ) + "1" , "企业名" )
f . SetCellValue ( "企业填报" , convertToTitle ( 3 ) + "1" , "姓名" )
f . SetCellValue ( "企业填报" , convertToTitle ( 4 ) + "1" , "手机号" )
f . SetCellValue ( "企业填报" , convertToTitle ( 5 ) + "1" , "状态" )
f . SetCellValue ( "企业填报" , convertToTitle ( 6 ) + "1" , "修改时间" )
for k , question := range questions {
//企业基础信息
f . SetCellValue ( "企业填报" , convertToTitle ( 1 ) + ObjToStr ( k + 5 ) , question . GetString ( "name" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( 2 ) + ObjToStr ( k + 5 ) , question . GetString ( "company_name" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( 3 ) + ObjToStr ( k + 5 ) , question . GetString ( "user_name" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( 4 ) + ObjToStr ( k + 5 ) , question . GetString ( "phone" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( 5 ) + ObjToStr ( k + 5 ) , question . GetString ( "status" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( 6 ) + ObjToStr ( k + 5 ) , time . Unix ( question . GetCeilInt64 ( "modify_time" ) , 0 ) . Format ( "2006-01-02 15:04" ) )
//企业问题信息基础信息
questionData := question . GetSlice ( "question_data" )
for k1 , _ := range questionData {
v1 := questionData . GetMap ( k1 )
if k == 0 {
f . SetCellValue ( "企业填报" , convertToTitle ( k1 + 7 ) + "1" , v1 . GetString ( "label" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( k1 + 7 ) + "2" , v1 . GetString ( "unit" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( k1 + 7 ) + "3" , v1 . GetString ( "remarks" ) )
f . SetCellValue ( "企业填报" , convertToTitle ( k1 + 7 ) + "4" , v1 . GetString ( "type" ) )
}
value := v1 . GetString ( "value" )
extend := v1 . GetSlice ( "extend" )
if extend != nil && len ( extend ) > 0 {
for k2 , _ := range extend {
v2 := extend . GetMap ( k2 )
value = value + ";" + v2 . GetString ( "value" )
}
}
f . SetCellValue ( "企业填报" , convertToTitle ( k1 + 7 ) + ObjToStr ( k + 5 ) , value )
}
//break
}
os . MkdirAll ( that . Config . GetString ( "tpt" ) + "/temp/" , os . ModeDir )
// 根据指定路径保存文件
if err := f . SaveAs ( that . Config . GetString ( "tpt" ) + "/" + filePath ) ; err != nil {
fmt . Println ( err )
that . Display ( 4 , "输出异常" )
return
}
//}
f . Save ( )
that . Resp . Header ( ) . Set ( "Location" , "/" + filePath )
that . Resp . WriteHeader ( 307 ) //关键在这里!
that . Display ( 0 , filePath )
} ,
2022-10-30 15:44:05 +00:00
"upload" : func ( this * Context ) {
orgId := ObjToInt ( this . Req . FormValue ( "org_id" ) )
if orgId == 0 {
this . Display ( 3 , "参数错误" )
return
}
//orgId := 1
//读取网络文件
fi , fheader , err := this . Req . FormFile ( "file" )
if err != nil {
this . Display ( 3 , err . Error ( ) )
return
}
filePath := this . Config . GetString ( "filePath" )
if filePath == "" {
filePath = "excel/2006/01/02/"
}
path := time . Now ( ) . Format ( filePath )
e := os . MkdirAll ( this . Config . GetString ( "tpt" ) + "/" + path , os . ModeDir )
if e != nil {
this . Display ( 3 , e . Error ( ) )
return
}
filePath = path + Md5 ( ObjToStr ( RandX ( 100000 , 9999999 ) ) ) + fheader . Filename [ strings . LastIndex ( fheader . Filename , "." ) : ]
newFile , e := os . Create ( this . Config . GetString ( "tpt" ) + "/" + filePath )
if e != nil {
this . Display ( 3 , e . Error ( ) )
return
}
_ , e = io . Copy ( newFile , fi )
if e != nil {
this . Display ( 3 , e . Error ( ) )
return
}
//this.Display(0, filePath)
//读取excel
//fmt.Println(Org[orgId],OrgId)
data := excel ( this . Config . GetString ( "tpt" ) + "/" + filePath )
if len ( data ) != 1 {
this . Display ( 3 , "表格不标准,请重新提交" )
return
}
err = decodeData2Sql ( data [ 0 ] , this , orgId )
if err != nil {
this . Display ( 4 , err . Error ( ) )
return
}
this . Display ( 0 , "上传成功" )
} ,
//"analyse": func(this *Context) {
// orgId := ObjToInt(this.Req.FormValue("org_id"))
// if orgId == 0 {
// this.Display(3, "参数错误")
// return
// }
// companys := this.Db.Select("company", "*", Map{"org_id": orgId})
//
// for _, v := range companys {
//
// data := Org[orgId].analyse(v.GetMap("upload_data"))
// for k, _ := range data {
// data[k] = data.GetFloat64(k)
// }
// v["analyse"] = data
// }
//
// cs := Org[orgId].analyseSort(companys)
// for _, v := range cs {
// as := v.GetMap("analyse")
// //v["analyse"] = as.ToJsonString()
// switch as.GetString("PJ") {
// case "A":
// v["level"] = 0
// case "B":
// v["level"] = 1
// case "C":
// v["level"] = 2
// case "D":
// v["level"] = 3
// }
// v["score"] = as.GetFloat64("ZDF")
//
// this.Db.Update("company", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("id")})
// this.Db.Update("company_history", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("company_history_id")})
// }
//
// this.Display(0, len(companys))
//
//},
"total_analyse" : func ( this * Context ) {
orgId := ObjToInt ( this . Req . FormValue ( "org_id" ) )
if orgId == 0 {
this . Display ( 3 , "参数错误" )
return
}
companys := this . Db . Select ( "company" , "*" , Map { "AND" : Map { "org_id" : orgId } } )
home_data , six_item_data , three_item_data , n_item_data := totalAnalyse ( companys )
org := this . Db . Get ( "org" , "*" , Map { "id" : orgId } )
fmt . Println ( six_item_data )
data := Map {
"name" : org . GetString ( "name" ) ,
"home_data" : home_data . ToJsonString ( ) ,
"six_item_data" : six_item_data . ToJsonString ( ) ,
"three_item_data" : three_item_data . ToJsonString ( ) ,
"n_item_data" : n_item_data . ToJsonString ( ) ,
"modify_time" : time . Now ( ) . Unix ( ) ,
}
org_analyse := this . Db . Get ( "org_analyse" , "id" , Map { "org_id" : orgId } )
if org_analyse == nil {
//data["name"] = time.Now().Format("2006-01-02 15:04") + "创建"
data [ "name" ] = org . GetString ( "name" )
data [ "org_id" ] = orgId
data [ "create_time" ] = time . Now ( ) . Unix ( )
id := this . Db . Insert ( "org_analyse" , data )
data [ "id" ] = id
} else {
this . Db . Update ( "org_analyse" , data , Map { "org_id" : orgId } )
}
this . Display ( 0 , data )
} ,
//
//"category_analyse": func(this *Context) {
//
// orgId := 1
// org := this.Db.Get("org", "*", Map{"id": orgId})
// categoryIDS := []int{
// 1369, //电子行业
// 799, //航空航天
// 481, //生物医药
// 990, //绿色能源
// 972, //机械制造
// 1021, //建材制造
// 717, //化工类
// 170, //轻工类
// 260, //纺织类
// 1088, //商贸类
// 1424, //投资管理
// 903, //配套类
// 959, //其他
// }
// totalAnalyse := this.Db.Get("org_analyse", "*", Map{"org_id": orgId})
//
// for _, id := range categoryIDS {
//
// companys := this.Db.Select("company", Map{"[><]category": "company.category_id=category.id"},
// "company.id,company.gs,company.level,company.score,company.upload_data,company.analyse,company.category_id", Map{"category.index[~]": "," + ObjToStr(id) + ","})
// ctgAn := ctgAnalyse(companys, totalAnalyse)
// data := Map{
// "name": org.GetString("name"),
// "modify_time": time.Now().Unix(),
// "data": ctgAn.ToJsonString(),
// }
// ctgAnalyse := this.Db.Get("category_analyse", "id", Map{"AND": Map{"org_id": orgId, "category_id": id}})
// if ctgAnalyse == nil {
// data["name"] = time.Now().Format("2006-01-02 15:04") + "创建"
// data["name"] = org.GetString("name")
// data["org_id"] = orgId
// data["category_id"] = id
// data["create_time"] = time.Now().Unix()
// id := this.Db.Insert("category_analyse", data)
// data["id"] = id
// } else {
// this.Db.Update("category_analyse", data, Map{"AND": Map{"org_id": orgId, "category_id": id}})
// }
//
// }
// this.Display(0, categoryIDS)
//},
//
"industry_analyse" : func ( this * Context ) {
orgId := ObjToInt ( this . Req . FormValue ( "org_id" ) )
if orgId == 0 {
this . Display ( 3 , "参数错误" )
return
}
industrys := this . Db . Select ( "industry_analyse" , "id,name,industry_id" , Map { "org_id" : orgId } )
totalAnalyse := this . Db . Get ( "org_analyse" , "*" , Map { "org_id" : orgId } )
for _ , industry := range industrys {
id := industry . GetCeilInt ( "industry_id" )
companys := this . Db . Select ( "industry" , Map { "[><]company" : "company.industry_id=industry.id" } ,
"company.id,company.gs,company.level,company.score,company.upload_data,company.analyse,company.industry_id" , Map { "AND" : Map { "industry.id" : id , "company.org_id" : orgId } } )
ctgAn := ctgAnalyse ( companys , totalAnalyse )
data := Map {
"modify_time" : time . Now ( ) . Unix ( ) ,
"data" : ctgAn . ToJsonString ( ) ,
}
this . Db . Update ( "industry_analyse" , data , Map { "AND" : Map { "org_id" : orgId , "industry_id" : id } } )
}
this . Display ( 0 , industrys )
} ,
}
func decodeData2Sql ( table [ ] [ ] string , this * Context , orgId int ) error {
tags := [ ] Map { } //报错所有的tag记录
tagCtgs := [ ] Map { }
for k , v := range table {
//第一排是指标分类,去除掉第一个参数,其存在合并所以,如果是合并的则删除
2022-10-30 19:27:23 +00:00
//if k == 0 {
//
// for ck, cv := range v {
// cv = strings.Replace(cv, " ", "", -1)
// cv = strings.Replace(cv, "\r\t", "", -1)
// cv = strings.Replace(cv, "\r", "", -1)
// v[ck] = cv
//
// if ck == 0 {
// continue
// }
// if cv == "" {
// v[ck] = v[ck-1]
// cv = v[ck]
// }
//
// tagCtg := this.Db.Get("tag_ctg", "*", Map{"AND": Map{"name": cv, "org_id": orgId}})
// if tagCtg != nil {
// tagCtgs = append(tagCtgs, tagCtg)
// continue
// }
// tagCtg = Map{
// "name": cv,
// "admin_id": this.Session("admin_id").ToInt(),
// "parent_id": 1, //上传分类为1
// "org_id": orgId,
// "create_time": time.Now().Unix(),
// "modify_time": time.Now().Unix(),
// }
// id := this.Db.Insert("tag_ctg", tagCtg)
//
// if id != 0 {
// tagCtg["id"] = id
// this.Db.Update("tag_ctg", Map{
// "index": ",1," + ObjToStr(id) + ",",
// }, Map{"id": id})
//
// tagCtgs = append(tagCtgs, tagCtg)
// }
//
// }
//
//}
2022-10-30 15:44:05 +00:00
//第二排是指标项,去除掉第一个参数,
//最重要的是参数tag生成, 通过中文转拼音获取首字母实现, 遇到同名的则最后加一位数字
2022-10-30 19:27:23 +00:00
//if k == 1 {
if k == 0 {
2022-10-30 15:44:05 +00:00
for ck , cv := range v {
cv = strings . Replace ( cv , " " , "" , - 1 )
cv = strings . Replace ( cv , "\r\t" , "" , - 1 )
cv = strings . Replace ( cv , "\r" , "" , - 1 )
v [ ck ] = cv
if ck == 0 {
continue
}
//补充分类
if ck >= len ( table [ 0 ] ) {
tagCtgs = append ( tagCtgs , tagCtgs [ len ( tagCtgs ) - 1 ] )
}
//补充说明
if ck >= len ( table [ 3 ] ) {
table [ 3 ] = append ( table [ 3 ] , table [ 3 ] [ len ( table [ 3 ] ) - 1 ] )
}
//补充单位
if ck >= len ( table [ 2 ] ) {
table [ 2 ] = append ( table [ 2 ] , "" )
}
tag := this . Db . Get ( "tag" , "*" , Map { "AND" : Map { "name" : cv , "type" : "0" , "org_id" : orgId } } )
if tag != nil {
tags = append ( tags , tag )
continue
}
sn , err := pinyin . New ( cv ) . Split ( " " ) . Mode ( pinyin . InitialsInCapitals ) . Convert ( )
if err != nil {
fmt . Println ( err )
sn = cv
} else {
sns := strings . Split ( sn , " " )
sn = "IEDC"
for _ , v1 := range sns {
if v1 != "" && ! unicode . IsPunct ( [ ] rune ( v1 ) [ 0 ] ) {
sn = sn + string ( [ ] rune ( v1 ) [ : 1 ] )
fmt . Println ( sn , v1 )
}
}
}
//sn=strings.Replace(sn,"\ufffd","",-1)
tagsn := this . Db . Get ( "tag" , "id" , Map { "AND" : Map { "sn" : sn , "type" : "0" , "org_id" : orgId } } )
if tagsn != nil {
for i := 0 ; i < 100 ; i ++ {
tagsn = this . Db . Get ( "tag" , "id" , Map { "AND" : Map { "sn" : sn + ObjToStr ( i ) , "type" : "0" , "org_id" : orgId } } )
if tagsn == nil {
sn = sn + ObjToStr ( i )
break
}
}
}
tag = Map {
"name" : cv ,
"description" : table [ 3 ] [ ck ] , //第三行对应位置为描述
"unit" : table [ 2 ] [ ck ] ,
"admin_id" : this . Session ( "admin_id" ) . ToInt ( ) ,
"org_id" : orgId ,
"type" : 0 ,
"sn" : sn ,
2022-10-30 19:27:23 +00:00
//"tag_ctg_id": tagCtgs[ck-1].GetCeilInt("id"),
2022-10-30 15:44:05 +00:00
"create_time" : time . Now ( ) . Unix ( ) ,
"modify_time" : time . Now ( ) . Unix ( ) ,
}
id := this . Db . Insert ( "tag" , tag )
tag [ "id" ] = id
tags = append ( tags , tag )
}
}
//第四排以后是数据项,去除掉第一个参数,
//根据统一社会信用代码识别是否存在,同时将校验部分数字
2022-10-30 19:27:23 +00:00
if k > 2 {
2022-10-30 15:44:05 +00:00
//整行数据
rowData := Map { }
for ck , cv := range v {
if ck == 0 {
continue
}
cv = strings . Replace ( cv , " " , "" , - 1 )
cv = strings . Replace ( cv , "\r\t" , "" , - 1 )
cv = strings . Replace ( cv , "\r" , "" , - 1 )
if cv == "" {
cv = "暂无"
//return errors.New("第" + ObjToStr(k+1) + "行," + ObjToStr(ck+1) + "列,数据为空请注意检查")
}
v [ ck ] = cv
if ck - 1 >= len ( tags ) {
fmt . Println ( cv , "表格错误" )
continue
}
rowData [ tags [ ck - 1 ] . GetString ( "sn" ) ] = cv
}
2022-10-30 19:27:23 +00:00
if rowData [ "IEDCQYM" ] == nil {
2022-10-30 15:44:05 +00:00
fmt . Println ( "数据错误" )
}
companyData := Map {
2022-10-30 19:27:23 +00:00
"name" : rowData [ "IEDCQYM" ] ,
//"sn": rowData["IEDCTYSHXYDM"],
2023-03-02 18:46:29 +00:00
"address" : rowData [ "IEDCQYDZ" ] ,
"unit" : rowData [ "IEDCSDMC" ] ,
2022-10-30 19:27:23 +00:00
"zdmj" : rowData [ "IEDCZDMJ" ] ,
"yysr" : rowData [ "IEDCYYSR1" ] ,
"lrze" : rowData [ "IEDCLRZE1" ] ,
"yjsj" : rowData [ "IEDCYJSJ" ] ,
2022-10-30 15:44:05 +00:00
"yfjf" : rowData [ "IEDCNYFFY" ] ,
"zgrs" : rowData [ "IEDCSBRS" ] ,
2022-10-30 19:27:23 +00:00
"zywrwpfdl" : rowData [ "IEDCZYWRWPFZDL" ] ,
"zhnh" : rowData [ "IEDCZNH" ] ,
2022-10-30 15:44:05 +00:00
"admin_id" : this . Session ( "admin_id" ) . ToInt ( ) ,
"upload_data" : rowData . ToJsonString ( ) ,
"org_id" : orgId ,
//"create_time": time.Now().Unix(),
"modify_time" : time . Now ( ) . Unix ( ) ,
//"lat": lat,
//"lng": lng,
}
2023-03-02 18:46:29 +00:00
if companyData [ "name" ] == nil && companyData [ "yysr" ] == nil && companyData [ "sn" ] == nil {
companyData = Map {
"name" : rowData [ "IEDCQYMC" ] ,
"sn" : rowData [ "IEDCTYSHXYDM" ] ,
"address" : rowData [ "IEDCQYDZ" ] ,
"unit" : rowData [ "IEDCSDMC" ] ,
"zdmj" : rowData [ "IEDCYDMJ" ] ,
"yysr" : rowData [ "IEDC2NYYSR" ] ,
"lrze" : rowData [ "IEDC2NLRZE" ] ,
"yjsj" : rowData [ "IEDCYNSJ" ] ,
"yfjf" : rowData [ "IEDCNYFFY" ] ,
"zgrs" : rowData [ "IEDCSBRS" ] ,
"zywrwpfdl" : rowData [ "IEDCZYWRWPFDL" ] ,
"zhnh" : rowData [ "IEDCZHNH" ] ,
"admin_id" : this . Session ( "admin_id" ) . ToInt ( ) ,
"upload_data" : rowData . ToJsonString ( ) ,
"org_id" : orgId ,
//"create_time": time.Now().Unix(),
"modify_time" : time . Now ( ) . Unix ( ) ,
//"lat": lat,
//"lng": lng,
}
}
if companyData . GetString ( "name" ) == "" {
companyData [ "name" ] = rowData [ "IEDCQYMC" ]
}
if companyData . GetString ( "sn" ) == "" && rowData [ "IEDCTYSHXYDM" ] != nil {
companyData [ "sn" ] = rowData [ "sn" ]
}
if companyData . GetString ( "address" ) == "" && rowData [ "IEDCQYDZ" ] != nil {
companyData [ "address" ] = rowData [ "IEDCQYDZ" ]
}
if companyData . GetString ( "unit" ) == "" && rowData [ "IEDCSDMC" ] != nil {
companyData [ "unit" ] = rowData [ "IEDCSDMC" ]
}
2022-10-30 15:44:05 +00:00
//行业ID
//org := this.Db.Get("org", "id,name", Map{"id": orgId})
//regin := "全国"
//if org != nil {
// regin = org.GetString("name")
//}
//baiduDataStr, _ := baidu.DefaultBaiDuMap.GetPosition(companyData.GetString("address"), regin)
//baiduData := ObjToMap(baiduDataStr)
//city := Map{}
//if baiduData != nil && baiduData.GetCeilInt("status") == 0 {
// address := baiduData.GetSlice("result")
// if len(address) != 0 {
// companyData["lat"] = address.GetMap(0).GetMap("location").GetFloat64("lat")
// companyData["lng"] = address.GetMap(0).GetMap("location").GetFloat64("lng")
//
// city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("district"), "ORDER": "`level` DESC"})
// if city == nil {
// city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("city"), "ORDER": "`level` DESC"})
// }
// }
//}
//if city != nil {
// companyData["city_id"] = city.GetCeilInt("id")
//}
//行业ID
category := this . Db . Get ( "category" , "id" , Map { "code" : rowData [ "IEDCSSXYXLDM" ] } )
if category != nil {
companyData [ "category_id" ] = category . GetCeilInt ( "id" )
}
////此处需要优化
//companyData["org_id"] = 3
//产业ID
industry := this . Db . Get ( "industry" , "id" , Map { "name" : rowData [ "IEDCCYLB" ] } )
if industry == nil {
industry = Map {
"admin_id" : this . Session ( "admin_id" ) . ToInt ( ) ,
"create_time" : time . Now ( ) . Unix ( ) ,
"modify_time" : time . Now ( ) . Unix ( ) ,
"name" : rowData [ "IEDCCYLB" ] ,
}
id := this . Db . Insert ( "industry" , industry )
industry [ "id" ] = id
}
if industry . GetCeilInt ( "id" ) != 0 {
//产业ID
industryAnalyse := this . Db . Get ( "industry_analyse" , "id" , Map { "AND" : Map { "industry_id" : industry . GetCeilInt ( "id" ) , "org_id" : orgId } } )
if industryAnalyse == nil {
industryAnalyse = Map {
"name" : rowData [ "IEDCCYLB" ] ,
"create_time" : time . Now ( ) . Unix ( ) ,
"modify_time" : time . Now ( ) . Unix ( ) ,
"org_id" : orgId ,
"industry_id" : industry . GetCeilInt ( "id" ) ,
}
//if city != nil {
// industryAnalyse["city_id"] = city.GetCeilInt("id")
//}
this . Db . Insert ( "industry_analyse" , industryAnalyse )
}
companyData [ "industry_id" ] = industry . GetCeilInt ( "id" )
}
company := this . Db . Get ( "company" , "id" , Map { "name" : companyData [ "name" ] } )
//没有则创建
2022-10-30 19:27:23 +00:00
if company == nil && companyData . GetString ( "sn" ) != "暂无" && companyData . GetString ( "sn" ) != "" {
2022-10-30 15:44:05 +00:00
company = this . Db . Get ( "company" , "id" , Map { "sn" : companyData [ "sn" ] } )
}
//没有则创建
if company == nil {
//更新两张表
companyData [ "create_time" ] = time . Now ( ) . Unix ( )
id := this . Db . Insert ( "company" , companyData )
companyData [ "company_id" ] = id
company = Map { "id" : id }
} else {
//有则更新
this . Db . Update ( "company" , companyData , Map { "id" : company . GetCeilInt ( "id" ) } )
companyData [ "company_id" ] = company . GetCeilInt ( "id" )
companyData [ "create_time" ] = time . Now ( ) . Unix ( )
}
id := this . Db . Insert ( "company_history" , companyData )
//更新最新的企业信息
this . Db . Update ( "company" , Map { "company_history_id" : id } , Map { "id" : company . GetCeilInt ( "id" ) } )
}
}
return nil
}
func excel ( filePath string ) [ ] [ ] [ ] string {
xlsx , err := excelize . OpenFile ( filePath )
if err != nil {
fmt . Println ( err )
os . Exit ( 1 )
}
list := xlsx . GetSheetList ( )
var data [ ] [ ] [ ] string
for _ , v := range list {
rows , e := xlsx . GetRows ( v )
if e != nil {
fmt . Println ( e )
continue
}
data = append ( data , rows )
}
return data
}