12 changed files with 699 additions and 2 deletions
@ -0,0 +1,173 @@ |
|||||
|
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) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,61 @@ |
|||||
|
package hrmodels |
||||
|
|
||||
|
import ( |
||||
|
"hr_server/overall" |
||||
|
"strings" |
||||
|
) |
||||
|
|
||||
|
// 金蝶人员状态关键字
|
||||
|
type EmpOnbRes struct { |
||||
|
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` |
||||
|
UserId int64 `json:"userid" gorm:"column:userid;type:bigint(20) unsigned;default:1;not null;comment:员工ID"` |
||||
|
EntryTime int64 `json:"entrytime" gorm:"column:entry_time;type:bigint(20) unsigned;default:1;not null;comment:入职时间"` |
||||
|
LeaveDate int64 `json:"leavedate" gorm:"column:leave_date;type:bigint(20) unsigned;default:1;not null;comment:离职日期"` |
||||
|
ZhuanZheng int64 `json:"zhuanzheng" gorm:"column:zhuan_zheng;type:bigint(20) unsigned;default:1;not null;comment:转正"` |
||||
|
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:1;not null;comment:时间"` |
||||
|
} |
||||
|
|
||||
|
func (EmpOnbRes *EmpOnbRes) TableName() string { |
||||
|
return "emp_onb_res" |
||||
|
} |
||||
|
|
||||
|
// 编辑内容
|
||||
|
func (cont *EmpOnbRes) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 获取内容
|
||||
|
func (cont *EmpOnbRes) GetCont(whereMap interface{}, field ...string) (err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
gormDb = gormDb.Where(whereMap) |
||||
|
err = gormDb.First(&cont).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 根据条件获取总数
|
||||
|
func (cont *EmpOnbRes) CountCont(whereMap interface{}) (countId int64) { |
||||
|
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 读取全部信息
|
||||
|
func (cont *EmpOnbRes) ContMap(whereMap interface{}, field ...string) (countAry []EmpOnbRes, err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
err = gormDb.Where(whereMap).Find(&countAry).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 删除内容
|
||||
|
func (cont *EmpOnbRes) DelCont(whereMap interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error |
||||
|
return |
||||
|
} |
||||
@ -0,0 +1,59 @@ |
|||||
|
package hrmodels |
||||
|
|
||||
|
import ( |
||||
|
"hr_server/overall" |
||||
|
"strings" |
||||
|
) |
||||
|
|
||||
|
// 金蝶人员状态关键字
|
||||
|
type KingdeeEmptype struct { |
||||
|
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` |
||||
|
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:关键字"` |
||||
|
LeiBie int `json:"leibie" gorm:"column:leibie;type:int(1) unsigned;default:1;not null;comment:类别"` |
||||
|
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:1;not null;comment:时间"` |
||||
|
} |
||||
|
|
||||
|
func (KingdeeEmptype *KingdeeEmptype) TableName() string { |
||||
|
return "kingdee_emptype" |
||||
|
} |
||||
|
|
||||
|
// 编辑内容
|
||||
|
func (cont *KingdeeEmptype) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 获取内容
|
||||
|
func (cont *KingdeeEmptype) GetCont(whereMap interface{}, field ...string) (err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
gormDb = gormDb.Where(whereMap) |
||||
|
err = gormDb.First(&cont).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 根据条件获取总数
|
||||
|
func (cont *KingdeeEmptype) CountCont(whereMap interface{}) (countId int64) { |
||||
|
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 读取全部信息
|
||||
|
func (cont *KingdeeEmptype) ContMap(whereMap interface{}, field ...string) (countAry []KingdeeEmptype, err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
err = gormDb.Where(whereMap).Find(&countAry).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 删除内容
|
||||
|
func (cont *KingdeeEmptype) DelCont(whereMap interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error |
||||
|
return |
||||
|
} |
||||
@ -0,0 +1,62 @@ |
|||||
|
package hrmodels |
||||
|
|
||||
|
import ( |
||||
|
"hr_server/overall" |
||||
|
"strings" |
||||
|
) |
||||
|
|
||||
|
// 金蝶人员状态关键字
|
||||
|
type UserEmpOnbRes struct { |
||||
|
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` |
||||
|
UserId int64 `json:"userid" gorm:"column:userid;type:bigint(20) unsigned;default:0;not null;comment:员工ID"` |
||||
|
EntryTime int64 `json:"entrytime" gorm:"column:entry_time;type:bigint(20) unsigned;default:0;not null;comment:入职时间"` |
||||
|
LeaveDate int64 `json:"leavedate" gorm:"column:leave_date;type:bigint(20) unsigned;default:0;not null;comment:离职日期"` |
||||
|
ZhuanZheng int64 `json:"zhuanzheng" gorm:"column:zhuan_zheng;type:bigint(20) unsigned;default:0;not null;comment:转正"` |
||||
|
RetireTime int64 `json:"retiretime" gorm:"column:retire_time;type:bigint(20) unsigned;default:0;not null;comment:退休"` |
||||
|
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:时间"` |
||||
|
} |
||||
|
|
||||
|
func (UserEmpOnbRes *UserEmpOnbRes) TableName() string { |
||||
|
return "user_emp_onb_res" |
||||
|
} |
||||
|
|
||||
|
// 编辑内容
|
||||
|
func (cont *UserEmpOnbRes) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 获取内容
|
||||
|
func (cont *UserEmpOnbRes) GetCont(whereMap interface{}, field ...string) (err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
gormDb = gormDb.Where(whereMap) |
||||
|
err = gormDb.First(&cont).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 根据条件获取总数
|
||||
|
func (cont *UserEmpOnbRes) CountCont(whereMap interface{}) (countId int64) { |
||||
|
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 读取全部信息
|
||||
|
func (cont *UserEmpOnbRes) ContMap(whereMap interface{}, field ...string) (countAry []UserEmpOnbRes, err error) { |
||||
|
gormDb := overall.CONSTANT_DB_HR.Model(&cont) |
||||
|
if len(field) > 0 { |
||||
|
fieldStr := strings.Join(field, ",") |
||||
|
gormDb = gormDb.Select(fieldStr) |
||||
|
} |
||||
|
err = gormDb.Where(whereMap).Find(&countAry).Error |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 删除内容
|
||||
|
func (cont *UserEmpOnbRes) DelCont(whereMap interface{}) (err error) { |
||||
|
err = overall.CONSTANT_DB_HR.Where(whereMap).Delete(&cont).Error |
||||
|
return |
||||
|
} |
||||
Loading…
Reference in new issue