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.

369 lines
10 KiB

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