diff --git a/api/jindie_docking/dockingorganization/controller.go b/api/jindie_docking/dockingorganization/controller.go index 5e17c33..ae20292 100644 --- a/api/jindie_docking/dockingorganization/controller.go +++ b/api/jindie_docking/dockingorganization/controller.go @@ -11,6 +11,7 @@ import ( "time" "github.com/gin-gonic/gin" + "gorm.io/gorm" ) // 接口实验 @@ -713,3 +714,644 @@ func calibrationPosition(orgInfo []positionType) { } } } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 09:36:18 +@ 功能: 数据校正 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func UserDataCorrection() { + var userId []int64 + overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`").Find(&userId) + if len(userId) > 0 { + var guoduId []int64 + for i, v := range userId { + //分组启动携程 + if (i+1)%500 == 0 { + synPro.Add(1) + go SynProCorrection(guoduId) + guoduId = []int64{} + } else { + guoduId = append(guoduId, v) + } + + } + if len(guoduId) > 0 { + synPro.Add(1) + go SynProCorrection(guoduId) + } + synPro.Wait() + } + fmt.Println("数据校验完成!") +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 10:04:44 +@ 功能: 协程处理同步 +#userId 要处理人的ID +*/ +func SynProCorrection(userIdAry []int64) { + defer synPro.Done() + var userAry []models.PersonArchives + overall.CONSTANT_DB_HR.Where("`id` IN ?", userIdAry).Find(&userAry) + // fmt.Printf("userAry--->%v--->%v\n\n", len(userAry), userAry) + if len(userAry) > 0 { + for _, v := range userAry { + var manInfo models.PersonnelContent + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).First(&manInfo) + var emeContact []models.EmergencyContact //紧机联系人 + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).Find(&emeContact) + var familyList []models.FamilyMembers //家庭成员 + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).Find(&familyList) + var perEduList []models.PersonnelEducation //教育经历 + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).Find(&perEduList) + var workEduList []models.WorkHistory //工作履历 + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).Find(&workEduList) + var workInsideEduList []models.InsideWorkHistory //编辑集团内工作履历 + overall.CONSTANT_DB_HR.Where("`key` = ?", v.Key).Find(&workInsideEduList) + var creadContList []models.UserOrg //任职关系 + overall.CONSTANT_DB_HR.Where("`userKey` = ?", v.Key).Find(&creadContList) + //TiDb 数据库 + tidbSubHandel(v) + //编辑人员附属信息 + editUserAttribute(overall.CONSTANT_Hr_Server, manInfo) + //紧急联系人 + if len(emeContact) > 0 { + editEmerCpntcat(overall.CONSTANT_Hr_Server, v.Key, emeContact) + } + //家庭成员 + if len(familyList) > 0 { + editFamilyMember(overall.CONSTANT_Hr_Server, v.Key, familyList) + } + //教育经历 + if len(perEduList) > 0 { + editPerEdu(overall.CONSTANT_Hr_Server, v.Key, perEduList) + } + //工作履历 + if len(workEduList) > 0 { + editWorkJob(overall.CONSTANT_Hr_Server, v.Key, workEduList) + } + //编辑集团内工作履历 + if len(workInsideEduList) > 0 { + editInsideWorkJob(overall.CONSTANT_Hr_Server, v.Key, workInsideEduList) + } + //任职关系 + if len(creadContList) > 0 { + editInsideWorkJobOrg(overall.CONSTANT_Hr_Server, v.Key, creadContList) + } + //外网数据库 + waiSubHandel(v) + //编辑人员附属信息 + editUserAttribute(overall.CONSTANT_HRSERVER_DATABASE, manInfo) + //紧急联系人 + if len(emeContact) > 0 { + editEmerCpntcat(overall.CONSTANT_HRSERVER_DATABASE, v.Key, emeContact) + } + //家庭成员 + if len(familyList) > 0 { + editFamilyMember(overall.CONSTANT_HRSERVER_DATABASE, v.Key, familyList) + } + //教育经历 + if len(perEduList) > 0 { + editPerEdu(overall.CONSTANT_HRSERVER_DATABASE, v.Key, perEduList) + } + //工作履历 + if len(workEduList) > 0 { + editWorkJob(overall.CONSTANT_HRSERVER_DATABASE, v.Key, workEduList) + } + //编辑集团内工作履历 + if len(workInsideEduList) > 0 { + editInsideWorkJob(overall.CONSTANT_HRSERVER_DATABASE, v.Key, workInsideEduList) + } + //任职关系 + if len(creadContList) > 0 { + editInsideWorkJobOrg(overall.CONSTANT_HRSERVER_DATABASE, v.Key, creadContList) + } + } + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 任职关系 +*/ +func editInsideWorkJobOrg(gormDb *gorm.DB, userKry int64, emeList []models.UserOrg) { + if len(emeList) > 0 { + gormDb.Where("`userKey` = ?", userKry).Delete(&models.UserOrg{}) + var newWrite []models.UserOrg + for _, v := range emeList { + var newInfo models.UserOrg + newInfo.Company = v.Company + newInfo.Orgid = v.Orgid + newInfo.Position = v.Position + newInfo.TeamsId = v.TeamsId + newInfo.StartTime = v.StartTime + newInfo.AssignType = v.AssignType + newInfo.Time = time.Now().Unix() + newWrite = append(newWrite, newInfo) + } + if len(newWrite) > 0 { + gormDb.Create(&newWrite) + } + + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 编辑集团内工作履历 +*/ +func editInsideWorkJob(gormDb *gorm.DB, userKry int64, emeList []models.InsideWorkHistory) { + if len(emeList) > 0 { + gormDb.Where("`key` = ?", userKry).Delete(&models.InsideWorkHistory{}) + var newWrite []models.InsideWorkHistory + for _, v := range emeList { + var newInfo models.InsideWorkHistory + newInfo.Key = v.Key + newInfo.Group = v.Group + newInfo.Company = v.Company + newInfo.Department = v.Department + newInfo.WorkShop = v.WorkShop + newInfo.WorkshopSection = v.WorkshopSection + newInfo.Position = v.Position + newInfo.GradePositions = v.GradePositions + newInfo.StartTime = v.StartTime + newInfo.EndTime = v.EndTime + newInfo.Team = v.Team + newInfo.ChangeType = v.ChangeType + newInfo.Time = time.Now().Unix() + newInfo.State = v.State + newInfo.AssignType = v.AssignType + newInfo.JobId = v.JobId + newInfo.WorkCont = v.WorkCont + + newInfo.ChangeReason = v.ChangeReason + newInfo.SuperiorPosition = v.SuperiorPosition + newInfo.SuperiorName = v.SuperiorName + newInfo.Subordinates = v.Subordinates + newInfo.Bdlx = v.Bdlx + newInfo.Gsmc = v.Gsmc + newInfo.Yjbm = v.Yjbm + newInfo.Ejbm = v.Ejbm + newInfo.Gongduan = v.Gongduan + newInfo.Dengji = v.Dengji + newInfo.Zhiwei = v.Zhiwei + newWrite = append(newWrite, newInfo) + } + if len(newWrite) > 0 { + gormDb.Create(&newWrite) + } + + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 教育经历 +*/ +func editWorkJob(gormDb *gorm.DB, userKry int64, emeList []models.WorkHistory) { + if len(emeList) > 0 { + gormDb.Where("`key` = ?", userKry).Delete(&models.WorkHistory{}) + var newWrite []models.WorkHistory + for _, v := range emeList { + var newInfo models.WorkHistory + newInfo.Number = v.Number + newInfo.Key = v.Key + newInfo.Company = v.Company + newInfo.Deparment = v.Deparment + newInfo.Job = v.Job + newInfo.EntryTime = v.EntryTime + newInfo.Leavedate = v.Leavedate + newInfo.Witness = v.Witness + newInfo.WitnessTel = v.WitnessTel + newInfo.Remarks = v.Remarks + newInfo.Time = time.Now().Unix() + newInfo.State = v.State + newInfo.WorkCont = v.WorkCont + newInfo.SuperiorPosition = v.SuperiorPosition + newInfo.MinionNumber = v.MinionNumber + newInfo.CompanyNature = v.CompanyNature + newInfo.Industry = v.Industry + newWrite = append(newWrite, newInfo) + } + if len(newWrite) > 0 { + gormDb.Create(&newWrite) + } + + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 教育经历 +*/ +func editPerEdu(gormDb *gorm.DB, userKry int64, emeList []models.PersonnelEducation) { + if len(emeList) > 0 { + err := gormDb.Where("`key` = ?", userKry).Delete(&models.PersonnelEducation{}).Error + if err == nil { + gormDb.Create(&emeList) + } + + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 家庭成员 +*/ +func editFamilyMember(gormDb *gorm.DB, userKry int64, emeList []models.FamilyMembers) { + if len(emeList) > 0 { + err := gormDb.Where("`key` = ?", userKry).Delete(&models.FamilyMembers{}).Error + if err == nil { + gormDb.Create(&emeList) + } + + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 13:39:28 +@ 功能: 紧急联系人 +*/ +func editEmerCpntcat(gormDb *gorm.DB, userKry int64, emeList []models.EmergencyContact) { + if len(emeList) > 0 { + err := gormDb.Where("`key` = ?", userKry).Delete(&models.EmergencyContact{}).Error + if err == nil { + gormDb.Create(&emeList) + } + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 10:38:08 +@ 功能: tidb数据库数据处理 +*/ +func tidbSubHandel(user models.PersonArchives) { + var tidbUser models.PersonArchives + overall.CONSTANT_Hr_Server.Where("`number` = ?", user.Number).First(&tidbUser) + if tidbUser.Id != 0 { + //存在就修改 + editMap := overallhandle.MapOut() + if user.Name != "" && user.Name != tidbUser.Name { + editMap["name"] = user.Name + } + if user.Icon != "" && user.Icon != tidbUser.Icon { + editMap["icon"] = user.Icon + } + if user.HireClass != 0 && user.HireClass != tidbUser.HireClass { + editMap["hire_class"] = user.HireClass + } + if user.EmpType != 0 && user.EmpType != tidbUser.EmpType { + editMap["emp_type"] = user.EmpType + } + if user.Company != 0 && user.Company != tidbUser.Company { + editMap["company"] = user.Company + } + if user.MainDeparment != 0 && user.MainDeparment != tidbUser.MainDeparment { + editMap["maindeparment"] = user.MainDeparment + } + if user.Deparment != "" && user.Deparment != tidbUser.Deparment { + editMap["deparment"] = user.Deparment + } + if user.AdminOrg != 0 && user.AdminOrg != tidbUser.AdminOrg { + editMap["admin_org"] = user.AdminOrg + } + if user.Position != 0 && user.Position != tidbUser.Position { + editMap["position"] = user.Position + } + if user.JobClass != 0 && user.JobClass != tidbUser.JobClass { + editMap["job_class"] = user.JobClass + } + if user.JobId != 0 && user.JobId != tidbUser.JobId { + editMap["job_id"] = user.JobId + } + if user.JobLeve != 0 && user.JobLeve != tidbUser.JobLeve { + editMap["job_leve"] = user.JobLeve + } + if user.Wechat != "" && user.Wechat != tidbUser.Wechat { + editMap["wechat"] = user.Wechat + } + if user.WorkWechat != "" && user.WorkWechat != tidbUser.WorkWechat { + editMap["work_wechat"] = user.WorkWechat + } + if user.State != 0 && user.State != tidbUser.State { + editMap["state"] = user.State + } + if user.IsAdmin != 0 && user.IsAdmin != tidbUser.IsAdmin { + editMap["is_admin"] = user.IsAdmin + } + if user.EmpTypeName != "" && user.EmpTypeName != tidbUser.EmpTypeName { + editMap["emp_type_name"] = user.EmpTypeName + } + if user.HireClassName != "" && user.HireClassName != tidbUser.HireClassName { + editMap["hire_class_name"] = user.HireClassName + } + if user.SunMainDeparment != 0 && user.SunMainDeparment != tidbUser.SunMainDeparment { + editMap["sun_main_deparment"] = user.SunMainDeparment + } + if user.TeamId != 0 && user.TeamId != tidbUser.TeamId { + editMap["teamid"] = user.TeamId + } + if user.Ruleid != 0 && user.Ruleid != tidbUser.Ruleid { + editMap["ruleid"] = user.Ruleid + } + if user.IconPhoto != "" && user.IconPhoto != tidbUser.IconPhoto { + editMap["icon_photo"] = user.IconPhoto + } + if user.PersonInCharge != 0 && user.PersonInCharge != tidbUser.PersonInCharge { + editMap["person_in_charge"] = user.PersonInCharge + } + if user.ResponsibleDepartment != "" && user.ResponsibleDepartment != tidbUser.ResponsibleDepartment { + editMap["responsible_department"] = user.ResponsibleDepartment + } + if user.ResponsibleDepartmentJson != "" && user.ResponsibleDepartmentJson != tidbUser.ResponsibleDepartmentJson { + editMap["responsible_department_json"] = user.ResponsibleDepartmentJson + } + if user.WorkSection != 0 && user.WorkSection != tidbUser.WorkSection { + editMap["work_section"] = user.WorkSection + } + if user.IsShowTrue != 0 && user.IsShowTrue != tidbUser.IsShowTrue { + editMap["is_show_true"] = user.IsShowTrue + } + if user.ExcelTemplate != 0 && user.ExcelTemplate != tidbUser.ExcelTemplate { + editMap["excel_template"] = user.ExcelTemplate + } + if len(editMap) > 0 { + editMap["eite_time"] = time.Now().Unix() + overall.CONSTANT_Hr_Server.Model(&models.PersonArchives{}).Where("`number` = ?", user.Number).Updates(editMap) + } + } else { + //不存在就新增 + overall.CONSTANT_Hr_Server.Create(&user) + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 10:38:08 +@ 功能: 外网数据库数据处理 +*/ +func waiSubHandel(user models.PersonArchives) { + var tidbUser models.PersonArchives + overall.CONSTANT_HRSERVER_DATABASE.Where("`number` = ?", user.Number).First(&tidbUser) + fmt.Printf("外网数据库数据处理->%v\n", tidbUser) + if tidbUser.Id != 0 { + //存在就修改 + editMap := overallhandle.MapOut() + if user.Name != "" && user.Name != tidbUser.Name { + editMap["name"] = user.Name + } + if user.Icon != "" && user.Icon != tidbUser.Icon { + editMap["icon"] = user.Icon + } + if user.HireClass != 0 && user.HireClass != tidbUser.HireClass { + editMap["hire_class"] = user.HireClass + } + if user.EmpType != 0 && user.EmpType != tidbUser.EmpType { + editMap["emp_type"] = user.EmpType + } + if user.Company != 0 && user.Company != tidbUser.Company { + editMap["company"] = user.Company + } + if user.MainDeparment != 0 && user.MainDeparment != tidbUser.MainDeparment { + editMap["maindeparment"] = user.MainDeparment + } + if user.Deparment != "" && user.Deparment != tidbUser.Deparment { + editMap["deparment"] = user.Deparment + } + if user.AdminOrg != 0 && user.AdminOrg != tidbUser.AdminOrg { + editMap["admin_org"] = user.AdminOrg + } + if user.Position != 0 && user.Position != tidbUser.Position { + editMap["position"] = user.Position + } + if user.JobClass != 0 && user.JobClass != tidbUser.JobClass { + editMap["job_class"] = user.JobClass + } + if user.JobId != 0 && user.JobId != tidbUser.JobId { + editMap["job_id"] = user.JobId + } + if user.JobLeve != 0 && user.JobLeve != tidbUser.JobLeve { + editMap["job_leve"] = user.JobLeve + } + if user.Wechat != "" && user.Wechat != tidbUser.Wechat { + editMap["wechat"] = user.Wechat + } + if user.WorkWechat != "" && user.WorkWechat != tidbUser.WorkWechat { + editMap["work_wechat"] = user.WorkWechat + } + if user.State != 0 && user.State != tidbUser.State { + editMap["state"] = user.State + } + if user.IsAdmin != 0 && user.IsAdmin != tidbUser.IsAdmin { + editMap["is_admin"] = user.IsAdmin + } + if user.EmpTypeName != "" && user.EmpTypeName != tidbUser.EmpTypeName { + editMap["emp_type_name"] = user.EmpTypeName + } + if user.HireClassName != "" && user.HireClassName != tidbUser.HireClassName { + editMap["hire_class_name"] = user.HireClassName + } + if user.SunMainDeparment != 0 && user.SunMainDeparment != tidbUser.SunMainDeparment { + editMap["sun_main_deparment"] = user.SunMainDeparment + } + if user.TeamId != 0 && user.TeamId != tidbUser.TeamId { + editMap["teamid"] = user.TeamId + } + if user.Ruleid != 0 && user.Ruleid != tidbUser.Ruleid { + editMap["ruleid"] = user.Ruleid + } + if user.IconPhoto != "" && user.IconPhoto != tidbUser.IconPhoto { + editMap["icon_photo"] = user.IconPhoto + } + if user.PersonInCharge != 0 && user.PersonInCharge != tidbUser.PersonInCharge { + editMap["person_in_charge"] = user.PersonInCharge + } + if user.ResponsibleDepartment != "" && user.ResponsibleDepartment != tidbUser.ResponsibleDepartment { + editMap["responsible_department"] = user.ResponsibleDepartment + } + if user.ResponsibleDepartmentJson != "" && user.ResponsibleDepartmentJson != tidbUser.ResponsibleDepartmentJson { + editMap["responsible_department_json"] = user.ResponsibleDepartmentJson + } + if user.WorkSection != 0 && user.WorkSection != tidbUser.WorkSection { + editMap["work_section"] = user.WorkSection + } + if user.IsShowTrue != 0 && user.IsShowTrue != tidbUser.IsShowTrue { + editMap["is_show_true"] = user.IsShowTrue + } + if user.ExcelTemplate != 0 && user.ExcelTemplate != tidbUser.ExcelTemplate { + editMap["excel_template"] = user.ExcelTemplate + } + fmt.Printf("外网数据库数据处理------要修改的数据------>%v----->%v\n", len(editMap), editMap) + if len(editMap) > 0 { + editMap["eite_time"] = time.Now().Unix() + err := overall.CONSTANT_HRSERVER_DATABASE.Model(&models.PersonArchives{}).Where("`number` = ?", user.Number).Updates(editMap).Error + fmt.Printf("外网数据库数据处理------要修改的数据------>%v----->%v\n", len(editMap), err) + } + } else { + //不存在就新增 + overall.CONSTANT_HRSERVER_DATABASE.Create(&user) + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 11:36:47 +@ 功能: 编辑附属人员信息 +*/ +func editUserAttribute(gormDb *gorm.DB, userAttribute models.PersonnelContent) { + var manInfo models.PersonnelContent + gormDb.Where("`key` = ?", userAttribute.Key).First(&manInfo) + if manInfo.Number != "" { + //数据存在修改 + editMap := overallhandle.MapOut() + if userAttribute.Idcardno != "" && userAttribute.Idcardno != manInfo.Idcardno { + editMap["idcardno"] = userAttribute.Idcardno + } + if userAttribute.Passportno != "" && userAttribute.Passportno != manInfo.Passportno { + editMap["passportno"] = userAttribute.Passportno + } + if userAttribute.Globalroaming != "" && userAttribute.Globalroaming != manInfo.Globalroaming { + editMap["globalroaming"] = userAttribute.Globalroaming + } + if userAttribute.Mobilephone != "" && userAttribute.Mobilephone != manInfo.Mobilephone { + editMap["mobilephone"] = userAttribute.Mobilephone + } + if userAttribute.Gender != 0 && userAttribute.Gender != manInfo.Gender { + editMap["gender"] = userAttribute.Gender + } + if userAttribute.Birthday != 0 && userAttribute.Birthday != manInfo.Birthday { + editMap["birthday"] = userAttribute.Birthday + } + if userAttribute.Myfolk != "" && userAttribute.Myfolk != manInfo.Myfolk { + editMap["myfolk"] = userAttribute.Myfolk + } + if userAttribute.Nativeplace != "" && userAttribute.Nativeplace != manInfo.Nativeplace { + editMap["nativeplace"] = userAttribute.Nativeplace + } + if userAttribute.Idcardstartdate != 0 && userAttribute.Idcardstartdate != manInfo.Idcardstartdate { + editMap["idcardstartdate"] = userAttribute.Idcardstartdate + } + if userAttribute.Idcardenddate != 0 && userAttribute.Idcardenddate != manInfo.Idcardenddate { + editMap["idcardenddate"] = userAttribute.Idcardenddate + } + if userAttribute.Idcardaddress != "" && userAttribute.Idcardaddress != manInfo.Idcardaddress { + editMap["idcardaddress"] = userAttribute.Idcardaddress + } + if userAttribute.IdcardIssued != "" && userAttribute.IdcardIssued != manInfo.IdcardIssued { + editMap["idcardIssued"] = userAttribute.IdcardIssued + } + if userAttribute.Health != 0 && userAttribute.Health != manInfo.Health { + editMap["health"] = userAttribute.Health + } + if userAttribute.Maritalstatus != 0 && userAttribute.Maritalstatus != manInfo.Maritalstatus { + editMap["maritalstatus"] = userAttribute.Maritalstatus + } + if userAttribute.Internaltelephone != "" && userAttribute.Internaltelephone != manInfo.Internaltelephone { + editMap["internaltelephone"] = userAttribute.Internaltelephone + } + if userAttribute.Currentresidence != "" && userAttribute.Currentresidence != manInfo.Currentresidence { + editMap["currentresidence"] = userAttribute.Currentresidence + } + if userAttribute.Constellation != 0 && userAttribute.Constellation != manInfo.Constellation { + editMap["constellationing"] = userAttribute.Constellation + } + if userAttribute.Isdoubleworker != 0 && userAttribute.Isdoubleworker != manInfo.Isdoubleworker { + editMap["isdoubleworker"] = userAttribute.Isdoubleworker + } + if userAttribute.Isveterans != 0 && userAttribute.Isveterans != manInfo.Isveterans { + editMap["isveterans"] = userAttribute.Isveterans + } + if userAttribute.Veteransnumber != "" && userAttribute.Veteransnumber != manInfo.Veteransnumber { + editMap["veteransnumber"] = userAttribute.Veteransnumber + } + if userAttribute.Jobstartdate != 0 && userAttribute.Jobstartdate != manInfo.Jobstartdate { + editMap["jobstartdate"] = userAttribute.Jobstartdate + } + if userAttribute.Entrydate != 0 && userAttribute.Entrydate != manInfo.Entrydate { + editMap["entrydate"] = userAttribute.Entrydate + } + if userAttribute.Probationperiod != 0 && userAttribute.Probationperiod != manInfo.Probationperiod { + editMap["probationperiod"] = userAttribute.Probationperiod + } + if userAttribute.Planformaldate != 0 && userAttribute.Planformaldate != manInfo.Planformaldate { + editMap["planformaldate"] = userAttribute.Planformaldate + } + if userAttribute.PoliticalOutlook != 0 && userAttribute.PoliticalOutlook != manInfo.PoliticalOutlook { + editMap["political_outlook"] = userAttribute.PoliticalOutlook + } + if userAttribute.MaritalstatusCn != "" && userAttribute.MaritalstatusCn != manInfo.MaritalstatusCn { + editMap["maritalstatus_cn"] = userAttribute.MaritalstatusCn + } + if userAttribute.PoliticalOutlookCn != "" && userAttribute.PoliticalOutlookCn != manInfo.PoliticalOutlookCn { + editMap["political_outlook_cn"] = userAttribute.PoliticalOutlookCn + } + if userAttribute.HealthCn != "" && userAttribute.HealthCn != manInfo.HealthCn { + editMap["health_cn"] = userAttribute.HealthCn + } + if userAttribute.NameUsedBefore != "" && userAttribute.NameUsedBefore != manInfo.NameUsedBefore { + editMap["name_used_before"] = userAttribute.NameUsedBefore + } + if userAttribute.CareerPlanning != "" && userAttribute.CareerPlanning != manInfo.CareerPlanning { + editMap["career_planning"] = userAttribute.CareerPlanning + } + if userAttribute.HelpObtained != "" && userAttribute.HelpObtained != manInfo.HelpObtained { + editMap["help_obtained"] = userAttribute.HelpObtained + } + if userAttribute.Hobby != "" && userAttribute.Hobby != manInfo.Hobby { + editMap["hobby"] = userAttribute.Hobby + } + if userAttribute.DomicileType != "" && userAttribute.DomicileType != manInfo.DomicileType { + editMap["domicile_type"] = userAttribute.DomicileType + } + if userAttribute.IdCardnoLongTerm != 0 && userAttribute.IdCardnoLongTerm != manInfo.IdCardnoLongTerm { + editMap["idCardnoLongTerm"] = userAttribute.IdCardnoLongTerm + } + if userAttribute.MobileShortNumber != "" && userAttribute.MobileShortNumber != manInfo.MobileShortNumber { + editMap["mobileShortNumber"] = userAttribute.MobileShortNumber + } + if userAttribute.Channel != 0 && userAttribute.Channel != manInfo.Channel { + editMap["channel"] = userAttribute.Channel + } + if userAttribute.BloodType != "" && userAttribute.BloodType != manInfo.BloodType { + editMap["bloodType"] = userAttribute.BloodType + } + if len(editMap) > 0 { + editMap["time"] = time.Now().Unix() + gormDb.Model(&models.PersonnelContent{}).Where("`key` = ?", userAttribute.Key).Updates(editMap) + } + } else { + //数据不存在,新增 + gormDb.Create(&userAttribute) + } +} diff --git a/api/jindie_docking/dockingorganization/getposturl.go b/api/jindie_docking/dockingorganization/getposturl.go index ec5e9aa..4f7f76d 100644 --- a/api/jindie_docking/dockingorganization/getposturl.go +++ b/api/jindie_docking/dockingorganization/getposturl.go @@ -2,10 +2,15 @@ package dockingorganization import ( "fmt" + "hr_server/models" + "hr_server/overall" "hr_server/overall/overallhandle" "io/ioutil" "net/http" + "strings" "time" + + "gorm.io/gorm" ) func GetUrl(sendUrl string) (respBody []byte, err error) { @@ -22,3 +27,84 @@ func GetUrl(sendUrl string) (respBody []byte, err error) { respBody, err = ioutil.ReadAll(resp.Body) return } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-17 10:29:31 +@ 功能: 三方库统一添加角色 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func AddRolePeople(roleId string) { + var userId []int64 + overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`").Find(&userId) + if len(userId) > 0 { + var guoduId []int64 + for i, v := range userId { + //分组启动携程 + if (i+1)%500 == 0 { + synPro.Add(1) + go SynAddNewRole(guoduId, roleId) + guoduId = []int64{} + } else { + guoduId = append(guoduId, v) + } + + } + if len(guoduId) > 0 { + synPro.Add(1) + go SynAddNewRole(guoduId, roleId) + } + synPro.Wait() + } + fmt.Println("数据校验完成!") +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-17 10:32:35 +@ 功能: 协程处理角色添加问题 +#userId 要处理人的ID +#roleId 要添加的角色ID +*/ +func SynAddNewRole(userIdAry []int64, roleId string) { + defer synPro.Done() + var userAry []models.PersonArchives + overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`,`key`,`role`").Where("`id` IN ?", userIdAry).Find(&userAry) + if len(userAry) > 0 { + for _, v := range userAry { + editUserRole(overall.CONSTANT_DB_HR, v, roleId) + editUserRole(overall.CONSTANT_Hr_Server, v, roleId) + editUserRole(overall.CONSTANT_HRSERVER_DATABASE, v, roleId) + } + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 11:36:47 +@ 功能: 编辑附属人员信息 +*/ +func editUserRole(gormDb *gorm.DB, userInfo models.PersonArchives, roleId string) { + allRoleMap := []string{roleId} + if userInfo.Role != "" { + oldRoleAry := strings.Split(userInfo.Role, ",") + allRoleMap = append(allRoleMap, oldRoleAry...) + } + saveData := overallhandle.MapOut() + saveData["role"] = strings.Join(allRoleMap, ",") + saveData["eite_time"] = time.Now().Unix() + gormDb.Model(&models.PersonArchives{}).Where("`key` = ?", userInfo.Key).Updates(saveData) +} diff --git a/api/version1/personnelapi/analysExelect.go b/api/version1/personnelapi/analysExelect.go index e1281a2..01186d4 100644 --- a/api/version1/personnelapi/analysExelect.go +++ b/api/version1/personnelapi/analysExelect.go @@ -199,8 +199,8 @@ func RongXinKeYears(rows [][]string, redisKey string, isDateYear int) (totalNum func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalNum int64, meritsYearIng, rewPunYearsIng map[int]int) { //获取绩效年度 meritsYear := make(map[int]int) - if rows[1][293] != "" { - yearAry := strings.Split(rows[1][292], "年") + if rows[1][306] != "" { + yearAry := strings.Split(rows[1][306], "年") if len(yearAry) > 0 { yearVal, _ := strconv.Atoi(yearAry[0]) @@ -210,8 +210,8 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN meritsYear[0] = isDateYear - 3 } - if rows[1][295] != "" { - yearAry := strings.Split(rows[1][295], "年") + if rows[1][308] != "" { + yearAry := strings.Split(rows[1][308], "年") if len(yearAry) > 0 { yearVal, _ := strconv.Atoi(yearAry[0]) meritsYear[1] = yearVal @@ -219,8 +219,8 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN } else { meritsYear[1] = isDateYear - 2 } - if rows[1][297] != "" { - yearAry := strings.Split(rows[1][297], "年") + if rows[1][310] != "" { + yearAry := strings.Split(rows[1][310], "年") if len(yearAry) > 0 { yearVal, _ := strconv.Atoi(yearAry[0]) meritsYear[2] = yearVal @@ -232,8 +232,8 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN meritsYearIng = meritsYear //获取奖惩年度 rewPunYears := make(map[int]int) - if rows[2][304] != "" { - jcYearAry := strings.Split(rows[2][304], "年") + if rows[2][320] != "" { + jcYearAry := strings.Split(rows[2][320], "年") if len(jcYearAry) > 0 { jcYearVal, _ := strconv.Atoi(jcYearAry[0]) rewPunYears[0] = jcYearVal @@ -242,8 +242,8 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN rewPunYears[0] = isDateYear - 4 } - if rows[2][310] != "" { - jcYearAry := strings.Split(rows[2][310], "奖惩") + if rows[2][326] != "" { + jcYearAry := strings.Split(rows[2][326], "奖惩") if len(jcYearAry) > 0 { jcYearVal, _ := strconv.Atoi(jcYearAry[0]) @@ -252,8 +252,8 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN } else { rewPunYears[1] = isDateYear - 3 } - if rows[2][316] != "" { - jcYearAry := strings.Split(rows[2][316], "奖惩") + if rows[2][332] != "" { + jcYearAry := strings.Split(rows[2][332], "奖惩") if len(jcYearAry) > 0 { jcYearVal, _ := strconv.Atoi(jcYearAry[0]) @@ -283,6 +283,7 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN } if row[1] != "" { jsonStr, _ := json.Marshal(row) + // fmt.Printf("\n\n上传的数据--------->%v\n\n", string(jsonStr)) //专业"` redisClient.Lpush(redisKey, jsonStr) totalNum++ } @@ -290,6 +291,53 @@ func RongXinKeYearsNew(rows [][]string, redisKey string, isDateYear int) (totalN return } +// 解析Excel日期格式 +func ParseExcelDate(value string) (time.Time, error) { + // 先尝试解析Excel存储的浮点数日期格式 + if num, err := strconv.ParseFloat(value, 64); err == nil { + return ExcelFloatToTime(num), nil + } + + // 再尝试解析常见的日期字符串格式 + formats := []string{ + "2006/1/2", // 匹配 2004/9/1 格式 + "2006-01-02", // 标准ISO格式 + "01/02/2006", // 美式日期格式 + "02/01/2006", // 欧式日期格式 + } + + for _, format := range formats { + if t, err := time.Parse(format, value); err == nil { + return t, nil + } + } + + // 处理包含时间的格式 + if strings.Contains(value, " ") { + formatsWithTime := []string{ + "2006/1/2 15:04:05", + "2006-01-02 15:04:05", + "01/02/2006 15:04:05", + } + for _, format := range formatsWithTime { + if t, err := time.Parse(format, value); err == nil { + return t, nil + } + } + } + + return time.Time{}, fmt.Errorf("无法解析日期格式: %s", value) +} + +// 将Excel浮点数日期转换为time.Time +func ExcelFloatToTime(excelTime float64) time.Time { + // Excel的日期起始于1900-01-00 (注意: 这是一个虚构的日期) + excelEpoch := time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC) + days := int(excelTime) + nanoseconds := int64((excelTime - float64(days)) * 24 * 60 * 60 * 1e9) + return excelEpoch.AddDate(0, 0, days).Add(time.Duration(nanoseconds)) +} + /* * @ 作者: 秦东 @@ -1296,35 +1344,35 @@ func (g *GroupParsingData) GrowthExpWitTheGroupRongXin(info map[int]string, orgI err := overall.CONSTANT_DB_HR.Where("`key` = ?", g.UserKey).Find(&growInGroup).Error if err != nil || len(growInGroup) < 1 { //没有集团经历,那么进行新增 - if info[95] != "" { //集团内工作经历1 - g.EditGroupInWorkLog(info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], orgId) + if info[99] != "" { //集团内工作经历1 + g.EditGroupInWorkLog(info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], orgId) } - if info[108] != "" { //集团内工作经历2 - g.EditGroupInWorkLog(info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], orgId) + if info[113] != "" { //集团内工作经历2 + g.EditGroupInWorkLog(info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], orgId) } - if info[121] != "" { //集团内工作经历3 - g.EditGroupInWorkLog(info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], info[131], info[132], info[133], orgId) + if info[127] != "" { //集团内工作经历3 + g.EditGroupInWorkLog(info[127], info[128], info[129], info[130], info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], orgId) } - if info[134] != "" { //集团内工作经历4 - g.EditGroupInWorkLog(info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], info[144], info[145], info[146], orgId) + if info[141] != "" { //集团内工作经历4 + g.EditGroupInWorkLog(info[141], info[142], info[143], info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], orgId) } - if info[147] != "" { //集团内工作经历5 - g.EditGroupInWorkLog(info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], info[157], info[158], info[159], orgId) + if info[155] != "" { //集团内工作经历5 + g.EditGroupInWorkLog(info[155], info[156], info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], orgId) } - if info[160] != "" { //集团内工作经历6 - g.EditGroupInWorkLog(info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], info[170], info[171], info[172], orgId) + if info[169] != "" { //集团内工作经历6 + g.EditGroupInWorkLog(info[169], info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) } - if info[173] != "" { //集团内工作经历7 - g.EditGroupInWorkLog(info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], info[183], info[184], info[185], orgId) + if info[183] != "" { //集团内工作经历7 + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) } - if info[186] != "" { //集团内工作经历8 - g.EditGroupInWorkLog(info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], info[197], info[198], orgId) + if info[197] != "" { //集团内工作经历8 + g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], orgId) } - if info[199] != "" { //集团内工作经历9 - g.EditGroupInWorkLog(info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], info[211], orgId) + if info[211] != "" { //集团内工作经历9 + g.EditGroupInWorkLog(info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) } - if info[212] != "" { //集团内工作经历10 - g.EditGroupInWorkLog(info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) + if info[225] != "" { //集团内工作经历10 + g.EditGroupInWorkLog(info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236], info[237], info[238], orgId) } } else { //有集团经历,那么删除旧的经历再新增 @@ -1332,35 +1380,35 @@ func (g *GroupParsingData) GrowthExpWitTheGroupRongXin(info map[int]string, orgI overallhandle.WriteLog("del", "删除旧集团内部经历数据!", string(jsonInfo)) var workGroupLogCont models.InsideWorkHistory workGroupLogCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[95] != "" { //集团内工作经历1 - g.EditGroupInWorkLog(info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], orgId) + if info[99] != "" { //集团内工作经历1 + g.EditGroupInWorkLog(info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], orgId) } - if info[108] != "" { //集团内工作经历2 - g.EditGroupInWorkLog(info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], orgId) + if info[113] != "" { //集团内工作经历2 + g.EditGroupInWorkLog(info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], orgId) } - if info[121] != "" { //集团内工作经历3 - g.EditGroupInWorkLog(info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], info[131], info[132], info[133], orgId) + if info[127] != "" { //集团内工作经历3 + g.EditGroupInWorkLog(info[127], info[128], info[129], info[130], info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], orgId) } - if info[134] != "" { //集团内工作经历4 - g.EditGroupInWorkLog(info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], info[144], info[145], info[146], orgId) + if info[141] != "" { //集团内工作经历4 + g.EditGroupInWorkLog(info[141], info[142], info[143], info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], orgId) } - if info[147] != "" { //集团内工作经历5 - g.EditGroupInWorkLog(info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], info[157], info[158], info[159], orgId) + if info[155] != "" { //集团内工作经历5 + g.EditGroupInWorkLog(info[155], info[156], info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], orgId) } - if info[160] != "" { //集团内工作经历6 - g.EditGroupInWorkLog(info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], info[170], info[171], info[172], orgId) + if info[169] != "" { //集团内工作经历6 + g.EditGroupInWorkLog(info[169], info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) } - if info[173] != "" { //集团内工作经历7 - g.EditGroupInWorkLog(info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], info[183], info[184], info[185], orgId) + if info[183] != "" { //集团内工作经历7 + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) } - if info[186] != "" { //集团内工作经历8 - g.EditGroupInWorkLog(info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], info[197], info[198], orgId) + if info[197] != "" { //集团内工作经历8 + g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], orgId) } - if info[199] != "" { //集团内工作经历9 - g.EditGroupInWorkLog(info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], info[211], orgId) + if info[211] != "" { //集团内工作经历9 + g.EditGroupInWorkLog(info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) } - if info[212] != "" { //集团内工作经历10 - g.EditGroupInWorkLog(info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) + if info[225] != "" { //集团内工作经历10 + g.EditGroupInWorkLog(info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236], info[237], info[238], orgId) } } } @@ -1389,40 +1437,41 @@ func (g *GroupParsingData) FamilyMembersRongXin(info map[int]string) { // var emergencyFamily []models.EmergencyContact //紧急联系人 // creeTime := time.Now().Unix() if err != nil || len(familyAry) < 1 { - if info[62] != "" && info[63] != "" { - g.EditFamilyInfo(info[62], info[63], info[64], info[65], info[66], "否") + + if info[61] != "" && info[62] != "" { + g.EditFamilyInfo(info[61], info[62], info[63], info[64], info[65], info[66], "否") } if info[67] != "" && info[68] != "" { - g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], "否") + g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], info[72], "否") } - if info[72] != "" && info[73] != "" { - g.EditFamilyInfo(info[72], info[73], info[74], info[75], info[76], "否") + if info[73] != "" && info[74] != "" { + g.EditFamilyInfo(info[73], info[74], info[75], info[76], info[77], info[78], "否") } - if info[77] != "" && info[78] != "" { - g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], "否") + if info[79] != "" && info[80] != "" { + g.EditFamilyInfo(info[79], info[80], info[81], info[82], info[83], info[84], "否") } - if info[82] != "" && info[83] != "" { - g.EditFamilyInfo(info[82], info[83], info[84], info[85], info[86], "否") + if info[85] != "" && info[86] != "" { + g.EditFamilyInfo(info[85], info[86], info[87], info[88], info[89], info[90], "否") } } else { jsonInfo, _ := json.Marshal(familyAry) overallhandle.WriteLog("del", "删除旧家庭成员数据!", string(jsonInfo)) var familyCont models.FamilyMembers familyCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[62] != "" && info[63] != "" { - g.EditFamilyInfo(info[62], info[63], info[64], info[65], info[66], "否") + if info[61] != "" && info[62] != "" { + g.EditFamilyInfo(info[61], info[62], info[63], info[64], info[65], info[66], "否") } if info[67] != "" && info[68] != "" { - g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], "否") + g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], info[72], "否") } - if info[72] != "" && info[73] != "" { - g.EditFamilyInfo(info[72], info[73], info[74], info[75], info[76], "否") + if info[73] != "" && info[74] != "" { + g.EditFamilyInfo(info[73], info[74], info[75], info[76], info[77], info[78], "否") } - if info[77] != "" && info[78] != "" { - g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], "否") + if info[79] != "" && info[80] != "" { + g.EditFamilyInfo(info[79], info[80], info[81], info[82], info[83], info[84], "否") } - if info[82] != "" && info[83] != "" { - g.EditFamilyInfo(info[82], info[83], info[84], info[85], info[86], "否") + if info[85] != "" && info[86] != "" { + g.EditFamilyInfo(info[85], info[86], info[87], info[88], info[89], info[90], "否") } } } diff --git a/api/version1/personnelapi/analysRxExelect.go b/api/version1/personnelapi/analysRxExelect.go index 8402fd1..6f18f0b 100644 --- a/api/version1/personnelapi/analysRxExelect.go +++ b/api/version1/personnelapi/analysRxExelect.go @@ -128,15 +128,18 @@ func (g *GroupParsingData) ProcessMainTableRongXinNew(info map[int]string, merit userInfo.JobLeve = 6 // 协议"` default: } - if info[11] != "" { //管理类型 + if info[11] != "" { + userInfo.PositionCategory = info[11] + } + if info[12] != "" { //管理类型 var jobInfo models.JobClass - jobInfo.GetCont(map[string]interface{}{"`name`": info[11]}, "`id`") + jobInfo.GetCont(map[string]interface{}{"`name`": info[12]}, "`id`") if jobInfo.Id != 0 { userInfo.JobClass = jobInfo.Id //管理类别"` } } - if info[33] != "" { //微信号 - userInfo.Wechat = info[33] + if info[34] != "" { //微信号 + userInfo.Wechat = info[34] } err := overall.CONSTANT_DB_HR.Create(&userInfo).Error if err != nil { @@ -233,15 +236,18 @@ func (g *GroupParsingData) ProcessMainTableRongXinNew(info map[int]string, merit editInfo["`job_leve`"] = 6 // 协议"` default: } - if info[11] != "" { //管理类型 + if info[11] != "" { + editInfo["PositionCategory"] = info[11] + } + if info[12] != "" { //管理类型 var jobInfo models.JobClass - jobInfo.GetCont(map[string]interface{}{"`name`": info[11]}, "`id`") + jobInfo.GetCont(map[string]interface{}{"`name`": info[12]}, "`id`") if jobInfo.Id != 0 { editInfo["`job_class`"] = jobInfo.Id //管理类别"` } } - if info[33] != "" { //微信号 - editInfo["`wechat`"] = info[33] + if info[34] != "" { //微信号 + editInfo["`wechat`"] = info[34] } editInfo["`eite_time`"] = curryTime editInfo["`is_show_true`"] = 1 @@ -258,34 +264,96 @@ func (g *GroupParsingData) ProcessMainTableRongXinNew(info map[int]string, merit } } //协程处理附属信息 - synPros.Add(1) - go g.OrgChannelInfoRx(info[4], info[5], info[6], info[7], info[8], "电子表格导入数据") //行政组织变更 - synPros.Add(1) - go g.AuxiliaryTableUserRx(info) //人员信息副本(荣信) + // synPros.Add(1) + // go g.OrgChannelInfoRx(info[4], info[5], info[6], info[7], info[8], "电子表格导入数据") //行政组织变更 + // synPros.Add(1) + // go g.AuxiliaryTableUserRx(info) //人员信息副本(荣信) // synPros.Add(1) // go g.PoliticalOutlookEditRx(info) //政治面貌 synPros.Add(1) go g.EditEducationInfoRx(info) //学历信息 - synPros.Add(1) - go g.FamilyMembersRx(info) //家庭成员 - synPros.Add(1) - go g.GrowthExpWitTheGroupRx(info, orgId) //集团内成长经历 - synPros.Add(1) - go g.ExtWorkExpOfTheGroupRx(info) //集团外部工作经历 - synPros.Add(1) - go g.EditExamLevelRx(info, meritsYear) //绩效考核成绩 - synPros.Add(1) - go g.EditRewPunRx(info, rewPunYearsmap) //奖惩记录 - synPros.Add(1) - go g.EditAcaTitleRx(info) //编辑职称 - synPros.Add(1) - go g.EditCerFicRx(info) //编辑证书 - synPros.Add(1) - go g.TalentInventoryNew(info, orgId) //人才盘点 + // synPros.Add(1) + // go g.FamilyMembersRx(info) //家庭成员 + // synPros.Add(1) + // go g.GrowthExpWitTheGroupRx(info, orgId) //集团内成长经历 + // synPros.Add(1) + // go g.ExtWorkExpOfTheGroupRx(info) //集团外部工作经历 + // synPros.Add(1) + // go g.EditExamLevelRx(info, meritsYear) //绩效考核成绩 + // synPros.Add(1) + // go g.EditRewPunRx(info, rewPunYearsmap) //奖惩记录 + // synPros.Add(1) + // go g.EditAcaTitleRx(info) //编辑职称 + // synPros.Add(1) + // go g.EditCerFicRx(info) //编辑证书 + // synPros.Add(1) + // go g.TalentInventoryNew(info, orgId) //人才盘点 + // synPros.Add(1) + // go g.EditTrain(info) //培训 //监听所有协程都完成 synPros.Wait() } +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-09 10:52:06 +@ 功能: 培训记录 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func (g *GroupParsingData) EditTrain(info map[int]string) { + defer synPros.Done() + // var trainInfo []models.TrainingLog + // err := overall.CONSTANT_DB_HR.Where("`userkey` = ?", g.UserKey).Find(&trainInfo).Error + // if err != nil || len(trainInfo) < 1 { + + // } + if info[340] != "" { + TrainEdit(g.UserKey, 1, info[340]) + } + if info[341] != "" { + TrainEdit(g.UserKey, 2, info[341]) + } +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-09 11:09:26 +@ 功能: 数据处理 +*/ +func TrainEdit(userKey int64, insout int, content string) { + var trainInfo models.TrainingLog + overall.CONSTANT_DB_HR.Where("`userkey` = ? AND `insout` = ?", userKey, insout).Find(&trainInfo) + if trainInfo.Id == 0 { + if content != "" { + var writeTrainInfo models.TrainingLog + writeTrainInfo.Insout = insout + writeTrainInfo.Centont = content + writeTrainInfo.Time = time.Now().Unix() + writeTrainInfo.EditTime = time.Now().Unix() + writeTrainInfo.Userkey = userKey + overall.CONSTANT_DB_HR.Create(&writeTrainInfo) + } + } else { + editInfo := overallhandle.MapOut() + editInfo["centont"] = content + editInfo["insout"] = insout + editInfo["editTime"] = time.Now().Unix() + trainInfo.EiteTeamGroupCont(map[string]interface{}{"`id`": trainInfo.Id}, editInfo) + } +} + /* * @ 作者: 秦东 @@ -308,9 +376,9 @@ func (g *GroupParsingData) EditCerFicRx(info map[int]string) { var cerHonList []models.CertificateHonors err := overall.CONSTANT_DB_HR.Where("`userKey` = ?", g.UserKey).Find(&cerHonList).Error if err != nil || len(cerHonList) < 1 { - if info[325] != "" { - titleAry := strings.Split(info[325], ";") - fmt.Printf("证书--%v---%v---%T-->%v\n", g.UserNum, info[325], titleAry, titleAry) + if info[339] != "" { + titleAry := strings.Split(info[339], ";") + fmt.Printf("证书--%v---%v---%T-->%v\n", g.UserNum, info[339], titleAry, titleAry) for i, v := range titleAry { fmt.Printf("证书-%v-->%v\n", i, v) if v != "" { @@ -325,9 +393,9 @@ func (g *GroupParsingData) EditCerFicRx(info map[int]string) { overallhandle.WriteLog("del", "删除旧证书数据!", string(jsonInfo)) var workGroupLogCont models.CertificateHonors workGroupLogCont.DelCont(map[string]interface{}{"`userKey`": g.UserKey}) - if info[325] != "" { - titleAry := strings.Split(info[325], ";") - fmt.Printf("证书--%v---%v---%T-->%v\n", g.UserNum, info[325], titleAry, titleAry) + if info[339] != "" { + titleAry := strings.Split(info[339], ";") + fmt.Printf("证书--%v---%v---%T-->%v\n", g.UserNum, info[339], titleAry, titleAry) for i, v := range titleAry { fmt.Printf("证书-%v-->%v\n", i, v) if v != "" { @@ -362,8 +430,9 @@ func (g *GroupParsingData) EditAcaTitleRx(info map[int]string) { err := overall.CONSTANT_DB_HR.Where("`userKey` = ?", g.UserKey).Find(&acaList).Error if err != nil || len(acaList) < 1 { //新增职称 - if info[322] != "" { - g.InsetAcaInfoRx(info[322], info[323], info[324], "", "") + if info[338] != "" { + // g.InsetAcaInfoRx(info[322], info[323], info[324], "", "") + g.InsetAcaInfoRxNew(info[338]) } } else { @@ -373,8 +442,9 @@ func (g *GroupParsingData) EditAcaTitleRx(info map[int]string) { var workGroupLogCont models.AcademicTitle workGroupLogCont.DelCont(map[string]interface{}{"`userKey`": g.UserKey}) //新增职称 - if info[322] != "" { - g.InsetAcaInfoRx(info[322], info[323], info[324], "", "") + if info[338] != "" { + // g.InsetAcaInfoRx(info[322], info[323], info[324], "", "") + g.InsetAcaInfoRxNew(info[338]) } } } @@ -397,6 +467,16 @@ func (g *GroupParsingData) InsetAcaInfoRx(types, series, speciality, number, tim } +func (g *GroupParsingData) InsetAcaInfoRxNew(timeVal string) { + var acaInfo models.AcademicTitle + acaInfo.TitleAndLevel = timeVal //职称级别"` + + acaInfo.EditTime = time.Now().Unix() //写入时间"` + acaInfo.UserKey = g.UserKey //人员唯一识别符"` + overall.CONSTANT_DB_HR.Create(&acaInfo) + +} + /* * @ 作者: 秦东 @@ -419,10 +499,10 @@ func (g *GroupParsingData) TalentInventoryNew(info map[int]string, orgId string) defer synPros.Done() currentYear := overallhandle.UnixTimeToDay(time.Now().Unix(), 16) switch orgId { - case "296": - EditTalentInventory(g.UserKey, currentYear, info[297], info[298], "", info[296]) + case "312": + EditTalentInventory(g.UserKey, currentYear, info[313], info[314], "", info[312]) default: - EditTalentInventory(g.UserKey, currentYear, info[291], info[292], "", "") + EditTalentInventory(g.UserKey, currentYear, info[313], info[314], "", "") } } @@ -538,13 +618,13 @@ func (g *GroupParsingData) EditAcademicTitleRx(info map[int]string) { func (g *GroupParsingData) EditRewPunRx(info map[int]string, rewPunYearsmap map[int]int) { defer synPros.Done() if val, isOk := rewPunYearsmap[0]; isOk { - g.EditRewPunInfoRx(val, info[304], info[305], info[306], info[307], info[308], info[309]) + g.EditRewPunInfoRx(val, info[320], info[321], info[322], info[323], info[324], info[325]) } if val, isOk := rewPunYearsmap[1]; isOk { - g.EditRewPunInfoRx(val, info[310], info[311], info[312], info[313], info[314], info[315]) + g.EditRewPunInfoRx(val, info[326], info[327], info[328], info[329], info[330], info[331]) } if val, isOk := rewPunYearsmap[2]; isOk { - g.EditRewPunInfoRx(val, info[316], info[317], info[318], info[319], info[320], info[321]) + g.EditRewPunInfoRx(val, info[332], info[333], info[334], info[335], info[336], info[337]) } // if val, isOk := rewPunYearsmap[3]; isOk { // g.EditRewPunInfoRx(val, info[325], info[326], info[327], info[328], info[329], info[330]) @@ -622,13 +702,13 @@ func (g *GroupParsingData) EditRewPunInfoRx(years int, level, rewPunClass, title func (g *GroupParsingData) EditExamLevelRx(info map[int]string, meritsYear map[int]int) { defer synPros.Done() if val, isOk := meritsYear[0]; isOk { - g.EditExamLevelInfoRongXin(info[290], info[291], val) + g.EditExamLevelInfoRongXin(info[306], info[307], val) } if val, isOk := meritsYear[1]; isOk { - g.EditExamLevelInfoRongXin(info[292], info[293], val) + g.EditExamLevelInfoRongXin(info[308], info[309], val) } if val, isOk := meritsYear[2]; isOk { - g.EditExamLevelInfoRongXin(info[294], info[299], val) + g.EditExamLevelInfoRongXin(info[310], info[311], val) } } @@ -654,40 +734,40 @@ func (g *GroupParsingData) ExtWorkExpOfTheGroupRx(info map[int]string) { var workList []models.WorkHistory err := overall.CONSTANT_DB_HR.Where("`key` = ?", g.UserKey).Find(&workList).Error if err != nil || len(workList) < 1 { //没有记录进行新增 - if info[224] != "" { //集团外工作经历1 - g.ExternalWorkGroupLog(info[224], info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236]) + if info[240] != "" { //集团外工作经历1 + g.ExternalWorkGroupLog(info[240], info[241], info[242], info[243], info[244], info[245], info[246], info[247], info[248], info[249], info[250], info[251], info[252]) } - if info[237] != "" { //集团外工作经历2 - g.ExternalWorkGroupLog(info[237], info[238], info[239], info[240], info[241], info[242], info[243], info[244], info[245], info[246], info[247], info[248], info[249]) + if info[253] != "" { //集团外工作经历2 + g.ExternalWorkGroupLog(info[253], info[254], info[255], info[256], info[257], info[258], info[259], info[260], info[261], info[262], info[263], info[264], info[265]) } - if info[250] != "" { //集团外工作经历3 - g.ExternalWorkGroupLog(info[250], info[251], info[252], info[253], info[254], info[255], info[256], info[257], info[258], info[259], info[260], info[261], info[262]) + if info[266] != "" { //集团外工作经历3 + g.ExternalWorkGroupLog(info[266], info[267], info[268], info[269], info[270], info[271], info[272], info[273], info[274], info[275], info[276], info[277], info[278]) } - if info[263] != "" { //集团外工作经历4 - g.ExternalWorkGroupLog(info[263], info[264], info[265], info[266], info[267], info[268], info[269], info[270], info[271], info[272], info[273], info[274], info[275]) + if info[279] != "" { //集团外工作经历4 + g.ExternalWorkGroupLog(info[279], info[280], info[281], info[282], info[283], info[284], info[285], info[286], info[287], info[288], info[289], info[290], info[291]) } - if info[276] != "" { //集团外工作经历5 - g.ExternalWorkGroupLog(info[276], info[277], info[278], info[279], info[280], info[281], info[282], info[283], info[284], info[285], info[286], info[287], info[288]) + if info[292] != "" { //集团外工作经历5 + g.ExternalWorkGroupLog(info[292], info[293], info[294], info[295], info[296], info[297], info[298], info[299], info[230], info[231], info[232], info[233], info[234]) } } else { //已经存在历史记录了 jsonInfo, _ := json.Marshal(workList) overallhandle.WriteLog("del", "删除旧集团外部工作经历数据!", string(jsonInfo)) var workGroupLogCont models.WorkHistory workGroupLogCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[224] != "" { //集团外工作经历1 - g.ExternalWorkGroupLog(info[224], info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236]) + if info[240] != "" { //集团外工作经历1 + g.ExternalWorkGroupLog(info[240], info[241], info[242], info[243], info[244], info[245], info[246], info[247], info[248], info[249], info[250], info[251], info[252]) } - if info[237] != "" { //集团外工作经历2 - g.ExternalWorkGroupLog(info[237], info[238], info[239], info[240], info[241], info[242], info[243], info[244], info[245], info[246], info[247], info[248], info[249]) + if info[253] != "" { //集团外工作经历2 + g.ExternalWorkGroupLog(info[253], info[254], info[255], info[256], info[257], info[258], info[259], info[260], info[261], info[262], info[263], info[264], info[265]) } - if info[250] != "" { //集团外工作经历3 - g.ExternalWorkGroupLog(info[250], info[251], info[252], info[253], info[254], info[255], info[256], info[257], info[258], info[259], info[260], info[261], info[262]) + if info[266] != "" { //集团外工作经历3 + g.ExternalWorkGroupLog(info[266], info[267], info[268], info[269], info[270], info[271], info[272], info[273], info[274], info[275], info[276], info[277], info[278]) } - if info[263] != "" { //集团外工作经历4 - g.ExternalWorkGroupLog(info[263], info[264], info[265], info[266], info[267], info[268], info[269], info[270], info[271], info[272], info[273], info[274], info[275]) + if info[279] != "" { //集团外工作经历4 + g.ExternalWorkGroupLog(info[279], info[280], info[281], info[282], info[283], info[284], info[285], info[286], info[287], info[288], info[289], info[290], info[291]) } - if info[276] != "" { //集团外工作经历5 - g.ExternalWorkGroupLog(info[276], info[277], info[278], info[279], info[280], info[281], info[282], info[283], info[284], info[285], info[286], info[287], info[288]) + if info[292] != "" { //集团外工作经历5 + g.ExternalWorkGroupLog(info[292], info[293], info[294], info[295], info[296], info[297], info[298], info[299], info[300], info[301], info[302], info[303], info[304]) } } } @@ -715,35 +795,35 @@ func (g *GroupParsingData) GrowthExpWitTheGroupRx(info map[int]string, orgId str err := overall.CONSTANT_DB_HR.Where("`key` = ?", g.UserKey).Find(&growInGroup).Error if err != nil || len(growInGroup) < 1 { //没有集团经历,那么进行新增 - if info[93] != "" { //集团内工作经历1 - g.EditGroupInWorkLog(info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], info[105], orgId) + if info[99] != "" { //集团内工作经历1 + g.EditGroupInWorkLog(info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], orgId) } - if info[106] != "" { //集团内工作经历2 - g.EditGroupInWorkLog(info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], info[118], orgId) + if info[113] != "" { //集团内工作经历2 + g.EditGroupInWorkLog(info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], orgId) } - if info[119] != "" { //集团内工作经历3 - g.EditGroupInWorkLog(info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], info[131], orgId) + if info[127] != "" { //集团内工作经历3 + g.EditGroupInWorkLog(info[127], info[128], info[129], info[130], info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], orgId) } - if info[132] != "" { //集团内工作经历4 - g.EditGroupInWorkLog(info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], info[144], orgId) + if info[141] != "" { //集团内工作经历4 + g.EditGroupInWorkLog(info[141], info[142], info[143], info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], orgId) } - if info[145] != "" { //集团内工作经历5 - g.EditGroupInWorkLog(info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], info[157], orgId) + if info[155] != "" { //集团内工作经历5 + g.EditGroupInWorkLog(info[155], info[156], info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], orgId) } - if info[158] != "" { //集团内工作经历6 - g.EditGroupInWorkLog(info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], info[170], orgId) + if info[169] != "" { //集团内工作经历6 + g.EditGroupInWorkLog(info[169], info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) } - if info[171] != "" { //集团内工作经历7 - g.EditGroupInWorkLog(info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], info[183], orgId) + if info[183] != "" { //集团内工作经历7 + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) } - if info[184] != "" { //集团内工作经历8 - g.EditGroupInWorkLog(info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) + if info[197] != "" { //集团内工作经历8 + g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], orgId) } - if info[197] != "" { //集团内工作经历9 - g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], orgId) + if info[211] != "" { //集团内工作经历9 + g.EditGroupInWorkLog(info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) } - if info[210] != "" { //集团内工作经历10 - g.EditGroupInWorkLog(info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], orgId) + if info[225] != "" { //集团内工作经历10 + g.EditGroupInWorkLog(info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236], info[237], info[238], orgId) } } else { //有集团经历,那么删除旧的经历再新增 @@ -751,35 +831,35 @@ func (g *GroupParsingData) GrowthExpWitTheGroupRx(info map[int]string, orgId str overallhandle.WriteLog("del", "删除旧集团内部经历数据!", string(jsonInfo)) var workGroupLogCont models.InsideWorkHistory workGroupLogCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[93] != "" { //集团内工作经历1 - g.EditGroupInWorkLog(info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], info[105], orgId) + if info[99] != "" { //集团内工作经历1 + g.EditGroupInWorkLog(info[99], info[100], info[101], info[102], info[103], info[104], info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], orgId) } - if info[106] != "" { //集团内工作经历2 - g.EditGroupInWorkLog(info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], info[118], orgId) + if info[113] != "" { //集团内工作经历2 + g.EditGroupInWorkLog(info[113], info[114], info[115], info[116], info[117], info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], orgId) } - if info[119] != "" { //集团内工作经历3 - g.EditGroupInWorkLog(info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], info[131], orgId) + if info[127] != "" { //集团内工作经历3 + g.EditGroupInWorkLog(info[127], info[128], info[129], info[130], info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], orgId) } - if info[132] != "" { //集团内工作经历4 - g.EditGroupInWorkLog(info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], info[144], orgId) + if info[141] != "" { //集团内工作经历4 + g.EditGroupInWorkLog(info[141], info[142], info[143], info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], orgId) } - if info[145] != "" { //集团内工作经历5 - g.EditGroupInWorkLog(info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], info[157], orgId) + if info[155] != "" { //集团内工作经历5 + g.EditGroupInWorkLog(info[155], info[156], info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], orgId) } - if info[158] != "" { //集团内工作经历6 - g.EditGroupInWorkLog(info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], info[170], orgId) + if info[169] != "" { //集团内工作经历6 + g.EditGroupInWorkLog(info[169], info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) } - if info[171] != "" { //集团内工作经历7 - g.EditGroupInWorkLog(info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], info[183], orgId) + if info[183] != "" { //集团内工作经历7 + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) } - if info[184] != "" { //集团内工作经历8 - g.EditGroupInWorkLog(info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], info[196], orgId) + if info[197] != "" { //集团内工作经历8 + g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], info[210], orgId) } - if info[197] != "" { //集团内工作经历9 - g.EditGroupInWorkLog(info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], info[209], orgId) + if info[211] != "" { //集团内工作经历9 + g.EditGroupInWorkLog(info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], info[223], info[224], orgId) } - if info[210] != "" { //集团内工作经历10 - g.EditGroupInWorkLog(info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], info[222], orgId) + if info[225] != "" { //集团内工作经历10 + g.EditGroupInWorkLog(info[225], info[226], info[227], info[228], info[229], info[230], info[231], info[232], info[233], info[234], info[235], info[236], info[237], info[238], orgId) } } } @@ -806,40 +886,40 @@ func (g *GroupParsingData) FamilyMembersRx(info map[int]string) { var familyAry []models.FamilyMembers err := overall.CONSTANT_DB_HR.Where("`key` = ?", g.UserKey).Find(&familyAry).Error if err != nil || len(familyAry) < 1 { //不存在,新增 - if info[60] != "" && info[61] != "" { - g.EditFamilyInfo(info[60], info[61], info[62], info[63], info[64], "否") + if info[61] != "" && info[62] != "" { + g.EditFamilyInfo(info[61], info[62], info[63], info[64], info[65], info[66], "否") } - if info[65] != "" && info[66] != "" { - g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], "否") + if info[67] != "" && info[68] != "" { + g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], info[72], "否") } - if info[70] != "" && info[71] != "" { - g.EditFamilyInfo(info[70], info[71], info[72], info[73], info[74], "否") + if info[73] != "" && info[74] != "" { + g.EditFamilyInfo(info[73], info[74], info[75], info[76], info[77], info[78], "否") } - if info[75] != "" && info[76] != "" { - g.EditFamilyInfo(info[75], info[76], info[77], info[78], info[79], "否") + if info[79] != "" && info[80] != "" { + g.EditFamilyInfo(info[79], info[80], info[81], info[82], info[83], info[84], "否") } - if info[80] != "" && info[81] != "" { - g.EditFamilyInfo(info[80], info[81], info[82], info[83], info[84], "否") + if info[85] != "" && info[86] != "" { + g.EditFamilyInfo(info[85], info[86], info[87], info[88], info[89], info[90], "否") } } else { //存在,删除旧数据后,再新增 jsonInfo, _ := json.Marshal(familyAry) overallhandle.WriteLog("del", "删除旧家庭成员数据!", string(jsonInfo)) var familyCont models.FamilyMembers familyCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[60] != "" && info[61] != "" { - g.EditFamilyInfo(info[60], info[61], info[62], info[63], info[64], "否") + if info[61] != "" && info[62] != "" { + g.EditFamilyInfo(info[61], info[62], info[63], info[64], info[65], info[66], "否") } - if info[65] != "" && info[66] != "" { - g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], "否") + if info[67] != "" && info[68] != "" { + g.EditFamilyInfo(info[67], info[68], info[69], info[70], info[71], info[72], "否") } - if info[70] != "" && info[71] != "" { - g.EditFamilyInfo(info[70], info[71], info[72], info[73], info[74], "否") + if info[73] != "" && info[74] != "" { + g.EditFamilyInfo(info[73], info[74], info[75], info[76], info[77], info[78], "否") } - if info[75] != "" && info[76] != "" { - g.EditFamilyInfo(info[75], info[76], info[77], info[78], info[79], "否") + if info[79] != "" && info[80] != "" { + g.EditFamilyInfo(info[79], info[80], info[81], info[82], info[83], info[84], "否") } - if info[80] != "" && info[81] != "" { - g.EditFamilyInfo(info[80], info[81], info[82], info[83], info[84], "否") + if info[85] != "" && info[86] != "" { + g.EditFamilyInfo(info[85], info[86], info[87], info[88], info[89], info[90], "否") } } } @@ -865,18 +945,21 @@ func (g *GroupParsingData) EditEducationInfoRx(info map[int]string) { defer synPros.Done() var mySchoolLog []models.PersonnelEducation err := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`key` = ?", g.UserKey).Find(&mySchoolLog).Error - if err != nil || len(mySchoolLog) < 1 { //不存在,新增 - if info[35] != "" || info[37] != "" { //第一学历 - g.AddOneSchollLog(info[35], info[36], "", info[37], "", "", info[38], info[39], info[40], 2) + + xul, _ := json.Marshal(info) + fmt.Printf("\n\n获取得学历--------->%v\n\n", string(xul)) //专业"` + if err != nil || len(mySchoolLog) < 1 { //不存在,新增 + if info[36] != "" || info[38] != "" { //第一学历 + g.AddOneSchollLog(info[36], "1", "", info[38], info[37], "", info[39], info[40], info[41], 2) } - if info[41] != "" || info[43] != "" { //最高学历 - g.AddOneSchollLog(info[41], info[42], "", info[43], "", "", info[44], info[45], info[46], 3) + if info[42] != "" || info[44] != "" { //最高学历 + g.AddOneSchollLog(info[42], "1", "", info[44], info[43], "", info[45], info[46], info[47], 3) } - if info[47] != "" || info[49] != "" { //其他学历 - g.AddOneSchollLog(info[47], info[48], "", info[49], "", "", info[50], info[51], info[52], 1) + if info[48] != "" || info[50] != "" { //其他学历 + g.AddOneSchollLog(info[48], "1", "", info[50], info[49], "", info[51], info[52], info[53], 1) } - if info[53] != "" || info[55] != "" { //其他学历 - g.AddOneSchollLog(info[53], info[54], "", info[55], "", "", info[56], info[57], info[58], 1) + if info[54] != "" || info[56] != "" { //其他学历 + g.AddOneSchollLog(info[54], "1", "", info[56], info[55], "", info[57], info[58], info[59], 1) } } else { //存在,删除旧的,再新增 @@ -884,17 +967,17 @@ func (g *GroupParsingData) EditEducationInfoRx(info map[int]string) { overallhandle.WriteLog("del", "删除旧集团外部工作经历数据!", string(jsonInfo)) var delScho models.PersonnelEducation delScho.DelCont(map[string]interface{}{"`key`": g.UserKey}) - if info[35] != "" || info[37] != "" { //第一学历 - g.AddOneSchollLog(info[35], info[36], "", info[37], "", "", info[38], info[39], info[40], 2) + if info[36] != "" || info[38] != "" { //第一学历 + g.AddOneSchollLog(info[36], "1", "", info[38], info[37], "", info[39], info[40], info[41], 2) } - if info[41] != "" || info[43] != "" { //最高学历 - g.AddOneSchollLog(info[41], info[42], "", info[43], "", "", info[44], info[45], info[46], 3) + if info[42] != "" || info[44] != "" { //最高学历 + g.AddOneSchollLog(info[42], "1", "", info[44], info[43], "", info[45], info[46], info[47], 3) } - if info[47] != "" || info[49] != "" { //其他学历 - g.AddOneSchollLog(info[47], info[48], "", info[49], "", "", info[50], info[51], info[52], 1) + if info[48] != "" || info[50] != "" { //其他学历 + g.AddOneSchollLog(info[48], "1", "", info[50], info[49], "", info[51], info[52], info[53], 1) } - if info[53] != "" || info[55] != "" { //其他学历 - g.AddOneSchollLog(info[53], info[54], "", info[55], "", "", info[56], info[57], info[58], 1) + if info[54] != "" || info[56] != "" { //其他学历 + g.AddOneSchollLog(info[54], "1", "", info[56], info[55], "", info[57], info[58], info[59], 1) } } } @@ -987,55 +1070,55 @@ func (g *GroupParsingData) AuxiliaryTableUserRx(info map[int]string) { if err != nil { //附属内容不存在,进行新增。 myInfo.Key = g.UserKey //Key"` myInfo.Number = g.UserNum //员工工号;index"` - myInfo.Idcardno = info[25] //身份证号 - myInfo.Mobilephone = info[30] //手机号码"` - myInfo.Email = info[34] //电子邮件"` - myInfo.Gender = genderToInt(info[12]) //性别(1:男性;2:女性;3:中性)"` - if info[13] != "" { - myInfo.Birthday = overallhandle.ExcelDateToDate(info[13]).Unix() //生日"` - } - myInfo.Myfolk = info[15] //民族"` - myInfo.Nativeplace = info[21] //籍贯"` - if info[26] != "" { - myInfo.Idcardstartdate = overallhandle.ExcelDateToDate(info[26]).Unix() //身份证有效期开始"` - } + myInfo.Idcardno = info[26] //身份证号 + myInfo.Mobilephone = info[31] //手机号码"` + myInfo.Email = info[35] //电子邮件"` + myInfo.Gender = genderToInt(info[13]) //性别(1:男性;2:女性;3:中性)"` + if info[14] != "" { + myInfo.Birthday = overallhandle.ExcelDateToDate(info[14]).Unix() //生日"` + } + myInfo.Myfolk = info[16] //民族"` + myInfo.Nativeplace = info[22] //籍贯"` if info[27] != "" { - myInfo.Idcardenddate = overallhandle.ExcelDateToDate(info[27]).Unix() //身份证有效期结束"` + myInfo.Idcardstartdate = overallhandle.ExcelDateToDate(info[27]).Unix() //身份证有效期开始"` } - myInfo.Idcardaddress = info[29] //身份证地址"` - myInfo.Health = healthToInt(info[17]) //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"` - myInfo.Maritalstatus = maritalstatusToInt(info[16]) //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"` - myInfo.Currentresidence = info[20] //现居住地址"` + if info[28] != "" { + myInfo.Idcardenddate = overallhandle.ExcelDateToDate(info[28]).Unix() //身份证有效期结束"` + } + myInfo.Idcardaddress = info[30] //身份证地址"` + myInfo.Health = healthToInt(info[18]) //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"` + myInfo.Maritalstatus = maritalstatusToInt(info[17]) //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"` + myInfo.Currentresidence = info[21] //现居住地址"` myInfo.Time = time.Now().Unix() //创建时间"` - myInfo.Constellation = consteToInt(info[23]) //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"` - if info[85] == "是" { + myInfo.Constellation = consteToInt(info[24]) //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"` + if info[91] == "是" { myInfo.Isdoubleworker = 1 //是否双职工(1:是;2:否)"` g.WorkingCoupleRx(info, true) } else { myInfo.Isdoubleworker = 2 //是否双职工(1:是;2:否)"` g.WorkingCoupleRx(info, false) } - if info[300] != "" { - myInfo.Jobstartdate = overallhandle.ExcelDateToDate(info[300]).Unix() //参加工作日期"` + if info[316] != "" { + myInfo.Jobstartdate = overallhandle.ExcelDateToDate(info[316]).Unix() //参加工作日期"` } - if info[302] != "" { - myInfo.Entrydate = overallhandle.ExcelDateToDate(info[302]).Unix() //入职日期"` + if info[318] != "" { + myInfo.Entrydate = overallhandle.ExcelDateToDate(info[318]).Unix() //入职日期"` } - if info[18] != "" { - myInfo.PoliticalOutlook = politiToInt(info[18]) //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` + if info[19] != "" { + myInfo.PoliticalOutlook = politiToInt(info[19]) //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` } // if info[18] != "" { // myInfo.PoliticalOutlook = politiToInt(info[18]) //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` // } - myInfo.MaritalstatusCn = info[16] //婚姻状况汉字说明"` - myInfo.ConstellationingCn = info[23] //星座汉字说明"` - myInfo.PoliticalOutlookCn = info[18] //政治面貌汉字说明"` - myInfo.HealthCn = info[17] //健康状况中文说明"` - myInfo.CareerPlanning = info[297] //职业生涯规划"` - myInfo.HelpObtained = info[298] //个人期望从组织获得的帮助"` - myInfo.Hobby = info[24] //爱好"` - myInfo.DomicileType = info[19] //户籍类型 - if info[28] == "是" { + myInfo.MaritalstatusCn = info[17] //婚姻状况汉字说明"` + myInfo.ConstellationingCn = info[24] //星座汉字说明"` + myInfo.PoliticalOutlookCn = info[19] //政治面貌汉字说明"` + myInfo.HealthCn = info[18] //健康状况中文说明"` + myInfo.CareerPlanning = info[313] //职业生涯规划"` + myInfo.HelpObtained = info[314] //个人期望从组织获得的帮助"` + myInfo.Hobby = info[25] //爱好"` + myInfo.DomicileType = info[20] //户籍类型 + if info[29] == "是" { myInfo.IdCardnoLongTerm = 1 //身份证是否长期有效(1:是;2:否) } else { @@ -1043,62 +1126,62 @@ func (g *GroupParsingData) AuxiliaryTableUserRx(info map[int]string) { } myInfo.MobileShortNumber = info[31] //手机小号 - myInfo.Channel = JoinJobChanel(info[299]) //入职渠道(1:社会招聘;2:校园招聘;3:内部推荐) + myInfo.Channel = JoinJobChanel(info[315]) //入职渠道(1:社会招聘;2:校园招聘;3:内部推荐) myInfo.BloodType = info[22] //血型 overall.CONSTANT_DB_HR.Create(&myInfo) } else { //附属内容存在,进行编辑。 editCont := overallhandle.MapOut() - editCont["`idcardno`"] = info[25] //身份证号 - editCont["`mobilephone`"] = info[30] //电话号码 - editCont["`email`"] = info[34] //邮箱 - editCont["`gender`"] = genderToInt(info[12]) //性别 - if info[13] != "" { - editCont["`birthday`"] = overallhandle.ExcelDateToDate(info[13]).Unix() - } - editCont["`myfolk`"] = info[15] - editCont["`nativeplace`"] = info[21] //籍贯 - if info[26] != "" { - editCont["`idcardstartdate`"] = overallhandle.ExcelDateToDate(info[26]).Unix() - } + editCont["`idcardno`"] = info[26] //身份证号 + editCont["`mobilephone`"] = info[31] //电话号码 + editCont["`email`"] = info[35] //邮箱 + editCont["`gender`"] = genderToInt(info[13]) //性别 + if info[14] != "" { + editCont["`birthday`"] = overallhandle.ExcelDateToDate(info[14]).Unix() + } + editCont["`myfolk`"] = info[16] + editCont["`nativeplace`"] = info[22] //籍贯 if info[27] != "" { - editCont["`idcardenddate`"] = overallhandle.ExcelDateToDate(info[27]).Unix() - } - editCont["`idcardaddress`"] = info[29] //身份证地址 - editCont["`health`"] = healthToInt(info[17]) //健康状况 - editCont["`maritalstatus`"] = maritalstatusToInt(info[16]) //婚姻 - editCont["`currentresidence`"] = info[20] //现居住地址 - editCont["`constellationing`"] = consteToInt(info[23]) //星座 - if info[85] == "是" { + editCont["`idcardstartdate`"] = overallhandle.ExcelDateToDate(info[27]).Unix() + } + if info[28] != "" { + editCont["`idcardenddate`"] = overallhandle.ExcelDateToDate(info[28]).Unix() + } + editCont["`idcardaddress`"] = info[30] //身份证地址 + editCont["`health`"] = healthToInt(info[18]) //健康状况 + editCont["`maritalstatus`"] = maritalstatusToInt(info[17]) //婚姻 + editCont["`currentresidence`"] = info[21] //现居住地址 + editCont["`constellationing`"] = consteToInt(info[24]) //星座 + if info[91] == "是" { editCont["`isdoubleworker`"] = 1 //是否双职工(1:是;2:否)"` g.WorkingCoupleRx(info, true) } else { editCont["`isdoubleworker`"] = 2 //是否双职工(1:是;2:否)"` g.WorkingCoupleRx(info, false) } - if info[300] != "" { - editCont["`jobstartdate`"] = overallhandle.ExcelDateToDate(info[303]).Unix() + if info[316] != "" { + editCont["`jobstartdate`"] = overallhandle.ExcelDateToDate(info[316]).Unix() } - if info[302] != "" { - editCont["`entrydate`"] = overallhandle.ExcelDateToDate(info[305]).Unix() + if info[318] != "" { + editCont["`entrydate`"] = overallhandle.ExcelDateToDate(info[318]).Unix() } - if info[18] != "" { - editCont["`political_outlook`"] = politiToInt(info[18]) + if info[19] != "" { + editCont["`political_outlook`"] = politiToInt(info[19]) } - editCont["`maritalstatus_cn`"] = info[16] - editCont["`constellationing_cn`"] = info[23] - editCont["`political_outlook_cn`"] = info[18] - editCont["`health_cn`"] = info[17] - editCont["`career_planning`"] = info[297] - editCont["`help_obtained`"] = info[298] - editCont["`hobby`"] = info[24] - editCont["`domicile_type`"] = info[19] - if info[28] == "是" { + editCont["`maritalstatus_cn`"] = info[17] + editCont["`constellationing_cn`"] = info[24] + editCont["`political_outlook_cn`"] = info[19] + editCont["`health_cn`"] = info[18] + editCont["`career_planning`"] = info[313] + editCont["`help_obtained`"] = info[314] + editCont["`hobby`"] = info[25] + editCont["`domicile_type`"] = info[20] + if info[29] == "是" { editCont["`idCardnoLongTerm`"] = 1 //身份证是否长期有效(1:是;2:否) } else { editCont["`idCardnoLongTerm`"] = 2 //身份证是否长期有效(1:是;2:否) } editCont["`mobileShortNumber`"] = info[31] - editCont["`channel`"] = JoinJobChanel(info[299]) + editCont["`channel`"] = JoinJobChanel(info[315]) editCont["`bloodType`"] = info[22] editCont["`time`"] = time.Now().Unix() myInfo.EiteCont(map[string]interface{}{"`key`": g.UserKey}, editCont) @@ -1132,24 +1215,24 @@ func (g *GroupParsingData) WorkingCoupleRx(info map[int]string, isTrue bool) { } else { oldId := int64(0) for _, v := range doubleWorkMan { - if v.Name == info[86] { + if v.Name == info[92] { oldId = v.Id } } if oldId != 0 { //存在,数据编辑 editInfo := overallhandle.MapOut() - editInfo["`name`"] = info[86] - editInfo["`company`"] = info[87] - editInfo["`department`"] = info[88] - editInfo["`position`"] = info[90] - editInfo["`workPosit`"] = info[90] - editInfo["`workUnit`"] = info[89] + editInfo["`name`"] = info[92] + editInfo["`company`"] = info[93] + editInfo["`department`"] = info[94] + editInfo["`position`"] = info[96] + editInfo["`workPosit`"] = info[96] + editInfo["`workUnit`"] = info[95] // editInfo["`levele`"] = info[89] - if info[91] != "" { - editInfo["`joinTime`"] = overallhandle.ExcelDateToDate(info[94]).Unix() + if info[97] != "" { + editInfo["`joinTime`"] = overallhandle.ExcelDateToDate(info[97]).Unix() } - editInfo["`tel`"] = info[92] + editInfo["`tel`"] = info[98] editInfo["`time`"] = time.Now().Unix() editInfo["`state`"] = 1 var editCont models.DoubleWorker @@ -1189,18 +1272,18 @@ func NewAddDoubleWorkRx(userKey int64, userNum string, info map[int]string) { var inSetInfo models.DoubleWorker inSetInfo.Key = userKey // inSetInfo.Number = userNum //"` - inSetInfo.Name = info[86] //姓名"` - inSetInfo.Company = info[87] //所在公司"` - inSetInfo.Department = info[88] //所在部门"` - inSetInfo.Position = info[90] //所在岗位"` - inSetInfo.WorkUnit = info[89] - inSetInfo.WorkPosit = info[90] + inSetInfo.Name = info[92] //姓名"` + inSetInfo.Company = info[93] //所在公司"` + inSetInfo.Department = info[94] //所在部门"` + inSetInfo.Position = info[96] //所在岗位"` + inSetInfo.WorkUnit = info[95] + inSetInfo.WorkPosit = info[96] // inSetInfo.Levele = info[89] - if info[91] != "" { - inSetInfo.JoinTime = overallhandle.ExcelDateToDate(info[94]).Unix() + if info[97] != "" { + inSetInfo.JoinTime = overallhandle.ExcelDateToDate(info[97]).Unix() } - inSetInfo.Tel = info[92] //联系方式"` + inSetInfo.Tel = info[98] //联系方式"` inSetInfo.Time = time.Now().Unix() //创建时间"` inSetInfo.State = 1 //状态(1:启用;2:禁用;3:删除)` overall.CONSTANT_DB_HR.Create(&inSetInfo) diff --git a/api/version1/personnelapi/controll.go b/api/version1/personnelapi/controll.go index 56db45d..066a1d5 100644 --- a/api/version1/personnelapi/controll.go +++ b/api/version1/personnelapi/controll.go @@ -642,6 +642,12 @@ func CureeRunRules(orgId int64) (rules GenesInfo, cureeOrgId int64, err error) { # */ func (g *GenesInfo) CountOrgTeamsIsDay(dats string) (teamIsDay []workgroup.TeamsRules, err error) { + if g.TypeId != 66813772706107392 { + teamAry, _ := g.GainChangBaiTeams(dats) + if len(teamAry) > 0 { + teamIsDay = append(teamIsDay, teamAry...) + } + } //获取源点起始工作时间段 g.BegainTime = overallhandle.UnixTimeToDay(g.StartTime, 14) g.TypeIdStr = strconv.FormatInt(g.TypeId, 10) @@ -799,3 +805,37 @@ func (g *GenesInfo) CountOrgTeamsIsDay(dats string) (teamIsDay []workgroup.Teams } return teamIsDay, nil } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-03 11:20:37 +@ 功能: 获取某天长白班人员 +*/ +func (g *GenesInfo) GainChangBaiTeams(dats string) (teamIsDay []workgroup.TeamsRules, err error) { + var zuoXiCbTime []workgroup.WorkingTimePeriod + overall.CONSTANT_DB_HR.Where("`state` = 1 AND `type_id` = 66813772706107392").Order("`sort` ASC").Find(&zuoXiCbTime) + //长白轮询规则 + var lunXunShiXu []workgroup.TeamsRules + overall.CONSTANT_DB_HR.Where("`ruleTypeId` = 66813772706107392").Find(&lunXunShiXu) + var wvTimeAll overallhandle.DateTimeTotimes + wvTimeAll.BaisStrToTime(dats) + yearInt, _ := strconv.Atoi(wvTimeAll.Years) + monthInt, _ := strconv.Atoi(wvTimeAll.Months) + daysInt, _ := strconv.Atoi(wvTimeAll.Days) + zhouJi := overallhandle.ZellerFunction2Week(yearInt, monthInt, daysInt) + key := 0 + if zhouJi-1 > 0 { + if zhouJi-1 > len(lunXunShiXu) { + key = len(lunXunShiXu) - 1 + } else { + key = zhouJi - 1 + } + + } else { + key = 0 + } + banZuAry := lunXunShiXu[key] + teamIsDay = append(teamIsDay, banZuAry) + return +} diff --git a/api/version1/personnelapi/mancont.go b/api/version1/personnelapi/mancont.go index 57dd398..d1755b0 100644 --- a/api/version1/personnelapi/mancont.go +++ b/api/version1/personnelapi/mancont.go @@ -459,10 +459,13 @@ func (s *StaffApi) PersonnelPositioning(c *gin.Context) { var manInfo models.ManCont switch requestData.Id { case "224": - manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`") - postCallBack.Data[i].UserOrgName = "恒信中碳氢能源科技(山东)有限公司" + manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`", "`company`") + var orgInfo models.AdministrativeOrganization + orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") + postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo + sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` @@ -499,15 +502,18 @@ func (s *StaffApi) PersonnelPositioning(c *gin.Context) { sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921MA94AF5H3N" //userOrgCode"` //所属单位唯一标志 - sendPeople.UserOrgName = "恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 + sendPeople.UserOrgName = orgInfo.Name //"恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } case "309": - manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`") - postCallBack.Data[i].UserOrgName = "恒信中碳氢能源科技(山东)有限公司" + manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`", "`company`") + var orgInfo models.AdministrativeOrganization + orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") + postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo + sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` @@ -544,15 +550,18 @@ func (s *StaffApi) PersonnelPositioning(c *gin.Context) { sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921MA94AF5H3N" //userOrgCode"` //所属单位唯一标志 - sendPeople.UserOrgName = "恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 + sendPeople.UserOrgName = orgInfo.Name //"恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } default: - manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo}, "`name`", "`key`", "`mobilephone`") - postCallBack.Data[i].UserOrgName = "山东恒信高科能源有限公司" + manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo}, "`name`", "`key`", "`mobilephone`", "`company`") + var orgInfo models.AdministrativeOrganization + orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") + postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo + sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` @@ -589,7 +598,7 @@ func (s *StaffApi) PersonnelPositioning(c *gin.Context) { sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921328482832M" //userOrgCode"` //所属单位唯一标志 - sendPeople.UserOrgName = "山东恒信高科能源有限公司" //userOrgName"` //所属单位名称 + sendPeople.UserOrgName = orgInfo.Name //"山东恒信高科能源有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } diff --git a/api/version1/personnelapi/orgUserRole.go b/api/version1/personnelapi/orgUserRole.go index 58dfc5e..ee05ff3 100644 --- a/api/version1/personnelapi/orgUserRole.go +++ b/api/version1/personnelapi/orgUserRole.go @@ -3,10 +3,12 @@ package personnelapi import ( "hr_server/models" "hr_server/models/hrmodels" + "hr_server/models/workgroup" "hr_server/overall" "hr_server/overall/overallhandle" "sort" "strconv" + "strings" "github.com/gin-gonic/gin" ) @@ -32,10 +34,10 @@ func (s *StaffApi) GainSunOrgAndUser(c *gin.Context) { var requestData overallhandle.ConstId err := c.ShouldBindJSON(&requestData) if err != nil { - requestData.Id = "309" + requestData.Id = "313" } if requestData.Id == "" { - requestData.Id = "309" + requestData.Id = "313" } var sendInfo OrgGainPeopel orgIdInt, _ := strconv.ParseInt(requestData.Id, 10, 64) @@ -273,3 +275,280 @@ func (o *OrgGainPeopel) SearchOrgCont(name string) { } } } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-03 10:36:25 +@ 功能: 人员列表 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func (s *StaffApi) PeopleList(c *gin.Context) { + var requestData peopleList + c.ShouldBindJSON(&requestData) + if requestData.Page < 0 { + requestData.Page = 1 + } + if requestData.PageSize < 0 { + requestData.PageSize = 10 + } + gormDb := overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`").Where("`number` NOT LIKE ?", "%W%") + 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.Position != 0 { //职位 + gormDb = gormDb.Where("position = ?", requestData.Position) + } + if len(requestData.EmpType) > 0 { //用工关系 + gormDb = gormDb.Where("emp_type IN ?", requestData.EmpType) + } + if requestData.Role != "" { //角色 + gormDb = gormDb.Where("FIND_IN_SET(?,`role`)", requestData.Role) + } + var banZu []workgroup.TeamsRules + var ruleTypeId int64 + var ruleTypeName string + //查询行政组织 + if requestData.AdminOrg != 0 { + var sunAry overallhandle.AllSunList[int64] + sunAry.GetAllSunOrg(requestData.AdminOrg) + sunAry.SunList = append(sunAry.SunList, requestData.AdminOrg) //获取本行政组织及子行政组织 + gormDb = gormDb.Where("admin_org IN ?", sunAry.SunList) //获取本组织下的数据 + if requestData.Days != "" { //判断有无日期 + menuCont, _, err := CureeRunRules(requestData.AdminOrg) //确定当前行政组织用哪一个轮询规则 + if err != nil { + overallhandle.Result(200, err, c, "此行政组织还未设定班组轮询规则!") + return + } + banZu, err = menuCont.CountOrgTeamsIsDay(requestData.Days) //获取轮询班组 + if err == nil { + var dayTeamsId []int64 //获取当天有人员上班的班组 + for _, v := range banZu { + if v.CycleWorkTime != 0 && !overallhandle.IsInTrue(v.TeamsId, dayTeamsId) { + dayTeamsId = append(dayTeamsId, v.TeamsId) + } + ruleTypeId = v.RuleTypeId + ruleTypeName = v.RuleTypeName + } + //判断是否按班组查询 + if requestData.Teamid != 0 { + if overallhandle.IsInTrue(requestData.Teamid, dayTeamsId) { + gormDb = gormDb.Where("teamid = ?", requestData.Teamid) + } else { + overallhandle.Result(200, err, c, "当天此行政组织内的此班组处于休息状态!") + return + } + } else { + if len(dayTeamsId) > 0 { + gormDb = gormDb.Where("teamid IN ?", dayTeamsId) + } + } + } else { + if requestData.Teamid != 0 { + gormDb = gormDb.Where("teamid = ?", requestData.Teamid) + } + } + } else { + if requestData.Teamid != 0 { + gormDb = gormDb.Where("teamid = ?", requestData.Teamid) + } + } + } else { + if requestData.Teamid != 0 { //班组 + gormDb = gormDb.Where("teamid = ?", requestData.Teamid) + } + } + //查询共多少数据 + var total int64 + totalErr := gormDb.Count(&total).Error + if totalErr != nil { + total = 0 + } + var idAry []int64 + gormDbs := overallhandle.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize) + err := gormDbs.Find(&idAry).Error + var positionAry []peopleManOutList + if err != nil || len(idAry) < 1 { + overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(positionAry)), positionAry, c) + return + } + var manContList []models.ManCont + err = overall.CONSTANT_DB_HR.Where("`id` IN ?", idAry).Find(&manContList).Error + if err != nil || len(manContList) < 1 { + overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(positionAry)), positionAry, c) + return + } + // fmt.Printf("banzu--->%v\n\n\n", banZu) + // return + //计算人员属性 + var guoDuMan []models.ManCont + var peopelList ManTableList + for i, v := range manContList { + + if (i+1)%50 == 0 { + synPro.Add(1) + go peopelList.SnycChundSub(guoDuMan, requestData.AdminOrg, requestData.Days) + guoDuMan = []models.ManCont{} + } else { + guoDuMan = append(guoDuMan, v) + } + + } + if len(guoDuMan) > 0 { + synPro.Add(1) + go peopelList.SnycChundSub(guoDuMan, requestData.AdminOrg, requestData.Days) + guoDuMan = []models.ManCont{} + } + synPro.Wait() + positionAry = peopelList.List + sendExpand := overallhandle.MapOut() + var sendRuleInfo DaysTeamsRuler + if len(banZu) > 0 { + sendRuleInfo.RuleTypeId = strconv.FormatInt(ruleTypeId, 10) + sendRuleInfo.RuleTypeName = ruleTypeName + + // var workTimePer []workgroup.WorkingTimePeriod + // overall.CONSTANT_DB_HR.Where("`type_id` = ?", ruleTypeId).Find(&workTimePer) + // var teamRuleMap []DaysTeamsRulerInfo + // if len(workTimePer) > 0 { + // for _, v := range workTimePer { + // for _, bv := range banZu { + // if v.Id == bv.CycleWorkTime { + // var teamRuleInfo DaysTeamsRulerInfo + // teamRuleInfo.TeamsId = strconv.FormatInt(bv.TeamsId, 10) //生产班组ID + // teamRuleInfo.TeamsName = bv.TeamsName //生产班组名称 + // teamRuleInfo.RuleId = strconv.FormatInt(v.Id, 10) //规则ID + // teamRuleInfo.RuleName = v.Name //规则名称 + // teamRuleInfo.StartTime = v.StartTime //开始时间 + // teamRuleInfo.EndTime = v.EndTime //结束时间 + // teamRuleMap = append(teamRuleMap, teamRuleInfo) + // } + // } + // } + // } + var teamRuleMap []DaysTeamsRulerInfo + for _, bv := range banZu { + ruleSetUp := GetRuleSetup(bv.CycleWorkTime) + var teamRuleInfo DaysTeamsRulerInfo + teamRuleInfo.TeamsId = strconv.FormatInt(bv.TeamsId, 10) //生产班组ID + teamRuleInfo.TeamsName = bv.TeamsName //生产班组名称 + teamRuleInfo.RuleId = strconv.FormatInt(ruleSetUp.Id, 10) //规则ID + teamRuleInfo.RuleName = ruleSetUp.Name //规则名称 + teamRuleInfo.StartTime = ruleSetUp.StartTime //开始时间 + teamRuleInfo.EndTime = ruleSetUp.EndTime //结束时间 + teamRuleInfo.List = CurrentTreamPeopel(bv.TeamsId, positionAry) + teamRuleMap = append(teamRuleMap, teamRuleInfo) + } + sort.Slice(teamRuleMap, func(i, j int) bool { + return teamRuleMap[i].StartTime < teamRuleMap[j].StartTime + }) + sendRuleInfo.List = teamRuleMap + + } + sendExpand["ruler"] = sendRuleInfo + + overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(positionAry)), positionAry, c, sendExpand) +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-03 14:15:29 +@ 功能: 协程处理事务 +*/ +func (m *ManTableList) SnycChundSub(list []models.ManCont, orgId int64, days string) { + defer synPro.Done() + for _, v := range list { + //计算调班人员数据 + if days != "" { + v = Shiftdjustment(days, v) + // fmt.Printf("\n\n\n\n结果:%v\n\n\n\n", v) + } + var staffInfo peopleManOutList + staffInfo.ManCont = v + var getSpur models.Position + getWhe := overallhandle.MapOut() + if v.Position != 0 { + getWhe["id"] = v.Position + getSpur.GetCont(getWhe, "name", "person_in_charge") + } + staffInfo.PositionName = getSpur.Name + staffInfo.KeyStr = strconv.FormatInt(v.Key, 10) + + //公司 + if v.Company != 0 { + staffInfo.CompanyName = OrgContOut(v.Company) + } + //主部门 + if v.MainDeparment != 0 { + staffInfo.MainDeparmentName = OrgContOut(v.MainDeparment) + } + //二级著部门 + if v.SunMainDeparment != 0 { + staffInfo.SunMainDeparmentName = OrgContOut(v.SunMainDeparment) + } + var orgContTypeCont models.OrgContType + orgContTypeCont.GetCont(map[string]interface{}{"`id`": v.AdminOrg}, "`name`", "`level`") + if orgContTypeCont.Level >= 6 { + staffInfo.WorkPostName = orgContTypeCont.Name + } + staffInfo.PersonInCharge = 2 + if v.PersonInCharge == 1 { + orgResList := strings.Split(v.ResponsibleDepartment, ",") + if len(orgResList) > 0 { + orgIdStr := strconv.FormatInt(orgId, 10) + if overallhandle.IsInTrue[string](orgIdStr, orgResList) == true { + staffInfo.PersonInCharge = 1 + } + } + } + + sendMap, _ := GetUesrOffice(v.Key) + staffInfo.OfficeList = sendMap + m.List = append(m.List, staffInfo) + } +} + +// 获取当前班组的人员 +func CurrentTreamPeopel(teamsId int64, manList []peopleManOutList) (teamsManList []string) { + for _, v := range manList { + if v.TeamId == teamsId { + teamsManList = append(teamsManList, v.Number) + } + } + return +} + +// 获取规则设定 +func GetRuleSetup(id int64) (periodInfo workgroup.WorkingTimePeriod) { + overall.CONSTANT_DB_HR.Where("`id` = ?", id).First(&periodInfo) + return +} + +// 输出行政组织信息 +func OrgContOut(orgId int64) string { + var getSpurDepart models.AdministrativeOrganization + getWheDepart := overallhandle.MapOut() + getWheDepart["id"] = orgId + getSpurDepart.GetCont(getWheDepart, "name") + return getSpurDepart.Name +} diff --git a/api/version1/personnelapi/staffarchives.go b/api/version1/personnelapi/staffarchives.go index 7f6219b..c459372 100644 --- a/api/version1/personnelapi/staffarchives.go +++ b/api/version1/personnelapi/staffarchives.go @@ -6,6 +6,7 @@ import ( datacenter "hr_server/api/version1/dataCenter" "hr_server/grocerystore" "hr_server/models" + "hr_server/models/appPlatform" "hr_server/models/customerForm" personalitycolor "hr_server/models/personalityColor" "hr_server/models/workgroup" @@ -173,24 +174,28 @@ func (s *StaffApi) ArchivesList(c *gin.Context) { // 获取单个人员档案 func (s *StaffApi) ArchivesCon(c *gin.Context) { - var requestData overallhandle.GetId + var requestData IdOrNumber c.ShouldBindJSON(&requestData) - if requestData.IdStr == "" && requestData.Id == 0 { + myId := overallhandle.TypeToInterface(requestData.Id) + if requestData.Number == "" && myId == "" { 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 + if myId != "" { + staffErr := satffCont.GetCont(map[string]interface{}{"`id`": myId}) + if staffErr != nil { + overallhandle.Result(105, staffErr, c) + return + } + } else if requestData.Number != "" { + staffErr := satffCont.GetCont(map[string]interface{}{"`number`": requestData.Number}) + if staffErr != nil { + overallhandle.Result(105, staffErr, c) + return + } } + var staffCenter staffArchivesCont staffCenter.ManCont = satffCont staffCenter.IdStr = strconv.FormatInt(satffCont.Id, 10) @@ -3189,7 +3194,9 @@ func Shiftdjustment(day string, use models.ManCont) (pick models.ManCont) { return } } - gormDb := sqlDborm.Table(diaoIno.TableKey) + var appFormPage appPlatform.CustomerFormView + err = appFormPage.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": diaoIno.TableKey}, "`tablekey`") + gormDb := sqlDborm.Table(appFormPage.TableKey) gormDb.Where("`states` = 1 AND `creater` = ? AND `dang1zhi2ri4qi1` = ?", use.Key, taDay).First(&hbsqCont) // sqlDB, _ := gormDb.DB() // sqlDB.Close() @@ -3252,7 +3259,10 @@ func Shiftdjustment(day string, use models.ManCont) (pick models.ManCont) { return } } - gormDb := sqlDbesorm.Table(diaoIno.TableKey) + var appFormPage appPlatform.CustomerFormView + err = appFormPage.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": diaoIno.TableKey}, "`tablekey`") + gormDb := sqlDbesorm.Table(appFormPage.TableKey) + // gormDb := sqlDbesorm.Table(diaoIno.TableKey) err = gormDb.Where("`diao4huan4ren229452110` REGEXP ? AND `diao4huan4ri4qi1` = ? AND `states` = 1 ", use.Number, taDay).First(&hbsqContDh).Error // fmt.Printf("用户信息:err----3--->%v--->%v\n", err, hbsqContDh) // sqlDB, _ := gormDb.DB() diff --git a/api/version1/personnelapi/type.go b/api/version1/personnelapi/type.go index 0d5d5e4..96abc7a 100644 --- a/api/version1/personnelapi/type.go +++ b/api/version1/personnelapi/type.go @@ -703,14 +703,24 @@ type DaysTeamsRuler struct { } type DaysTeamsRulerInfo struct { - TeamsId string `json:"teamsId"` //生产班组ID - TeamsName string `json:"teamsName"` //生产班组名称 - RuleId string `json:"ruleId"` //规则ID - RuleName string `json:"ruleName"` //规则名称 - StartTime string `json:"startTime"` //开始时间 - EndTime string `json:"endTime"` //结束时间 + TeamsId string `json:"teamsId"` //生产班组ID + TeamsName string `json:"teamsName"` //生产班组名称 + RuleId string `json:"ruleId"` //规则ID + RuleName string `json:"ruleName"` //规则名称 + StartTime string `json:"startTime"` //开始时间 + EndTime string `json:"endTime"` //结束时间 + List []string `json:"list"` //当前班组人员 } type OrgAndLevel struct { AdminOrg int64 Level int64 } + +type ManTableList struct { + List []peopleManOutList +} + +type IdOrNumber struct { + Id interface{} `json:"id"` + Number string `json:"number"` +} diff --git a/api/version1/personnelapi/types.go b/api/version1/personnelapi/types.go index 079c9b9..7be45dd 100644 --- a/api/version1/personnelapi/types.go +++ b/api/version1/personnelapi/types.go @@ -316,6 +316,7 @@ type DingWeiInfo struct { UserOrgCode string `json:"userOrgCode"` //所属单位唯一标志 UserOrgName string `json:"userOrgName"` //所属单位名称 Cardld string `json:"cardld"` //绑定设备唯一编码 + Company int64 `json:"company"` } type DingWeiData struct { diff --git a/api/version1/personnelapi/uploadFileredis.go b/api/version1/personnelapi/uploadFileredis.go index 0dbefc1..c38de42 100644 --- a/api/version1/personnelapi/uploadFileredis.go +++ b/api/version1/personnelapi/uploadFileredis.go @@ -310,6 +310,7 @@ func (s *StaffApi) AnalysisRedisOrgExelect(c *gin.Context) { overallhandle.Result(1, err, c, "数据获取识别!没有找到数据!") return } + fmt.Printf("导入数据结果------>%v\n", redisVal) var jieguo []string err = json.Unmarshal([]byte(redisVal), &jieguo) if err != nil { @@ -802,10 +803,58 @@ func (s *StaffApi) AnalysisRedisTimesExelect(c *gin.Context) { if redisListLenght-1 == int64(requestData.Number) { // 执行完毕删除列表键 - redisClient.Ltrim(requestData.RedisListKey, 1, 0) - redisClient.DelKey(requestData.RedisListKey) + // redisClient.Ltrim(requestData.RedisListKey, 1, 0) + // redisClient.DelKey(requestData.RedisListKey) } sendData := make(map[string]interface{}) sendData["msgStr"] = msgStr overallhandle.Result(0, sendData, c) } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-11 13:37:53 +@ 功能: 培训内容 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func (s *StaffApi) MyTraining(c *gin.Context) { + var requestData overallhandle.PublicId[string] + err := c.ShouldBindJSON(&requestData) + if err != nil { + overallhandle.Result(100, err, c) + return + } + + var myInfo models.PersonArchives + myInfo.GetCont(map[string]interface{}{"`number`": requestData.Id}, "`key`") + + var traInfo []models.TrainingLog + + overall.CONSTANT_DB_HR.Where("`userkey` = ?", myInfo.Key).Find(&traInfo) + + sendMap := overallhandle.MapOut() + if len(traInfo) > 0 { + for _, v := range traInfo { + if v.Insout == 1 { + sendMap["nei"] = v.Centont + } else { + sendMap["wai"] = v.Centont + } + } + } else { + sendMap["nei"] = "" + sendMap["wai"] = "" + } + overallhandle.Result(0, sendMap, c) +} diff --git a/api/version1/personnelapi/uploadfile.go b/api/version1/personnelapi/uploadfile.go index 0f16ee7..5c8fd5a 100644 --- a/api/version1/personnelapi/uploadfile.go +++ b/api/version1/personnelapi/uploadfile.go @@ -1061,34 +1061,34 @@ func (g *GroupParsingData) GrowthExperienceWithinTheGroup(info map[int]string, o err := overall.CONSTANT_DB_HR.Where("`key` = ?", g.UserKey).Find(&growInGroup).Error if err != nil || len(growInGroup) < 1 { if info[92] != "" { - g.EditGroupInWorkLog(info[92], info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], orgId) + g.EditGroupInWorkLog(info[92], info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], "", info[102], info[103], info[104], orgId) } if info[105] != "" { - g.EditGroupInWorkLog(info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], orgId) + g.EditGroupInWorkLog(info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], "", info[115], info[116], info[117], orgId) } if info[118] != "" { - g.EditGroupInWorkLog(info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], orgId) + g.EditGroupInWorkLog(info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], "", info[128], info[129], info[130], orgId) } if info[131] != "" { - g.EditGroupInWorkLog(info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], orgId) + g.EditGroupInWorkLog(info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], "", info[141], info[142], info[143], orgId) } if info[144] != "" { - g.EditGroupInWorkLog(info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], orgId) + g.EditGroupInWorkLog(info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], "", info[154], info[155], info[156], orgId) } if info[157] != "" { - g.EditGroupInWorkLog(info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], orgId) + g.EditGroupInWorkLog(info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], "", info[167], info[168], info[169], orgId) } if info[170] != "" { - g.EditGroupInWorkLog(info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) + g.EditGroupInWorkLog(info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], "", info[180], info[181], info[182], orgId) } if info[183] != "" { - g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], orgId) + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], "", info[193], info[194], info[195], orgId) } if info[196] != "" { - g.EditGroupInWorkLog(info[196], info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], orgId) + g.EditGroupInWorkLog(info[196], info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], "", info[206], info[207], info[208], orgId) } if info[209] != "" { - g.EditGroupInWorkLog(info[209], info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], orgId) + g.EditGroupInWorkLog(info[209], info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], "", info[219], info[220], info[221], orgId) } } else { jsonInfo, _ := json.Marshal(growInGroup) @@ -1096,34 +1096,34 @@ func (g *GroupParsingData) GrowthExperienceWithinTheGroup(info map[int]string, o var workGroupLogCont models.InsideWorkHistory workGroupLogCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) if info[92] != "" { - g.EditGroupInWorkLog(info[92], info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], info[102], info[103], info[104], orgId) + g.EditGroupInWorkLog(info[92], info[93], info[94], info[95], info[96], info[97], info[98], info[99], info[100], info[101], "", info[102], info[103], info[104], orgId) } if info[105] != "" { - g.EditGroupInWorkLog(info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], info[115], info[116], info[117], orgId) + g.EditGroupInWorkLog(info[105], info[106], info[107], info[108], info[109], info[110], info[111], info[112], info[113], info[114], "", info[115], info[116], info[117], orgId) } if info[118] != "" { - g.EditGroupInWorkLog(info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], info[128], info[129], info[130], orgId) + g.EditGroupInWorkLog(info[118], info[119], info[120], info[121], info[122], info[123], info[124], info[125], info[126], info[127], "", info[128], info[129], info[130], orgId) } if info[131] != "" { - g.EditGroupInWorkLog(info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], info[141], info[142], info[143], orgId) + g.EditGroupInWorkLog(info[131], info[132], info[133], info[134], info[135], info[136], info[137], info[138], info[139], info[140], "", info[141], info[142], info[143], orgId) } if info[144] != "" { - g.EditGroupInWorkLog(info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], info[154], info[155], info[156], orgId) + g.EditGroupInWorkLog(info[144], info[145], info[146], info[147], info[148], info[149], info[150], info[151], info[152], info[153], "", info[154], info[155], info[156], orgId) } if info[157] != "" { - g.EditGroupInWorkLog(info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], info[167], info[168], info[169], orgId) + g.EditGroupInWorkLog(info[157], info[158], info[159], info[160], info[161], info[162], info[163], info[164], info[165], info[166], "", info[167], info[168], info[169], orgId) } if info[170] != "" { - g.EditGroupInWorkLog(info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], info[180], info[181], info[182], orgId) + g.EditGroupInWorkLog(info[170], info[171], info[172], info[173], info[174], info[175], info[176], info[177], info[178], info[179], "", info[180], info[181], info[182], orgId) } if info[183] != "" { - g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], info[193], info[194], info[195], orgId) + g.EditGroupInWorkLog(info[183], info[184], info[185], info[186], info[187], info[188], info[189], info[190], info[191], info[192], "", info[193], info[194], info[195], orgId) } if info[196] != "" { - g.EditGroupInWorkLog(info[196], info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], info[206], info[207], info[208], orgId) + g.EditGroupInWorkLog(info[196], info[197], info[198], info[199], info[200], info[201], info[202], info[203], info[204], info[205], "", info[206], info[207], info[208], orgId) } if info[209] != "" { - g.EditGroupInWorkLog(info[209], info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], info[219], info[220], info[221], orgId) + g.EditGroupInWorkLog(info[209], info[210], info[211], info[212], info[213], info[214], info[215], info[216], info[217], info[218], "", info[219], info[220], info[221], orgId) } } } @@ -1143,11 +1143,12 @@ workShop 二级部门或车间 workshopSection 工段 position 职位 gradePositions 职务等级 +workContent 工作内容 superiorPosition 上级职位 superiorName 上级名称 subordinates 下属人数 */ -func (g *GroupParsingData) EditGroupInWorkLog(startTime, endTime, changeType, changeReason, company, department, workShop, workshopSection, position, gradePositions, superiorPosition, superiorName, subordinates string, org string) { +func (g *GroupParsingData) EditGroupInWorkLog(startTime, endTime, changeType, changeReason, company, department, workShop, workshopSection, position, gradePositions, workContent, superiorPosition, superiorName, subordinates string, org string) { var adminOrg int64 var sunOrg overallhandle.GetOrgAllParent var inWorkGroupInfo models.InsideWorkHistory @@ -1158,7 +1159,7 @@ func (g *GroupParsingData) EditGroupInWorkLog(startTime, endTime, changeType, ch inWorkGroupInfo.Yjbm = department inWorkGroupInfo.Ejbm = workShop inWorkGroupInfo.Gongduan = workshopSection - + inWorkGroupInfo.WorkCont = workContent inWorkGroupInfo.Zhiwei = position if company != "" { @@ -1247,12 +1248,13 @@ func (g *GroupParsingData) EditGroupInWorkLog(startTime, endTime, changeType, ch // inWorkGroupInfo.AssignType = //1、主职;2:兼职"` // inWorkGroupInfo.JobId = //职务"` fmt.Printf("行政职务--->%v\n", org) - switch org { - case "296": - inWorkGroupInfo.Dengji = gradePositions - default: - inWorkGroupInfo.WorkCont = gradePositions - } + // switch org { + // case "296": + // inWorkGroupInfo.Dengji = gradePositions + // default: + // inWorkGroupInfo.WorkCont = gradePositions + // } + inWorkGroupInfo.Dengji = gradePositions // inWorkGroupInfo.WorkCont = //工作内容"` inWorkGroupInfo.ChangeReason = changeReason //变动原因"` inWorkGroupInfo.SuperiorPosition = superiorPosition //上级职位"` @@ -1291,7 +1293,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { creeTime := time.Now().Unix() if err != nil || len(familyAry) < 1 { if info[59] != "" && info[60] != "" { - g.EditFamilyInfo(info[59], info[60], info[61], info[62], info[63], info[64]) + g.EditFamilyInfo(info[59], info[60], info[61], info[62], info[63], info[63], info[64]) if info[64] == "是" { var oneInfo models.EmergencyContact oneInfo.Number = g.UserNum //员工工号;index"` @@ -1305,7 +1307,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[65] != "" && info[66] != "" { - g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], info[70]) + g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], info[70], "否") if info[70] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1319,7 +1321,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[71] != "" && info[72] != "" { - g.EditFamilyInfo(info[71], info[72], info[73], info[74], info[75], info[76]) + g.EditFamilyInfo(info[71], info[72], info[73], info[74], info[75], info[76], "否") if info[76] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1333,7 +1335,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[77] != "" && info[78] != "" { - g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], info[82]) + g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], info[82], "否") if info[76] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1352,7 +1354,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { var familyCont models.FamilyMembers familyCont.DelCont(map[string]interface{}{"`key`": g.UserKey}) if info[59] != "" && info[60] != "" { - g.EditFamilyInfo(info[59], info[60], info[61], info[62], info[63], info[64]) + g.EditFamilyInfo(info[59], info[60], info[61], info[62], info[63], info[64], "否") if info[64] == "是" { var oneInfo models.EmergencyContact oneInfo.Number = g.UserNum //员工工号;index"` @@ -1366,7 +1368,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[65] != "" && info[66] != "" { - g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], info[70]) + g.EditFamilyInfo(info[65], info[66], info[67], info[68], info[69], info[70], "否") if info[70] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1380,7 +1382,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[71] != "" && info[72] != "" { - g.EditFamilyInfo(info[71], info[72], info[73], info[74], info[75], info[76]) + g.EditFamilyInfo(info[71], info[72], info[73], info[74], info[75], info[76], "否") if info[76] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1394,7 +1396,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { } } if info[77] != "" && info[78] != "" { - g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], info[82]) + g.EditFamilyInfo(info[77], info[78], info[79], info[80], info[81], info[82], "否") if info[82] == "是" { var twoInfo models.EmergencyContact twoInfo.Number = g.UserNum //员工工号;index"` @@ -1428,7 +1430,7 @@ func (g *GroupParsingData) FamilyMembers(info map[int]string) { @ 时间: 2024-02-01 10:05:31 @ 功能: 编辑员工家属 */ -func (g *GroupParsingData) EditFamilyInfo(relationship, name, tel, workUnitPost, politicalOutlookCn, isSos string) { +func (g *GroupParsingData) EditFamilyInfo(relationship, name, tel, workUnitPost, postnme, politicalOutlookCn, isSos string) { var familyCont models.FamilyMembers familyCont.Number = g.UserNum //员工工号"` familyCont.Key = g.UserKey //key"` @@ -1436,7 +1438,7 @@ func (g *GroupParsingData) EditFamilyInfo(relationship, name, tel, workUnitPost, familyCont.Name = name //姓名"` familyCont.Company = "" //所在公司"` familyCont.Deparment = "" //所在部门"` - familyCont.Postnme = "" //所在岗位"` + familyCont.Postnme = postnme //所在岗位"` familyCont.Tel = tel //紧急联系人电话"` familyCont.PoliticalOutlook = politiToInt(politicalOutlookCn) //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` familyCont.Time = time.Now().Unix() //创建时间"` @@ -1602,12 +1604,23 @@ func (g *GroupParsingData) AddOneSchollLog(Education, EducationType, AcademicDeg firstLog.XueLi = Education firstLog.Education = ducationToInt(Education) //学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授)"` firstLog.GraduationSchool = GraduationSchool //毕业学校"` - firstLog.Subject = Subject //专业"` + firstLog.Subject = Subject + // fmt.Printf("\n\n获取得时间--------->%v\n\n", AdmissionTime) //专业"` if AdmissionTime != "" { - firstLog.AdmissionTime = overallhandle.ExcelDateToDate(AdmissionTime).Unix() //入学时间"` + + date, err := ParseExcelDate(AdmissionTime) + + if err == nil { + firstLog.AdmissionTime = overallhandle.ExcelDateToDate(date.Format("2006-01-02")).Unix() //入学时间"` + } } if GraduationTime != "" { - firstLog.GraduationTime = overallhandle.ExcelDateToDate(GraduationTime).Unix() //毕业时间"` + date, err := ParseExcelDate(GraduationTime) + + if err == nil { + firstLog.GraduationTime = overallhandle.ExcelDateToDate(date.Format("2006-01-02")).Unix() //入学时间"` + } + // firstLog.GraduationTime = overallhandle.ExcelDateToDate(GraduationTime).Unix() //毕业时间"` } firstLog.Time = time.Now().Unix() //写入时间"` firstLog.Level = level //学历类型(1:普通;2:第一学历;3:最高学历)"` diff --git a/api/version1/shiyan/shiyan.go b/api/version1/shiyan/shiyan.go index 2943ac5..4c2df7d 100644 --- a/api/version1/shiyan/shiyan.go +++ b/api/version1/shiyan/shiyan.go @@ -671,3 +671,31 @@ func (s *ShiYan) GetTestPost(c *gin.Context) { postId, _ := personnelapi.GetFasterPostId(12) overallhandle.Result(0, postId, c) } + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-02 14:56:52 +@ 功能: 三方校正 +*/ +func (s *ShiYan) SanFang(c *gin.Context) { + dockingorganization.UserDataCorrection() + overallhandle.Result(0, "123", c) +} + +/* +* +@ 作者: 秦东 +@ 时间: 2025-04-17 10:45:10 +@ 功能: 增加角色 +*/ +func (s *ShiYan) AddUserRole(c *gin.Context) { + var requestData overallhandle.PublicId[string] + err := c.ShouldBindJSON(&requestData) + if err != nil { + overallhandle.Result(100, err, c) + return + } + dockingorganization.AddRolePeople(requestData.Id) + overallhandle.Result(0, "数据校验完成!", c) +} diff --git a/api/version1/workrostering/teamtime.go b/api/version1/workrostering/teamtime.go index 94c0e7e..b6b8625 100644 --- a/api/version1/workrostering/teamtime.go +++ b/api/version1/workrostering/teamtime.go @@ -781,6 +781,7 @@ func (a *ApiModer) SetOirginCont(c *gin.Context) { } var genesisContEdit workgroup.Genesis err = genesisContEdit.EiteCont(map[string]interface{}{"`id`": genesisCont.Id}, editCont) + overall.CONSTANT_HRSERVER_DATABASE.Model(&workgroup.Genesis{}).Where("`id` = ?", genesisCont.Id).Updates(editCont) } if err != nil { overallhandle.Result(1, err, c, "设置失败!") diff --git a/apirouter/personnel/people.go b/apirouter/personnel/people.go index 7fb265f..a55dc48 100644 --- a/apirouter/personnel/people.go +++ b/apirouter/personnel/people.go @@ -17,7 +17,9 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("addstaff", apiHandle.AddStaff) //添加人员档案 apiRouter.POST("allocationofrights", apiHandle.AllocationOfRights) //分配权限 // apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新) - apiRouter.POST("archiveslist", apiHandle.ArchivesListWai) //人员列表(新) + // apiRouter.POST("archiveslist", apiHandle.ArchivesListWai) //人员列表(新)PeopleList + apiRouter.POST("archiveslist", apiHandle.PeopleList) //人员列表(新增加班组修订) + apiRouter.POST("archiveslistcont", apiHandle.ArchivesListCont) //人员档案列表(平台用) apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案 apiRouter.POST("personnelFiles", apiHandle.PersonnelFiles) //根据工号获取个人档案 @@ -109,6 +111,9 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("uploadTiemsManFiles", apiHandle.UploadTiemsManFiles) //上传班组设定人员 apiRouter.POST("analysisRedisTimesExelect", apiHandle.AnalysisRedisTimesExelect) //解析人员信息!并写入数据库 + + apiRouter.POST("myTraining", apiHandle.MyTraining) //培训内容 + } } @@ -117,12 +122,14 @@ func (p *PersonnelRouteKingdee) InitRouterGroup(route *gin.RouterGroup) { apiRouterOut := route.Group("staffkingdee") var apiHandleOut = version1.AppApiInlet.StaffApi { - apiRouterOut.GET("", apiHandleOut.Index) //入口 - apiRouterOut.POST("", apiHandleOut.Index) //入口 - apiRouterOut.POST("stafflist", apiHandleOut.StaffList) //人员列表 - apiRouterOut.POST("addstaff", apiHandleOut.AddStaff) //添加人员档案 - apiRouterOut.POST("allocationofrights", apiHandleOut.AllocationOfRights) //分配权限 - apiRouterOut.POST("archiveslist", apiHandleOut.ArchivesListWai) //人员列表(新) + apiRouterOut.GET("", apiHandleOut.Index) //入口 + apiRouterOut.POST("", apiHandleOut.Index) //入口 + apiRouterOut.POST("stafflist", apiHandleOut.StaffList) //人员列表 + apiRouterOut.POST("addstaff", apiHandleOut.AddStaff) //添加人员档案 + apiRouterOut.POST("allocationofrights", apiHandleOut.AllocationOfRights) //分配权限 + // apiRouterOut.POST("archiveslist", apiHandleOut.ArchivesListWai) //人员列表(新) apiHandle.PeopleList + apiRouterOut.POST("archiveslist", apiHandleOut.PeopleList) //人员列表(新)区分班组的人员 + apiRouterOut.POST("archivescont", apiHandleOut.ArchivesCon) //个人档案 apiRouterOut.POST("kingdeehr", apiHandleOut.NewKingdee) //对接金蝶HR系统 apiRouterOut.POST("editpassword", apiHandleOut.EditPassWord) //修改密码 diff --git a/apirouter/shiyanrouter/shiyan.go b/apirouter/shiyanrouter/shiyan.go index 397581b..a5365ad 100644 --- a/apirouter/shiyanrouter/shiyan.go +++ b/apirouter/shiyanrouter/shiyan.go @@ -29,5 +29,9 @@ func (p *ShiyanApiRouter) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("workWechat", apiHandle.WorkWechat) //测试企业微信个人信息 apiRouter.POST("getTestPost", apiHandle.GetTestPost) //测试获取职务 + + apiRouter.POST("sanFang", apiHandle.SanFang) //测试获取职务 + + apiRouter.POST("addUserRole", apiHandle.AddUserRole) //全员新增角色 } } diff --git a/config/configDatabase/database.go b/config/configDatabase/database.go index a6c506e..074649f 100644 --- a/config/configDatabase/database.go +++ b/config/configDatabase/database.go @@ -13,11 +13,11 @@ type MysqlSetUp struct { MasterMysql MasterMysqlSetUp `mapstructure:"master" json:"master" yaml:"master"` //主数据库 AppPlatformDatabase MasterMysqlSetUp `mapstructure:"appPlatformDatabase" json:"appPlatformDatabase" yaml:"appPlatformDatabase"` //应用平台 //其他数据库依次添加 - WechatMysql MasterMysqlSetUp `mapstructure:"wechat" json:"wechat" yaml:"wechat"` //微信数据库 - HrMysql MasterMysqlSetUp `mapstructure:"hrdatabase" json:"hrdatabase" yaml:"hrdatabase"` //HR数据库 - HrMysqlJin MasterMysqlSetUp `mapstructure:"hrdatabasejin" json:"hrdatabasejin" yaml:"hrdatabasejin"` //HR数据库 - PersonalityColor MasterMysqlSetUp `mapstructure:"charactercolor" json:"charactercolor" yaml:"charactercolor"` //HR数据库 - // HrNeiSever MasterMysqlSetUp `mapstructure:"hrNeiSever" json:"hrNeiSever" yaml:"hrNeiSever"` //HR数据库 + WechatMysql MasterMysqlSetUp `mapstructure:"wechat" json:"wechat" yaml:"wechat"` //微信数据库 + HrMysql MasterMysqlSetUp `mapstructure:"hrdatabase" json:"hrdatabase" yaml:"hrdatabase"` //HR数据库 + HrMysqlJin MasterMysqlSetUp `mapstructure:"hrdatabasejin" json:"hrdatabasejin" yaml:"hrdatabasejin"` //HR数据库 + PersonalityColor MasterMysqlSetUp `mapstructure:"charactercolor" json:"charactercolor" yaml:"charactercolor"` //HR数据库 + HrNeiSever MasterMysqlSetUp `mapstructure:"hrNeiSever" json:"hrNeiSever" yaml:"hrNeiSever"` //HR数据库 HrDatabaseServer MasterMysqlSetUp `mapstructure:"hrdatabaseserver" json:"hrdatabaseserver" yaml:"hrdatabaseserver"` //外网HR数据库 CustomerForm MasterMysqlSetUp `mapstructure:"customerFormDatabase" json:"customerFormDatabase" yaml:"customerFormDatabase"` //自定义表单数据库 } diff --git a/initialization/databaseinit/mysql.go b/initialization/databaseinit/mysql.go index d20eaaa..4914d86 100644 --- a/initialization/databaseinit/mysql.go +++ b/initialization/databaseinit/mysql.go @@ -52,13 +52,13 @@ func LoadDatabase() { } else { fmt.Printf("%v数据库开启成功!\n", sqlConfig.HrDatabaseServer.Name) } - //开启内网数据库 - // overall.CONSTANT_Hr_Server = sqlConfig.HrNeiSever.OpenSql() - // if overall.CONSTANT_Personality_Color == nil { - // fmt.Printf("%v数据库开启失1败!\n", sqlConfig.HrNeiSever.Name) - // } else { - // fmt.Printf("%v数据库开启成1功!\n", sqlConfig.HrNeiSever.Name) - // } + //开启内网Tidb数据库 + overall.CONSTANT_Hr_Server = sqlConfig.HrNeiSever.OpenSql() + if overall.CONSTANT_Personality_Color == nil { + fmt.Printf("%v数据库开启失1败!\n", sqlConfig.HrNeiSever.Name) + } else { + fmt.Printf("%v数据库开启成1功!\n", sqlConfig.HrNeiSever.Name) + } overall.CONSTANT_DB_CustomerForm = sqlConfig.CustomerForm.OpenSql() if overall.CONSTANT_DB_CustomerForm == nil { fmt.Printf("%v:数据库开启失败!服务器\n", sqlConfig.CustomerForm.Name) diff --git a/models/academictitle.go b/models/academictitle.go index 3a71747..7eb7500 100644 --- a/models/academictitle.go +++ b/models/academictitle.go @@ -7,14 +7,15 @@ import ( // 双职工 type AcademicTitle struct { - Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:ID"` - Types string `json:"types" gorm:"column:types;type:varchar(255) unsigned;default:'';not null;comment:职称级别"` - Series string `json:"series" gorm:"column:series;type:varchar(255) unsigned;default:'';not null;comment:职称系列"` - Speciality string `json:"speciality" gorm:"column:speciality;type:varchar(255) unsigned;default:'';not null;comment:职称专业"` - Number string `json:"number" gorm:"column:number;type:varchar(255) unsigned;default:'';not null;comment:资格证书编号"` - Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:生效时间"` - EditTime int64 `json:"editTime" gorm:"column:editTime;type:bigint(20) unsigned;default:0;not null;comment:写入时间"` - UserKey int64 `json:"userKey" gorm:"column:userKey;type:bigint(20) unsigned;default:0;not null;comment:人员唯一识别符"` + Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:ID"` + Types string `json:"types" gorm:"column:types;type:varchar(255) unsigned;default:'';not null;comment:职称级别"` + Series string `json:"series" gorm:"column:series;type:varchar(255) unsigned;default:'';not null;comment:职称系列"` + Speciality string `json:"speciality" gorm:"column:speciality;type:varchar(255) unsigned;default:'';not null;comment:职称专业"` + Number string `json:"number" gorm:"column:number;type:varchar(255) unsigned;default:'';not null;comment:资格证书编号"` + Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:生效时间"` + EditTime int64 `json:"editTime" gorm:"column:editTime;type:bigint(20) unsigned;default:0;not null;comment:写入时间"` + UserKey int64 `json:"userKey" gorm:"column:userKey;type:bigint(20) unsigned;default:0;not null;comment:人员唯一识别符"` + TitleAndLevel string `json:"titleAndLevel" gorm:"column:titleAndLevel;type:mediumtext;comment:职称专业+级别"` } func (AcademicTitle *AcademicTitle) TableName() string { diff --git a/models/appPlatform/customer_form.go b/models/appPlatform/customer_form.go new file mode 100644 index 0000000..0cd0296 --- /dev/null +++ b/models/appPlatform/customer_form.go @@ -0,0 +1,77 @@ +package appPlatform + +import ( + "hr_server/overall" + "strings" +) + +// 字典类型 +type CustomerForm struct { + Id int64 `json:"id" gorm:"primaryKey;column:id;type:int(5) unsigned;not null;comment:Id;index"` + Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:表单名称"` + TableNames string `json:"tablename" gorm:"column:tablename;type:varchar(255) unsigned;default:'';not null;comment:创建表单名称"` + Classify int `json:"classify" gorm:"column:classify;type:int(1) unsigned;default:1;not null;comment:分类1:表单;2:流程表单"` + Permit string `json:"permit" gorm:"column:permit;type:mediumtext;default:'';comment:授权范围"` + PermitStr string `json:"permitstr" gorm:"column:permitstr;type:mediumtext;default:'';comment:授权范围"` + States int `json:"states" gorm:"column:states;type:int(1) unsigned;default:1;not null;comment:显示状态(1:启用;2:禁用,3:删除)"` + CreaterTime int64 `json:"createrTime" gorm:"column:creater_time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` + EditTime int64 `json:"editTime" gorm:"column:edit_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"` + FlowKey int64 `json:"flowkey" gorm:"column:flowkey;type:bigint(20) unsigned;default:0;not null;comment:关联工作流"` + UserPermit string `json:"userpermit" gorm:"column:userpermit;type:mediumtext;default:'';comment:授权范围可见人员"` + PostPermit string `json:"postpermit" gorm:"column:postpermit;type:mediumtext;default:'';comment:授权范围可见角色"` + Groupid int64 `json:"groupid" gorm:"column:groupid;type:bigint(20) unsigned;default:0;not null;comment:分组Id"` + Icon string `json:"icon" gorm:"column:icon;type:varchar(255);default:'';comment:图标"` + FlowIsOpen int `json:"flowIsOpen" gorm:"column:flowIsOpen;type:int(1) unsigned;default:2;not null;comment:是否开启工作流(1:启用;2:禁用)"` + ListJson string `json:"listjson" gorm:"column:listjson;type:longtext;default:'';comment:列表结构体"` + SignCode int64 `json:"signCode" gorm:"column:signCode;type:bigint(20) unsigned NOT NULL DEFAULT '0';comment:唯一标识"` + Describe string `json:"describe" gorm:"column:describe;type:longtext;default:'';comment:描述"` + OrgPermit string `json:"orgpermit" gorm:"column:orgpermit;type:mediumtext;default:'';comment:授权范围可见行政组织"` + AppManager string `json:"appManager" gorm:"column:appManager;type:mediumtext;default:'';comment:应用管理员"` + AppRoleManager string `json:"appRoleManager" gorm:"column:appRoleManager;type:mediumtext;default:'';comment:应用管理角色"` + AppOrgMan string `json:"appOrgMan" gorm:"column:appOrgMan;type:mediumtext;default:'';comment:应用管理行政组织"` +} + +func (CustomerForm *CustomerForm) TableName() string { + return "customer_form" +} + +// 编辑内容 +func (cont *CustomerForm) EiteCont(whereMap interface{}, saveData interface{}) (err error) { + err = overall.CONSTANT_DB_AppPlatform.Model(&cont).Where(whereMap).Updates(saveData).Error + return +} + +// 获取内容 +func (cont *CustomerForm) GetCont(whereMap interface{}, field ...string) (err error) { + gormDb := overall.CONSTANT_DB_AppPlatform.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 *CustomerForm) CountCont(whereMap interface{}) (countId int64) { + overall.CONSTANT_DB_AppPlatform.Model(&cont).Where(whereMap).Count(&countId) + return +} + +// 读取全部信息 +func (cont *CustomerForm) ContMap(whereMap interface{}, field ...string) (countAry []CustomerForm, err error) { + gormDb := overall.CONSTANT_DB_AppPlatform.Model(&cont) + if len(field) > 0 { + fieldStr := strings.Join(field, ",") + gormDb = gormDb.Select(fieldStr) + } + err = gormDb.Where(whereMap).Find(&countAry).Error + return +} + +// 删除内容 +func (cont *CustomerForm) DelCont(whereMap interface{}) (err error) { + err = overall.CONSTANT_DB_AppPlatform.Where(whereMap).Delete(&cont).Error + return +} diff --git a/models/appPlatform/customer_form_view.go b/models/appPlatform/customer_form_view.go new file mode 100644 index 0000000..ef6bbe5 --- /dev/null +++ b/models/appPlatform/customer_form_view.go @@ -0,0 +1,88 @@ +package appPlatform + +import ( + "hr_server/overall" + "strings" +) + +// 自定义表单版本列表 +type CustomerFormView struct { + Id int64 `json:"id" gorm:"primaryKey;column:id;type:int(5) unsigned;not null;comment:Id;index"` + TableKey string `json:"tablekey" gorm:"column:tablekey;type:varchar(255) unsigned;default:'';not null;comment:表单标识符"` + Version int `json:"version" gorm:"column:version;type:int(5) unsigned;default:1;not null;comment:版本号"` + Status int `json:"status" gorm:"column:status;type:int(1) unsigned;default:1;not null;comment:显示状态(1:启用;2:禁用,3:删除)"` + States int `json:"states" gorm:"column:states;type:int(1) unsigned;default:1;not null;comment:显示状态(1:启用;2:禁用,3:删除)"` + MastesForm string `json:"mastesform" gorm:"column:mastesform;type:longtext;default:'';comment:表单结构"` + MastesFormJson string `json:"mastesformjson" gorm:"column:mastesformjson;type:longtext;default:'';comment:表单结构json"` + Creater int64 `json:"creater" gorm:"column:creater;type:bigint(20) unsigned;default:0;not null;comment:创建人"` + CreaterTime int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` + EditTime int64 `json:"editTime" gorm:"column:edit_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"` + TableStructure string `json:"table_structure" gorm:"column:table_structure;type:longtext;default:'';comment:字表结构"` + Dict string `json:"dict" gorm:"column:dict;type:mediumtext;default:'';comment:字表结构"` + CfId int64 `json:"cfid" gorm:"column:cfid;type:int(5) unsigned;not null;comment:Id"` + Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:表单名称"` + Classify int `json:"classify" gorm:"column:classify;type:int(1) unsigned;default:1;not null;comment:分类1:表单;2:流程表单"` + Permit string `json:"permit" gorm:"column:permit;type:mediumtext;default:'';comment:授权范围"` + PermitStr string `json:"permitstr" gorm:"column:permitstr;type:mediumtext;default:'';comment:授权范围"` + Flowkey int64 `json:"flowkey" gorm:"column:flowkey;type:bigint(20) unsigned;default:0;not null;comment:关联工作流"` + UserPermit string `json:"userpermit" gorm:"column:userpermit;type:mediumtext;default:'';comment:可见人员"` + PostPermit string `json:"postpermit" gorm:"column:postpermit;type:mediumtext;default:'';comment:可见角色"` + PowerStr string `json:"powerstr" gorm:"column:powerstr;type:longtext;default:'';comment:权限结构"` + Groupid int64 `json:"groupid" gorm:"column:groupid;type:bigint(20) unsigned;default:0;not null;comment:分组Id"` + Icon string `json:"icon" gorm:"column:icon;type:varchar(255);default:'';comment:图标"` + FlowIsOpen int `json:"flowIsOpen" gorm:"column:flowIsOpen;type:int(1) unsigned;default:2;not null;comment:是否开启工作流(1:启用;2:禁用)"` + ListJson string `json:"listjson" gorm:"column:listjson;type:longtext;default:'';comment:列表结构体"` + ListPage string `json:"listPage" gorm:"column:listPage;type:longtext;default:'';comment:列表结构"` + Visibility int `json:"visibility" gorm:"column:stavisibilitytus;type:int(1) unsigned;default:1;not null;comment:1、所有人,2、自定义"` + AuthorizationRoles string `json:"authorizationRoles" gorm:"column:authorizationRoles;type:mediumtext;default:'';comment:授权角色"` + AuthorizedPersonnel string `json:"authorizedPersonnel" gorm:"column:authorizedPersonnel;type:mediumtext;default:'';comment:授权人员"` + AuthorizedOrg string `json:"authorizedOrg" gorm:"column:authorizedOrg;type:mediumtext;default:'';comment:授权行政组织"` + AuthorizedPosition string `json:"authorizedPosition" gorm:"column:authorizedPosition;type:mediumtext;default:'';comment:授权职务"` + SignCode int64 `json:"signCode" gorm:"column:signCode;type:bigint(20) unsigned NOT NULL DEFAULT '0';comment:唯一标识"` + Describe string `json:"describe" gorm:"column:describe;type:longtext;default:'';comment:描述"` +} + +func (CustomerFormView *CustomerFormView) TableName() string { + return "customer_form_view" +} + +// 编辑内容 +func (cont *CustomerFormView) EiteCont(whereMap interface{}, saveData interface{}) (err error) { + err = overall.CONSTANT_DB_AppPlatform.Model(&cont).Where(whereMap).Updates(saveData).Error + return +} + +// 获取内容 +func (cont *CustomerFormView) GetCont(whereMap interface{}, field ...string) (err error) { + gormDb := overall.CONSTANT_DB_AppPlatform.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 *CustomerFormView) CountCont(whereMap interface{}) (countId int64) { + overall.CONSTANT_DB_AppPlatform.Model(&cont).Where(whereMap).Count(&countId) + return +} + +// 读取全部信息 +func (cont *CustomerFormView) ContMap(whereMap interface{}, field ...string) (countAry []CustomerFormView, err error) { + gormDb := overall.CONSTANT_DB_AppPlatform.Model(&cont) + if len(field) > 0 { + fieldStr := strings.Join(field, ",") + gormDb = gormDb.Select(fieldStr) + } + err = gormDb.Where(whereMap).Find(&countAry).Error + return +} + +// 删除内容 +func (cont *CustomerFormView) DelCont(whereMap interface{}) (err error) { + err = overall.CONSTANT_DB_AppPlatform.Where(whereMap).Delete(&cont).Error + return +} diff --git a/models/personarchives.go b/models/personarchives.go index 8200937..42feee4 100644 --- a/models/personarchives.go +++ b/models/personarchives.go @@ -45,6 +45,7 @@ type PersonArchives struct { WorkSection int64 `json:"workSection" gorm:"column:work_section;type:bigint(20) unsigned;default:0;not null;comment:工段"` IsShowTrue int64 `json:"isShowTrue" gorm:"column:is_show_true;type:int(5) unsigned;default:2;not null;comment:信息是否锁定` ExcelTemplate int64 `json:"excelTemplate" gorm:"column:excel_template;type:bigint(20) unsigned;default:0;not null;comment:信息来源于哪个模板` + PositionCategory string `json:"positionCategory" gorm:"column:positionCategory;type:tinytext;comment:岗位序列"` } func (PersonArchives *PersonArchives) TableName() string { diff --git a/models/trainingLog.go b/models/trainingLog.go new file mode 100644 index 0000000..bcfecc0 --- /dev/null +++ b/models/trainingLog.go @@ -0,0 +1,38 @@ +package models + +import ( + "hr_server/overall" + "strings" +) + +// 班组 +type TrainingLog struct { + Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` + Insout int `json:"insout" gorm:"column:insout;type:int(1) unsigned;default:1;not null;comment:状内外(1:内部培训;2:外部培训)` + Centont string `json:"centont" gorm:"column:centont;type:mediumtext;comment:班组名称"` + Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` + EditTime int64 `json:"editTime" gorm:"column:editTime;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"` + Userkey int64 `json:"userkey" gorm:"column:userkey;type:bigint(20) unsigned;default:0;not null;comment:userkey"` +} + +func (TrainingLog *TrainingLog) TableName() string { + return "trainingLog" +} + +// 编辑班组内容 +func (TrainingLog *TrainingLog) EiteTeamGroupCont(whereMap map[string]interface{}, saveData map[string]interface{}) (err error) { + err = overall.CONSTANT_DB_HR.Model(&TrainingLog).Where(whereMap).Updates(saveData).Error + return +} + +// 获取详细内容 +func (cont *TrainingLog) 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 +} diff --git a/scheduledtask/time_task.go b/scheduledtask/time_task.go index f4aa943..9bb529d 100644 --- a/scheduledtask/time_task.go +++ b/scheduledtask/time_task.go @@ -462,6 +462,15 @@ func TimeTask() { overallhandle.WriteLog("t", "结束执行企业微信信息对照(集团高管、办公室、财务部、营销部)") }) //每天3时40分执行 + c.AddFunc("0 0 2 * * *", func() { + overallhandle.WriteLog("t", "三方数据校正") + // md5Token := "WorkWechatUpdatePeopleInfo" + // errWechat := workWechat.UpdateWechatOrgPeople(48, "txl", md5Token, 1) + // overallhandle.WriteLog("t", "结束执行企业微信信息对照(高管)", errWechat) + dockingorganization.UserDataCorrection() + overallhandle.WriteLog("t", "结束三方数据校正") + }) //每天2时分执行 + //启动 c.Start() //设定全部执行后,最后关闭定时任务