Explorar el Código

Merge branch 'dev2.0' of http://192.168.3.207:8080/data_processing/data_validation into dev2.0

* 'dev2.0' of http://192.168.3.207:8080/data_processing/data_validation:
  xg
Jianghan hace 3 años
padre
commit
afc9c2e12a
Se han modificado 2 ficheros con 65 adiciones y 37 borrados
  1. 9 8
      src/front/front.go
  2. 56 29
      src/front/project.go

+ 9 - 8
src/front/front.go

@@ -54,14 +54,15 @@ type Front struct {
 	roleSecondEdit xweb.Mapper `xweb:"/front/role/second/edit"` //二级权限编辑
 
 	//project
-	projectList           xweb.Mapper `xweb:"/front/project"`                //项目列表
-	projectSave           xweb.Mapper `xweb:"/front/project/save"`           //新增项目
-	projectTaskSave       xweb.Mapper `xweb:"/front/project/task/save"`      //用户组任务分发
-	projectTaskList       xweb.Mapper `xweb:"/front/project/task/list"`      //用户组任务分发列表
-	projectTaskRetrieve   xweb.Mapper `xweb:"/front/project/task/retrieve"`  //用户组任务收回
-	projectTaskRepulse    xweb.Mapper `xweb:"/front/project/task/repulse"`   //用户组任务打回
-	projectTaskClose      xweb.Mapper `xweb:"/front/project/task/close"`     //用户组任务关闭
-	projectGetEntnameList xweb.Mapper `xweb:"/front/project/getEntnameList"` //模糊查询公司名称
+	projectList              xweb.Mapper `xweb:"/front/project"`                   //项目列表
+	projectSave              xweb.Mapper `xweb:"/front/project/save"`              //新增项目
+	projectQualityAssessment xweb.Mapper `xweb:"/front/project/qualityAssessment"` //数据质量评估
+	projectTaskSave          xweb.Mapper `xweb:"/front/project/task/save"`         //用户组任务分发
+	projectTaskList          xweb.Mapper `xweb:"/front/project/task/list"`         //用户组任务分发列表
+	projectTaskRetrieve      xweb.Mapper `xweb:"/front/project/task/retrieve"`     //用户组任务收回
+	projectTaskRepulse       xweb.Mapper `xweb:"/front/project/task/repulse"`      //用户组任务打回
+	projectTaskClose         xweb.Mapper `xweb:"/front/project/task/close"`        //用户组任务关闭
+	projectGetEntnameList    xweb.Mapper `xweb:"/front/project/getEntnameList"`    //模糊查询公司名称
 
 	userTaskSave     xweb.Mapper `xweb:"/front/user/task/save"`     //用户任务分发
 	userTaskList     xweb.Mapper `xweb:"/front/user/task/list"`     //用户任务列表

+ 56 - 29
src/front/project.go

@@ -109,6 +109,7 @@ func (f *Front) ProjectSave() {
 			"s_status":         "未开始",                                 //项目状态
 			"i_createtime":     time.Now().Unix(),                     //创建时间
 			"s_importtype":     "excel",                               //导入类型
+			"b_isassessment":   false,                                 //是否进行了质量评估
 		}
 	} else if stype == "coll" { //数据库导入
 		historyid := f.GetString("s_historyid")
@@ -120,17 +121,18 @@ func (f *Front) ProjectSave() {
 		qu.Debug(s_departname, s_entname, s_rulename, importDataNum)
 		//保存项目信息
 		set = map[string]interface{}{
-			"s_name":       s_name,                        //项目名称
-			"s_entname":    s_entname,                     //公司名称
-			"s_departname": s_departname,                  //部门名称
-			"s_rulename":   strings.Join(s_rulename, ","), //规则名称
-			"i_importnum":  importDataNum,                 //导入数量
-			"s_sourceinfo": s_sourceinfo,                  //源数据表
-			"s_createname": username,                      //创建人
-			"s_status":     "未开始",                         //项目状态
-			"i_createtime": time.Now().Unix(),             //创建时间
-			"s_importtype": "coll",                        //导入类型
-			"s_historyid":  historyid,                     //源数据集标识
+			"s_name":         s_name,                        //项目名称
+			"s_entname":      s_entname,                     //公司名称
+			"s_departname":   s_departname,                  //部门名称
+			"s_rulename":     strings.Join(s_rulename, ","), //规则名称
+			"i_importnum":    importDataNum,                 //导入数量
+			"s_sourceinfo":   s_sourceinfo,                  //源数据表
+			"s_createname":   username,                      //创建人
+			"s_status":       "未开始",                         //项目状态
+			"i_createtime":   time.Now().Unix(),             //创建时间
+			"s_importtype":   "coll",                        //导入类型
+			"s_historyid":    historyid,                     //源数据集标识
+			"b_isassessment": false,                         //是否进行了质量评估
 		}
 	} else if stype == "edit" { //编辑保存
 		success = true
@@ -178,6 +180,48 @@ func (f *Front) ProjectSave() {
 	}
 }
 
+// ProjectQualityAssessment 数据质量评估
+func (f *Front) ProjectQualityAssessment() {
+	defer qu.Catch()
+	msg := ""
+	success := false
+	//质量评估
+	projectid := f.GetString("pid") //项目id
+	qu.Debug("Project Id:", projectid)
+	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"b_isassessment": 1, "s_sourceinfo": 1})
+	if project != nil && len(*project) > 0 {
+		if isAssessment, ok := (*project)["b_isassessment"].(bool); ok && !isAssessment {
+			if fields, ok := (*project)["v_fields"].([]interface{}); ok && len(fields) > 0 {
+				var fieldsArr []string
+				for _, fieldsTmp := range fields {
+					fieldsMap := fieldsTmp.(map[string]interface{})
+					for f, _ := range fieldsMap {
+						fieldsArr = append(fieldsArr, f)
+					}
+				}
+				sourceinfo := qu.ObjToString((*project)["s_sourceinfo"])
+				success := QuaFieldScore(fieldsArr, sourceinfo) //调用数据质量评估接口
+				if success {
+					//点击清洗更新项目状态为进行中
+					b := util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"$set": map[string]interface{}{"b_isassessment": true, "s_status": "进行中", "i_starttime": time.Now().Unix()}})
+					qu.Debug("Update Porject:"+projectid+"	Status Success:", b)
+				} else {
+					msg = "质量评估失败"
+				}
+			} else {
+				msg = "项目标注字段查询失败"
+			}
+		} else if ok && isAssessment {
+			success = true
+		} else {
+			msg = "查询项目失败"
+		}
+	} else {
+		msg = "查询项目失败"
+	}
+	f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
+}
+
 // ProjectTaskList 用户组任务分发列表
 func (f *Front) ProjectTaskList() {
 	defer qu.Catch()
@@ -218,24 +262,7 @@ func (f *Front) ProjectTaskList() {
 		}
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
-		project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"s_status": 1, "s_sourceinfo": 1})
-		if project != nil && len(*project) > 0 {
-			if status := qu.ObjToString((*project)["s_status"]); status == "未开始" {
-				var fieldsArr []string
-				fields := (*project)["v_fields"].([]interface{})
-				for _, fieldsTmp := range fields {
-					fieldsMap := fieldsTmp.(map[string]interface{})
-					for f, _ := range fieldsMap {
-						fieldsArr = append(fieldsArr, f)
-					}
-				}
-				sourceinfo := qu.ObjToString((*project)["s_sourceinfo"])
-				QuaFieldScore(fieldsArr, sourceinfo) //调用数据质量评估接口
-				//点击清洗更新项目状态为进行中
-				b := util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"$set": map[string]interface{}{"s_status": "进行中", "i_starttime": time.Now().Unix()}})
-				qu.Debug("Update Porject:"+projectid+"	Status Success:", b)
-			}
-		}
+		project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"s_sourceinfo": 1})
 		sourceinfo := qu.ObjToString((*project)["s_sourceinfo"]) //数据源表
 		qu.Debug(sourceinfo)
 		okAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})                           //达标数据总量