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.

106 lines
2.5 KiB

package personnelapi
import (
"hr_server/models"
"hr_server/overall/overallhandle"
"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.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.Id}, "`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
}
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)
}