|
@@ -3,8 +3,10 @@ package front
|
|
import (
|
|
import (
|
|
"fmt"
|
|
"fmt"
|
|
"github.com/tealeg/xlsx"
|
|
"github.com/tealeg/xlsx"
|
|
|
|
+ "mongodb"
|
|
"os"
|
|
"os"
|
|
qu "qfw/util"
|
|
qu "qfw/util"
|
|
|
|
+ "strconv"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
"util"
|
|
"util"
|
|
@@ -63,8 +65,25 @@ func (f *Front) GroupTaskListByAdmin() {
|
|
map[string]interface{}{"s_departname": map[string]interface{}{"$regex": search}},
|
|
map[string]interface{}{"s_departname": map[string]interface{}{"$regex": search}},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- list, _ := util.Mgo.Find(util.TASKCOLLNAME, query, nil, nil, false, start, limit)
|
|
|
|
count := util.Mgo.Count(util.TASKCOLLNAME, query)
|
|
count := util.Mgo.Count(util.TASKCOLLNAME, query)
|
|
|
|
+ list, _ := util.Mgo.Find(util.TASKCOLLNAME, query, map[string]interface{}{"_id": -1}, nil, false, start, limit)
|
|
|
|
+ for _, l := range *list {
|
|
|
|
+ if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
|
|
|
|
+ //groupId := qu.ObjToString(l["s_groupid"])
|
|
|
|
+ groupTaskId := mongodb.BsonIdToSId(l["_id"])
|
|
|
|
+ giveNum := qu.IntAll(l["i_givenum"])
|
|
|
|
+ sourceinfo := qu.ObjToString(l["s_sourceinfo"])
|
|
|
|
+ //tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_isgivegroup": true, "s_grouptaskid": groupTaskId, "b_istag": true})
|
|
|
|
+ tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})
|
|
|
|
+ progressFloat := float64(tagNum) / float64(giveNum)
|
|
|
|
+ value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", progressFloat), 64)
|
|
|
|
+ progress := fmt.Sprint(value*100) + "%"
|
|
|
|
+ l["s_progress"] = progress
|
|
|
|
+ //同步数据库
|
|
|
|
+ util.Mgo.UpdateById(util.TASKCOLLNAME, l["_id"], map[string]interface{}{"$set": map[string]interface{}{"s_progress": progress}})
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
|
|
f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
|
|
} else {
|
|
} else {
|
|
_ = f.Render("project/task_list.html")
|
|
_ = f.Render("project/task_list.html")
|
|
@@ -76,42 +95,42 @@ func (f *Front) GroupTaskDeliver() {
|
|
defer qu.Catch()
|
|
defer qu.Catch()
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
username := qu.ObjToString(user["s_login"]) //当前登录用户
|
|
username := qu.ObjToString(user["s_login"]) //当前登录用户
|
|
- success := true
|
|
|
|
|
|
+ success := false
|
|
msg := ""
|
|
msg := ""
|
|
- taskId := f.GetString("taskid") //用户组任务id
|
|
|
|
- qu.Debug("Group Task ID:", taskId)
|
|
|
|
- groupTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, taskId, map[string]interface{}{"v_sonids": 1})
|
|
|
|
|
|
+ groupTaskId := f.GetString("taskid") //用户组任务id
|
|
|
|
+ qu.Debug("Group Task ID:", groupTaskId)
|
|
|
|
+ groupTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, groupTaskId, map[string]interface{}{"v_sonids": 1})
|
|
if groupTask != nil && len(*groupTask) > 0 {
|
|
if groupTask != nil && len(*groupTask) > 0 {
|
|
sonUserIds := (*groupTask)["v_sonids"].([]interface{})
|
|
sonUserIds := (*groupTask)["v_sonids"].([]interface{})
|
|
if len(sonUserIds) > 0 {
|
|
if len(sonUserIds) > 0 {
|
|
- for _, id := range sonUserIds {
|
|
|
|
- userTaskId := qu.ObjToString(id)
|
|
|
|
- userTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, userTaskId, map[string]interface{}{"s_status": 1})
|
|
|
|
- status := qu.ObjToString((*userTask)["s_status"])
|
|
|
|
- if status != "已完成" || status != "已关闭" {
|
|
|
|
- success = false
|
|
|
|
- msg = "任务暂未完成"
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if success { //用户组下用户任务全部完成,更新该用户组任务状态
|
|
|
|
- success = util.Mgo.UpdateById(util.TASKCOLLNAME, taskId, map[string]interface{}{
|
|
|
|
|
|
+ sourceInfo := qu.ObjToString((*groupTask)["s_sourceinfo"])
|
|
|
|
+ dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})
|
|
|
|
+ taskCount := util.Mgo.Count(util.TASKCOLLNAME, map[string]interface{}{"s_parentid": groupTaskId, "s_status": map[string]interface{}{"$in": []string{"未开始", "进行中"}}})
|
|
|
|
+ if dataCount == 0 && taskCount == 0 {
|
|
|
|
+ success = util.Mgo.UpdateById(util.TASKCOLLNAME, groupTaskId, map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"i_completetime": time.Now().Unix(),
|
|
"i_completetime": time.Now().Unix(),
|
|
"s_updateperson": username,
|
|
"s_updateperson": username,
|
|
"i_updatetime": time.Now().Unix(),
|
|
"i_updatetime": time.Now().Unix(),
|
|
"s_status": "已完成",
|
|
"s_status": "已完成",
|
|
|
|
+ "s_progress": "100%",
|
|
},
|
|
},
|
|
})
|
|
})
|
|
if !success {
|
|
if !success {
|
|
msg = "更新任务信息失败"
|
|
msg = "更新任务信息失败"
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ if taskCount != 0 {
|
|
|
|
+ msg += "用户任务未全部完成;"
|
|
|
|
+ }
|
|
|
|
+ if dataCount != 0 {
|
|
|
|
+ msg += "数据未全部标注;"
|
|
|
|
+ }
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- success = false
|
|
|
|
msg = "任务暂未分配"
|
|
msg = "任务暂未分配"
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- success = false
|
|
|
|
msg = "查询任务失败"
|
|
msg = "查询任务失败"
|
|
}
|
|
}
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|