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.

363 lines
13 KiB

package personnelapi
import (
"fmt"
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"strconv"
"time"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2022-11-30 14:05:01
@ 功能:编辑人员行政组织关系
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) EditManOrgCont(c *gin.Context) {
var requestData EditOrgPeople
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(1, err, c, "数据格式错误!")
return
}
if requestData.Id == "" {
overallhandle.Result(1, requestData, c, "参数错误!请检查后重新提交!")
return
}
if requestData.OrgId <= 0 {
overallhandle.Result(1, requestData, c, "请选择归属行政组织!")
return
}
if requestData.Position == 0 {
overallhandle.Result(1, requestData, c, "请选择归属岗位!")
return
}
if requestData.JobId == 0 {
overallhandle.Result(1, requestData, c, "请选择职务!")
return
}
if requestData.TeamId == 0 {
overallhandle.Result(1, requestData, c, "请选择班组!")
return
}
if requestData.Ruleid == "" {
overallhandle.Result(1, requestData, c, "请选择排班规则!!")
return
}
if requestData.JobLeve == 0 {
requestData.JobLeve = 3
}
wher := map[string]interface{}{"`id`": requestData.Id}
var myCont models.PersonArchives
err = myCont.GetCont(wher, "`id`", "`admin_org`", "`position`", "`job_id`", "`job_leve`", "`teamid`")
if err != nil {
overallhandle.Result(1, err, c, "没有该人员信息!")
return
}
saveData := overallhandle.MapOut()
if requestData.OrgId != myCont.AdminOrg {
_, companyId, departmentId, sunDepartId, _ := overallhandle.GetOrgStructure(requestData.OrgId)
if companyId != 0 {
saveData["company"] = companyId
}
if departmentId != 0 {
saveData["maindeparment"] = departmentId
}
if sunDepartId != 0 {
saveData["sun_main_deparment"] = sunDepartId
}
saveData["admin_org"] = requestData.OrgId
}
if requestData.Position != myCont.Position {
saveData["position"] = requestData.Position
}
if requestData.JobId != myCont.JobId {
var jobCont models.DutiesClassLeve
jobCont.GetCont(map[string]interface{}{"`d_id`": requestData.JobId}, "`c_id`")
saveData["job_class"] = jobCont.ClassId
saveData["job_id"] = requestData.JobId
}
if requestData.JobLeve != myCont.JobLeve {
saveData["job_leve"] = requestData.JobLeve
}
if requestData.TeamId != myCont.TeamId {
saveData["teamid"] = requestData.TeamId
}
ruleidStr := strconv.FormatInt(myCont.Ruleid, 10)
if requestData.Ruleid != ruleidStr {
saveData["ruleid"] = requestData.Ruleid
}
if len(saveData) < 1 {
overallhandle.Result(0, saveData, c)
return
}
saveData["eite_time"] = time.Now().Unix()
err = myCont.EiteCont(wher, saveData)
if err != nil {
overallhandle.Result(106, err, c)
return
}
overallhandle.Result(0, err, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2022-12-01 11:14:18
@ 功能: 编辑人员主题信息
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) EditManMainCont(c *gin.Context) {
var requestData EditContData
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
overallhandle.Result(1, requestData, c, "参数错误!请检查后重新提交!")
return
}
if requestData.Mobilephone == "" {
overallhandle.Result(1, requestData, c, "请输入电话号码!")
return
}
if requestData.Idcardno == "" {
overallhandle.Result(1, requestData, c, "请输入身份证号!")
return
}
var entryDateInt64 int64
if requestData.Entrydatetime == "" {
overallhandle.Result(1, requestData, c, "请输入入职日期!")
entryDateInt64 = 0
return
} else {
entryDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Entrydatetime))
}
fmt.Printf("requestData.Entrydatetime:%v<------------>entryDateInt64:%v\n", requestData.Entrydatetime, entryDateInt64)
if requestData.Probationperiod == 0 {
overallhandle.Result(1, requestData, c, "请输入试用期!")
return
}
if requestData.Gender == 0 {
requestData.Gender = 1
}
var birthdayInt64 int64 //生日
if requestData.Birthdaytime != "" {
birthdayInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Birthdaytime))
} else {
birthdayInt64 = 0
}
var planFormalDateInt64 int64 //转正日期
if requestData.Confirmationdate != "" {
planFormalDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Confirmationdate))
} else {
planFormalDateInt64 = 0
}
var idCardStartDateInt64 int64 //身份证有效期开始
if requestData.Idcardstarttimedata != "" {
idCardStartDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardstarttimedata))
} else {
idCardStartDateInt64 = 0
}
var idCardEndDateInt64 int64 //身份证有效期结束
if requestData.Idcardendtimedata != "" {
idCardEndDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardendtimedata))
} else {
idCardEndDateInt64 = 0
}
var jobStartDateInt64 int64 //参加工作日期
if requestData.Idcardendtimedata != "" {
jobStartDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardendtimedata))
} else {
jobStartDateInt64 = 0
}
if requestData.Health == 0 {
requestData.Health = 1
}
if requestData.Maritalstatus == 0 {
requestData.Maritalstatus = 1
}
if requestData.Isveterans == 0 {
requestData.Isveterans = 2
}
wheAry := overallhandle.MapOut()
wheAry["`id`"] = requestData.Id
var myCont models.PersonArchives
err := myCont.GetCont(wheAry, "`key`", "`number`")
if err != nil {
overallhandle.Result(1, err, c, "该人员不存在!请核对后再提交!")
return
}
editTime := time.Now().Unix()
saveMainDate := overallhandle.MapOut()
if requestData.Wechat != "" && requestData.Wechat != myCont.Wechat {
saveMainDate["`wechat`"] = requestData.Wechat
} //绑定微信
if requestData.Workwechat != "" && requestData.Workwechat != myCont.WorkWechat {
saveMainDate["`work_wechat`"] = requestData.Workwechat
} //绑定企业微信
if requestData.Hireclass != 0 && requestData.Hireclass != myCont.HireClass {
saveMainDate["`hire_class`"] = requestData.Hireclass
} //雇佣类型
if requestData.Emptype != 0 && requestData.Emptype != myCont.EmpType {
saveMainDate["`emp_type`"] = requestData.Emptype
} //用工关系
if len(saveMainDate) > 0 {
saveMainDate["`eite_time`"] = editTime
myCont.EiteCont(wheAry, saveMainDate)
}
wheAryEs := overallhandle.MapOut()
wheAryEs["`key`"] = myCont.Key
var myInfo models.PersonnelContent
err = myInfo.GetCont(wheAryEs)
if err != nil {
myInfo.Number = myCont.Number //员工工号;index"`
myInfo.Idcardno = requestData.Idcardno //身份证号"`
myInfo.Passportno = requestData.Passportno //护照号码"`
myInfo.Globalroaming = requestData.Globalroaming //国际区号"`
myInfo.Mobilephone = requestData.Mobilephone //手机号码"`
myInfo.Email = requestData.Email //电子邮件"`
myInfo.Gender = requestData.Gender //性别(1:男性;2:女性;3:中性)"`
myInfo.Birthday = birthdayInt64 //"`
myInfo.Myfolk = requestData.Myfolk //民族"`
myInfo.Nativeplace = requestData.Nativeplace //籍贯"`
myInfo.Idcardstartdate = idCardStartDateInt64 //身份证有效期开始"`
myInfo.Idcardenddate = idCardEndDateInt64 //身份证有效期结束"`
myInfo.Idcardaddress = requestData.Idcardaddress //身份证地址"`
myInfo.IdcardIssued = requestData.IdcardIssued //身份证签发机关"`
myInfo.Health = requestData.Health //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"`
myInfo.Maritalstatus = requestData.Maritalstatus //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"`
myInfo.Internaltelephone = requestData.Internaltelephone //内线电话"`
myInfo.Currentresidence = requestData.Currentresidence //现居住地址"`
myInfo.Time = editTime //创建时间"`
myInfo.Constellation = requestData.Constellationing //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"`
myInfo.Isveterans = requestData.Isveterans //是否为退役军人(1:是;2:否)"`
myInfo.Veteransnumber = requestData.Veteransnumber //退役证编号"`
myInfo.Jobstartdate = jobStartDateInt64 //参加工作日期"`
myInfo.Entrydate = entryDateInt64 //入职日期"`
myInfo.Probationperiod = requestData.Probationperiod //试用期"`
myInfo.Planformaldate = planFormalDateInt64 //预计转正日期"`
myInfo.PoliticalOutlook = requestData.Politicaloutlook //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"`
myInfo.Key = myCont.Key //"`
myInfo.NameUsedBefore = requestData.Nameusedbefore //曾用名"`
err = overall.CONSTANT_DB_HR.Create(&myInfo).Error
if err != nil {
overallhandle.Result(106, err, c)
return
}
} else {
saveData := overallhandle.MapOut()
if requestData.Mobilephone != "" && requestData.Mobilephone != myInfo.Mobilephone {
saveData["`mobilephone`"] = requestData.Mobilephone
} //手机号码
if requestData.Idcardno != "" && requestData.Idcardno != myInfo.Idcardno {
saveData["`idcardno`"] = requestData.Mobilephone
} //身份证号
if entryDateInt64 != myInfo.Entrydate {
saveData["`entrydate`"] = entryDateInt64
} //入职日期
if requestData.Probationperiod != 0 && requestData.Probationperiod != myInfo.Probationperiod {
saveData["`probationperiod`"] = requestData.Probationperiod
} //试用期
if planFormalDateInt64 != myInfo.Planformaldate {
saveData["`planformaldate`"] = planFormalDateInt64
} // 预计转正日期
if jobStartDateInt64 != myInfo.Jobstartdate {
saveData["`jobstartdate`"] = jobStartDateInt64
} //参加工作日期
if requestData.Nameusedbefore != "" && requestData.Nameusedbefore != myInfo.NameUsedBefore {
saveData["`name_used_before`"] = requestData.Nameusedbefore
} //曾用名
if requestData.Gender != 0 && requestData.Gender != myInfo.Gender {
saveData["`gender`"] = requestData.Gender
} //性别
if requestData.Myfolk != "" && requestData.Myfolk != myInfo.Myfolk {
saveData["`myfolk`"] = requestData.Myfolk
} //民族
if requestData.Politicaloutlook != 0 && requestData.Politicaloutlook != myInfo.PoliticalOutlook {
saveData["`political_outlook`"] = requestData.Politicaloutlook
} //政治面貌
if requestData.Health != 0 && requestData.Health != myInfo.Health {
saveData["`health`"] = requestData.Health
} //健康状况
if birthdayInt64 != myInfo.Birthday {
saveData["`birthday`"] = birthdayInt64
} //生日
if idCardStartDateInt64 != myInfo.Idcardstartdate {
saveData["`idcardstartdate`"] = idCardStartDateInt64
} //身份证有效期开始
if idCardEndDateInt64 != myInfo.Idcardenddate {
saveData["`idcardenddate`"] = idCardEndDateInt64
} //身份证有效期结束
if requestData.Idcardaddress != "" && requestData.Idcardaddress != myInfo.Idcardaddress {
saveData["`idcardaddress`"] = requestData.Idcardaddress
} //身份证地址
if requestData.IdcardIssued != "" && requestData.IdcardIssued != myInfo.IdcardIssued {
saveData["`idcardIssued`"] = requestData.IdcardIssued
} //身份证签发机关
if requestData.Currentresidence != "" && requestData.Currentresidence != myInfo.Currentresidence {
saveData["`currentresidence`"] = requestData.Currentresidence
} //现居住地址
if requestData.Nativeplace != "" && requestData.Nativeplace != myInfo.Nativeplace {
saveData["`nativeplace`"] = requestData.Nativeplace
} //籍贯
if requestData.Email != "" && requestData.Email != myInfo.Email {
saveData["`email`"] = requestData.Email
} //电子邮件
if requestData.Internaltelephone != "" && requestData.Internaltelephone != myInfo.Internaltelephone {
saveData["`internaltelephone`"] = requestData.Internaltelephone
} //内线电话
if requestData.Isveterans != 0 && requestData.Isveterans != myInfo.Isveterans {
saveData["`isveterans`"] = requestData.Isveterans
} //是否为退役军人
if requestData.Veteransnumber != "" && requestData.Veteransnumber != myInfo.Veteransnumber {
saveData["`veteransnumber`"] = requestData.Veteransnumber
} //退役证编号
if requestData.Passportno != "" && requestData.Passportno != myInfo.Passportno {
saveData["`passportno`"] = requestData.Passportno
} //护照号码
if requestData.Globalroaming != "" && requestData.Globalroaming != myInfo.Globalroaming {
saveData["`globalroaming`"] = requestData.Globalroaming
} //国际区号
if requestData.Constellationing != 0 && requestData.Constellationing != myInfo.Constellation {
saveData["`constellationing`"] = requestData.Constellationing
} //星座
if len(saveData) > 0 {
saveData["`time`"] = editTime
err = myInfo.EiteCont(wheAryEs, saveData)
if err != nil {
overallhandle.Result(106, err, c)
return
}
}
}
overallhandle.Result(0, err, c)
}