diff --git a/dsDataex/Build.cmd b/dsDataex/Build.cmd new file mode 100644 index 00000000..4d0f83d5 --- /dev/null +++ b/dsDataex/Build.cmd @@ -0,0 +1,4 @@ +SET CGO_ENABLED=0 +SET GOOS=windows +SET GOARCH=amd64 +go build \ No newline at end of file diff --git a/dsDataex/Config/Config.ini b/dsDataex/Config/Config.ini index 26c3746b..69afe408 100644 --- a/dsDataex/Config/Config.ini +++ b/dsDataex/Config/Config.ini @@ -1,9 +1,15 @@ [mysql] -ip = 10.10.6.200 -port = 22066 -database = base_db_zhangjun +ip = 127.0.0.1 +port = 3306 +database = db_dataex user = root -pwd = DsideaL147258369 +pwd = dsideal + +;ip = 10.10.6.200 +;port = 22066 +;database = base_db_zhangjun +;user = root +;pwd = DsideaL147258369 [redis] ip = 127.0.0.1 @@ -16,7 +22,7 @@ KafkaAddress = 192.168.0.200:9092 [elasticsearch] nodes = http://10.10.14.61:9200,http://10.10.14.62:9200,http://10.10.14.63:9200 -##nodes = http://192.168.0.200:9200,http://192.168.0.200:9201,http://192.168.0.200:9202 +;nodes = http://192.168.0.200:9200,http://192.168.0.200:9201,http://192.168.0.200:9202 user = root pwd = dsideal diff --git a/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go b/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go index 2cb2b483..45dcc686 100644 --- a/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go +++ b/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go @@ -32,9 +32,9 @@ func GetbySystemID(systemID string) (bool, string, []map[string]interface{}, err } } -func GetParentIDBaseGO(area_code string) string{ +func GetParentIDBaseGO(areaCode string) string{ - sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + area_code + "'" + sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + areaCode + "'" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) @@ -46,17 +46,26 @@ func GetParentIDBaseGO(area_code string) string{ } } -func GetParentID2BaseGO(area_code string) string{ +func GetParentID2BaseGO(areaCodes []string) map[string] string{ - sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + area_code + "'" + var areaCode = strings.Join(areaCodes, "','") + + sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id in ('" + areaCode + "')" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) + var result=make( map[string]string) + if count >0 { - return list[0]["id"].(string) + for no:=0;no< len(list);no++{ + + result[list[no]["area_id"].(string)]=list[no]["id"].(string) + } + + return result }else { - return "" + return nil } } diff --git a/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go index 620ad83f..c29b963d 100644 --- a/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go +++ b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go @@ -12,6 +12,7 @@ import ( "reflect" "strconv" "strings" + "time" ) func OrgtreeProc(datas []MySwagger.Data) { @@ -118,7 +119,9 @@ func OrgtreeProcBatch(datas []MySwagger.Data) { IDs =append(IDs,strings.ToLower(jsonData["org_id"].(string))) - areaIDs=append(areaIDs,strings.ToLower(jsonData["area_code"].(string))) + if Contains(areaIDs,jsonData["area_code"].(string))==-1 { + areaIDs = append(areaIDs, jsonData["area_code"].(string)) + } } result := CacheUtil.GetListByIds(IDs, CacheUtil.GetBean("t_dataex_orgtree")) @@ -129,10 +132,13 @@ func OrgtreeProcBatch(datas []MySwagger.Data) { updateIDs=append(updateIDs,result[no]["id"].(string)) } + var parentMap map[string]string + parentMap =DataexDAO.GetParentID2BaseGO(areaIDs) + var sqls []string var sql string - for no:=0;no< len(datas) && no < 1000 ;no++{ + for no:=0;no< len(datas) ;no++{ var jsonData map[string]interface{} json.Unmarshal([]byte(datas[no].Data), &jsonData) @@ -150,6 +156,10 @@ func OrgtreeProcBatch(datas []MySwagger.Data) { break } + if orgType!="1" &&orgType!="2" &&orgType!="7" { + continue + } + if orgType=="2"{ schoolType=jsonData["xxbxlxm"].(string) } @@ -160,23 +170,77 @@ func OrgtreeProcBatch(datas []MySwagger.Data) { if orgType=="1" { var areaCode string - if jsonData["area_code"].(string)[4:] != "00" { - areaCode = jsonData["area_code"].(string)[0:4] + "00" - } else { + 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" + } + } + + parentID = parentMap[areaCode] + + if parentID==""{ + parentID = DataexDAO.GetParentIDBaseGO(areaCode) } - parentID = DataexDAO.GetParentIDBaseGO(areaCode) + //处理教育部 + if jsonData["area_code"].(string)=="100000"{ + parentID="0" + } }else { - parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string)) + parentID = parentMap[jsonData["area_code"].(string)] + + if parentID==""{ + parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string)) + } } } + + + 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 + "' where id='" + IDs[no] + "'" + 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 ('"+jsonData["org_id"].(string)+"','"+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) diff --git a/dsDataex/MyService/DataEX/DataexService/DataexService.go b/dsDataex/MyService/DataEX/DataexService/DataexService.go index d3381917..2fb5cbb1 100644 --- a/dsDataex/MyService/DataEX/DataexService/DataexService.go +++ b/dsDataex/MyService/DataEX/DataexService/DataexService.go @@ -205,7 +205,9 @@ func DataexSetBatch(systemID string, datas []MySwagger.Data,datasource *models.T //add by zhangjun 2020-07-15 //处理组织机构树同步 if datasource.DatasourceCode=="org_school" && systemID=="BASE_GO"{ - OrgtreeProc(datas) + //change by zhangjun 2020-07-16 + //OrgtreeProc(datas) + OrgtreeProcBatch(datas) } //开始 ES 相关数据操作!!!