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