From ac62b0eb43ecac10e0b8efa73897d3cd6d589924 Mon Sep 17 00:00:00 2001 From: herenshan112 Date: Mon, 31 Oct 2022 08:02:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../administrativeorganization/govcont.go | 53 +++++++++++++++++++ apirouter/organization/organization_group.go | 4 ++ overall/overallhandle/overall_handle.go | 11 ++++ 3 files changed, 68 insertions(+) diff --git a/api/version1/administrativeorganization/govcont.go b/api/version1/administrativeorganization/govcont.go index eb1efe8..82a41d6 100644 --- a/api/version1/administrativeorganization/govcont.go +++ b/api/version1/administrativeorganization/govcont.go @@ -324,3 +324,56 @@ func (o *OrganizationApi) GetOrgAllSun(c *gin.Context) { } overallhandle.Result(0, orgList, c) } + +/* +* +@ 作者: 秦东 +@ 时间: 2022-10-26 09:44:40 +@ 功能: 获取公司下的所有主行政部门 +@ 参数 + + # + +@ 返回值 + + # +*/ +func (o *OrganizationApi) GetCompanyDeparment(c *gin.Context) { + var requestData overallhandle.GetId + c.ShouldBindJSON(&requestData) + if requestData.Id == 0 && requestData.IdStr == "" { + requestData.Id = 0 + } + if requestData.IdStr != "" { + idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) + requestData.Id = idInt64 + } + orgId := getOrgIdList(requestData.Id) + if len(orgId) < 1 { + overallhandle.Result(101, orgId, c, "没有查询到信息!") + return + } + + for i := 0; i < len(orgId); i++ { + sunOrgId := getOrgIdList(orgId[i]) + if len(sunOrgId) > 0 { + orgId = overallhandle.HeBingArray(orgId, sunOrgId) + } + } + var orgList []models.AdministrativeOrganization + err := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Where("`state` = 1 AND `id` IN ?", orgId).Find(&orgList).Error + if err != nil { + overallhandle.Result(101, err, c, "没有查询到信息!") + return + } + overallhandle.Result(0, orgList, c) +} + +// 获取行政组织ID +func getOrgIdList(orgId int64) (orgIdList []int64) { + err := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("`id`").Where("`state` = 1 AND `ispower` = 1 AND `organization_type` > 2 AND `superior` = ?", orgId).Find(&orgIdList).Error + if err != nil { + return + } + return +} diff --git a/apirouter/organization/organization_group.go b/apirouter/organization/organization_group.go index 123d521..c7e1d91 100644 --- a/apirouter/organization/organization_group.go +++ b/apirouter/organization/organization_group.go @@ -40,6 +40,8 @@ func (o *OrganizationRoute) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("govthree", apiHandle.GovThree) //行政组织树 apiRouter.POST("getorgallsun", apiHandle.GetOrgAllSun) //获取当前行政组织的所有子类 + + apiRouter.POST("getcompanydeparment", apiHandle.GetCompanyDeparment) //获取当前行政组织的所有主行政部门 //职位(岗位) apiRouter.POST("positionlist", apiHandle.PositionList) //职位(岗位)列表 apiRouter.POST("getpositioncont", apiHandle.GetPositionCont) //获取职位(岗位) @@ -92,6 +94,8 @@ func (o *OrganizationRouteOpen) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("govthree", apiHandle.GovThree) //行政组织树 apiRouter.POST("getorgallsun", apiHandle.GetOrgAllSun) //获取当前行政组织的所有子类 + + apiRouter.POST("getcompanydeparment", apiHandle.GetCompanyDeparment) //获取当前行政组织的所有主行政部门 //职位(岗位) apiRouter.POST("positionlist", apiHandle.PositionList) //职位(岗位)列表 apiRouter.POST("getpositioncont", apiHandle.GetPositionCont) //获取职位(岗位) diff --git a/overall/overallhandle/overall_handle.go b/overall/overallhandle/overall_handle.go index a0c1a43..5c5a62f 100644 --- a/overall/overallhandle/overall_handle.go +++ b/overall/overallhandle/overall_handle.go @@ -579,6 +579,17 @@ func DifferenceSet[T GenericityVariable](one, two []T) []T { return three } +// 合并两个数组 +func HeBingArray[T GenericityVariable](one, two []T) (three []T) { + three = one + for _, val := range two { + if IsInTrue[T](val, three) == false { + three = append(three, val) + } + } + return +} + //判断类型转换成 /* 字符转int