Browse Source

修复BUG

v2_dev
herenshan112 7 months ago
parent
commit
2bcb32e8ee
  1. 642
      api/jindie_docking/dockingorganization/controller.go
  2. 86
      api/jindie_docking/dockingorganization/getposturl.go
  3. 189
      api/version1/personnelapi/analysExelect.go
  4. 549
      api/version1/personnelapi/analysRxExelect.go
  5. 40
      api/version1/personnelapi/controll.go
  6. 27
      api/version1/personnelapi/mancont.go
  7. 283
      api/version1/personnelapi/orgUserRole.go
  8. 32
      api/version1/personnelapi/staffarchives.go
  9. 10
      api/version1/personnelapi/type.go
  10. 1
      api/version1/personnelapi/types.go
  11. 53
      api/version1/personnelapi/uploadFileredis.go
  12. 93
      api/version1/personnelapi/uploadfile.go
  13. 28
      api/version1/shiyan/shiyan.go
  14. 1
      api/version1/workrostering/teamtime.go
  15. 11
      apirouter/personnel/people.go
  16. 4
      apirouter/shiyanrouter/shiyan.go
  17. 2
      config/configDatabase/database.go
  18. 14
      initialization/databaseinit/mysql.go
  19. 1
      models/academictitle.go
  20. 77
      models/appPlatform/customer_form.go
  21. 88
      models/appPlatform/customer_form_view.go
  22. 1
      models/personarchives.go
  23. 38
      models/trainingLog.go
  24. 9
      scheduledtask/time_task.go

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

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

189
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], "否")
}
}
}

549
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
xul, _ := json.Marshal(info)
fmt.Printf("\n\n获取得学历--------->%v\n\n", string(xul)) //专业"`
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)
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)

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

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

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

32
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 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()

10
api/version1/personnelapi/type.go

@ -709,8 +709,18 @@ type DaysTeamsRulerInfo struct {
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"`
}

1
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 {

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

93
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":
// switch org {
// case "296":
// inWorkGroupInfo.Dengji = gradePositions
// default:
// inWorkGroupInfo.WorkCont = gradePositions
// }
inWorkGroupInfo.Dengji = gradePositions
default:
inWorkGroupInfo.WorkCont = 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:最高学历)"`

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

1
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, "设置失败!")

11
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) //培训内容
}
}
@ -122,7 +127,9 @@ func (p *PersonnelRouteKingdee) InitRouterGroup(route *gin.RouterGroup) {
apiRouterOut.POST("stafflist", apiHandleOut.StaffList) //人员列表
apiRouterOut.POST("addstaff", apiHandleOut.AddStaff) //添加人员档案
apiRouterOut.POST("allocationofrights", apiHandleOut.AllocationOfRights) //分配权限
apiRouterOut.POST("archiveslist", apiHandleOut.ArchivesListWai) //人员列表(新)
// 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) //修改密码

4
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) //全员新增角色
}
}

2
config/configDatabase/database.go

@ -17,7 +17,7 @@ type MysqlSetUp struct {
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数据库
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"` //自定义表单数据库
}

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

1
models/academictitle.go

@ -15,6 +15,7 @@ type AcademicTitle struct {
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 {

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

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

1
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 {

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

9
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()
//设定全部执行后,最后关闭定时任务

Loading…
Cancel
Save