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.
173 lines
4.9 KiB
173 lines
4.9 KiB
package personnelapi
|
|
|
|
import (
|
|
"hr_server/models/hrmodels"
|
|
"hr_server/overall"
|
|
"hr_server/overall/overallhandle"
|
|
"time"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-06-20 14:23:27
|
|
@ 功能: 写入金蝶人员状态关键字
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func WriteKingKeyWork(name string, class int) {
|
|
var kingdeeCont hrmodels.KingdeeEmptype
|
|
err := kingdeeCont.GetCont(map[string]interface{}{"`name`": name, "`leibie`": class}, "`id`")
|
|
if err == nil {
|
|
return
|
|
}
|
|
if kingdeeCont.Id != 0 {
|
|
return
|
|
}
|
|
kingdeeCont.Name = name
|
|
kingdeeCont.LeiBie = class
|
|
kingdeeCont.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&kingdeeCont)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-06-20 15:05:11
|
|
@ 功能: 写入员工入职离职时间
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func EmployeeOnboardingAndResignation(userKey int64, changetype, starttime string, weiYi bool) {
|
|
entryList := []string{"预入职", "员工初始化"} //入职关键字
|
|
zhuanZheng := []string{"转正"} //转正关键字
|
|
depart := []string{"预离职", "离职", "批准辞职", "擅自离职", "即辞即走", "辞退", "培训期间离职"} //离职关键字
|
|
contract := []string{"合同到期"} //离职关键字
|
|
retire := []string{"退休"} //退休
|
|
if starttime != "" {
|
|
var manageDate overallhandle.DateTimeTotimes
|
|
manageDate.BaisStrToTime(starttime)
|
|
where := overallhandle.MapOut()
|
|
where["`userid`"] = userKey
|
|
if overallhandle.IsInTrue[string](changetype, entryList) {
|
|
//新入职
|
|
var newEntry hrmodels.UserEmpOnbRes
|
|
err := newEntry.GetCont(where, "`entry_time`")
|
|
if err != nil {
|
|
newEntry.UserId = userKey
|
|
newEntry.EntryTime = manageDate.AllTime
|
|
if weiYi {
|
|
newEntry.LeaveDate = manageDate.AllTime
|
|
}
|
|
newEntry.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&newEntry)
|
|
} else {
|
|
if manageDate.AllTime != newEntry.EntryTime {
|
|
editCont := overallhandle.MapOut()
|
|
editCont["`entry_time`"] = manageDate.AllTime
|
|
if weiYi {
|
|
editCont["`leave_date`"] = manageDate.AllTime
|
|
}
|
|
editCont["`time`"] = time.Now().Unix()
|
|
var newEditEntry hrmodels.UserEmpOnbRes
|
|
newEditEntry.EiteCont(where, editCont)
|
|
}
|
|
}
|
|
}
|
|
if overallhandle.IsInTrue[string](changetype, zhuanZheng) {
|
|
//转正
|
|
var newZhuanZheng hrmodels.UserEmpOnbRes
|
|
err := newZhuanZheng.GetCont(where, "`zhuan_zheng`")
|
|
if err != nil {
|
|
newZhuanZheng.UserId = userKey
|
|
newZhuanZheng.EntryTime = manageDate.AllTime
|
|
newZhuanZheng.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&newZhuanZheng)
|
|
} else {
|
|
if manageDate.AllTime != newZhuanZheng.EntryTime {
|
|
editCont := overallhandle.MapOut()
|
|
editCont["`zhuan_zheng`"] = manageDate.AllTime
|
|
editCont["`time`"] = time.Now().Unix()
|
|
var newEditZhuanZheng hrmodels.UserEmpOnbRes
|
|
newEditZhuanZheng.EiteCont(where, editCont)
|
|
}
|
|
}
|
|
}
|
|
if overallhandle.IsInTrue[string](changetype, depart) {
|
|
//离职
|
|
var newDepart hrmodels.UserEmpOnbRes
|
|
err := newDepart.GetCont(where, "`leave_date`")
|
|
if err != nil {
|
|
newDepart.UserId = userKey
|
|
newDepart.EntryTime = manageDate.AllTime
|
|
newDepart.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&newDepart)
|
|
} else {
|
|
if manageDate.AllTime != newDepart.EntryTime {
|
|
editCont := overallhandle.MapOut()
|
|
editCont["`leave_date`"] = manageDate.AllTime
|
|
editCont["`time`"] = time.Now().Unix()
|
|
var newEditDepart hrmodels.UserEmpOnbRes
|
|
newEditDepart.EiteCont(where, editCont)
|
|
}
|
|
}
|
|
}
|
|
if overallhandle.IsInTrue[string](changetype, contract) {
|
|
//合同到期
|
|
var newContract hrmodels.UserEmpOnbRes
|
|
err := newContract.GetCont(where, "`contract_time`")
|
|
if err != nil {
|
|
newContract.UserId = userKey
|
|
newContract.EntryTime = manageDate.AllTime
|
|
newContract.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&newContract)
|
|
} else {
|
|
if manageDate.AllTime != newContract.EntryTime {
|
|
editCont := overallhandle.MapOut()
|
|
editCont["`contract_time`"] = manageDate.AllTime
|
|
editCont["`time`"] = time.Now().Unix()
|
|
var newEditContract hrmodels.UserEmpOnbRes
|
|
newEditContract.EiteCont(where, editCont)
|
|
}
|
|
}
|
|
}
|
|
if overallhandle.IsInTrue[string](changetype, retire) {
|
|
//退休
|
|
var newRetire hrmodels.UserEmpOnbRes
|
|
err := newRetire.GetCont(where, "`retire_time`")
|
|
if err != nil {
|
|
newRetire.UserId = userKey
|
|
newRetire.EntryTime = manageDate.AllTime
|
|
newRetire.Time = time.Now().Unix()
|
|
overall.CONSTANT_DB_HR.Create(&newRetire)
|
|
} else {
|
|
if manageDate.AllTime != newRetire.EntryTime {
|
|
editCont := overallhandle.MapOut()
|
|
editCont["`retire_time`"] = manageDate.AllTime
|
|
editCont["`time`"] = time.Now().Unix()
|
|
var newEditRetire hrmodels.UserEmpOnbRes
|
|
newEditRetire.EiteCont(where, editCont)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|