@ -1471,3 +1471,231 @@ func (s *StaffApi) EditPassWord(c *gin.Context) {
}
overallhandle . Result ( 0 , err , c , "修改成功!" )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 11 - 26 13 : 36 : 23
@ 功能 : 添加员工信息
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( s * StaffApi ) AddPeopleCont ( c * gin . Context ) {
var requestData AddNewPeopleCont
c . ShouldBindJSON ( & requestData )
if requestData . Number == "" {
overallhandle . Result ( 1 , requestData . Number , c , "工号不能为空!" )
return
}
if requestData . Name == "" {
overallhandle . Result ( 1 , requestData . Name , c , "姓名不能为空!" )
return
}
if requestData . Icon == "" {
overallhandle . Result ( 1 , requestData . Name , c , "请上传员工照片" )
return
}
if requestData . Gender == 0 {
requestData . Gender = 1
}
if requestData . HireType == 0 {
requestData . HireType = 1
}
if requestData . EmpType == 0 {
requestData . HireType = 3
}
if requestData . AdminOrg == 0 {
overallhandle . Result ( 1 , requestData . AdminOrg , c , "请选择员工归属行政组织!" )
return
}
if requestData . Position == 0 {
overallhandle . Result ( 1 , requestData . Position , c , "请选择人员职务!" )
return
}
if requestData . TeamId == 0 {
overallhandle . Result ( 1 , requestData . TeamId , c , "请选择人员归属班组!" )
return
}
if requestData . PositionGrade == 0 {
requestData . PositionGrade = 3
return
}
if requestData . Mobilephone == "" {
overallhandle . Result ( 1 , requestData . Mobilephone , c , "请输入人员手机号!" )
return
}
if requestData . Health == 0 {
requestData . Health = 2
return
}
if requestData . EntryDate == "" {
overallhandle . Result ( 1 , requestData . EntryDate , c , "请输入人员入职日期!" )
return
}
if requestData . ProbationPeriod == 0 {
requestData . ProbationPeriod = 3
return
}
if requestData . IDCardNo == "" {
overallhandle . Result ( 1 , requestData . IDCardNo , c , "请输入员工身份证号码!" )
return
}
if requestData . PoliticalOutlook == 0 {
requestData . PoliticalOutlook = 1 //政治面貌
}
if requestData . HireType == 0 {
requestData . HireType = 1
}
// if requestData.JobId == 0 {
// requestData.JobId = 1
// }
if requestData . Maritalstatus == 0 {
requestData . Maritalstatus = 1
}
if requestData . Constellation == 0 {
requestData . Constellation = 1
}
if requestData . Isveterans == 0 {
requestData . Isveterans = 2
}
//员工档案主
var staffInfo models . PersonArchives
//判断工号是存在
whereAry := overallhandle . MapOut ( )
whereAry [ "number" ] = requestData . Number
if judgeNoErr := staffInfo . GetCont ( whereAry , "number" ) ; judgeNoErr == nil {
overallhandle . Result ( 1 , requestData , c , "该工号已经被使用!请不要重复使用!" )
return
}
isMeKey := overallhandle . OnlyOneNumber ( 3 ) //获取唯一编号
setTime := time . Now ( ) . Unix ( )
staffInfo . Number = requestData . Number
staffInfo . Name = requestData . Name
staffInfo . Icon = requestData . Icon
staffInfo . HireClass = requestData . HireType
staffInfo . EmpType = requestData . EmpType
//获取相关行政组织
_ , companyId , departmentId , sunDepartId , _ := overallhandle . GetOrgStructure ( requestData . AdminOrg )
staffInfo . Company = companyId //公司
staffInfo . MainDeparment = departmentId //主部门
staffInfo . SunMainDeparment = sunDepartId //二级部门
staffInfo . AdminOrg = requestData . AdminOrg //行政组织
staffInfo . TeamId = requestData . TeamId //班组
staffInfo . Position = requestData . Position
//获取职务及职务分类
if requestData . JobId == 0 {
var postDuitesCont models . PostDutiesJob
postDuitesCont . GetCont ( map [ string ] interface { } { "id" : requestData . Position } , "`duties`" , "`job_type`" )
staffInfo . JobClass = postDuitesCont . JobType
staffInfo . JobId = postDuitesCont . Duties
} else {
var dutiesCont models . Duties
dutiesCont . GetCont ( map [ string ] interface { } { "id" : requestData . JobId } , "`job_type`" )
staffInfo . JobClass = dutiesCont . JobType
staffInfo . JobId = requestData . JobId
}
staffInfo . JobLeve = requestData . PositionGrade //入职等级
staffInfo . Time = setTime
staffInfo . EiteTime = setTime
staffInfo . State = 1
staffInfo . Key = isMeKey
staffInfo . WorkWechat = requestData . WeorWechat
//员工资料副表
var peopleContEs models . PersonnelContent
peopleContEs . Key = isMeKey
peopleContEs . Number = requestData . Number
peopleContEs . Passportno = requestData . Passportno
peopleContEs . Globalroaming = requestData . Globalroaming
peopleContEs . Idcardno = requestData . IDCardNo
peopleContEs . Mobilephone = requestData . Mobilephone
peopleContEs . Gender = requestData . Gender
brrthday , _ := overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . Birthday ) )
peopleContEs . Birthday = brrthday
peopleContEs . Myfolk = requestData . Nation
peopleContEs . Nativeplace = requestData . NativePlace
idCardStarTime := time . Now ( ) . Unix ( )
if requestData . IdCardStartDate != "" {
idCardStarTime , _ = overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . IdCardStartDate ) )
}
peopleContEs . Idcardstartdate = idCardStarTime //身份证有效期开始
idCardEndTime := time . Now ( ) . Unix ( )
if requestData . IdCardEndDate != "" {
idCardEndTime , _ = overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . IdCardEndDate ) )
}
peopleContEs . Idcardenddate = idCardEndTime //身份证有效期结束
peopleContEs . Health = requestData . Health
peopleContEs . Maritalstatus = requestData . Maritalstatus
peopleContEs . Internaltelephone = ""
peopleContEs . Currentresidence = requestData . CurrentResidence
peopleContEs . Time = setTime
peopleContEs . Constellation = requestData . Constellation
peopleContEs . Isveterans = requestData . Isveterans
peopleContEs . Veteransnumber = requestData . Veteransnumber
workInData := setTime
if requestData . WorkingDate != "" {
workInData , _ = overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . WorkingDate ) )
}
peopleContEs . Jobstartdate = workInData
entryData := setTime
if requestData . EntryDate != "" {
entryData , _ = overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . EntryDate ) )
}
peopleContEs . Entrydate = entryData
peopleContEs . Probationperiod = requestData . ProbationPeriod
planformalData := setTime
if requestData . ConfirmationDate != "" {
planformalData , _ = overallhandle . DateToTimeStamp ( fmt . Sprintf ( "%v 00:00:00" , requestData . ConfirmationDate ) )
} else {
planformalData = overallhandle . GetFutureMonthTime ( entryData , requestData . ProbationPeriod , 2 )
}
peopleContEs . Planformaldate = planformalData
peopleContEs . PoliticalOutlook = requestData . PoliticalOutlook
//开启事务
gromDbBeginAffair := overall . CONSTANT_DB_HR . Begin ( )
gromDbBeginAffair . SavePoint ( "CallBackBegin" )
mainPeopenContErr := gromDbBeginAffair . Create ( & staffInfo ) . Error
mainPeopenContEsErr := gromDbBeginAffair . Create ( & peopleContEs ) . Error
fmt . Printf ( "开启事务%v----------%v\n" , mainPeopenContErr , mainPeopenContEsErr )
if mainPeopenContErr == nil && mainPeopenContEsErr == nil {
addErr := gromDbBeginAffair . Commit ( ) . Error
overallhandle . Result ( 0 , addErr , c )
} else {
gromDbBeginAffair . RollbackTo ( "CallBackBegin" )
addErr := gromDbBeginAffair . Rollback ( ) . Error
overallhandle . Result ( 104 , addErr , c )
}
// addErr := overall.CONSTANT_DB_HR.Transaction(func(tx *gorm.DB) error {
// mainPeopenContErr := tx.Create(&staffInfo).Error
// if mainPeopenContErr != nil {
// return mainPeopenContErr
// }
// mainPeopenContEsErr := tx.Create(&peopleContEs).Error
// if mainPeopenContEsErr != nil {
// return mainPeopenContEsErr
// }
// return nil
// })
// if addErr != nil {
// overallhandle.Result(104, addErr, c)
// } else {
// overallhandle.Result(0, addErr, c)
// }
}