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.
291 lines
9.2 KiB
291 lines
9.2 KiB
package assessment
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
|
|
"gin_server_admin/commonus"
|
|
"gin_server_admin/global"
|
|
"gin_server_admin/model/assessmentmodel"
|
|
"gin_server_admin/model/common/response"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// 入口
|
|
func (d *DutyHandle) Index(c *gin.Context) {
|
|
outPut := commonus.MapOut()
|
|
response.Result(0, outPut, "获取成功", c)
|
|
}
|
|
|
|
// 职责类别列表
|
|
func (d *DutyHandle) DutyClassList(c *gin.Context) {
|
|
var requestData dutyClassRequest
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
// response.Result(101, err, "参数错误!请重新提交!", c)
|
|
// return
|
|
}
|
|
if requestData.PageSize == 0 {
|
|
requestData.PageSize = 20
|
|
}
|
|
if requestData.Page <= 0 {
|
|
requestData.Page = 1
|
|
}
|
|
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
|
|
var total int64 //获取所有数据
|
|
//条件
|
|
whereMap := commonus.MapOut()
|
|
if requestData.State != 0 {
|
|
whereMap["state"] = requestData.State
|
|
} else {
|
|
whereMap["state"] = 1
|
|
}
|
|
var dutyClassAry []assessmentmodel.DutyClass
|
|
if requestData.Title != "" {
|
|
listTitleErr := global.GVA_DB_Performanceappraisal.Where(whereMap).Where("`title` LIKE '%"+requestData.Title+"%' AND `state` IN ?", []int{1, 2}).Order("id DESC").Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyClassAry).Error
|
|
if listTitleErr != nil {
|
|
response.Result(103, listTitleErr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
counrErr := global.GVA_DB_Performanceappraisal.Model(&dutyClassAry).Where(whereMap).Where("`title` LIKE '%"+requestData.Title+"%' AND `state` IN ?", []int{1, 2}).Count(&total).Error
|
|
if counrErr != nil {
|
|
total = 0
|
|
}
|
|
} else {
|
|
listTitleErr := global.GVA_DB_Performanceappraisal.Where(whereMap).Where("`state` IN ?", []int{1, 2}).Order("sort ASC,id DESC").Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyClassAry).Error
|
|
if listTitleErr != nil {
|
|
response.Result(103, listTitleErr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
counrErr := global.GVA_DB_Performanceappraisal.Model(&dutyClassAry).Where(whereMap).Where("`state` IN ?", []int{1, 2}).Count(&total).Error
|
|
if counrErr != nil {
|
|
total = 0
|
|
}
|
|
}
|
|
var dutyClassOutputAry []dutyClassOutput
|
|
for _, val := range dutyClassAry {
|
|
var dutyClassCont dutyClassOutput
|
|
dutyClassCont.Id = val.Id
|
|
dutyClassCont.Title = val.Title
|
|
dutyClassCont.Type = val.Type
|
|
dutyClassCont.Weight = val.Weight
|
|
dutyClassCont.Time = val.Time
|
|
dutyClassCont.State = val.State
|
|
dutyClassCont.OutId = strconv.FormatInt(val.Id, 10)
|
|
dutyClassCont.Sort = val.Sort
|
|
dutyClassCont.IsTrue = judgeIsTrue(val.Id)
|
|
dutyClassOutputAry = append(dutyClassOutputAry, dutyClassCont)
|
|
}
|
|
countSum := len(dutyClassOutputAry)
|
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, dutyClassOutputAry)
|
|
// fmt.Printf("%v\n", printData)
|
|
response.Result(0, printData, "查询成功!", c)
|
|
}
|
|
|
|
// 判断是否已经被使用
|
|
func judgeIsTrue(classId int64) (isTrue int) {
|
|
isTrue = 2
|
|
var evalTarCont []assessmentmodel.EvaluationTarget
|
|
err := global.GVA_DB_Performanceappraisal.Where("`et_dimension` = ?", classId).Find(&evalTarCont).Error
|
|
if err == nil {
|
|
if len(evalTarCont) > 0 {
|
|
isTrue = 1
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
// 添加职责类别
|
|
func (d *DutyHandle) AddDutyClass(c *gin.Context) {
|
|
var requestData dutyClassAdd
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.Title == "" {
|
|
response.Result(102, err, "请输入职责名称", c)
|
|
return
|
|
}
|
|
if requestData.Type == 0 {
|
|
requestData.Type = 1
|
|
}
|
|
if requestData.Sort == 0 {
|
|
requestData.Sort = 1000
|
|
}
|
|
outMap := commonus.MapOut()
|
|
juadgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyClass{}).Select("title").Where("`title` = ?", requestData.Title).First(&outMap).Error
|
|
if juadgeErr == nil {
|
|
response.Result(102, err, "该考核维度已经存在!请不要重复添加!", c)
|
|
return
|
|
}
|
|
var dutyClassCont assessmentmodel.DutyClass
|
|
dutyClassCont.Id = commonus.GetFileNumberEs()
|
|
dutyClassCont.Title = requestData.Title
|
|
dutyClassCont.Type = requestData.Type
|
|
dutyClassCont.Weight = 0
|
|
dutyClassCont.State = 1
|
|
dutyClassCont.Sort = requestData.Sort
|
|
dutyClassCont.Time = time.Now().Unix()
|
|
|
|
addArchiveFileErr := global.GVA_DB_Performanceappraisal.Create(&dutyClassCont).Error
|
|
if addArchiveFileErr != nil {
|
|
response.Result(108, dutyClassCont, "数据写入失败!", c)
|
|
} else {
|
|
response.Result(0, dutyClassCont, "数据写入成功!", c)
|
|
}
|
|
}
|
|
|
|
// 查看职责类别详情
|
|
func (d *DutyHandle) GetDutyClassInfo(c *gin.Context) {
|
|
var requestData commonus.SetId
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.Id == 0 && requestData.OutId == "" {
|
|
response.Result(102, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.OutId != "" {
|
|
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
|
|
if inIntErr == nil {
|
|
requestData.Id = idInt
|
|
}
|
|
}
|
|
var dutyClassCont assessmentmodel.DutyClass
|
|
inFoErr := global.GVA_DB_Performanceappraisal.Where("`id` = ?", requestData.Id).First(&dutyClassCont).Error
|
|
if inFoErr != nil {
|
|
response.Result(103, inFoErr, "数据查询失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, dutyClassCont, "数据查询成功!", c)
|
|
}
|
|
|
|
// 修改职责类别内容
|
|
func (d *DutyHandle) EiteDutyClassInfo(c *gin.Context) {
|
|
var requestData dutyClassEite
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.Id == 0 && requestData.OutId == "" {
|
|
response.Result(102, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.OutId != "" {
|
|
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
|
|
if inIntErr == nil {
|
|
requestData.Id = idInt
|
|
}
|
|
}
|
|
if requestData.Title == "" {
|
|
response.Result(103, err, "请输入职责名称", c)
|
|
return
|
|
}
|
|
|
|
var dutyClassCont assessmentmodel.DutyClass
|
|
inFoErrJuadge := global.GVA_DB_Performanceappraisal.Where("`id` = ?", requestData.Id).First(&dutyClassCont).Error
|
|
if inFoErrJuadge != nil {
|
|
response.Result(103, inFoErrJuadge, "该考核维度不存在!请检查您的提交", c)
|
|
return
|
|
}
|
|
if requestData.Title != dutyClassCont.Title {
|
|
outMap := commonus.MapOut()
|
|
juadgeErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyClass{}).Select("title").Where("`title` = ?", requestData.Title).First(&outMap).Error
|
|
if juadgeErr == nil {
|
|
response.Result(102, err, "该考核维度已经存在!请不要重复提交!", c)
|
|
return
|
|
}
|
|
}
|
|
|
|
//软处理
|
|
saveData := commonus.MapOut()
|
|
saveData["title"] = requestData.Title
|
|
saveData["time"] = time.Now().Unix()
|
|
if requestData.Sort != 0 {
|
|
saveData["sort"] = requestData.Sort
|
|
}
|
|
var eiteDutyClass assessmentmodel.DutyClass
|
|
inFoErr := global.GVA_DB_Performanceappraisal.Model(&eiteDutyClass).Where("`id` = ?", requestData.Id).Updates(saveData).Error
|
|
if inFoErr != nil {
|
|
response.Result(104, inFoErr, "数据编辑失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, eiteDutyClass, "数据编辑成功!", c)
|
|
}
|
|
|
|
// 状态变更及删除
|
|
func (d *DutyHandle) StateDutyClass(c *gin.Context) {
|
|
var requestData dutyClassState
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.Id == 0 && requestData.OutId == "" {
|
|
response.Result(102, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.OutId != "" {
|
|
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
|
|
if inIntErr == nil {
|
|
requestData.Id = idInt
|
|
}
|
|
}
|
|
if requestData.State == 0 {
|
|
requestData.State = 1
|
|
}
|
|
var eiteDutyClass assessmentmodel.DutyClass
|
|
if requestData.IsDel != 1 {
|
|
isTrue, dutyErr := dutyInfoStateSet(eiteDutyClass, requestData)
|
|
if isTrue != true {
|
|
response.Result(103, dutyErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "修改成功!", c)
|
|
} else {
|
|
if requestData.State == 3 {
|
|
archiveInfoErr := global.GVA_DB_Performanceappraisal.Where("at_id = ?", requestData.Id).Delete(&eiteDutyClass).Error
|
|
if archiveInfoErr != nil {
|
|
response.Result(104, requestData, "删除失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "删除成功!", c)
|
|
} else {
|
|
isTrue, saveErr := dutyInfoStateSet(eiteDutyClass, requestData)
|
|
if isTrue != true {
|
|
response.Result(105, saveErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "修改成功!", c)
|
|
}
|
|
}
|
|
}
|
|
|
|
// 状态软操作
|
|
func dutyInfoStateSet(dutyClassInfo assessmentmodel.DutyClass, arrData dutyClassState) (isTrue bool, dutyClassInfoErr error) {
|
|
isTrue = false
|
|
//软处理
|
|
saveData := commonus.MapOut()
|
|
saveData["state"] = arrData.State
|
|
saveData["time"] = time.Now().Unix()
|
|
dutyClassInfoErr = global.GVA_DB_Performanceappraisal.Model(&dutyClassInfo).Where("id = ?", arrData.Id).Updates(saveData).Error
|
|
if dutyClassInfoErr != nil {
|
|
return
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
// 获取职责类别内容
|
|
func GetDutyClassCont(id int64) (isTrue bool, ContInfo assessmentmodel.DutyClass) {
|
|
isTrue = false
|
|
err := global.GVA_DB_Performanceappraisal.Where("id = ?", id).First(&ContInfo).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|