作者 tangxvhui
@@ -12,6 +12,7 @@ type PerformanceApplicationForm struct { @@ -12,6 +12,7 @@ type PerformanceApplicationForm struct {
12 Standard string //标准 12 Standard string //标准
13 Task string //任务、指标 13 Task string //任务、指标
14 Definition string //定义 14 Definition string //定义
  15 + Required string // 是否必填 是 否
15 } 16 }
16 17
17 type PerformanceDimension struct { 18 type PerformanceDimension struct {
@@ -24,6 +25,7 @@ type PerformanceModule struct { @@ -24,6 +25,7 @@ type PerformanceModule struct {
24 Weight string `json:"weight"` //权重 25 Weight string `json:"weight"` //权重
25 Standard string `json:"standard"` //标准(结构化的成果描述) 26 Standard string `json:"standard"` //标准(结构化的成果描述)
26 Target []*PerformanceTarget `json:"performanceTarget"` //任务\指标 27 Target []*PerformanceTarget `json:"performanceTarget"` //任务\指标
  28 + Required int `json:"required"` // 是否必填
27 } 29 }
28 30
29 type PerformanceTarget struct { 31 type PerformanceTarget struct {
@@ -34,6 +36,7 @@ type PerformanceTarget struct { @@ -34,6 +36,7 @@ type PerformanceTarget struct {
34 func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) { 36 func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) {
35 formRows := make([]*PerformanceApplicationForm, 0) 37 formRows := make([]*PerformanceApplicationForm, 0)
36 var dimensionName, moduleName, taskName, weightName, standardName string 38 var dimensionName, moduleName, taskName, weightName, standardName string
  39 + required := "是"
37 for key, item := range rows { 40 for key, item := range rows {
38 if key < 3 { 41 if key < 3 {
39 continue 42 continue
@@ -80,6 +83,11 @@ func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error) @@ -80,6 +83,11 @@ func LoadPerformanceDimensions(rows [][]string) ([]*PerformanceDimension, error)
80 } 83 }
81 } 84 }
82 form.Standard = standardName 85 form.Standard = standardName
  86 + //是否必填
  87 + if len(item) > 9 && item[9] != "" {
  88 + required = strings.TrimSpace(item[9])
  89 + }
  90 + form.Required = required
83 formRows = append(formRows, form) 91 formRows = append(formRows, form)
84 } 92 }
85 dimensions := make([]*PerformanceDimension, 0) 93 dimensions := make([]*PerformanceDimension, 0)
@@ -144,11 +152,16 @@ func loadPerformanceModule(forms []*PerformanceApplicationForm) ([]*PerformanceM @@ -144,11 +152,16 @@ func loadPerformanceModule(forms []*PerformanceApplicationForm) ([]*PerformanceM
144 if err != nil { 152 if err != nil {
145 return modules, err 153 return modules, err
146 } 154 }
  155 + required, err := getRequired(item)
  156 + if err != nil {
  157 + return modules, err
  158 + }
147 module := &PerformanceModule{ 159 module := &PerformanceModule{
148 ModuleName: moduleName, 160 ModuleName: moduleName,
149 Weight: weightName, 161 Weight: weightName,
150 Standard: standardName, 162 Standard: standardName,
151 Target: tasks, 163 Target: tasks,
  164 + Required: required,
152 } 165 }
153 modules = append(modules, module) 166 modules = append(modules, module)
154 } 167 }
@@ -201,6 +214,27 @@ func getStandard(items []*PerformanceApplicationForm) (string, error) { @@ -201,6 +214,27 @@ func getStandard(items []*PerformanceApplicationForm) (string, error) {
201 return name, nil 214 return name, nil
202 } 215 }
203 216
  217 +// 获取是否必填
  218 +func getRequired(items []*PerformanceApplicationForm) (int, error) {
  219 + if len(items) <= 0 {
  220 + return NodeRequiredYes, nil
  221 + }
  222 + var name string
  223 + for _, item := range items {
  224 + if name == "" {
  225 + name = item.Required
  226 + }
  227 + if name != item.Required {
  228 + return NodeRequiredYes, errors.New(item.ModuleName + " 对应的是否必填不一致")
  229 + }
  230 + }
  231 + if name == "否" {
  232 + return NodeRequiredNo, nil
  233 + } else {
  234 + return NodeRequiredYes, nil
  235 + }
  236 +}
  237 +
204 // 获取任务 238 // 获取任务
205 func getTasks(items []*PerformanceApplicationForm) ([]*PerformanceTarget, error) { 239 func getTasks(items []*PerformanceApplicationForm) ([]*PerformanceTarget, error) {
206 tasks := make([]*PerformanceTarget, 0) 240 tasks := make([]*PerformanceTarget, 0)
@@ -121,7 +121,7 @@ func (controller *ImportController) parseTemplateNodeContent(data []*domain.Perf @@ -121,7 +121,7 @@ func (controller *ImportController) parseTemplateNodeContent(data []*domain.Perf
121 } 121 }
122 122
123 // 必填项 123 // 必填项
124 - nc.Required = domain.NodeRequiredYes 124 + nc.Required = module.Required
125 nodeContents = append(nodeContents, nc) 125 nodeContents = append(nodeContents, nc)
126 } 126 }
127 } 127 }
不能预览此文件类型