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.
744 lines
21 KiB
744 lines
21 KiB
package personnelapi
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"hr_server/models"
|
|
personalitycolor "hr_server/models/personalityColor"
|
|
"hr_server/overall"
|
|
"hr_server/overall/overallhandle"
|
|
"reflect"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-20 16:20:09
|
|
@ 功能: 根据工号获取个人档案
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (s *StaffApi) PersonnelFiles(c *gin.Context) {
|
|
var requestData overallhandle.NmuberOverall
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
overallhandle.Result(101, requestData, c)
|
|
return
|
|
}
|
|
if requestData.Number == "" {
|
|
overallhandle.Result(1, requestData, c, "未知人员!不可查询信息")
|
|
return
|
|
}
|
|
var myInfo models.ManCont
|
|
err = myInfo.GetCont(map[string]interface{}{"`number`": requestData.Number})
|
|
if err != nil {
|
|
overallhandle.Result(105, err, c)
|
|
return
|
|
}
|
|
saveInfo := overallhandle.MapOut()
|
|
structValue := reflect.ValueOf(myInfo)
|
|
structType := structValue.Type()
|
|
for i := 0; i < structValue.NumField(); i++ {
|
|
fieldValue := structValue.Field(i)
|
|
fieldType := structType.Field(i)
|
|
saveInfo[fieldType.Name] = fieldValue.Interface()
|
|
}
|
|
if myInfo.Birthday != 0 {
|
|
saveInfo["birthdayTime"] = overallhandle.UnixTimeToDay(myInfo.Birthday, 14) //生日
|
|
}
|
|
if myInfo.Entrydate != 0 {
|
|
saveInfo["EntrydateTime"] = overallhandle.UnixTimeToDay(myInfo.Entrydate, 14) //入职日期
|
|
}
|
|
//部门
|
|
if myInfo.MainDeparment != 0 {
|
|
var demperMainInfos models.AdministrativeOrganization
|
|
demperMainInfos.GetCont(map[string]interface{}{"`id`": myInfo.MainDeparment}, "`name`")
|
|
saveInfo["MainDeparmentName"] = demperMainInfos.Name
|
|
}
|
|
//岗位
|
|
if myInfo.AdminOrg != 0 {
|
|
var adminOrg models.AdministrativeOrganization
|
|
adminOrg.GetCont(map[string]interface{}{"`id`": myInfo.AdminOrg}, "`name`")
|
|
saveInfo["AdminOrgName"] = adminOrg.Name
|
|
}
|
|
//职务
|
|
if myInfo.Position != 0 {
|
|
var postisInfo models.Position
|
|
postisInfo.GetCont(map[string]interface{}{"`id`": myInfo.Position}, "`name`", "`person_in_charge`")
|
|
saveInfo["PositionName"] = postisInfo.Name
|
|
saveInfo["PersonInCharge"] = postisInfo.PersonInCharge
|
|
}
|
|
if myInfo.Isdoubleworker == 1 {
|
|
var doubleWorkerInfo models.DoubleWorker
|
|
doubleWorkerInfo.GetCont(map[string]interface{}{"`number`": myInfo.Number, "`state`": 1}, "`name`", "`company`", "`department`", "`position`")
|
|
saveInfo["WorkCompany"] = fmt.Sprintf("%v%v%v%v", doubleWorkerInfo.Name, doubleWorkerInfo.Company, doubleWorkerInfo.Department, doubleWorkerInfo.Position)
|
|
} else {
|
|
saveInfo["WorkCompany"] = ""
|
|
}
|
|
saveInfo["GenderName"] = overallhandle.GenderStatus(int64(myInfo.Gender))
|
|
saveInfo["ConstellationName"] = overallhandle.StarSign(int64(myInfo.Constellation))
|
|
saveInfo["PolitOutlook"] = overallhandle.PoliticalIdentity(int64(myInfo.PoliticalOutlook))
|
|
saveInfo["Maristatus"] = overallhandle.MaritalStatus(int64(myInfo.Maritalstatus))
|
|
//教育经历
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["EducationalExperience"] = UserEducationalExperience(myInfo.Key)
|
|
}()
|
|
//工作履历
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["ExternalWork"] = getWorkHistoryList(myInfo.Key) //工作履历
|
|
}()
|
|
//集团内工作履历
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["InternalWork"] = getGroupWorkHistoryList(myInfo.Key) //工作履历
|
|
}()
|
|
//职称证书
|
|
synPro.Add(1)
|
|
go func() {
|
|
AcademicTitle := GainCertificateHonors(myInfo.Key, 4)
|
|
saveInfo["AcademicTitle"] = strings.Join(AcademicTitle, ",") //工作履历
|
|
}()
|
|
//资格证书
|
|
synPro.Add(1)
|
|
go func() {
|
|
Diploma := GainCertificateHonorsBook(myInfo.Key, 4)
|
|
saveInfo["Diploma"] = strings.Join(Diploma, ",") //工作履历
|
|
}()
|
|
|
|
currentTime := time.Now()
|
|
years := currentTime.Year() - 2
|
|
//绩效成绩 Performance score
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["Meritslog"] = GainTimeLangMeritslog(myInfo.Key, years, 2) //工作履历
|
|
}()
|
|
//获奖情况
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["Rewards"] = GainRewardsPenalties(myInfo.Key, years, 2, 1) //工作履历
|
|
}()
|
|
//惩罚情况
|
|
synPro.Add(1)
|
|
go func() {
|
|
saveInfo["Penalties"] = GainRewardsPenalties(myInfo.Key, years, 2, 2) //工作履历
|
|
}()
|
|
//性格社彩
|
|
var myColor personalitycolor.Charcolortest
|
|
errColor := myColor.GetCont(map[string]interface{}{"`c_states`": 1, "`c_number`": requestData.Number}, "`c_id`")
|
|
if errColor != nil {
|
|
saveInfo["isColorTrue"] = 2
|
|
} else {
|
|
saveInfo["isColorTrue"] = 1
|
|
}
|
|
// synPro.Add(1)
|
|
// go func() {
|
|
// xgsc := GainCharacterColor(myInfo.Number)
|
|
// // fmt.Printf("xgsc:%v\n", xgsc)
|
|
// saveInfo["CharacterColour"] = strings.Join(xgsc.TestNumber, "、") //工作履历
|
|
// saveInfo["ColourNameList"] = xgsc.TestNumber //工作履历
|
|
// saveInfo["RadarColour"] = xgsc.ColorMap
|
|
// }()
|
|
synPro.Wait()
|
|
overallhandle.Result(0, saveInfo, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-24 08:08:43
|
|
@ 功能: 获取性格色彩
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainCharacterColor(num string) (tpr TestPageColorResult) {
|
|
synPro.Done()
|
|
var myColor personalitycolor.Charcolortest
|
|
err := myColor.GetCont(map[string]interface{}{"`c_states`": 1, "`c_number`": num})
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
GetColorVal := make(map[string]int)
|
|
if myColor.TestJson != "" {
|
|
var testPage []TestPageColor
|
|
errJson := json.Unmarshal([]byte(myColor.TestJson), &testPage)
|
|
if errJson != nil {
|
|
var testPageStr []TestPageColorStr
|
|
json.Unmarshal([]byte(myColor.TestJson), &testPageStr)
|
|
GetColorVal = JiSuanColorStr(testPageStr)
|
|
} else {
|
|
GetColorVal = JiSuanColor(testPage)
|
|
}
|
|
}
|
|
// fmt.Printf("TestJson-->%v\n", myColor.TestJson)
|
|
// fmt.Printf("testPage-->%v\n", testPage)
|
|
// GetColorVal = JiSuanColor(testPage)
|
|
var ColorStrAry []TestPageColorVal
|
|
var redColor TestPageColorVal
|
|
redColor.Strval = GetColorVal["RedColor"]
|
|
redColor.Name = "红色"
|
|
redColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, redColor)
|
|
var blueColor TestPageColorVal
|
|
blueColor.Strval = GetColorVal["BlueColor"]
|
|
blueColor.Name = "蓝色"
|
|
blueColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, blueColor)
|
|
var yellowColor TestPageColorVal
|
|
yellowColor.Strval = GetColorVal["YellowColor"]
|
|
yellowColor.Name = "黄色"
|
|
yellowColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, yellowColor)
|
|
var greenColor TestPageColorVal
|
|
greenColor.Strval = GetColorVal["GreenColor"]
|
|
greenColor.Name = "绿色"
|
|
greenColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, greenColor)
|
|
var colorAry []int
|
|
colorAry = append(colorAry, GetColorVal["RedColor"])
|
|
colorAry = append(colorAry, GetColorVal["BlueColor"])
|
|
colorAry = append(colorAry, GetColorVal["YellowColor"])
|
|
colorAry = append(colorAry, GetColorVal["GreenColor"])
|
|
|
|
colorVal, _ := json.Marshal(ColorStrAry)
|
|
fmt.Printf("colorVal-->%v\n", string(colorVal))
|
|
tpr.ColorMap = colorAry
|
|
MaxColor := overallhandle.GetMaxNum[int](colorAry)
|
|
for _, v := range ColorStrAry {
|
|
if v.Strval == MaxColor {
|
|
if !overallhandle.IsInTrue[int](v.Setval, tpr.CheckedVal) {
|
|
tpr.CheckedVal = append(tpr.CheckedVal, v.Setval)
|
|
}
|
|
if !overallhandle.IsInTrue[string](v.Name, tpr.TestNumber) {
|
|
tpr.TestNumber = append(tpr.TestNumber, v.Name)
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 计算颜色
|
|
func JiSuanColor(testPage []TestPageColor) map[string]int {
|
|
if len(testPage) < 1 {
|
|
sendDataw := make(map[string]int)
|
|
sendDataw["RedColor"] = 0
|
|
sendDataw["BlueColor"] = 0
|
|
sendDataw["YellowColor"] = 0
|
|
sendDataw["GreenColor"] = 0
|
|
return sendDataw
|
|
}
|
|
A_front_count := 0
|
|
B_front_count := 0
|
|
C_front_count := 0
|
|
D_front_count := 0
|
|
A_after_count := 0
|
|
B_after_count := 0
|
|
C_after_count := 0
|
|
D_after_count := 0
|
|
// fmt.Printf("testPage:%v\n", testPage)
|
|
for _, v := range testPage {
|
|
// testNumInt, _ := strconv.Atoi(v.TestNumber)
|
|
// checkedValInt, _ := strconv.Atoi(v.CheckedVal)
|
|
testNumInt := v.TestNumber
|
|
checkedValInt := v.CheckedVal
|
|
if testNumInt <= 15 {
|
|
switch checkedValInt {
|
|
case 2:
|
|
B_front_count++
|
|
case 3:
|
|
C_front_count++
|
|
case 4:
|
|
D_front_count++
|
|
default:
|
|
A_front_count++
|
|
}
|
|
} else {
|
|
switch checkedValInt {
|
|
case 2:
|
|
B_after_count++
|
|
case 3:
|
|
C_after_count++
|
|
case 4:
|
|
D_after_count++
|
|
default:
|
|
A_after_count++
|
|
}
|
|
}
|
|
}
|
|
|
|
fmt.Printf("A_front_count: %v, B_front_count: %v, C_front_count: %v, D_front_count: %v\n", A_front_count, B_front_count, C_front_count, D_front_count)
|
|
fmt.Printf("A_after_count: %v, B_after_count: %v, C_after_count: %v, D_after_count: %v\n", A_after_count, B_after_count, C_after_count, D_after_count)
|
|
|
|
RedColor := A_front_count + D_after_count
|
|
BlueColor := B_front_count + C_after_count
|
|
YellowColor := C_front_count + B_after_count
|
|
GreenColor := D_front_count + A_after_count
|
|
|
|
// fmt.Printf("A_front_count: %v, D_after_count: %v, B_front_count: %v, BlueColor: %v\n", A_front_count, D_after_count, B_front_count, C_after_count)
|
|
// fmt.Printf("RedColor: %v, GreenColor: %v, YellowColor: %v, BlueColor: %v\n", RedColor, GreenColor, YellowColor, BlueColor)
|
|
|
|
sendData := make(map[string]int)
|
|
sendData["RedColor"] = RedColor
|
|
sendData["BlueColor"] = BlueColor
|
|
sendData["YellowColor"] = YellowColor
|
|
sendData["GreenColor"] = GreenColor
|
|
sendData["A_front_count"] = A_front_count
|
|
sendData["B_front_count"] = B_front_count
|
|
sendData["C_front_count"] = C_front_count
|
|
sendData["D_front_count"] = D_front_count
|
|
sendData["A_after_count"] = A_after_count
|
|
sendData["B_after_count"] = B_after_count
|
|
sendData["C_after_count"] = C_after_count
|
|
sendData["D_after_count"] = D_after_count
|
|
return sendData
|
|
}
|
|
|
|
// 计算颜色
|
|
func JiSuanColorStr(testPage []TestPageColorStr) map[string]int {
|
|
if len(testPage) < 1 {
|
|
sendDataw := make(map[string]int)
|
|
sendDataw["RedColor"] = 0
|
|
sendDataw["BlueColor"] = 0
|
|
sendDataw["YellowColor"] = 0
|
|
sendDataw["GreenColor"] = 0
|
|
return sendDataw
|
|
}
|
|
A_front_count := 0
|
|
B_front_count := 0
|
|
C_front_count := 0
|
|
D_front_count := 0
|
|
A_after_count := 0
|
|
B_after_count := 0
|
|
C_after_count := 0
|
|
D_after_count := 0
|
|
// fmt.Printf("testPage:%v\n", testPage)
|
|
for _, v := range testPage {
|
|
testNumInt, _ := strconv.Atoi(v.TestNumber)
|
|
checkedValInt, _ := strconv.Atoi(v.CheckedVal)
|
|
// testNumInt := v.TestNumber
|
|
// checkedValInt := v.CheckedVal
|
|
if testNumInt <= 15 {
|
|
switch checkedValInt {
|
|
case 2:
|
|
B_front_count++
|
|
case 3:
|
|
C_front_count++
|
|
case 4:
|
|
D_front_count++
|
|
default:
|
|
A_front_count++
|
|
}
|
|
} else {
|
|
switch checkedValInt {
|
|
case 2:
|
|
B_after_count++
|
|
case 3:
|
|
C_after_count++
|
|
case 4:
|
|
D_after_count++
|
|
default:
|
|
A_after_count++
|
|
}
|
|
}
|
|
}
|
|
|
|
fmt.Printf("A_front_count: %v, B_front_count: %v, C_front_count: %v, D_front_count: %v\n", A_front_count, B_front_count, C_front_count, D_front_count)
|
|
fmt.Printf("A_after_count: %v, B_after_count: %v, C_after_count: %v, D_after_count: %v\n", A_after_count, B_after_count, C_after_count, D_after_count)
|
|
|
|
RedColor := A_front_count + D_after_count
|
|
BlueColor := B_front_count + C_after_count
|
|
YellowColor := C_front_count + B_after_count
|
|
GreenColor := D_front_count + A_after_count
|
|
|
|
// fmt.Printf("A_front_count: %v, D_after_count: %v, B_front_count: %v, BlueColor: %v\n", A_front_count, D_after_count, B_front_count, C_after_count)
|
|
// fmt.Printf("RedColor: %v, GreenColor: %v, YellowColor: %v, BlueColor: %v\n", RedColor, GreenColor, YellowColor, BlueColor)
|
|
|
|
sendData := make(map[string]int)
|
|
sendData["RedColor"] = RedColor
|
|
sendData["BlueColor"] = BlueColor
|
|
sendData["YellowColor"] = YellowColor
|
|
sendData["GreenColor"] = GreenColor
|
|
sendData["A_front_count"] = A_front_count
|
|
sendData["B_front_count"] = B_front_count
|
|
sendData["C_front_count"] = C_front_count
|
|
sendData["D_front_count"] = D_front_count
|
|
sendData["A_after_count"] = A_after_count
|
|
sendData["B_after_count"] = B_after_count
|
|
sendData["C_after_count"] = C_after_count
|
|
sendData["D_after_count"] = D_after_count
|
|
return sendData
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-23 15:42:56
|
|
@ 功能: 奖惩记录
|
|
@ 参数
|
|
|
|
#userKey 人员KEY
|
|
#years 当前年
|
|
#duration 倒查几年
|
|
#class 奖励还是惩罚
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainRewardsPenalties(userKey int64, years, duration, class int) map[string]interface{} {
|
|
synPro.Done()
|
|
sendData := overallhandle.MapOut()
|
|
|
|
if duration > 0 {
|
|
// fmt.Printf("奖惩记录111111: %v\n", duration)
|
|
for i := duration; i >= 0; i-- {
|
|
// fmt.Printf("奖惩记录33333: %v\n", i)
|
|
timeVal := years - i
|
|
var allScore []map[string]interface{}
|
|
overall.CONSTANT_DB_HR.Model(&models.RewardsPenalties{}).Where("`state` = 1 AND `userkey` = ? AND `years` = ? AND `types` = ?", userKey, timeVal, class).Find(&allScore)
|
|
// fmt.Printf("奖惩记录11111: %v\n", err)
|
|
timeValStr := strconv.Itoa(timeVal)
|
|
sendData[timeValStr] = allScore
|
|
// fmt.Printf("奖惩记录: %s\n", timeValStr)
|
|
}
|
|
} else {
|
|
var allScore map[string]interface{}
|
|
overall.CONSTANT_DB_HR.Model(&models.RewardsPenalties{}).Where("`state` = 1 AND `userkey` = ? AND `years` = ? AND `types` = ?", userKey, years, class).Find(&allScore)
|
|
timeValStr := strconv.Itoa(years)
|
|
sendData[timeValStr] = allScore
|
|
}
|
|
return sendData
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-23 15:20:52
|
|
@ 功能: 获取多长时间的绩效
|
|
@ 参数
|
|
|
|
#userKey 人员KEY
|
|
#years 当前年
|
|
#duration 倒查几年
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainTimeLangMeritslog(userKey int64, years, duration int) map[string]interface{} {
|
|
synPro.Done()
|
|
sendData := overallhandle.MapOut()
|
|
if duration > 0 {
|
|
for i := duration; i >= 0; i-- {
|
|
timeVal := years - i
|
|
// var allScore int64
|
|
// overall.CONSTANT_DB_HR.Model(&models.Meritslog{}).Select("SUM(`score`) as `scoresum`").Where("`status` = 1 AND `userkey` = ? AND `years` = ?", userKey, timeVal).Find(&allScore)
|
|
timeValStr := strconv.Itoa(timeVal)
|
|
// if allScore > 0 {
|
|
// sendData[timeValStr] = float64(allScore) / 10000
|
|
// } else {
|
|
// sendData[timeValStr] = 0
|
|
// }
|
|
var allScore string
|
|
overall.CONSTANT_DB_HR.Model(&models.Meritslog{}).Select("`level`").Where("`status` = 1 AND `userkey` = ? AND `years` = ?", userKey, timeVal).Find(&allScore)
|
|
sendData[timeValStr] = allScore
|
|
}
|
|
} else {
|
|
// var allScore int64
|
|
// overall.CONSTANT_DB_HR.Model(&models.Meritslog{}).Select("SUM(`score`) as `scoresum`").Where("`status` = 1 AND `userkey` = ? AND `years` = ?", userKey, years).Find(&allScore)
|
|
timeValStr := strconv.Itoa(years)
|
|
// if allScore > 0 {
|
|
// sendData[timeValStr] = float64(allScore) / 10000
|
|
// } else {
|
|
// sendData[timeValStr] = 0
|
|
// }
|
|
var allScore string
|
|
overall.CONSTANT_DB_HR.Model(&models.Meritslog{}).Select("SUM(`score`) as `scoresum`").Where("`status` = 1 AND `userkey` = ? AND `years` = ?", userKey, years).Find(&allScore)
|
|
sendData[timeValStr] = allScore
|
|
}
|
|
return sendData
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-23 15:08:44
|
|
@ 功能: 获取证书
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainCertificateHonors(userKey int64, class int) (titleList []string) {
|
|
synPro.Done()
|
|
// overall.CONSTANT_DB_HR.Model(&models.CertificateHonors{}).Select("`title`").Where("`state` = 1 AND `types` = ? AND `userkey` = ?", class, userKey).Find(&titleList)
|
|
overall.CONSTANT_DB_HR.Model(&models.AcademicTitle{}).Select("`types`").Where("`userkey` = ?", userKey).Find(&titleList)
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-02-04 13:50:10
|
|
@ 功能: 证书
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainCertificateHonorsBook(userKey int64, class int) (titleList []string) {
|
|
synPro.Done()
|
|
overall.CONSTANT_DB_HR.Model(&models.CertificateHonors{}).Select("`title`").Where("`state` = 1 AND `types` = ? AND `userkey` = ?", class, userKey).Find(&titleList)
|
|
// overall.CONSTANT_DB_HR.Model(&models.AcademicTitle{}).Select("`types`").Where("`userkey` = ?", userKey).Find(&titleList)
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-23 09:46:31
|
|
@ 功能: 获取教育径路
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func UserEducationalExperience(num int64) (eduExper []educatExp) {
|
|
defer synPro.Done()
|
|
var dowWorkMan []models.PersonnelEducation
|
|
err := overall.CONSTANT_DB_HR.Model(&models.PersonnelEducation{}).Where("`state` = 1 AND `key` = ?", num).Order("`level` desc").Find(&dowWorkMan).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, v := range dowWorkMan {
|
|
var dwManCont educatExp //
|
|
dwManCont.GraduationSchool = v.GraduationSchool //毕业学校
|
|
dwManCont.Subject = v.Subject //专业
|
|
dwManCont.Education = v.Education //学历
|
|
dwManCont.EducationName = overallhandle.EducationLevel(int64(v.Education))
|
|
if v.AdmissionTime != 0 {
|
|
dwManCont.AdmissionTime = overallhandle.UnixTimeToDay(v.AdmissionTime, 14) //入学时间
|
|
}
|
|
if v.GraduationTime != 0 {
|
|
dwManCont.GraduationTime = overallhandle.UnixTimeToDay(v.GraduationTime, 14) //毕业时间
|
|
}
|
|
|
|
dwManCont.AcademicDegree = overallhandle.AcademicDegree(int64(v.AcademicDegree)) //学位
|
|
dwManCont.AcademicDegreeId = v.AcademicDegree
|
|
dwManCont.Level = overallhandle.GetXueWeiClass(int64(v.Level))
|
|
dwManCont.LevelId = v.Level //学历类型
|
|
dwManCont.Id = strconv.FormatInt(v.Id, 10)
|
|
dwManCont.EducationTypeName = overallhandle.EducationType(int64(v.EducationType))
|
|
eduExper = append(eduExper, dwManCont)
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-02-04 15:27:53
|
|
@ 功能: 数据库对账
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
// func (s *StaffApi) OneToBer(c *gin.Context) {
|
|
// var benDi []models.PersonArchives
|
|
// overall.CONSTANT_Hr_Server.Model(&models.PersonArchives{}).Select("`id`,`work_wechat`").Find(&benDi)
|
|
// // jsonCont, _ := json.Marshal(benDi)
|
|
// // fmt.Printf("jsonCont: %#v\n", string(jsonCont))
|
|
// if len(benDi) > 0 {
|
|
// for _, v := range benDi {
|
|
// fmt.Printf("jsonCont: %#v\n", v.WorkWechat)
|
|
// if v.WorkWechat != "" {
|
|
// var newHr models.PersonArchives
|
|
// newHr.EiteCont(map[string]interface{}{"`id`": v.Id}, map[string]interface{}{"`work_wechat`": v.WorkWechat, "`eite_time`": time.Now().Unix()})
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-02-06 09:01:51
|
|
@ 功能: 获取性格色彩
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (s *StaffApi) GetPeopleColor(c *gin.Context) {
|
|
var requestData overallhandle.NmuberOverall
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
overallhandle.Result(101, requestData, c)
|
|
return
|
|
}
|
|
if requestData.Number == "" {
|
|
overallhandle.Result(1, requestData, c, "未知人员!不可查询信息")
|
|
return
|
|
}
|
|
xgsc := GainCharacterColorNoDone(requestData.Number)
|
|
fmt.Printf("xgsc:%v\n", xgsc)
|
|
saveInfo := overallhandle.MapOut()
|
|
saveInfo["CharacterColour"] = strings.Join(xgsc.TestNumber, "、") //工作履历
|
|
saveInfo["ColourNameList"] = xgsc.TestNumber //工作履历
|
|
saveInfo["RadarColour"] = xgsc.ColorMap
|
|
overallhandle.Result(0, saveInfo, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-01-24 08:08:43
|
|
@ 功能: 获取性格色彩
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func GainCharacterColorNoDone(num string) (tpr TestPageColorResult) {
|
|
|
|
var myColor personalitycolor.Charcolortest
|
|
err := myColor.GetCont(map[string]interface{}{"`c_states`": 1, "`c_number`": num})
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
GetColorVal := make(map[string]int)
|
|
if myColor.TestJson != "" {
|
|
var testPage []TestPageColor
|
|
errJson := json.Unmarshal([]byte(myColor.TestJson), &testPage)
|
|
if errJson != nil {
|
|
var testPageStr []TestPageColorStr
|
|
json.Unmarshal([]byte(myColor.TestJson), &testPageStr)
|
|
GetColorVal = JiSuanColorStr(testPageStr)
|
|
} else {
|
|
GetColorVal = JiSuanColor(testPage)
|
|
}
|
|
}
|
|
// fmt.Printf("TestJson-->%v\n", myColor.TestJson)
|
|
// fmt.Printf("testPage-->%v\n", testPage)
|
|
// GetColorVal = JiSuanColor(testPage)
|
|
var ColorStrAry []TestPageColorVal
|
|
var redColor TestPageColorVal
|
|
redColor.Strval = GetColorVal["RedColor"]
|
|
redColor.Name = "红色"
|
|
redColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, redColor)
|
|
var blueColor TestPageColorVal
|
|
blueColor.Strval = GetColorVal["BlueColor"]
|
|
blueColor.Name = "蓝色"
|
|
blueColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, blueColor)
|
|
var yellowColor TestPageColorVal
|
|
yellowColor.Strval = GetColorVal["YellowColor"]
|
|
yellowColor.Name = "黄色"
|
|
yellowColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, yellowColor)
|
|
var greenColor TestPageColorVal
|
|
greenColor.Strval = GetColorVal["GreenColor"]
|
|
greenColor.Name = "绿色"
|
|
greenColor.Setval = 1
|
|
ColorStrAry = append(ColorStrAry, greenColor)
|
|
var colorAry []int
|
|
colorAry = append(colorAry, GetColorVal["RedColor"])
|
|
colorAry = append(colorAry, GetColorVal["BlueColor"])
|
|
colorAry = append(colorAry, GetColorVal["YellowColor"])
|
|
colorAry = append(colorAry, GetColorVal["GreenColor"])
|
|
|
|
colorVal, _ := json.Marshal(ColorStrAry)
|
|
fmt.Printf("colorVal-->%v\n", string(colorVal))
|
|
tpr.ColorMap = colorAry
|
|
MaxColor := overallhandle.GetMaxNum[int](colorAry)
|
|
for _, v := range ColorStrAry {
|
|
if v.Strval == MaxColor {
|
|
if !overallhandle.IsInTrue[int](v.Setval, tpr.CheckedVal) {
|
|
tpr.CheckedVal = append(tpr.CheckedVal, v.Setval)
|
|
}
|
|
if !overallhandle.IsInTrue[string](v.Name, tpr.TestNumber) {
|
|
tpr.TestNumber = append(tpr.TestNumber, v.Name)
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|