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.

280 lines
6.3 KiB

8 months ago
package personnelapi
import (
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"time"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2024-07-04 08:43:33
@ 功能: 奖惩记录
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) RewPunList(c *gin.Context) {
var requestData RewPunType
c.ShouldBindJSON(&requestData)
// err := c.ShouldBindJSON(&requestData)
// if err != nil {
// overallhandle.Result(100, requestData.Id, c)
// return
// }
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
if requestData.Page < 0 {
requestData.Page = 1
}
if requestData.PageSize < 0 {
requestData.PageSize = 10
}
var list []SendRewPunInfo
gormDb := overall.CONSTANT_DB_HR.Model(&models.RewardsPenalties{}).Where("`state` = 1 AND `userkey` = ?", requestData.Id)
if requestData.State != 0 {
if requestData.State == 1 {
gormDb = gormDb.Where("`types` = ?", 1)
} else {
gormDb = gormDb.Where("`types` = ?", 2)
}
}
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = overallhandle.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
err := gormDb.Order("`years` DESC").Order("`months` ASC").Order("`id` DESC").Find(&list).Error
if err != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
for i, v := range list {
list[i].TimedataStr = overallhandle.UnixTimeToDay(v.TimeData, 14)
list[i].LevelName = overallhandle.RewPunLevel(v.Level)
list[i].RewPunClassName = overallhandle.RewPunLevelClass(v.RewPunClass)
}
overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(list)), list, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-07-04 09:24:59
@ 功能: 绩效考核成绩
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) AssessmentRecords(c *gin.Context) {
var requestData RewPunType
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
if requestData.Page < 0 {
requestData.Page = 1
}
if requestData.PageSize < 0 {
requestData.PageSize = 10
}
var list []SendMeritslog
gormDb := overall.CONSTANT_DB_HR.Model(&models.Meritslog{}).Where("`userkey` = ?", requestData.Id)
if requestData.State != 0 {
if requestData.State == 1 {
gormDb = gormDb.Where("`status` = ?", 1)
} else {
gormDb = gormDb.Where("`status` = ?", 2)
}
}
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = overallhandle.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
err := gormDb.Order("`years` DESC").Order("`months` ASC").Order("`id` DESC").Find(&list).Error
if err != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
for i, v := range list {
list[i].TimedataStr = overallhandle.UnixTimeToDay(v.TimeData, 14)
}
overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(list)), list, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-07-04 13:18:47
@ 功能: 员工关系
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) PeopleEmploymentRelationship(c *gin.Context) {
var requestData overallhandle.ConstId
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.Id == "" {
overallhandle.Result(101, err, c)
return
}
var myInfo models.PersonnelContent
err = myInfo.GetCont(map[string]interface{}{"`key`": requestData.Id}, "`channel`", "`entrydate`", "`jobstartdate`")
if err != nil {
overallhandle.Result(107, err, c)
return
}
var sendInfo SendSheHuiGuanxi
sendInfo.Channel = overallhandle.JoinJobChanelStr(myInfo.Channel)
sendInfo.Jobstartdate = overallhandle.UnixTimeToDay(myInfo.Jobstartdate, 14)
sendInfo.Entrydate = overallhandle.UnixTimeToDay(myInfo.Entrydate, 14)
cruTime := time.Now().Unix()
sendInfo.SheHuiGongli, _ = overallhandle.CalculateYearDifference(myInfo.Jobstartdate, cruTime, 0)
sendInfo.JiTuanGongli, _ = overallhandle.CalculateYearDifference(myInfo.Entrydate, cruTime, 0)
overallhandle.Result(0, sendInfo, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-07-04 15:20:34
@ 功能: 职称列表
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) PeopleTitle(c *gin.Context) {
var requestData overallhandle.ConstId
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.Id == "" {
overallhandle.Result(101, err, c)
return
}
var list []SendAcademicTitle
err = overall.CONSTANT_DB_HR.Model(&models.AcademicTitle{}).Where("`userKey` = ?", requestData.Id).Order("`time` DESC").Order("`id` DESC").Find(&list).Error
if err != nil {
overallhandle.Result(107, err, c)
return
}
for i, v := range list {
list[i].TimeStr = overallhandle.UnixTimeToDay(v.Time, 14)
}
overallhandle.Result(0, list, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-07-04 15:27:05
@ 功能: 荣誉
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) PeopleHonor(c *gin.Context) {
var requestData HonorsType
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
if requestData.Page < 0 {
requestData.Page = 1
}
if requestData.PageSize < 0 {
requestData.PageSize = 10
}
var list []SendCertificateHonors
gormDb := overall.CONSTANT_DB_HR.Model(&models.CertificateHonors{}).Where("`userkey` = ?", requestData.Id)
if requestData.State != 0 {
if requestData.State == 1 {
gormDb = gormDb.Where("`state` = ?", 1)
} else {
gormDb = gormDb.Where("`state` = ?", 2)
}
}
if requestData.Types != 0 {
gormDb = gormDb.Where("`types` = ?", requestData.Types)
}
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
gormDb = overallhandle.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
err := gormDb.Order("`years` DESC").Order("`months` ASC").Order("`id` DESC").Find(&list).Error
if err != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
for i, v := range list {
if v.TimeData != 0 {
list[i].TimeDataStr = overallhandle.UnixTimeToDay(v.TimeData, 14)
}
if v.EndTime != 0 {
list[i].EndTimeStr = overallhandle.UnixTimeToDay(v.EndTime, 14)
}
}
overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(list)), list, c)
}