You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
4.7 KiB
206 lines
4.7 KiB
package DataexService
|
|
|
|
import (
|
|
"dsDataex/GenXorm/models"
|
|
"dsDataex/MyModel/OrgTree/OrgtreeDAO"
|
|
"dsDataex/MyService/DataEX/DataexDAO"
|
|
"dsDataex/MyService/MySwagger"
|
|
"dsDataex/Utils/CacheUtil"
|
|
"dsDataex/Utils/ConfigUtil"
|
|
"dsDataex/Utils/DbUtil"
|
|
"encoding/json"
|
|
"reflect"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func OrgtreeProc(datas []MySwagger.Data) {
|
|
|
|
for no := 0; no < len(datas) && no < 1000; no++ {
|
|
|
|
var jsonData map[string]interface{}
|
|
|
|
json.Unmarshal([]byte(datas[no].Data), &jsonData)
|
|
|
|
var data models.TDataexOrgtree
|
|
|
|
//change by zhangjun 2020-07-15
|
|
//data.Id = jsonData["org_id"].(string)
|
|
data.Id = strings.ToLower(jsonData["org_id"].(string))
|
|
data.OrgName = jsonData["org_name"].(string)
|
|
|
|
switch jsonData["org_type"].(type) {
|
|
case float64:
|
|
data.OrgType= (int)(jsonData["org_type"].(float64))
|
|
break
|
|
case string:
|
|
data.OrgType, _ = strconv.Atoi(jsonData["org_type"].(string))
|
|
break
|
|
}
|
|
|
|
|
|
switch data.OrgType {
|
|
case 1:
|
|
if ConfigUtil.ROOT_ORGNAME == jsonData["org_name"].(string) {
|
|
data.ParentId = "-1"
|
|
} else {
|
|
var areaCode string
|
|
|
|
if jsonData["area_code"].(string)[4:] != "00" {
|
|
areaCode = jsonData["area_code"].(string)[0:4] + "00"
|
|
} else {
|
|
areaCode = jsonData["area_code"].(string)[0:2] + "0000"
|
|
}
|
|
|
|
data.ParentId = DataexDAO.GetParentIDBaseGO(areaCode)
|
|
}
|
|
|
|
break
|
|
case 2:
|
|
if ConfigUtil.ROOT_ORGNAME == jsonData["org_name"].(string) {
|
|
data.ParentId = "-1"
|
|
} else {
|
|
data.ParentId = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string))
|
|
}
|
|
|
|
data.SchoolType = jsonData["xxbxlxm"].(string)
|
|
|
|
break
|
|
case 7:
|
|
if ConfigUtil.ROOT_ORGNAME == jsonData["org_name"].(string) {
|
|
data.ParentId = "-1"
|
|
} else {
|
|
data.ParentId = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string))
|
|
}
|
|
|
|
break
|
|
default:
|
|
return
|
|
}
|
|
|
|
data.ProvinceId = jsonData["province_code"].(string)
|
|
|
|
if jsonData["city_code"].(string) == "" || jsonData["city_code"].(string) == "-1" {
|
|
data.CityId = jsonData["province_code"].(string)
|
|
} else {
|
|
data.CityId = jsonData["city_code"].(string)
|
|
}
|
|
|
|
if jsonData["district_code"].(string) == "" || jsonData["district_code"].(string) == "-1" {
|
|
data.AreaId = data.CityId
|
|
} else {
|
|
data.AreaId = jsonData["district_code"].(string)
|
|
}
|
|
|
|
data.DeleteFlag = -1
|
|
data.EnableFlag = 1
|
|
|
|
//change by zhangjun 2020-07-16
|
|
//ids := []string{datas[no].DataID}
|
|
ids := []string{data.Id}
|
|
|
|
result := CacheUtil.GetListByIds(ids, CacheUtil.GetBean("t_dataex_orgtree"))
|
|
|
|
if len(result) == 1 {
|
|
OrgtreeDAO.UpdateOrgtree(data.Id, &data)
|
|
} else {
|
|
OrgtreeDAO.CreateOrgtree(&data)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
func OrgtreeProcBatch(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)
|
|
|
|
IDs =append(IDs,strings.ToLower(jsonData["org_id"].(string)))
|
|
|
|
areaIDs=append(areaIDs,strings.ToLower(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 sqls []string
|
|
var sql string
|
|
|
|
for no:=0;no< len(datas) && no < 1000 ;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=="2"{
|
|
schoolType=jsonData["xxbxlxm"].(string)
|
|
}
|
|
|
|
if ConfigUtil.ROOT_ORGNAME == jsonData["org_name"].(string) {
|
|
parentID = "-1"
|
|
} else {
|
|
if orgType=="1" {
|
|
var areaCode string
|
|
|
|
if jsonData["area_code"].(string)[4:] != "00" {
|
|
areaCode = jsonData["area_code"].(string)[0:4] + "00"
|
|
} else {
|
|
areaCode = jsonData["area_code"].(string)[0:2] + "0000"
|
|
}
|
|
|
|
parentID = DataexDAO.GetParentIDBaseGO(areaCode)
|
|
}else {
|
|
parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_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+"' where id='" + IDs[no] + "'"
|
|
}else {
|
|
|
|
}
|
|
|
|
sqls=append(sqls,sql)
|
|
}
|
|
|
|
DbUtil.Engine.Sqls(sqls).Execute()
|
|
}
|
|
|
|
func Contains(array interface{}, val interface{}) (index int) {
|
|
index = -1
|
|
switch reflect.TypeOf(array).Kind() {
|
|
case reflect.Slice: {
|
|
s := reflect.ValueOf(array)
|
|
for i := 0; i < s.Len(); i++ {
|
|
if reflect.DeepEqual(val, s.Index(i).Interface()) {
|
|
index = i
|
|
return index
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return index
|
|
} |