|
|
package DataexService
|
|
|
|
|
|
import (
|
|
|
"dsDataex/MyService/DataEX/DataexDAO"
|
|
|
"dsDataex/MyService/MySwagger"
|
|
|
"dsDataex/Utils/CacheUtil"
|
|
|
"dsDataex/Utils/ConfigUtil"
|
|
|
"dsDataex/Utils/DbUtil"
|
|
|
"encoding/json"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
func LuaOrgtreeProcBatch(datas []MySwagger.Data) {
|
|
|
|
|
|
var IDs []string
|
|
|
var areaIDs []string
|
|
|
|
|
|
for no := 0; no < len(datas) && no < 1000; no++ {
|
|
|
var jsonData map[string]interface{}
|
|
|
|
|
|
json.Unmarshal([]byte(datas[no].Data), &jsonData)
|
|
|
|
|
|
var id=strconv.FormatFloat(jsonData["ORG_ID"].(float64), 'f', -1, 64)
|
|
|
//change by zhangjun 2020-07-23
|
|
|
//IDs =append(IDs,strings.ToLower(id))
|
|
|
IDs =append(IDs,id)
|
|
|
|
|
|
if Contains(areaIDs,jsonData["area_code"].(string))==-1 {
|
|
|
areaIDs = append(areaIDs, jsonData["area_code"].(string))
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result := CacheUtil.GetListByIds(IDs, CacheUtil.GetBean("t_dataex_orgtree"))
|
|
|
|
|
|
var updateIDs []string
|
|
|
|
|
|
for no:=0;no< len(result) ;no++{
|
|
|
updateIDs=append(updateIDs,result[no]["id"].(string))
|
|
|
}
|
|
|
|
|
|
var parentMap map[string]string
|
|
|
parentMap =DataexDAO.GetParentID2BaseGO(areaIDs)
|
|
|
|
|
|
var sqls []string
|
|
|
var sql string
|
|
|
//补 parent_id
|
|
|
var sqls2 []string
|
|
|
var refresh = false
|
|
|
|
|
|
for no:=0;no< len(datas) ;no++{
|
|
|
|
|
|
var jsonData map[string]interface{}
|
|
|
json.Unmarshal([]byte(datas[no].Data), &jsonData)
|
|
|
|
|
|
var orgType string
|
|
|
var schoolType string
|
|
|
var parentID string
|
|
|
|
|
|
switch jsonData["ORG_TYPE"].(type) {
|
|
|
case float64:
|
|
|
orgType =strconv.FormatFloat(jsonData["ORG_TYPE"].(float64), 'f', -1, 64)
|
|
|
break
|
|
|
case string:
|
|
|
orgType = jsonData["ORG_TYPE"].(string)
|
|
|
break
|
|
|
}
|
|
|
|
|
|
if orgType!="1" &&orgType!="2" &&orgType!="7" {
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
if orgType=="2"{
|
|
|
//默认-1 1:小学,2:初中,3:高中,4:完全中学,5:九年一贯制,6:十二年一贯制,7:大学,8:职业,9:幼儿 10:小幼一体 11:小幼初一体
|
|
|
switch jsonData["school_type"].(float64) {
|
|
|
case 1:
|
|
|
schoolType="211"
|
|
|
break
|
|
|
case 2:
|
|
|
schoolType="311"
|
|
|
break
|
|
|
case 3:
|
|
|
schoolType="342"
|
|
|
break
|
|
|
case 4:
|
|
|
schoolType="341"
|
|
|
break
|
|
|
case 5:
|
|
|
schoolType="312"
|
|
|
break
|
|
|
case 6:
|
|
|
schoolType="345"
|
|
|
break
|
|
|
case 7:
|
|
|
schoolType="411"
|
|
|
break
|
|
|
case 8:
|
|
|
schoolType="414"
|
|
|
break
|
|
|
case 9:
|
|
|
schoolType="111"
|
|
|
break
|
|
|
case 10:
|
|
|
schoolType="211"
|
|
|
break
|
|
|
case 11:
|
|
|
schoolType="312"
|
|
|
break
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ConfigUtil.ROOT_ORGNAME == jsonData["ORG_NAME"].(string) {
|
|
|
parentID = "-1"
|
|
|
} else {
|
|
|
if orgType=="1" {
|
|
|
var areaCode string
|
|
|
|
|
|
if jsonData["area_code"].(string)[2:] == "0000" {//省级
|
|
|
|
|
|
areaCode="100000"
|
|
|
}else if jsonData["area_code"].(string)[4:] == "00" {//市级
|
|
|
|
|
|
areaCode = jsonData["area_code"].(string)[0:2] + "0000"
|
|
|
} else {//县区级
|
|
|
|
|
|
areaCode = jsonData["area_code"].(string)[0:4] + "00"
|
|
|
|
|
|
//处理直辖市
|
|
|
if areaCode=="110100"{
|
|
|
areaCode="110000"//北京
|
|
|
}
|
|
|
if areaCode=="120100"{
|
|
|
areaCode="120000"//天津
|
|
|
}
|
|
|
if areaCode=="310100"{
|
|
|
areaCode="310000"//上海
|
|
|
}
|
|
|
if areaCode=="500100"{
|
|
|
areaCode="500000"//重庆
|
|
|
}
|
|
|
if areaCode=="500200"{
|
|
|
areaCode="500000"
|
|
|
}
|
|
|
if areaCode=="371200"{
|
|
|
areaCode="370100"//济南
|
|
|
}
|
|
|
}
|
|
|
|
|
|
parentID = parentMap[areaCode]
|
|
|
|
|
|
//处理教育部
|
|
|
if jsonData["area_code"].(string)=="100000"{
|
|
|
parentID="0"
|
|
|
}
|
|
|
|
|
|
//delete by zhangjun 2020-07-17
|
|
|
//if parentID==""{
|
|
|
// parentID = DataexDAO.GetParentIDBaseGO(areaCode)
|
|
|
//}
|
|
|
|
|
|
if parentID==""{
|
|
|
sqls2=append(sqls2,"update t_dataex_orgtree set parent_id =(select id from t_dataex_orgtree where org_type=1 and area_id='" + areaCode + "') where id='"+IDs[no] +"'")
|
|
|
}
|
|
|
}else {
|
|
|
parentID = parentMap[jsonData["area_code"].(string)]
|
|
|
|
|
|
//if parentID==""{
|
|
|
// parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string))
|
|
|
//}
|
|
|
|
|
|
if parentID==""{
|
|
|
sqls2=append(sqls2,"update t_dataex_orgtree set parent_id =(select id from t_dataex_orgtree where org_type=1 and area_id='" + jsonData["area_code"].(string) + "') where id='"+IDs[no] +"'")
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//是否需要刷新 机构访问控制缓存
|
|
|
if Contains( CacheUtil.PARENT_IDS,parentID)>-1{
|
|
|
refresh=true
|
|
|
}
|
|
|
|
|
|
var provinceId = jsonData["province_code"].(string)
|
|
|
|
|
|
var cityId=""
|
|
|
if jsonData["city_code"].(string) == "" || jsonData["city_code"].(string) == "-1" {
|
|
|
cityId = jsonData["province_code"].(string)
|
|
|
} else {
|
|
|
cityId = jsonData["city_code"].(string)
|
|
|
}
|
|
|
|
|
|
var areaId=""
|
|
|
if jsonData["district_code"].(string) == "" || jsonData["district_code"].(string) == "-1" {
|
|
|
areaId = cityId
|
|
|
} else {
|
|
|
areaId = jsonData["district_code"].(string)
|
|
|
}
|
|
|
|
|
|
if Contains(updateIDs, IDs[no])>-1 {
|
|
|
|
|
|
sql = "update t_dataex_orgtree set org_name = '" + jsonData["ORG_NAME"].(string)+"',org_type="+ orgType +",school_type='"+schoolType+"',parent_id ='" + parentID + "',province_id='"+provinceId+"',city_id='"+cityId+"',area_id='"+areaId+"',change_time='"+time.Now().Format("2006-01-02 15:04:05")+"' where id='" + IDs[no] + "'"
|
|
|
}else {
|
|
|
|
|
|
sql = "insert into t_dataex_orgtree (id,org_name,org_type,school_type,parent_id,province_id,city_id,area_id,create_time,delete_flag,enable_flag) values ('"+ IDs[no] +"','"+jsonData["ORG_NAME"].(string)+"',"+orgType+",'"+schoolType+"','"+parentID+"','"+provinceId+"','"+cityId+"','"+areaId+"','"+time.Now().Format("2006-01-02 15:04:05")+"',-1,1)"
|
|
|
}
|
|
|
|
|
|
sqls=append(sqls,sql)
|
|
|
}
|
|
|
|
|
|
DbUtil.Engine.Sqls(sqls).Execute()
|
|
|
|
|
|
if len(sqls2)>0{
|
|
|
DbUtil.Engine.Sqls(sqls2).Execute()
|
|
|
}
|
|
|
|
|
|
//缓存命中、缓存为空、parent_id未知 刷新缓存
|
|
|
if refresh || len(CacheUtil.PARENT_IDS)==0 || len(sqls2)>0{
|
|
|
CacheUtil.RefreshOrgtree()
|
|
|
}
|
|
|
}
|