maxiaoshan преди 3 години
родител
ревизия
f03217359d
променени са 6 файла, в които са добавени 202 реда и са изтрити 105 реда
  1. 6 5
      src/front/front.go
  2. 82 64
      src/front/project.go
  3. 88 15
      src/front/user.go
  4. 5 0
      src/main.go
  5. 20 20
      src/web/templates/project/project_clear.html
  6. 1 1
      src/web/templates/project/project_list.html

+ 6 - 5
src/front/front.go

@@ -53,9 +53,9 @@ 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"`           //新增项目
-	projectClear          xweb.Mapper `xweb:"/front/project/clear/"`         //项目清洗
+	projectList xweb.Mapper `xweb:"/front/project"`      //项目列表
+	projectSave xweb.Mapper `xweb:"/front/project/save"` //新增项目
+	//projectClear          xweb.Mapper `xweb:"/front/project/clear/"`         //项目清洗
 	projectTaskSave       xweb.Mapper `xweb:"/front/project/task/save"`      //用户组任务分发
 	projectTaskList       xweb.Mapper `xweb:"/front/project/task/list"`      //用户组任务分发列表
 	projectTaskRetrieve   xweb.Mapper `xweb:"/front/project/task/retrieve"`  //用户组任务收回
@@ -63,8 +63,9 @@ type Front struct {
 	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"` //用户任务列表
+	userTaskSave     xweb.Mapper `xweb:"/front/user/task/save"`     //用户任务分发
+	userTaskList     xweb.Mapper `xweb:"/front/user/task/list"`     //用户任务列表
+	userTaskRetrieve xweb.Mapper `xweb:"/front/user/task/retrieve"` //用户任务收回
 
 	groupTaskList xweb.Mapper `xweb:"/front/group/task/list"` //用户组任务列表
 

+ 82 - 64
src/front/project.go

@@ -175,60 +175,61 @@ func (f *Front) ProjectSave() {
 }
 
 // ProjectClear 项目清洗
-func (f *Front) ProjectClear() {
-	defer qu.Catch()
-	if f.Method() == "POST" {
-		projectid := f.GetString("s_projectid") //项目id
-		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 == "未开始" {
-				//TODO:调用数据质量评估接口
-				//点击清洗更新项目状态为进行中
-				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)
-			}
-		} else {
-			qu.Debug("Search Porject Failed:", projectid)
-			f.ServeJson("查询项目信息失败")
-			return
-		}
-
-		sourceinfo := qu.ObjToString((*project)["s_sourceinfo"])                                                       //数据源表
-		noTagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})                    //达标数据总量
-		noTagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false, "b_isgive": true}) //达标数据已分发量
-		noTagNoGiveDataNum := noTagAllDataNum - noTagGiveDataNum                                                       //达标待分发量
-		tagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true})                       //未达标数据总量
-		tagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true, "b_isgive": true})    //未达标数据已分发量
-		tagNoGiveDataNum := tagAllDataNum - tagGiveDataNum                                                             //未达标待分发量
-		allGiveDataNum := noTagGiveDataNum + tagGiveDataNum                                                            //总分发量
-		allNoGiveDataNum := noTagNoGiveDataNum + tagNoGiveDataNum                                                      //总待分发量
-		allDataNum := allGiveDataNum + allNoGiveDataNum
-
-		data := make(map[string]interface{})
-		data["allDataNum"] = allDataNum
-		data["allGiveDataNum"] = allGiveDataNum
-		data["allNoGiveDataNum"] = allNoGiveDataNum
-		data["noTagAllDataNum"] = noTagAllDataNum
-		data["noTagGiveDataNum"] = noTagGiveDataNum
-		data["noTagNoGiveDataNum"] = noTagNoGiveDataNum
-		data["tagAllDataNum"] = tagAllDataNum
-		data["tagGiveDataNum"] = tagGiveDataNum
-		data["tagNoGiveDataNum"] = tagNoGiveDataNum
-		data["s_projectid"] = projectid
-		qu.Debug(data)
-		f.ServeJson(data)
-	} else {
-		pid := f.GetString("pid")
-		f.T["s_projectid"] = pid
-		_ = f.Render("project/project_clear.html", &f.T)
-	}
-
-}
+//func (f *Front) ProjectClear() {
+//	defer qu.Catch()
+//	if f.Method() == "POST" {
+//		projectid := f.GetString("s_projectid") //项目id
+//		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 == "未开始" {
+//				//TODO:调用数据质量评估接口
+//				//点击清洗更新项目状态为进行中
+//				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)
+//			}
+//		} else {
+//			qu.Debug("Search Porject Failed:", projectid)
+//			f.ServeJson("查询项目信息失败")
+//			return
+//		}
+//
+//		sourceinfo := qu.ObjToString((*project)["s_sourceinfo"])                                                       //数据源表
+//		noTagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})                    //达标数据总量
+//		noTagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false, "b_isgive": true}) //达标数据已分发量
+//		noTagNoGiveDataNum := noTagAllDataNum - noTagGiveDataNum                                                       //达标待分发量
+//		tagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true})                       //未达标数据总量
+//		tagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true, "b_isgive": true})    //未达标数据已分发量
+//		tagNoGiveDataNum := tagAllDataNum - tagGiveDataNum                                                             //未达标待分发量
+//		allGiveDataNum := noTagGiveDataNum + tagGiveDataNum                                                            //总分发量
+//		allNoGiveDataNum := noTagNoGiveDataNum + tagNoGiveDataNum                                                      //总待分发量
+//		allDataNum := allGiveDataNum + allNoGiveDataNum
+//
+//		data := make(map[string]interface{})
+//		data["allDataNum"] = allDataNum
+//		data["allGiveDataNum"] = allGiveDataNum
+//		data["allNoGiveDataNum"] = allNoGiveDataNum
+//		data["noTagAllDataNum"] = noTagAllDataNum
+//		data["noTagGiveDataNum"] = noTagGiveDataNum
+//		data["noTagNoGiveDataNum"] = noTagNoGiveDataNum
+//		data["tagAllDataNum"] = tagAllDataNum
+//		data["tagGiveDataNum"] = tagGiveDataNum
+//		data["tagNoGiveDataNum"] = tagNoGiveDataNum
+//		data["s_projectid"] = projectid
+//		qu.Debug(data)
+//		f.ServeJson(data)
+//	} else {
+//		pid := f.GetString("pid")
+//		f.T["s_projectid"] = pid
+//		_ = f.Render("project/project_clear.html", &f.T)
+//	}
+//
+//}
 
 // ProjectTaskList 用户组任务分发列表
 func (f *Front) ProjectTaskList() {
 	defer qu.Catch()
 	projectid := f.GetString("pid") //项目id
+	qu.Debug("Project Id:", projectid)
 	if f.Method() == "POST" {
 		status := f.GetString("s_status") //任务状态
 		searchStr := f.GetString("search[value]")
@@ -273,26 +274,38 @@ func (f *Front) ProjectTaskList() {
 				qu.Debug("Update Porject:"+projectid+"	Status Success:", b)
 			}
 		}
-		sourceinfo := qu.ObjToString((*project)["s_sourceinfo"])                                                       //数据源表
-		noTagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})                    //达标数据总量
-		noTagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false, "b_isgive": true}) //达标数据已分发量
-		noTagNoGiveDataNum := noTagAllDataNum - noTagGiveDataNum                                                       //达标待分发量
-		tagAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true})                       //未达标数据总量
-		tagGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true, "b_isgive": true})    //未达标数据已分发量
-		tagNoGiveDataNum := tagAllDataNum - tagGiveDataNum                                                             //未达标待分发量
-		allGiveDataNum := noTagGiveDataNum + tagGiveDataNum                                                            //总分发量
-		allNoGiveDataNum := noTagNoGiveDataNum + tagNoGiveDataNum                                                      //总待分发量
+		sourceinfo := qu.ObjToString((*project)["s_sourceinfo"]) //数据源表
+		qu.Debug(sourceinfo)
+		okAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})                           //达标数据总量
+		okIsGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false, "b_isgivegroup": true}) //达标数据已分发量
+		okNotGiveDataNum := okAllDataNum - okIsGiveDataNum                                                                 //达标待分发量
+		okIsTagDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false, "b_istag": true})        //达标已标注量
+
+		IsNoOkAllDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true})                           //未达标数据总量
+		IsNoOkIsGiveDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true, "b_isgivegroup": true}) //未达标数据已分发量
+		IsNotOkNotGiveDataNum := IsNoOkAllDataNum - IsNoOkIsGiveDataNum                                                       //未达标待分发量
+		IsNotOkIsTagDataNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": true, "b_istag": true})       //未达标已标注量
+
+		allGiveDataNum := okIsGiveDataNum + IsNoOkIsGiveDataNum      //总分发量
+		allNoGiveDataNum := okNotGiveDataNum + IsNotOkNotGiveDataNum //总待分发量
+		allIsTagDataNum := okIsTagDataNum + IsNotOkIsTagDataNum      //已标注总量
 		allDataNum := allGiveDataNum + allNoGiveDataNum
+		qu.Debug("数据总量:", allDataNum, "已分发总量:", allGiveDataNum, "待分发总量:", allNoGiveDataNum, "已标注总量:", allIsTagDataNum)
+		qu.Debug("达标量:", okAllDataNum, "达标已分发量:", okIsGiveDataNum, "达标待分发量:", okNotGiveDataNum, "达标已标注量:", okIsTagDataNum)
+		qu.Debug(" 未达标量:", IsNoOkAllDataNum, " 未达标已分发量:", IsNoOkIsGiveDataNum, " 未达标待分发量:", IsNotOkNotGiveDataNum, " 未达标已标注量:", IsNotOkIsTagDataNum)
 		f.T["s_projectid"] = projectid
 		f.T["allDataNum"] = allDataNum
-		f.T["noTagAllDataNum"] = noTagAllDataNum
-		f.T["noTagGiveDataNum"] = noTagGiveDataNum
-		f.T["noTagNoGiveDataNum"] = noTagNoGiveDataNum
-		f.T["tagAllDataNum"] = tagAllDataNum
-		f.T["tagGiveDataNum"] = tagGiveDataNum
-		f.T["tagNoGiveDataNum"] = tagNoGiveDataNum
+		f.T["okAllDataNum"] = okAllDataNum
+		f.T["okIsGiveDataNum"] = okIsGiveDataNum
+		f.T["okNotGiveDataNum"] = okNotGiveDataNum
+		f.T["IsNoOkAllDataNum"] = IsNoOkAllDataNum
+		f.T["IsNoOkIsGiveDataNum"] = IsNoOkIsGiveDataNum
+		f.T["IsNotOkNotGiveDataNum"] = IsNotOkNotGiveDataNum
 		f.T["allGiveDataNum"] = allGiveDataNum
 		f.T["allNoGiveDataNum"] = allNoGiveDataNum
+		f.T["allIsTagDataNum"] = allIsTagDataNum
+		f.T["okIsTagDataNum"] = okIsTagDataNum
+		f.T["IsNotOkIsTagDataNum"] = IsNotOkIsTagDataNum
 		_ = f.Render("project/project_clear.html", &f.T)
 	}
 
@@ -304,6 +317,7 @@ func (f *Front) ProjectTaskSave() {
 	var groupArr []map[string]interface{}
 	var taskArr []map[string]interface{}
 	var groupIdArr []string
+	var groupTaskIdArr []string
 	groupIdTask := map[string]util.Task{}
 	success := false
 	msg := ""
@@ -328,6 +342,7 @@ func (f *Front) ProjectTaskSave() {
 			givenum := qu.IntAll(groupInfo["i_givenum"])
 			groupTaskId := primitive.NewObjectID()
 			groupTaskIdStr := mongodb.BsonIdToSId(groupTaskId)
+			groupTaskIdArr = append(groupTaskIdArr, groupTaskIdStr)
 			gt := util.Task{
 				UserId:  groupId,
 				GiveNum: givenum,
@@ -360,6 +375,9 @@ func (f *Front) ProjectTaskSave() {
 				"v_groupids": map[string]interface{}{
 					"$each": groupIdArr,
 				},
+				"v_grouptaskids": map[string]interface{}{
+					"$each": groupTaskIdArr,
+				},
 			},
 		})
 		if !success {

+ 88 - 15
src/front/user.go

@@ -332,6 +332,7 @@ func (f *Front) UserTaskSave() {
 	user := f.GetSession("user").(map[string]interface{})
 	username := qu.ObjToString(user["s_name"])
 	var taskArr []map[string]interface{}
+	var userTaskIdArr []string
 	userTaskIdInfo := map[string]Task{}
 	success := false
 	msg := ""
@@ -357,6 +358,7 @@ func (f *Front) UserTaskSave() {
 			givenum := qu.IntAll(userInfo["i_givenum"])
 			userTaskId := primitive.NewObjectID()
 			userTaskIdStr := mgo.BsonIdToSId(userTaskId)
+			userTaskIdArr = append(userTaskIdArr, userTaskIdStr)
 			ut := Task{
 				UserId:  userid,
 				GiveNum: givenum,
@@ -385,22 +387,34 @@ func (f *Front) UserTaskSave() {
 		}
 	}
 	if len(taskArr) > 0 {
-		success = Mgo.SaveBulk(TASKCOLLNAME, taskArr...) //用户分发任务
-		if success {
-			//用户分发任务后更新该用户组任务的状态和开始时间
-			Mgo.Update(TASKCOLLNAME,
-				map[string]interface{}{
-					"_id":      mgo.StringTOBsonId(groupTaskId),
-					"s_status": "未开始",
+		//分发数据后更新对应用户组任务信息
+		success = Mgo.UpdateById(TASKCOLLNAME, groupTaskId, map[string]interface{}{
+			"$push": map[string]interface{}{
+				"v_sonids": map[string]interface{}{
+					"$each": userTaskIdArr,
 				},
-				map[string]interface{}{
-					"$set": map[string]interface{}{
-						"s_status":    "进行中",
-						"i_starttime": time.Now().Unix(),
-					}},
-				false, false)
-			msg = "任务分发成功"
-			UpdateSourceTaskInfo(sourcetaskinfo, groupTaskId, userTaskIdInfo) //用户组分发任务成功后,给数据源打上用户组标识,同时生成任务临时表
+			},
+		})
+		if !success {
+			msg = "更新用户组任务:" + groupTaskId + "关联用户任务失败"
+		} else { //用户分发任务
+			success = Mgo.SaveBulk(TASKCOLLNAME, taskArr...)
+			if success {
+				//用户分发任务后更新该用户组任务的状态和开始时间
+				Mgo.Update(TASKCOLLNAME,
+					map[string]interface{}{
+						"_id":      mgo.StringTOBsonId(groupTaskId),
+						"s_status": "未开始",
+					},
+					map[string]interface{}{
+						"$set": map[string]interface{}{
+							"s_status":    "进行中",
+							"i_starttime": time.Now().Unix(),
+						}},
+					false, false)
+				msg = "任务分发成功"
+				UpdateSourceTaskInfo(sourcetaskinfo, groupTaskId, userTaskIdInfo) //用户分发任务成功后,同时更新任务临时表
+			}
 		}
 	}
 }
@@ -448,6 +462,18 @@ func (f *Front) UerTaskList() {
 	}
 }
 
+// UserTaskRetrieve 用户任务收回
+func (f *Front) UserTaskRetrieve() {
+	defer qu.Catch()
+	user := f.GetSession("user").(map[string]interface{})
+	username := qu.ObjToString(user["s_name"])
+	userTaskId := f.GetString("taskid")               //用户任务id
+	sourceTaskInfo := f.GetString("s_sourcetaskinfo") //临时表
+	msg, count, success := RetrieveTaskByUser(sourceTaskInfo, username, userTaskId)
+	//userTask, _ := Mgo.FindById(TASKCOLLNAME, userTaskId, nil)
+	f.ServeJson(map[string]interface{}{"success": success, "count": count, "msg": msg})
+}
+
 // UpdateSourceTaskInfo 用户分发任务成功后更新临时任务表
 func UpdateSourceTaskInfo(sourcetaskinfo, groupTaskId string, userTaskIdInfo map[string]Task) {
 	defer qu.Catch()
@@ -507,3 +533,50 @@ func UpdateSourceTaskInfo(sourcetaskinfo, groupTaskId string, userTaskIdInfo map
 		lock.Unlock()
 	}
 }
+
+// RetrieveTaskByUser 用户收回任务
+func RetrieveTaskByUser(sourceTaskInfo, username string, userTaskIds ...string) (allMsg string, allCount int, allSuccess bool) {
+	defer qu.Catch()
+	allSuccess = true
+	for _, taskId := range userTaskIds {
+		query := map[string]interface{}{
+			"s_usertaskid": taskId,
+			"b_isgiveuser": true,
+			"b_iscomplete": false,
+		}
+		count := Mgo.Count(sourceTaskInfo, query)
+		success := false
+		qu.Debug("Find Task Id:", taskId, " Retrieve Count:", count)
+		if count > 0 {
+			set := map[string]interface{}{
+				"b_isgiveuser": false,
+				"i_updatetime": time.Now().Unix(),
+			}
+			unset := map[string]interface{}{
+				"s_usertaskid": "",
+				"s_userid":     "",
+			}
+			success = Mgo.Update(sourceTaskInfo, query, map[string]interface{}{"$set": set, "$unset": unset}, false, false)
+			qu.Debug("User Task", taskId, "Retrieve Data:", success)
+			if success {
+				allCount += count
+				//收回成功,更新task信息
+				Mgo.UpdateById(TASKCOLLNAME, taskId, map[string]interface{}{
+					"$set": map[string]interface{}{
+						"s_status":       "已完成",
+						"i_updatetime":   time.Now().Unix(),
+						"s_updateperson": username,
+						"s_progress":     "100%",
+					},
+					"$inc": map[string]interface{}{ //更新数据量
+						"i_givenum": -count,
+					},
+				})
+			} else {
+				allMsg += "任务ID:" + taskId + "更新失败"
+				allSuccess = false
+			}
+		}
+	}
+	return
+}

+ 5 - 0
src/main.go

@@ -33,6 +33,11 @@ func init() {
 }
 
 func main() {
+	//Mgo.UpdateById("test11", "61a9975a180a78e6edf8285d", map[string]interface{}{
+	//	"$inc": map[string]interface{}{
+	//		"count": -555,
+	//	},
+	//})
 	//success := false
 	//msg := ""
 	//successNum := int64(0)

+ 20 - 20
src/web/templates/project/project_clear.html

@@ -26,19 +26,19 @@
                                 </h3>
                                 <div class="form-group" style="margin-left: 15px">
                                     <span class="form-inline panel-body">分发总量/数据总量(条):
-                                        <input type="text" class="form-control" readonly value="{{.T.allNoGiveDataNum}}/{{.T.allGiveDataNum}}">
+                                        <input type="text" class="form-control" readonly value="{{.T.allGiveDataNum}}/{{.T.allDataNum}}">
                                     </span>
                                 </div>
                                 <div class="form-group" style="margin-left: 10px">
                                     <div class="col-xs-6" style="width: auto">
                                         <label class="form-inline">数据总量:
-                                        <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allGiveDataNum}}"></label>
+                                        <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已分发:
-                                        <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                        <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">待分发:
-                                        <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                        <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allNoGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已标注:
-                                        <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                        <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allIsTagDataNum}}"></label>
                                     </div>
                                     <div class="col-xs-6 form-group">
                                         <label class="form-inline">操作:
@@ -51,13 +51,13 @@
                                 <div class="form-group" style="margin-left: 10px">
                                     <div class="col-xs-6" style="width: auto">
                                         <label class="form-inline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;达标:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.okAllDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已分发:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.okIsGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">待分发:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.okNotGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已标注:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.okIsTagDataNum}}"></label>
                                     </div>
                                     <div class="col-xs-6 form-group">
                                         <label class="form-inline">操作:
@@ -70,13 +70,13 @@
                                 <div class="form-group" style="margin-left: 10px">
                                     <div class="col-xs-6" style="width: auto">
                                         <label class="form-inline">&nbsp;&nbsp;&nbsp;&nbsp;未达标:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.IsNoOkAllDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已分发:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.IsNoOkIsGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">待分发:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.IsNotOkNotGiveDataNum}}"></label>
                                         <label class="form-inline" style="margin-left: 20px">已标注:
-                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.IsNotOkIsTagDataNum}}"></label>
                                     </div>
                                     <div class="col-xs-6 form-group">
                                         <label class="form-inline">操作:
@@ -248,11 +248,11 @@
             "info": true,
             "autoWidth": false,
             "serverSide": true,
-            "ajax": {
-                "url": "/front/project/task/list",
-                "type": "post",
-                "data": {"status": "-1"}
-            },
+            // "ajax": {
+            //     "url": "/front/project/task/list",
+            //     "type": "post",
+            //     "data": {"status": "-1"}
+            // },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"
             },
@@ -293,9 +293,9 @@
         });
 
         $.ajax({
-            url: "/front/project/clear/",
+            url: "/front/project/task/list",
             type: "POST",
-            data: {"s_projectid": projectid},
+            data: {"pid`": projectid},
             success: function (r) {
                 console.log(r)
             }

+ 1 - 1
src/web/templates/project/project_list.html

@@ -287,7 +287,7 @@
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
                             '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">编辑</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-warning" href="/front/project/clear?pid=' + val + '">清洗</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-warning" href="/front/project/task/list?pid=' + val + '">清洗</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-info" onclick="del(\'' + val + '\')">判重</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-default" href="">完成</a>&nbsp;&nbsp;<br>' +
                             '<div style="margin-top: 5px">' +