|
@@ -188,35 +188,40 @@ func (f *Front) ProjectComplete() {
|
|
|
msg := ""
|
|
|
projectId := f.GetString("s_projectid")
|
|
|
sourceInfo := f.GetString("s_sourceinfo")
|
|
|
-
|
|
|
- query := map[string]interface{}{
|
|
|
- "s_projectid": projectId,
|
|
|
- "s_status": map[string]interface{}{
|
|
|
- "$in": []string{"未开始", "进行中"},
|
|
|
- },
|
|
|
- }
|
|
|
- taskCount := util.Mgo.Count(util.TASKCOLLNAME, query) //查询未完成的用户组和用户任务
|
|
|
- dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"b_istag": false}) //未标注数据个数
|
|
|
- qu.Debug("No Tag Count:", dataCount)
|
|
|
- if dataCount == 0 && taskCount == 0 { //全部完成
|
|
|
- success = util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectId, map[string]interface{}{
|
|
|
- "$set": map[string]interface{}{
|
|
|
- "s_status": "已完成",
|
|
|
- "i_completetime": time.Now().Unix(),
|
|
|
- "s_updateperson": username,
|
|
|
- "i_updatetime": time.Now().Unix(),
|
|
|
+ status := f.GetString("s_status")
|
|
|
+ if status == "进行中" {
|
|
|
+ //查询该项目下未完成的用户组和用户任务
|
|
|
+ query := map[string]interface{}{
|
|
|
+ "s_projectid": projectId,
|
|
|
+ "s_status": map[string]interface{}{
|
|
|
+ "$in": []string{"未开始", "进行中"},
|
|
|
},
|
|
|
- })
|
|
|
- if !success {
|
|
|
- msg = "更新项目失败"
|
|
|
- }
|
|
|
- } else {
|
|
|
- if taskCount != 0 {
|
|
|
- msg += "任务未全部完成;"
|
|
|
}
|
|
|
- if dataCount != 0 {
|
|
|
- msg += "数据未全部标注;"
|
|
|
+ taskCount := util.Mgo.Count(util.TASKCOLLNAME, query)
|
|
|
+ dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"b_istag": false}) //未标注数据个数
|
|
|
+ qu.Debug("No Tag Count:", dataCount)
|
|
|
+ if dataCount == 0 && taskCount == 0 { //全部完成
|
|
|
+ success = util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectId, map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{
|
|
|
+ "s_status": "已完成",
|
|
|
+ "i_completetime": time.Now().Unix(),
|
|
|
+ "s_updateperson": username,
|
|
|
+ "i_updatetime": time.Now().Unix(),
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if !success {
|
|
|
+ msg = "更新项目失败"
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if taskCount != 0 {
|
|
|
+ msg += "任务未全部完成;"
|
|
|
+ }
|
|
|
+ if dataCount != 0 {
|
|
|
+ msg += "数据未全部标注;"
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ msg = "项目未开始"
|
|
|
}
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
|
}
|
|
@@ -228,7 +233,6 @@ func (f *Front) ProjectQualityAssessment() {
|
|
|
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, "v_fields": 1})
|
|
|
if project != nil && len(*project) > 0 {
|
|
|
if isAssessment, ok := (*project)["b_isassessment"].(bool); ok && !isAssessment {
|
|
@@ -260,8 +264,8 @@ func (f *Front) ProjectQualityAssessment() {
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
|
}
|
|
|
|
|
|
-// ProjectTaskList 用户组任务分发列表
|
|
|
-func (f *Front) ProjectTaskList() {
|
|
|
+// ProjectGroupTaskList 用户组任务分发列表
|
|
|
+func (f *Front) ProjectGroupTaskList() {
|
|
|
defer qu.Catch()
|
|
|
projectid := f.GetString("pid") //项目id
|
|
|
qu.Debug("Project Id:", projectid)
|
|
@@ -347,8 +351,8 @@ func (f *Front) ProjectTaskList() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// ProjectTaskSave 用户组任务分发
|
|
|
-func (f *Front) ProjectTaskSave() {
|
|
|
+// ProjectGroupTaskSave 用户组任务分发
|
|
|
+func (f *Front) ProjectGroupTaskSave() {
|
|
|
defer qu.Catch()
|
|
|
var groupArr []map[string]interface{}
|
|
|
var taskArr []map[string]interface{}
|
|
@@ -459,8 +463,8 @@ func (f *Front) ProjectGetEntnameList() {
|
|
|
|
|
|
}
|
|
|
|
|
|
-// ProjectTaskRepulse 用户组任务打回
|
|
|
-func (f *Front) ProjectTaskRepulse() {
|
|
|
+// ProjectGroupTaskRepulse 用户组任务打回
|
|
|
+func (f *Front) ProjectGroupTaskRepulse() {
|
|
|
defer qu.Catch()
|
|
|
success := false
|
|
|
msg := ""
|
|
@@ -504,8 +508,8 @@ func (f *Front) ProjectTaskRepulse() {
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
|
}
|
|
|
|
|
|
-// ProjectTaskRetrieve 用户组任务收回
|
|
|
-func (f *Front) ProjectTaskRetrieve() {
|
|
|
+// ProjectGroupTaskRetrieve 用户组任务收回
|
|
|
+func (f *Front) ProjectGroupTaskRetrieve() {
|
|
|
defer qu.Catch()
|
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
|
username := qu.ObjToString(user["s_login"])
|
|
@@ -559,8 +563,8 @@ func (f *Front) ProjectTaskRetrieve() {
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg, "count": count})
|
|
|
}
|
|
|
|
|
|
-// ProjectTaskClose 用户组任务关闭
|
|
|
-func (f *Front) ProjectTaskClose() {
|
|
|
+// ProjectGroupTaskClose 用户组任务关闭
|
|
|
+func (f *Front) ProjectGroupTaskClose() {
|
|
|
defer qu.Catch()
|
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
|
username := qu.ObjToString(user["s_login"])
|
|
@@ -689,25 +693,30 @@ func DeleleDataTagInfo(sourceinfo string) {
|
|
|
update = append(update, map[string]interface{}{"_id": tmp["_id"]})
|
|
|
tagInfo, _ := tmp["v_taginfo"].(map[string]interface{})
|
|
|
checkInfo, _ := tmp["v_check"].(map[string]interface{})
|
|
|
- id := mongodb.BsonIdToSId(tmp["_id"])
|
|
|
- if id == "60b99c2d72c25c51c492af6a" {
|
|
|
- qu.Debug(tagInfo, checkInfo)
|
|
|
- }
|
|
|
set := map[string]interface{}{
|
|
|
"b_cleartag": true,
|
|
|
}
|
|
|
- if len(tagInfo) != 0 && len(checkInfo) != 0 {
|
|
|
+ unset := map[string]interface{}{}
|
|
|
+ if len(tagInfo) != 0 && len(checkInfo) != 0 { //有质检信息,删除v_taginfo未质检的字段
|
|
|
for f, _ := range tagInfo {
|
|
|
if checkInfo[f] == nil {
|
|
|
delete(tagInfo, f)
|
|
|
}
|
|
|
}
|
|
|
set["v_taginfo"] = tagInfo
|
|
|
+ } else if len(tagInfo) != 0 && len(checkInfo) == 0 { //没有质检删除v_taginfo字段
|
|
|
+ unset["v_taginfo"] = ""
|
|
|
+ }
|
|
|
+ if len(unset) > 0 {
|
|
|
+ update = append(update, map[string]interface{}{
|
|
|
+ "$set": set,
|
|
|
+ "$unset": unset,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ update = append(update, map[string]interface{}{
|
|
|
+ "$set": set,
|
|
|
+ })
|
|
|
}
|
|
|
-
|
|
|
- update = append(update, map[string]interface{}{
|
|
|
- "$set": set,
|
|
|
- })
|
|
|
lock.Lock()
|
|
|
updateArr = append(updateArr, update)
|
|
|
if len(updateArr) > 500 {
|