|
@@ -6,26 +6,28 @@ import ( |
|
@@ -6,26 +6,28 @@ import ( |
|
6
|
)
|
6
|
)
|
|
7
|
|
7
|
|
|
8
|
type PerformanceApplicationForm struct {
|
8
|
type PerformanceApplicationForm struct {
|
|
9
|
- DimensionName string //维度名称
|
|
|
|
10
|
- ModuleName string //模块名称
|
|
|
|
11
|
- Weight string //权重
|
|
|
|
12
|
- Standard string //标准
|
|
|
|
13
|
- Task string //任务、指标
|
|
|
|
14
|
- Definition string //定义
|
9
|
+ DimensionName string // 维度名称
|
|
|
|
10
|
+ ModuleName string // 模块名称
|
|
|
|
11
|
+ Weight string // 权重
|
|
|
|
12
|
+ Standard string // 标准
|
|
|
|
13
|
+ Task string // 任务、指标
|
|
|
|
14
|
+ Definition string // 定义
|
|
15
|
Required string // 是否必填 是 否
|
15
|
Required string // 是否必填 是 否
|
|
|
|
16
|
+ Evaluator string // 项目评估人
|
|
16
|
}
|
17
|
}
|
|
17
|
|
18
|
|
|
18
|
type PerformanceDimension struct {
|
19
|
type PerformanceDimension struct {
|
|
19
|
- Name string `json:"name"` //维度名称
|
|
|
|
20
|
- PerformanceModule []*PerformanceModule `json:"performanceModule"` //模块
|
20
|
+ Name string `json:"name"` // 维度名称
|
|
|
|
21
|
+ PerformanceModule []*PerformanceModule `json:"performanceModule"` // 模块
|
|
21
|
}
|
22
|
}
|
|
22
|
|
23
|
|
|
23
|
type PerformanceModule struct {
|
24
|
type PerformanceModule struct {
|
|
24
|
- ModuleName string `json:"moduleName"` //模块名称
|
|
|
|
25
|
- Weight string `json:"weight"` //权重
|
|
|
|
26
|
- Standard string `json:"standard"` //标准(结构化的成果描述)
|
|
|
|
27
|
- Target []*PerformanceTarget `json:"performanceTarget"` //任务\指标
|
25
|
+ ModuleName string `json:"moduleName"` // 模块名称
|
|
|
|
26
|
+ Weight string `json:"weight"` // 权重
|
|
|
|
27
|
+ Standard string `json:"standard"` // 标准(结构化的成果描述)
|
|
|
|
28
|
+ Target []*PerformanceTarget `json:"performanceTarget"` // 任务\指标
|
|
28
|
Required int `json:"required"` // 是否必填
|
29
|
Required int `json:"required"` // 是否必填
|
|
|
|
30
|
+ Evaluator string `json:"evaluator"` // 项目评估人
|
|
29
|
}
|
31
|
}
|
|
30
|
|
32
|
|
|
31
|
type PerformanceTarget struct {
|
33
|
type PerformanceTarget struct {
|
|
@@ -35,7 +37,7 @@ type PerformanceTarget struct { |
|
@@ -35,7 +37,7 @@ type PerformanceTarget struct { |
|
35
|
|
37
|
|
|
36
|
func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) {
|
38
|
func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) {
|
|
37
|
formRows := make([]*PerformanceApplicationForm, 0)
|
39
|
formRows := make([]*PerformanceApplicationForm, 0)
|
|
38
|
- var dimensionName, moduleName, taskName, weightName, standardName string
|
40
|
+ var dimensionName, moduleName, taskName, weightName, standardName, evaluator string
|
|
39
|
required := "是"
|
41
|
required := "是"
|
|
40
|
for key, item := range rows {
|
42
|
for key, item := range rows {
|
|
41
|
if key < 3 {
|
43
|
if key < 3 {
|
|
@@ -88,6 +90,13 @@ func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) |
|
@@ -88,6 +90,13 @@ func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) |
|
88
|
required = strings.TrimSpace(item[9])
|
90
|
required = strings.TrimSpace(item[9])
|
|
89
|
}
|
91
|
}
|
|
90
|
form.Required = required
|
92
|
form.Required = required
|
|
|
|
93
|
+
|
|
|
|
94
|
+ // 项目评估人
|
|
|
|
95
|
+ if len(item) > 10 && item[10] != "" {
|
|
|
|
96
|
+ evaluator = strings.TrimSpace(item[10])
|
|
|
|
97
|
+ }
|
|
|
|
98
|
+ form.Evaluator = evaluator
|
|
|
|
99
|
+
|
|
91
|
formRows = append(formRows, form)
|
100
|
formRows = append(formRows, form)
|
|
92
|
}
|
101
|
}
|
|
93
|
dimensions := make([]*PerformanceDimension, 0)
|
102
|
dimensions := make([]*PerformanceDimension, 0)
|
|
@@ -156,12 +165,17 @@ func loadPerformanceModule(forms []*PerformanceApplicationForm) ([]*PerformanceM |
|
@@ -156,12 +165,17 @@ func loadPerformanceModule(forms []*PerformanceApplicationForm) ([]*PerformanceM |
|
156
|
if err != nil {
|
165
|
if err != nil {
|
|
157
|
return modules, err
|
166
|
return modules, err
|
|
158
|
}
|
167
|
}
|
|
|
|
168
|
+ evaluator, err := getEvaluator(item)
|
|
|
|
169
|
+ if err != nil {
|
|
|
|
170
|
+ return modules, err
|
|
|
|
171
|
+ }
|
|
159
|
module := &PerformanceModule{
|
172
|
module := &PerformanceModule{
|
|
160
|
ModuleName: moduleName,
|
173
|
ModuleName: moduleName,
|
|
161
|
Weight: weightName,
|
174
|
Weight: weightName,
|
|
162
|
Standard: standardName,
|
175
|
Standard: standardName,
|
|
163
|
Target: tasks,
|
176
|
Target: tasks,
|
|
164
|
Required: required,
|
177
|
Required: required,
|
|
|
|
178
|
+ Evaluator: evaluator,
|
|
165
|
}
|
179
|
}
|
|
166
|
modules = append(modules, module)
|
180
|
modules = append(modules, module)
|
|
167
|
}
|
181
|
}
|
|
@@ -235,6 +249,23 @@ func getRequired(items []*PerformanceApplicationForm) (int, error) { |
|
@@ -235,6 +249,23 @@ func getRequired(items []*PerformanceApplicationForm) (int, error) { |
|
235
|
}
|
249
|
}
|
|
236
|
}
|
250
|
}
|
|
237
|
|
251
|
|
|
|
|
252
|
+// 获取项目评估人
|
|
|
|
253
|
+func getEvaluator(items []*PerformanceApplicationForm) (string, error) {
|
|
|
|
254
|
+ if len(items) <= 0 {
|
|
|
|
255
|
+ return "", nil
|
|
|
|
256
|
+ }
|
|
|
|
257
|
+ var prevName string
|
|
|
|
258
|
+ for _, item := range items {
|
|
|
|
259
|
+ if prevName == "" {
|
|
|
|
260
|
+ prevName = item.Evaluator
|
|
|
|
261
|
+ }
|
|
|
|
262
|
+ if prevName != item.Evaluator {
|
|
|
|
263
|
+ return "", errors.New(item.ModuleName + " 对应的项目评估人填不一致")
|
|
|
|
264
|
+ }
|
|
|
|
265
|
+ }
|
|
|
|
266
|
+ return prevName, nil
|
|
|
|
267
|
+}
|
|
|
|
268
|
+
|
|
238
|
// 获取任务
|
269
|
// 获取任务
|
|
239
|
func getTasks(items []*PerformanceApplicationForm) ([]*PerformanceTarget, error) {
|
270
|
func getTasks(items []*PerformanceApplicationForm) ([]*PerformanceTarget, error) {
|
|
240
|
tasks := make([]*PerformanceTarget, 0)
|
271
|
tasks := make([]*PerformanceTarget, 0)
|