package administrativeorganization import ( "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "time" "github.com/gin-gonic/gin" ) /* * @ 作者: 秦东 @ 时间: 2023-06-05 15:26:31 @ 功能: 获取所有行政组织类型 @ 参数 # @ 返回值 # @ 方法原型 # */ func (o *OrganizationApi) GovClassAllList(c *gin.Context) { var requestData overallhandle.NameOverall c.ShouldBindJSON(&requestData) var govClassMap []models.AdministrativeOrganizationType gormDb := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("state IN ?", []int{1, 2}) if requestData.Name != "" { gormDb = gormDb.Where("name LIKE ?", "%"+requestData.Name+"%") } err := gormDb.Find(&govClassMap).Error if err != nil { overallhandle.Result(107, err, c) return } var sendOrgTypesList []SendOrgTypes for _, v := range govClassMap { var sendOrgTypesCont SendOrgTypes sendOrgTypesCont.Id = v.Id // sendOrgTypesCont.Name = v.Name //类型名称"` sendOrgTypesCont.Time = v.Time //创建时间"` sendOrgTypesCont.State = v.State //状态(1:启用;2:禁用;3:删除)"` sendOrgTypesCont.Level = v.Level //级别"` sendOrgTypesCont.KingdeeId = v.KingdeeId //金蝶对照ID"` if v.State == 1 { sendOrgTypesCont.Status = true } else { sendOrgTypesCont.Status = false } sendOrgTypesList = append(sendOrgTypesList, sendOrgTypesCont) } overallhandle.Result(0, sendOrgTypesList, c) } // 行政类型 func (o *OrganizationApi) GovClassList(c *gin.Context) { var requestData selectNameOrState c.ShouldBindJSON(&requestData) if requestData.Page < 0 { requestData.Page = 1 } if requestData.PageSize < 0 { requestData.PageSize = 10 } var govClassMap []models.AdministrativeOrganizationType gormDb := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}) if requestData.State != 0 { gormDb = gormDb.Where("state = ?", requestData.State) } else { gormDb = gormDb.Where("state IN ?", []int{1, 2}) } if requestData.Name != "" { gormDb = gormDb.Where("name LIKE ?", "%"+requestData.Name+"%") } if requestData.Level != 0 { gormDb = gormDb.Where("`level` = ?", requestData.Level) } var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } errGorm := gormDb.Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&govClassMap).Error if errGorm != nil { overallhandle.Result(105, errGorm, c) } else { var sendOrgTypesList []SendOrgTypes for _, v := range govClassMap { var sendOrgTypesCont SendOrgTypes sendOrgTypesCont.Id = v.Id // sendOrgTypesCont.Name = v.Name //类型名称"` sendOrgTypesCont.Time = v.Time //创建时间"` sendOrgTypesCont.State = v.State //状态(1:启用;2:禁用;3:删除)"` sendOrgTypesCont.Level = v.Level //级别"` sendOrgTypesCont.KingdeeId = v.KingdeeId //金蝶对照ID"` if v.State == 1 { sendOrgTypesCont.Status = true } else { sendOrgTypesCont.Status = false } sendOrgTypesList = append(sendOrgTypesList, sendOrgTypesCont) } overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendOrgTypesList)), sendOrgTypesList, c) } } // 添加行政组织类别 func (o *OrganizationApi) AddGovClass(c *gin.Context) { var requestData addGovClassInfo err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Name == "" { overallhandle.Result(101, err, c, "行政组织类别名称为空!") return } if requestData.Level == 0 { requestData.Level = 1 } var name string judgeErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } var saveData models.AdministrativeOrganizationType saveData.Name = requestData.Name saveData.Level = requestData.Level saveData.Time = time.Now().Unix() saveData.State = 1 saveErr := overall.CONSTANT_DB_HR.Create(&saveData).Error if saveErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(104, saveErr, c) } } // 获取行政组织类别详情 func (o *OrganizationApi) GetGovClassCont(c *gin.Context) { var requestData overallhandle.GetId err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "行政组织类别Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } var Contents models.AdministrativeOrganizationType dbErr := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).First(&Contents).Error if dbErr != nil { overallhandle.Result(105, dbErr, c) } else { overallhandle.Result(0, Contents, c) } } // 修改行政组织类别详情 func (o *OrganizationApi) EiteGovClassCont(c *gin.Context) { var requestData eiteGovClassInfo err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "行政类别Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } gormDb := overall.CONSTANT_DB_HR var jobClassInfo models.AdministrativeOrganizationType //判断职务类型是否存在 judgeExist := gormDb.Where("`id` = ?", requestData.Id).First(&jobClassInfo).Error if judgeExist != nil { overallhandle.Result(107, judgeExist, c) return } saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() if requestData.Name != "" { if requestData.Name != jobClassInfo.Name { //查询一下修改的职务名称是否已经存在 var name string judgeErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } saveData["name"] = requestData.Name } } if requestData.Level != 0 { saveData["level"] = requestData.Level } whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id eiteErr := jobClassInfo.EiteCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } // 修改行政类别状态或删除 func (o *OrganizationApi) EiteGovClassStateOrDel(c *gin.Context) { var requestData EiteJobStateDel err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "行政类别Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } if requestData.State == 0 { requestData.State = 1 } var jobClassInfo models.AdministrativeOrganizationType //判断职务类型是否存在 judgeExist := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).First(&jobClassInfo).Error if judgeExist != nil { overallhandle.Result(107, judgeExist, c) return } saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id if requestData.State != 3 { eiteErr := jobClassInfo.EiteCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } else { if requestData.IsTrue != 1 { //软删除 eiteErr := jobClassInfo.EiteCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } else { //硬删除 delErr := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).Delete(&jobClassInfo) if delErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(108, delErr, c) } } } } /* * @ 作者: 秦东 @ 时间: 2023-06-05 10:37:05 @ 功能: 批量编辑组织分类状态或删除 @ 参数 # @ 返回值 # @ 方法原型 # */ func (o *OrganizationApi) BaseEditOrgClassStatus(c *gin.Context) { var requestData BaseOrgTypesState err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if len(requestData.Id) < 1 { overallhandle.Result(1, err, c, "未知操作项!") return } if requestData.Status == 0 { requestData.Status = 1 } if requestData.IsTrue == 0 { requestData.IsTrue = 2 } saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.Status if requestData.Status != 3 { err = overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("`id` IN ?", requestData.Id).Updates(saveData).Error if err != nil { overallhandle.Result(106, err, c) return } else { overallhandle.Result(0, err, c) } } else { if requestData.Status != 3 { err = overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("`id` IN ?", requestData.Id).Updates(saveData).Error if err != nil { overallhandle.Result(106, err, c) return } } else { var useOrgCalssCount int64 err = overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("`id`").Where("`organization_type` IN ?", requestData.Id).Count(&useOrgCalssCount).Error if err == nil && useOrgCalssCount > 0 { err = overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("`id` IN ?", requestData.Id).Updates(saveData).Error if err != nil { overallhandle.Result(106, err, c) return } else { overallhandle.Result(0, err, c) } } else { if requestData.IsTrue == 1 { //硬删除 err = overall.CONSTANT_DB_HR.Where("`id` IN ?", requestData.Id).Delete(&models.AdministrativeOrganizationType{}).Error if err == nil { overallhandle.Result(0, err, c) } else { overallhandle.Result(108, err, c) } } else { err = overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("`id` IN ?", requestData.Id).Updates(saveData).Error if err != nil { overallhandle.Result(106, err, c) return } else { overallhandle.Result(0, err, c) } } } } } }