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.
1613 lines
54 KiB
1613 lines
54 KiB
package departmentpc
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"key_performance_indicators/models/modelshr"
|
|
"key_performance_indicators/models/modelskpi"
|
|
"key_performance_indicators/overall"
|
|
"key_performance_indicators/overall/publicmethod"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
//部门级考核方案
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-14 13:58:18
|
|
@ 功能: 部门考核方案列表
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) DepartmentProgramme(c *gin.Context) {
|
|
var receivedValue DepartPrograList
|
|
c.ShouldBindJSON(&receivedValue)
|
|
gormDb := overall.CONSTANT_DB_KPI.Where("`state` BETWEEN ? AND ?", 1, 2)
|
|
if receivedValue.OrgId != "" {
|
|
orgIdInt, _ := strconv.ParseInt(receivedValue.OrgId, 10, 64)
|
|
orgAllSunId := publicmethod.GetDepartmentSun(orgIdInt, []int64{})
|
|
orgAllSunId = append(orgAllSunId, orgIdInt)
|
|
if len(orgAllSunId) > 0 {
|
|
gormDb = gormDb.Where("`department` IN ?", orgAllSunId)
|
|
}
|
|
}
|
|
if receivedValue.Year != "" {
|
|
gormDb = gormDb.Where("`yeares` = ?", receivedValue.Year)
|
|
}
|
|
if receivedValue.Version != "" {
|
|
gormDb = gormDb.Where("`key` LIKE ?", "%"+receivedValue.Version+"%")
|
|
}
|
|
var planVersionList []modelskpi.PlanVersio
|
|
err := gormDb.Order("`group` ASC").Order("`department` ASC").Order("`state` ASC").Order("`addtime` DESC").Find(&planVersionList).Error
|
|
if err != nil {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var sendList []SendDepartPrograList
|
|
for _, v := range planVersionList {
|
|
var sendCont SendDepartPrograList
|
|
sendCont.Id = v.Id //
|
|
sendCont.Group = v.Group //集团ID"`
|
|
sendCont.Department = v.Department //部门ID"`
|
|
sendCont.Year = v.Year //年度"`
|
|
sendCont.Versio = v.Versio //版本号"`
|
|
sendCont.Key = v.Key //编码"`
|
|
sendCont.State = v.State //状态(1:启用;2:禁用;3:删除)"`
|
|
if v.State == 1 {
|
|
sendCont.States = true
|
|
} else {
|
|
sendCont.States = false
|
|
}
|
|
sendCont.AddTime = v.AddTime //创建时间"`
|
|
sendCont.EiteTime = v.EiteTime //l修改时间"`
|
|
// sendCont.Content = v.Content //版本内容"`
|
|
json.Unmarshal([]byte(v.Content), &sendCont.VersionCont)
|
|
var companyCont modelshr.AdministrativeOrganization
|
|
companyCont.GetCont(map[string]interface{}{"`id`": v.Group}, "`name`")
|
|
sendCont.GroupName = companyCont.Name
|
|
var dempartCont modelshr.AdministrativeOrganization
|
|
dempartCont.GetCont(map[string]interface{}{"`id`": v.Department}, "`name`")
|
|
sendCont.DeaprtName = dempartCont.Name
|
|
sendCont.Time = publicmethod.UnixTimeToDay(v.AddTime, 11)
|
|
sendList = append(sendList, sendCont)
|
|
}
|
|
publicmethod.Result(0, sendList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-14 16:38:02
|
|
@ 功能: 编辑部门方案状态
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) EditDepartPrograState(c *gin.Context) {
|
|
var receivedValue publicmethod.PublicState
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(101, receivedValue, c)
|
|
return
|
|
}
|
|
if receivedValue.State == 0 {
|
|
receivedValue.State = 2
|
|
}
|
|
if receivedValue.IsTrue == 0 {
|
|
receivedValue.IsTrue = 2
|
|
}
|
|
//判断该方案是否存在
|
|
var planVersionCont modelskpi.PlanVersio
|
|
err = planVersionCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id})
|
|
if err != nil {
|
|
publicmethod.Result(107, receivedValue, c)
|
|
return
|
|
}
|
|
//判断是否可执行操作
|
|
// if editDepartStateIsTrue(planVersionCont, receivedValue.State) {
|
|
// msg := "要操作的方案还有未走完的审批流程!请不要进行此操作!"
|
|
// if receivedValue.State == 1 {
|
|
// msg = "当前激活的方案中还有未走完的审批流程!请不要进行此操作!"
|
|
// }
|
|
// publicmethod.Result(1, receivedValue, c, msg)
|
|
// return
|
|
// }
|
|
//根据操作不同执行相应函数
|
|
editState := publicmethod.MapOut[string]()
|
|
editState["`state`"] = 2
|
|
editState["`eitetime`"] = time.Now().Unix()
|
|
switch receivedValue.State {
|
|
case 1:
|
|
//执行启用操作
|
|
//1、获取已经启用的方案西信息
|
|
var planIsRun modelskpi.PlanVersio
|
|
err = planIsRun.GetCont(map[string]interface{}{"`group`": planVersionCont.Group, "`department`": planVersionCont.Department, "`state`": 1}, "`id`", "`key`")
|
|
if err == nil {
|
|
planIsRun.EiteCont(map[string]interface{}{"`id`": planIsRun.Id}, editState)
|
|
var qualEval modelskpi.QualitativeEvaluation
|
|
qualEval.EiteCont(map[string]interface{}{"`qe_qual_eval_id`": planIsRun.Key}, map[string]interface{}{"`qe_state`": 2, "`qe_eitetime`": time.Now().Unix()})
|
|
}
|
|
err = planVersionCont.EiteCont(map[string]interface{}{"`id`": planVersionCont.Id}, map[string]interface{}{"`state`": 1, "`eitetime`": time.Now().Unix()})
|
|
var qualEvalMain modelskpi.QualitativeEvaluation
|
|
qualEvalMain.EiteCont(map[string]interface{}{"`qe_qual_eval_id`": planVersionCont.Key}, map[string]interface{}{"`qe_state`": 1, "`qe_eitetime`": time.Now().Unix()})
|
|
case 3:
|
|
if receivedValue.IsTrue == 1 {
|
|
var qualEval modelskpi.QualitativeEvaluation
|
|
qualEval.DelCont(map[string]interface{}{"`qe_qual_eval_id`": planVersionCont.Key})
|
|
err = planVersionCont.DelCont(map[string]interface{}{"`id`": planVersionCont.Id})
|
|
} else {
|
|
var qualEval modelskpi.QualitativeEvaluation
|
|
qualEval.EiteCont(map[string]interface{}{"`qe_qual_eval_id`": planVersionCont.Key}, map[string]interface{}{"`qe_state`": 3, "`qe_eitetime`": time.Now().Unix()})
|
|
err = planVersionCont.EiteCont(map[string]interface{}{"`id`": planVersionCont.Id}, map[string]interface{}{"`state`": 3, "`eitetime`": time.Now().Unix()})
|
|
}
|
|
default:
|
|
var qualEval modelskpi.QualitativeEvaluation
|
|
qualEval.EiteCont(map[string]interface{}{"`qe_qual_eval_id`": planVersionCont.Key}, map[string]interface{}{"`qe_state`": 2, "`qe_eitetime`": time.Now().Unix()})
|
|
err = planVersionCont.EiteCont(map[string]interface{}{"`id`": planVersionCont.Id}, editState)
|
|
}
|
|
if err != nil {
|
|
publicmethod.Result(106, err, c)
|
|
return
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-14 16:48:55
|
|
@ 功能: 判断是否可执行部门方案状态更改操作
|
|
@ 参数
|
|
|
|
#planVersionCont 要操作的方案主体
|
|
#state 状态1:启用;2:禁用;3:删除
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func editDepartStateIsTrue(planVersionCont modelskpi.PlanVersio, state int) (isTrue bool) {
|
|
isTrue = false
|
|
//判断是否启用
|
|
if state == 1 {
|
|
//1、判断同部门是否有已经启用的方案
|
|
var planRuning modelskpi.PlanVersio
|
|
err := planRuning.GetCont(map[string]interface{}{"`group`": planVersionCont.Group, "`department`": planVersionCont.Department, "`state`": 1}, "`id`", "`key`")
|
|
if err != nil {
|
|
return
|
|
}
|
|
isTrue = SearchPlanVersion(planRuning.Key)
|
|
} else {
|
|
//执行非启用状态,判断该方案主体是否有政治执行的操作
|
|
isTrue = SearchPlanVersion(planVersionCont.Key)
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-14 16:54:44
|
|
@ 功能: 查询方案正在执行的操作
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#isTrue true:存在正在执行的操作;false:不存在正在执行的操作
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func SearchPlanVersion(key string) (isTrue bool) {
|
|
isTrue = false
|
|
//获取本方案中的所有内容
|
|
var planContList []modelskpi.QualitativeEvaluation
|
|
err := overall.CONSTANT_DB_KPI.Model(&modelskpi.QualitativeEvaluation{}).Select("qe_id,qe_type").Where("`qe_state` = 1 AND `qe_qual_eval_id` = ?", key).Find(&planContList).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
//分别获取定性和定量的项目Id列表
|
|
var dingXing []int64
|
|
var dingLiang []int64
|
|
for _, v := range planContList {
|
|
if v.Type == 1 {
|
|
if publicmethod.IsInTrue[int64](v.Id, dingXing) == false {
|
|
dingXing = append(dingXing, v.Id)
|
|
}
|
|
} else {
|
|
if publicmethod.IsInTrue[int64](v.Id, dingLiang) == false {
|
|
dingLiang = append(dingLiang, v.Id)
|
|
}
|
|
}
|
|
}
|
|
var syncListCont judgePlanTask
|
|
SyncSeting.Add(1)
|
|
go syncListCont.SearchDingXingPlan(dingXing)
|
|
SyncSeting.Add(1)
|
|
go syncListCont.SearchDingLiangPlan(dingLiang)
|
|
SyncSeting.Wait()
|
|
|
|
readDingXingMap, readDingLiangMap := syncListCont.readPlanTaskData()
|
|
if len(readDingXingMap) > 0 || len(readDingLiangMap) > 0 {
|
|
isTrue = true
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-14 17:24:37
|
|
@ 功能: 判断方案中是否有正在执行的定性考核项
|
|
@ 参数
|
|
|
|
#id 方案中定性考核项
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#(j *judgePlanTask) SearchDingXingPlan(id []int64)
|
|
*/
|
|
func (j *judgePlanTask) SearchDingXingPlan(id []int64) {
|
|
j.mutext.Lock()
|
|
defer j.mutext.Unlock()
|
|
if len(id) > 0 {
|
|
//获取该方案在执行中的数据
|
|
var dingXingTask []bingFaOut
|
|
err := overall.CONSTANT_DB_KPI.Model(&modelskpi.ScoreFlow{}).Select("sf_id,sf_key,sf_evaluation_plan,ep_order_key,ep_state").Joins("left join evaluation_process on ep_order_key = sf_key").Where("`sf_evaluation_plan` IN ? AND ep_state IN (1,2)", id).Find(&dingXingTask).Error
|
|
if err == nil {
|
|
for _, v := range dingXingTask {
|
|
isIn := publicmethod.MapOut[string]()
|
|
isIn["id"] = v.Id
|
|
isIn["key"] = v.Key
|
|
isIn["state"] = v.State
|
|
j.dingXingTask = append(j.dingXingTask, isIn)
|
|
}
|
|
}
|
|
}
|
|
SyncSeting.Done()
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-15 08:34:42
|
|
@ 功能: 判断方案中是否有正在执行的定量考核项
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (j *judgePlanTask) SearchDingLiangPlan(id []int64) {
|
|
j.mutext.Lock()
|
|
defer j.mutext.Unlock()
|
|
if len(id) > 0 {
|
|
//获取该方案在执行中的数据
|
|
var stateIsTrue []bingFaOutDingLiang
|
|
err := overall.CONSTANT_DB_KPI.Model(&modelskpi.FlowLog{}).Select("fl_id,fl_key,fl_evaluation_id,fl_reply,ep_order_key,ep_state").Where("`fl_key` IN ? AND ep_state IN (1,2)", id).Joins("left join evaluation_process on ep_order_key = fl_key").Find(&stateIsTrue).Error
|
|
if err == nil {
|
|
for _, v := range stateIsTrue {
|
|
isIn := publicmethod.MapOut[string]()
|
|
isIn["id"] = v.Id
|
|
isIn["key"] = v.Key
|
|
isIn["state"] = v.State
|
|
j.dingLiangTask = append(j.dingLiangTask, isIn)
|
|
}
|
|
}
|
|
}
|
|
SyncSeting.Done()
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-15 10:49:36
|
|
@ 功能: 添加方案
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) CreateSchemeForDeparment(c *gin.Context) {
|
|
var receivedValue AddDutyNewContGroup
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
// if receivedValue.Group == "" {
|
|
// publicmethod.Result(101, receivedValue, c)
|
|
// return
|
|
// }
|
|
if receivedValue.DepartmentId == "" {
|
|
publicmethod.Result(101, receivedValue, c)
|
|
return
|
|
}
|
|
if receivedValue.Year == "" {
|
|
publicmethod.Result(1, receivedValue, c, "请选择年份")
|
|
return
|
|
}
|
|
if len(receivedValue.Child) < 1 {
|
|
publicmethod.Result(1, receivedValue, c, "没有要添加的数据")
|
|
return
|
|
}
|
|
departId, _ := strconv.ParseInt(receivedValue.DepartmentId, 10, 64) //部门ID
|
|
yearInt, _ := strconv.ParseInt(receivedValue.Year, 10, 64) //年
|
|
|
|
//获取编号首字母
|
|
_, groupId, _, _, _ := publicmethod.GetOrgStructurees(departId)
|
|
// groupId, groupErr := strconv.ParseInt(receivedValue.Group, 10, 64) //集团ID
|
|
// if groupErr != nil {
|
|
// groupId = 0
|
|
// }
|
|
var groupCont modelshr.AdministrativeOrganization
|
|
groupCont.GetCont(map[string]interface{}{"`id`": groupId}, "`id`", "`name`", "`abbreviation`")
|
|
nameCont := groupCont.Abbreviation
|
|
if nameCont == "" {
|
|
nameCont = groupCont.Name
|
|
}
|
|
companyFirstWord := publicmethod.ChineseFirstWordCapitalize(nameCont) //公司首字母
|
|
//判断当前部门是否已经有正启用得方案
|
|
judgeState := 1
|
|
var judgePlanState modelskpi.PlanVersio
|
|
err = judgePlanState.GetCont(map[string]interface{}{"`state`": 1, "`group`": groupId, "`department`": departId}, "`id`")
|
|
if err == nil {
|
|
judgeState = 2
|
|
}
|
|
//判断年度是否存在版本
|
|
var versioNum string //版本号
|
|
var sumVerson float64 //已经存在得方案数量
|
|
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.PlanVersio{}).Select("`id`").Where("`group` = ? AND `yeares` = ?", groupId, yearInt).Pluck("COALESCE(COUNT(id), 0) as countid", &sumVerson).Error
|
|
if err != nil {
|
|
versioNum = "0001"
|
|
} else {
|
|
if sumVerson == 0 {
|
|
versioNum = "0001"
|
|
} else {
|
|
versioNum = fmt.Sprintf("%04v", sumVerson)
|
|
}
|
|
}
|
|
//统一编辑时间
|
|
todyTime := time.Now().Unix()
|
|
//方案编号
|
|
keyStr := fmt.Sprintf("%v%v%v", companyFirstWord, publicmethod.UnixTimeToDay(todyTime, 20), versioNum)
|
|
|
|
//合成方案主数据
|
|
var savePlanVersionCont modelskpi.PlanVersio
|
|
savePlanVersionCont.Group = groupId
|
|
savePlanVersionCont.Department = departId
|
|
savePlanVersionCont.Year = yearInt
|
|
savePlanVersionCont.Versio = versioNum
|
|
savePlanVersionCont.Key = keyStr
|
|
savePlanVersionCont.State = judgeState
|
|
savePlanVersionCont.AddTime = todyTime
|
|
savePlanVersionCont.EiteTime = todyTime
|
|
//组装方案结构体,转换json数据
|
|
if len(receivedValue.Child) > 0 {
|
|
var planListCont []AddDutyNewCont
|
|
for _, v := range receivedValue.Child {
|
|
var planCont AddDutyNewCont
|
|
//第一层;纬度操作
|
|
planCont.Id = v.Id
|
|
planCont.Name = v.Name
|
|
planCont.ZhiFraction = v.ZhiFraction
|
|
for _, cv := range v.Child {
|
|
//第二层;指标操作
|
|
var targetCont EvaluPross
|
|
targetCont.Id = cv.Id //指标ID
|
|
targetCont.Name = cv.Name //指标名称
|
|
targetCont.Content = cv.Content //指标说明
|
|
targetCont.Unit = cv.Unit //单位"`
|
|
targetCont.ReferenceScore = cv.ReferenceScore //标准分值"`
|
|
targetCont.State = cv.State // `json:"state"`
|
|
targetCont.Status = cv.Status // 1:使用;2:禁用;3:观察
|
|
targetCont.Score = cv.Score // `json:"state"`
|
|
targetCont.QualEvalId = cv.QualEvalId // `json:"state"`
|
|
//获取指标统计属性
|
|
var getTarCont modelskpi.EvaluationTarget
|
|
err = getTarCont.GetCont(map[string]interface{}{"et_id": cv.Id}, "et_cycle,et_cycleattr")
|
|
if err == nil {
|
|
targetCont.Cycles = getTarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
|
targetCont.CycleAttres = getTarCont.CycleAttres //辅助计数"`
|
|
}
|
|
planCont.Child = append(planCont.Child, targetCont)
|
|
}
|
|
planListCont = append(planListCont, planCont)
|
|
}
|
|
planJsonCont, planJsonErr := json.Marshal(planListCont)
|
|
if planJsonErr == nil {
|
|
savePlanVersionCont.Content = string(planJsonCont)
|
|
}
|
|
}
|
|
|
|
//往考核方案中写入考核数据
|
|
var qualEvalList []modelskpi.QualitativeEvaluation
|
|
//解析方案结构体
|
|
for _, v := range receivedValue.Child {
|
|
// dimensionIdInt, _ := strconv.ParseInt(v.Id, 10, 64)
|
|
//维度操作
|
|
AddWeight(receivedValue.Group, v.Id, receivedValue.DepartmentId, "", int64(v.ZhiFraction), 1) //添加维度权重
|
|
for _, cv := range v.Child {
|
|
//指标操作
|
|
if cv.Status != 2 { //操作非禁用得指标
|
|
//获取指标定义
|
|
var targetInfo modelskpi.EvaluationTarget
|
|
err := targetInfo.GetCont(map[string]interface{}{"`et_id`": cv.Id})
|
|
if err == nil { //判断指标是否存在
|
|
//判断指标是定性还是定量
|
|
if targetInfo.Type == 2 {
|
|
//定量指标
|
|
AddWeight(receivedValue.Group, v.Id, receivedValue.DepartmentId, cv.Id, cv.ReferenceScore, 2)
|
|
var qualEvalContXing modelskpi.QualitativeEvaluation
|
|
qualEvalContXing.Dimension, _ = strconv.ParseInt(v.Id, 10, 64)
|
|
qualEvalContXing.Target, _ = strconv.ParseInt(cv.Id, 10, 64) //指标
|
|
qualEvalContXing.Type = targetInfo.Type //类型
|
|
qualEvalContXing.Unit = targetInfo.Uniteing //单位
|
|
qualEvalContXing.ReferenceScore = cv.ReferenceScore //分值
|
|
qualEvalContXing.State = judgeState //状态
|
|
qualEvalContXing.Addtime = time.Now().Unix()
|
|
qualEvalContXing.Eitetime = time.Now().Unix()
|
|
qualEvalContXing.Group = groupId //集团
|
|
qualEvalContXing.Cycles = targetInfo.Cycles //单位
|
|
qualEvalContXing.CycleAttres = targetInfo.CycleAttres //辅助计数
|
|
qualEvalContXing.AcceptEvaluation = departId //接受考核部门
|
|
qualEvalContXing.Content = cv.Content //描述
|
|
qualEvalContXing.Operator = targetInfo.Report //执行考核人
|
|
qualEvalContXing.QualEvalId = keyStr
|
|
qualEvalContXing.Observer = cv.Status
|
|
var departAry []string
|
|
userKeyAry := strings.Split(targetInfo.Report, ",")
|
|
if len(userKeyAry) > 0 {
|
|
for _, u_v := range userKeyAry {
|
|
var userCont modelshr.PersonArchives
|
|
err = userCont.GetCont(map[string]interface{}{"`key`": u_v}, "`maindeparment`")
|
|
mainDepartStr := strconv.FormatInt(userCont.MainDeparment, 10)
|
|
if publicmethod.IsInTrue[string](mainDepartStr, departAry) == false {
|
|
departAry = append(departAry, mainDepartStr)
|
|
}
|
|
}
|
|
}
|
|
qualEvalContXing.DepartmentId = strings.Join(departAry, ",") //处理关联部门
|
|
|
|
qualEvalList = append(qualEvalList, qualEvalContXing)
|
|
} else {
|
|
//定性指标
|
|
AddWeight(receivedValue.Group, v.Id, receivedValue.DepartmentId, cv.Id, cv.ReferenceScore, 1)
|
|
|
|
//获取关联的细则Id
|
|
tarIdIntSet, _ := strconv.ParseInt(cv.Id, 10, 64)
|
|
targetIdAry, err := GetTargetDetailsInfoList(tarIdIntSet, 0, 0, departId, 0, 3, 1)
|
|
var targetDetailsList []modelskpi.DetailedTarget
|
|
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.DetailedTarget{}).Where("`dt_state` = 1 AND `dt_id` IN ? ", targetIdAry).Find(&targetDetailsList).Error
|
|
var detailedList []DutyAssEssTarget
|
|
//写入指标细则
|
|
if err == nil {
|
|
for _, tv := range targetDetailsList { //指标细则
|
|
|
|
//写入新的定性考核细则
|
|
var saveData modelskpi.QualitativeEvaluation
|
|
saveData.Dimension = targetInfo.Dimension //纬度
|
|
saveData.Target = targetInfo.Id //指标
|
|
saveData.Type = 1 //类型
|
|
saveData.TargetSun = tv.ParentIdSun //子栏目
|
|
saveData.DetailedTarget = tv.Id //指标细则
|
|
if tv.Company != "" {
|
|
saveData.Unit = tv.Company
|
|
} else {
|
|
saveData.Unit = targetInfo.Uniteing
|
|
}
|
|
saveData.ReferenceScore = 0 //分值
|
|
saveData.MinScore = tv.MinScore //最低分
|
|
saveData.MaxScore = tv.MaxScore //最高分
|
|
|
|
saveData.CensorType = tv.CensorType //检查方式
|
|
saveData.CensorCont = tv.CensorCont //检查依据
|
|
saveData.CensorRate = tv.CensorRate //检查频次
|
|
saveData.State = judgeState //状态
|
|
saveData.Addtime = time.Now().Unix()
|
|
saveData.Eitetime = time.Now().Unix()
|
|
saveData.Group = groupId //集团
|
|
|
|
if tv.Cycles > 0 {
|
|
saveData.Cycles = tv.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年
|
|
saveData.CycleAttres = tv.CycleAttres //辅助计数
|
|
} else {
|
|
saveData.Cycles = targetInfo.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年
|
|
saveData.CycleAttres = targetInfo.CycleAttres //辅助计数
|
|
}
|
|
saveData.AcceptEvaluation = departId //接受考核部门
|
|
saveData.Content = tv.Content //描述
|
|
reportStr := tv.Reportary
|
|
if tv.Reportary != "" {
|
|
saveData.Operator = tv.Reportary //执行考核人
|
|
} else {
|
|
if len(detailedList) > 0 {
|
|
for _, dev := range detailedList {
|
|
if dev.Id == tv.Id {
|
|
saveData.Operator = strings.Join(dev.Operator, ",") //执行考核人 //执行考核人
|
|
reportStr = strings.Join(dev.Operator, ",")
|
|
saveData.DepartmentId = strings.Join(dev.Department, ",")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var departAry []string
|
|
userKeyAry := strings.Split(reportStr, ",")
|
|
if len(userKeyAry) > 0 {
|
|
for _, u_v := range userKeyAry {
|
|
var userCont modelshr.PersonArchives
|
|
err = userCont.GetCont(map[string]interface{}{"`key`": u_v}, "`maindeparment`")
|
|
mainDepartStr := strconv.FormatInt(userCont.MainDeparment, 10)
|
|
if publicmethod.IsInTrue[string](mainDepartStr, departAry) == false {
|
|
departAry = append(departAry, mainDepartStr)
|
|
}
|
|
}
|
|
}
|
|
saveData.DepartmentId = strings.Join(departAry, ",") //处理关联部门
|
|
saveData.QualEvalId = keyStr
|
|
saveData.Observer = cv.Status
|
|
qualEvalList = append(qualEvalList, saveData)
|
|
}
|
|
}
|
|
|
|
//获取定性指标得关联关系
|
|
// var assessList []modelskpi.Assesstarget
|
|
// err = overall.CONSTANT_DB_KPI.Model(&modelskpi.Assesstarget{}).Where("`state` = 1 AND `group` = ? AND `dimension` = ? AND `targetid` = ? AND FIND_IN_SET(?,`departmentmap`)", groupId, v.Id, cv.Id, departId).Find(&assessList).Error
|
|
// if err == nil {
|
|
// var sunTarget []int64
|
|
// for _, sv := range assessList { //遍历与此部门相关得子栏目
|
|
// if publicmethod.IsInTrue[int64](sv.Id, sunTarget) == false { //次子栏目未操作过
|
|
// //拆解指标详情
|
|
// var detailedList []DutyAssEssTarget
|
|
// json.Unmarshal([]byte(sv.Content), &detailedList)
|
|
|
|
// sunTarget = append(sunTarget, sv.Id)
|
|
// //获取指标细则列表
|
|
// var targetDetailsList []modelskpi.DetailedTarget
|
|
// err = overall.CONSTANT_DB_KPI.Model(&modelskpi.DetailedTarget{}).Where("`dt_state` = 1 AND `dt_parentid` = ? AND `dt_parentid_sun` = ? AND (FIND_IN_SET(?,`dt_paretment`) OR `dt_paretment` = '')", cv.Id, sv.SunTargetId, departId).Find(&targetDetailsList).Error
|
|
// fmt.Printf("获取指标细则列表-------->%v-------->%v-------->%v-------->%v\n", cv.Id, sv.Id, departId, len(targetDetailsList))
|
|
// if err == nil {
|
|
// for _, tv := range targetDetailsList { //指标细则
|
|
|
|
// //写入新的定性考核细则
|
|
// var saveData modelskpi.QualitativeEvaluation
|
|
// saveData.Dimension = sv.Dimension //纬度
|
|
// saveData.Target = targetInfo.Id //指标
|
|
// saveData.Type = 1 //类型
|
|
// saveData.TargetSun = sv.SunTargetId //子栏目
|
|
// saveData.DetailedTarget = tv.Id //指标细则
|
|
// if tv.Company != "" {
|
|
// saveData.Unit = tv.Company
|
|
// } else {
|
|
// saveData.Unit = targetInfo.Uniteing
|
|
// }
|
|
// saveData.ReferenceScore = 0 //分值
|
|
// saveData.MinScore = tv.MinScore //最低分
|
|
// saveData.MaxScore = tv.MaxScore //最高分
|
|
|
|
// saveData.CensorType = tv.CensorType //检查方式
|
|
// saveData.CensorCont = tv.CensorCont //检查依据
|
|
// saveData.CensorRate = tv.CensorRate //检查频次
|
|
// saveData.State = judgeState //状态
|
|
// saveData.Addtime = time.Now().Unix()
|
|
// saveData.Eitetime = time.Now().Unix()
|
|
// saveData.Group = groupId //集团
|
|
|
|
// if tv.Cycles > 0 {
|
|
// saveData.Cycles = tv.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年
|
|
// saveData.CycleAttres = tv.CycleAttres //辅助计数
|
|
// } else {
|
|
// saveData.Cycles = targetInfo.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年
|
|
// saveData.CycleAttres = targetInfo.CycleAttres //辅助计数
|
|
// }
|
|
// saveData.AcceptEvaluation = departId //接受考核部门
|
|
// saveData.Content = tv.Content //描述
|
|
// reportStr := tv.Reportary
|
|
// if tv.Reportary != "" {
|
|
// saveData.Operator = tv.Reportary //执行考核人
|
|
// } else {
|
|
// if len(detailedList) > 0 {
|
|
// for _, dev := range detailedList {
|
|
// if dev.Id == tv.Id {
|
|
// saveData.Operator = strings.Join(dev.Operator, ",") //执行考核人 //执行考核人
|
|
// reportStr = strings.Join(dev.Operator, ",")
|
|
// saveData.DepartmentId = strings.Join(dev.Department, ",")
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// var departAry []string
|
|
// userKeyAry := strings.Split(reportStr, ",")
|
|
// if len(userKeyAry) > 0 {
|
|
// for _, u_v := range userKeyAry {
|
|
// var userCont modelshr.PersonArchives
|
|
// err = userCont.GetCont(map[string]interface{}{"`key`": u_v}, "`maindeparment`")
|
|
// mainDepartStr := strconv.FormatInt(userCont.MainDeparment, 10)
|
|
// if publicmethod.IsInTrue[string](mainDepartStr, departAry) == false {
|
|
// departAry = append(departAry, mainDepartStr)
|
|
// }
|
|
// }
|
|
// }
|
|
// saveData.DepartmentId = strings.Join(departAry, ",") //处理关联部门
|
|
// saveData.QualEvalId = keyStr
|
|
// saveData.Observer = cv.Status
|
|
// qualEvalList = append(qualEvalList, saveData)
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//判断是否有要写入得内容
|
|
if len(qualEvalList) > 0 {
|
|
affairDb := overall.CONSTANT_DB_KPI.Begin()
|
|
addSysAdminContErr := affairDb.Create(&savePlanVersionCont).Error
|
|
addSysAdminAttrContErr := affairDb.Create(&qualEvalList).Error
|
|
if addSysAdminContErr == nil && addSysAdminAttrContErr == nil {
|
|
affairDbErr := affairDb.Commit().Error
|
|
if affairDbErr == nil {
|
|
publicmethod.Result(0, affairDbErr, c, "数据写入成功!")
|
|
return
|
|
} else {
|
|
publicmethod.Result(108, affairDbErr, c, "数据写入失败!")
|
|
return
|
|
}
|
|
} else {
|
|
affairDbErr := affairDb.Rollback().Error
|
|
publicmethod.Result(109, affairDbErr, c, "数据写入失败!")
|
|
return
|
|
}
|
|
}
|
|
publicmethod.Result(1, qualEvalList, c, "数据写入失败!")
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2022-12-15 13:42:54
|
|
@ 功能: 写入权重操作
|
|
@ 参数
|
|
|
|
#group 集团
|
|
#dimension 维度
|
|
#derpatment 部门
|
|
#target 指标
|
|
#class 1:定性考核;2:定量考核
|
|
|
|
@ 返回值
|
|
|
|
#isTrue
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func AddWeight(group, dimension, derpatment, target string, score, class int64) (isTrue bool) {
|
|
isTrue = false
|
|
//判断指标是否为空
|
|
if target != "" {
|
|
var departSionWeightCont modelskpi.DepartmentDimensionWeight
|
|
err := departSionWeightCont.GetCont(map[string]interface{}{"`ddw_hierarchy`": 2, "`ddw_group`": group, "`ddw_derpatment`": derpatment, "`ddw_dimension`": dimension, "`ddw_target`": target, "`ddw_type`": class}, "`ddw_id`")
|
|
if err == nil {
|
|
//存在,进行更新
|
|
editCont := publicmethod.MapOut[string]()
|
|
editCont["ddw_time"] = time.Now().Unix()
|
|
editCont["ddw_weight"] = score
|
|
err = departSionWeightCont.EiteCont(map[string]interface{}{"`ddw_id`": departSionWeightCont.Id}, editCont)
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
} else {
|
|
//不存在,进行新增
|
|
var addCont modelskpi.DepartmentDimensionWeight
|
|
groupId, _ := strconv.ParseInt(group, 10, 64)
|
|
addCont.Group = groupId
|
|
derpatmentId, _ := strconv.ParseInt(derpatment, 10, 64)
|
|
addCont.DepartmentId = derpatmentId
|
|
dimensionId, _ := strconv.ParseInt(dimension, 10, 64)
|
|
addCont.Dimension = dimensionId
|
|
targetId, _ := strconv.ParseInt(target, 10, 64)
|
|
addCont.Target = targetId
|
|
addCont.Weight = score
|
|
addCont.Addtime = time.Now().Unix()
|
|
addCont.Type = class
|
|
addCont.Hierarchy = 2
|
|
err = overall.CONSTANT_DB_KPI.Create(&addCont).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
}
|
|
} else {
|
|
//写入纬度操作
|
|
var departSionWeightCont modelskpi.DepartmentDimensionWeight
|
|
err := departSionWeightCont.GetCont(map[string]interface{}{"`ddw_hierarchy`": 1, "`ddw_group`": group, "`ddw_derpatment`": derpatment, "`ddw_dimension`": dimension}, "`ddw_id`")
|
|
if err == nil {
|
|
//存在,进行更新
|
|
editCont := publicmethod.MapOut[string]()
|
|
editCont["ddw_time"] = time.Now().Unix()
|
|
editCont["ddw_weight"] = score
|
|
err = departSionWeightCont.EiteCont(map[string]interface{}{"`ddw_id`": departSionWeightCont.Id}, editCont)
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
} else {
|
|
//不存在,进行新增
|
|
var addCont modelskpi.DepartmentDimensionWeight
|
|
groupId, _ := strconv.ParseInt(group, 10, 64)
|
|
addCont.Group = groupId
|
|
derpatmentId, _ := strconv.ParseInt(derpatment, 10, 64)
|
|
addCont.DepartmentId = derpatmentId
|
|
dimensionId, _ := strconv.ParseInt(dimension, 10, 64)
|
|
addCont.Dimension = dimensionId
|
|
addCont.Target = 0
|
|
addCont.Weight = score
|
|
addCont.Addtime = time.Now().Unix()
|
|
addCont.Type = 1
|
|
addCont.Hierarchy = 1
|
|
err = overall.CONSTANT_DB_KPI.Create(&addCont).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-14 16:01:02
|
|
@ 功能: 查看部门考核方案详情
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) LookSchemeForDeparment(c *gin.Context) {
|
|
var receivedValue publicmethod.PublicId
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知方案编号!不可操作")
|
|
return
|
|
}
|
|
var schemeCont modelskpi.PlanVersio
|
|
err = schemeCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id})
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "未知方案编号!不可操作")
|
|
return
|
|
}
|
|
var planVersioInfo []AddDutyNewCont
|
|
jsonErr := json.Unmarshal([]byte(schemeCont.Content), &planVersioInfo)
|
|
if jsonErr != nil {
|
|
publicmethod.Result(1, err, c, "未知方案!不可操作")
|
|
return
|
|
}
|
|
var sendContList []SchemeCont
|
|
for _, dv := range planVersioInfo {
|
|
for _, v := range dv.Child {
|
|
if v.Status == 1 || v.Status == 3 {
|
|
var sendCont SchemeCont
|
|
sendCont.DimensionId = dv.Id //维度Id
|
|
sendCont.DimensionName = dv.Name //维度名称
|
|
sendCont.DimensionStandard = float64(dv.ZhiFraction) //维度标准
|
|
sendCont.TargetId = v.Id //指标Id
|
|
sendCont.TargetName = v.Name //指标名称
|
|
sendCont.TargetStandard = float64(v.ReferenceScore) //指标标准
|
|
sendCont.Content = v.Content //指标说明
|
|
sendCont.Unit = v.Unit //单位
|
|
var targetCont modelskpi.EvaluationTarget
|
|
targetCont.GetCont(map[string]interface{}{"et_id": v.Id}, "et_type")
|
|
sendCont.Attribute = targetCont.Type //指标性质 1:定量;2:定性
|
|
sendCont.State = v.Status //状态 1:使用;2:禁用;3:观察
|
|
sendCont.Cycle = v.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年;7:半年
|
|
sendCont.Frequency = v.CycleAttres //频率
|
|
sendCont.PlantVersion = schemeCont.Key
|
|
sendCont.OrgId = strconv.FormatInt(schemeCont.Department, 10)
|
|
sendContList = append(sendContList, sendCont)
|
|
}
|
|
}
|
|
}
|
|
publicmethod.Result(0, sendContList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-17 10:46:18
|
|
@ 功能: 获取部门考核指标关联得细则
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) LookSchemeBylaws(c *gin.Context) {
|
|
var receivedValue LookTargetToBylaws
|
|
c.ShouldBindJSON(&receivedValue)
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知指标!不可操作")
|
|
return
|
|
}
|
|
if receivedValue.OrgId == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知行政组织!不可操作")
|
|
return
|
|
}
|
|
if receivedValue.Type == 0 {
|
|
receivedValue.Type = 1
|
|
}
|
|
if receivedValue.Level == 2 {
|
|
if receivedValue.PosId == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知岗位!不可操作")
|
|
return
|
|
}
|
|
} else {
|
|
receivedValue.Level = 1
|
|
}
|
|
var detailedList []modelskpi.TargetDetailedRelationDepartment
|
|
gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDetailedRelationDepartment{}).Where("dt_state = 1 AND dt_parentid = ? AND tddepartment = ? AND tdtype = ? AND `level` = ?", receivedValue.Id, receivedValue.OrgId, receivedValue.Type, receivedValue.Level)
|
|
if receivedValue.Level == 2 && receivedValue.PosId != "" {
|
|
gormDb = gormDb.Where("postid = ?", receivedValue.PosId)
|
|
}
|
|
err := gormDb.Find(&detailedList).Error
|
|
if err != nil || len(detailedList) < 1 {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var sendList []SendTargetToBylaws
|
|
for _, v := range detailedList {
|
|
var sendCont SendTargetToBylaws
|
|
sendCont.TableId = v.ParentIdSun //
|
|
var tableCont modelskpi.QualitativeTarget
|
|
tableCont.GetCont(map[string]interface{}{"q_id": v.ParentIdSun}, "q_title")
|
|
sendCont.TableName = tableCont.Title //
|
|
sendCont.TargetId = strconv.FormatInt(v.Id, 10) //
|
|
sendCont.TargetName = v.Title //
|
|
maxVal := publicmethod.DecimalEs(float64(v.MaxScore)/100, 2) //最大分
|
|
minVal := publicmethod.DecimalEs(float64(v.MinScore)/100, 2) //最小分
|
|
if minVal != 0 && maxVal != 0 {
|
|
sendCont.Criterion = fmt.Sprintf("%v-%v", minVal, maxVal)
|
|
} else if minVal != 0 && maxVal == 0 {
|
|
sendCont.Criterion = fmt.Sprintf("%v", minVal)
|
|
} else if minVal == 0 && maxVal != 0 {
|
|
sendCont.Criterion = fmt.Sprintf("%v", maxVal)
|
|
} else {
|
|
sendCont.Criterion = ""
|
|
}
|
|
sendCont.MaxScore = maxVal
|
|
sendCont.MinScore = minVal //最小分
|
|
sendCont.Unit = v.Company //单位
|
|
sendCont.Content = v.Content //指标说明
|
|
sendList = append(sendList, sendCont)
|
|
}
|
|
//根据维度序号排序
|
|
sort.Slice(sendList, func(i, j int) bool {
|
|
return sendList[i].TableId < sendList[j].TableId
|
|
})
|
|
publicmethod.Result(0, sendList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-17 11:09:23
|
|
@ 功能: 查看执行人
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetRunManScheme(c *gin.Context) {
|
|
var receivedValue LookTargetToBylaws
|
|
c.ShouldBindJSON(&receivedValue)
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知指标!不可操作")
|
|
return
|
|
}
|
|
if receivedValue.OrgId == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知行政组织!不可操作")
|
|
return
|
|
}
|
|
if receivedValue.Type == 0 {
|
|
receivedValue.Type = 1
|
|
}
|
|
if receivedValue.Level == 2 {
|
|
if receivedValue.PosId == "" {
|
|
publicmethod.Result(1, receivedValue, c, "未知岗位!不可操作")
|
|
return
|
|
}
|
|
} else {
|
|
receivedValue.Level = 1
|
|
}
|
|
var userKey []int64
|
|
gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetReport{}).Distinct("man_key").Where("`state` = 1 AND `target_id` = ? AND `department_id` = ? AND `type` = ?", receivedValue.Id, receivedValue.OrgId, receivedValue.Type)
|
|
if receivedValue.Level == 2 && receivedValue.PosId != "" {
|
|
gormDb = gormDb.Where("`post_id` = ?", receivedValue.PosId)
|
|
}
|
|
err := gormDb.Find(&userKey).Error
|
|
if err != nil || len(userKey) < 1 {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var userListCont []modelshr.PersonArchives
|
|
err = overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`key`,`name`,`number`,`company`,`maindeparment`,`icon`,`icon_photo`").Where("`emp_type` BETWEEN 1 AND 10 AND `key` IN ?", userKey).Find(&userListCont).Error
|
|
if err != nil || len(userListCont) < 1 {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var userListInfo []RunManCont
|
|
for _, v := range userListCont {
|
|
var userInfo RunManCont
|
|
userInfo.Id = strconv.FormatInt(v.Key, 10)
|
|
userInfo.Name = v.Name
|
|
userInfo.Number = v.Number
|
|
var comCont modelshr.AdministrativeOrganization
|
|
comCont.GetCont(map[string]interface{}{"`id`": v.Company}, "`name`")
|
|
userInfo.Company = comCont.Name
|
|
var demperCont modelshr.AdministrativeOrganization
|
|
demperCont.GetCont(map[string]interface{}{"`id`": v.MainDeparment}, "`name`")
|
|
userInfo.Department = demperCont.Name
|
|
userInfo.Icon = v.Icon
|
|
userInfo.IconBase64 = v.IconPhoto
|
|
userListInfo = append(userListInfo, userInfo)
|
|
}
|
|
publicmethod.Result(0, userListInfo, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-17 16:03:16
|
|
@ 功能: 编辑方案指标内容
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) EditSchemeTargetCont(c *gin.Context) {
|
|
var receivedValue EditSchemeContTarget
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.PlanVersionKey == "" {
|
|
publicmethod.Result(1, err, c, "请输入版本号!")
|
|
return
|
|
}
|
|
if receivedValue.TargetId == "" {
|
|
publicmethod.Result(1, err, c, "请输入指标号!")
|
|
return
|
|
}
|
|
if receivedValue.OrgId == "" {
|
|
publicmethod.Result(1, err, c, "请输入行政组织!")
|
|
return
|
|
}
|
|
eiteData := publicmethod.MapOut[string]()
|
|
eiteData["qe_eitetime"] = time.Now().Unix()
|
|
eiteData["qe_content"] = receivedValue.Content
|
|
if receivedValue.State > 0 {
|
|
// eiteData["qe_state"] = requestData.State
|
|
eiteData["observer"] = receivedValue.State
|
|
} else {
|
|
eiteData["qe_state"] = 2
|
|
eiteData["observer"] = 2
|
|
}
|
|
if len(receivedValue.Operator) > 0 {
|
|
eiteData["qe_operator"] = strings.Join(receivedValue.Operator, ",")
|
|
}
|
|
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.QualitativeEvaluation{}).Where("`qe_state` = 1 AND `qe_qual_eval_id` = ? AND `qe_accept_evaluation` = ? AND `qe_target` = ?", receivedValue.PlanVersionKey, receivedValue.OrgId, receivedValue.TargetId).Updates(eiteData).Error
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "数据处理失败!")
|
|
return
|
|
} else {
|
|
if receivedValue.State != 0 {
|
|
eitePlanVersion(receivedValue.PlanVersionKey, receivedValue.TargetId, receivedValue.State, receivedValue.Content)
|
|
}
|
|
if len(receivedValue.Operator) > 0 {
|
|
eiteOperatorPlanVersion(receivedValue.OrgId, receivedValue.TargetId, receivedValue.Operator)
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
}
|
|
|
|
// 处理关联人
|
|
func eiteOperatorPlanVersion(orgId, targetId string, operator []string) {
|
|
overTime := time.Now().Unix()
|
|
delWher := publicmethod.MapOut[string]()
|
|
delWher["target_id"] = targetId
|
|
delWher["department_id"] = orgId
|
|
delWher["type"] = 1
|
|
var targetReportCont modelskpi.TargetReport
|
|
err := targetReportCont.DelCont(delWher)
|
|
if err == nil {
|
|
|
|
}
|
|
var tarReportContList []modelskpi.TargetReport
|
|
var targetDeparcContList []modelskpi.TargetDepartment
|
|
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Where("`level` = 1 AND `target_id` = ? AND `department_id` = ?", targetId, orgId).Find(&targetDeparcContList).Error
|
|
if err == nil {
|
|
for _, v := range targetDeparcContList {
|
|
dimensId := v.Dimension
|
|
if dimensId == 0 && v.TargetId != 0 {
|
|
var targetCont modelskpi.EvaluationTarget
|
|
targetCont.GetCont(map[string]interface{}{"et_id": v.TargetId}, "et_dimension")
|
|
dimensId = targetCont.Dimension
|
|
}
|
|
for _, opev := range operator {
|
|
var tarReportCont modelskpi.TargetReport
|
|
tarReportCont.Dimension = dimensId //维度"`
|
|
tarReportCont.TargetId = v.TargetId //指标ID"`
|
|
tarReportCont.TargetSunId = v.TargetSunId //子目标"`
|
|
tarReportCont.TargetBylaws = v.TargetBylaws //指标细则"`
|
|
tarReportCont.DepartmentId = v.DepartmentId //部门ID"`
|
|
tarReportCont.PostId = v.PostId //岗位ID"`
|
|
tarReportCont.Type = v.Level //类型(1:公司级;2:部门级)"`
|
|
tarReportCont.State = 1 //状态(1:启用;2:禁用;3:删除)"`
|
|
opevInt, _ := strconv.ParseInt(opev, 10, 64)
|
|
tarReportCont.ReportPerson = opevInt //上报人"`
|
|
if opev != "" {
|
|
var userCont modelshr.PersonArchives
|
|
userCont.GetCont(map[string]interface{}{"`key`": opev}, "maindeparment")
|
|
tarReportCont.ManDepartment = userCont.MainDeparment //提报人所在部门"`
|
|
}
|
|
tarReportCont.Time = overTime //写入时间"`
|
|
tarReportCont.Class = v.Class //1:定性考核;2:定量考核"`
|
|
tarReportCont.Level = v.Type //类型(1:指标;2:子目标;3:细则)"`
|
|
tarReportContList = append(tarReportContList, tarReportCont)
|
|
}
|
|
}
|
|
}
|
|
if len(tarReportContList) > 0 {
|
|
overall.CONSTANT_DB_KPI.Create(&tarReportContList)
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-17 16:42:39
|
|
@ 功能: 处理方案主体
|
|
@ 参数
|
|
|
|
#key 方案编号
|
|
#tarId 指标
|
|
#state 状态
|
|
#contStr 指标说明
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func eitePlanVersion(key string, tarId string, state int, contStr string) {
|
|
var planVersioCont modelskpi.PlanVersio
|
|
err := planVersioCont.GetCont(map[string]interface{}{"`key`": key})
|
|
var planContSave []AddDutyNewCont
|
|
// fmt.Printf("Plan--------1----------->%v\n", planErr)
|
|
if err == nil {
|
|
if planVersioCont.Content != "" {
|
|
// fmt.Printf("Plan--------2----------->%v\n", planVersioCont)
|
|
var planCont []AddDutyNewCont
|
|
jsonErrPlan := json.Unmarshal([]byte(planVersioCont.Content), &planCont)
|
|
// fmt.Printf("Plan--------3----------->%v\n", jsonErrPlan)
|
|
if jsonErrPlan == nil {
|
|
|
|
for _, v := range planCont {
|
|
var saveCont AddDutyNewCont
|
|
saveCont.Id = v.Id
|
|
saveCont.Name = v.Name
|
|
saveCont.ZhiFraction = v.ZhiFraction
|
|
for _, cv := range v.Child {
|
|
var chidCont EvaluPross
|
|
if cv.Id == tarId {
|
|
chidCont.Id = cv.Id
|
|
chidCont.Name = cv.Name // `json:"name"`
|
|
chidCont.Content = contStr // `json:"content"` //指标说明
|
|
chidCont.Unit = cv.Unit // `json:"unit"` //单位"`
|
|
chidCont.ReferenceScore = cv.ReferenceScore // `json:"referencescore"` //标准分值"`
|
|
chidCont.Cycles = cv.Cycles // `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
|
chidCont.CycleAttres = cv.CycleAttres // `json:"cycleattr"` //辅助计数"`
|
|
chidCont.State = state // `json:"state"`
|
|
chidCont.Score = cv.Score // `json:"score"` //分数
|
|
chidCont.QualEvalId = cv.QualEvalId // `json:"qeid"`
|
|
chidCont.Status = state // `json:"status"`
|
|
} else {
|
|
chidCont.Id = cv.Id
|
|
chidCont.Name = cv.Name // `json:"name"`
|
|
chidCont.Content = cv.Content // `json:"content"` //指标说明
|
|
chidCont.Unit = cv.Unit // `json:"unit"` //单位"`
|
|
chidCont.ReferenceScore = cv.ReferenceScore // `json:"referencescore"` //标准分值"`
|
|
chidCont.Cycles = cv.Cycles // `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
|
chidCont.CycleAttres = cv.CycleAttres // `json:"cycleattr"` //辅助计数"`
|
|
chidCont.State = cv.State // `json:"state"`
|
|
chidCont.Score = cv.Score // `json:"score"` //分数
|
|
chidCont.QualEvalId = cv.QualEvalId // `json:"qeid"`
|
|
chidCont.Status = cv.Status // `json:"status"`
|
|
|
|
}
|
|
saveCont.Child = append(saveCont.Child, chidCont)
|
|
}
|
|
planContSave = append(planContSave, saveCont)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
// fmt.Printf("Plan--------4----------->%v\n", len(planContSave))
|
|
if len(planContSave) > 0 {
|
|
planContInfo, planJsonErr := json.Marshal(planContSave)
|
|
if planJsonErr == nil {
|
|
eitaData := publicmethod.MapOut[string]()
|
|
eitaData["content"] = string(planContInfo)
|
|
eitaData["eitetime"] = time.Now().Unix()
|
|
overall.CONSTANT_DB_KPI.Model(&modelskpi.PlanVersio{}).Where("`key` = ?", key).Updates(eitaData)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 09:18:39
|
|
@ 功能: 删除考核方案指标
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) DelSchemeTargetCont(c *gin.Context) {
|
|
var receivedValue DelSchemeContTarget
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.PlanVersionKey == "" {
|
|
publicmethod.Result(1, err, c, "请输入版本号!")
|
|
return
|
|
}
|
|
if receivedValue.TargetId == "" {
|
|
publicmethod.Result(1, err, c, "请输入指标号!")
|
|
return
|
|
}
|
|
if receivedValue.OrgId == "" {
|
|
publicmethod.Result(1, err, c, "请输入行政组织!")
|
|
return
|
|
}
|
|
eiteData := publicmethod.MapOut[string]()
|
|
eiteData["qe_eitetime"] = time.Now().Unix()
|
|
eiteData["qe_state"] = 3
|
|
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.QualitativeEvaluation{}).Where("`qe_state` = 1 AND `qe_qual_eval_id` = ? AND `qe_accept_evaluation` = ? AND `qe_target` = ?", receivedValue.PlanVersionKey, receivedValue.OrgId, receivedValue.TargetId).Updates(eiteData).Error
|
|
if err != nil {
|
|
publicmethod.Result(1, err, c, "数据处理失败!")
|
|
return
|
|
} else {
|
|
delPlanVersion(receivedValue.PlanVersionKey, receivedValue.TargetId)
|
|
delOperatorPlanVersion(receivedValue.OrgId, receivedValue.TargetId)
|
|
}
|
|
}
|
|
|
|
/**
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 09:27:02
|
|
@ 功能: 软删除关联人
|
|
@ 参数
|
|
#
|
|
@ 返回值
|
|
#
|
|
@ 方法原型
|
|
#
|
|
*/
|
|
// 处理关联人
|
|
func delOperatorPlanVersion(orgId, targetId string) {
|
|
delWher := publicmethod.MapOut[string]()
|
|
delWher["target_id"] = targetId
|
|
delWher["department_id"] = orgId
|
|
delWher["type"] = 1
|
|
var targetReportCont modelskpi.TargetReport
|
|
targetReportCont.DelCont(delWher)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 09:24:21
|
|
@ 功能: 删除方案指标
|
|
@ 参数
|
|
|
|
#key 方案编号
|
|
#tarId 指标
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func delPlanVersion(key string, tarId string) {
|
|
var planVersioCont modelskpi.PlanVersio
|
|
err := planVersioCont.GetCont(map[string]interface{}{"`key`": key})
|
|
var planContSave []AddDutyNewCont
|
|
// fmt.Printf("Plan--------1----------->%v\n", planErr)
|
|
if err == nil {
|
|
if planVersioCont.Content != "" {
|
|
// fmt.Printf("Plan--------2----------->%v\n", planVersioCont)
|
|
var planCont []AddDutyNewCont
|
|
jsonErrPlan := json.Unmarshal([]byte(planVersioCont.Content), &planCont)
|
|
// fmt.Printf("Plan--------3----------->%v\n", jsonErrPlan)
|
|
if jsonErrPlan == nil {
|
|
|
|
for _, v := range planCont {
|
|
var saveCont AddDutyNewCont
|
|
saveCont.Id = v.Id
|
|
saveCont.Name = v.Name
|
|
saveCont.ZhiFraction = v.ZhiFraction
|
|
for _, cv := range v.Child {
|
|
var chidCont EvaluPross
|
|
if cv.Id != tarId {
|
|
chidCont.Id = cv.Id
|
|
chidCont.Name = cv.Name // `json:"name"`
|
|
chidCont.Content = cv.Content // `json:"content"` //指标说明
|
|
chidCont.Unit = cv.Unit // `json:"unit"` //单位"`
|
|
chidCont.ReferenceScore = cv.ReferenceScore // `json:"referencescore"` //标准分值"`
|
|
chidCont.Cycles = cv.Cycles // `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
|
chidCont.CycleAttres = cv.CycleAttres // `json:"cycleattr"` //辅助计数"`
|
|
chidCont.State = cv.State // `json:"state"`
|
|
chidCont.Score = cv.Score // `json:"score"` //分数
|
|
chidCont.QualEvalId = cv.QualEvalId // `json:"qeid"`
|
|
chidCont.Status = cv.Status // `json:"status"`
|
|
}
|
|
saveCont.Child = append(saveCont.Child, chidCont)
|
|
}
|
|
planContSave = append(planContSave, saveCont)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
// fmt.Printf("Plan--------4----------->%v\n", len(planContSave))
|
|
if len(planContSave) > 0 {
|
|
planContInfo, planJsonErr := json.Marshal(planContSave)
|
|
if planJsonErr == nil {
|
|
eitaData := publicmethod.MapOut[string]()
|
|
eitaData["content"] = string(planContInfo)
|
|
eitaData["eitetime"] = time.Now().Unix()
|
|
overall.CONSTANT_DB_KPI.Model(&modelskpi.PlanVersio{}).Where("`key` = ?", key).Updates(eitaData)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 10:15:39
|
|
@ 功能: 获取复制方案详情
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetCopySchemeCont(c *gin.Context) {
|
|
var receivedValue publicmethod.PublicId
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知版本号!")
|
|
return
|
|
}
|
|
var oldSchemeCont modelskpi.PlanVersio
|
|
err = oldSchemeCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id})
|
|
if err != nil {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var copyCont CopySchemeCont
|
|
copyCont.OrgId = strconv.FormatInt(oldSchemeCont.Department, 10)
|
|
copyCont.Year = fmt.Sprintf("%v", oldSchemeCont.Year)
|
|
if oldSchemeCont.Content != "" {
|
|
var planCont []AddDutyNewCont
|
|
jsonErrPlan := json.Unmarshal([]byte(oldSchemeCont.Content), &planCont)
|
|
if jsonErrPlan == nil {
|
|
var copyInfoAry []CopyDutyNewCont
|
|
for _, v := range planCont {
|
|
var copyInfoXonr CopyDutyNewCont
|
|
copyInfoXonr.Id = v.Id //维度ID
|
|
copyInfoXonr.Name = v.Name
|
|
copyInfoXonr.ZhiFraction = v.ZhiFraction
|
|
var displayTargetId []string
|
|
for _, cv := range v.Child {
|
|
var copyEvalCont CopyEvaluPross
|
|
copyEvalCont.Id = cv.Id //`json:"id"` //指标ID
|
|
if publicmethod.IsInTrue[string](cv.Id, displayTargetId) == false {
|
|
displayTargetId = append(displayTargetId, cv.Id)
|
|
}
|
|
var tarGetContent modelskpi.EvaluationTarget
|
|
tarGetContentErr := tarGetContent.GetCont(map[string]interface{}{"et_id": cv.Id}, "et_title")
|
|
if tarGetContentErr == nil {
|
|
copyEvalCont.Name = tarGetContent.Title
|
|
} else {
|
|
copyEvalCont.Name = cv.Name //`json:"name"`
|
|
}
|
|
copyEvalCont.Content = cv.Content //`json:"content"` //指标说明
|
|
copyEvalCont.Unit = cv.Unit //`json:"unit"` //单位"`
|
|
copyEvalCont.ReferenceScore = cv.ReferenceScore //`json:"referencescore"` //标准分值"`
|
|
if cv.Status == 0 {
|
|
copyEvalCont.State = 2
|
|
} else {
|
|
copyEvalCont.State = cv.Status //`json:"state"`
|
|
}
|
|
|
|
copyEvalCont.Istrue = 2 //`json:"istrue"` //是否允许修改
|
|
|
|
copyInfoXonr.Child = append(copyInfoXonr.Child, copyEvalCont)
|
|
}
|
|
byTargetList, _ := HaveDepartBaseTarget(displayTargetId, oldSchemeCont.Department, 1)
|
|
if len(byTargetList) > 0 {
|
|
for _, cecfv := range byTargetList {
|
|
var copyEvalCont CopyEvaluPross
|
|
copyEvalCont.Id = cecfv.Id
|
|
copyEvalCont.Name = cecfv.Name
|
|
copyEvalCont.Content = cecfv.Content
|
|
copyEvalCont.Unit = cecfv.Unit
|
|
copyEvalCont.ReferenceScore = 0
|
|
copyEvalCont.State = cecfv.State
|
|
copyEvalCont.Istrue = cecfv.IsTrue
|
|
copyInfoXonr.Child = append(copyInfoXonr.Child, copyEvalCont)
|
|
}
|
|
}
|
|
copyInfoAry = append(copyInfoAry, copyInfoXonr)
|
|
}
|
|
copyCont.Child = copyInfoAry
|
|
}
|
|
}
|
|
publicmethod.Result(0, copyCont, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 13:23:59
|
|
@ 功能: 获取部门管理的指标
|
|
@ 参数
|
|
|
|
#targetId 指标ID
|
|
#orgId 行政组织
|
|
#attribute 类型(1:指标;2:子目标;3:细则)
|
|
#level 级别(1:部门级;2:岗位级)
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func HaveDepartBaseTarget(targetId []string, orgId int64, level int) (contAry []DepartTargetList, err error) {
|
|
var targetIdList []int64
|
|
gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`target_id`").Where("`state` = 1 AND `level` = ? AND `department_id` = ?", level, orgId)
|
|
if len(targetId) > 0 {
|
|
gormDb = gormDb.Not(map[string]interface{}{"target_id": targetId})
|
|
}
|
|
err = gormDb.Find(&targetIdList).Error
|
|
if err != nil || len(targetIdList) < 1 {
|
|
return
|
|
}
|
|
var targetListCont []modelskpi.EvaluationTarget
|
|
err = overall.CONSTANT_DB_KPI.Where("`et_state` = 1 AND `et_id` IN ?", targetIdList).Find(&targetListCont).Error
|
|
if err != nil || len(targetListCont) < 1 {
|
|
return
|
|
}
|
|
for _, e_v := range targetListCont {
|
|
var cont DepartTargetList
|
|
cont.Id = strconv.FormatInt(e_v.Id, 10)
|
|
cont.Name = e_v.Title
|
|
cont.Content = ""
|
|
cont.Unit = e_v.Uniteing
|
|
cont.State = e_v.State
|
|
cont.ReferenceScore = 0
|
|
cont.IsTrue = 2
|
|
contAry = append(contAry, cont)
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-04-19 15:12:26
|
|
@ 功能: 获取新增方案内容方案详情
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetAddSchemeCont(c *gin.Context) {
|
|
var receivedValue publicmethod.PublicId
|
|
err := c.ShouldBindJSON(&receivedValue)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if receivedValue.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知行政组织!")
|
|
return
|
|
}
|
|
var targetIdList []int64
|
|
gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`target_id`").Where("`state` = 1 AND `level` = 1 AND `department_id` = ?", receivedValue.Id)
|
|
err = gormDb.Find(&targetIdList).Error
|
|
if err != nil || len(targetIdList) < 1 {
|
|
return
|
|
}
|
|
var targetListCont []modelskpi.EvaluationTarget
|
|
err = overall.CONSTANT_DB_KPI.Where("`et_state` = 1 AND `et_id` IN ?", targetIdList).Find(&targetListCont).Error
|
|
if err != nil || len(targetListCont) < 1 {
|
|
return
|
|
}
|
|
var dimensionId []int64
|
|
var dimListInfo []dimListCont
|
|
var tagetList []targetListInfo
|
|
for _, e_v := range targetListCont {
|
|
if !publicmethod.IsInTrue[int64](e_v.Dimension, dimensionId) {
|
|
dimensionId = append(dimensionId, e_v.Dimension)
|
|
var dimInfo modelskpi.DutyClass
|
|
dimInfo.GetCont(map[string]interface{}{"`id`": e_v.Dimension}, "`title`")
|
|
var dimCont dimListCont
|
|
dimCont.Id = strconv.FormatInt(e_v.Dimension, 10)
|
|
dimCont.Name = dimInfo.Title
|
|
dimListInfo = append(dimListInfo, dimCont)
|
|
}
|
|
var tarCont targetListInfo
|
|
tarCont.Id = strconv.FormatInt(e_v.Id, 10)
|
|
tarCont.Name = e_v.Title
|
|
tarCont.Dimension = strconv.FormatInt(e_v.Dimension, 10)
|
|
tagetList = append(tagetList, tarCont)
|
|
|
|
}
|
|
if len(dimListInfo) < 1 {
|
|
publicmethod.Result(105, err, c)
|
|
return
|
|
}
|
|
var schemeInfo []outNewScheme
|
|
for _, v := range dimListInfo {
|
|
var schemeCont outNewScheme
|
|
schemeCont.Id = v.Id
|
|
schemeCont.Name = v.Name
|
|
if len(tagetList) > 0 {
|
|
var sunCont []outNewSchemeTar
|
|
for _, sv := range tagetList {
|
|
if sv.Dimension == v.Id {
|
|
var sunInfo outNewSchemeTar
|
|
sunInfo.Id = sv.Id
|
|
sunInfo.Name = sv.Name
|
|
sunCont = append(sunCont, sunInfo)
|
|
}
|
|
}
|
|
if len(sunCont) > 0 {
|
|
schemeCont.Child = sunCont
|
|
}
|
|
}
|
|
schemeInfo = append(schemeInfo, schemeCont)
|
|
}
|
|
publicmethod.Result(0, schemeInfo, c)
|
|
}
|
|
|