forked from golang/hotime
670 lines
20 KiB
Go
670 lines
20 KiB
Go
package admin
|
||
|
||
import (
|
||
. "code.hoteas.com/golang/hotime"
|
||
. "code.hoteas.com/golang/hotime/common"
|
||
"fmt"
|
||
"github.com/Chain-Zhang/pinyin"
|
||
"github.com/xuri/excelize/v2"
|
||
"io"
|
||
"os"
|
||
"strings"
|
||
"time"
|
||
"unicode"
|
||
)
|
||
|
||
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)
|
||
}
|
||
|
||
var CompanyInOutCtr = Ctr{
|
||
//下载政企超链接里面填报的数据
|
||
"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)
|
||
|
||
},
|
||
|
||
"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 {
|
||
|
||
//第一排是指标分类,去除掉第一个参数,其存在合并所以,如果是合并的则删除
|
||
//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)
|
||
// }
|
||
//
|
||
// }
|
||
//
|
||
//}
|
||
|
||
//第二排是指标项,去除掉第一个参数,
|
||
//最重要的是参数tag生成,通过中文转拼音获取首字母实现,遇到同名的则最后加一位数字
|
||
//if k == 1 {
|
||
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 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,
|
||
//"tag_ctg_id": tagCtgs[ck-1].GetCeilInt("id"),
|
||
"create_time": time.Now().Unix(),
|
||
"modify_time": time.Now().Unix(),
|
||
}
|
||
id := this.Db.Insert("tag", tag)
|
||
tag["id"] = id
|
||
tags = append(tags, tag)
|
||
}
|
||
|
||
}
|
||
|
||
//第四排以后是数据项,去除掉第一个参数,
|
||
//根据统一社会信用代码识别是否存在,同时将校验部分数字
|
||
if k > 2 {
|
||
|
||
//整行数据
|
||
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
|
||
}
|
||
|
||
if rowData["IEDCQYM"] == nil {
|
||
fmt.Println("数据错误")
|
||
}
|
||
|
||
companyData := Map{
|
||
"name": rowData["IEDCQYM"],
|
||
//"sn": rowData["IEDCTYSHXYDM"],
|
||
"address": rowData["IEDCQYDZ"],
|
||
"unit": rowData["IEDCSDMC"],
|
||
"zdmj": rowData["IEDCZDMJ"],
|
||
"yysr": rowData["IEDCYYSR1"],
|
||
"lrze": rowData["IEDCLRZE1"],
|
||
"yjsj": rowData["IEDCYJSJ"],
|
||
"yfjf": rowData["IEDCNYFFY"],
|
||
"zgrs": rowData["IEDCSBRS"],
|
||
"zywrwpfdl": rowData["IEDCZYWRWPFZDL"],
|
||
"zhnh": rowData["IEDCZNH"],
|
||
"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["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"]
|
||
}
|
||
|
||
//行业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"]})
|
||
//没有则创建
|
||
if company == nil && companyData.GetString("sn") != "暂无" && companyData.GetString("sn") != "" {
|
||
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
|
||
}
|