|
@@ -66,11 +66,11 @@ func (f *Front) ProjectSave() {
|
|
|
importDataNum := 0 //查询数量
|
|
|
var s_rulename []string //规则
|
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
|
- username := qu.ObjToString(user["s_name"]) //当前登录用户
|
|
|
- stype := f.GetString("s_type") //新建项目类型:数据库导入、excel导入
|
|
|
- s_sourceinfo := f.GetString("s_sourceinfo") //数据表
|
|
|
- s_sourceinfo = "f_sourceinfo_" + s_sourceinfo
|
|
|
- if s_sourceinfo == "" {
|
|
|
+ username := qu.ObjToString(user["s_name"]) //当前登录用户
|
|
|
+ stype := f.GetString("s_type") //新建项目类型:数据库导入、excel导入
|
|
|
+ s_sourceinfoTmp := f.GetString("s_sourceinfo") //数据表
|
|
|
+ s_sourceinfo := "f_sourceinfo_" + s_sourceinfoTmp
|
|
|
+ if stype != "edit" && s_sourceinfo == "" {
|
|
|
f.ServeJson(map[string]interface{}{"success": false, "msg": "缺少数据存储表名"})
|
|
|
return
|
|
|
}
|
|
@@ -79,6 +79,7 @@ func (f *Front) ProjectSave() {
|
|
|
"s_name": s_name,
|
|
|
}
|
|
|
set := map[string]interface{}{}
|
|
|
+ qu.Debug(stype)
|
|
|
//导入数据
|
|
|
if stype == "excel" { //excel导入
|
|
|
s_entname = f.GetString("s_entname") //公司名称
|
|
@@ -90,21 +91,24 @@ func (f *Front) ProjectSave() {
|
|
|
rulename := f.GetString("s_rulename") //规则名称
|
|
|
s_rulename = strings.Split(rulename, ",")
|
|
|
mf, _, err := f.GetFile("xlsx")
|
|
|
+ qu.Debug(s_entname, s_departname, s_rulename)
|
|
|
+
|
|
|
if err == nil {
|
|
|
importDataNum = ImportDataByExcel(s_sourceinfo, mf, &success, &msg, &successNum)
|
|
|
}
|
|
|
//保存项目信息
|
|
|
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": "excel", //导入类型
|
|
|
+ "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_sourcetaskinfo": "s_sourcetaskinfo_" + s_sourceinfoTmp, //源数据表
|
|
|
+ "s_createname": username, //创建人
|
|
|
+ "s_status": "未开始", //项目状态
|
|
|
+ "i_createtime": time.Now().Unix(), //创建时间
|
|
|
+ "s_importtype": "excel", //导入类型
|
|
|
}
|
|
|
} else if stype == "coll" { //数据库导入
|
|
|
historyid := f.GetString("s_historyid")
|
|
@@ -174,57 +178,6 @@ 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)
|
|
|
-// }
|
|
|
-//
|
|
|
-//}
|
|
|
-
|
|
|
// ProjectTaskList 用户组任务分发列表
|
|
|
func (f *Front) ProjectTaskList() {
|
|
|
defer qu.Catch()
|
|
@@ -322,17 +275,20 @@ func (f *Front) ProjectTaskSave() {
|
|
|
success := false
|
|
|
msg := ""
|
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
|
- username := qu.ObjToString(user["s_name"]) //当前登录用户
|
|
|
- projectid := f.GetString("s_projectid") //项目标识
|
|
|
- projectname := f.GetString("s_projectname") //项目名称
|
|
|
- sourceinfo := f.GetString("s_sourceinfo") //源数据表
|
|
|
- sourcetaskinfo := "f_sourcetaskinfo_" + strings.ReplaceAll(sourceinfo, "f_sourceinfo_", "") //任务日志表
|
|
|
+ username := qu.ObjToString(user["s_name"]) //当前登录用户
|
|
|
+ projectid := f.GetString("s_projectid") //项目标识
|
|
|
+ project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, nil)
|
|
|
+ projectname := qu.ObjToString((*project)["s_projectname"]) //项目名称
|
|
|
+ sourceinfo := qu.ObjToString((*project)["s_sourceinfo"]) //源数据表
|
|
|
+ sourcetaskinfo := qu.ObjToString((*project)["s_sourcetaskinfo"]) //任务日志表
|
|
|
group := f.GetString("s_group")
|
|
|
stype := f.GetString("s_type")
|
|
|
+ qu.Debug("项目id:", projectid, " 项目名称:", projectname, "sourcetaskinfo:", sourcetaskinfo)
|
|
|
if err := json.Unmarshal([]byte(group), &groupArr); err != nil {
|
|
|
qu.Debug("GroupInfo Unmarshal Failed:", err)
|
|
|
msg = "用户组信息解析失败"
|
|
|
} else {
|
|
|
+ qu.Debug("用户组信息:", groupArr)
|
|
|
if stype == "notag" { //如果分发的是达标数据且进行了初步质检,将没有质检记录的字段从v_taginfo标注记录中删除
|
|
|
DeleleDataTagInfo(sourceinfo)
|
|
|
}
|
|
@@ -349,27 +305,30 @@ func (f *Front) ProjectTaskSave() {
|
|
|
}
|
|
|
groupIdTask[groupTaskIdStr] = gt
|
|
|
groupTask := map[string]interface{}{
|
|
|
- "_id": groupTaskId, //生成任务id
|
|
|
- "s_projectid": projectid, //项目标识
|
|
|
- "s_projectname": projectname, //项目名称
|
|
|
- "s_status": "未开始", //任务状态
|
|
|
- "s_personid": qu.ObjToString(groupInfo["s_personid"]), //任务负责人标识
|
|
|
- "s_personname": qu.ObjToString(groupInfo["s_personname"]), //任务负责人
|
|
|
- "s_groupname": qu.ObjToString(groupInfo["s_groupname"]), //用户组名称
|
|
|
- "s_groupid": groupId, //用户组标识
|
|
|
- "i_givenum": givenum, //分发数据量
|
|
|
- "s_createname": username, //创建人
|
|
|
- "i_createtime": time.Now().Unix(), //创建时间
|
|
|
- "s_progress": "0%", //完成进度
|
|
|
- "s_sourceinfo": sourceinfo, //源数据表
|
|
|
- "s_sourcetaskinfo": sourcetaskinfo, //任务日志表
|
|
|
- "s_stype": "group", //任务类型
|
|
|
+ "_id": groupTaskId, //生成任务id
|
|
|
+ "s_projectid": projectid, //项目标识
|
|
|
+ "s_projectname": projectname, //项目名称
|
|
|
+ "s_status": "未开始", //任务状态
|
|
|
+ "s_personid": qu.ObjToString(groupInfo["s_personid"]), //任务负责人标识
|
|
|
+ "s_personname": qu.ObjToString(groupInfo["s_personname"]), //任务负责人
|
|
|
+ "s_groupname": qu.ObjToString(groupInfo["s_groupname"]), //用户组名称
|
|
|
+ "s_groupid": groupId, //用户组标识
|
|
|
+ "i_givenum": givenum, //分发数据量
|
|
|
+ "s_createname": username, //创建人
|
|
|
+ "i_createtime": time.Now().Unix(), //创建时间
|
|
|
+ "s_progress": "0%", //完成进度
|
|
|
+ "s_sourceinfo": sourceinfo, //源数据表
|
|
|
+ "s_sourcetaskinfo": sourcetaskinfo, //任务日志表
|
|
|
+ "s_stype": "group", //任务类型
|
|
|
+ "s_entname": qu.ObjToString((*project)["s_entname"]), //公司名称
|
|
|
+ "s_departname": qu.ObjToString((*project)["s_departname"]), //部门名称
|
|
|
+ "s_rulename": qu.ObjToString((*project)["s_rulename"]), //规则名称
|
|
|
}
|
|
|
taskArr = append(taskArr, groupTask)
|
|
|
}
|
|
|
}
|
|
|
if len(taskArr) > 0 {
|
|
|
- //分发数据后更新项目中用户组标识信息
|
|
|
+ //分发数据后更新项目中用户组标识信息和用户组任务id
|
|
|
success = util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{
|
|
|
"$push": map[string]interface{}{
|
|
|
"v_groupids": map[string]interface{}{
|
|
@@ -390,7 +349,7 @@ func (f *Front) ProjectTaskSave() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- qu.Debug("Msg:", msg)
|
|
|
+ qu.Debug("Success:", success, "Msg:", msg)
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
|
}
|
|
|
|
|
@@ -1054,21 +1013,3 @@ func UpdateMarkColl(bidData, markData, tagInfoMap, baseInfoMap *map[string]inter
|
|
|
(*baseInfoMap)["i_ckdata"] = 1
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-func (f *Front) UserTaskList() {
|
|
|
- qu.Catch()
|
|
|
- if f.Method() == "POST" {
|
|
|
-
|
|
|
- } else {
|
|
|
- _ = f.Render("project/task_user_list.html")
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func (f *Front) GroupTaskList() {
|
|
|
- qu.Catch()
|
|
|
- if f.Method() == "POST" {
|
|
|
-
|
|
|
- } else {
|
|
|
- _ = f.Render("project/task_group_list.html")
|
|
|
- }
|
|
|
-}
|