HR管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

217 lines
6.2 KiB

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`")
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
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)
}
}
}
}