|
@@ -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}) //达标数据总量
|