HR管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

670 lines
23 KiB

package dockingorganization
import (
"encoding/json"
"fmt"
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"strconv"
"strings"
"time"
"github.com/gin-gonic/gin"
)
//接口实验
func (d *DockingJinDieApi) DockKingdeeApi(c *gin.Context) {
// GetOrgType()
// JobClass()
// DutiesContrast()
// OrgAdmin()
Position()
// xingzheng()
outMap := overallhandle.MapOut()
overallhandle.Result(0, outMap, c)
}
func xingzheng() {
var orgList []models.AdministrativeOrganization
// orgList.GetCont(map[string]interface{}{"ispower": 1})
overall.CONSTANT_DB_HR.Where("ispower = 1").Find(&orgList)
var id []string
var num []string
for _, v := range orgList {
id = append(id, strconv.FormatInt(v.Id, 10))
num = append(num, v.Number)
}
fmt.Println(strings.Join(id, ","))
fmt.Println(strings.Join(num, ","))
}
//行政组织类型
func GetOrgType() {
var orgContAry []orgClass
sendUrl := fmt.Sprintf("%v/person/adminUnitType", overall.DockingKingdeeUrl)
respBody, err := GetUrl(sendUrl)
if err != nil {
overallhandle.WriteLog("e", "未能获取到行政组织类型!", err)
}
err = json.Unmarshal(respBody, &orgContAry)
if err != nil {
overallhandle.WriteLog("e", "行政组织类型映射错误!", err)
}
overallhandle.WriteLog("i", "行政组织类型映射成功!", orgContAry)
if len(orgContAry) < 0 {
overallhandle.WriteLog("e", "未能获取到行政组织类型!", orgContAry)
return
}
var kingDeeIdAry []string
//进行行政组织类别对照
for _, v := range orgContAry {
if overallhandle.StringIsInMap(v.Id, kingDeeIdAry) == false {
kingDeeIdAry = append(kingDeeIdAry, v.Id)
}
//判断该项是否存在
var orgCont models.AdministrativeOrganizationType
orgErr := orgCont.GetCont(map[string]interface{}{"kingdeeid": v.Id}, "id", "name", "state")
if orgErr == nil {
//判断是否编辑
if v.Name != orgCont.Name {
editOrgErr := orgCont.EiteCont(map[string]interface{}{"id": orgCont.Id}, map[string]interface{}{"name": v.Name, "state": 1})
if editOrgErr == nil {
overallhandle.WriteLog("edit", "行政组织类型更新成功!", editOrgErr, v)
} else {
overallhandle.WriteLog("edit", "行政组织类型更新失败!", editOrgErr, v)
}
} else {
if orgCont.State != 1 {
editOrgErr := orgCont.EiteCont(map[string]interface{}{"id": orgCont.Id}, map[string]interface{}{"state": 1})
if editOrgErr == nil {
overallhandle.WriteLog("edit", "行政组织类型更新成功!state", editOrgErr, v)
} else {
overallhandle.WriteLog("edit", "行政组织类型更新失败!state", editOrgErr, v)
}
}
}
} else {
orgCont.Name = v.Name
orgCont.State = 1
orgCont.Time = time.Now().Unix()
orgCont.KingdeeId = v.Id
addOrgErr := overall.CONSTANT_DB_HR.Create(&orgCont).Error
if addOrgErr == nil {
overallhandle.WriteLog("add", "行政组织类型写入成功!", addOrgErr, orgCont)
} else {
overallhandle.WriteLog("add", "行政组织类型写入失败!", addOrgErr, orgCont)
}
}
}
var orgAll []models.AdministrativeOrganizationType
allErr := overall.CONSTANT_DB_HR.Where("`state` = 1").Find(&orgAll).Error
if allErr == nil {
var eidtId []string
for _, av := range orgAll {
if overallhandle.StringIsInMap(av.KingdeeId, kingDeeIdAry) == false {
if overallhandle.StringIsInMap(av.KingdeeId, eidtId) == false {
eidtId = append(eidtId, av.KingdeeId)
}
}
}
if len(eidtId) > 0 {
orgContEditErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganizationType{}).Where("`kingdeeid` IN ?", eidtId).Updates(map[string]interface{}{"state": 2}).Error
if orgContEditErr == nil {
overallhandle.WriteLog("edit", "禁用已不使用得行政组织类型成功!", orgContEditErr, eidtId)
} else {
overallhandle.WriteLog("edit", "禁用已不使用得行政组织类型失败!", orgContEditErr, eidtId)
}
}
}
}
//职务类型
func JobClass() {
// fmt.Printf("1")
var jobClassInfo []jobClassType
sendUrl := fmt.Sprintf("%v/person/ptype", overall.DockingKingdeeUrl)
respBody, err := GetUrl(sendUrl)
if err != nil {
overallhandle.WriteLog("e", "未能获取到职务类型!", err)
}
err = json.Unmarshal(respBody, &jobClassInfo)
if err != nil {
overallhandle.WriteLog("e", "职务类型映射错误!", err)
}
overallhandle.WriteLog("i", "职务类型映射成功!", jobClassInfo)
if len(jobClassInfo) < 0 {
overallhandle.WriteLog("e", "未能获取到职务类型!", jobClassInfo)
return
}
var kingDeeIdAry []string
//进行职务类型对照
for _, v := range jobClassInfo {
if overallhandle.StringIsInMap(v.Id, kingDeeIdAry) == false {
kingDeeIdAry = append(kingDeeIdAry, v.Id)
}
//判断该项是否存在
var jobClassCont models.JobClass
jobClassErr := jobClassCont.GetCont(map[string]interface{}{"kingdeeid": v.Id})
if jobClassErr == nil {
//存在判断是否要进行更新
if v.Name != jobClassCont.Name {
editOrgErr := jobClassCont.EiteJobClassCont(map[string]interface{}{"id": jobClassCont.Id}, map[string]interface{}{"name": v.Name, "state": 1})
if editOrgErr == nil {
overallhandle.WriteLog("edit", "职务类型更新成功!", editOrgErr, v)
} else {
overallhandle.WriteLog("edit", "职务类型更新失败!", editOrgErr, v)
}
} else {
if jobClassCont.State != 1 {
editOrgErr := jobClassCont.EiteJobClassCont(map[string]interface{}{"id": jobClassCont.Id}, map[string]interface{}{"state": 1})
if editOrgErr == nil {
overallhandle.WriteLog("edit", "职务类型更新成功!state", editOrgErr, v)
} else {
overallhandle.WriteLog("edit", "职务类型更新失败!state", editOrgErr, v)
}
}
}
} else {
//不存在,进行新增
jobClassCont.Name = v.Name
jobClassCont.KingdeeNum = v.Fnumber
jobClassCont.KingdeeId = v.Id
jobClassCont.State = 1
jobClassCont.Time = time.Now().Unix()
addErr := overall.CONSTANT_DB_HR.Create(&jobClassCont).Error
if addErr == nil {
overallhandle.WriteLog("add", "职务类型写入成功!", addErr, jobClassCont)
} else {
overallhandle.WriteLog("add", "职务类型写入失败!", addErr, jobClassCont)
}
}
}
var jobClassAll []models.JobClass
allErr := overall.CONSTANT_DB_HR.Where("`state` = 1").Find(&jobClassAll).Error
if allErr == nil {
var eidtId []string
for _, av := range jobClassAll {
if overallhandle.StringIsInMap(av.KingdeeId, kingDeeIdAry) == false {
if overallhandle.StringIsInMap(av.KingdeeId, eidtId) == false {
eidtId = append(eidtId, av.KingdeeId)
}
}
}
if len(eidtId) > 0 {
jobClassContEditErr := overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Where("`kingdeeid` IN ?", eidtId).Updates(map[string]interface{}{"state": 2}).Error
if jobClassContEditErr == nil {
overallhandle.WriteLog("edit", "禁用已不使用得职务类型成功!", jobClassContEditErr, eidtId)
} else {
overallhandle.WriteLog("edit", "禁用已不使用得职务类型失败!", jobClassContEditErr, eidtId)
}
}
}
}
//职务
func DutiesContrast() {
var jobInfo []jobContDuck
sendUrl := fmt.Sprintf("%v/person/job", overall.DockingKingdeeUrl)
respBody, err := GetUrl(sendUrl)
if err != nil {
overallhandle.WriteLog("e", "未能获取到职务!", err)
}
err = json.Unmarshal(respBody, &jobInfo)
if err != nil {
overallhandle.WriteLog("e", "职务映射错误!", err)
}
overallhandle.WriteLog("i", "职务映射成功!", jobInfo)
if len(jobInfo) < 0 {
overallhandle.WriteLog("e", "未能获取到职务!", jobInfo)
return
}
var kingDeeIdAry []string
//进行职务对照
for _, v := range jobInfo {
if overallhandle.StringIsInMap(v.Id, kingDeeIdAry) == false {
kingDeeIdAry = append(kingDeeIdAry, v.Id)
}
//判断该项是否存在
var dutiesCont models.Duties
dutiesErr := dutiesCont.GetCont(map[string]interface{}{"kingdeeid": v.Id}, "`id`", "`name`", `state`, `job_type`)
if dutiesErr == nil {
//存在,进行更新
//获取职务Id
var jobClassInfo models.JobClass
jobClassInfo.GetCont(map[string]interface{}{"kingdeeid": v.Fjobtype}, "`id`")
var editOrgErr error
isCaoZuo := false
if v.Name != dutiesCont.Name {
if dutiesCont.JobType != jobClassInfo.Id {
editOrgErr = dutiesCont.EiteCont(map[string]interface{}{"id": dutiesCont.Id}, map[string]interface{}{"name": v.Name, "state": 1, "job_type": jobClassInfo.Id})
isCaoZuo = true
} else {
editOrgErr = dutiesCont.EiteCont(map[string]interface{}{"id": dutiesCont.Id}, map[string]interface{}{"name": v.Name, "state": 1})
isCaoZuo = true
}
} else {
if dutiesCont.State != 1 {
if dutiesCont.JobType != jobClassInfo.Id {
editOrgErr = dutiesCont.EiteCont(map[string]interface{}{"id": dutiesCont.Id}, map[string]interface{}{"state": 1, "job_type": jobClassInfo.Id})
isCaoZuo = true
} else {
editOrgErr = dutiesCont.EiteCont(map[string]interface{}{"id": dutiesCont.Id}, map[string]interface{}{"state": 1})
isCaoZuo = true
}
}
}
if isCaoZuo == true {
if editOrgErr == nil {
overallhandle.WriteLog("edit", "职务更新成功!", editOrgErr, v)
} else {
overallhandle.WriteLog("edit", "职务更新失败!", editOrgErr, v)
}
}
} else {
//不存在,进行新增
//获取旧对照表数据
var oldDutiesInfo models.Duties
oldDutErr := overall.CONSTANT_DB_HR_Jin.Model(&models.Duties{}).Select("weight,number").Where("`name` = ?", v.Name).First(&oldDutiesInfo).Error
//获取职务Id
var jobClassInfo models.JobClass
jobClassErr := jobClassInfo.GetCont(map[string]interface{}{"kingdeeid": v.Fjobtype}, "`id`")
var dutiesInfo models.Duties
dutiesInfo.Name = v.Name
if jobClassErr == nil {
dutiesInfo.JobType = jobClassInfo.Id
}
if oldDutErr == nil {
dutiesInfo.Weight = oldDutiesInfo.Weight
dutiesInfo.Number = oldDutiesInfo.Number
}
dutiesInfo.Time = time.Now().Unix()
dutiesInfo.State = 1
dutiesInfo.KingdeeId = v.Id
dutiesInfo.KingdeeNum = v.Fnumber
addErr := overall.CONSTANT_DB_HR.Create(&dutiesInfo).Error
if addErr == nil {
overallhandle.WriteLog("add", "职务写入成功!", addErr, dutiesInfo)
} else {
overallhandle.WriteLog("add", "职务写入失败!", addErr, dutiesInfo)
}
}
}
var dutiesAll []models.Duties
allErr := overall.CONSTANT_DB_HR.Where("`state` = 1").Find(&dutiesAll).Error
if allErr == nil {
var eidtId []string
for _, av := range dutiesAll {
if overallhandle.StringIsInMap(av.KingdeeId, kingDeeIdAry) == false {
if overallhandle.StringIsInMap(av.KingdeeId, eidtId) == false {
eidtId = append(eidtId, av.KingdeeId)
}
}
}
if len(eidtId) > 0 {
dutiesContEditErr := overall.CONSTANT_DB_HR.Model(&models.Duties{}).Where("`kingdeeid` IN ?", eidtId).Updates(map[string]interface{}{"state": 2}).Error
if dutiesContEditErr == nil {
overallhandle.WriteLog("edit", "禁用已不使用得职务成功!", dutiesContEditErr, eidtId)
} else {
overallhandle.WriteLog("edit", "禁用已不使用得职务失败!", dutiesContEditErr, eidtId)
}
}
}
}
//行政组织
func OrgAdmin() {
var orgInfo []orgAdminType
sendUrl := fmt.Sprintf("%v/person/adminunit", overall.DockingKingdeeUrl)
respBody, err := GetUrl(sendUrl)
if err != nil {
overallhandle.WriteLog("e", "未能获取到行政组织!", err)
}
err = json.Unmarshal(respBody, &orgInfo)
if err != nil {
overallhandle.WriteLog("e", "行政组织映射错误!", err)
}
overallhandle.WriteLog("i", "行政组织映射完成!", orgInfo)
if len(orgInfo) < 0 {
overallhandle.WriteLog("e", "未能获取到行政组织!", orgInfo)
return
}
var kingDeeIdAry []string
//进行职务对照
for _, v := range orgInfo {
if overallhandle.StringIsInMap(v.Id, kingDeeIdAry) == false {
kingDeeIdAry = append(kingDeeIdAry, v.Id)
}
//判断该项是否存在
var orgInfoContCont models.AdministrativeOrganization
orgInfoContErr := orgInfoContCont.GetCont(map[string]interface{}{"kingdeeid": v.Id})
if orgInfoContErr == nil {
//存在,进行更新
isEdit := false
saveData := overallhandle.MapOut()
if v.Name != orgInfoContCont.Name {
saveData["name"] = v.Name
isEdit = true
}
if v.Abbreviation != orgInfoContCont.Abbreviation {
saveData["abbreviation"] = v.Abbreviation
isEdit = true
}
if v.Number != orgInfoContCont.Number {
saveData["number"] = v.Number
isEdit = true
}
if orgInfoContCont.State != 1 {
saveData["state"] = 1
isEdit = true
}
//判断行政组织类型是否需要改变
var judgeOrgType models.AdministrativeOrganizationType
judgeOrgTypeErr := judgeOrgType.GetCont(map[string]interface{}{"id": orgInfoContCont.OrganizationType}, "`id`", "`kingdeeid`")
if judgeOrgTypeErr == nil {
if v.GovClass != judgeOrgType.KingdeeId {
var orgTypeNewType models.AdministrativeOrganizationType
orgTypeNewTypeErr := orgTypeNewType.GetCont(map[string]interface{}{"kingdeeid": v.Superior}, "id")
if orgTypeNewTypeErr == nil {
saveData["organization_type"] = orgTypeNewType.Id
isEdit = true
}
}
}
if isEdit == true {
saveData["time"] = time.Now().Unix()
editErr := orgInfoContCont.EiteCont(map[string]interface{}{"id": orgInfoContCont.Id}, saveData)
if editErr == nil {
overallhandle.WriteLog("edit", "职务更新成功!", editErr, v, saveData)
} else {
overallhandle.WriteLog("edit", "职务更新失败!", editErr, v, saveData)
}
}
} else {
//不存在进行添加
var orgCont models.AdministrativeOrganization
orgCont.KingdeeId = v.Id
orgCont.Number = v.Number
orgCont.Name = v.Name
orgCont.Abbreviation = v.Abbreviation
orgCont.State = 1
orgCont.Time = time.Now().Unix()
//获取行政组织类型
var orgType models.AdministrativeOrganizationType
orgTypeErr := orgType.GetCont(map[string]interface{}{"kingdeeid": v.GovClass}, "id")
if orgTypeErr == nil {
orgCont.OrganizationType = orgType.Id
}
//获取知行学院及企业微信对照码
var orgOldCont models.AdministrativeOrganization
orgOldErr := overall.CONSTANT_DB_HR_Jin.Model(&models.AdministrativeOrganization{}).Select("wechat_organization_id,schoole").Where("`number` = ?", v.Number).First(&orgOldCont).Error
if orgOldErr == nil {
orgCont.WechatOrganizationId = orgOldCont.WechatOrganizationId
orgCont.Schoole = orgOldCont.Schoole
}
if overallhandle.StringIsInMap(v.Number, OrgNumberDuiZhao) {
orgCont.IsPower = 1
}
// orgCont.IsPower
addErr := overall.CONSTANT_DB_HR.Create(&orgCont).Error
if addErr == nil {
overallhandle.WriteLog("add", "行政组织写入成功!", addErr, orgCont)
} else {
overallhandle.WriteLog("add", "行政组织写入失败!", addErr, orgCont)
}
}
}
//职务上级校正
for _, cv := range orgInfo {
var parentContCorre models.AdministrativeOrganization
parentErr := parentContCorre.GetCont(map[string]interface{}{"kingdeeid": cv.Id}, "`id`", "`superior`")
if parentErr == nil {
var orgCorrePrent models.AdministrativeOrganization
orgCorrePrentErr := orgCorrePrent.GetCont(map[string]interface{}{"kingdeeid": cv.Superior}, "id")
if orgCorrePrentErr == nil {
if parentContCorre.Superior != orgCorrePrent.Id {
saveData := overallhandle.MapOut()
saveData["superior"] = orgCorrePrent.Id
saveData["time"] = time.Now().Unix()
parentContCorre.EiteCont(map[string]interface{}{"id": parentContCorre.Id}, saveData)
}
}
}
}
//关闭已经弃用得行政组织
var orgAdminAll []models.AdministrativeOrganization
allErr := overall.CONSTANT_DB_HR.Where("`state` = 1").Find(&orgAdminAll).Error
if allErr == nil {
var eidtId []string
for _, av := range orgAdminAll {
if overallhandle.StringIsInMap(av.KingdeeId, kingDeeIdAry) == false {
if overallhandle.StringIsInMap(av.KingdeeId, eidtId) == false {
eidtId = append(eidtId, av.KingdeeId)
}
}
}
if len(eidtId) > 0 {
orgAdminEditErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Where("`kingdeeid` IN ?", eidtId).Updates(map[string]interface{}{"state": 2}).Error
if orgAdminEditErr == nil {
overallhandle.WriteLog("edit", "禁用已不使用得行政组织成功!", orgAdminEditErr, eidtId)
} else {
overallhandle.WriteLog("edit", "禁用已不使用得行政组织失败!", orgAdminEditErr, eidtId)
}
}
}
}
//职位
func Position() {
var orgInfo []positionType
sendUrl := fmt.Sprintf("%v/person/position", overall.DockingKingdeeUrl)
respBody, err := GetUrl(sendUrl)
if err != nil {
overallhandle.WriteLog("e", "未能获取到职位!", err)
}
err = json.Unmarshal(respBody, &orgInfo)
if err != nil {
overallhandle.WriteLog("e", "职位映射错误!", err)
}
overallhandle.WriteLog("i", "职位映射完成!", orgInfo)
if len(orgInfo) < 0 {
overallhandle.WriteLog("e", "金蝶对照数据!", orgInfo)
return
}
var kingDeeIdAry []string
//批量写入
var batchPosition []models.Position
//进行职位对照
for _, v := range orgInfo {
if overallhandle.StringIsInMap(v.Id, kingDeeIdAry) == false {
kingDeeIdAry = append(kingDeeIdAry, v.Id)
}
// strconv.Atoi(v.FIsRespPosition)
personInt64, _ := strconv.Atoi(v.FIsRespPosition)
//获取职务信息
var zhiwuCont models.Duties
zhiwuCont.GetCont(map[string]interface{}{"kingdeeid": v.FJobID}, "id")
//判断该项是否存在
var positCont models.Position
positContErr := positCont.GetCont(map[string]interface{}{"kingdeeid": v.Id})
if positContErr == nil {
//存在,进行更新
isEdit := false
saveData := overallhandle.MapOut()
if v.Name != positCont.Name {
saveData["name"] = v.Name
isEdit = true
}
if positCont.State != 1 {
saveData["state"] = 1
isEdit = true
}
if v.Fnumber != positCont.Number {
saveData["number"] = v.Fnumber
isEdit = true
}
if zhiwuCont.Id != positCont.Duties {
saveData["duties"] = zhiwuCont.Id
isEdit = true
}
//获取行政组织
var orgCont models.AdministrativeOrganization
orgContErr := orgCont.GetCont(map[string]interface{}{"kingdeeid": v.FAdminOrgUnitID}, "id", "superior")
if orgContErr == nil {
if orgCont.Id != positCont.AdministrativeOrganization {
saveData["administrative_organization"] = orgCont.Id
saveData["department"] = overallhandle.GetGroupOrDepartPower(orgCont.Superior, 1)
isEdit = true
}
}
if isEdit == true {
saveData["time"] = time.Now().Unix()
editErr := positCont.EiteCont(map[string]interface{}{"id": positCont.Id}, saveData)
if editErr == nil {
overallhandle.WriteLog("edit", "职位更新成功!", editErr, v, saveData)
} else {
overallhandle.WriteLog("edit", "职位更新失败!", editErr, v, saveData)
}
}
} else {
//不存在,新增
positCont.Number = v.Fnumber
positCont.Name = v.Name
positCont.KingdeeId = v.Id
positCont.Time = time.Now().Unix()
positCont.State = 1
//获取行政组织
var orgCont models.AdministrativeOrganization
orgContErr := orgCont.GetCont(map[string]interface{}{"kingdeeid": v.FAdminOrgUnitID}, "id", "superior")
if orgContErr == nil {
positCont.AdministrativeOrganization = orgCont.Id
positCont.Department = overallhandle.GetGroupOrDepartPower(orgCont.Superior, 1)
}
//获取知行学院及企业微信对照码
var orgOldCont models.Position
orgOldErr := overall.CONSTANT_DB_HR_Jin.Model(&models.Position{}).Select("school,person_in_charge").Where("`number` = ?", v.Fnumber).First(&orgOldCont).Error
positCont.PersonInCharge = personInt64
if orgOldErr == nil {
if personInt64 != orgOldCont.PersonInCharge {
if orgOldCont.PersonInCharge == 1 {
positCont.PersonInCharge = orgOldCont.PersonInCharge
}
}
positCont.School = orgOldCont.School
}
positCont.Duties = zhiwuCont.Id
batchPosition = append(batchPosition, positCont)
// if v.Id == "QBsfJ1fbSKW+3q6eOJltjHSuYS4=" {
// fmt.Printf("positCont---->%v\n", positCont)
// return
// }
if len(batchPosition)%100 == 0 {
synPro.Add(1)
go writePositis(batchPosition)
var batchPositionNew []models.Position
batchPosition = batchPositionNew
// addErr := overall.CONSTANT_DB_HR.Create(&batchPosition).Error
// if addErr == nil {
// var batchPositionNew []models.Position
// batchPosition = batchPositionNew
// overallhandle.WriteLog("add", "职位写入成功!", addErr, batchPosition)
// } else {
// overallhandle.WriteLog("add", "职位写入失败!", addErr, batchPosition)
// }
}
}
}
if len(batchPosition) > 0 {
synPro.Add(1)
go writePositis(batchPosition)
}
synPro.Wait()
//职位上级校正
var calibPositList []positionType
for _, cv := range orgInfo {
calibPositList = append(calibPositList, cv)
if len(calibPositList)%100 == 0 {
synPro.Add(1)
go calibrationPosition(calibPositList)
var calibPositListNew []positionType
calibPositList = calibPositListNew
}
}
if len(calibPositList) > 0 {
synPro.Add(1)
go calibrationPosition(calibPositList)
}
synPro.Wait()
//关闭已经弃用得行政组织
var orgAdminAll []models.Position
allErr := overall.CONSTANT_DB_HR.Where("`state` = 1").Find(&orgAdminAll).Error
if allErr == nil {
var eidtId []string
for _, av := range orgAdminAll {
if overallhandle.StringIsInMap(av.KingdeeId, kingDeeIdAry) == false {
if overallhandle.StringIsInMap(av.KingdeeId, eidtId) == false {
eidtId = append(eidtId, av.KingdeeId)
}
}
}
if len(eidtId) > 0 {
orgAdminEditErr := overall.CONSTANT_DB_HR.Model(&models.Position{}).Where("`kingdeeid` IN ?", eidtId).Updates(map[string]interface{}{"state": 2}).Error
if orgAdminEditErr == nil {
overallhandle.WriteLog("edit", "禁用已不使用得职位成功!", orgAdminEditErr, eidtId)
} else {
overallhandle.WriteLog("edit", "禁用已不使用得职位失败!", orgAdminEditErr, eidtId)
}
}
}
}
//协程写入职位
func writePositis(batchPositionNew []models.Position) {
defer synPro.Done()
if len(batchPositionNew) > 0 {
addErr := overall.CONSTANT_DB_HR.Create(&batchPositionNew).Error
if addErr == nil {
overallhandle.WriteLog("add", "职位写入成功!", addErr, batchPositionNew)
} else {
overallhandle.WriteLog("add", "职位写入失败!", addErr, batchPositionNew)
}
}
}
//协程职位校正
func calibrationPosition(orgInfo []positionType) {
defer synPro.Done()
if len(orgInfo) > 0 {
for _, cv := range orgInfo {
var parentContCorre models.Position
parentErr := parentContCorre.GetCont(map[string]interface{}{"kingdeeid": cv.Id}, "`id`", "`superior`")
if parentErr == nil {
var orgCorrePrent models.Position
orgCorrePrentErr := orgCorrePrent.GetCont(map[string]interface{}{"kingdeeid": cv.FParentID}, "id")
if orgCorrePrentErr == nil {
if parentContCorre.Superior != orgCorrePrent.Id {
saveData := overallhandle.MapOut()
saveData["superior"] = orgCorrePrent.Id
saveData["time"] = time.Now().Unix()
parentContCorre.EiteCont(map[string]interface{}{"id": parentContCorre.Id}, saveData)
}
}
}
}
}
}