31 changed files with 1718 additions and 954 deletions
Binary file not shown.
@ -0,0 +1,965 @@ |
|||
package personnelapi |
|||
|
|||
import ( |
|||
"fmt" |
|||
"hr_server/models" |
|||
"hr_server/overall" |
|||
"hr_server/overall/overallhandle" |
|||
"strconv" |
|||
"strings" |
|||
"time" |
|||
|
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
//金蝶人员信息对接
|
|||
func (s *StaffApi) NewKingdee(c *gin.Context) { |
|||
var requestData addKingdeePersonnel |
|||
c.ShouldBindJSON(&requestData) |
|||
if requestData.Number == "" { |
|||
overallhandle.Result(1, requestData.Number, c, "工号不能为空!") |
|||
return |
|||
} |
|||
var manContent models.PersonArchives |
|||
manErr := manContent.GetCont(map[string]interface{}{"`number`": requestData.Number}) |
|||
if manErr == nil { |
|||
//已经存在!进行变动操作
|
|||
manErr = eidtAddManContJinDie(manContent, requestData) |
|||
} else { |
|||
//不存在!进行新增操作
|
|||
var oldSchool models.WorkMan |
|||
oldSchool.GetCont(map[string]interface{}{"wm_number": requestData.Number}) |
|||
manErr = newAddManContJinDie(oldSchool, requestData) |
|||
} |
|||
if manErr != nil { |
|||
overallhandle.Result(104, manErr, c) |
|||
return |
|||
} |
|||
overallhandle.Result(0, manErr, c) |
|||
} |
|||
|
|||
//编辑员工
|
|||
func eidtAddManContJinDie(perArcInfo models.PersonArchives, manCont addKingdeePersonnel) error { |
|||
eidtManCont := overallhandle.MapOut() |
|||
if manCont.Name != "" && manCont.Name != perArcInfo.Name { |
|||
eidtManCont["`name`"] = manCont.Name |
|||
} |
|||
if manCont.Icon != "" && manCont.Icon != perArcInfo.Icon { |
|||
eidtManCont["`icon`"] = manCont.Icon |
|||
} |
|||
if manCont.HireType != 0 && manCont.HireType != perArcInfo.HireClass { |
|||
eidtManCont["`hire_class`"] = manCont.HireType |
|||
} |
|||
if manCont.EmpType != 0 && manCont.EmpType != perArcInfo.EmpType { |
|||
eidtManCont["`emp_type`"] = manCont.EmpType |
|||
} |
|||
//人员变更记录
|
|||
var manChangeRecord models.PersonnelChangeRecord |
|||
changeRecordTrue := false |
|||
//公司
|
|||
if manCont.Company != "" { |
|||
var orgCompany models.AdministrativeOrganization |
|||
orgErr := orgCompany.GetCont(map[string]interface{}{"kingdeeid": manCont.Company}, "`id`") |
|||
if orgErr == nil { |
|||
if orgCompany.Id != perArcInfo.Company { |
|||
eidtManCont["`company`"] = orgCompany.Id |
|||
changeRecordTrue = true |
|||
} |
|||
manChangeRecord.Company = orgCompany.Id |
|||
} |
|||
} |
|||
//主部门
|
|||
if manCont.MainDepartment != "" { |
|||
var orgMainDepart models.AdministrativeOrganization |
|||
orgErr := orgMainDepart.GetCont(map[string]interface{}{"kingdeeid": manCont.MainDepartment}, "`id`") |
|||
if orgErr == nil { |
|||
if orgMainDepart.Id != perArcInfo.Company { |
|||
eidtManCont["`maindeparment`"] = orgMainDepart.Id |
|||
changeRecordTrue = true |
|||
} |
|||
manChangeRecord.MainDepartment = orgMainDepart.Id |
|||
} |
|||
} |
|||
//部门
|
|||
if len(manCont.Department) > 0 { |
|||
var departId []string |
|||
|
|||
if manCont.MainDepartment != "" { |
|||
if overallhandle.IsInTrue[string](manCont.MainDepartment, manCont.Department) == false { |
|||
manCont.Department = append(manCont.Department, manCont.MainDepartment) |
|||
} |
|||
} |
|||
|
|||
for _, dv := range manCont.Department { |
|||
var orgMainDepartAry models.AdministrativeOrganization |
|||
orgErr := orgMainDepartAry.GetCont(map[string]interface{}{"kingdeeid": dv}, "`id`") |
|||
if orgErr == nil { |
|||
orgIdStr := strconv.FormatInt(orgMainDepartAry.Id, 10) |
|||
if overallhandle.StringIsInMap(orgIdStr, departId) == false { |
|||
departId = append(departId, orgIdStr) |
|||
} |
|||
} |
|||
} |
|||
oldDepart := strings.Split(perArcInfo.Deparment, ",") |
|||
chaJiDepart := overallhandle.DifferenceSet[string](departId, oldDepart) |
|||
if len(chaJiDepart) > 0 { |
|||
departIdStr := strings.Join(departId, ",") |
|||
eidtManCont["`deparment`"] = departIdStr |
|||
manChangeRecord.Department = departIdStr |
|||
changeRecordTrue = true |
|||
} |
|||
|
|||
} |
|||
//行政组织
|
|||
if manCont.AdminOrg != "" { |
|||
var orgMainDepartAdmin models.AdministrativeOrganization |
|||
orgErr := orgMainDepartAdmin.GetCont(map[string]interface{}{"kingdeeid": manCont.AdminOrg}, "`id`") |
|||
if orgErr == nil { |
|||
if orgMainDepartAdmin.Id != perArcInfo.AdminOrg { |
|||
eidtManCont["`admin_org`"] = orgMainDepartAdmin.Id |
|||
changeRecordTrue = true |
|||
} |
|||
manChangeRecord.Adminorg = orgMainDepartAdmin.Id |
|||
} |
|||
} |
|||
//职位
|
|||
if manCont.Position != "" { |
|||
var positionCont models.Position |
|||
positErr := positionCont.GetCont(map[string]interface{}{`kingdeeid`: manCont.Position}, "`id`") |
|||
if positErr == nil { |
|||
if positionCont.Id != perArcInfo.Position { |
|||
eidtManCont["`position`"] = positionCont.Id |
|||
changeRecordTrue = true |
|||
} |
|||
manChangeRecord.Position = positionCont.Id |
|||
} |
|||
} |
|||
//职务
|
|||
if manCont.JobName != "" { |
|||
var dutiesCont models.DutiesClassLeve |
|||
dutiesErr := dutiesCont.GetCont(map[string]interface{}{"`d_king`": manCont.JobName}, "d_id") |
|||
if dutiesErr == nil { |
|||
|
|||
if dutiesCont.Id != perArcInfo.Position { |
|||
eidtManCont["`job_id`"] = dutiesCont.Id |
|||
changeRecordTrue = true |
|||
} |
|||
|
|||
if dutiesCont.ClassId != perArcInfo.JobClass { |
|||
eidtManCont["`job_class`"] = dutiesCont.ClassId |
|||
changeRecordTrue = true |
|||
} |
|||
manChangeRecord.JobId = dutiesCont.Id |
|||
manChangeRecord.JobClass = dutiesCont.ClassId |
|||
} |
|||
} |
|||
if manCont.PositionGrade != 0 { |
|||
if manCont.PositionGrade != perArcInfo.JobLeve { |
|||
eidtManCont["`job_leve`"] = manCont.PositionGrade |
|||
} |
|||
manChangeRecord.JobLevel = manCont.PositionGrade |
|||
changeRecordTrue = true |
|||
} |
|||
fmt.Printf("第一学历--->%v--->%v\n", changeRecordTrue, manChangeRecord) |
|||
if len(eidtManCont) > 0 { |
|||
var manMainCont models.PersonArchives |
|||
eidtErrMain := manMainCont.EiteCont(map[string]interface{}{"`id`": perArcInfo.Id}, eidtManCont) |
|||
if eidtErrMain != nil { |
|||
return eidtErrMain |
|||
} else { |
|||
if changeRecordTrue == true { |
|||
//写入变动记录
|
|||
|
|||
manChangeRecord.Type = manCont.HireType |
|||
manChangeRecord.Number = perArcInfo.Number |
|||
manChangeRecord.Time = time.Now().Unix() |
|||
manChangeRecord.Key = perArcInfo.Key |
|||
// rybdErr := overall.CONSTANT_DB_HR.Create(&manChangeRecord).Error
|
|||
// jsonCont, _ := json.Marshal(manChangeRecord)
|
|||
// fmt.Printf("第二学历--->%v--->%v\n", rybdErr, string(jsonCont))
|
|||
} |
|||
//编辑人员附属信息
|
|||
synPro.Add(1) |
|||
go editManAuxiliaryDataNew(perArcInfo.Key, manCont) |
|||
//编辑紧急联系人信息
|
|||
synPro.Add(1) |
|||
go emergencyContactPersonNew(perArcInfo.Key, manCont) |
|||
//编辑员工家属信息
|
|||
synPro.Add(1) |
|||
go eidtFamilyMembersNew(perArcInfo.Key, manCont.Number, manCont.MemberOfFamily) |
|||
//编辑员工教育经历
|
|||
synPro.Add(1) |
|||
go educatExperKingdeeNew(perArcInfo.Key, manCont) |
|||
//编辑工作履历
|
|||
synPro.Add(1) |
|||
go editWorkHistoryMan(perArcInfo.Key, manCont.Number, manCont.WorkHistoryList) |
|||
synPro.Wait() |
|||
} |
|||
} |
|||
|
|||
return nil |
|||
} |
|||
|
|||
//新增员工
|
|||
func newAddManContJinDie(oldSchool models.WorkMan, manCont addKingdeePersonnel) error { |
|||
|
|||
manKeyNum := overallhandle.TableNumber() |
|||
if oldSchool.Key != 0 { |
|||
manKeyNum = oldSchool.Key |
|||
} |
|||
|
|||
var manMainCont models.PersonArchives |
|||
manMainCont.Number = manCont.Number |
|||
manMainCont.Name = manCont.Name |
|||
manMainCont.Icon = manCont.Icon |
|||
manMainCont.HireClass = manCont.HireType |
|||
manMainCont.EmpType = manCont.EmpType |
|||
timeTady := time.Now().Unix() |
|||
manMainCont.Time = timeTady |
|||
manMainCont.EiteTime = timeTady |
|||
manMainCont.State = 1 |
|||
|
|||
if manCont.Company != "" { |
|||
var orgCompany models.AdministrativeOrganization |
|||
orgErr := orgCompany.GetCont(map[string]interface{}{"kingdeeid": manCont.Company}, "`id`") |
|||
if orgErr == nil { |
|||
manMainCont.Company = orgCompany.Id |
|||
} |
|||
} |
|||
if manCont.MainDepartment != "" { |
|||
var orgMainDepart models.AdministrativeOrganization |
|||
orgErr := orgMainDepart.GetCont(map[string]interface{}{"kingdeeid": manCont.MainDepartment}, "`id`") |
|||
if orgErr == nil { |
|||
manMainCont.MainDeparment = orgMainDepart.Id |
|||
} |
|||
} |
|||
if len(manCont.Department) > 0 { |
|||
var departId []string |
|||
if manCont.MainDepartment != "" { |
|||
if overallhandle.IsInTrue[string](manCont.MainDepartment, manCont.Department) == false { |
|||
manCont.Department = append(manCont.Department, manCont.MainDepartment) |
|||
} |
|||
} |
|||
for _, dv := range manCont.Department { |
|||
var orgMainDepartAry models.AdministrativeOrganization |
|||
orgErr := orgMainDepartAry.GetCont(map[string]interface{}{"kingdeeid": dv}, "`id`") |
|||
if orgErr == nil { |
|||
orgIdStr := strconv.FormatInt(orgMainDepartAry.Id, 10) |
|||
if overallhandle.StringIsInMap(orgIdStr, departId) == false { |
|||
departId = append(departId, orgIdStr) |
|||
} |
|||
} |
|||
} |
|||
departIdStr := strings.Join(departId, ",") |
|||
manMainCont.Deparment = departIdStr |
|||
} |
|||
if manCont.AdminOrg != "" { |
|||
var orgMainDepartAdmin models.AdministrativeOrganization |
|||
orgErr := orgMainDepartAdmin.GetCont(map[string]interface{}{"kingdeeid": manCont.AdminOrg}, "`id`") |
|||
if orgErr == nil { |
|||
manMainCont.AdminOrg = orgMainDepartAdmin.Id |
|||
} |
|||
} |
|||
|
|||
//职位
|
|||
if manCont.Position != "" { |
|||
var positionCont models.Position |
|||
positErr := positionCont.GetCont(map[string]interface{}{`kingdeeid`: manCont.Position}, "`id`") |
|||
if positErr == nil { |
|||
manMainCont.Position = positionCont.Id |
|||
} |
|||
} |
|||
//职务
|
|||
if manCont.JobName != "" { |
|||
var dutiesCont models.DutiesClassLeve |
|||
dutiesErr := dutiesCont.GetCont(map[string]interface{}{"`d_king`": manCont.JobName}, "d_id", "c_id") |
|||
if dutiesErr == nil { |
|||
manMainCont.JobId = dutiesCont.Id |
|||
manMainCont.JobClass = dutiesCont.ClassId |
|||
} |
|||
} |
|||
if manCont.PositionGrade != 0 { |
|||
manMainCont.JobLeve = manCont.PositionGrade |
|||
} |
|||
|
|||
//获取老人员主表内容
|
|||
var oldPersonArchives models.Personnel |
|||
oldPersErr := overall.CONSTANT_DB_HR_Jin.Where(map[string]interface{}{"`number`": manCont.Number}).First(&oldPersonArchives).Error |
|||
if oldPersErr == nil { |
|||
if manCont.Icon == "" { |
|||
manMainCont.Icon = oldPersonArchives.Icon |
|||
} |
|||
if oldPersonArchives.Key != 0 { |
|||
manMainCont.Key = oldPersonArchives.Key |
|||
} else { |
|||
manMainCont.Key = manKeyNum |
|||
} |
|||
|
|||
if oldPersonArchives.Wechat != "" { |
|||
manMainCont.Wechat = oldPersonArchives.Wechat |
|||
} |
|||
if oldPersonArchives.WorkWechat != "" { |
|||
manMainCont.WorkWechat = oldPersonArchives.WorkWechat |
|||
} |
|||
manMainCont.IsAdmin = oldPersonArchives.IsAdmin |
|||
manMainCont.Role = oldPersonArchives.Role |
|||
if oldPersonArchives.Password != "" { |
|||
manMainCont.Password = oldPersonArchives.Password |
|||
} else { |
|||
//密码加密
|
|||
var passwordMd5 overallhandle.Md5Encryption |
|||
passwordMd5.Md5EncryptionInit(overall.CONSTANT_CONFIG.Appsetup.DefaultPassword) |
|||
manMainCont.Password = passwordMd5.Md5EncryptionAlgorithm() |
|||
} |
|||
} else { |
|||
manMainCont.Key = manKeyNum |
|||
if oldSchool.Password != "" { |
|||
manMainCont.Password = oldSchool.Password |
|||
} else { |
|||
//密码加密
|
|||
var passwordMd5 overallhandle.Md5Encryption |
|||
passwordMd5.Md5EncryptionInit(overall.CONSTANT_CONFIG.Appsetup.DefaultPassword) |
|||
manMainCont.Password = passwordMd5.Md5EncryptionAlgorithm() |
|||
} |
|||
if oldSchool.WorkWechatId != "" { |
|||
manMainCont.WorkWechat = oldSchool.WorkWechatId |
|||
} |
|||
if oldSchool.WechatId != "" { |
|||
manMainCont.Wechat = oldSchool.WechatId |
|||
} |
|||
} |
|||
addManContErr := overall.CONSTANT_DB_HR.Create(&manMainCont).Error |
|||
if addManContErr != nil { |
|||
return addManContErr |
|||
} else { |
|||
//编辑人员附属信息
|
|||
synPro.Add(1) |
|||
go editManAuxiliaryDataNew(manKeyNum, manCont) |
|||
//编辑紧急联系人信息
|
|||
synPro.Add(1) |
|||
go emergencyContactPersonNew(manKeyNum, manCont) |
|||
//编辑员工家属信息
|
|||
synPro.Add(1) |
|||
go eidtFamilyMembersNew(manKeyNum, manCont.Number, manCont.MemberOfFamily) |
|||
//编辑员工教育经历
|
|||
synPro.Add(1) |
|||
go educatExperKingdeeNew(manKeyNum, manCont) |
|||
//编辑工作履历
|
|||
synPro.Add(1) |
|||
go editWorkHistoryMan(manKeyNum, manCont.Number, manCont.WorkHistoryList) |
|||
synPro.Wait() |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
//编辑人员附属信息
|
|||
func editManAuxiliaryDataNew(manKeyNum int64, manCont addKingdeePersonnel) { |
|||
defer synPro.Done() |
|||
var manInfo models.PersonnelContent |
|||
manErr := manInfo.GetCont(map[string]interface{}{"`key`": manKeyNum}) |
|||
if manErr == nil { |
|||
saveData := overallhandle.MapOut() |
|||
if manCont.IDCardNo != "" && manCont.IDCardNo != manInfo.Idcardno { |
|||
saveData["idcardno"] = manCont.IDCardNo |
|||
} |
|||
if manCont.IDCardStartTime != "" { |
|||
idCardStarTime, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.IDCardStartTime)) |
|||
if idCardStarTime != manInfo.Idcardstartdate { |
|||
saveData["idcardstartdate"] = idCardStarTime |
|||
} |
|||
} |
|||
if manCont.IDCardEndTime != "" { |
|||
idCardEndTime, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.IDCardEndTime)) |
|||
if idCardEndTime != manInfo.Idcardenddate { |
|||
saveData["idcardenddate"] = idCardEndTime |
|||
} |
|||
} |
|||
if manCont.IDCardAddress != "" && manCont.IDCardAddress != manInfo.Idcardaddress { |
|||
saveData["idcardaddress"] = manCont.IDCardAddress |
|||
} |
|||
if manCont.IDCardIsSued != "" && manCont.IDCardIsSued != manInfo.IdcardIssued { |
|||
saveData["idcardIssued"] = manCont.IDCardIsSued |
|||
} |
|||
if manCont.Mobilephone != "" && manCont.Mobilephone != manInfo.Mobilephone { |
|||
saveData["mobilephone"] = manCont.Mobilephone |
|||
} |
|||
if manCont.Email != "" && manCont.Email != manInfo.Email { |
|||
saveData["email"] = manCont.Email |
|||
} |
|||
if manCont.Gender != 0 && manCont.Gender != manInfo.Gender { |
|||
saveData["gender"] = manCont.Gender |
|||
} |
|||
if manCont.Birthday != "" { |
|||
brrthday, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.Birthday)) |
|||
if brrthday != manInfo.Birthday { |
|||
saveData["birthday"] = brrthday |
|||
} |
|||
} |
|||
if manCont.Nation != "" && manCont.Nation != manInfo.Myfolk { |
|||
saveData["myfolk"] = manCont.Nation |
|||
} |
|||
if manCont.NativePlace != "" && manCont.NativePlace != manInfo.Nativeplace { |
|||
saveData["nativeplace"] = manCont.NativePlace |
|||
} |
|||
if manCont.Health != 0 && manCont.Health != manInfo.Health { |
|||
saveData["health"] = manCont.Health |
|||
} |
|||
if manCont.Maritalstatus != 0 && manCont.Maritalstatus != manInfo.Maritalstatus { |
|||
saveData["maritalstatus"] = manCont.Maritalstatus |
|||
} |
|||
if manCont.CurrentResidence != "" && manCont.CurrentResidence != manInfo.Currentresidence { |
|||
saveData["currentresidence"] = manCont.CurrentResidence |
|||
} |
|||
if manCont.Constellation != 0 && manCont.Constellation != manInfo.Constellation { |
|||
saveData["constellationing"] = manCont.Constellation |
|||
} |
|||
if manCont.Iisdoubleworker != 0 && manCont.Iisdoubleworker != manInfo.Isdoubleworker { |
|||
saveData["isdoubleworker"] = manCont.Iisdoubleworker |
|||
// eidtDoubleWorker(manCont, manCont.Iisdoubleworker)
|
|||
eidtDoubleWorkerNew(manKeyNum, manCont, manCont.Iisdoubleworker) |
|||
} |
|||
if manCont.Isveterans != 0 && manCont.Isveterans != manInfo.Isveterans { |
|||
saveData["isveterans"] = manCont.Isveterans |
|||
if manCont.Isveterans == 1 { |
|||
if manCont.Veteransnumber != "" && manCont.Veteransnumber != manInfo.Veteransnumber { |
|||
saveData["veteransnumber"] = manCont.Veteransnumber |
|||
} |
|||
} else { |
|||
saveData["veteransnumber"] = "" |
|||
} |
|||
} |
|||
if manCont.WorkingDate != "" { |
|||
workInData, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.WorkingDate)) |
|||
if workInData != manInfo.Jobstartdate { |
|||
saveData["jobstartdate"] = workInData |
|||
} |
|||
} |
|||
if manCont.EntryDate != "" { |
|||
entryData, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.EntryDate)) |
|||
if entryData != manInfo.Entrydate { |
|||
saveData["entrydate"] = entryData |
|||
} |
|||
} |
|||
if manCont.ProbationPeriod != 0 && manCont.ProbationPeriod != manInfo.Probationperiod { |
|||
saveData["probationperiod"] = manCont.ProbationPeriod |
|||
entryData := manInfo.Entrydate |
|||
if manCont.EntryDate != "" { |
|||
entryData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.EntryDate)) |
|||
} |
|||
planformalData := overallhandle.GetFutureMonthTime(entryData, manCont.ProbationPeriod, 2) |
|||
saveData["planformaldate"] = planformalData |
|||
} |
|||
|
|||
if manCont.ConfirmationDate != "" { |
|||
planformalData, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.ConfirmationDate)) |
|||
saveData["planformaldate"] = planformalData |
|||
} |
|||
if manCont.PoliticalOutlook != 0 && manCont.PoliticalOutlook != manInfo.PoliticalOutlook { |
|||
saveData["political_outlook"] = manCont.PoliticalOutlook |
|||
} |
|||
if len(saveData) > 0 { |
|||
saveData["`time`"] = time.Now().Unix() |
|||
manInfo.EiteCont(map[string]interface{}{"`number`": manCont.Number}, saveData) |
|||
} |
|||
} else { |
|||
manInfo.Key = manKeyNum |
|||
manInfo.Number = manCont.Number |
|||
manInfo.Idcardno = manCont.IDCardNo |
|||
idCardStarTime := time.Now().Unix() |
|||
if manCont.IDCardStartTime != "" { |
|||
idCardStarTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.IDCardStartTime)) |
|||
} |
|||
manInfo.Idcardstartdate = idCardStarTime //身份证有效期开始
|
|||
idCardEndTime := time.Now().Unix() |
|||
if manCont.IDCardEndTime != "" { |
|||
idCardEndTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.IDCardEndTime)) |
|||
} |
|||
manInfo.Idcardenddate = idCardEndTime //身份证有效期结束
|
|||
manInfo.Idcardaddress = manCont.IDCardAddress //身份证地址
|
|||
manInfo.IdcardIssued = manCont.IDCardIsSued //身份证签发机关
|
|||
manInfo.Mobilephone = manCont.Mobilephone |
|||
manInfo.Email = manCont.Email |
|||
manInfo.Gender = manCont.Gender |
|||
brrthday, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.Birthday)) |
|||
manInfo.Birthday = brrthday |
|||
manInfo.Myfolk = manCont.Nation |
|||
manInfo.Nativeplace = manCont.NativePlace |
|||
manInfo.Health = manCont.Health |
|||
manInfo.Maritalstatus = manCont.Maritalstatus |
|||
manInfo.Currentresidence = manCont.CurrentResidence |
|||
manInfo.Time = time.Now().Unix() |
|||
manInfo.Constellation = manCont.Constellation |
|||
manInfo.Isdoubleworker = manCont.Iisdoubleworker |
|||
manInfo.Isveterans = manCont.Isveterans |
|||
manInfo.Veteransnumber = manCont.Veteransnumber |
|||
workInData := time.Now().Unix() |
|||
if manCont.WorkingDate != "" { |
|||
workInData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.WorkingDate)) |
|||
} |
|||
manInfo.Jobstartdate = workInData |
|||
entryData := time.Now().Unix() |
|||
if manCont.EntryDate != "" { |
|||
entryData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.EntryDate)) |
|||
} |
|||
manInfo.Entrydate = entryData |
|||
manInfo.Probationperiod = manCont.ProbationPeriod |
|||
planformalData := time.Now().Unix() |
|||
if manCont.ConfirmationDate != "" { |
|||
planformalData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.ConfirmationDate)) |
|||
} else { |
|||
planformalData = overallhandle.GetFutureMonthTime(entryData, manCont.ProbationPeriod, 2) |
|||
} |
|||
manInfo.Planformaldate = planformalData |
|||
manInfo.PoliticalOutlook = manCont.PoliticalOutlook |
|||
|
|||
overall.CONSTANT_DB_HR.Create(&manInfo) |
|||
if manCont.Iisdoubleworker == 1 { |
|||
//编辑双职工
|
|||
eidtDoubleWorkerNew(manKeyNum, manCont, 1) |
|||
} |
|||
} |
|||
} |
|||
|
|||
//编辑双职工
|
|||
func eidtDoubleWorkerNew(manKeyNum int64, manCont addKingdeePersonnel, state int) { |
|||
var doubleWorkCont models.DoubleWorker |
|||
dwErr := doubleWorkCont.GetCont(map[string]interface{}{"`key`": manKeyNum}) |
|||
if dwErr == nil { |
|||
saveData := overallhandle.MapOut() |
|||
if manCont.SpouseName != "" && manCont.SpouseName != doubleWorkCont.Name { |
|||
saveData["`name`"] = manCont.SpouseName |
|||
} |
|||
if manCont.SpouseCompany != "" && manCont.SpouseCompany != doubleWorkCont.Company { |
|||
saveData["`company`"] = manCont.SpouseCompany |
|||
} |
|||
if manCont.SpouseDepartment != "" && manCont.SpouseDepartment != doubleWorkCont.Department { |
|||
saveData["`department`"] = manCont.SpouseDepartment |
|||
} |
|||
if manCont.SpousePosition != "" && manCont.SpousePosition != doubleWorkCont.Position { |
|||
saveData["`position`"] = manCont.SpousePosition |
|||
} |
|||
if manCont.SpouseTel != "" && manCont.SpouseTel != doubleWorkCont.Tel { |
|||
saveData["`tel`"] = manCont.SpouseTel |
|||
} |
|||
if state != 0 && state != doubleWorkCont.State { |
|||
saveData["`state`"] = state |
|||
} |
|||
if len(saveData) > 0 { |
|||
saveData["`time`"] = time.Now().Unix() |
|||
doubleWorkCont.EiteCont(map[string]interface{}{"`number`": manCont.Number}, saveData) |
|||
} |
|||
} else { |
|||
saveData := overallhandle.MapOut() |
|||
saveData["state"] = 2 |
|||
doubleWorkCont.EiteCont(map[string]interface{}{"`number`": manCont.Number}, saveData) |
|||
doubleWorkCont.Key = manKeyNum |
|||
doubleWorkCont.Number = manCont.Number |
|||
doubleWorkCont.Name = manCont.SpouseName |
|||
doubleWorkCont.Tel = manCont.SpouseTel |
|||
doubleWorkCont.Company = manCont.SpouseCompany |
|||
doubleWorkCont.Department = manCont.SpouseDepartment |
|||
doubleWorkCont.Position = manCont.SpousePosition |
|||
doubleWorkCont.State = state |
|||
overall.CONSTANT_DB_HR.Create(&doubleWorkCont) |
|||
} |
|||
} |
|||
|
|||
//编辑紧急联系人信息
|
|||
func emergencyContactPersonNew(manKeyNum int64, manCont addKingdeePersonnel) { |
|||
defer synPro.Done() |
|||
var emeContPerAry []emergencyContact |
|||
if manCont.UrgentNameOne != "" || manCont.UrgentRelationshipOne != "" || manCont.UrgentMobilephoneOne != "" { |
|||
var emeContPerOne emergencyContact |
|||
emeContPerOne.Name = manCont.UrgentNameOne //姓名1
|
|||
emeContPerOne.Relationship = manCont.UrgentRelationshipOne //与紧急联系人1
|
|||
emeContPerOne.Mobilephone = manCont.UrgentMobilephoneOne //联系电话1
|
|||
emeContPerAry = append(emeContPerAry, emeContPerOne) |
|||
} |
|||
if manCont.UrgentNameTwo != "" || manCont.UrgentRelationshipTwo != "" || manCont.UrgentMobilephoneTwo != "" { |
|||
var emeContPerTwo emergencyContact |
|||
emeContPerTwo.Name = manCont.UrgentNameTwo //姓名2
|
|||
emeContPerTwo.Relationship = manCont.UrgentRelationshipTwo //与紧急联系人2
|
|||
emeContPerTwo.Mobilephone = manCont.UrgentMobilephoneTwo //联系电话2
|
|||
emeContPerAry = append(emeContPerAry, emeContPerTwo) |
|||
} |
|||
if len(emeContPerAry) > 0 { |
|||
|
|||
var oldEmePersList []models.EmergencyContact |
|||
oldEmeErr := overall.CONSTANT_DB_HR.Where("`key` = ?", manKeyNum).Find(&oldEmePersList).Error |
|||
if oldEmeErr == nil { |
|||
var writeName []string |
|||
var allId []int64 |
|||
var isEite []int64 |
|||
for _, ev := range emeContPerAry { |
|||
for _, ov := range oldEmePersList { |
|||
if overallhandle.JudgeInMap(ov.Id, allId) == false { |
|||
allId = append(allId, ov.Id) |
|||
} |
|||
if ev.Name == ov.Name { |
|||
writeName = append(writeName, ev.Name) |
|||
if overallhandle.JudgeInMap(ov.Id, isEite) == false { |
|||
isEite = append(isEite, ov.Id) |
|||
} |
|||
eitdCont := overallhandle.MapOut() |
|||
if ev.Relationship != "" && ev.Relationship != ov.Relationship { |
|||
eitdCont["relationship"] = ev.Relationship |
|||
} |
|||
if ev.Mobilephone != "" && ev.Mobilephone != ov.Tel { |
|||
eitdCont["tel"] = ev.Mobilephone |
|||
} |
|||
if ov.State != 1 { |
|||
eitdCont["state"] = 1 |
|||
} |
|||
if len(eitdCont) > 0 { |
|||
eitdCont["time"] = time.Now().Unix() |
|||
var oldEmePersCont models.EmergencyContact |
|||
oldEmePersCont.EiteCont(map[string]interface{}{"`id`": ov.Id}, eitdCont) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
//判断两个紧急人员是否都写入
|
|||
// if len(writeName) != 2 {
|
|||
for _, sv := range emeContPerAry { |
|||
if overallhandle.StringIsInMap(sv.Name, writeName) == false { |
|||
var addEmeCont models.EmergencyContact |
|||
addEmeCont.Key = manKeyNum |
|||
addEmeCont.Number = manCont.Number |
|||
addEmeCont.Name = sv.Name |
|||
addEmeCont.Relationship = sv.Relationship |
|||
addEmeCont.Tel = sv.Mobilephone |
|||
addEmeCont.State = 1 |
|||
addEmeCont.Time = time.Now().Unix() |
|||
overall.CONSTANT_DB_HR.Create(&addEmeCont) |
|||
} |
|||
} |
|||
// }
|
|||
} else { |
|||
for _, insetv := range emeContPerAry { |
|||
var addEmeCont models.EmergencyContact |
|||
addEmeCont.Key = manKeyNum |
|||
addEmeCont.Number = manCont.Number |
|||
addEmeCont.Name = insetv.Name |
|||
addEmeCont.Relationship = insetv.Relationship |
|||
addEmeCont.Tel = insetv.Mobilephone |
|||
addEmeCont.State = 1 |
|||
addEmeCont.Time = time.Now().Unix() |
|||
overall.CONSTANT_DB_HR.Create(&addEmeCont) |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
//编辑员工家属
|
|||
func eidtFamilyMembersNew(manKeyNum int64, num string, family []memberOfFamily) { |
|||
defer synPro.Done() |
|||
if len(family) > 0 && manKeyNum != 0 { |
|||
var familyAry []models.FamilyMembers |
|||
famErr := overall.CONSTANT_DB_HR.Where("`key` = ?", manKeyNum).Find(&familyAry).Error |
|||
if famErr == nil { |
|||
var writeName []string |
|||
var allId []int64 |
|||
var isEite []int64 |
|||
for _, fv := range family { |
|||
for _, fav := range familyAry { |
|||
if overallhandle.JudgeInMap(fav.Id, allId) == false { |
|||
allId = append(allId, fav.Id) |
|||
} |
|||
if fv.Name == fav.Name { |
|||
writeName = append(writeName, fv.Name) |
|||
if overallhandle.JudgeInMap(fav.Id, isEite) == false { |
|||
isEite = append(isEite, fav.Id) |
|||
} |
|||
eitdCont := overallhandle.MapOut() |
|||
if fv.Relationship != "" && fv.Relationship != fav.Relationship { |
|||
eitdCont["relation"] = fv.Relationship |
|||
} |
|||
if fv.Mobilephone != "" && fv.Mobilephone != fav.Tel { |
|||
eitdCont["tel"] = fv.Mobilephone |
|||
} |
|||
if fv.Company != "" && fv.Company != fav.Company { |
|||
eitdCont["company"] = fv.Company |
|||
} |
|||
if fv.Department != "" && fv.Department != fav.Deparment { |
|||
eitdCont["deparment"] = fv.Department |
|||
} |
|||
if fv.Position != "" && fv.Position != fav.Postnme { |
|||
eitdCont["postnme"] = fv.Position |
|||
} |
|||
if fv.PoliticalOutlook != 0 && fv.PoliticalOutlook != fav.PoliticalOutlook { |
|||
eitdCont["political_outlook"] = fv.PoliticalOutlook |
|||
} |
|||
if len(eitdCont) > 0 { |
|||
eitdCont["time"] = time.Now().Unix() |
|||
var oldFamilyCont models.FamilyMembers |
|||
oldFamilyCont.EiteCont(map[string]interface{}{"`id`": fav.Id}, eitdCont) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
//新增不存在得家庭成员
|
|||
for _, afv := range family { |
|||
if overallhandle.StringIsInMap(afv.Name, writeName) == false { |
|||
var addFamliyCont models.FamilyMembers |
|||
addFamliyCont.Key = manKeyNum |
|||
addFamliyCont.Number = num |
|||
addFamliyCont.Relationship = afv.Relationship //亲属关系"`
|
|||
addFamliyCont.Name = afv.Name //姓名"`
|
|||
addFamliyCont.Company = afv.Company //所在公司"`
|
|||
addFamliyCont.Deparment = afv.Department //所在部门"`
|
|||
addFamliyCont.Postnme = afv.Position //所在岗位"`
|
|||
addFamliyCont.Tel = afv.Mobilephone //紧急联系人电话"`
|
|||
addFamliyCont.PoliticalOutlook = afv.PoliticalOutlook //政治面貌
|
|||
addFamliyCont.Time = time.Now().Unix() // 创建时间"`
|
|||
overall.CONSTANT_DB_HR.Create(&addFamliyCont) |
|||
} |
|||
} |
|||
} else { |
|||
//新增家庭成员
|
|||
for _, v := range family { |
|||
var addFamliyCont models.FamilyMembers |
|||
addFamliyCont.Key = manKeyNum |
|||
addFamliyCont.Number = num |
|||
addFamliyCont.Relationship = v.Relationship //亲属关系"`
|
|||
addFamliyCont.Name = v.Name //姓名"`
|
|||
addFamliyCont.Company = v.Company //所在公司"`
|
|||
addFamliyCont.Deparment = v.Department //所在部门"`
|
|||
addFamliyCont.Postnme = v.Position //所在岗位"`
|
|||
addFamliyCont.Tel = v.Mobilephone //紧急联系人电话"`
|
|||
addFamliyCont.PoliticalOutlook = v.PoliticalOutlook //政治面貌
|
|||
addFamliyCont.Time = time.Now().Unix() // 创建时间"`
|
|||
overall.CONSTANT_DB_HR.Create(&addFamliyCont) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
//教育经历
|
|||
func educatExperKingdeeNew(manKeyNum int64, manCont addKingdeePersonnel) { |
|||
defer synPro.Done() |
|||
if manCont.HighestGraduationSchool != "" { |
|||
//最高学历
|
|||
var perEduContHig models.PersonnelEducation |
|||
highestGormDb := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`key` = ? AND `graduation_school` = ? AND `subject` = ?", manKeyNum, manCont.HighestGraduationSchool, manCont.HighestSubject) |
|||
higErr := highestGormDb.First(&perEduContHig).Error |
|||
|
|||
if higErr == nil { |
|||
eitdCont := overallhandle.MapOut() |
|||
if manCont.HighestEducation != 0 && manCont.HighestEducation != perEduContHig.Education { |
|||
eitdCont["education"] = manCont.HighestEducation |
|||
} |
|||
if manCont.HighestAcademicDegree != 0 && manCont.HighestAcademicDegree != perEduContHig.AcademicDegree { |
|||
eitdCont["academic_degree"] = manCont.HighestAcademicDegree |
|||
} |
|||
if manCont.HighestAdmissionTime != "" { |
|||
entranceTime, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestAdmissionTime)) |
|||
if entranceTime != perEduContHig.AdmissionTime { |
|||
eitdCont["admission_time"] = entranceTime |
|||
} |
|||
} |
|||
if manCont.HighestGraduationTime != "" { |
|||
graduationTime, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestGraduationTime)) |
|||
if graduationTime != perEduContHig.GraduationTime { |
|||
eitdCont["graduation_time"] = graduationTime |
|||
} |
|||
} |
|||
if len(eitdCont) > 0 { |
|||
eitdCont["Time"] = time.Now().Unix() |
|||
eitdCont["level"] = 3 |
|||
var oldFamilyCont models.PersonnelEducation |
|||
oldFamilyCont.EiteCont(map[string]interface{}{"`id`": perEduContHig.Id}, eitdCont) |
|||
} |
|||
} else { |
|||
var perEduContFirstIsTrue models.PersonnelEducation |
|||
highestGormDbIsTrue := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`level` = 3 AND `key` = ?", manKeyNum).First(&perEduContFirstIsTrue).Error |
|||
if highestGormDbIsTrue == nil { |
|||
eitdCont := overallhandle.MapOut() |
|||
eitdCont["Time"] = time.Now().Unix() |
|||
eitdCont["level"] = 1 |
|||
var oldFamilyCont models.PersonnelEducation |
|||
oldFamilyCont.EiteCont(map[string]interface{}{"`key`": manKeyNum, "level": 3}, eitdCont) |
|||
} |
|||
perEduContHig.Key = manKeyNum |
|||
perEduContHig.Number = manCont.Number // 员工工号
|
|||
perEduContHig.Education = manCont.HighestEducation // 学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授)"`
|
|||
perEduContHig.GraduationSchool = manCont.HighestGraduationSchool // 毕业学校"`
|
|||
perEduContHig.Subject = manCont.HighestSubject // 专业"`
|
|||
entranceTime := time.Now().Unix() |
|||
if manCont.HighestAdmissionTime != "" { |
|||
entranceTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestAdmissionTime)) |
|||
} |
|||
perEduContHig.AdmissionTime = entranceTime // 入学时间"`
|
|||
graduationTime := time.Now().Unix() |
|||
if manCont.HighestGraduationTime != "" { |
|||
graduationTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestGraduationTime)) |
|||
} |
|||
perEduContHig.GraduationTime = graduationTime // 毕业时间"`
|
|||
perEduContHig.Time = time.Now().Unix() // 写入时间"`
|
|||
perEduContHig.AcademicDegree = manCont.HighestAcademicDegree |
|||
perEduContHig.Level = 3 // 学历类型(1:普通;2:第一学历;3:最高学历)"`
|
|||
overall.CONSTANT_DB_HR.Create(&perEduContHig) |
|||
} |
|||
} |
|||
//第一学历
|
|||
if manCont.FirstGraduationSchool != "" { |
|||
//第一学历
|
|||
var perEduContFirst models.PersonnelEducation |
|||
firsthestGormDb := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`key` = ? AND graduation_school = ? AND subject = ?", manKeyNum, manCont.FirstGraduationSchool, manCont.FirstSubject) |
|||
higErr := firsthestGormDb.First(&perEduContFirst).Error |
|||
|
|||
if higErr == nil { |
|||
eitdContFirst := overallhandle.MapOut() |
|||
if manCont.FirstEducation != 0 && manCont.FirstEducation != perEduContFirst.Education { |
|||
eitdContFirst["education"] = manCont.FirstEducation |
|||
} |
|||
if manCont.FirstAcademicDegree != 0 && manCont.FirstAcademicDegree != perEduContFirst.AcademicDegree { |
|||
eitdContFirst["academic_degree"] = manCont.FirstAcademicDegree |
|||
} |
|||
if manCont.FirstAdmissionTime != "" { |
|||
entranceTimeFirst, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.FirstAdmissionTime)) |
|||
if entranceTimeFirst != perEduContFirst.AdmissionTime { |
|||
eitdContFirst["admission_time"] = entranceTimeFirst |
|||
} |
|||
} |
|||
if manCont.FirstGraduationTime != "" { |
|||
graduationTimeFirst, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.FirstGraduationTime)) |
|||
if graduationTimeFirst != perEduContFirst.GraduationTime { |
|||
eitdContFirst["graduation_time"] = graduationTimeFirst |
|||
} |
|||
} |
|||
if len(eitdContFirst) > 0 { |
|||
eitdContFirst["Time"] = time.Now().Unix() |
|||
eitdContFirst["level"] = 2 |
|||
var oldFamilyContFirst models.PersonnelEducation |
|||
oldFamilyContFirst.EiteCont(map[string]interface{}{"`id`": perEduContFirst.Id}, eitdContFirst) |
|||
} |
|||
} else { |
|||
var perEduContFirstIsTrue models.PersonnelEducation |
|||
highestGormDbIsTrue := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`level` = 1 AND `key` = ?", manKeyNum).First(&perEduContFirstIsTrue).Error |
|||
if highestGormDbIsTrue == nil { |
|||
eitdContFirst := overallhandle.MapOut() |
|||
eitdContFirst["Time"] = time.Now().Unix() |
|||
eitdContFirst["level"] = 1 |
|||
var oldFamilyContFirst models.PersonnelEducation |
|||
oldFamilyContFirst.EiteCont(map[string]interface{}{"`key`": manKeyNum, "level": 2}, eitdContFirst) |
|||
} |
|||
perEduContFirst.Key = manKeyNum |
|||
perEduContFirst.Number = manCont.Number // 员工工号
|
|||
perEduContFirst.Education = manCont.FirstEducation // 学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授)"`
|
|||
perEduContFirst.GraduationSchool = manCont.FirstGraduationSchool // 毕业学校"`
|
|||
perEduContFirst.Subject = manCont.FirstSubject // 专业"`
|
|||
entranceTimeFirst := time.Now().Unix() |
|||
if manCont.HighestAdmissionTime != "" { |
|||
entranceTimeFirst, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestAdmissionTime)) |
|||
} |
|||
perEduContFirst.AdmissionTime = entranceTimeFirst // 入学时间"`
|
|||
graduationTimef := time.Now().Unix() |
|||
if manCont.HighestGraduationTime != "" { |
|||
graduationTimef, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", manCont.HighestGraduationTime)) |
|||
} |
|||
perEduContFirst.GraduationTime = graduationTimef // 毕业时间"`
|
|||
perEduContFirst.Time = time.Now().Unix() // 写入时间"`
|
|||
perEduContFirst.AcademicDegree = manCont.FirstAcademicDegree |
|||
perEduContFirst.Level = 2 // 学历类型(1:普通;2:第一学历;3:最高学历)"`
|
|||
overall.CONSTANT_DB_HR.Create(&perEduContFirst) |
|||
} |
|||
} |
|||
} |
|||
|
|||
//编辑工作履历
|
|||
func editWorkHistoryMan(manKeyNum int64, num string, workHistoryList []workHistoryAry) { |
|||
defer synPro.Done() |
|||
if len(workHistoryList) > 0 && manKeyNum != 0 { |
|||
var oldWork []models.WorkHistory |
|||
oldWorkErr := overall.CONSTANT_DB_HR.Where("`key` = ?", manKeyNum).Find(&oldWork).Error |
|||
if oldWorkErr == nil { |
|||
for _, wvs := range workHistoryList { |
|||
var whCont models.WorkHistory |
|||
isEidtErr := whCont.GetCont(map[string]interface{}{"`key`": manKeyNum, "`company`": wvs.Company, "`deparment`": wvs.Department, "`job`": wvs.Position}, "id", "entry_time", "leavedate", "witness", "witness_tel", "remarks") |
|||
if isEidtErr == nil { |
|||
saveDate := overallhandle.MapOut() |
|||
if wvs.EntryTime != "" { //入职时间"`
|
|||
entryData, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", wvs.EntryTime)) |
|||
if entryData != whCont.EntryTime { |
|||
saveDate["entry_time"] = entryData |
|||
} |
|||
} |
|||
if wvs.LeaveDate != "" { //离职日期"`
|
|||
leaveTime, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", wvs.LeaveDate)) |
|||
if leaveTime != whCont.Leavedate { |
|||
saveDate["leavedate"] = leaveTime |
|||
} |
|||
} |
|||
if wvs.Witness != "" && wvs.Witness != whCont.Witness { |
|||
saveDate["witness"] = wvs.Witness |
|||
} |
|||
if wvs.WitnessTel != "" && wvs.WitnessTel != whCont.WitnessTel { |
|||
saveDate["witness_tel"] = wvs.WitnessTel |
|||
} |
|||
if wvs.Remarks != "" && wvs.Remarks != whCont.Remarks { |
|||
saveDate["remarks"] = wvs.Remarks |
|||
} |
|||
if len(saveDate) > 0 { |
|||
saveDate["time"] = time.Now().Unix() |
|||
saveDate["state"] = 1 |
|||
var eidtWorkHisCont models.WorkHistory |
|||
eidtWorkHisCont.EiteCont(map[string]interface{}{"`id`": whCont.Id}, saveDate) |
|||
} |
|||
} else { |
|||
var addWorkCont models.WorkHistory |
|||
addWorkCont.Number = num //工号"`
|
|||
addWorkCont.Key = manKeyNum //身份识别"`
|
|||
addWorkCont.Company = wvs.Company //公司"`
|
|||
addWorkCont.Deparment = wvs.Department //部门"`
|
|||
addWorkCont.Job = wvs.Position //职务"`
|
|||
entryData := time.Now().Unix() |
|||
if wvs.EntryTime != "" { |
|||
entryData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", wvs.EntryTime)) |
|||
} |
|||
addWorkCont.EntryTime = entryData //入职时间"`
|
|||
leaveTime := time.Now().Unix() |
|||
if wvs.LeaveDate != "" { |
|||
leaveTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", wvs.LeaveDate)) |
|||
} |
|||
addWorkCont.Leavedate = leaveTime //离职日期"`
|
|||
addWorkCont.Witness = wvs.Witness //证明人"`
|
|||
addWorkCont.WitnessTel = wvs.WitnessTel //证明人电话"`
|
|||
addWorkCont.Remarks = wvs.Remarks //备注"`
|
|||
addWorkCont.Time = time.Now().Unix() //创建时间"`
|
|||
addWorkCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|||
overall.CONSTANT_DB_HR.Create(&addWorkCont) |
|||
} |
|||
} |
|||
} else { |
|||
var addAllWork []models.WorkHistory |
|||
for _, v := range workHistoryList { |
|||
var addWorkCont models.WorkHistory |
|||
addWorkCont.Number = num //工号"`
|
|||
addWorkCont.Key = manKeyNum //身份识别"`
|
|||
addWorkCont.Company = v.Company //公司"`
|
|||
addWorkCont.Deparment = v.Department //部门"`
|
|||
addWorkCont.Job = v.Position //职务"`
|
|||
entryData := time.Now().Unix() |
|||
if v.EntryTime != "" { |
|||
entryData, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", v.EntryTime)) |
|||
} |
|||
addWorkCont.EntryTime = entryData //入职时间"`
|
|||
leaveTime := time.Now().Unix() |
|||
if v.LeaveDate != "" { |
|||
leaveTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", v.LeaveDate)) |
|||
} |
|||
addWorkCont.Leavedate = leaveTime //离职日期"`
|
|||
addWorkCont.Witness = v.Witness //证明人"`
|
|||
addWorkCont.WitnessTel = v.WitnessTel //证明人电话"`
|
|||
addWorkCont.Remarks = v.Remarks //备注"`
|
|||
addWorkCont.Time = time.Now().Unix() //创建时间"`
|
|||
addWorkCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|||
addAllWork = append(addAllWork, addWorkCont) |
|||
} |
|||
if len(addAllWork) > 0 { |
|||
overall.CONSTANT_DB_HR.Create(&addAllWork) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,449 @@ |
|||
package personnelapi |
|||
|
|||
import ( |
|||
"hr_server/models" |
|||
"hr_server/overall" |
|||
"hr_server/overall/overallhandle" |
|||
"strconv" |
|||
"strings" |
|||
"time" |
|||
|
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
//人员列表
|
|||
func (s *StaffApi) ArchivesList(c *gin.Context) { |
|||
var requestData peopleList |
|||
c.ShouldBindJSON(&requestData) |
|||
if requestData.Page < 0 { |
|||
requestData.Page = 1 |
|||
} |
|||
if requestData.PageSize < 0 { |
|||
requestData.PageSize = 10 |
|||
} |
|||
var staffList []models.ManCont |
|||
gormDb := overall.CONSTANT_DB_HR.Model(&models.ManCont{}).Where("state = 1") |
|||
|
|||
if requestData.Number != "" { |
|||
gormDb = gormDb.Where("number LIKE ?", "%"+requestData.Number+"%") |
|||
} |
|||
if requestData.Name != "" { |
|||
gormDb = gormDb.Where("name LIKE ?", "%"+requestData.Name+"%") |
|||
} |
|||
if requestData.HireClass != 0 { |
|||
gormDb = gormDb.Where("hire_class = ?", requestData.HireClass) |
|||
} |
|||
if requestData.Company != 0 { |
|||
gormDb = gormDb.Where("company = ?", requestData.Company) |
|||
} |
|||
if requestData.Deparment != "" { |
|||
gormDb = gormDb.Where("FIND_IN_SET(?,`deparment`)", requestData.Deparment) |
|||
} |
|||
if requestData.AdminOrg != 0 { |
|||
gormDb = gormDb.Where("admin_org = ?", requestData.AdminOrg) |
|||
} |
|||
if requestData.Position != 0 { |
|||
gormDb = gormDb.Where("position = ?", requestData.Position) |
|||
} |
|||
if requestData.EmpType != 0 { |
|||
gormDb = gormDb.Where("emp_type = ?", requestData.EmpType) |
|||
} else { |
|||
gormDb = gormDb.Where("emp_type IN ?", overall.EmployeeStatusIng) |
|||
} |
|||
if requestData.Role != "" { |
|||
gormDb = gormDb.Where("FIND_IN_SET(?,`role`)", requestData.Role) |
|||
} |
|||
|
|||
var total int64 |
|||
totalErr := gormDb.Count(&total).Error |
|||
if totalErr != nil { |
|||
total = 0 |
|||
} |
|||
errGorm := gormDb.Order("company ASC,maindeparment ASC,admin_org ASC,position ASC").Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&staffList).Error |
|||
var positionAry []peopleManOutList |
|||
|
|||
for _, v := range staffList { |
|||
var staffInfo peopleManOutList |
|||
staffInfo.ManCont = v |
|||
var getSpur models.Position |
|||
getWhe := overallhandle.MapOut() |
|||
getWhe["id"] = v.Position |
|||
getSpur.GetCont(getWhe, "name") |
|||
staffInfo.PositionName = getSpur.Name |
|||
staffInfo.KeyStr = strconv.FormatInt(v.Key, 10) |
|||
//公司
|
|||
var getSpurDepart models.AdministrativeOrganization |
|||
getWheDepart := overallhandle.MapOut() |
|||
getWheDepart["id"] = v.Company |
|||
getSpurDepart.GetCont(getWheDepart, "name") |
|||
staffInfo.CompanyName = getSpurDepart.Name |
|||
//主部门
|
|||
var getSpurDepartMain models.AdministrativeOrganization |
|||
getWheDepartMain := overallhandle.MapOut() |
|||
getWheDepartMain["id"] = v.MainDeparment |
|||
getSpurDepartMain.GetCont(getWheDepartMain, "name") |
|||
staffInfo.MainDeparmentName = getSpurDepartMain.Name |
|||
//获取部门
|
|||
departmentAry := strings.Split(v.Deparment, ",") |
|||
if len(departmentAry) > 0 { |
|||
var departCont []getDepartmentInfo |
|||
departErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("id,number,name").Where("`id` IN ?", departmentAry).Order("`organization_type` ASC").Find(&departCont).Error |
|||
|
|||
if departErr == nil { |
|||
var departNameAry []string |
|||
for _, d_v := range departCont { |
|||
departNameAry = append(departNameAry, d_v.Name) |
|||
} |
|||
if len(departNameAry) > 0 { |
|||
staffInfo.DeparmentName = strings.Join(departNameAry, " ") |
|||
} |
|||
} |
|||
} |
|||
positionAry = append(positionAry, staffInfo) |
|||
|
|||
} |
|||
if errGorm != nil { |
|||
overallhandle.Result(105, errGorm, c) |
|||
} else { |
|||
overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(positionAry)), positionAry, c) |
|||
} |
|||
} |
|||
|
|||
//获取单个人员档案
|
|||
//人员列表
|
|||
func (s *StaffApi) ArchivesCon(c *gin.Context) { |
|||
var requestData overallhandle.GetId |
|||
c.ShouldBindJSON(&requestData) |
|||
if requestData.IdStr == "" && requestData.Id == 0 { |
|||
overallhandle.Result(101, requestData, c) |
|||
return |
|||
} |
|||
if requestData.IdStr != "" { |
|||
idInt, idErr := strconv.ParseInt(requestData.IdStr, 10, 64) |
|||
if idErr == nil { |
|||
requestData.Id = idInt |
|||
} |
|||
} |
|||
var satffCont models.ManCont |
|||
staffErr := satffCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) |
|||
if staffErr != nil { |
|||
overallhandle.Result(105, staffErr, c) |
|||
return |
|||
} |
|||
var staffCenter staffArchivesCont |
|||
staffCenter.ManCont = satffCont |
|||
staffCenter.IdStr = strconv.FormatInt(satffCont.Id, 10) |
|||
staffCenter.BirthdayTime = overallhandle.UnixTimeToDay(satffCont.Birthday, 14) //生日
|
|||
staffCenter.IdCardStartTimeData = overallhandle.UnixTimeToDay(satffCont.Idcardstartdate, 14) //身份证有效期开始时间
|
|||
staffCenter.IdCardEndTimeData = overallhandle.UnixTimeToDay(satffCont.Idcardenddate, 14) //身份证有效期结束时间
|
|||
staffCenter.EntrydateTime = overallhandle.UnixTimeToDay(satffCont.Entrydate, 14) //入职日期
|
|||
staffCenter.PlanformaldateTime = overallhandle.UnixTimeToDay(satffCont.Planformaldate, 14) //预计转正日期
|
|||
//获取双职工信息
|
|||
synPro.Add(1) |
|||
go func() { |
|||
staffCenter.DoubleWorkerList = getDoubleWorkerCont(satffCont.Key) //双职工
|
|||
}() |
|||
//紧急联系人
|
|||
synPro.Add(1) |
|||
go func() { |
|||
staffCenter.EmergencyContact = getEmercyCallMan(satffCont.Key) //紧急联系人
|
|||
}() |
|||
//家庭成员
|
|||
synPro.Add(1) |
|||
go func() { |
|||
staffCenter.MemberOfFamily = getMemberOfFamily(satffCont.Key) //家庭成员
|
|||
}() |
|||
//教育经历
|
|||
synPro.Add(1) |
|||
go func() { |
|||
staffCenter.EducationalExperience = getEducationalExperience(satffCont.Key) //教育经历
|
|||
}() |
|||
//工作履历
|
|||
synPro.Add(1) |
|||
go func() { |
|||
staffCenter.WorkHistoryList = getWorkHistoryList(satffCont.Key) //工作履历
|
|||
}() |
|||
synPro.Wait() |
|||
overallhandle.Result(0, staffCenter, c) |
|||
return |
|||
} |
|||
|
|||
//获取双职工信息
|
|||
func getDoubleWorkerCont(key int64) (doubleworkerlist []DoubleWorkerCont) { |
|||
defer synPro.Done() |
|||
var dowWorkMan []models.DoubleWorker |
|||
err := overall.CONSTANT_DB_HR.Select("`id`", "`number`", "`name`", "`company`", "`department`", "`position`", "`tel`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error |
|||
if err == nil { |
|||
|
|||
for _, v := range dowWorkMan { |
|||
var dwManCont DoubleWorkerCont |
|||
dwManCont.Id = strconv.FormatInt(v.Id, 10) |
|||
dwManCont.Number = v.Number //工号
|
|||
dwManCont.Name = v.Name //姓名
|
|||
dwManCont.Company = v.Company //公司
|
|||
dwManCont.Department = v.Department //分厂(部室)
|
|||
dwManCont.Position = v.Position //职位(岗位)
|
|||
dwManCont.Mobilephone = v.Tel //联系电话
|
|||
doubleworkerlist = append(doubleworkerlist, dwManCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
//紧急联系人
|
|||
func getEmercyCallMan(key int64) (callMan []emergencyContact) { |
|||
defer synPro.Done() |
|||
var dowWorkMan []models.EmergencyContact |
|||
err := overall.CONSTANT_DB_HR.Select("`id`", "`name`", "`relationship`", "`tel`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error |
|||
if err == nil { |
|||
|
|||
for _, v := range dowWorkMan { |
|||
var dwManCont emergencyContact //
|
|||
dwManCont.Id = strconv.FormatInt(v.Id, 10) |
|||
dwManCont.Name = v.Name //姓名
|
|||
dwManCont.Relationship = v.Relationship //与紧急联系人
|
|||
dwManCont.Mobilephone = v.Tel //联系电话
|
|||
callMan = append(callMan, dwManCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
//获取家庭成员
|
|||
func getMemberOfFamily(key int64) (callMan []memberOfFamily) { |
|||
defer synPro.Done() |
|||
var dowWorkMan []models.FamilyMembers |
|||
err := overall.CONSTANT_DB_HR.Select("`id`", "`name`", "`relation`", "`company`", "`deparment`", "`postnme`", "`tel`,`political_outlook`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error |
|||
if err == nil { |
|||
for _, v := range dowWorkMan { |
|||
var dwManCont memberOfFamily //工号
|
|||
dwManCont.Name = v.Name //姓名
|
|||
dwManCont.Relationship = v.Relationship //与紧急联系人
|
|||
dwManCont.Mobilephone = v.Tel //联系电话
|
|||
dwManCont.Company = v.Company //公司
|
|||
dwManCont.Department = v.Deparment //分厂(部室)
|
|||
dwManCont.Position = v.Postnme //职位(岗位)
|
|||
dwManCont.PoliticalOutlook = v.PoliticalOutlook //政治面貌
|
|||
dwManCont.IdStr = strconv.FormatInt(v.Id, 10) |
|||
callMan = append(callMan, dwManCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
//获取教育经历
|
|||
func getEducationalExperience(key int64) (callMan []educatExp) { |
|||
defer synPro.Done() |
|||
var dowWorkMan []models.PersonnelEducation |
|||
err := overall.CONSTANT_DB_HR.Select("`id`", "`education`", "`graduation_school`", "`subject`", "`admission_time`", "`graduation_time`", "`level`,`academic_degree`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error |
|||
if err == nil { |
|||
for _, v := range dowWorkMan { |
|||
var dwManCont educatExp //
|
|||
dwManCont.GraduationSchool = v.GraduationSchool //毕业学校
|
|||
dwManCont.Subject = v.Subject //专业
|
|||
dwManCont.Education = v.Education //学历
|
|||
dwManCont.AdmissionTime = overallhandle.UnixTimeToDay(v.AdmissionTime, 14) //入学时间
|
|||
dwManCont.GraduationTime = overallhandle.UnixTimeToDay(v.GraduationTime, 14) //毕业时间
|
|||
dwManCont.AcademicDegree = getXueWei(v.AcademicDegree) //学位
|
|||
dwManCont.AcademicDegreeId = v.AcademicDegree |
|||
dwManCont.Level = getXueWeiClass(v.Level) |
|||
dwManCont.LevelId = v.Level //学历类型
|
|||
dwManCont.Id = strconv.FormatInt(v.Id, 10) |
|||
callMan = append(callMan, dwManCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
//学位
|
|||
func getXueWei(id int) string { |
|||
switch id { |
|||
case 1: |
|||
return "无" |
|||
case 2: |
|||
return "学士" |
|||
case 3: |
|||
return "硕士" |
|||
case 4: |
|||
return "博士" |
|||
default: |
|||
return "无" |
|||
} |
|||
return "无" |
|||
} |
|||
|
|||
//学历类型
|
|||
func getXueWeiClass(id int) string { |
|||
switch id { |
|||
case 2: |
|||
return "第一学历" |
|||
case 3: |
|||
return "最高学历" |
|||
default: |
|||
return "普通" |
|||
} |
|||
return "普通" |
|||
} |
|||
|
|||
//工作履历
|
|||
func getWorkHistoryList(key int64) (workHisList []workHistoryAry) { |
|||
defer synPro.Done() |
|||
var workHisContList []models.WorkHistory |
|||
workHisContListErr := overall.CONSTANT_DB_HR.Where("`state` = 1 AND `key` = ?", key).Find(&workHisContList).Error |
|||
if workHisContListErr == nil { |
|||
for _, v := range workHisContList { |
|||
var workCont workHistoryAry |
|||
workCont.Company = v.Company //公司
|
|||
workCont.Department = v.Deparment //部门
|
|||
workCont.Position = v.Job //职务
|
|||
workCont.EntryTime = overallhandle.UnixTimeToDay(v.EntryTime, 14) //入职时间
|
|||
workCont.LeaveDate = overallhandle.UnixTimeToDay(v.Leavedate, 14) //离职日期
|
|||
workCont.Witness = v.Witness //证明人
|
|||
workCont.WitnessTel = v.WitnessTel //证明人电话
|
|||
workCont.Remarks = v.Remarks //备注
|
|||
workHisList = append(workHisList, workCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
//添加双职工
|
|||
func (s *StaffApi) AddDoubleWorkerApi(c *gin.Context) { |
|||
var requestData DoubleWorkerCont |
|||
c.ShouldBindJSON(&requestData) |
|||
// if err != nil {
|
|||
// overallhandle.Result(100, err, c)
|
|||
// return
|
|||
// }
|
|||
if requestData.Id == "" { |
|||
overallhandle.Result(101, requestData.Id, c, "参数错误") |
|||
return |
|||
} |
|||
if requestData.Name == "" { |
|||
overallhandle.Result(101, requestData.Name, c, "请输入姓名") |
|||
return |
|||
} |
|||
if requestData.Mobilephone == "" { |
|||
overallhandle.Result(101, requestData.Mobilephone, c, "请输入联系方式") |
|||
return |
|||
} |
|||
var manCont models.PersonArchives |
|||
manCont.GetCont(map[string]interface{}{"`key`": requestData.Id}, "`number`") |
|||
var doubleWorkInfo models.DoubleWorker |
|||
doubleWorkInfo.Number = manCont.Number |
|||
doubleWorkInfo.Name = requestData.Name |
|||
doubleWorkInfo.Company = requestData.Company |
|||
doubleWorkInfo.Department = requestData.Department |
|||
doubleWorkInfo.Position = requestData.Position |
|||
doubleWorkInfo.Tel = requestData.Mobilephone |
|||
doubleWorkInfo.Time = time.Now().Unix() |
|||
doubleWorkInfo.State = 1 |
|||
keyInt, _ := strconv.ParseInt(requestData.Id, 10, 64) |
|||
doubleWorkInfo.Key = keyInt |
|||
addErr := overall.CONSTANT_DB_HR.Create(&doubleWorkInfo).Error |
|||
if addErr != nil { |
|||
overallhandle.Result(104, addErr, c) |
|||
return |
|||
} |
|||
overallhandle.Result(0, addErr, c) |
|||
} |
|||
|
|||
//编辑双职工
|
|||
func (s *StaffApi) EidtDoubleWorkerApi(c *gin.Context) { |
|||
var requestData DoubleWorkerCont |
|||
c.ShouldBindJSON(&requestData) |
|||
// if err != nil {
|
|||
// overallhandle.Result(100, err, c)
|
|||
// return
|
|||
// }
|
|||
if requestData.Id == "" { |
|||
overallhandle.Result(101, requestData.Id, c) |
|||
return |
|||
} |
|||
var doubleWorkCont models.DoubleWorker |
|||
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) |
|||
if wErr != nil { |
|||
overallhandle.Result(107, requestData.Id, c) |
|||
return |
|||
} |
|||
saveData := overallhandle.MapOut() |
|||
if requestData.Name != "" && requestData.Name != doubleWorkCont.Name { |
|||
saveData["name"] = requestData.Name |
|||
} |
|||
if requestData.Company != "" && requestData.Company != doubleWorkCont.Company { |
|||
saveData["company"] = requestData.Company |
|||
} |
|||
if requestData.Department != "" && requestData.Department != doubleWorkCont.Department { |
|||
saveData["department"] = requestData.Department |
|||
} |
|||
if requestData.Position != "" && requestData.Position != doubleWorkCont.Position { |
|||
saveData["position"] = requestData.Position |
|||
} |
|||
|
|||
if requestData.Mobilephone != "" && requestData.Mobilephone != doubleWorkCont.Tel { |
|||
saveData["tel"] = requestData.Mobilephone |
|||
} |
|||
if len(saveData) > 0 { |
|||
saveData["time"] = time.Now().Unix() |
|||
var eidtCont models.DoubleWorker |
|||
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) |
|||
if eidtErr == nil { |
|||
overallhandle.Result(0, saveData, c) |
|||
} else { |
|||
overallhandle.Result(106, eidtErr, c) |
|||
} |
|||
} else { |
|||
overallhandle.Result(0, saveData, c) |
|||
} |
|||
} |
|||
|
|||
//编辑双职工状态
|
|||
func (s *StaffApi) EidtDoubleWorkerState(c *gin.Context) { |
|||
var requestData eidtWorkState |
|||
c.ShouldBindJSON(&requestData) |
|||
if requestData.Id == "" { |
|||
overallhandle.Result(101, requestData.Id, c) |
|||
return |
|||
} |
|||
var doubleWorkCont models.DoubleWorker |
|||
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) |
|||
if wErr != nil { |
|||
overallhandle.Result(107, requestData.Id, c) |
|||
return |
|||
} |
|||
if requestData.State == 0 { |
|||
requestData.State = 1 |
|||
} |
|||
if requestData.IsDel <= 1 { |
|||
saveData := overallhandle.MapOut() |
|||
saveData["time"] = time.Now().Unix() |
|||
saveData["state"] = requestData.State |
|||
var eidtCont models.DoubleWorker |
|||
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) |
|||
if eidtErr == nil { |
|||
overallhandle.Result(0, saveData, c) |
|||
} else { |
|||
overallhandle.Result(106, eidtErr, c) |
|||
} |
|||
} else { |
|||
if requestData.State == 3 { |
|||
delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.DoubleWorker{}).Error |
|||
if delErr == nil { |
|||
overallhandle.Result(0, delErr, c) |
|||
} else { |
|||
overallhandle.Result(108, delErr, c) |
|||
} |
|||
} else { |
|||
saveData := overallhandle.MapOut() |
|||
saveData["time"] = time.Now().Unix() |
|||
saveData["state"] = requestData.State |
|||
var eidtCont models.DoubleWorker |
|||
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) |
|||
if eidtErr == nil { |
|||
overallhandle.Result(0, saveData, c) |
|||
} else { |
|||
overallhandle.Result(106, eidtErr, c) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Binary file not shown.
@ -1,149 +0,0 @@ |
|||
[Info] 2022/06/02 15:40:59 [[{{ArIAAAAERv73eoRQ 高管} } {{ArIAAAAERwP3eoRQ 中层正职} } {{ArIAAAAERwb3eoRQ 中层副职} } {{ArIAAAAERwn3eoRQ 中层助理} } {{ArIAAAAERwz3eoRQ 基层管理} } {{ArIAAAAERw/3eoRQ 执行人员} } {{ArIAAAAERxL3eoRQ 临时工} } {{ArIAAAAER/X3eoRQ 测试} }]] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {1 高管 1654155659 1 ArIAAAAERv73eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {2 中层正职 1654155659 1 ArIAAAAERwP3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {3 中层副职 1654155659 1 ArIAAAAERwb3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {4 中层助理 1654155659 1 ArIAAAAERwn3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {5 基层管理 1654155659 1 ArIAAAAERwz3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {6 执行人员 1654155659 1 ArIAAAAERw/3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {7 临时工 1654155659 1 ArIAAAAERxL3eoRQ }] |
|||
[Add] 2022/06/02 15:40:59 [职务类型写入成功! <nil> {8 测试 1654155659 1 ArIAAAAER/X3eoRQ }] |
|||
[Info] 2022/06/02 15:41:39 [[{{ArIAAAAERv73eoRQ 高管} } {{ArIAAAAERwP3eoRQ 中层正职} } {{ArIAAAAERwb3eoRQ 中层副职} } {{ArIAAAAERwn3eoRQ 中层助理} } {{ArIAAAAERwz3eoRQ 基层管理} } {{ArIAAAAERw/3eoRQ 执行人员} } {{ArIAAAAERxL3eoRQ 临时工} } {{ArIAAAAER/X3eoRQ 测试} }]] |
|||
[Info] 2022/06/02 16:21:53 [[{{{ArIAAAAEOuW4hF0d 生产操作工} 56} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOt+4hF0d 仪表工} 54} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuK4hF0d 临时工} 55} ArIAAAAERxL3eoRQ} {{{ArIAAAAEOui4hF0d 组长} 57} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuu4hF0d 技工} 58} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOu64hF0d 保卫班长} 59} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOvG4hF0d 帮厨} 60} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvS4hF0d 保洁员} 61} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOve4hF0d 业务员} 62} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvq4hF0d 技术员助理} 63} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOjq4hF0d 董事长} 001} ArIAAAAERv73eoRQ} {{{ArIAAAAEOj24hF0d 副董事长} 002} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkC4hF0d 总经理} 01} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkO4hF0d 第一副总经理} 02} ArIAAAAERv73eoRQ} {{{ArIAAAAEOka4hF0d 常务副总经理} 03} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkm4hF0d 副总经理} 04} ArIAAAAERv73eoRQ} {{{ArIAAAAEOky4hF0d 总工程师} 05} ArIAAAAERv73eoRQ} {{{ArIAAAAEOk+4hF0d 总经济师} 06} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlK4hF0d 财务总监} 07} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlW4hF0d 总经理助理} 08} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOli4hF0d 副总工程师} 09} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOlu4hF0d 厂长} 10} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOl64hF0d 部长} 11} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmG4hF0d 主任} 12} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmS4hF0d 副厂长} 13} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOme4hF0d 副部长} 14} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOmq4hF0d 副主任} 15} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOm24hF0d 厂长助理} 16} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnC4hF0d 部长助理} 17} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnO4hF0d 主任助理} 18} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOna4hF0d 主管工程师} 19} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnm4hF0d 车间主任} 20} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOny4hF0d 车间副主任} 21} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOn+4hF0d 科长} 22} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoK4hF0d 炉长} 23} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoW4hF0d 主管} 24} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoi4hF0d 三大员} 25} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOou4hF0d 值长} 26} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOo64hF0d 副值长} 27} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpG4hF0d 工段长} 28} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpS4hF0d 班长} 29} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpe4hF0d 副班长} 30} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpq4hF0d 车队队长} 31} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOp24hF0d 车队副队长} 32} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqC4hF0d 车队副班长} 33} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqO4hF0d 保卫队长} 34} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqa4hF0d 保卫副队长} 35} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqm4hF0d 专工} 36} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqy4hF0d 技术人员} 37} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOq+4hF0d 技师} 38} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrK4hF0d 维修工} 39} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrW4hF0d 科员} 40} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOri4hF0d 队员} 41} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOru4hF0d 小车司机} 42} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOr64hF0d 厨师} 43} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsG4hF0d 面点师} 44} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsS4hF0d 服务员} 45} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOse4hF0d 主操} 46} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsq4hF0d 副操} 47} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOs24hF0d 工程车司机} 48} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtC4hF0d 管理员} 49} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtO4hF0d 电工} 50} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOta4hF0d 化验员} 51} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtm4hF0d 计量员} 52} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOty4hF0d 采样工} 53} ArIAAAAERw/3eoRQ}]] |
|||
[Info] 2022/06/02 16:25:52 [[{{{ArIAAAAEOuW4hF0d 生产操作工} 56} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOt+4hF0d 仪表工} 54} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuK4hF0d 临时工} 55} ArIAAAAERxL3eoRQ} {{{ArIAAAAEOui4hF0d 组长} 57} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuu4hF0d 技工} 58} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOu64hF0d 保卫班长} 59} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOvG4hF0d 帮厨} 60} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvS4hF0d 保洁员} 61} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOve4hF0d 业务员} 62} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvq4hF0d 技术员助理} 63} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOjq4hF0d 董事长} 001} ArIAAAAERv73eoRQ} {{{ArIAAAAEOj24hF0d 副董事长} 002} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkC4hF0d 总经理} 01} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkO4hF0d 第一副总经理} 02} ArIAAAAERv73eoRQ} {{{ArIAAAAEOka4hF0d 常务副总经理} 03} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkm4hF0d 副总经理} 04} ArIAAAAERv73eoRQ} {{{ArIAAAAEOky4hF0d 总工程师} 05} ArIAAAAERv73eoRQ} {{{ArIAAAAEOk+4hF0d 总经济师} 06} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlK4hF0d 财务总监} 07} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlW4hF0d 总经理助理} 08} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOli4hF0d 副总工程师} 09} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOlu4hF0d 厂长} 10} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOl64hF0d 部长} 11} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmG4hF0d 主任} 12} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmS4hF0d 副厂长} 13} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOme4hF0d 副部长} 14} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOmq4hF0d 副主任} 15} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOm24hF0d 厂长助理} 16} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnC4hF0d 部长助理} 17} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnO4hF0d 主任助理} 18} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOna4hF0d 主管工程师} 19} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnm4hF0d 车间主任} 20} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOny4hF0d 车间副主任} 21} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOn+4hF0d 科长} 22} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoK4hF0d 炉长} 23} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoW4hF0d 主管} 24} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoi4hF0d 三大员} 25} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOou4hF0d 值长} 26} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOo64hF0d 副值长} 27} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpG4hF0d 工段长} 28} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpS4hF0d 班长} 29} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpe4hF0d 副班长} 30} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpq4hF0d 车队队长} 31} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOp24hF0d 车队副队长} 32} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqC4hF0d 车队副班长} 33} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqO4hF0d 保卫队长} 34} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqa4hF0d 保卫副队长} 35} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqm4hF0d 专工} 36} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqy4hF0d 技术人员} 37} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOq+4hF0d 技师} 38} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrK4hF0d 维修工} 39} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrW4hF0d 科员} 40} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOri4hF0d 队员} 41} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOru4hF0d 小车司机} 42} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOr64hF0d 厨师} 43} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsG4hF0d 面点师} 44} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsS4hF0d 服务员} 45} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOse4hF0d 主操} 46} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsq4hF0d 副操} 47} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOs24hF0d 工程车司机} 48} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtC4hF0d 管理员} 49} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtO4hF0d 电工} 50} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOta4hF0d 化验员} 51} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtm4hF0d 计量员} 52} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOty4hF0d 采样工} 53} ArIAAAAERw/3eoRQ}]] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {1 生产操作工 6 2 1654158352 ZW202204100003 1 ArIAAAAEOuW4hF0d 56}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {2 仪表工 6 2 1654158352 ZW20220410002 1 ArIAAAAEOt+4hF0d 54}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {3 临时工 7 1 1654158352 ZW202204110063 1 ArIAAAAEOuK4hF0d 55}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {4 组长 6 2 1654158352 ZW202204100021 1 ArIAAAAEOui4hF0d 57}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {5 技工 6 2 1654158352 ZW202204100002 1 ArIAAAAEOuu4hF0d 58}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {6 保卫班长 5 3 1654158352 ZW202204100026 1 ArIAAAAEOu64hF0d 59}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {7 帮厨 6 2 1654158352 ZW202204100022 1 ArIAAAAEOvG4hF0d 60}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {8 保洁员 6 2 1654158352 ZW202204100023 1 ArIAAAAEOvS4hF0d 61}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {9 业务员 6 2 1654158352 ZW202204100024 1 ArIAAAAEOve4hF0d 62}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {10 技术员助理 6 2 1654158352 ZW202204100025 1 ArIAAAAEOvq4hF0d 63}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {11 董事长 1 23 1654158352 ZW202204110062 1 ArIAAAAEOjq4hF0d 001}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {12 副董事长 1 22 1654158352 ZW202204110061 1 ArIAAAAEOj24hF0d 002}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {13 总经理 1 21 1654158352 ZW20220411006 1 ArIAAAAEOkC4hF0d 01}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {14 第一副总经理 1 20 1654158352 ZW202204110059 1 ArIAAAAEOkO4hF0d 02}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {15 常务副总经理 1 19 1654158352 ZW202204110058 1 ArIAAAAEOka4hF0d 03}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {16 副总经理 1 18 1654158352 ZW202204110057 1 ArIAAAAEOkm4hF0d 04}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {17 总工程师 1 17 1654158352 ZW202204110056 1 ArIAAAAEOky4hF0d 05}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {18 总经济师 1 16 1654158352 ZW202204110055 1 ArIAAAAEOk+4hF0d 06}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {19 财务总监 1 15 1654158352 ZW202204110054 1 ArIAAAAEOlK4hF0d 07}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {20 总经理助理 2 14 1654158352 ZW202204110053 1 ArIAAAAEOlW4hF0d 08}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {21 副总工程师 2 13 1654158352 ZW202204110052 1 ArIAAAAEOli4hF0d 09}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {22 厂长 2 12 1654158352 ZW202204110051 1 ArIAAAAEOlu4hF0d 10}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {23 部长 2 12 1654158352 ZW20220411005 1 ArIAAAAEOl64hF0d 11}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {24 主任 2 12 1654158352 ZW202204110049 1 ArIAAAAEOmG4hF0d 12}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {25 副厂长 3 11 1654158352 ZW202204110047 1 ArIAAAAEOmS4hF0d 13}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {26 副部长 3 11 1654158352 ZW202204110046 1 ArIAAAAEOme4hF0d 14}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {27 副主任 3 11 1654158352 ZW202204110045 1 ArIAAAAEOmq4hF0d 15}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {28 厂长助理 4 10 1654158352 ZW202204110044 1 ArIAAAAEOm24hF0d 16}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {29 部长助理 4 10 1654158352 ZW202204110043 1 ArIAAAAEOnC4hF0d 17}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {30 主任助理 4 10 1654158352 ZW202204110042 1 ArIAAAAEOnO4hF0d 18}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {31 主管工程师 4 10 1654158352 ZW202204110041 1 ArIAAAAEOna4hF0d 19}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {32 车间主任 4 10 1654158352 ZW202204110048 1 ArIAAAAEOnm4hF0d 20}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {33 车间副主任 4 10 1654158352 ZW20220411004 1 ArIAAAAEOny4hF0d 21}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {34 科长 5 9 1654158352 ZW202204100039 1 ArIAAAAEOn+4hF0d 22}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {35 炉长 5 4 1654158352 ZW202204100038 1 ArIAAAAEOoK4hF0d 23}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {36 主管 5 8 1654158352 ZW202204100037 1 ArIAAAAEOoW4hF0d 24}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {37 三大员 5 7 1654158352 ZW202204100036 1 ArIAAAAEOoi4hF0d 25}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {38 值长 5 6 1654158352 ZW202204100035 1 ArIAAAAEOou4hF0d 26}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {39 副值长 5 5 1654158352 ZW202204100034 1 ArIAAAAEOo64hF0d 27}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {40 工段长 5 4 1654158352 ZW202204100033 1 ArIAAAAEOpG4hF0d 28}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {41 班长 5 3 1654158352 ZW202204100032 1 ArIAAAAEOpS4hF0d 29}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {42 副班长 5 3 1654158352 ZW202204100031 1 ArIAAAAEOpe4hF0d 30}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {43 车队队长 5 3 1654158352 ZW20220410003 1 ArIAAAAEOpq4hF0d 31}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {44 车队副队长 5 3 1654158352 ZW202204100029 1 ArIAAAAEOp24hF0d 32}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {45 车队副班长 5 1 1654158352 1 ArIAAAAEOqC4hF0d 33}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {46 保卫队长 5 3 1654158352 ZW202204100028 1 ArIAAAAEOqO4hF0d 34}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {47 保卫副队长 5 3 1654158352 ZW202204100027 1 ArIAAAAEOqa4hF0d 35}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {48 专工 5 6 1654158352 ZW202204190066 1 ArIAAAAEOqm4hF0d 36}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {49 技术人员 5 6 1654158352 ZW202204190067 1 ArIAAAAEOqy4hF0d 37}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {50 技师 6 2 1654158352 ZW202204100004 1 ArIAAAAEOq+4hF0d 38}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {51 维修工 6 2 1654158352 ZW202204100005 1 ArIAAAAEOrK4hF0d 39}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {52 科员 6 2 1654158352 ZW202204100006 1 ArIAAAAEOrW4hF0d 40}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {53 队员 6 2 1654158352 ZW202204100007 1 ArIAAAAEOri4hF0d 41}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {54 小车司机 6 2 1654158352 ZW202204100008 1 ArIAAAAEOru4hF0d 42}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {55 厨师 6 2 1654158352 ZW202204100009 1 ArIAAAAEOr64hF0d 43}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {56 面点师 6 2 1654158352 ZW20220410001 1 ArIAAAAEOsG4hF0d 44}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {57 服务员 6 2 1654158352 ZW202204100011 1 ArIAAAAEOsS4hF0d 45}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {58 主操 6 2 1654158352 ZW202204100012 1 ArIAAAAEOse4hF0d 46}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {59 副操 6 2 1654158352 ZW202204100013 1 ArIAAAAEOsq4hF0d 47}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {60 工程车司机 6 2 1654158352 ZW202204100014 1 ArIAAAAEOs24hF0d 48}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {61 管理员 6 2 1654158352 ZW202204100015 1 ArIAAAAEOtC4hF0d 49}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {62 电工 6 2 1654158352 ZW202204100016 1 ArIAAAAEOtO4hF0d 50}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {63 化验员 6 2 1654158352 ZW202204100017 1 ArIAAAAEOta4hF0d 51}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {64 计量员 6 2 1654158352 ZW202204100018 1 ArIAAAAEOtm4hF0d 52}] |
|||
[Add] 2022/06/02 16:25:52 [职务写入成功! <nil> {65 采样工 6 2 1654158352 ZW202204100019 1 ArIAAAAEOty4hF0d 53}] |
|||
[Info] 2022/06/02 16:28:33 [[{{{ArIAAAAEOuW4hF0d 生产操作工} 56} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOt+4hF0d 仪表工} 54} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuK4hF0d 临时工} 55} ArIAAAAERxL3eoRQ} {{{ArIAAAAEOui4hF0d 组长} 57} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOuu4hF0d 技工} 58} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOu64hF0d 保卫班长} 59} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOvG4hF0d 帮厨} 60} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvS4hF0d 保洁员} 61} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOve4hF0d 业务员} 62} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOvq4hF0d 技术员助理} 63} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOjq4hF0d 董事长} 001} ArIAAAAERv73eoRQ} {{{ArIAAAAEOj24hF0d 副董事长} 002} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkC4hF0d 总经理} 01} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkO4hF0d 第一副总经理} 02} ArIAAAAERv73eoRQ} {{{ArIAAAAEOka4hF0d 常务副总经理} 03} ArIAAAAERv73eoRQ} {{{ArIAAAAEOkm4hF0d 副总经理} 04} ArIAAAAERv73eoRQ} {{{ArIAAAAEOky4hF0d 总工程师} 05} ArIAAAAERv73eoRQ} {{{ArIAAAAEOk+4hF0d 总经济师} 06} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlK4hF0d 财务总监} 07} ArIAAAAERv73eoRQ} {{{ArIAAAAEOlW4hF0d 总经理助理} 08} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOli4hF0d 副总工程师} 09} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOlu4hF0d 厂长} 10} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOl64hF0d 部长} 11} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmG4hF0d 主任} 12} ArIAAAAERwP3eoRQ} {{{ArIAAAAEOmS4hF0d 副厂长} 13} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOme4hF0d 副部长} 14} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOmq4hF0d 副主任} 15} ArIAAAAERwb3eoRQ} {{{ArIAAAAEOm24hF0d 厂长助理} 16} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnC4hF0d 部长助理} 17} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnO4hF0d 主任助理} 18} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOna4hF0d 主管工程师} 19} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOnm4hF0d 车间主任} 20} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOny4hF0d 车间副主任} 21} ArIAAAAERwn3eoRQ} {{{ArIAAAAEOn+4hF0d 科长} 22} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoK4hF0d 炉长} 23} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoW4hF0d 主管} 24} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOoi4hF0d 三大员} 25} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOou4hF0d 值长} 26} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOo64hF0d 副值长} 27} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpG4hF0d 工段长} 28} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpS4hF0d 班长} 29} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpe4hF0d 副班长} 30} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOpq4hF0d 车队队长} 31} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOp24hF0d 车队副队长} 32} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqC4hF0d 车队副班长} 33} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqO4hF0d 保卫队长} 34} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqa4hF0d 保卫副队长} 35} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqm4hF0d 专工} 36} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOqy4hF0d 技术人员} 37} ArIAAAAERwz3eoRQ} {{{ArIAAAAEOq+4hF0d 技师} 38} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrK4hF0d 维修工} 39} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOrW4hF0d 科员} 40} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOri4hF0d 队员} 41} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOru4hF0d 小车司机} 42} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOr64hF0d 厨师} 43} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsG4hF0d 面点师} 44} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsS4hF0d 服务员} 45} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOse4hF0d 主操} 46} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOsq4hF0d 副操} 47} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOs24hF0d 工程车司机} 48} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtC4hF0d 管理员} 49} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtO4hF0d 电工} 50} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOta4hF0d 化验员} 51} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOtm4hF0d 计量员} 52} ArIAAAAERw/3eoRQ} {{{ArIAAAAEOty4hF0d 采样工} 53} ArIAAAAERw/3eoRQ}]] |
|||
[Add] 2022/06/02 16:28:33 [职务写入成功! <nil> {66 生产操作工 6 1 1654158513 1 ArIAAAAEOuW4hF0d 56}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOt+4hF0d 仪表工} 54} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOuK4hF0d 临时工} 55} ArIAAAAERxL3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOui4hF0d 组长} 57} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOuu4hF0d 技工} 58} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOu64hF0d 保卫班长} 59} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOvG4hF0d 帮厨} 60} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOvS4hF0d 保洁员} 61} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOve4hF0d 业务员} 62} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOvq4hF0d 技术员助理} 63} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOjq4hF0d 董事长} 001} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOj24hF0d 副董事长} 002} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOkC4hF0d 总经理} 01} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOkO4hF0d 第一副总经理} 02} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOka4hF0d 常务副总经理} 03} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOkm4hF0d 副总经理} 04} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOky4hF0d 总工程师} 05} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOk+4hF0d 总经济师} 06} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOlK4hF0d 财务总监} 07} ArIAAAAERv73eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOlW4hF0d 总经理助理} 08} ArIAAAAERwP3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOli4hF0d 副总工程师} 09} ArIAAAAERwP3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOlu4hF0d 厂长} 10} ArIAAAAERwP3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOl64hF0d 部长} 11} ArIAAAAERwP3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOmG4hF0d 主任} 12} ArIAAAAERwP3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOmS4hF0d 副厂长} 13} ArIAAAAERwb3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOme4hF0d 副部长} 14} ArIAAAAERwb3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOmq4hF0d 副主任} 15} ArIAAAAERwb3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOm24hF0d 厂长助理} 16} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOnC4hF0d 部长助理} 17} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOnO4hF0d 主任助理} 18} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOna4hF0d 主管工程师} 19} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOnm4hF0d 车间主任} 20} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOny4hF0d 车间副主任} 21} ArIAAAAERwn3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOn+4hF0d 科长} 22} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOoK4hF0d 炉长} 23} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOoW4hF0d 主管} 24} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOoi4hF0d 三大员} 25} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOou4hF0d 值长} 26} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOo64hF0d 副值长} 27} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOpG4hF0d 工段长} 28} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOpS4hF0d 班长} 29} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOpe4hF0d 副班长} 30} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOpq4hF0d 车队队长} 31} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOp24hF0d 车队副队长} 32} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOqC4hF0d 车队副班长} 33} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOqO4hF0d 保卫队长} 34} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOqa4hF0d 保卫副队长} 35} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOqm4hF0d 专工} 36} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOqy4hF0d 技术人员} 37} ArIAAAAERwz3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOq+4hF0d 技师} 38} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOrK4hF0d 维修工} 39} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOrW4hF0d 科员} 40} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOri4hF0d 队员} 41} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOru4hF0d 小车司机} 42} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOr64hF0d 厨师} 43} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOsG4hF0d 面点师} 44} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOsS4hF0d 服务员} 45} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOse4hF0d 主操} 46} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOsq4hF0d 副操} 47} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOs24hF0d 工程车司机} 48} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOtC4hF0d 管理员} 49} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOtO4hF0d 电工} 50} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOta4hF0d 化验员} 51} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOtm4hF0d 计量员} 52} ArIAAAAERw/3eoRQ}] |
|||
[Edit] 2022/06/02 16:28:33 [职务更新成功! <nil> {{{ArIAAAAEOty4hF0d 采样工} 53} ArIAAAAERw/3eoRQ}] |
|||
[Trace] 2022/06/02 22:30:00 [开始执行行政组织类型对照] |
|||
[Info] 2022/06/02 22:30:00 [[{00000000-0000-0000-0000-00000000000162824988 集团} {00000000-0000-0000-0000-00000000000262824988 公司} {00000000-0000-0000-0000-00000000000362824988 部门} {ArIAAAAENi5igkmI 集团本部} {ArIAAAAENjFigkmI 二级部门} {ArIAAAAEPtpigkmI 车间} {ArIAAAAENitigkmI 子集团} {ArIAAAAENjRigkmI 工段}]] |
|||
[Trace] 2022/06/02 22:30:00 [结束执行行政组织类型对照] |
|||
[Trace] 2022/06/02 22:30:00 [开始执行职务类型对照] |
|||
[Info] 2022/06/02 22:30:00 [[{{ArIAAAAERv73eoRQ 高管} } {{ArIAAAAERwP3eoRQ 中层正职} } {{ArIAAAAERwb3eoRQ 中层副职} } {{ArIAAAAERwn3eoRQ 中层助理} } {{ArIAAAAERwz3eoRQ 基层管理} } {{ArIAAAAERw/3eoRQ 执行人员} } {{ArIAAAAERxL3eoRQ 临时工} } {{ArIAAAAER/X3eoRQ 测试} }]] |
|||
[Trace] 2022/06/02 22:30:00 [结束执行职务类型对照] |
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,74 @@ |
|||
package models |
|||
|
|||
import ( |
|||
"hr_server/overall" |
|||
"strings" |
|||
) |
|||
|
|||
type ManCont struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:ID"` |
|||
Number string `json:"number" gorm:"column:number;type:varchar(30) unsigned;not null;comment:员工工号"` |
|||
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:姓名"` |
|||
Icon string `json:"icon" gorm:"column:icon;type:varchar(255) unsigned;default:'';not null;comment:头像"` |
|||
HireClass int `json:"hireclass" gorm:"column:hire_class;type:tinyint(1) unsigned;default:1;not null;comment:雇佣类型(1:雇佣入职;2:再入职;)"` |
|||
EmpType int `json:"emptype" gorm:"column:emp_type;type:tinyint(1) unsigned;default:1;not null;comment:用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职)"` |
|||
Company int64 `json:"company" gorm:"column:company;type:bigint(20) unsigned;default:0;not null;comment:入职公司"` |
|||
MainDeparment int64 `json:"maindeparment" gorm:"column:maindeparment;type:bigint(20) unsigned;default:0;not null;comment:主部门"` |
|||
Deparment string `json:"deparment" gorm:"column:deparment;type:text;comment:部门"` |
|||
AdminOrg int64 `json:"adminorg" gorm:"column:admin_org;type:bigint(20) unsigned;default:0;not null;comment:所属行政组织"` |
|||
Position int64 `json:"position" gorm:"column:position;type:bigint(20) unsigned;default:0;not null;comment:职位"` |
|||
JobClass int64 `json:"jobclass" gorm:"column:job_class;type:bigint(20) unsigned;default:2;not null;comment:职务分类"` |
|||
JobId int64 `json:"jobid" gorm:"column:job_id;type:bigint(20) unsigned;default:0;not null;comment:职务"` |
|||
JobLeve int64 `json:"jobleve" gorm:"column:job_leve;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:写入时间"` |
|||
EiteTime int64 `json:"eitetime" gorm:"column:eite_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"` |
|||
Wechat string `json:"wechat" gorm:"column:wechat;type:varchar(255) unsigned;default:'';not null;comment:微信UserId"` |
|||
WorkWechat string `json:"workwechat" gorm:"column:work_wechat;type:varchar(255) unsigned;default:'';not null;comment:企业微信UserId"` |
|||
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)` |
|||
Key int64 `json:"key" gorm:"column:key;type:bigint(50) unsigned;default:0;not null;comment:key"` |
|||
IsAdmin int `json:"isadmin" gorm:"column:is_admin;type:tinyint(1) unsigned;default:1;not null;comment:是否为管理员(1:不是;2:分公司;3:集团管理员;4:超级管` |
|||
Password string `json:"password" gorm:"column:password;type:varchar(255) unsigned;default:'';not null;comment:密码"` |
|||
Role string `json:"role" gorm:"column:role;type:longtext;comment:角色"` |
|||
Idcardno string `json:"idcardno" gorm:"column:idcardno;type:varchar(50) unsigned;default:'';not null;comment:身份证号"` |
|||
Passportno string `json:"passportno" gorm:"column:passportno;type:varchar(50) unsigned;default:'';not null;comment:护照号码"` |
|||
Globalroaming string `json:"globalroaming" gorm:"column:globalroaming;type:varchar(50) unsigned;default:'';not null;comment:国际区号"` |
|||
Mobilephone string `json:"mobilephone" gorm:"column:mobilephone;type:varchar(50) unsigned;default:'';not null;comment:手机号码"` |
|||
Email string `json:"email" gorm:"column:email;type:varchar(255) unsigned;default:'';not null;comment:电子邮件"` |
|||
Gender int `json:"gender" gorm:"column:gender;type:tinyint(1) unsigned;default:1;not null;comment:性别(1:男性;2:女性;3:中性)"` |
|||
Birthday int64 `json:"birthday" gorm:"column:birthday;type:bigint(20) unsigned;default:0;not null;comment:birthday"` |
|||
Myfolk string `json:"myfolk" gorm:"column:myfolk;type:varchar(50) unsigned;default:'';not null;comment:民族"` |
|||
Nativeplace string `json:"nativeplace" gorm:"column:nativeplace;type:varchar(255) unsigned;default:'';not null;comment:籍贯"` |
|||
Idcardstartdate int64 `json:"idcardstartdate" gorm:"column:idcardstartdate;type:bigint(20) unsigned;default:0;not null;comment:身份证有效期开始"` |
|||
Idcardenddate int64 `json:"idcardenddate" gorm:"column:idcardenddate;type:bigint(20) unsigned;default:0;not null;comment:身份证有效期结束"` |
|||
Idcardaddress string `json:"idcardaddress" gorm:"column:idcardaddress;type:varchar(255) unsigned;default:'';not null;comment:身份证地址"` |
|||
IdcardIssued string `json:"idcardIssued" gorm:"column:idcardIssued;type:varchar(255) unsigned;default:'';not null;comment:身份证签发机关"` |
|||
Health int `json:"health" gorm:"column:health;type:tinyint(1) unsigned;default:1;not null;comment:健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"` |
|||
Maritalstatus int `json:"maritalstatus" gorm:"column:maritalstatus;type:tinyint(1) unsigned;default:1;not null;comment:婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"` |
|||
Internaltelephone string `json:"internaltelephone" gorm:"column:internaltelephone;type:varchar(255) unsigned;default:'';not null;comment:内线电话"` |
|||
Currentresidence string `json:"currentresidence" gorm:"column:currentresidence;type:varchar(255) unsigned;default:'';not null;comment:现居住地址"` |
|||
Constellation int `json:"constellationing" gorm:"column:constellationing;type:tinyint(3) unsigned;comment:星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"` |
|||
Isdoubleworker int `json:"isdoubleworker" gorm:"column:isdoubleworker;type:tinyint(1) unsigned;default:1;comment:是否双职工(1:是;2:否)"` |
|||
Isveterans int `json:"isveterans" gorm:"column:isveterans;type:tinyint(1) unsigned;default:1;comment:是否为退役军人(1:是;2:否)"` |
|||
Veteransnumber string `json:"veteransnumber" gorm:"column:veteransnumber;type:varchar(255) unsigned;default:'';comment:退役证编号"` |
|||
Jobstartdate int64 `json:"jobstartdate" gorm:"column:jobstartdate;type:bigint(20) unsigned;default:0;comment:参加工作日期"` |
|||
Entrydate int64 `json:"entrydate" gorm:"column:entrydate;type:bigint(20) unsigned;default:0;comment:入职日期"` |
|||
Probationperiod int `json:"probationperiod" gorm:"column:probationperiod;type:int(5) unsigned;default:0;comment:试用期"` |
|||
Planformaldate int64 `json:"planformaldate" gorm:"column:planformaldate;type:bigint(20) unsigned;default:0;comment:预计转正日期"` |
|||
PoliticalOutlook int `json:"politicaloutlook" gorm:"column:political_outlook;type:tinyint(3) unsigned;default:1;comment:政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` |
|||
} |
|||
|
|||
func (ManCont *ManCont) TableName() string { |
|||
return "man_cont" |
|||
} |
|||
|
|||
//获取职务分类内容
|
|||
func (cont *ManCont) 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 |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
package models |
|||
|
|||
import ( |
|||
"hr_server/overall" |
|||
"strings" |
|||
) |
|||
|
|||
//工作履历
|
|||
type WorkHistory struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` |
|||
Number string `json:"number" gorm:"column:number;type:varchar(50) unsigned;default:'';not null;comment:工号"` |
|||
Key int64 `json:"key" gorm:"column:key;type:bigint(50) unsigned;default:0;not null;comment:身份识别"` |
|||
Company string `json:"company" gorm:"column:company;type:varchar(255) unsigned;default:'';comment:公司"` |
|||
Deparment string `json:"deparment" gorm:"column:deparment;type:varchar(255) unsigned;default:'';comment:部门"` |
|||
Job string `json:"job" gorm:"column:job;type:varchar(255) unsigned;default:'';comment:职务"` |
|||
EntryTime int64 `json:"entrytime" gorm:"column:entry_time;type:bigint(20) unsigned;default:0;not null;comment:入职时间"` |
|||
Leavedate int64 `json:"leavedate" gorm:"column:leavedate;type:bigint(20) unsigned;default:0;not null;comment:离职日期"` |
|||
Witness string `json:"witness" gorm:"column:witness;type:varchar(255) unsigned;default:'';comment:证明人"` |
|||
WitnessTel string `json:"witnesstel" gorm:"column:witness_tel;type:varchar(255) unsigned;default:'';comment:证明人电话"` |
|||
Remarks string `json:"remarks" gorm:"column:remarks;type:text unsigned;default:'';comment:备注"` |
|||
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` |
|||
State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` |
|||
} |
|||
|
|||
func (WorkHistory *WorkHistory) TableName() string { |
|||
return "work_history" |
|||
} |
|||
|
|||
//编辑职务分类内容
|
|||
func (cont *WorkHistory) EiteCont(whereMap interface{}, saveData map[string]interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Updates(saveData).Error |
|||
return |
|||
} |
|||
|
|||
//获取行政组织内容
|
|||
func (cont *WorkHistory) 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 *WorkHistory) CountCont(whereMap interface{}) (countId int64) { |
|||
overall.CONSTANT_DB_HR.Model(&cont).Where(whereMap).Count(&countId) |
|||
return |
|||
} |
|||
Loading…
Reference in new issue