Browse Source

完成HR系统基础开发

v1.1_dev
超级管理员 3 years ago
parent
commit
b02eb3dd13
  1. 20
      api/empower/authorize/empower.go
  2. 30
      api/empower/authorize/type.go
  3. 23
      api/jindie_docking/dockingorganization/controller.go
  4. 4
      api/version1/administrativeorganization/govcont.go
  5. 12
      api/version1/personnelapi/kingdeenew.go
  6. 875
      api/version1/personnelapi/staff.go
  7. 709
      api/version1/personnelapi/staffarchives.go
  8. 135
      api/version1/personnelapi/type.go
  9. 41
      apirouter/personnel/people.go
  10. 35
      identification/authentication.go
  11. 501
      log/202206/20220603.log
  12. 980
      log/202206/20220604.log
  13. 35
      log/202206/20220605.log
  14. 15
      log/202206/20220606.log
  15. 83
      log/202206/20220607.log
  16. 504
      log/202206/20220608.log
  17. 23
      log/202206/20220609.log
  18. 502
      log/202206/20220616.log
  19. 525
      log/202206/20220617.log
  20. 525
      log/202206/20220618.log
  21. 35
      log/202206/20220619.log
  22. 15
      log/202206/20220620.log
  23. 31
      log/202206/20220621.log
  24. 509
      log/202206/20220622.log
  25. 2000
      log/202206/20220623.log
  26. 2
      models/personnel_education.go
  27. 44
      models/post_duties_job.go
  28. 71
      overall/overallhandle/overall_handle.go

20
api/empower/authorize/empower.go

@ -40,56 +40,62 @@ func (e *EmpowerApi) GainToken(c *gin.Context) {
var empowerUser models.EmpowerUser var empowerUser models.EmpowerUser
userErr := empowerUser.GetCont(map[string]interface{}{"userkey": requestData.UserNumber, "password": passwordMd5Str}, "verification_code") userErr := empowerUser.GetCont(map[string]interface{}{"userkey": requestData.UserNumber, "password": passwordMd5Str}, "verification_code")
if userErr != nil { if userErr != nil {
overallhandle.Result(2000, userErr, c) overallhandle.Result(2000, passwordMd5Str, c)
return return
} }
//获取随机数 //获取随机数
randCode := strconv.FormatInt(overallhandle.TableNumber(), 10) randCode := strconv.FormatInt(overallhandle.TableNumber(), 10)
// randCode := strconv.FormatInt(16557925694780, 10)
//头文件加密 //头文件加密
//ContentType //ContentType
var ContentTypeMd5 overallhandle.Md5Encryption var ContentTypeMd5 overallhandle.Md5Encryption
ContentTypeMd5.Md5EncryptionInit(ContentType)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
ContentTypeMd5.AppKey = empowerUser.VerificationCode ContentTypeMd5.AppKey = empowerUser.VerificationCode
} }
ContentTypeMd5.Md5EncryptionInit(ContentType)
ContentTypeMd5Str := ContentTypeMd5.Md5EncryptionAlgorithm() ContentTypeMd5Str := ContentTypeMd5.Md5EncryptionAlgorithm()
//Origin //Origin
var OriginMd5 overallhandle.Md5Encryption var OriginMd5 overallhandle.Md5Encryption
OriginMd5.Md5EncryptionInit(Origin)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
OriginMd5.AppKey = empowerUser.VerificationCode OriginMd5.AppKey = empowerUser.VerificationCode
} }
OriginMd5.Md5EncryptionInit(Origin)
originMd5Str := OriginMd5.Md5EncryptionAlgorithm() originMd5Str := OriginMd5.Md5EncryptionAlgorithm()
//userAgent //userAgent
var userAgentMd5 overallhandle.Md5Encryption var userAgentMd5 overallhandle.Md5Encryption
userAgentMd5.Md5EncryptionInit(userAgent)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
userAgentMd5.AppKey = empowerUser.VerificationCode userAgentMd5.AppKey = empowerUser.VerificationCode
} }
userAgentMd5.Md5EncryptionInit(userAgent)
userAgentMd5Str := userAgentMd5.Md5EncryptionAlgorithm() userAgentMd5Str := userAgentMd5.Md5EncryptionAlgorithm()
//随机数加密 //随机数加密
var randomNumberMd5 overallhandle.Md5Encryption var randomNumberMd5 overallhandle.Md5Encryption
randomNumberMd5.Md5EncryptionInit(randCode)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
randomNumberMd5.AppKey = empowerUser.VerificationCode randomNumberMd5.AppKey = empowerUser.VerificationCode
} }
randomNumberMd5.Md5EncryptionInit(randCode)
numberMd5 := randomNumberMd5.Md5EncryptionAlgorithm() numberMd5 := randomNumberMd5.Md5EncryptionAlgorithm()
//用户名加密 //用户名加密
var userKeyMd5 overallhandle.Md5Encryption var userKeyMd5 overallhandle.Md5Encryption
userKeyMd5.Md5EncryptionInit(requestData.UserNumber)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
userKeyMd5.AppKey = empowerUser.VerificationCode userKeyMd5.AppKey = empowerUser.VerificationCode
} }
userKeyMd5.Md5EncryptionInit(requestData.UserNumber)
userKeyMd5Str := userKeyMd5.Md5EncryptionAlgorithm() userKeyMd5Str := userKeyMd5.Md5EncryptionAlgorithm()
clearCodeToken := fmt.Sprintf("%v-%v-%v-%v-%v-%v", ContentTypeMd5Str, originMd5Str, userAgentMd5Str, numberMd5, userKeyMd5Str, passwordMd5Str) clearCodeToken := fmt.Sprintf("%v-%v-%v-%v-%v-%v", ContentTypeMd5Str, originMd5Str, userAgentMd5Str, numberMd5, userKeyMd5Str, passwordMd5Str)
fmt.Printf("redisKey---->%v-%v-%v-%v-%v-%v", ContentTypeMd5Str, originMd5Str, userAgentMd5Str, numberMd5, userKeyMd5Str, passwordMd5Str) // fmt.Printf("redisKey---->%v-%v-%v-%v-%v-%v\n", ContentTypeMd5Str, originMd5Str, userAgentMd5Str, numberMd5, userKeyMd5Str, passwordMd5Str)
//token 加密 //token 加密
var tokenMd5 overallhandle.Md5Encryption var tokenMd5 overallhandle.Md5Encryption
tokenMd5.Md5EncryptionInit(clearCodeToken) tokenMd5.Md5EncryptionInit(clearCodeToken)
if empowerUser.VerificationCode != "" {
tokenMd5.AppKey = empowerUser.VerificationCode
}
tokenMd5Str := tokenMd5.Md5EncryptionAlgorithm() tokenMd5Str := tokenMd5.Md5EncryptionAlgorithm()
//设定redis Key名称 //设定redis Key名称

30
api/empower/authorize/type.go

@ -8,10 +8,38 @@ import (
type EmpowerApi struct{} type EmpowerApi struct{}
type jiaMiKey struct {
Number string `json:"number"`
AppKey string `json:"appkey"`
}
//入口 //入口
func (e *EmpowerApi) Index(c *gin.Context) { func (e *EmpowerApi) Index(c *gin.Context) {
var requestData jiaMiKey
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
// var empowerUser models.EmpowerUser
// userErr := empowerUser.GetCont(map[string]interface{}{"userkey": "kingdeeSysAdmin", "password": "Kingdee@Human$Resources"}, "verification_code")
// var ContentTypeMd5 overallhandle.Md5Encryption
// if empowerUser.VerificationCode != "" {
// ContentTypeMd5.AppKey = empowerUser.VerificationCode
// }
var ContentTypeMd5 overallhandle.Md5Encryption
ContentTypeMd5.Md5EncryptionInit(requestData.Number)
ContentTypeMd5.AppKey = requestData.AppKey
ContentTypeMd5Str, dfg := ContentTypeMd5.Md5EncryptionAlgorithmFj()
outputCont := overallhandle.MapOut() outputCont := overallhandle.MapOut()
outputCont["index"] = "组织管理入口" outputCont["index"] = "MD5加密验证"
// outputCont["userErr"] = userErr
outputCont["md5"] = ContentTypeMd5Str
outputCont["number"] = requestData.Number
outputCont["appkey"] = requestData.AppKey
outputCont["step"] = dfg
overallhandle.Result(0, outputCont, c) overallhandle.Result(0, outputCont, c)
} }

23
api/jindie_docking/dockingorganization/controller.go

@ -18,8 +18,8 @@ func (d *DockingJinDieApi) DockKingdeeApi(c *gin.Context) {
// GetOrgType() // GetOrgType()
// JobClass() // JobClass()
// DutiesContrast() // DutiesContrast()
// OrgAdmin() OrgAdmin()
Position() // Position()
// xingzheng() // xingzheng()
outMap := overallhandle.MapOut() outMap := overallhandle.MapOut()
overallhandle.Result(0, outMap, c) overallhandle.Result(0, outMap, c)
@ -47,16 +47,20 @@ func GetOrgType() {
respBody, err := GetUrl(sendUrl) respBody, err := GetUrl(sendUrl)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "未能获取到行政组织类型!", err) overallhandle.WriteLog("e", "未能获取到行政组织类型!", err)
return
} }
err = json.Unmarshal(respBody, &orgContAry) err = json.Unmarshal(respBody, &orgContAry)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "行政组织类型映射错误!", err) overallhandle.WriteLog("e", "行政组织类型映射错误!", err)
return
} }
overallhandle.WriteLog("i", "行政组织类型映射成功!", orgContAry) overallhandle.WriteLog("i", "行政组织类型映射成功!", orgContAry)
if len(orgContAry) < 0 { if len(orgContAry) < 0 {
overallhandle.WriteLog("e", "未能获取到行政组织类型!", orgContAry) overallhandle.WriteLog("e", "未能获取到行政组织类型!", orgContAry)
return return
} }
fmt.Printf("err---------------------->%v\n", err)
var kingDeeIdAry []string var kingDeeIdAry []string
//进行行政组织类别对照 //进行行政组织类别对照
for _, v := range orgContAry { for _, v := range orgContAry {
@ -128,10 +132,12 @@ func JobClass() {
respBody, err := GetUrl(sendUrl) respBody, err := GetUrl(sendUrl)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "未能获取到职务类型!", err) overallhandle.WriteLog("e", "未能获取到职务类型!", err)
return
} }
err = json.Unmarshal(respBody, &jobClassInfo) err = json.Unmarshal(respBody, &jobClassInfo)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "职务类型映射错误!", err) overallhandle.WriteLog("e", "职务类型映射错误!", err)
return
} }
overallhandle.WriteLog("i", "职务类型映射成功!", jobClassInfo) overallhandle.WriteLog("i", "职务类型映射成功!", jobClassInfo)
if len(jobClassInfo) < 0 { if len(jobClassInfo) < 0 {
@ -211,10 +217,12 @@ func DutiesContrast() {
respBody, err := GetUrl(sendUrl) respBody, err := GetUrl(sendUrl)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "未能获取到职务!", err) overallhandle.WriteLog("e", "未能获取到职务!", err)
return
} }
err = json.Unmarshal(respBody, &jobInfo) err = json.Unmarshal(respBody, &jobInfo)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "职务映射错误!", err) overallhandle.WriteLog("e", "职务映射错误!", err)
return
} }
overallhandle.WriteLog("i", "职务映射成功!", jobInfo) overallhandle.WriteLog("i", "职务映射成功!", jobInfo)
if len(jobInfo) < 0 { if len(jobInfo) < 0 {
@ -322,10 +330,12 @@ func OrgAdmin() {
respBody, err := GetUrl(sendUrl) respBody, err := GetUrl(sendUrl)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "未能获取到行政组织!", err) overallhandle.WriteLog("e", "未能获取到行政组织!", err)
return
} }
err = json.Unmarshal(respBody, &orgInfo) err = json.Unmarshal(respBody, &orgInfo)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "行政组织映射错误!", err) overallhandle.WriteLog("e", "行政组织映射错误!", err)
return
} }
overallhandle.WriteLog("i", "行政组织映射完成!", orgInfo) overallhandle.WriteLog("i", "行政组织映射完成!", orgInfo)
if len(orgInfo) < 0 { if len(orgInfo) < 0 {
@ -378,9 +388,9 @@ func OrgAdmin() {
saveData["time"] = time.Now().Unix() saveData["time"] = time.Now().Unix()
editErr := orgInfoContCont.EiteCont(map[string]interface{}{"id": orgInfoContCont.Id}, saveData) editErr := orgInfoContCont.EiteCont(map[string]interface{}{"id": orgInfoContCont.Id}, saveData)
if editErr == nil { if editErr == nil {
overallhandle.WriteLog("edit", "职务更新成功!", editErr, v, saveData) overallhandle.WriteLog("edit", "行政组织更新成功!", editErr, v, saveData)
} else { } else {
overallhandle.WriteLog("edit", "职务更新失败!", editErr, v, saveData) overallhandle.WriteLog("edit", "行政组织更新失败!", editErr, v, saveData)
} }
} }
} else { } else {
@ -430,7 +440,8 @@ func OrgAdmin() {
saveData := overallhandle.MapOut() saveData := overallhandle.MapOut()
saveData["superior"] = orgCorrePrent.Id saveData["superior"] = orgCorrePrent.Id
saveData["time"] = time.Now().Unix() saveData["time"] = time.Now().Unix()
parentContCorre.EiteCont(map[string]interface{}{"id": parentContCorre.Id}, saveData) parentIngErr := parentContCorre.EiteCont(map[string]interface{}{"id": parentContCorre.Id}, saveData)
overallhandle.WriteLog("add", "行政组织写入成功!", parentIngErr, saveData)
} }
} }
} }
@ -465,10 +476,12 @@ func Position() {
respBody, err := GetUrl(sendUrl) respBody, err := GetUrl(sendUrl)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "未能获取到职位!", err) overallhandle.WriteLog("e", "未能获取到职位!", err)
return
} }
err = json.Unmarshal(respBody, &orgInfo) err = json.Unmarshal(respBody, &orgInfo)
if err != nil { if err != nil {
overallhandle.WriteLog("e", "职位映射错误!", err) overallhandle.WriteLog("e", "职位映射错误!", err)
return
} }
overallhandle.WriteLog("i", "职位映射完成!", orgInfo) overallhandle.WriteLog("i", "职位映射完成!", orgInfo)
if len(orgInfo) < 0 { if len(orgInfo) < 0 {

4
api/version1/administrativeorganization/govcont.go

@ -276,7 +276,7 @@ func (o *OrganizationApi) GovThree(c *gin.Context) {
requestData.Id = idInt64 requestData.Id = idInt64
} }
var govMap overallhandle.MenuList var govMap overallhandle.MenuList
gormDb := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("administrative_organization.*,aot.name as classname,aot.level").Joins("left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type").Where("administrative_organization.`state` = 1") gormDb := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("administrative_organization.*,aot.name as classname,aot.level").Joins("left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type").Where("administrative_organization.`state` IN ?", []int{1, 2})
if requestData.Level != 0 { if requestData.Level != 0 {
gormDb = gormDb.Where("aot.level <= ?", requestData.Level) gormDb = gormDb.Where("aot.level <= ?", requestData.Level)
} }
@ -285,7 +285,7 @@ func (o *OrganizationApi) GovThree(c *gin.Context) {
overallhandle.Result(107, err, c) overallhandle.Result(107, err, c)
return return
} }
// fmt.Printf("id==========>%v", requestData) // fmt.Printf("id==========>%v", govMap)
// govMap.GovRecursion(requestData.Id, 0) // govMap.GovRecursion(requestData.Id, 0)
govMapThree := overallhandle.GovThreeList(requestData.Id, govMap) govMapThree := overallhandle.GovThreeList(requestData.Id, govMap)
overallhandle.Result(0, govMapThree, c) overallhandle.Result(0, govMapThree, c)

12
api/version1/personnelapi/kingdeenew.go

@ -359,6 +359,14 @@ func editManAuxiliaryDataNew(manKeyNum int64, manCont addKingdeePersonnel) {
manErr := manInfo.GetCont(map[string]interface{}{"`key`": manKeyNum}) manErr := manInfo.GetCont(map[string]interface{}{"`key`": manKeyNum})
if manErr == nil { if manErr == nil {
saveData := overallhandle.MapOut() saveData := overallhandle.MapOut()
if manCont.Globalroaming != "" && manCont.Globalroaming != manInfo.Globalroaming {
saveData["globalroaming"] = manCont.Globalroaming
}
if manCont.Passportno != "" && manCont.Passportno != manInfo.Passportno {
saveData["passportno"] = manCont.Passportno
}
if manCont.IDCardNo != "" && manCont.IDCardNo != manInfo.Idcardno { if manCont.IDCardNo != "" && manCont.IDCardNo != manInfo.Idcardno {
saveData["idcardno"] = manCont.IDCardNo saveData["idcardno"] = manCont.IDCardNo
} }
@ -459,11 +467,13 @@ func editManAuxiliaryDataNew(manKeyNum int64, manCont addKingdeePersonnel) {
} }
if len(saveData) > 0 { if len(saveData) > 0 {
saveData["`time`"] = time.Now().Unix() saveData["`time`"] = time.Now().Unix()
manInfo.EiteCont(map[string]interface{}{"`number`": manCont.Number}, saveData) manInfo.EiteCont(map[string]interface{}{"`key`": manInfo.Key}, saveData)
} }
} else { } else {
manInfo.Key = manKeyNum manInfo.Key = manKeyNum
manInfo.Number = manCont.Number manInfo.Number = manCont.Number
manInfo.Passportno = manCont.Passportno
manInfo.Globalroaming = manCont.Globalroaming
manInfo.Idcardno = manCont.IDCardNo manInfo.Idcardno = manCont.IDCardNo
idCardStarTime := time.Now().Unix() idCardStarTime := time.Now().Unix()
if manCont.IDCardStartTime != "" { if manCont.IDCardStartTime != "" {

875
api/version1/personnelapi/staff.go

File diff suppressed because it is too large

709
api/version1/personnelapi/staffarchives.go

@ -1,6 +1,7 @@
package personnelapi package personnelapi
import ( import (
"fmt"
"hr_server/models" "hr_server/models"
"hr_server/overall" "hr_server/overall"
"hr_server/overall/overallhandle" "hr_server/overall/overallhandle"
@ -447,3 +448,711 @@ func (s *StaffApi) EidtDoubleWorkerState(c *gin.Context) {
} }
} }
} }
//添加紧急联系人
func (s *StaffApi) AddEmercyCall(c *gin.Context) {
var requestData addEmergencyContact
c.ShouldBindJSON(&requestData)
if requestData.Id == "" || len(requestData.List) <= 0 {
overallhandle.Result(101, requestData, c)
return
}
keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64)
if keyErr != nil {
overallhandle.Result(100, keyErr, c)
return
}
var manCont models.PersonArchives
manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`")
if manErr != nil {
overallhandle.Result(107, manErr, c)
return
}
var emerContList []models.EmergencyContact
isWrite := 1
for _, v := range requestData.List {
if v.Name != "" && v.Mobilephone != "" {
var emerContCont models.EmergencyContact
emerContCont.Number = manCont.Number //员工工号;index"`
emerContCont.Name = v.Name //紧急联系人姓名"`
emerContCont.Relationship = v.Relationship //与紧急联系人关系"`
emerContCont.Tel = v.Mobilephone //紧急联系人电话"`
emerContCont.Time = time.Now().Unix() //创建时间"`
emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
emerContCont.Key = keyInt //
emerContList = append(emerContList, emerContCont)
} else {
isWrite = 2
}
}
if isWrite != 1 {
overallhandle.Result(100, requestData.List, c)
return
}
if len(emerContList) <= 0 {
overallhandle.Result(1, emerContList, c, "没有要添加的数据!")
return
}
addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error
if addErr != nil {
overallhandle.Result(104, requestData.List, c)
} else {
overallhandle.Result(0, addErr, c)
}
}
//编辑紧急联系人
func (s *StaffApi) EditEmercyCall(c *gin.Context) {
var requestData emergencyContact
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData, c)
return
}
var enerCont models.EmergencyContact
err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`id`", "`name`", "`relationship`", "`tel`")
if err != nil {
overallhandle.Result(105, err, c)
return
}
saveData := overallhandle.MapOut()
if requestData.Name != "" && requestData.Name != enerCont.Name {
saveData["name"] = requestData.Name
}
if requestData.Relationship != "" && requestData.Relationship != enerCont.Relationship {
saveData["relationship"] = requestData.Relationship
}
if requestData.Mobilephone != "" && requestData.Mobilephone != enerCont.Tel {
saveData["tel"] = requestData.Mobilephone
}
if len(saveData) > 0 {
saveData["time"] = time.Now().Unix()
eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr != nil {
overallhandle.Result(106, eidtErr, c)
} else {
overallhandle.Result(0, eidtErr, c)
}
} else {
overallhandle.Result(0, saveData, c)
}
}
//编辑紧急联系人
func (s *StaffApi) EditEmercyCallState(c *gin.Context) {
var requestData eidtWorkState
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
var doubleWorkCont models.EmergencyContact
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if wErr != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
if requestData.State == 0 {
requestData.State = 1
}
if requestData.IsDel <= 1 {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.EmergencyContact
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
} else {
if requestData.State == 3 {
delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.EmergencyContact{}).Error
if delErr == nil {
overallhandle.Result(0, delErr, c)
} else {
overallhandle.Result(108, delErr, c)
}
} else {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.EmergencyContact
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
}
}
}
//添加家庭成员
func (s *StaffApi) AddFamilyMembers(c *gin.Context) {
var requestData addFamilyPeople
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(101, err, c)
return
}
if requestData.Id == "" || len(requestData.List) <= 0 {
overallhandle.Result(101, requestData, c)
return
}
keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64)
if keyErr != nil {
overallhandle.Result(100, keyErr, c)
return
}
var manCont models.PersonArchives
manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`")
if manErr != nil {
overallhandle.Result(107, manErr, c)
return
}
var emerContList []models.FamilyMembers
isWrite := 1
for _, v := range requestData.List {
if v.Name != "" && v.Mobilephone != "" {
var emerContCont models.FamilyMembers
emerContCont.Number = manCont.Number
emerContCont.Relationship = v.Relationship //与家属关系"`
emerContCont.Name = v.Name //家属姓名"`
emerContCont.Company = v.Company
emerContCont.Deparment = v.Department
emerContCont.Postnme = v.Position
emerContCont.Tel = v.Mobilephone //家属电话"`
poloutlook := v.PoliticalOutlook
if poloutlook == 0 {
poloutlook = 1
}
emerContCont.PoliticalOutlook = poloutlook
emerContCont.Time = time.Now().Unix() //创建时间"`
emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
emerContCont.Key = keyInt //
emerContList = append(emerContList, emerContCont)
} else {
isWrite = 2
}
}
if isWrite != 1 {
overallhandle.Result(100, requestData.List, c)
return
}
if len(emerContList) <= 0 {
overallhandle.Result(1, emerContList, c, "没有要添加的数据!")
return
}
addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error
if addErr != nil {
overallhandle.Result(104, requestData.List, c)
} else {
overallhandle.Result(0, addErr, c)
}
}
//编辑家属信息
func (s *StaffApi) EditFamilyMembers(c *gin.Context) {
var requestData memberOfFamily
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData, c)
return
}
var enerCont models.FamilyMembers
err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if err != nil {
overallhandle.Result(105, err, c)
return
}
saveData := overallhandle.MapOut()
if requestData.Name != "" && requestData.Name != enerCont.Name {
saveData["name"] = requestData.Name
}
if requestData.Relationship != "" && requestData.Relationship != enerCont.Relationship {
saveData["relation"] = requestData.Relationship
}
if requestData.Mobilephone != "" && requestData.Mobilephone != enerCont.Tel {
saveData["tel"] = requestData.Mobilephone
}
if requestData.Company != "" && requestData.Company != enerCont.Company {
saveData["company"] = requestData.Company
}
if requestData.Department != "" && requestData.Department != enerCont.Deparment {
saveData["deparment"] = requestData.Department
}
if requestData.Position != "" && requestData.Position != enerCont.Postnme {
saveData["postnme"] = requestData.Position
}
if requestData.PoliticalOutlook != 0 && requestData.PoliticalOutlook != enerCont.PoliticalOutlook {
saveData["political_outlook"] = requestData.PoliticalOutlook
}
if len(saveData) > 0 {
saveData["time"] = time.Now().Unix()
eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr != nil {
overallhandle.Result(106, eidtErr, c)
} else {
overallhandle.Result(0, eidtErr, c)
}
} else {
overallhandle.Result(0, saveData, c)
}
}
//编辑家属状态
func (s *StaffApi) EditFamilyMembersSatte(c *gin.Context) {
var requestData eidtWorkState
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
var doubleWorkCont models.FamilyMembers
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if wErr != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
if requestData.State == 0 {
requestData.State = 1
}
if requestData.IsDel <= 1 {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.FamilyMembers
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
} else {
if requestData.State == 3 {
delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.FamilyMembers{}).Error
if delErr == nil {
overallhandle.Result(0, delErr, c)
} else {
overallhandle.Result(108, delErr, c)
}
} else {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.FamilyMembers
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
}
}
}
//添加教育经历
func (s *StaffApi) AddEducationalExperience(c *gin.Context) {
var requestData addExpToSchool
c.ShouldBindJSON(&requestData)
// err := c.ShouldBindJSON(&requestData)
// if err != nil {
// overallhandle.Result(101, err, c)
// return
// }
if requestData.Id == "" || len(requestData.List) <= 0 {
overallhandle.Result(101, requestData, c)
return
}
keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64)
if keyErr != nil {
overallhandle.Result(100, keyErr, c)
return
}
var manCont models.PersonArchives
manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`")
if manErr != nil {
overallhandle.Result(107, manErr, c)
return
}
var emerContList []models.PersonnelEducation
isWrite := 1
for _, v := range requestData.List {
if v.GraduationSchool != "" && v.Subject != "" {
var emerContCont models.PersonnelEducation
emerContCont.Number = manCont.Number
eduCation := v.Education
if eduCation == 0 {
eduCation = 1
}
emerContCont.Education = eduCation
emerContCont.GraduationSchool = v.GraduationSchool
emerContCont.Subject = v.Subject
entranceTimeFirst := time.Now().Unix()
if v.AdmissionTime != "" {
entranceTimeFirst, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.AdmissionTime))
}
emerContCont.AdmissionTime = entranceTimeFirst // 入学时间"`
graduationTimef := time.Now().Unix()
if v.GraduationTime != "" {
graduationTimef, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.GraduationTime))
}
emerContCont.GraduationTime = graduationTimef // 毕业时间"`
emerContCont.Time = time.Now().Unix() // 写入时间"`
acaLeve, _ := strconv.Atoi(v.AcademicDegree)
if acaLeve == 0 {
acaLeve = 1
}
emerContCont.AcademicDegree = acaLeve
emerContCont.Time = time.Now().Unix() //创建时间"`
emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
emerContCont.Key = keyInt //
switch v.Level {
case "2":
var editPerCont models.PersonnelEducation
editPerCont.EiteCont(map[string]interface{}{"`key`": keyInt, "`level`": 2}, map[string]interface{}{"`level`": 1})
emerContCont.Level = 2
case "3":
var editPerCont models.PersonnelEducation
editPerCont.EiteCont(map[string]interface{}{"`key`": keyInt, "`level`": 3}, map[string]interface{}{"`level`": 1})
emerContCont.Level = 3
default:
emerContCont.Level = 1
}
emerContList = append(emerContList, emerContCont)
} else {
isWrite = 2
}
}
if isWrite != 1 {
overallhandle.Result(100, requestData.List, c)
return
}
if len(emerContList) <= 0 {
overallhandle.Result(1, emerContList, c, "没有要添加的数据!")
return
}
addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error
if addErr != nil {
overallhandle.Result(104, requestData.List, c)
} else {
overallhandle.Result(0, addErr, c)
}
}
//编辑教育经历
func (s *StaffApi) EditEducationalExperience(c *gin.Context) {
var requestData editExpToSchool
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData, c)
return
}
var enerCont models.PersonnelEducation
err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if err != nil {
overallhandle.Result(105, err, c)
return
}
saveData := overallhandle.MapOut()
if requestData.GraduationSchool != "" && requestData.GraduationSchool != enerCont.GraduationSchool {
saveData["graduation_school"] = requestData.GraduationSchool
}
if requestData.Subject != "" && requestData.Subject != enerCont.Subject {
saveData["subject"] = requestData.Subject
}
if requestData.Education != 0 && requestData.Education != enerCont.Education {
saveData["education"] = requestData.Education
}
if requestData.AdmissionTime != "" {
admissionTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.AdmissionTime))
if admissionTimeInt != enerCont.AdmissionTime {
saveData["admission_time"] = admissionTimeInt
}
}
if requestData.GraduationTime != "" {
graduationTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.GraduationTime))
if graduationTimeInt != enerCont.GraduationTime {
saveData["graduation_time"] = graduationTimeInt
}
}
if requestData.AcademicDegree != "" {
acaLeve, _ := strconv.Atoi(requestData.AcademicDegree)
if acaLeve != enerCont.AcademicDegree {
saveData["academic_degree"] = acaLeve
}
}
if requestData.Level != "" {
levelInt, _ := strconv.Atoi(requestData.Level)
if levelInt != enerCont.Level {
switch levelInt {
case 2:
var editPerCont models.PersonnelEducation
editPerCont.EiteCont(map[string]interface{}{"`key`": enerCont.Key, "`level`": 2}, map[string]interface{}{"`level`": 1})
saveData["academic_degree"] = 2
case 3:
var editPerCont models.PersonnelEducation
editPerCont.EiteCont(map[string]interface{}{"`key`": enerCont.Key, "`level`": 3}, map[string]interface{}{"`level`": 1})
saveData["academic_degree"] = 3
default:
saveData["academic_degree"] = 1
}
}
}
if len(saveData) > 0 {
saveData["time"] = time.Now().Unix()
eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr != nil {
overallhandle.Result(106, eidtErr, c)
} else {
overallhandle.Result(0, eidtErr, c)
}
} else {
overallhandle.Result(0, saveData, c)
}
}
//编辑教育经历状态
func (s *StaffApi) EditEduExpState(c *gin.Context) {
var requestData eidtWorkState
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
var doubleWorkCont models.PersonnelEducation
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if wErr != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
if requestData.State == 0 {
requestData.State = 1
}
if requestData.IsDel <= 1 {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.PersonnelEducation
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
} else {
if requestData.State == 3 {
delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.PersonnelEducation{}).Error
if delErr == nil {
overallhandle.Result(0, delErr, c)
} else {
overallhandle.Result(108, delErr, c)
}
} else {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.PersonnelEducation
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
}
}
}
//添加工作履历
func (s *StaffApi) AddWorkHistoryCont(c *gin.Context) {
var requestData addWorkHistory
c.ShouldBindJSON(&requestData)
// err := c.ShouldBindJSON(&requestData)
// if err != nil {
// overallhandle.Result(101, err, c)
// return
// }
if requestData.Id == "" || len(requestData.List) <= 0 {
overallhandle.Result(101, requestData, c)
return
}
keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64)
if keyErr != nil {
overallhandle.Result(100, keyErr, c)
return
}
var manCont models.PersonArchives
manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`")
if manErr != nil {
overallhandle.Result(107, manErr, c)
return
}
var emerContList []models.WorkHistory
isWrite := 1
for _, v := range requestData.List {
if v.Company != "" && v.Department != "" {
var emerContCont models.WorkHistory
emerContCont.Number = manCont.Number
emerContCont.Key = keyInt
emerContCont.Company = v.Company //公司"`
emerContCont.Deparment = v.Department //部门"`
emerContCont.Job = v.Position //职务"`
joinTime := time.Now().Unix()
if v.EntryTime != "" {
joinTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.EntryTime))
}
emerContCont.EntryTime = joinTime //入职时间"`
outTime := time.Now().Unix()
if v.LeaveDate != "" {
outTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.LeaveDate))
}
emerContCont.Leavedate = outTime //离职日期"`
emerContCont.Witness = v.Witness //证明人"`
emerContCont.WitnessTel = v.WitnessTel //证明人电话"`
emerContCont.Remarks = v.Remarks //备注"`
emerContCont.Time = time.Now().Unix() //创建时间"`
emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
emerContList = append(emerContList, emerContCont)
} else {
isWrite = 2
}
}
if isWrite != 1 {
overallhandle.Result(100, requestData.List, c)
return
}
if len(emerContList) <= 0 {
overallhandle.Result(1, emerContList, c, "没有要添加的数据!")
return
}
addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error
if addErr != nil {
overallhandle.Result(104, requestData.List, c)
} else {
overallhandle.Result(0, addErr, c)
}
}
//编辑工作履历
func (s *StaffApi) EditWorkHistoryCont(c *gin.Context) {
var requestData editWorkHistory
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData, c)
return
}
var enerCont models.WorkHistory
err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if err != nil {
overallhandle.Result(105, err, c)
return
}
saveData := overallhandle.MapOut()
if requestData.Company != "" && requestData.Company != enerCont.Company {
saveData["company"] = requestData.Company
}
if requestData.Department != "" && requestData.Department != enerCont.Deparment {
saveData["deparment"] = requestData.Department
}
if requestData.Position != "" && requestData.Position != enerCont.Job {
saveData["job"] = requestData.Position
}
if requestData.EntryTime != "" {
EntryTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.EntryTime))
if EntryTimeInt != enerCont.EntryTime {
saveData["entry_time"] = EntryTimeInt
}
}
if requestData.LeaveDate != "" {
LeaveDateInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.LeaveDate))
if LeaveDateInt != enerCont.Leavedate {
saveData["leavedate"] = LeaveDateInt
}
}
if requestData.Witness != "" && requestData.Witness != enerCont.Witness {
saveData["witness"] = requestData.Witness
}
if requestData.WitnessTel != "" && requestData.WitnessTel != enerCont.WitnessTel {
saveData["witness_tel"] = requestData.WitnessTel
}
if requestData.Remarks != "" && requestData.Remarks != enerCont.Remarks {
saveData["remarks"] = requestData.Remarks
}
if len(saveData) > 0 {
saveData["time"] = time.Now().Unix()
eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr != nil {
overallhandle.Result(106, eidtErr, c)
} else {
overallhandle.Result(0, eidtErr, c)
}
} else {
overallhandle.Result(0, saveData, c)
}
}
//编辑工作履历状态
func (s *StaffApi) EditWorkHistoryState(c *gin.Context) {
var requestData eidtWorkState
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(101, requestData.Id, c)
return
}
var doubleWorkCont models.WorkHistory
wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id})
if wErr != nil {
overallhandle.Result(107, requestData.Id, c)
return
}
if requestData.State == 0 {
requestData.State = 1
}
if requestData.IsDel <= 1 {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.WorkHistory
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
} else {
if requestData.State == 3 {
delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.WorkHistory{}).Error
if delErr == nil {
overallhandle.Result(0, delErr, c)
} else {
overallhandle.Result(108, delErr, c)
}
} else {
saveData := overallhandle.MapOut()
saveData["time"] = time.Now().Unix()
saveData["state"] = requestData.State
var eidtCont models.WorkHistory
eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData)
if eidtErr == nil {
overallhandle.Result(0, saveData, c)
} else {
overallhandle.Result(106, eidtErr, c)
}
}
}
}

135
api/version1/personnelapi/type.go

@ -68,43 +68,52 @@ type getDepartmentInfo struct {
//添加员工参数 //添加员工参数
type addPersonnel struct { type addPersonnel struct {
//员工主表
Number string `json:"number"` //工号1 Number string `json:"number"` //工号1
Password string `json:"password"` //密码1 Password string `json:"password"` //密码1
Name string `json:"name"` //姓名1 Name string `json:"name"` //姓名1
Gender int `json:"gender"` //性别
Icon string `json:"icon"` //头像 Icon string `json:"icon"` //头像
HireType int `json:"hiretype"` //1雇佣类型(1:雇佣入职;2:再入职;3:返聘) HireType int `json:"hiretype"` //1雇佣类型(1:雇佣入职;2:再入职;3:返聘)
Mobilephone string `json:"mobilephone"` //联系电话 EmpType int `json:"emptype"` //用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职;9:应聘人员)
IDCardNo string `json:"idcardno"` //身份证号码
PoliticalOutlook int `json:"politicaloutlook"` //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
Company int64 `json:"company"` //公司 Company int64 `json:"company"` //公司
MainDepartment string `json:"maindepartment"` //主部门
Department []string `json:"department"` //分厂(部室) Department []string `json:"department"` //分厂(部室)
AdminOrg int64 `json:"adminorg"` //工段 AdminOrg int64 `json:"adminorg"` //工段
Position int64 `json:"position"` //职位(岗位)1 Position int64 `json:"position"` //职位(岗位)1
EmpType int `json:"emptype"` //用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职) JobName string `json:"jobname"` //职务
PositionGrade int64 `json:"positiongrade"` //入职等级 PositionGrade int64 `json:"positiongrade"` //入职等级
Nation string `json:"nation"` //民族 //员工副表
Passportno string `json:"passportno"` //护照号码
Globalroaming string `json:"globalroaming"` //国际区号
IDCardNo string `json:"idcardno"` //身份证号码
IDCardStartTime string `json:"idcardnostarttime"` //身份证有效期开始
IDCardEndTime string `json:"idcardnoendtime"` //身份证有效期结束
IDCardAddress string `json:"idcardnoaddress"` //身份证地址
IDCardIsSued string `json:"idcardissued"` //身份证签发机关
Mobilephone string `json:"mobilephone"` //联系电话
Email string `json:"email"` //电子邮件
Gender int `json:"gender"` //性别
Birthday string `json:"birthday"` //生日 Birthday string `json:"birthday"` //生日
Nation string `json:"nation"` //民族
NativePlace string `json:"nativeplace"` //籍贯
Health int `json:"health"` //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废
Maritalstatus int `json:"maritalstatus"` //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
CurrentResidence string `json:"currentresidence"` //现居地
WorkingDate string `json:"workingdate"` //参加工作日期 WorkingDate string `json:"workingdate"` //参加工作日期
EntryDate string `json:"entrydate"` //入职日期 EntryDate string `json:"entrydate"` //入职日期
ProbationPeriod int `json:"probationperiod"` //试用期(月) ProbationPeriod int `json:"probationperiod"` //试用期(月)
ConfirmationDate string `json:"confirmationdate"` //转正日期 ConfirmationDate string `json:"confirmationdate"` //转正日期
NativePlace string `json:"nativeplace"` //籍贯
CurrentResidence string `json:"currentresidence"` //现居地
Constellation int `json:"constellation"` //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座) Constellation int `json:"constellation"` //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)
Health int `json:"health"` //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废 PoliticalOutlook int `json:"politicaloutlook"` //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
Maritalstatus int `json:"maritalstatus"` //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
Iisdoubleworker int `json:"isdoubleworker"` //是否双职工(1:是;2:否)
Isveterans int `json:"isveterans"` //是否为退役军人(1:是;2:否) Isveterans int `json:"isveterans"` //是否为退役军人(1:是;2:否)
Veteransnumber string `json:"veteransnumber"` //退役证编号 Veteransnumber string `json:"veteransnumber"` //退役证编号
Iisdoubleworker int `json:"isdoubleworker"` //是否双职工(1:是;2:否)
DoubleWorkerList []DoubleWorkerInFo `json:"doubleworkerlist"` //双职工列表
EducationalExperience []educationalExperience `json:"educationalexperience"` //教育经历 EducationalExperience []educationalExperience `json:"educationalexperience"` //教育经历
EmergencyContact []emergencyContact `json:"emergencycontact"` //紧急联系人 EmergencyContact []emergencyContact `json:"emergencycontact"` //紧急联系人
MemberOfFamily []memberOfFamily `json:"memberoffamily"` //家庭成员 MemberOfFamily []memberOfFamily `json:"memberoffamily"` //家庭成员
SpouseName string `json:"spousename"` //配偶姓名 WorkHistoryList []workHistoryAry `json:"workhistorylist"` //工作履历
SpouseCompany string `json:"spousecompany"` //配偶所在公司
SpouseDepartment string `json:"spousedepartment"` //配偶所在部门
SpousePosition string `json:"spouseposition"` //配偶所在岗位
SpouseTel string `json:"spousetel"` //配偶联系方式
} }
//教育经历 //教育经历
@ -114,7 +123,7 @@ type educationalExperience struct {
Education int `json:"education"` //学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授) Education int `json:"education"` //学历(1:初中及以下;2:中专;3:高中;4:中技;5:高技;6:函数专科;7:大学专科;8:函数本科;9:大学本科;10:硕士研究生;11:博士研究生;12:专家、教授)
AdmissionTime string `json:"admissiontime"` //入学时间 AdmissionTime string `json:"admissiontime"` //入学时间
GraduationTime string `json:"graduationtime"` //毕业时间 GraduationTime string `json:"graduationtime"` //毕业时间
AcademicDegree string `json:"academicdegree"` //学位 AcademicDegree string `json:"academicdegree"` //学位(1:无;2:学士;3:硕士;4:博士)
Level string `json:"level"` //学历类型 Level string `json:"level"` //学历类型
} }
@ -173,6 +182,8 @@ type addKingdeePersonnel struct {
JobName string `json:"jobname"` //职务 JobName string `json:"jobname"` //职务
PositionGrade int64 `json:"positiongrade"` //入职等级 PositionGrade int64 `json:"positiongrade"` //入职等级
//员工副表 //员工副表
Passportno string `json:"passportno"` //护照号码
Globalroaming string `json:"globalroaming"` //国际区号
IDCardNo string `json:"idcardno"` //身份证号码 IDCardNo string `json:"idcardno"` //身份证号码
IDCardStartTime string `json:"idcardnostarttime"` //身份证有效期开始 IDCardStartTime string `json:"idcardnostarttime"` //身份证有效期开始
IDCardEndTime string `json:"idcardnoendtime"` //身份证有效期结束 IDCardEndTime string `json:"idcardnoendtime"` //身份证有效期结束
@ -263,6 +274,13 @@ type DoubleWorkerCont struct {
Position string `json:"position"` //职位(岗位) Position string `json:"position"` //职位(岗位)
Mobilephone string `json:"mobilephone"` //联系电话 Mobilephone string `json:"mobilephone"` //联系电话
} }
type DoubleWorkerInFo struct {
Name string `json:"name"` //姓名
Company string `json:"company"` //公司
Department string `json:"department"` //分厂(部室)
Position string `json:"position"` //职位(岗位)
Mobilephone string `json:"mobilephone"` //联系电话
}
type educatExp struct { type educatExp struct {
educationalExperience educationalExperience
@ -296,3 +314,86 @@ type eidtWorkState struct {
State int `json:"state"` State int `json:"state"`
IsDel int `json:"isdel"` IsDel int `json:"isdel"`
} }
//编辑员工参数
type eitePersonnel struct {
Id string `json:"id"`
//员工主表
// Number string `json:"number"` //工号1
// Password string `json:"password"` //密码1
Name string `json:"name"` //姓名1
Icon string `json:"icon"` //头像
HireType int `json:"hiretype"` //1雇佣类型(1:雇佣入职;2:再入职;3:返聘)
EmpType int `json:"emptype"` //用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职;9:应聘人员)
Company int64 `json:"company"` //公司
MainDepartment int64 `json:"maindepartment"` //主部门
Department []string `json:"department"` //分厂(部室)
AdminOrg int64 `json:"adminorg"` //工段
Position int64 `json:"position"` //职位(岗位)1
// JobName int64 `json:"jobname"` //职务
PositionGrade int64 `json:"positiongrade"` //入职等级
//员工副表
Passportno string `json:"passportno"` //护照号码
Globalroaming string `json:"globalroaming"` //国际区号
IDCardNo string `json:"idcardno"` //身份证号码
IDCardStartTime string `json:"idcardnostarttime"` //身份证有效期开始
IDCardEndTime string `json:"idcardnoendtime"` //身份证有效期结束
IDCardAddress string `json:"idcardnoaddress"` //身份证地址
IDCardIsSued string `json:"idcardissued"` //身份证签发机关
Mobilephone string `json:"mobilephone"` //联系电话
Email string `json:"email"` //电子邮件
Gender int `json:"gender"` //性别
Birthday string `json:"birthday"` //生日
Nation string `json:"nation"` //民族
NativePlace string `json:"nativeplace"` //籍贯
Health int `json:"health"` //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废
Maritalstatus int `json:"maritalstatus"` //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
CurrentResidence string `json:"currentresidence"` //现居地
WorkingDate string `json:"workingdate"` //参加工作日期
EntryDate string `json:"entrydate"` //入职日期
ProbationPeriod int `json:"probationperiod"` //试用期(月)
ConfirmationDate string `json:"confirmationdate"` //转正日期
Constellation int `json:"constellation"` //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)
PoliticalOutlook int `json:"politicaloutlook"` //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
Isveterans int `json:"isveterans"` //是否为退役军人(1:是;2:否)
Veteransnumber string `json:"veteransnumber"` //退役证编号
Iisdoubleworker int `json:"isdoubleworker"` //是否双职工(1:是;2:否)
DoubleWorkerList []DoubleWorkerInFo `json:"doubleworkerlist"` //双职工列表
}
//添加紧急联系人
type addEmergencyContact struct {
Id string `json:"id"`
List []emergencyContact `json:"list"`
}
//添加家庭成员
type addFamilyPeople struct {
Id string `json:"id"`
List []memberOfFamily `json:"list"`
}
//添加教育经历
type addExpToSchool struct {
Id string `json:"id"`
List []educationalExperience `json:"list"`
}
//编辑教育经历
type editExpToSchool struct {
Id string `json:"id"`
educationalExperience
}
//添加工作履历
type addWorkHistory struct {
Id string `json:"id"`
List []workHistoryAry `json:"list"`
}
//编辑教育经历
type editWorkHistory struct {
Id string `json:"id"`
workHistoryAry
}

41
apirouter/personnel/people.go

@ -19,10 +19,28 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) {
apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新) apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新)
apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案 apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案
apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统 apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统
//双职工
apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工 apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工
apiRouter.POST("eidtdoubleworker", apiHandle.EidtDoubleWorkerApi) //编辑双职工 apiRouter.POST("eidtdoubleworker", apiHandle.EidtDoubleWorkerApi) //编辑双职工
apiRouter.POST("eidtdoubleworkerstate", apiHandle.EidtDoubleWorkerState) //编辑双职工状态 apiRouter.POST("eidtdoubleworkerstate", apiHandle.EidtDoubleWorkerState) //编辑双职工状态
//员工资料
apiRouter.POST("eidtstaffcont", apiHandle.EidtStaffCont) //编辑员工资料
//紧急联系人
apiRouter.POST("addemercycall", apiHandle.AddEmercyCall) //添加紧急联系人
apiRouter.POST("editemercycall", apiHandle.EditEmercyCall) //编辑紧急联系人
apiRouter.POST("editemercycallstate", apiHandle.EditEmercyCallState) //编辑紧急联系人状态
//家庭成员
apiRouter.POST("addfamilymembers", apiHandle.AddFamilyMembers) //添加家庭成员
apiRouter.POST("editfamilymembers", apiHandle.EditFamilyMembers) //编辑家庭成员
apiRouter.POST("editfamilymemberssatte", apiHandle.EditFamilyMembersSatte) //编辑家庭成员状态
//教育经历
apiRouter.POST("addeducationalexperience", apiHandle.AddEducationalExperience) //添加教育经历
apiRouter.POST("editeducationalexperience", apiHandle.EditEducationalExperience) //编辑教育经历
apiRouter.POST("editeduexpstate", apiHandle.EditEduExpState) //编辑教育经历状态
//工作履历
apiRouter.POST("addworkhistorycont", apiHandle.AddWorkHistoryCont) //添加工作履历
apiRouter.POST("editworkhistorycont", apiHandle.EditWorkHistoryCont) //编辑工作履历
apiRouter.POST("editworkhistorystate", apiHandle.EditWorkHistoryState) //编辑工作履历状态
} }
} }
@ -40,10 +58,27 @@ func (p *PersonnelRouteKingdee) InitRouterGroup(route *gin.RouterGroup) {
apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新) apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新)
apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案 apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案
apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统 apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统
//双职工
apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工 apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工
apiRouter.POST("eidtdoubleworker", apiHandle.EidtDoubleWorkerApi) //编辑双职工 apiRouter.POST("eidtdoubleworker", apiHandle.EidtDoubleWorkerApi) //编辑双职工
apiRouter.POST("eidtdoubleworkerstate", apiHandle.EidtDoubleWorkerState) //编辑双职工状态 apiRouter.POST("eidtdoubleworkerstate", apiHandle.EidtDoubleWorkerState) //编辑双职工状态
//员工资料
apiRouter.POST("eidtstaffcont", apiHandle.EidtStaffCont) //编辑员工资料
//紧急联系人
apiRouter.POST("addemercycall", apiHandle.AddEmercyCall) //添加紧急联系人
apiRouter.POST("editemercycall", apiHandle.EditEmercyCall) //编辑紧急联系人
apiRouter.POST("editemercycallstate", apiHandle.EditEmercyCallState) //编辑紧急联系人状态
//家庭成员
apiRouter.POST("addfamilymembers", apiHandle.AddFamilyMembers) //添加家庭成员
apiRouter.POST("editfamilymembers", apiHandle.EditFamilyMembers) //编辑家庭成员
apiRouter.POST("editfamilymemberssatte", apiHandle.EditFamilyMembersSatte) //编辑家庭成员状态
//教育经历
apiRouter.POST("addeducationalexperience", apiHandle.AddEducationalExperience) //添加教育经历
apiRouter.POST("editeducationalexperience", apiHandle.EditEducationalExperience) //编辑教育经历
apiRouter.POST("editeduexpstate", apiHandle.EditEduExpState) //编辑教育经历状态
//工作履历
apiRouter.POST("addworkhistorycont", apiHandle.AddWorkHistoryCont) //添加工作履历
apiRouter.POST("editworkhistorycont", apiHandle.EditWorkHistoryCont) //编辑工作履历
apiRouter.POST("editworkhistorystate", apiHandle.EditWorkHistoryState) //编辑工作履历状态
} }
} }

35
identification/authentication.go

@ -71,52 +71,62 @@ func Validator() gin.HandlerFunc {
//头文件加密 //头文件加密
//ContentType //ContentType
var ContentTypeMd5 overallhandle.Md5Encryption var ContentTypeMd5 overallhandle.Md5Encryption
ContentTypeMd5.Md5EncryptionInit(ContentType)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
ContentTypeMd5.AppKey = empowerUser.VerificationCode ContentTypeMd5.AppKey = empowerUser.VerificationCode
} }
ContentTypeMd5.Md5EncryptionInit(ContentType)
ContentTypeMd5Str := ContentTypeMd5.Md5EncryptionAlgorithm() ContentTypeMd5Str := ContentTypeMd5.Md5EncryptionAlgorithm()
//Origin //Origin
var OriginMd5 overallhandle.Md5Encryption var OriginMd5 overallhandle.Md5Encryption
OriginMd5.Md5EncryptionInit(Origin)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
OriginMd5.AppKey = empowerUser.VerificationCode OriginMd5.AppKey = empowerUser.VerificationCode
} }
OriginMd5.Md5EncryptionInit(Origin)
originMd5Str := OriginMd5.Md5EncryptionAlgorithm() originMd5Str := OriginMd5.Md5EncryptionAlgorithm()
//userAgent //userAgent
var userAgentMd5 overallhandle.Md5Encryption var userAgentMd5 overallhandle.Md5Encryption
userAgentMd5.Md5EncryptionInit(userAgent)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
userAgentMd5.AppKey = empowerUser.VerificationCode userAgentMd5.AppKey = empowerUser.VerificationCode
} }
userAgentMd5.Md5EncryptionInit(userAgent)
userAgentMd5Str := userAgentMd5.Md5EncryptionAlgorithm() userAgentMd5Str := userAgentMd5.Md5EncryptionAlgorithm()
//随机数加密 //随机数加密
var randomNumberMd5 overallhandle.Md5Encryption var randomNumberMd5 overallhandle.Md5Encryption
randomNumberMd5.Md5EncryptionInit(validator.Number)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
randomNumberMd5.AppKey = empowerUser.VerificationCode randomNumberMd5.AppKey = empowerUser.VerificationCode
} }
randomNumberMd5.Md5EncryptionInit(validator.Number)
numberMd5 := randomNumberMd5.Md5EncryptionAlgorithm() numberMd5 := randomNumberMd5.Md5EncryptionAlgorithm()
//用户名加密 //用户名加密
var userKeyMd5 overallhandle.Md5Encryption var userKeyMd5 overallhandle.Md5Encryption
userKeyMd5.Md5EncryptionInit(validator.UserKey)
if empowerUser.VerificationCode != "" { if empowerUser.VerificationCode != "" {
userKeyMd5.AppKey = empowerUser.VerificationCode userKeyMd5.AppKey = empowerUser.VerificationCode
} }
userKeyMd5.Md5EncryptionInit(validator.UserKey)
userKeyMd5Str := userKeyMd5.Md5EncryptionAlgorithm() userKeyMd5Str := userKeyMd5.Md5EncryptionAlgorithm()
clearCodeToken := fmt.Sprintf("%v-%v-%v-%v-%v-%v", ContentTypeMd5Str, originMd5Str, userAgentMd5Str, numberMd5, userKeyMd5Str, passWordMd5Str) clearCodeToken := fmt.Sprintf("%v-%v-%v-%v-%v-%v", ContentTypeMd5Str, userAgentMd5Str, originMd5Str, numberMd5, userKeyMd5Str, passWordMd5Str)
//token 加密 //token 加密
var tokenMd5 overallhandle.Md5Encryption var tokenMd5 overallhandle.Md5Encryption
tokenMd5.Md5EncryptionInit(clearCodeToken) tokenMd5.Md5EncryptionInit(clearCodeToken)
if empowerUser.VerificationCode != "" {
tokenMd5.AppKey = empowerUser.VerificationCode
}
tokenMd5Str := tokenMd5.Md5EncryptionAlgorithm() tokenMd5Str := tokenMd5.Md5EncryptionAlgorithm()
clearTokenStr := fmt.Sprintf("%v-%v", tokenMd5Str, numberMd5) clearTokenStr := fmt.Sprintf("%v-%v", tokenMd5Str, numberMd5)
var clearTokenMd5 overallhandle.Md5Encryption var clearTokenMd5 overallhandle.Md5Encryption
clearTokenMd5.Md5EncryptionInit(clearTokenStr) clearTokenMd5.Md5EncryptionInit(clearTokenStr)
if empowerUser.VerificationCode != "" {
clearTokenMd5.AppKey = empowerUser.VerificationCode
}
clearTokenMd5Str := clearTokenMd5.Md5EncryptionAlgorithm() clearTokenMd5Str := clearTokenMd5.Md5EncryptionAlgorithm()
//提交Token转化 //提交Token转化
@ -124,11 +134,22 @@ func Validator() gin.HandlerFunc {
var submitTokenMd5 overallhandle.Md5Encryption var submitTokenMd5 overallhandle.Md5Encryption
submitTokenMd5.Md5EncryptionInit(submitTokenStr) submitTokenMd5.Md5EncryptionInit(submitTokenStr)
if empowerUser.VerificationCode != "" {
submitTokenMd5.AppKey = empowerUser.VerificationCode
}
submitTokenMd5Str := submitTokenMd5.Md5EncryptionAlgorithm() submitTokenMd5Str := submitTokenMd5.Md5EncryptionAlgorithm()
if submitTokenMd5Str != clearTokenMd5Str { if submitTokenMd5Str != clearTokenMd5Str {
sss := overallhandle.MapOut()
sss["numberMd5"] = numberMd5
sss["submitTokenMd5Str"] = submitTokenMd5Str
sss["clearTokenMd5Str"] = clearTokenMd5Str
sss["tokenMd5Str"] = tokenMd5Str
sss["clearCodeToken"] = clearCodeToken
// tokenMd5Str, numberMd5
// overallhandle.Result(2004, "对不起!非法令牌!不可访问系统", c) // overallhandle.Result(2004, "对不起!非法令牌!不可访问系统", c)
overallhandle.Result(2004, numberMd5, c, "对不起!非法令牌!不可访问系统") overallhandle.Result(2004, userToken, c, "对不起!非法令牌!不可访问系统")
c.Abort() c.Abort()
return return
} }

501
log/202206/20220603.log

File diff suppressed because one or more lines are too long

980
log/202206/20220604.log

File diff suppressed because one or more lines are too long

35
log/202206/20220605.log

File diff suppressed because one or more lines are too long

15
log/202206/20220606.log

File diff suppressed because one or more lines are too long

83
log/202206/20220607.log

File diff suppressed because one or more lines are too long

504
log/202206/20220608.log

File diff suppressed because one or more lines are too long

23
log/202206/20220609.log

File diff suppressed because one or more lines are too long

502
log/202206/20220616.log

File diff suppressed because one or more lines are too long

525
log/202206/20220617.log

File diff suppressed because one or more lines are too long

525
log/202206/20220618.log

File diff suppressed because one or more lines are too long

35
log/202206/20220619.log

File diff suppressed because one or more lines are too long

15
log/202206/20220620.log

File diff suppressed because one or more lines are too long

31
log/202206/20220621.log

File diff suppressed because one or more lines are too long

509
log/202206/20220622.log

File diff suppressed because one or more lines are too long

2000
log/202206/20220623.log

File diff suppressed because one or more lines are too long

2
models/personnel_education.go

@ -17,7 +17,7 @@ type PersonnelEducation struct {
GraduationTime int64 `json:"graduationtime" gorm:"column:graduation_time;type:bigint(20) unsigned;default:0;comment:毕业时间"` GraduationTime int64 `json:"graduationtime" gorm:"column:graduation_time;type:bigint(20) unsigned;default:0;comment:毕业时间"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;comment:写入时间"` Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;comment:写入时间"`
Level int `json:"level" gorm:"column:level;type:tinyint(1) unsigned;default:1;comment:学历类型(1:普通;2:第一学历;3:最高学历)"` Level int `json:"level" gorm:"column:level;type:tinyint(1) unsigned;default:1;comment:学历类型(1:普通;2:第一学历;3:最高学历)"`
AcademicDegree int `json:"academicdegree" gorm:"column:academic_degree;type:tinyint(2) unsigned;default:1;comment:学位(0:无;1:学士;2:硕士;3:博士)"` AcademicDegree int `json:"academicdegree" gorm:"column:academic_degree;type:tinyint(2) unsigned;default:1;comment:学位(1:无;2:学士;3:硕士;4:博士)"`
Key int64 `json:"key" gorm:"column:key;type:bigint(50) unsigned;default:0;not null;comment:key"` Key int64 `json:"key" gorm:"column:key;type:bigint(50) unsigned;default:0;not null;comment:key"`
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
} }

44
models/post_duties_job.go

@ -0,0 +1,44 @@
package models
import (
"hr_server/overall"
"strings"
)
//职务与岗位视图
type PostDutiesJob struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
Number string `json:"number" gorm:"column:number;type:varchar(50) unsigned;default:'';not null;comment:职位编码"`
Name string `json:"name" gorm:"column:name;type:varchar(255) unsigned;default:'';not null;comment:职位名称"`
PersonInCharge int `json:"personincharge" gorm:"column:perincha;type:int(1) unsigned;default:2;not null;comment:是否为本部门负责人(1:是;2:否)"`
Superior int64 `json:"superior" gorm:"column:superior;type:bigint(20) unsigned;default:0;not null;comment:上级ID"`
Duties int64 `json:"duties" gorm:"column:duties;type:bigint(20) unsigned;default:0;not null;comment:职务"`
State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
AdministrativeOrganization int64 `json:"administrativeorganization" gorm:"column:adm_org;type:bigint(20) unsigned;default:0;not null;comment:归属行政组织"`
Department int64 `json:"department" gorm:"column:department;type:bigint(20) unsigned;default:0;not null;comment:部门"`
MenuPermit string `json:"menupermit" gorm:"column:menu_permit;type:longtext;comment:菜单许可证"`
ButtonPermit string `json:"buttonpermit" gorm:"column:button_permit;type:longtext;comment:按钮许可"`
School int64 `json:"school" gorm:"column:school;type:bigint(20) unsigned;default:0;not null;comment:部门"`
DutiesName string `json:"dutiesname" gorm:"column:duties_name;type:varchar(255) unsigned;default:'';not null;comment:职务名称"`
DutiesNumber string `json:"dutiesnumber" gorm:"column:duties_number;type:varchar(50) unsigned;default:'';not null;comment:编码"`
Weight int64 `json:"weight" gorm:"column:weight;type:bigint(20) unsigned;default:1;not null;comment:权重"`
JobType int64 `json:"jobtype" gorm:"column:job_type;type:bigint(20) unsigned;default:0;not null;comment:归属职务类型"`
JobName string `json:"jobname" gorm:"column:job_name;type:varchar(255) unsigned;default:'';not null;comment:职务分类名称"`
}
func (PostDutiesJob *PostDutiesJob) TableName() string {
return "post_duties_job"
}
//获取详细内容
func (cont *PostDutiesJob) 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
}

71
overall/overallhandle/overall_handle.go

@ -346,9 +346,12 @@ func (g *MenuList) findChildren(parentId int64) []OutGovCont {
func GovThreeList(parentId int64, govAry []OutGovCont) []govThree { func GovThreeList(parentId int64, govAry []OutGovCont) []govThree {
var govMap []govThree var govMap []govThree
// fmt.Printf("govAry---------------->%v\n", govAry)
for _, v := range govAry { for _, v := range govAry {
// var zhucont govThree // var zhucont govThree
// fmt.Printf("govAry---------------->%v\n", v.Superior)
if v.Superior == parentId { if v.Superior == parentId {
child := GovThreeList(v.Id, govAry) child := GovThreeList(v.Id, govAry)
govMap = append(govMap, govThree{v, child}) govMap = append(govMap, govThree{v, child})
} }
@ -388,22 +391,90 @@ func (m *Md5Encryption) Md5EncryptionAlgorithm() (md5Val string) {
mdNew.Write([]byte(m.AppKey)) mdNew.Write([]byte(m.AppKey))
keyMd5 := fmt.Sprintf("%x", mdNew.Sum(nil)) keyMd5 := fmt.Sprintf("%x", mdNew.Sum(nil))
// fmt.Printf("Step1:--AppKey-加密->%v\n", keyMd5)
codeNewMd1 := md5.New()
codeNewMd1.Write([]byte(m.Code))
codeMd1 := fmt.Sprintf("%x", codeNewMd1.Sum(nil))
// fmt.Printf("Step2:--CodeString-加密->%v\n", codeMd1)
yiCeng := codeMd1 + keyMd5
// fmt.Printf("Step3:--CodeString+AppKey-->%v\n", yiCeng)
yiCengNew := md5.New()
yiCengNew.Write([]byte(yiCeng))
yiCengMd5 := fmt.Sprintf("%x", yiCengNew.Sum(nil))
// fmt.Printf("Step4:--one-加密->%v\n", yiCengMd5)
erCeng := yiCengMd5 + m.AppKey
// fmt.Printf("Step5:--one + AppKey->%v\n", erCeng)
// fmt.Printf("AppKey ===2=> %v\n", m.AppKey)
erCengNew := md5.New()
erCengNew.Write([]byte(erCeng))
md5Val = fmt.Sprintf("%x", erCengNew.Sum(nil))
// fmt.Printf("Step6:--therr--加密-->%v\n", md5Val)
// md5Val = codeMd1
return
}
func (m *Md5Encryption) Md5EncryptionAlgorithmFj() (md5Val string, outlog []string) {
if m.AppKey == "" {
m.Md5EncryptionInit(m.Code)
}
// fmt.Printf("Code ====> %v\n", m.Code)
// fmt.Printf("AppKey ====> %v\n", m.AppKey)
outlog = append(outlog, fmt.Sprintf("Code ====> %v", m.Code))
outlog = append(outlog, fmt.Sprintf("AppKey ====> %v", m.AppKey))
mdNew := md5.New()
mdNew.Write([]byte(m.AppKey))
keyMd5 := fmt.Sprintf("%x", mdNew.Sum(nil))
// fmt.Printf("Step1:--AppKey-加密->%v\n", keyMd5)
outlog = append(outlog, fmt.Sprintf("Step1:--AppKey-加密->%v", keyMd5))
codeNewMd1 := md5.New() codeNewMd1 := md5.New()
codeNewMd1.Write([]byte(m.Code)) codeNewMd1.Write([]byte(m.Code))
codeMd1 := fmt.Sprintf("%x", codeNewMd1.Sum(nil)) codeMd1 := fmt.Sprintf("%x", codeNewMd1.Sum(nil))
// fmt.Printf("Step2:--CodeString-加密->%v\n", codeMd1)
outlog = append(outlog, fmt.Sprintf("Step2:--CodeString-加密->%v", codeMd1))
yiCeng := codeMd1 + keyMd5 yiCeng := codeMd1 + keyMd5
// fmt.Printf("Step3:--CodeString+AppKey-->%v\n", yiCeng)
outlog = append(outlog, fmt.Sprintf("Step3:--CodeString+AppKey-->%v", yiCeng))
yiCengNew := md5.New() yiCengNew := md5.New()
yiCengNew.Write([]byte(yiCeng)) yiCengNew.Write([]byte(yiCeng))
yiCengMd5 := fmt.Sprintf("%x", yiCengNew.Sum(nil)) yiCengMd5 := fmt.Sprintf("%x", yiCengNew.Sum(nil))
// fmt.Printf("Step4:--one-加密->%v\n", yiCengMd5)
outlog = append(outlog, fmt.Sprintf("Step4:--one-加密->%v", yiCengMd5))
erCeng := yiCengMd5 + m.AppKey erCeng := yiCengMd5 + m.AppKey
// fmt.Printf("Step5:--one + AppKey->%v\n", erCeng)
outlog = append(outlog, fmt.Sprintf("Step5:--one + AppKey->%v", erCeng))
// fmt.Printf("AppKey ===2=> %v\n", m.AppKey)
erCengNew := md5.New() erCengNew := md5.New()
erCengNew.Write([]byte(erCeng)) erCengNew.Write([]byte(erCeng))
md5Val = fmt.Sprintf("%x", erCengNew.Sum(nil)) md5Val = fmt.Sprintf("%x", erCengNew.Sum(nil))
fmt.Printf("Step6:--therr--加密-->%v\n", md5Val)
outlog = append(outlog, fmt.Sprintf("Step6:--therr--加密-->%v", md5Val))
// md5Val = codeMd1 // md5Val = codeMd1
return return
} }

Loading…
Cancel
Save