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.
534 lines
16 KiB
534 lines
16 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"
|
|
"gin_server_admin/model/testpage"
|
|
"gin_server_admin/model/wechat"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// 具体部门职责
|
|
func (d *DutyHandle) SpecificDutyList(c *gin.Context) {
|
|
var requestData specificDutyRequest
|
|
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)
|
|
|
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartDuty{}).Where("`de_satte` IN ?", []int{1, 2})
|
|
if requestData.DepartmentId != "" {
|
|
departId, departErr := strconv.ParseInt(requestData.DepartmentId, 10, 64)
|
|
if departErr == nil {
|
|
gormDb = gormDb.Where("`de_partid` = ?", departId)
|
|
}
|
|
|
|
}
|
|
|
|
var total int64
|
|
totalErr := gormDb.Count(&total).Error
|
|
if totalErr != nil {
|
|
total = 0
|
|
}
|
|
|
|
var dutyList []assessmentmodel.DepartDuty
|
|
dutyListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyList).Error
|
|
if dutyListerr != nil {
|
|
response.Result(103, dutyListerr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
var dutyListCont []specificDutyOut
|
|
for _, val := range dutyList {
|
|
var dutyCont specificDutyOut
|
|
|
|
dutyCont.Id = val.Id
|
|
dutyCont.Title = val.Title
|
|
dutyCont.State = val.State
|
|
dutyCont.Time = val.Time
|
|
dutyCont.PartId = val.PartId
|
|
dutyCont.ClassId = val.ClassId
|
|
dutyCont.AssessId = val.AssessId
|
|
dutyCont.DutyId = val.DutyId
|
|
dutyCont.Rescore = val.Rescore
|
|
dutyCont.OutId = strconv.FormatInt(val.Id, 10)
|
|
|
|
//职责分类
|
|
dutyCont.ClassIdStr = strconv.FormatInt(val.ClassId, 10)
|
|
isTrue, classCont := GetDutyClassCont(val.ClassId)
|
|
if isTrue == true {
|
|
dutyCont.ClassTitle = classCont.Title
|
|
}
|
|
//职责项目
|
|
dutyCont.AssEssIdStr = strconv.FormatInt(val.AssessId, 10)
|
|
isTrueAssEss, assessCont := GetAssEssCont(val.AssessId)
|
|
if isTrueAssEss == true {
|
|
dutyCont.AssEssTitle = assessCont.Title
|
|
}
|
|
//具体职责
|
|
dutyCont.DutyIdStr = strconv.FormatInt(val.DutyId, 10)
|
|
isTrueDuty, dutyContInfo := GetDutyInfoCont(val.DutyId)
|
|
if isTrueDuty == true {
|
|
dutyCont.DutyTitle = dutyContInfo.Title
|
|
}
|
|
|
|
where := commonus.MapOut()
|
|
where["id"] = val.Group
|
|
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
|
|
dutyCont.GroupTitle = orgCont.Name
|
|
// isTrueGroup, groupCont := GetGroupCont(val.Group)
|
|
// if isTrueGroup == true {
|
|
// dutyCont.GroupTitle = groupCont.Name
|
|
// }
|
|
|
|
//具体职责
|
|
dutyCont.ParentId = strconv.FormatInt(val.PartId, 10)
|
|
isTrueBranFact, branFactCont := GetBranchFactory(val.PartId)
|
|
if isTrueBranFact == true {
|
|
dutyCont.ParentTitle = branFactCont.Name
|
|
}
|
|
|
|
dutyListCont = append(dutyListCont, dutyCont)
|
|
}
|
|
countSum := len(dutyListCont)
|
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, dutyListCont)
|
|
response.Result(0, printData, "查询成功!", c)
|
|
}
|
|
|
|
// 添加具体职责
|
|
func (d *DutyHandle) AddSpecificDutyInfo(c *gin.Context) {
|
|
var requestData addSpecificDutyCont
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
var parentId, classId, assessId, dutyId int64
|
|
if requestData.ParentId == "" {
|
|
response.Result(102, err, "请指定归属于被考核部门", c)
|
|
return
|
|
} else {
|
|
parentId, _ = strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
}
|
|
if requestData.ClassId == "" {
|
|
response.Result(103, err, "请指定考核类别", c)
|
|
return
|
|
} else {
|
|
classId, _ = strconv.ParseInt(requestData.ClassId, 10, 64)
|
|
}
|
|
if requestData.AssEssId == "" {
|
|
response.Result(104, err, "请指定考核项目", c)
|
|
return
|
|
} else {
|
|
assessId, _ = strconv.ParseInt(requestData.AssEssId, 10, 64)
|
|
}
|
|
if requestData.DutyId == "" {
|
|
response.Result(105, err, "请指定考核具体职责", c)
|
|
return
|
|
} else {
|
|
dutyId, _ = strconv.ParseInt(requestData.DutyId, 10, 64)
|
|
}
|
|
if requestData.Score < 1 {
|
|
response.Result(106, err, "请指定该具体职责参考分值", c)
|
|
return
|
|
}
|
|
var ScoreAll int64
|
|
var specDutyInfo assessmentmodel.DepartDuty
|
|
|
|
scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error
|
|
if scoreErr != nil {
|
|
ScoreAll = 0
|
|
}
|
|
if ScoreAll+requestData.Score > 1000 {
|
|
response.Result(107, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c)
|
|
return
|
|
}
|
|
if requestData.Group == 0 {
|
|
requestData.Group = 3
|
|
}
|
|
specDutyInfo.Id = commonus.GetFileNumberEs()
|
|
specDutyInfo.Title = ""
|
|
specDutyInfo.State = 1
|
|
specDutyInfo.Time = time.Now().Unix()
|
|
specDutyInfo.PartId = parentId
|
|
specDutyInfo.ClassId = classId
|
|
specDutyInfo.AssessId = assessId
|
|
specDutyInfo.DutyId = dutyId
|
|
specDutyInfo.Rescore = requestData.Score
|
|
specDutyInfo.Group = requestData.Group
|
|
dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&specDutyInfo).Error
|
|
if dutyInfoErr != nil {
|
|
response.Result(108, specDutyInfo, "数据写入失败!", c)
|
|
} else {
|
|
response.Result(0, specDutyInfo, "数据写入成功!", c)
|
|
}
|
|
}
|
|
|
|
// 添加部门具体职责
|
|
func (d *DutyHandle) AddDepartDutyInfo(c *gin.Context) {
|
|
var requestData addDepartDutyCont
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
var parentId, dutyId int64
|
|
if requestData.ParentId == "" {
|
|
response.Result(102, err, "请指定归属于被考核部门", c)
|
|
return
|
|
} else {
|
|
parentIds, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
if parentIdErr != nil {
|
|
response.Result(103, err, "请指定归属于被考核部门", c)
|
|
return
|
|
}
|
|
parentId = parentIds
|
|
}
|
|
|
|
if requestData.DutyId == "" {
|
|
response.Result(105, err, "请指定考核具体职责", c)
|
|
return
|
|
} else {
|
|
dutyIds, dutyIdErr := strconv.ParseInt(requestData.DutyId, 10, 64)
|
|
if dutyIdErr != nil {
|
|
response.Result(103, err, "请指定考核具体职责", c)
|
|
return
|
|
}
|
|
dutyId = dutyIds
|
|
}
|
|
|
|
assIsTrue, assInfo := GetDutyInfoContAll(dutyId)
|
|
if assIsTrue != true {
|
|
response.Result(104, dutyId, "请指定考核项目已禁止使用!", c)
|
|
return
|
|
}
|
|
|
|
if requestData.Score < 1 {
|
|
response.Result(105, err, "请指定该具体职责参考分值", c)
|
|
return
|
|
}
|
|
var ScoreAll int64
|
|
var specDutyInfo assessmentmodel.DepartDuty
|
|
|
|
scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error
|
|
if scoreErr != nil {
|
|
ScoreAll = 0
|
|
}
|
|
if ScoreAll+requestData.Score > 1000 {
|
|
response.Result(106, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c)
|
|
return
|
|
}
|
|
//获取部门详细信息
|
|
bfIsTrue, bfInfo := GetBranchFactory(parentId)
|
|
if bfIsTrue != true {
|
|
response.Result(107, err, "该部门不存在,请检查您的提交!", c)
|
|
return
|
|
}
|
|
|
|
specDutyInfo.Id = commonus.GetFileNumberEs()
|
|
specDutyInfo.Title = ""
|
|
specDutyInfo.State = 1
|
|
specDutyInfo.Time = time.Now().Unix()
|
|
specDutyInfo.PartId = parentId
|
|
specDutyInfo.ClassId = assInfo.ClassId
|
|
specDutyInfo.AssessId = assInfo.AssessId
|
|
specDutyInfo.DutyId = dutyId
|
|
specDutyInfo.Rescore = requestData.Score
|
|
specDutyInfo.Group = bfInfo.Group
|
|
dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&specDutyInfo).Error
|
|
if dutyInfoErr != nil {
|
|
response.Result(108, specDutyInfo, "数据写入失败!", c)
|
|
} else {
|
|
response.Result(0, specDutyInfo, "数据写入成功!", c)
|
|
}
|
|
}
|
|
|
|
// 编辑具体内容
|
|
func (d *DutyHandle) EiteDepartDutyInfo(c *gin.Context) {
|
|
var requestData eiteDepartDutyCont
|
|
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
|
|
}
|
|
}
|
|
saveData := commonus.MapOut()
|
|
|
|
var parentId, dutyId int64
|
|
if requestData.ParentId != "" {
|
|
parentId, _ = strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
saveData["de_partid"] = parentId
|
|
bfIsTrue, bfInfo := GetBranchFactory(parentId)
|
|
if bfIsTrue == true {
|
|
saveData["de_group"] = bfInfo.Group
|
|
}
|
|
|
|
}
|
|
|
|
if requestData.DutyId != "" {
|
|
dutyId, _ = strconv.ParseInt(requestData.DutyId, 10, 64)
|
|
saveData["de_duty"] = dutyId
|
|
assIsTrue, assInfo := GetAssEssCont(dutyId)
|
|
if assIsTrue == true {
|
|
saveData["de_class"] = assInfo.PartId
|
|
saveData["de_assess"] = assInfo.Id
|
|
}
|
|
}
|
|
if requestData.Score > 0 {
|
|
var ScoreAll int64
|
|
var specDutyInfo assessmentmodel.DepartDuty
|
|
|
|
scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error
|
|
if scoreErr != nil {
|
|
ScoreAll = 0
|
|
}
|
|
if ScoreAll+requestData.Score > 1000 {
|
|
response.Result(107, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c)
|
|
return
|
|
}
|
|
saveData["de_rescore"] = requestData.Score
|
|
}
|
|
|
|
saveData["de_time"] = time.Now().Unix()
|
|
isTrue, isErr := eiteSpecificDutyInfoCont(requestData.Id, saveData)
|
|
if isTrue != true {
|
|
response.Result(104, isErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, saveData, "修改成功!", c)
|
|
|
|
}
|
|
|
|
// 获取部门具体考核项目
|
|
func (d *DutyHandle) GetSpecDutyCont(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 dutyOutInfo specificDutyOut
|
|
inFoErr := global.GVA_DB_Performanceappraisal.Where("`de_id` = ?", requestData.Id).First(&dutyOutInfo).Error
|
|
if inFoErr != nil {
|
|
response.Result(103, inFoErr, "数据查询失败!", c)
|
|
return
|
|
}
|
|
dutyOutInfo.OutId = strconv.FormatInt(dutyOutInfo.Id, 10)
|
|
//职责分类
|
|
dutyOutInfo.ClassIdStr = strconv.FormatInt(dutyOutInfo.ClassId, 10)
|
|
isTrue, classCont := GetDutyClassCont(dutyOutInfo.ClassId)
|
|
if isTrue == true {
|
|
dutyOutInfo.ClassTitle = classCont.Title
|
|
}
|
|
//职责项目
|
|
dutyOutInfo.AssEssIdStr = strconv.FormatInt(dutyOutInfo.AssessId, 10)
|
|
isTrueAssEss, assessCont := GetAssEssCont(dutyOutInfo.AssessId)
|
|
if isTrueAssEss == true {
|
|
dutyOutInfo.AssEssTitle = assessCont.Title
|
|
}
|
|
//具体职责
|
|
dutyOutInfo.DutyIdStr = strconv.FormatInt(dutyOutInfo.DutyId, 10)
|
|
isTrueDuty, dutyCont := GetDutyInfoCont(dutyOutInfo.DutyId)
|
|
if isTrueDuty == true {
|
|
dutyOutInfo.DutyTitle = dutyCont.Title
|
|
}
|
|
|
|
where := commonus.MapOut()
|
|
where["id"] = dutyOutInfo.Group
|
|
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
|
|
dutyOutInfo.GroupTitle = orgCont.Name
|
|
|
|
// isTrueGroup, groupCont := GetGroupCont(dutyOutInfo.Group)
|
|
// if isTrueGroup == true {
|
|
// dutyOutInfo.GroupTitle = groupCont.Name
|
|
// }
|
|
|
|
//具体职责
|
|
dutyOutInfo.ParentId = strconv.FormatInt(dutyOutInfo.PartId, 10)
|
|
isTrueBranFact, branFactCont := GetBranchFactory(dutyOutInfo.PartId)
|
|
if isTrueBranFact == true {
|
|
dutyOutInfo.ParentTitle = branFactCont.Name
|
|
}
|
|
|
|
response.Result(0, dutyOutInfo, "数据查询成功!", c)
|
|
}
|
|
|
|
// 获取集团信息
|
|
func GetGroupCont(id int64) (isTrue bool, ContInfo wechat.GroupForm) {
|
|
isTrue = false
|
|
err := global.GVA_DB_WatchDate.Where("g_id = ?", id).First(&ContInfo).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 获得分厂名称
|
|
func GetBranchFactory(id int64) (isTrue bool, ContInfo testpage.BranchFactory) {
|
|
isTrue = false
|
|
err := global.GVA_DB_Master.Where("bf_id = ?", id).First(&ContInfo).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
// 编辑具体内容
|
|
func (d *DutyHandle) EiteSpecFicDutyInfo(c *gin.Context) {
|
|
var requestData eiteSpecificDutyCont
|
|
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
|
|
}
|
|
}
|
|
saveData := commonus.MapOut()
|
|
|
|
var parentId, classId, assessId, dutyId int64
|
|
if requestData.ParentId != "" {
|
|
parentId, _ = strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
saveData["de_partid"] = parentId
|
|
}
|
|
if requestData.ClassId != "" {
|
|
classId, _ = strconv.ParseInt(requestData.ClassId, 10, 64)
|
|
saveData["de_class"] = classId
|
|
}
|
|
if requestData.AssEssId != "" {
|
|
assessId, _ = strconv.ParseInt(requestData.AssEssId, 10, 64)
|
|
saveData["de_assess"] = assessId
|
|
}
|
|
if requestData.DutyId != "" {
|
|
dutyId, _ = strconv.ParseInt(requestData.DutyId, 10, 64)
|
|
saveData["de_duty"] = dutyId
|
|
}
|
|
if requestData.Score > 0 {
|
|
var ScoreAll int64
|
|
var specDutyInfo assessmentmodel.DepartDuty
|
|
|
|
scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error
|
|
if scoreErr != nil {
|
|
ScoreAll = 0
|
|
}
|
|
if ScoreAll+requestData.Score > 1000 {
|
|
response.Result(107, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c)
|
|
return
|
|
}
|
|
saveData["de_rescore"] = requestData.Score
|
|
}
|
|
|
|
if requestData.Group != 0 {
|
|
saveData["de_group"] = requestData.Group
|
|
}
|
|
|
|
saveData["de_time"] = time.Now().Unix()
|
|
isTrue, isErr := eiteSpecificDutyInfoCont(requestData.Id, saveData)
|
|
if isTrue != true {
|
|
response.Result(104, isErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, saveData, "修改成功!", c)
|
|
|
|
}
|
|
|
|
// 编辑具体职责内容
|
|
func eiteSpecificDutyInfoCont(saveId int64, saveData map[string]interface{}) (isTrue bool, dutyClassInfoErr error) {
|
|
var modelInfo assessmentmodel.DepartDuty
|
|
isTrue = false
|
|
dutyClassInfoErr = global.GVA_DB_Performanceappraisal.Model(&modelInfo).Where("de_id = ?", saveId).Updates(saveData).Error
|
|
if dutyClassInfoErr != nil {
|
|
return
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
// 修改考核项目的状态
|
|
func (d *DutyHandle) EiteSpecficDutyState(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
|
|
}
|
|
saveData := commonus.MapOut()
|
|
saveData["de_satte"] = requestData.State
|
|
saveData["de_time"] = time.Now().Unix()
|
|
var eiteAssEssStateInfo assessmentmodel.DepartDuty
|
|
if requestData.IsDel != 1 {
|
|
isTrue, dutyErr := eiteSpecificDutyInfoCont(requestData.Id, saveData)
|
|
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("de_id = ?", requestData.Id).Delete(&eiteAssEssStateInfo).Error
|
|
if archiveInfoErr != nil {
|
|
response.Result(104, requestData, "删除失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "删除成功!", c)
|
|
} else {
|
|
isTrue, saveErr := eiteSpecificDutyInfoCont(requestData.Id, saveData)
|
|
if isTrue != true {
|
|
response.Result(105, saveErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "修改成功!", c)
|
|
}
|
|
}
|
|
}
|
|
|