package administrativeorganization import ( "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "time" "github.com/gin-gonic/gin" ) // 职务分类列表 func (o *OrganizationApi) DutiesClassList(c *gin.Context) { var requestData JobClassPageSelect c.ShouldBindJSON(&requestData) if requestData.Page < 0 { requestData.Page = 1 } if requestData.PageSize < 0 { requestData.PageSize = 10 } var jobClassList []models.JobClass gormDb := overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Select("`id`", "`name`", "`state`,`kingdeeid`") if requestData.Name != "" { // nameFactor := fmt.Sprintf("%%v%") gormDb = gormDb.Where("`name` LIKE ?", "%"+requestData.Name+"%") } gormDb = gormDb.Where("state IN ?", []int{1, 2}) 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(&jobClassList).Error if errGorm != nil { overallhandle.Result(105, errGorm, c) } else { var jobClassAry []outJobClassList for _, v := range jobClassList { var jobClassCont outJobClassList jobClassCont.Id = strconv.FormatInt(v.Id, 10) jobClassCont.Name = v.Name jobClassCont.State = v.State jobClassCont.KingDeeId = v.KingdeeId if v.State == 1 { jobClassCont.Status = true } else { jobClassCont.Status = false } jobClassAry = append(jobClassAry, jobClassCont) } // overallhandle.Result(0, jobClassList, c) overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(jobClassAry)), jobClassAry, c) } } // 添加职务分类 func (o *OrganizationApi) AddDutiesClass(c *gin.Context) { var requestData NameVal err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Name == "" { overallhandle.Result(101, err, c, "职务分类名称为空!") return } //判断该职务分类是否已经存在 var name string judgeErr := overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } var jobClassCont models.JobClass jobClassCont.Name = requestData.Name jobClassCont.Time = time.Now().Unix() jobClassCont.State = 1 addDataErr := overall.CONSTANT_DB_HR.Create(&jobClassCont).Error if addDataErr != nil { overallhandle.Result(104, addDataErr, c) } else { overallhandle.Result(0, jobClassCont, c) } } // 查看职务分类详情 func (o *OrganizationApi) GetDutiesClassInfo(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 jobClassCont models.JobClass dbErr := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).First(&jobClassCont).Error if dbErr != nil { overallhandle.Result(105, dbErr, c) } else { overallhandle.Result(0, jobClassCont, c) } } // 修改职务分类详情 func (o *OrganizationApi) EiteDutiesClassInfo(c *gin.Context) { var requestData EiteJobClassInfo 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.JobClass //判断职务类型是否存在 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.JobClass{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } saveData["name"] = requestData.Name } } if requestData.State != 0 { saveData["state"] = requestData.State } whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id eiteErr := jobClassInfo.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } // 删除职务分类 func (o *OrganizationApi) DelDutiesClassInfo(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.JobClass //判断职务类型是否存在 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.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } else { if requestData.IsTrue != 1 { //软删除 eiteErr := jobClassInfo.EiteJobClassCont(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) } } } } // 修改职务分类详情 func (o *OrganizationApi) NewEiteDutiesClassInfo(c *gin.Context) { var requestData EiteJobClassInfoNew err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 { overallhandle.Result(101, err, c, "职务分类Id不能为空!") return } gormDb := overall.CONSTANT_DB_HR var jobClassInfo models.JobClass //判断职务类型是否存在 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.JobClass{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } saveData["name"] = requestData.Name } } whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id eiteErr := jobClassInfo.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } /* * @ 作者: 秦东 @ 时间: 2023-06-07 15:09:48 @ 功能: 编辑职务分类状态或删除 @ 参数 # @ 返回值 # @ 方法原型 # */ func (o *OrganizationApi) EditDutiesClassStatus(c *gin.Context) { var requestData DutiesEditOrDel err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if len(requestData.Id) < 1 { overallhandle.Result(101, err, c, "职务分类Id不能为空!") return } if requestData.Status == 0 { requestData.Status = 1 } if requestData.IsTrue == 0 { requestData.IsTrue = 2 } editCont := overallhandle.MapOut() editCont["`state`"] = requestData.Status editCont["`time`"] = time.Now().Unix() if requestData.Status != 3 { err = overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Where("`id` IN ?", requestData.Id).Updates(editCont).Error if err != nil { overallhandle.Result(101, err, c, "数据更新失败!") return } } else { if requestData.IsTrue == 1 { err = overall.CONSTANT_DB_HR.Where("`id` IN ?", requestData.Id).Delete(&models.JobClass{}).Error if err != nil { overallhandle.Result(101, err, c, "数据更新失败!") return } } else { err = overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Where("`id` IN ?", requestData.Id).Updates(editCont).Error if err != nil { overallhandle.Result(101, err, c, "数据更新失败!") return } } } overallhandle.Result(0, err, c) }