diff --git a/dsBigData/Business/School/SchoolController/SchoolController.go b/dsBigData/Business/School/SchoolController/SchoolController.go index abd30618..8cc441b2 100644 --- a/dsBigData/Business/School/SchoolController/SchoolController.go +++ b/dsBigData/Business/School/SchoolController/SchoolController.go @@ -477,6 +477,23 @@ func GetEduAssistCountByCity(c *gin.Context) { eduAssistCountArr = append(eduAssistCountArr, eduAssistCount) } + if areaType == "1" { + cityDirectlyCount, err := SchoolService.GetCityDirectlyEduAssistCount(cityCode) + if err != nil { + c.JSON(http.StatusOK, Model.Res{ + Success: false, + Message: err.Error(), + }) + return + } + + var eduAssistCount SchoolModel.EduAssistCount + eduAssistCount.AreaCode = cityCode + eduAssistCount.AreaName = "市直属" + eduAssistCount.Count = cityDirectlyCount + eduAssistCountArr = append(eduAssistCountArr, eduAssistCount) + } + c.JSON(http.StatusOK, Model.Res{ Success: true, List: eduAssistCountArr, diff --git a/dsBigData/Business/School/SchoolDao/SchoolDao.go b/dsBigData/Business/School/SchoolDao/SchoolDao.go index 1e9a007e..28834996 100644 --- a/dsBigData/Business/School/SchoolDao/SchoolDao.go +++ b/dsBigData/Business/School/SchoolDao/SchoolDao.go @@ -567,5 +567,29 @@ func GetCityDirectlySchoolCount(cityCode string) (int, error) { } return int(result.TotalHits()), nil +} + +/** +功能:根据市编码获取教辅单位数量 +*/ +func GetCityDirectlyEduAssistCount(cityCode string) (int, error) { + enableFlagTerm := elastic.NewTermQuery("enable_flag", 1) + delFlagTerm := elastic.NewTermQuery("del_flag", 0) + bUseTerm := elastic.NewTermQuery("data_content.b_use", 1) + districtCodeTerm := elastic.NewTermQuery("district_code", cityCode) + orgTypeTerm := elastic.NewTermQuery("org_type", "3") + + boolQuery := elastic.NewBoolQuery().Must(districtCodeTerm, orgTypeTerm, enableFlagTerm, delFlagTerm, bUseTerm) + result, err := esClient.Search(). + Index("org_school"). + Query(boolQuery). + Size(0). + Do(CTX) + + if err != nil { + return 0, err + } + + return int(result.TotalHits()), nil } diff --git a/dsBigData/Business/School/SchoolService/SchoolService.go b/dsBigData/Business/School/SchoolService/SchoolService.go index c62ce5d9..1c47d6c1 100644 --- a/dsBigData/Business/School/SchoolService/SchoolService.go +++ b/dsBigData/Business/School/SchoolService/SchoolService.go @@ -87,3 +87,8 @@ func GetCityDirectlySchoolCount(cityCode string) (int, error) { count, err := SchoolDao.GetCityDirectlySchoolCount(cityCode) return count, err } + +func GetCityDirectlyEduAssistCount(cityCode string) (int, error) { + count, err := SchoolDao.GetCityDirectlyEduAssistCount(cityCode) + return count, err +} \ No newline at end of file diff --git a/dsBigData/Business/Student/StudentDao/StudentDao.go b/dsBigData/Business/Student/StudentDao/StudentDao.go index 88301d39..caf90f2a 100644 --- a/dsBigData/Business/Student/StudentDao/StudentDao.go +++ b/dsBigData/Business/Student/StudentDao/StudentDao.go @@ -204,7 +204,7 @@ func GetStudentCountAggsRxnf(schoolId string, stageId string) ([]StudentModel.St resCount := gjson.Get(resStr, "rxnf.buckets.#") for i := 0; i < int(resCount.Num); i++ { var studentCountRxnf StudentModel.StudentCountRxnf - studentCountRxnf.Rxnf = CommonUtil.ConverFloat64ToString(gjson.Get(resStr, "rxnf.buckets."+CommonUtil.ConvertIntToString(i)+".key").Num) + studentCountRxnf.Rxnf = CommonUtil.ConverFloat64ToString(gjson.Get(resStr, "rxnf.buckets."+CommonUtil.ConvertIntToString(i)+".key").Num) + "级" studentCountRxnf.Count = int(gjson.Get(resStr, "rxnf.buckets."+CommonUtil.ConvertIntToString(i)+".doc_count").Num) studentCountRxnfArr = append(studentCountRxnfArr, studentCountRxnf) diff --git a/dsBigData/build/dsBigData b/dsBigData/build/dsBigData index e33d2a1d..e119168a 100644 Binary files a/dsBigData/build/dsBigData and b/dsBigData/build/dsBigData differ diff --git a/dsDataex/Config/Config.ini b/dsDataex/Config/Config.ini index 586ac4e8..26c3746b 100644 --- a/dsDataex/Config/Config.ini +++ b/dsDataex/Config/Config.ini @@ -25,3 +25,6 @@ project_name = dsDataex project_port = 9009 project_grpc = 9010 project_path = D:\GoWork\dsMin\dsDataex + +[params] +root_orgname = 赤峰市教育局 diff --git a/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go b/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go index 30bd3f2c..2cb2b483 100644 --- a/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go +++ b/dsDataex/MyService/DataEX/DataexDAO/DataexDAO.go @@ -4,6 +4,7 @@ import ( "dsDataex/Utils/CacheUtil" "dsDataex/Utils/DbUtil" "html" + "strings" ) //数据库 @@ -31,6 +32,34 @@ func GetbySystemID(systemID string) (bool, string, []map[string]interface{}, err } } +func GetParentIDBaseGO(area_code string) string{ + + sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + area_code + "'" + + //通过SQL获取带缓存的数据 + list, count, _ := CacheUtil.Page(sql, 100,0) + + if count >0 { + return list[0]["id"].(string) + }else { + return "" + } +} + +func GetParentID2BaseGO(area_code string) string{ + + sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + area_code + "'" + + //通过SQL获取带缓存的数据 + list, count, _ := CacheUtil.Page(sql, 100,0) + + if count >0 { + return list[0]["id"].(string) + }else { + return "" + } +} + /** * @Author zhangjun * @Description 校验接入系统是否为数据源提供者 @@ -112,7 +141,10 @@ func GetDatasourceOrgIDS(consumeType int,orgID string) []string { **/ func CheckProvideOrgID(provideType int, provideOrgid string,orgID string) (bool, string, map[string]interface{}, error){ - ids:=[]string{orgID} + //change by zhangjun 2020-07-15 + //ids:=[]string{orgID} + ids:=[]string{strings.ToLower(orgID)} + result := CacheUtil.GetListByIds( ids ,CacheUtil.GetBean("t_dataex_orgtree")) switch provideType{ diff --git a/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go new file mode 100644 index 00000000..b11b103f --- /dev/null +++ b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go @@ -0,0 +1,94 @@ +package DataexService + +import ( + "dsDataex/GenXorm/models" + "dsDataex/MyModel/OrgTree/OrgtreeDAO" + "dsDataex/MyService/DataEX/DataexDAO" + "dsDataex/MyService/MySwagger" + "dsDataex/Utils/CacheUtil" + "dsDataex/Utils/ConfigUtil" + "encoding/json" +) + +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 + + data.Id=jsonData["org_id"].(string) + data.OrgName=jsonData["org_name"].(string) + + + data.OrgType=int(jsonData["org_type"].(float64)) + + 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 + + ids:=[]string{datas[no].DataID} + result := CacheUtil.GetListByIds( ids ,CacheUtil.GetBean("t_dataex_orgtree")) + + if len(result)==1{ + OrgtreeDAO.UpdateOrgtree(data.Id,&data) + }else { + OrgtreeDAO.CreateOrgtree(&data) + } + } +} diff --git a/dsDataex/MyService/DataEX/DataexService/BaseJava2Proc.go b/dsDataex/MyService/DataEX/DataexService/BaseJava2Proc.go new file mode 100644 index 00000000..7b535196 --- /dev/null +++ b/dsDataex/MyService/DataEX/DataexService/BaseJava2Proc.go @@ -0,0 +1 @@ +package DataexService diff --git a/dsDataex/MyService/DataEX/DataexService/BaseJavaProc.go b/dsDataex/MyService/DataEX/DataexService/BaseJavaProc.go new file mode 100644 index 00000000..7b535196 --- /dev/null +++ b/dsDataex/MyService/DataEX/DataexService/BaseJavaProc.go @@ -0,0 +1 @@ +package DataexService diff --git a/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go b/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go new file mode 100644 index 00000000..7b535196 --- /dev/null +++ b/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go @@ -0,0 +1 @@ +package DataexService diff --git a/dsDataex/MyService/DataEX/DataexService/DataexService.go b/dsDataex/MyService/DataEX/DataexService/DataexService.go index a292bdce..e9d9489e 100644 --- a/dsDataex/MyService/DataEX/DataexService/DataexService.go +++ b/dsDataex/MyService/DataEX/DataexService/DataexService.go @@ -9,6 +9,7 @@ import ( "dsDataex/Utils/ES7Util" "encoding/json" "strconv" + "strings" "time" ) @@ -201,6 +202,12 @@ func DataexSet(systemID string, datas []MySwagger.Data,datasource *models.TDatae * @return 【】FailResult 失败结果数组 **/ func DataexSetBatch(systemID string, datas []MySwagger.Data,datasource *models.TDataexDatasource)(bool,string,[]string,[]MySwagger.FailResult) { + //add by zhangjun 2020-07-15 + //处理组织机构树同步 + if datasource.DatasourceCode=="org_school" && systemID=="BASE_GO"{ + OrgtreeProc(datas) + } + //开始 ES 相关数据操作!!! if datasource.DatastoreType==1 || datasource.DatastoreType==2 { @@ -226,7 +233,9 @@ func DataexSetBatch(systemID string, datas []MySwagger.Data,datasource *models.T for no:=0;no< len(datas) && no<1000 ;no++ { - dataIDs = append(dataIDs, datas[no].DataID) + //change by zhangjun 2020-07-15 + //dataIDs = append(dataIDs, datas[no].DataID) + dataIDs = append(dataIDs, strings.ToLower(datas[no].DataID)) } now :=time.Now() @@ -251,7 +260,9 @@ func DataexSetBatch(systemID string, datas []MySwagger.Data,datasource *models.T esData2.OrgId=datas[no].OrgID esData2.DelFlag=datas[no].DelFlag - esData2.DataId=datas[no].DataID + //change by zhangjun 2020-07-15 + //esData2.DataId=datas[no].DataID + esData2.DataId=strings.ToLower(datas[no].DataID) var jsonData map[string]interface{} json.Unmarshal([]byte(datas[no].Data), &jsonData) diff --git a/dsDataex/Utils/ConfigUtil/ConfigUtil.go b/dsDataex/Utils/ConfigUtil/ConfigUtil.go index c555387d..2366e5e1 100644 --- a/dsDataex/Utils/ConfigUtil/ConfigUtil.go +++ b/dsDataex/Utils/ConfigUtil/ConfigUtil.go @@ -53,6 +53,9 @@ var ( ESUser string ESPWD string + + //Params 系统参数 + ROOT_ORGNAME string ) func init() { @@ -115,6 +118,8 @@ func init() { ESPWD = iniParser.GetString("elasticsearch", "pwd") ESAddress= strings.Split(ESNodes,",") + + ROOT_ORGNAME=iniParser.GetString("params", "root_orgname") } type IniParser struct {