jianghan7 1 年間 前
コミット
a44d945af8

+ 25 - 38
src/front/group.go

@@ -57,9 +57,7 @@ func (f *Front) GroupTaskListByGroup() {
 				//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})
+				tagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
 				decimalValue := decimal.NewFromFloat(value)
@@ -131,9 +129,7 @@ func (f *Front) GroupTaskListByAdmin() {
 				//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})
+				tagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
 				decimalValue := decimal.NewFromFloat(value)
@@ -188,8 +184,7 @@ func (f *Front) GroupUserTaskList() {
 		for _, l := range *list {
 			if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
 				giveNum := qu.IntAll(l["i_givenum"])
-				sourceinfo := qu.ObjToString(l["s_sourceinfo"])
-				tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": mongodb.BsonIdToSId(l["_id"]), "b_istag": true})
+				tagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_usertaskid": mongodb.BsonIdToSId(l["_id"]), "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
 				decimalValue := decimal.NewFromFloat(value)
@@ -203,13 +198,12 @@ func (f *Front) GroupUserTaskList() {
 		}
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
-		sourceinfo := f.GetString("s_sourceinfo")
 		//统计数据量
-		isGiveNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": true})     //已分发量
-		isNotGiveNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": false}) //待分发量
-		isTagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})           //已标注数量
-		isNotTagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})       //未标注数量
-		allNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId})                              //数据总量
+		isGiveNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": true})     //已分发量
+		isNotGiveNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": false}) //待分发量
+		isTagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})           //已标注数量
+		isNotTagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})       //未标注数量
+		allNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId})                              //数据总量
 		qu.Debug("数据总量:", allNum, "已分发量:", isGiveNum, "待分发量:", isNotGiveNum, "已标注量:", isTagNum, "未标注量:", isNotTagNum)
 		f.T["pid"] = pid
 		f.T["gid"] = groupId
@@ -237,12 +231,11 @@ func (f *Front) GroupTaskDeliver() {
 	msg := ""
 	groupTaskId := f.GetString("taskid") //用户组任务id
 	qu.Debug("Group Task ID:", groupTaskId)
-	groupTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, groupTaskId, map[string]interface{}{"v_sonids": 1, "s_sourceinfo": 1, "s_projectid": 1})
+	groupTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, groupTaskId, map[string]interface{}{"v_sonids": 1, "s_projectid": 1})
 	if groupTask != nil && len(*groupTask) > 0 {
 		sonUserIds := (*groupTask)["v_sonids"].([]interface{})
 		if len(sonUserIds) > 0 {
-			sourceInfo := qu.ObjToString((*groupTask)["s_sourceinfo"])
-			dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})
+			dataCount := util.Mgo.Count(util.DATACOLLNAME, 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{}{
@@ -272,18 +265,18 @@ func (f *Front) GroupTaskDeliver() {
 		msg = "查询任务失败"
 	}
 
-	sourinfo := qu.ObjToString((*groupTask)["s_sourceinfo"])
 	pid := qu.ObjToString((*groupTask)["s_projectid"])
 	// 组任务交付 默认保存质检统计结果
 	mp := make(map[string]interface{})
 	mp["s_username"] = username
 	mp["s_taskid"] = groupTaskId
 	mp["i_createtime"] = time.Now().Unix()
-	checkStat(sourinfo, groupTaskId, pid, mp)
+	checkStat(groupTaskId, pid, mp)
 	util.Mgo.Save("f_check_result", mp)
 
 	// 项目下的数据全部完成,项目中打上标记b_iscomplete
-	info, _ := util.Mgo.FindOneByField(sourinfo, map[string]interface{}{"b_istag": false}, map[string]interface{}{"s_status": 1})
+	pinfo, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, bson.M{"appid": 1})
+	info, _ := util.Mgo.FindOneByField(util.TASKCOLLNAME, map[string]interface{}{"b_istag": false, "appid": qu.ObjToString((*pinfo)["appid"])}, map[string]interface{}{"s_status": 1})
 	if len(*info) == 0 {
 		util.Mgo.UpdateById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"$set": map[string]interface{}{"b_iscomplete": true}})
 	}
@@ -293,10 +286,9 @@ func (f *Front) GroupTaskDeliver() {
 func (f *Front) TaskSyncJy() {
 	defer qu.Catch()
 	pid := f.GetString("pid")
-	sourceinfo := f.GetString("s_sourceinfo")
 	groupTaskId := f.GetString("taskid")
-	c := syncJyData(sourceinfo, groupTaskId, pid)
-	qu.Debug(sourceinfo, groupTaskId)
+	c := syncJyData(groupTaskId, pid)
+	qu.Debug(util.DATACOLLNAME, groupTaskId)
 	//info, _ := util.Mgo.FindById(util.TASKCOLLNAME, groupTaskId, bson.M{"i_givenum": 1})
 	if c > 0 {
 		util.Mgo.UpdateById(util.TASKCOLLNAME, groupTaskId, bson.M{"$set": bson.M{"sendflag": true}})
@@ -307,7 +299,7 @@ func (f *Front) TaskSyncJy() {
 
 }
 
-func syncJyData(source, tid, pid string) int {
+func syncJyData(tid, pid string) int {
 	sess := util.Mgo.GetMgoConn()
 	defer util.Mgo.DestoryMongoConn(sess)
 
@@ -321,7 +313,7 @@ func syncJyData(source, tid, pid string) int {
 	} else {
 		q = bson.M{"s_grouptaskid": tid, "sendflag": nil}
 	}
-	query := sess.DB(util.Mgo.DbName).C(source).Find(q).Select(nil).Iter()
+	query := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(q).Select(nil).Iter()
 	count := 0
 	for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
 		ch <- true
@@ -338,7 +330,7 @@ func syncJyData(source, tid, pid string) int {
 			}
 			info["isOptimization"] = 1
 			util.MgoJy.Save(util.JYPushColl, info)
-			util.Mgo.UpdateById(source, tmp["_id"], bson.M{"$set": bson.M{"sendflag": true}})
+			util.Mgo.UpdateById(util.DATACOLLNAME, tmp["_id"], bson.M{"$set": bson.M{"sendflag": true}})
 
 		}(tmp)
 		tmp = make(map[string]interface{})
@@ -348,7 +340,7 @@ func syncJyData(source, tid, pid string) int {
 	return count
 }
 
-func checkStat(sourceinfo, groupTaskId, pid string, mp map[string]interface{}) {
+func checkStat(groupTaskId, pid string, mp map[string]interface{}) {
 	sess := util.Mgo.GetMgoConn()
 	defer util.Mgo.DestoryMongoConn(sess)
 
@@ -362,7 +354,7 @@ func checkStat(sourceinfo, groupTaskId, pid string, mp map[string]interface{}) {
 	projcet, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"v_fields": 1})
 
 	query := map[string]interface{}{"s_grouptaskid": groupTaskId}
-	result := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(query).Iter()
+	result := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(query).Iter()
 
 	fields := qu.ObjArrToMapArr((*projcet)["v_fields"].([]interface{}))
 	fs := make(map[string]string)
@@ -751,9 +743,8 @@ func Method(lastTmp, tmp map[string]interface{}) (map[string]interface{}, bool)
 
 func Method1(tmp map[string]interface{}) int {
 	id := mongodb.BsonIdToSId(tmp["_id"])
-	sourceinfo := qu.ObjToString(tmp["s_sourceinfo"])
 	query := map[string]interface{}{"s_groupid": id, "b_isEff": true}
-	data, _ := util.Mgo.Find(sourceinfo, query, nil, `{"v_baseinfo": 1}`, false, -1, -1)
+	data, _ := util.Mgo.Find(util.DATACOLLNAME, query, nil, `{"v_baseinfo": 1}`, false, -1, -1)
 	if len(*data) > 0 {
 		count := 0
 		for _, m := range *data {
@@ -776,7 +767,6 @@ func (f *Front) CheckResultWb() {
 	defer qu.Catch()
 	pid := f.GetString("pid")
 	tid := f.GetString("tid")
-	sourceinfo := f.GetString("s_sourceinfo")
 	if f.Method() == "POST" {
 		query := map[string]interface{}{"s_taskid": tid}
 		info, _ := util.Mgo.FindOne("f_check_result", query)
@@ -794,7 +784,6 @@ func (f *Front) CheckResultWb() {
 
 		f.T["pid"] = pid
 		f.T["tid"] = tid
-		f.T["sourceinfo"] = sourceinfo
 		f.T["taskNum"] = (*info)["taskNum"]
 		f.T["taskTagNum"] = (*info)["taskNum"]
 		f.T["taskCheckNum"] = (*info)["taskCheckNum"]
@@ -810,10 +799,9 @@ func (f *Front) CheckResultWb() {
 
 func (f *Front) GroupExportData() {
 	defer qu.Catch()
-	sourceinfo := f.GetString("s_sourceinfo")
 	tid := f.GetString("taskid")
 	q := bson.M{"s_grouptaskid": tid}
-	count := util.Mgo.Count(sourceinfo, q)
+	count := util.Mgo.Count(util.DATACOLLNAME, q)
 	if count > 0 {
 		file, err := xlsx.OpenFile("web/model/taskexportdata.xlsx")
 		if err != nil {
@@ -837,7 +825,7 @@ func (f *Front) GroupExportData() {
 			"tagname2":                1,
 			"v_baseinfo.is_effective": 1,
 		}
-		list, _ := util.Mgo.Find(sourceinfo, q, nil, fields, false, -1, -1)
+		list, _ := util.Mgo.Find(util.DATACOLLNAME, q, nil, fields, false, -1, -1)
 		for _, l := range *list {
 			baseinfo := l["v_baseinfo"].(map[string]interface{})
 			if baseinfo["package"] != nil {
@@ -920,7 +908,6 @@ var FieldsMap = map[string]string{
 
 func (f *Front) GroupImportData() {
 	defer qu.Catch()
-	sourceinfo := f.GetString("s_sourceinfo")
 	mf, _, err := f.GetFile("xlsx")
 	if err != nil {
 		f.ServeJson(map[string]interface{}{"success": false, "msg": "数据导入失败"})
@@ -970,7 +957,7 @@ func (f *Front) GroupImportData() {
 					count++
 				}
 				if c1 > 0 && lastid == id {
-					info, _ := util.Mgo.FindById(sourceinfo, id, bson.M{"v_baseinfo.tagname": 1, "v_baseinfo.tagname2": 1, "v_baseinfo.s_winner": 1,
+					info, _ := util.Mgo.FindById(util.DATACOLLNAME, id, bson.M{"v_baseinfo.tagname": 1, "v_baseinfo.tagname2": 1, "v_baseinfo.s_winner": 1,
 						"v_baseinfo.bidamount": 1, "v_baseinfo.package": 1})
 					if len(*info) > 0 {
 						baseinfo := (*info)["v_baseinfo"].(map[string]interface{})
@@ -1019,7 +1006,7 @@ func (f *Front) GroupImportData() {
 			// 临时
 			update["tag"] = "临时"
 			lastid = id
-			util.Mgo.UpdateById(sourceinfo, id, bson.M{"$set": update})
+			util.Mgo.UpdateById(util.DATACOLLNAME, id, bson.M{"$set": update})
 		}
 	}
 	f.ServeJson(map[string]interface{}{"success": true, "msg": "数据导入成功", "count": count})

+ 45 - 39
src/front/project.go

@@ -101,7 +101,6 @@ func (f *Front) ProjectSave() {
 		s_rulename = strings.Split(rulename, ",")
 		mf, _, err := f.GetFile("xlsx")
 		qu.Debug(s_entname, s_departname, s_rulename)
-
 		if err == nil {
 			importDataNum, appid = ImportDataByExcel(mf, &success, &msg, &successNum, true)
 		}
@@ -333,12 +332,15 @@ func (f *Front) ProjectQualityAssessment() {
 	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, map[string]interface{}{"b_isassessment": 1, "appid": 1, "v_fields": 1})
 	if project != nil && len(*project) > 0 {
 		if isAssessment, ok := (*project)["b_isassessment"].(bool); ok && !isAssessment {
-
+			appid := qu.ObjToString((*project)["appid"])
 			// todo
+			util.Mgo.Update(util.DATACOLLNAME, bson.M{"appid": appid}, bson.M{"$set": bson.M{"b_istagging": true}}, false, true)
 			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)
+			success = true
 		} else if ok && isAssessment {
 			success = true
+			msg = "成功"
 		} else {
 			msg = "查询项目失败"
 		}
@@ -379,7 +381,6 @@ func (f *Front) ProjectGroupTaskList() {
 				//groupId := qu.ObjToString(l["s_groupid"])
 				groupTaskId := mongodb.BsonIdToSId(l["_id"])
 				giveNum := qu.IntAll(l["i_givenum"])
-				//tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_isgivegroup": true, "s_grouptaskid": groupTaskId, "b_istag": true})
 				tagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
@@ -417,6 +418,7 @@ func (f *Front) ProjectGroupTaskList() {
 			//qu.Debug("达标量:", okAllDataNum, "达标已分发量:", okIsGiveDataNum, "达标待分发量:", okNotGiveDataNum, "达标已标注量:", okIsTagDataNum)
 			//qu.Debug(" 未达标量:", IsNoOkAllDataNum, " 未达标已分发量:", IsNoOkIsGiveDataNum, " 未达标待分发量:", IsNotOkNotGiveDataNum, " 未达标已标注量:", IsNotOkIsTagDataNum)
 			f.T["s_projectid"] = projectid
+			f.T["appid"] = appid
 			f.T["allDataNum"] = allDataNum
 			f.T["okAllDataNum"] = okAllDataNum
 			f.T["okIsGiveDataNum"] = okIsGiveDataNum
@@ -452,8 +454,8 @@ func (f *Front) ProjectGroupTaskSave() {
 	username := qu.ObjToString(user["s_login"]) //当前登录用户
 	projectid := f.GetString("s_projectid")     //项目标识
 	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, projectid, nil)
-	projectname := qu.ObjToString((*project)["s_name"])      //项目名称
-	sourceinfo := qu.ObjToString((*project)["s_sourceinfo"]) //源数据表
+	projectname := qu.ObjToString((*project)["s_name"]) //项目名称
+	appid := qu.ObjToString((*project)["appid"])
 	group := f.GetString("s_group")
 	stype := f.GetString("s_type")
 	qu.Debug("项目id:", projectid, " 项目名称:", projectname)
@@ -466,7 +468,7 @@ func (f *Front) ProjectGroupTaskSave() {
 		//	DeleleDataTagInfo(sourceinfo)
 		//}
 		// 查询实际可分发数据量(未分发、未标注)
-		realNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_isgivegroup": false, "b_istag": false})
+		realNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"b_isgivegroup": false, "b_istag": false, "appid": appid})
 		for _, groupInfo := range groupArr {
 			groupId := qu.ObjToString(groupInfo["s_groupid"])
 			groupIdArr = append(groupIdArr, groupId)
@@ -501,7 +503,6 @@ func (f *Front) ProjectGroupTaskSave() {
 				"s_createname":  username,                                   //创建人
 				"i_createtime":  time.Now().Unix(),                          //创建时间
 				"s_progress":    "0%",                                       //完成进度
-				"s_sourceinfo":  sourceinfo,                                 //源数据表
 				"s_stype":       "group",                                    //任务类型
 				"s_entname":     qu.ObjToString((*project)["s_entname"]),    //公司名称
 				"s_departname":  qu.ObjToString((*project)["s_departname"]), //部门名称
@@ -530,7 +531,7 @@ func (f *Front) ProjectGroupTaskSave() {
 			success = util.Mgo.SaveBulk(util.TASKCOLLNAME, taskArr...)
 			if success {
 				msg = "任务分发成功"
-				UpdateSourceInfoByGroup(sourceinfo, stype, groupIdTask) //用户组分发任务成功后,给数据源打上用户组标识
+				UpdateSourceInfoByGroup(stype, groupIdTask) //用户组分发任务成功后,给数据源打上用户组标识
 			} else {
 				msg = "任务分发失败"
 			}
@@ -571,10 +572,10 @@ func (f *Front) ProjectGroupTaskRepulse() {
 	username := qu.ObjToString(user["s_login"])
 	//status := f.GetString("s_status")
 	groupTaskId := f.GetString("taskid")
-	sourceinfo := f.GetString("s_sourceinfo")
+	appid := f.GetString("appid")
 	currenttime := time.Now().Unix()
 	//更新数据源
-	success = util.Mgo.Update(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId}, map[string]interface{}{
+	success = util.Mgo.Update(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": groupTaskId, "appid": appid}, map[string]interface{}{
 		"$set": map[string]interface{}{
 			"b_istag":      false,
 			"b_check":      false, // 质检标记
@@ -630,7 +631,7 @@ func (f *Front) ProjectGroupTaskRetrieve() {
 	user := f.GetSession("user").(map[string]interface{})
 	username := qu.ObjToString(user["s_login"])
 	groupTaskId := f.GetString("taskid")
-	sourceInfo := f.GetString("s_sourceinfo")
+	appid := f.GetString("appid")
 	//status := f.GetString("s_status") //未开始、进行中
 	//giveNum, _ := f.GetInteger("i_givenum") //收回时要更新的分发数据量
 	msg := ""
@@ -662,7 +663,7 @@ func (f *Front) ProjectGroupTaskRetrieve() {
 				qu.Debug("userTaskIdStatus:", len(userTaskIdStatus))
 				if len(userTaskIdStatus) > 0 { //收回用户组下所有用户信息
 					//用户组收回时,若已有用户任务在未开始时收回或关闭,调用RetrieveTaskByUser返回的总收回量count就遗漏了用户收回或关闭任务的量
-					msg, _, success = RetrieveCloseTaskByUser(sourceInfo, username, userTaskIdStatus) //用户信息收回
+					msg, _, success = RetrieveCloseTaskByUser(username, userTaskIdStatus) //用户信息收回
 				} else { //用户组下所有用户任务都已完成
 					success = true
 				}
@@ -674,11 +675,12 @@ func (f *Front) ProjectGroupTaskRetrieve() {
 		}
 	}
 	if success { //所有用户信息收回成功后,更新用户组任务相关信息
-		count = util.Mgo.Count(sourceInfo, map[string]interface{}{ //统计该用户组任务下未标注的数据量
+		count = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{ //统计该用户组任务下未标注的数据量
+			"appid":         appid,
 			"s_grouptaskid": groupTaskId,
 			"b_istag":       false,
 		})
-		UpdateGroupTaskAndSourceInfo(groupTaskId, sourceInfo, username, status, count, &msg, &success)
+		UpdateGroupTaskAndSourceInfo(groupTaskId, appid, username, status, count, &msg, &success)
 	}
 	qu.Debug(success, count, msg)
 	f.ServeJson(map[string]interface{}{"success": success, "msg": msg, "count": count})
@@ -690,7 +692,7 @@ func (f *Front) ProjectGroupTaskClose() {
 	user := f.GetSession("user").(map[string]interface{})
 	username := qu.ObjToString(user["s_login"])
 	groupTaskId := f.GetString("taskid")
-	sourceInfo := f.GetString("s_sourceinfo")
+	appid := f.GetString("appid")
 	//status := f.GetString("s_status") //未开始、进行中
 	msg := ""
 	success := false
@@ -732,22 +734,23 @@ func (f *Front) ProjectGroupTaskClose() {
 		//}
 	}
 	if success { //所有用户信息关闭成功后,更新用户组任务相关信息
-		count = util.Mgo.Count(sourceInfo, map[string]interface{}{ //统计该用户组任务下未标注的数据量
+		count = util.Mgo.Count(util.TASKCOLLNAME, map[string]interface{}{ //统计该用户组任务下未标注的数据量
 			"s_grouptaskid": groupTaskId,
 			"b_istag":       false,
 		})
-		UpdateGroupTaskAndSourceInfo(groupTaskId, sourceInfo, username, status, count, &msg, &success)
+		UpdateGroupTaskAndSourceInfo(groupTaskId, appid, username, status, count, &msg, &success)
 	}
 	qu.Debug(success, count, msg)
 	f.ServeJson(map[string]interface{}{"success": success, "msg": msg, "count": count})
 }
 
 // UpdateGroupTaskAndSourceInfo 更新用户组任务相关信息
-func UpdateGroupTaskAndSourceInfo(groupTaskId, sourceInfo, username, status string, count int, msg *string, success *bool) {
+func UpdateGroupTaskAndSourceInfo(groupTaskId, appid, username, status string, count int, msg *string, success *bool) {
 	defer qu.Catch()
 	qu.Debug("GroupTaskStatus:", status, "	Count:", count)
 	if count != 0 { //更新数据源
 		query := map[string]interface{}{
+			"appid":         appid,
 			"s_grouptaskid": groupTaskId,
 			"b_istag":       false,
 		}
@@ -759,7 +762,7 @@ func UpdateGroupTaskAndSourceInfo(groupTaskId, sourceInfo, username, status stri
 			"s_groupid":     "",
 			"s_grouptaskid": "",
 		}
-		*success = util.Mgo.Update(sourceInfo, query, map[string]interface{}{"$set": set, "$unset": unset}, false, true)
+		*success = util.Mgo.Update(util.DATACOLLNAME, query, map[string]interface{}{"$set": set, "$unset": unset}, false, true)
 	}
 	//更新用户组任务
 	if *success {
@@ -804,8 +807,8 @@ func DeleleDataTagInfo(sourceinfo string) {
 		"v_check":   1,
 	}
 	updateArr := [][]map[string]interface{}{}
-	it := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(&query).Select(&fields).Iter()
-	count, _ := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(&query).Count()
+	it := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(&query).Select(&fields).Iter()
+	count, _ := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(&query).Count()
 	qu.Debug("Find Needs To Clearn Data Count:", count)
 	n := 0
 	for tmp := make(map[string]interface{}); it.Next(tmp); n++ {
@@ -847,7 +850,7 @@ func DeleleDataTagInfo(sourceinfo string) {
 			lock.Lock()
 			updateArr = append(updateArr, update)
 			if len(updateArr) > 500 {
-				util.Mgo.UpdateBulk(sourceinfo, updateArr...)
+				util.Mgo.UpdateBulk(util.DATACOLLNAME, updateArr...)
 				updateArr = [][]map[string]interface{}{}
 			}
 			lock.Unlock()
@@ -860,14 +863,14 @@ func DeleleDataTagInfo(sourceinfo string) {
 	wg.Wait()
 	lock.Lock()
 	if len(updateArr) > 0 {
-		util.Mgo.UpdateBulk(sourceinfo, updateArr...)
+		util.Mgo.UpdateBulk(util.DATACOLLNAME, updateArr...)
 		updateArr = [][]map[string]interface{}{}
 	}
 	lock.Unlock()
 }
 
 // UpdateSourceInfoByGroup 用户组分发任务成功后,给数据源打上用户组标识
-func UpdateSourceInfoByGroup(sourceinfo, stype string, groupIdInfo map[string]util.Task) {
+func UpdateSourceInfoByGroup(stype string, groupIdInfo map[string]util.Task) {
 	defer qu.Catch()
 	for groupTaskId, tInfo := range groupIdInfo {
 		groupId := tInfo.UserId
@@ -891,7 +894,7 @@ func UpdateSourceInfoByGroup(sourceinfo, stype string, groupIdInfo map[string]ut
 		}
 		updateArr := [][]map[string]interface{}{}
 		qu.Debug("Query:", query)
-		it := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(&query).Select(&fields).Limit(int64(num)).Iter()
+		it := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(&query).Select(&fields).Limit(int64(num)).Iter()
 		n := 0
 		for tmp := make(map[string]interface{}); it.Next(tmp); n++ {
 			ch <- true
@@ -920,7 +923,7 @@ func UpdateSourceInfoByGroup(sourceinfo, stype string, groupIdInfo map[string]ut
 				updateArr = append(updateArr, update)
 				//saveArr = append(saveArr, save)
 				if len(updateArr) > 500 {
-					util.Mgo.UpdateBulk(sourceinfo, updateArr...)
+					util.Mgo.UpdateBulk(util.DATACOLLNAME, updateArr...)
 					updateArr = [][]map[string]interface{}{}
 				}
 				lock.Unlock()
@@ -933,7 +936,7 @@ func UpdateSourceInfoByGroup(sourceinfo, stype string, groupIdInfo map[string]ut
 		wg.Wait()
 		lock.Lock()
 		if len(updateArr) > 0 {
-			util.Mgo.UpdateBulk(sourceinfo, updateArr...)
+			util.Mgo.UpdateBulk(util.DATACOLLNAME, updateArr...)
 			updateArr = [][]map[string]interface{}{}
 		}
 		lock.Unlock()
@@ -1257,6 +1260,7 @@ func GetDataById(idInfoArr []util.Data, importType string, success *bool, msg *s
 						baseInfoMap["v_taginfo"] = tagInfoMap
 					}
 					baseInfoMap["i_createtime"] = time.Now().Unix()
+					baseInfoMap["appid"] = []string{qu.ObjToString((*bidData)["appid"])}
 					baseInfoMap["b_isgivegroup"] = false //是否分配给用户组
 					baseInfoMap["b_istag"] = false       //是否已标注
 					//baseInfoMap["b_cleartag"] = false    //是否清理标注信息
@@ -1280,6 +1284,7 @@ func GetDataById(idInfoArr []util.Data, importType string, success *bool, msg *s
 				} else {
 					lock.Lock()
 					*success = false
+					qu.Debug(id)
 					if importType == "excel" {
 						msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行,未查询到id:"+id)
 						//*msg += "第" + fmt.Sprint(num+2) + "行未查询到数据:" + id + ";\n"
@@ -1320,11 +1325,12 @@ func UpdateMarkColl(bidData, markData, tagInfoMap, baseInfoMap *map[string]inter
 func (f *Front) ProjectCheckSuc() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
-		sourceinfo := f.GetString("s_sourceinfo")
+		appid := f.GetString("appid")
 		query := map[string]interface{}{
+			"appid":       appid,
 			"b_istagging": false,
 		}
-		b := util.Mgo.Update(sourceinfo, query, map[string]interface{}{"$set": map[string]interface{}{"b_istag": true}}, false, true)
+		b := util.Mgo.Update(util.DATACOLLNAME, query, map[string]interface{}{"$set": map[string]interface{}{"b_istag": true}}, false, true)
 		f.ServeJson(map[string]interface{}{"success": b, "msg": "更新数据失败"})
 	}
 }
@@ -1332,11 +1338,12 @@ func (f *Front) ProjectCheckSuc() {
 func (f *Front) ProjectPassSuc() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
-		sourceinfo := f.GetString("s_sourceinfo")
+		appid := f.GetString("appid")
 		query := map[string]interface{}{
+			"appid":   appid,
 			"b_istag": false,
 		}
-		b := util.Mgo.Update(sourceinfo, query, map[string]interface{}{"$set": map[string]interface{}{"b_istag": true, "i_ckdata": 2}}, false, true)
+		b := util.Mgo.Update(util.DATACOLLNAME, query, map[string]interface{}{"$set": map[string]interface{}{"b_istag": true, "i_ckdata": 2}}, false, true)
 		f.ServeJson(map[string]interface{}{"success": b, "msg": "更新数据失败"})
 	}
 }
@@ -1344,8 +1351,8 @@ func (f *Front) ProjectPassSuc() {
 func (f *Front) ProjectTagNum() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
-		sourceinfo := f.GetString("s_sourceinfo")
-		count := util.Mgo.Count(sourceinfo, map[string]interface{}{"i_ckdata": 2})
+		appid := f.GetString("appid")
+		count := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"i_ckdata": 2, "appid": appid})
 		if count > 0 {
 			f.ServeJson(map[string]interface{}{"success": true})
 		} else {
@@ -1432,8 +1439,7 @@ func (f *Front) ProjectField() {
 
 func (f *Front) ProjectData() {
 	defer qu.Catch() //项目id
-	pid := f.GetString("pid")
-	sourceinfo := f.GetString("sourceinfo")
+	appid := f.GetString("appid")
 	if f.Method() == "POST" {
 		start, _ := f.GetInteger("start")
 		limit, _ := f.GetInteger("length")
@@ -1441,18 +1447,18 @@ func (f *Front) ProjectData() {
 		searchStr := f.GetString("search[value]")
 		searchStr = strings.TrimSpace(searchStr)
 		query := map[string]interface{}{}
+		query["appid"] = appid
 		if searchStr != "" {
 			query["$or"] = []interface{}{
 				map[string]interface{}{"v_baseinfo.projectname": map[string]interface{}{"$regex": searchStr}},
 				map[string]interface{}{"v_baseinfo.title": map[string]interface{}{"$regex": searchStr}},
 			}
 		}
-		list, _ := util.Mgo.Find(sourceinfo, query, bson.M{"_id": 1}, nil, false, start, limit)
-		count := util.Mgo.Count(sourceinfo, query)
+		list, _ := util.Mgo.Find(util.DATACOLLNAME, query, bson.M{"_id": 1}, nil, false, start, limit)
+		count := util.Mgo.Count(util.DATACOLLNAME, query)
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
-		f.T["pid"] = pid
-		f.T["sourceinfo"] = sourceinfo
+		f.T["appid"] = appid
 		_ = f.Render("project/project_data.html", &f.T)
 	}
 }

+ 84 - 95
src/front/remark.go

@@ -25,7 +25,6 @@ func (f *Front) RemarkList() {
 	qu.Catch()
 	pid := qu.ObjToString(f.GetString("pid"))
 	tid := qu.ObjToString(f.GetString("tid"))
-	sourceinfo := qu.ObjToString(f.GetString("s_sourceinfo"))
 	if f.Method() == "POST" {
 		//user := f.GetSession("user").(map[string]interface{})
 		start, _ := f.GetInteger("start")
@@ -49,8 +48,8 @@ func (f *Front) RemarkList() {
 			}
 		}
 		field := map[string]interface{}{"v_baseinfo.title": 1, "b_istag": 1, "i_ckdata": 1}
-		info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, field, false, start, limit)
-		count := util.Mgo.Count(sourceinfo, query)
+		info, _ := util.Mgo.Find(util.DATACOLLNAME, query, `{"_id": 1}`, field, false, start, limit)
+		count := util.Mgo.Count(util.DATACOLLNAME, query)
 		f.ServeJson(map[string]interface{}{
 			"draw":            draw,
 			"data":            *info,
@@ -60,7 +59,6 @@ func (f *Front) RemarkList() {
 	} else {
 		f.T["pid"] = pid
 		f.T["tid"] = tid
-		f.T["s_sourceinfo"] = sourceinfo
 		_ = f.Render("project/remark_list.html", &f.T)
 	}
 }
@@ -69,16 +67,16 @@ func (f *Front) RemarkDetail() {
 	pid := f.GetString("pid")
 	tid := f.GetString("tid")
 	did := f.GetString("did")
-	coll := f.GetString("s_sourceinfo")
 	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
+	qu.Debug(pid)
+	qu.Debug(*project)
 	fs, _ := (*project)["v_fields"].([]interface{})
-	rep := getDetail(did, coll, "remark", qu.ObjArrToMapArr(fs)) //获取本条公告的信息
-	f.T["otherInfo"] = rep["otherInfo"]                          //展示关联公告信息
-	f.T["moreInfo"] = rep["moreInfo"]                            //更多关联公告信息
+	rep := getDetail(did, "remark", qu.ObjArrToMapArr(fs)) //获取本条公告的信息
+	f.T["otherInfo"] = rep["otherInfo"]                    //展示关联公告信息
+	f.T["moreInfo"] = rep["moreInfo"]                      //更多关联公告信息
 	f.T["pid"] = pid
 	f.T["tid"] = tid
 	f.T["did"] = did
-	f.T["coll"] = coll
 	f.T["info"] = rep["info"]
 	f.T["common"] = rep["common"]
 	f.T["other"] = rep["other"]
@@ -114,14 +112,14 @@ func (f *Front) RemarkDetail() {
 	f.T["ck_package"] = rep["ck_package"]
 	f.T["ck_winnerorder"] = rep["ck_winnerorder"]
 	f.T["keyword"] = rep["matchkey"]
-	f.T["nextid"] = GetNextDataId(did, coll, tid) //下一条id
-	f.T["lastid"] = GetLastDataId(did, coll, tid) //上一条id
+	f.T["nextid"] = GetNextDataId(did, tid) //下一条id
+	f.T["lastid"] = GetLastDataId(did, tid) //上一条id
 	_ = f.Render("project/remark_detail.html", &f.T)
 }
 
-func getDetail(id, coll, stype string, fs []map[string]interface{}) map[string]interface{} {
+func getDetail(id, stype string, fs []map[string]interface{}) map[string]interface{} {
 	rep := map[string]interface{}{}
-	infoTmp, _ := util.Mgo.FindById(coll, id, ``)
+	infoTmp, _ := util.Mgo.FindById(util.DATACOLLNAME, id, ``)
 	rep["s_excp_info"] = (*infoTmp)["s_excp_info"]
 	baseInfo := (*infoTmp)["v_baseinfo"].(map[string]interface{}) //字段值
 	var bzInfo map[string]interface{}                             //标注信息
@@ -602,7 +600,7 @@ func DealData(tmpLen int, publishtime float64, tmp []map[string]interface{}, mor
 }
 
 // GetNextDataId 获取当前数据下一条的id
-func GetNextDataId(id, coll, tid string) string {
+func GetNextDataId(id, tid string) string {
 	nextIdQuery := map[string]interface{}{
 		//"b_istag": false,
 		"_id": map[string]interface{}{
@@ -611,8 +609,10 @@ func GetNextDataId(id, coll, tid string) string {
 	}
 	if tid != "" {
 		nextIdQuery["s_usertaskid"] = tid
+	} else {
+
 	}
-	one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
+	one, _ := util.Mgo.Find(util.DATACOLLNAME, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
 	if len(*one) == 1 && len((*one)[0]) > 0 {
 		return mgo.BsonIdToSId((*one)[0]["_id"])
 	} else {
@@ -628,7 +628,7 @@ func GetNextDataId(id, coll, tid string) string {
 	return ""
 }
 
-func GetLastDataId(id, coll, tid string) string {
+func GetLastDataId(id, tid string) string {
 	nextIdQuery := map[string]interface{}{
 		//"b_istag": false,
 		"_id": map[string]interface{}{
@@ -638,7 +638,7 @@ func GetLastDataId(id, coll, tid string) string {
 	if tid != "" {
 		nextIdQuery["s_usertaskid"] = tid
 	}
-	one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
+	one, _ := util.Mgo.Find(util.DATACOLLNAME, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
 	if len(*one) == 1 && len((*one)[0]) > 0 {
 		return mgo.BsonIdToSId((*one)[0]["_id"])
 	} else {
@@ -655,7 +655,7 @@ func GetLastDataId(id, coll, tid string) string {
 }
 
 // GetNextDataId1 质检下一条
-func GetNextDataId1(id, coll, tid, tag string) string {
+func GetNextDataId1(id, tid, tag string) string {
 	nextIdQuery := map[string]interface{}{
 		"_id": map[string]interface{}{
 			"$gt": mgo.StringTOBsonId(id),
@@ -673,7 +673,7 @@ func GetNextDataId1(id, coll, tid, tag string) string {
 	} else {
 		nextIdQuery["i_ckdata"] = 2
 	}
-	one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
+	one, _ := util.Mgo.Find(util.DATACOLLNAME, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
 	if len(*one) == 1 && len((*one)[0]) > 0 {
 		return mgo.BsonIdToSId((*one)[0]["_id"])
 	} else {
@@ -689,7 +689,7 @@ func GetNextDataId1(id, coll, tid, tag string) string {
 	return ""
 }
 
-func GetLastDataId1(id, coll, tid, tag string) string {
+func GetLastDataId1(id, tid, tag string) string {
 	nextIdQuery := map[string]interface{}{
 		"_id": map[string]interface{}{
 			"$lt": mgo.StringTOBsonId(id),
@@ -707,7 +707,7 @@ func GetLastDataId1(id, coll, tid, tag string) string {
 	} else {
 		nextIdQuery["i_ckdata"] = 2
 	}
-	one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
+	one, _ := util.Mgo.Find(util.DATACOLLNAME, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
 	if len(*one) == 1 && len((*one)[0]) > 0 {
 		return mgo.BsonIdToSId((*one)[0]["_id"])
 	} else {
@@ -758,8 +758,7 @@ func (f *Front) CheckList() {
 		for _, l := range *list {
 			if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
 				giveNum := qu.IntAll(l["i_givenum"])
-				sourceinfo := qu.ObjToString(l["s_sourceinfo"])
-				tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": mgo.BsonIdToSId(l["_id"]), "b_istag": true})
+				tagNum := util.Mgo.Count(util.TASKCOLLNAME, map[string]interface{}{"s_usertaskid": mgo.BsonIdToSId(l["_id"]), "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
 				decimalValue := decimal.NewFromFloat(value)
@@ -780,7 +779,6 @@ func (f *Front) CheckData() {
 	pid := f.GetString("pid")
 	gid := f.GetString("gid")
 	tid := f.GetString("tid")
-	sourceinfo := f.GetString("s_sourceinfo")
 	if f.Method() == "POST" {
 		start, _ := f.GetInteger("start")
 		limit, _ := f.GetInteger("length")
@@ -803,9 +801,9 @@ func (f *Front) CheckData() {
 		} else if s_excp == "-1" {
 			query["s_excp"] = map[string]interface{}{"$exists": true}
 		}
-		count := util.Mgo.Count(sourceinfo, query)
+		count := util.Mgo.Count(util.DATACOLLNAME, query)
 		fields := map[string]interface{}{"v_baseinfo.title": 1, "b_check": 1, "i_ckdata": 1, "s_login": 1, "b_istag": 1, "s_excp": 1, "s_excp_info": 1}
-		info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, fields, false, start, limit)
+		info, _ := util.Mgo.Find(util.DATACOLLNAME, query, `{"_id": 1}`, fields, false, start, limit)
 		f.ServeJson(map[string]interface{}{
 			"draw":            draw,
 			"data":            *info,
@@ -816,14 +814,13 @@ func (f *Front) CheckData() {
 		task, _ := util.Mgo.FindById(util.TASKCOLLNAME, tid, map[string]interface{}{"i_givenum": 1})
 		f.T["taskNum"] = (*task)["i_givenum"]
 		tagCount, checkCount := 0, 0
-		tagCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": tid, "b_istag": true})
-		checkCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": tid, "b_check": true})
+		tagCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_usertaskid": tid, "b_istag": true})
+		checkCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_usertaskid": tid, "b_check": true})
 		f.T["taskTagNum"] = tagCount
 		f.T["taskCheckNum"] = checkCount
 		f.T["pid"] = pid
 		f.T["tid"] = tid
 		f.T["gid"] = gid
-		f.T["sourceinfo"] = sourceinfo
 		f.T["topsubtype"] = util.TopSubStypeArr
 		f.T["allfield"] = util.AllFieldArr
 		_ = f.Render("project/check_user_data_list.html", &f.T)
@@ -836,7 +833,6 @@ func (f *Front) CheckJyData() {
 	gid := f.GetString("gid")
 	tid := f.GetString("tid")
 	stype := f.GetString("stype")
-	sourceinfo := f.GetString("s_sourceinfo")
 	datatype, _ := f.GetInteger("datatype")
 	if f.Method() == "POST" {
 		start, _ := f.GetInteger("start")
@@ -972,9 +968,9 @@ func (f *Front) CheckJyData() {
 		} else if !fieldScreen && notag {
 			query["i_ckdata"] = 0
 		}
-		count := util.Mgo.Count(sourceinfo, query)
+		count := util.Mgo.Count(util.DATACOLLNAME, query)
 		fields := map[string]interface{}{"v_baseinfo.title": 1, "b_check": 1, "i_ckdata": 1, "s_login": 1, "b_istag": 1, "s_excp": 1, "s_excp_info": 1, "b_isEff": 1}
-		info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, fields, false, start, limit)
+		info, _ := util.Mgo.Find(util.DATACOLLNAME, query, `{"_id": 1}`, fields, false, start, limit)
 		f.ServeJson(map[string]interface{}{
 			"draw":            draw,
 			"data":            *info,
@@ -989,7 +985,7 @@ func (f *Front) CheckJyData() {
 				f.T["taskNum"] = (*project)["i_importnum"]
 				query1["i_ckdata"] = 2
 			} else if stype == "notag" {
-				f.T["taskNum"] = util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})
+				f.T["taskNum"] = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"b_istagging": false})
 				query1["b_istagging"] = false
 				if datatype == 1 {
 					// 待分发数据
@@ -1001,7 +997,7 @@ func (f *Front) CheckJyData() {
 					query1["b_isgivegroup"] = true
 				}
 			} else if stype == "tag" {
-				f.T["taskNum"] = util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})
+				f.T["taskNum"] = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"b_istagging": false})
 				query1["b_istagging"] = true //未达标
 				query1["i_ckdata"] = 2
 			} else {
@@ -1009,22 +1005,22 @@ func (f *Front) CheckJyData() {
 				f.T["taskNum"] = (*project)["i_importnum"]
 				query1["i_ckdata"] = 2
 			}
-			count := util.Mgo.Count(sourceinfo, query1)
+			count := util.Mgo.Count(util.DATACOLLNAME, query1)
 			//f.T["taskNum"] = count
 			f.T["taskTagNum"] = count
 			query1["b_check"] = true // 已质检
-			checkCount := util.Mgo.Count(sourceinfo, query1)
+			checkCount := util.Mgo.Count(util.DATACOLLNAME, query1)
 			f.T["taskCheckNum"] = checkCount
 		} else {
 			task, _ := util.Mgo.FindById(util.TASKCOLLNAME, tid, map[string]interface{}{"i_givenum": 1})
 			f.T["taskNum"] = (*task)["i_givenum"]
 			tagCount, checkCount := 0, 0
 			if stype == "group" {
-				tagCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": tid, "b_istag": true})
-				checkCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": tid, "b_check": true})
+				tagCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": tid, "b_istag": true})
+				checkCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_grouptaskid": tid, "b_check": true})
 			} else {
-				tagCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": tid, "b_istag": true})
-				checkCount = util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": tid, "b_check": true})
+				tagCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_usertaskid": tid, "b_istag": true})
+				checkCount = util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"s_usertaskid": tid, "b_check": true})
 			}
 			f.T["taskTagNum"] = tagCount
 			f.T["taskCheckNum"] = checkCount
@@ -1033,7 +1029,6 @@ func (f *Front) CheckJyData() {
 		f.T["pid"] = pid
 		f.T["tid"] = tid
 		f.T["gid"] = gid
-		f.T["sourceinfo"] = sourceinfo
 		f.T["stype"] = stype
 		f.T["datatype"] = datatype
 		f.T["topsubtype"] = util.TopSubStypeArr
@@ -1048,17 +1043,15 @@ func (f *Front) CheckDetail() {
 	tid := f.GetString("tid")
 	pid := f.GetString("pid")
 	did := f.GetString("did")
-	coll := f.GetString("s_sourceinfo")
 	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
 	fs, _ := (*project)["v_fields"].([]interface{})
-	rep := getDetail(did, coll, "check", qu.ObjArrToMapArr(fs)) //获取本条公告的信息
-	f.T["otherInfo"] = rep["otherInfo"]                         //展示关联公告信息
-	f.T["moreInfo"] = rep["moreInfo"]                           //更多关联公告信息
+	rep := getDetail(did, "check", qu.ObjArrToMapArr(fs)) //获取本条公告的信息
+	f.T["otherInfo"] = rep["otherInfo"]                   //展示关联公告信息
+	f.T["moreInfo"] = rep["moreInfo"]                     //更多关联公告信息
 	f.T["s_excp_info"] = rep["s_excp_info"]
 	f.T["pid"] = pid
 	f.T["tid"] = tid
 	f.T["did"] = did
-	f.T["coll"] = coll
 	f.T["info"] = rep["info"]
 	f.T["common"] = rep["common"]
 	f.T["other"] = rep["other"]
@@ -1094,8 +1087,8 @@ func (f *Front) CheckDetail() {
 	f.T["ck_package"] = rep["ck_package"]
 	f.T["ck_winnerorder"] = rep["ck_winnerorder"]
 	f.T["topsubtype"] = util.TopSubStypeArr2
-	f.T["nextid"] = GetNextDataId1(did, coll, tid, qu.ObjToString(f.GetSession("check"))) //下一条id
-	f.T["lastid"] = GetLastDataId1(did, coll, tid, qu.ObjToString(f.GetSession("check"))) //下一条id
+	f.T["nextid"] = GetNextDataId1(did, tid, qu.ObjToString(f.GetSession("check"))) //下一条id
+	f.T["lastid"] = GetLastDataId1(did, tid, qu.ObjToString(f.GetSession("check"))) //下一条id
 	_ = f.Render("project/check_detail.html", &f.T)
 }
 
@@ -1109,7 +1102,6 @@ func (f *Front) CheckSave() {
 	userRole := qu.ObjToString(user["i_role"])  //当前登录用户权限
 	var obj []map[string]interface{}
 	infoId := f.GetString("s_infoid")
-	sourceInfo := f.GetString("s_sourceinfo")
 	pid := f.GetString("pid")
 	project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_name": 1, "v_fields": 1})
 	data := f.GetString("data")
@@ -1171,7 +1163,7 @@ func (f *Front) CheckSave() {
 			}
 		}
 	}
-	dataInfo, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
+	dataInfo, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
 	tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
 	baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
 	if tagInfo != nil && len(tagInfo) > 0 {
@@ -1251,12 +1243,11 @@ func (f *Front) CheckSave() {
 		if len(baseUnsetResult) > 0 {
 			set["$unset"] = baseUnsetResult
 		}
-		qu.Debug(sourceInfo)
 		qu.Debug(infoId)
 		qu.Debug(set)
-		success = util.Mgo.UpdateById(sourceInfo, infoId, set)
+		success = util.Mgo.UpdateById(util.DATACOLLNAME, infoId, set)
 		//2、更新marked表
-		tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
+		tmp, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
 		delete(*tmp, "_id")
 		(*tmp)["updatetime"] = time.Now().Unix()
 		_ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
@@ -1269,13 +1260,11 @@ func (f *Front) CheckSave() {
 func (f *Front) CheckResult() {
 	pid := f.GetString("pid")
 	tid := f.GetString("tid")
-	sourceinfo := f.GetString("s_sourceinfo")
 	stype := f.GetString("stype")
 	datatype, _ := f.GetInteger("datatype")
 	var allNum int
-	projcet, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"v_fields": 1})
-	//tagCount := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": tid, "b_istag": true})
-	//checkCount := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": tid, "b_check": true})
+	projcet, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"v_fields": 1, "appid": 1})
+	appid := qu.ObjToString((*projcet)["appid"])
 
 	markNum, checkNum, checkNumR := 0, 0, 0 // 标注数量,	审核数据量,	审核数据完全正确的数据量
 	cmaps := make(map[string]int)           // 标注字段整体准确率
@@ -1302,6 +1291,7 @@ func (f *Front) CheckResult() {
 	if tid == "" {
 		query1 := make(map[string]interface{})
 		if stype == "all" {
+			query1["appid"] = appid
 			query1["i_ckdata"] = 2
 		} else if stype == "notag" {
 			if datatype == 1 {
@@ -1317,7 +1307,7 @@ func (f *Front) CheckResult() {
 			query1["b_istagging"] = true //未达标
 			query1["i_ckdata"] = 2
 		}
-		allNum = util.Mgo.Count(sourceinfo, query1)
+		allNum = util.Mgo.Count(util.DATACOLLNAME, query1)
 	} else {
 		task, _ := util.Mgo.FindById(util.TASKCOLLNAME, tid, map[string]interface{}{"i_givenum": 1})
 		allNum = qu.IntAll((*task)["i_givenum"]) //任务数据量
@@ -1327,9 +1317,10 @@ func (f *Front) CheckResult() {
 			query["s_usertaskid"] = tid
 		}
 	}
+	query["appid"] = appid
 	query["b_check"] = true
-	checkNum = util.Mgo.Count(sourceinfo, query)
-	result := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(query).Iter()
+	checkNum = util.Mgo.Count(util.DATACOLLNAME, query)
+	result := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(query).Iter()
 	if checkNum == 0 {
 		f.ServeJson(map[string]interface{}{"rep": false, "msg": "无质检审核数据!"})
 		return
@@ -1467,7 +1458,6 @@ func (f *Front) CheckResult() {
 	}
 	f.T["pid"] = pid
 	f.T["tid"] = tid
-	f.T["sourceinfo"] = sourceinfo
 	f.T["taskNum"] = allNum
 	f.T["taskTagNum"] = markNum
 	f.T["taskCheckNum"] = checkNum
@@ -1509,7 +1499,6 @@ func CountPr(c1, c2 int) string {
 func (f *Front) CheckExcpResult() {
 	pid := f.GetString("pid")
 	tid := f.GetString("tid")
-	sourceinfo := f.GetString("s_sourceinfo")
 	stype := f.GetString("stype")
 	query := make(map[string]interface{})
 	var dataSource []map[string]interface{}
@@ -1522,22 +1511,24 @@ func (f *Front) CheckExcpResult() {
 		query["s_excp"] = map[string]interface{}{"$exists": true}
 
 	} else {
+		pinfo, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, bson.M{"appid": 1})
+		query["appid"] = qu.ObjToString((*pinfo)["appid"])
 		query["s_excp"] = map[string]interface{}{"$exists": true}
-		excpNum := util.Mgo.Count(sourceinfo, query)
-		tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"i_ckdata": 2})
+		excpNum := util.Mgo.Count(util.DATACOLLNAME, query)
+		tagNum := util.Mgo.Count(util.DATACOLLNAME, map[string]interface{}{"i_ckdata": 2})
 		dataSource = append(dataSource, map[string]interface{}{"name": "达标数据", "num1": excpNum, "num2": tagNum, "num3": CountPr(excpNum, tagNum)})
 	}
 	f.T["tableData"] = dataSource
 	f.T["pid"] = pid
 	f.T["tid"] = tid
-	f.T["sourceinfo"] = sourceinfo
 	_ = f.Render("project/check_excp_result.html", &f.T)
 }
 
 func (f *Front) CheckExcpData() {
-	sourceinfo := f.GetString("s_sourceinfo")
+	appid := f.GetString("appid")
 	// 达标,待分发数据
 	query := map[string]interface{}{
+		"appid":       appid,
 		"b_istagging": false,
 		//"b_isgivegroup": false,
 	}
@@ -1546,7 +1537,7 @@ func (f *Front) CheckExcpData() {
 	sess := util.Mgo.GetMgoConn()
 	defer util.Mgo.DestoryMongoConn(sess)
 	count := 0
-	it := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(query).Select(nil).Iter()
+	it := sess.DB(util.Mgo.DbName).C(util.DATACOLLNAME).Find(query).Select(nil).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
 		if tmp["s_excp"] != nil {
 			f.ServeJson(map[string]interface{}{"success": true})
@@ -1561,7 +1552,7 @@ func (f *Front) CheckExcpData() {
 				info := tmp["v_baseinfo"].(map[string]interface{})
 				ex, exp := DataException(info)
 				if ex != "" {
-					util.Mgo.UpdateById(sourceinfo, tmp["_id"], map[string]interface{}{"$set": map[string]interface{}{"s_excp": ex, "s_excp_info": exp}})
+					util.Mgo.UpdateById(util.DATACOLLNAME, tmp["_id"], map[string]interface{}{"$set": map[string]interface{}{"s_excp": ex, "s_excp_info": exp}})
 				}
 			}()
 		}(tmp)
@@ -1633,15 +1624,16 @@ func (f *Front) JyMarkList() {
 		start, _ := f.GetInteger("start")
 		limit, _ := f.GetInteger("length")
 		draw, _ := f.GetInteger("draw")
-		sourceInfo := f.GetString("s_sourceinfo") //数据源表
-		istag := f.GetString("b_istag")           //
-		field := f.GetString("field")             //字段
-		dataType := f.GetString("datatype")       //信息类型
-		min := f.GetString("minval")              //min max不用int类型接收,以免有默认值0
+		appid := f.GetString("appid")
+		istag := f.GetString("b_istag")     //
+		field := f.GetString("field")       //字段
+		dataType := f.GetString("datatype") //信息类型
+		min := f.GetString("minval")        //min max不用int类型接收,以免有默认值0
 		max := f.GetString("maxval")
 		hasno, _ := f.GetBool("hasno")   //是否存在
 		notag, _ := f.GetBool("notag")   //是否标注
 		query := map[string]interface{}{ //剑鱼自用的标注页面, 查询待分发的数据量
+			"appid":         appid,
 			"b_isgivegroup": false,
 			//"b_isgiveuser":  false,
 		}
@@ -1725,17 +1717,16 @@ func (f *Front) JyMarkList() {
 		} else if !fieldScreen && notag {
 			query["i_ckdata"] = 0
 		}
-		count := util.Mgo.Count(sourceInfo, query)
+		count := util.Mgo.Count(util.DATACOLLNAME, query)
 		fields := map[string]interface{}{"v_baseinfo.title": 1, "b_istag": 1, "i_ckdata": 1}
-		list, _ := util.Mgo.Find(sourceInfo, query, map[string]interface{}{"_id": 1}, fields, false, start, limit)
-		//checkedNum, allNum := GetCheckedAndAllDataInfo(query, coll) //已标和总数信息
+		qu.Debug(query)
+		list, _ := util.Mgo.Find(util.DATACOLLNAME, query, map[string]interface{}{"_id": 1}, fields, false, start, limit)
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
-		pid := f.GetString("pid")
-		info, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_sourceinfo": 1})
-		f.T["s_sourceinfo"] = (*info)["s_sourceinfo"]
+		appid := f.GetString("appid")
+		f.T["pid"] = f.GetString("pid")
 		f.T["stype"] = stype
-		f.T["pid"] = pid
+		f.T["appid"] = appid
 		f.T["topsubtype"] = util.TopSubStypeArr
 		f.T["allfield"] = util.AllFieldArr
 		_ = f.Render("project/remark_jy_list.html", &f.T)
@@ -1754,7 +1745,6 @@ func (f *Front) JyUserDataMark() {
 	userRole := qu.ObjToString(user["i_role"]) //当前登录用户权限
 	obj := []map[string]interface{}{}
 	infoId := f.GetString("s_infoid")
-	sourceInfo := f.GetString("s_sourceinfo")
 	isEff, _ := f.GetBool("isEff")
 	pid := f.GetString("pid")
 	data := f.GetString("data")
@@ -1818,7 +1808,7 @@ func (f *Front) JyUserDataMark() {
 		}
 	}
 	qu.Debug("baseUnset===", baseUnset)
-	dataInfo, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
+	dataInfo, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
 	//tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
 	baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
 	//if tagInfo != nil && len(tagInfo) > 0 {
@@ -1876,12 +1866,11 @@ func (f *Front) JyUserDataMark() {
 		if len(baseUnsetResult) > 0 {
 			set["$unset"] = baseUnsetResult
 		}
-		qu.Debug(sourceInfo)
 		qu.Debug(infoId)
 		qu.Debug(set)
-		success = util.Mgo.UpdateById(sourceInfo, infoId, set)
+		success = util.Mgo.UpdateById(util.DATACOLLNAME, infoId, set)
 		//2、更新marked表
-		tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
+		tmp, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
 		delete((*tmp), "_id")
 		(*tmp)["updatetime"] = time.Now().Unix()
 		_ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
@@ -1971,13 +1960,12 @@ func (f *Front) UserDataMark() {
 		}
 	}
 	//
-	userTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, userTaskId, map[string]interface{}{"s_personid": 1, "s_personname": 1, "s_projectname": 1, "s_sourceinfo": 1})
+	userTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, userTaskId, map[string]interface{}{"s_personid": 1, "s_personname": 1, "s_projectname": 1})
 	if userTask == nil || len(*userTask) == 0 {
 		f.ServeJson(map[string]interface{}{"success": success, "msg": "查询用户任务失败"})
 		return
-	}
-	sourceInfo := qu.ObjToString((*userTask)["s_sourceinfo"])                                                     //数据源表
-	dataInfo, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
+	} //数据源表
+	dataInfo, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
 	//tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
 	baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
 	//if tagInfo != nil && len(tagInfo) > 0 {
@@ -2037,9 +2025,9 @@ func (f *Front) UserDataMark() {
 			set["$unset"] = baseUnsetResult
 		}
 		qu.Debug(set)
-		success = util.Mgo.UpdateById(sourceInfo, infoId, set)
+		success = util.Mgo.UpdateById(util.DATACOLLNAME, infoId, set)
 		//2、更新marked表
-		tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
+		tmp, _ := util.Mgo.FindById(util.DATACOLLNAME, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
 		delete((*tmp), "_id")
 		(*tmp)["updatetime"] = time.Now().Unix()
 		_ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
@@ -2490,9 +2478,9 @@ func (f *Front) CheckDataPurchase() {
 	if f.Method() == "POST" {
 		datatype, _ := f.GetInteger("datatype")
 		stype := f.GetString("stype")
-		sourceinfo := f.GetString("s_sourceinfo")
 		tid := f.GetString("taskid")
 		pid := f.GetString("pid")
+		appid := f.GetString("appid")
 		keyword := f.GetString("keyword")
 		keyword = strings.ReplaceAll(keyword, ",", ",")
 		keyArr := strings.Split(keyword, ",")
@@ -2505,6 +2493,7 @@ func (f *Front) CheckDataPurchase() {
 				query["s_usertaskid"] = tid
 			}
 		} else {
+			query["appid"] = appid
 			if stype == "notag" {
 				query["b_istagging"] = false
 				if datatype == 1 {
@@ -2524,7 +2513,7 @@ func (f *Front) CheckDataPurchase() {
 		}
 		util.Mgo.UpdateById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"$set": map[string]interface{}{"purchasinglist_key": keyword}})
 		query["v_baseinfo.purchasinglist"] = map[string]interface{}{"$exists": true}
-		info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, `{"v_baseinfo": 1, "b_isEff": 1, "v_checkinfo": 1, "v_taginfo": 1}`, false, -1, -1)
+		info, _ := util.Mgo.Find(util.DATACOLLNAME, query, `{"_id": 1}`, `{"v_baseinfo": 1, "b_isEff": 1, "v_checkinfo": 1, "v_taginfo": 1}`, false, -1, -1)
 		var updateArr [][]map[string]interface{}
 		for _, m := range *info {
 			baseinfo := m["v_baseinfo"].(map[string]interface{})
@@ -2561,12 +2550,12 @@ func (f *Front) CheckDataPurchase() {
 			}
 			if len(updateArr) > 500 {
 				tmps := updateArr
-				util.Mgo.UpdateBulk(sourceinfo, tmps...)
+				util.Mgo.UpdateBulk(util.DATACOLLNAME, tmps...)
 				updateArr = [][]map[string]interface{}{}
 			}
 		}
 		if len(updateArr) > 0 {
-			util.Mgo.UpSertBulk(sourceinfo, updateArr...)
+			util.Mgo.UpSertBulk(util.DATACOLLNAME, updateArr...)
 		}
 		f.ServeJson(map[string]interface{}{"success": true, "msg": ""})
 	}

+ 18 - 30
src/front/user.go

@@ -600,7 +600,6 @@ func (f *Front) UserTaskSave() {
 		f.ServeJson(map[string]interface{}{"success": false, "msg": msg})
 		return
 	}
-	sourceinfo := qu.ObjToString((*groupTask)["s_sourceinfo"])
 	userNums := f.GetString("usernums")
 	var userArr []map[string]interface{}
 	if err := json.Unmarshal([]byte(userNums), &userArr); err != nil {
@@ -635,7 +634,6 @@ func (f *Front) UserTaskSave() {
 				"s_createname":  username,                                      //创建人
 				"i_createtime":  time.Now().Unix(),                             //创建时间
 				"s_progress":    "0%",                                          //完成进度
-				"s_sourceinfo":  sourceinfo,                                    //源数据表
 				"s_stype":       "user",                                        //任务类型
 				"s_parentid":    groupTaskId,                                   //父任务及用户组任务id
 				"s_entname":     qu.ObjToString((*groupTask)["s_entname"]),     //公司名称
@@ -672,7 +670,7 @@ func (f *Front) UserTaskSave() {
 						}},
 					false, false)
 				msg = "任务分发成功"
-				UpdateSourceInfoByUser(sourceinfo, groupTaskId, userTaskIdInfo) //用户分发任务成功后,同时更新任务数据源表
+				UpdateSourceInfoByUser(groupTaskId, userTaskIdInfo) //用户分发任务成功后,同时更新任务数据源表
 			}
 		}
 	}
@@ -718,8 +716,7 @@ func (f *Front) UserTaskList() {
 		for _, l := range *list {
 			if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
 				giveNum := qu.IntAll(l["i_givenum"])
-				sourceinfo := qu.ObjToString(l["s_sourceinfo"])
-				tagNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": mgo.BsonIdToSId(l["_id"]), "b_istag": true})
+				tagNum := Mgo.Count(DATACOLLNAME, map[string]interface{}{"s_usertaskid": mgo.BsonIdToSId(l["_id"]), "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
 				decimalValue := decimal.NewFromFloat(value)
@@ -744,7 +741,6 @@ func (f *Front) UserTaskRetrieve() {
 	username := qu.ObjToString(user["s_login"])
 	userTaskId := f.GetString("taskid") //用户任务id
 	qu.Debug("User Task Id:", userTaskId)
-	sourceInfo := f.GetString("s_sourceinfo") //数据源表
 	//status := f.GetString("s_status")
 	task, _ := Mgo.FindById(TASKCOLLNAME, userTaskId, map[string]interface{}{"s_status": 1})
 	if len(*task) <= 0 {
@@ -753,7 +749,7 @@ func (f *Front) UserTaskRetrieve() {
 	}
 	status := qu.ObjToString((*task)["s_status"])
 	userTaskIdStatus := map[string]string{userTaskId: status}
-	msg, count, success := RetrieveCloseTaskByUser(sourceInfo, username, userTaskIdStatus)
+	msg, count, success := RetrieveCloseTaskByUser(username, userTaskIdStatus)
 	//userTask, _ := Mgo.FindById(TASKCOLLNAME, userTaskId, nil)
 	f.ServeJson(map[string]interface{}{"success": success, "count": count, "msg": msg})
 }
@@ -765,9 +761,8 @@ func (f *Front) UserTaskDeliver() {
 	msg := ""
 	user := f.GetSession("user").(map[string]interface{})
 	username := qu.ObjToString(user["s_login"])
-	userTaskId := f.GetString("taskid")                                                                  //用户任务id
-	sourceInfo := f.GetString("s_sourceinfo")                                                            //数据源表
-	count := Mgo.Count(sourceInfo, map[string]interface{}{"s_usertaskid": userTaskId, "b_istag": false}) //查询是否含有未标注数据
+	userTaskId := f.GetString("taskid")                                                                    //用户任务id
+	count := Mgo.Count(DATACOLLNAME, map[string]interface{}{"s_usertaskid": userTaskId, "b_istag": false}) //查询是否含有未标注数据
 	qu.Debug("User Task Id:", userTaskId, count)
 	if count == 0 { //标注完成更新任务状态
 		set := map[string]interface{}{
@@ -793,10 +788,9 @@ func (f *Front) UserTaskClose() {
 	username := qu.ObjToString(user["s_login"])
 	taskid := f.GetString("taskid") //用户任务id
 	qu.Debug("User Task Id:", taskid)
-	sourceInfo := f.GetString("s_sourceinfo") //数据源表
 	currenttime := time.Now().Unix()
 	//更新数据源
-	success := Mgo.Update(sourceInfo, map[string]interface{}{"s_usertaskid": taskid}, map[string]interface{}{
+	success := Mgo.Update(DATACOLLNAME, map[string]interface{}{"s_usertaskid": taskid}, map[string]interface{}{
 		"$set": map[string]interface{}{
 			"b_istag":      false,
 			"b_check":      false,
@@ -829,7 +823,7 @@ func (f *Front) UserTaskClose() {
 }
 
 // UpdateSourceInfoByUser 用户分发任务成功后更新数据源表
-func UpdateSourceInfoByUser(sourceinfo, groupTaskId string, userTaskIdInfo map[string]Task) {
+func UpdateSourceInfoByUser(groupTaskId string, userTaskIdInfo map[string]Task) {
 	defer qu.Catch()
 	for userTaskId, tInfo := range userTaskIdInfo {
 		userId := tInfo.UserId
@@ -846,7 +840,7 @@ func UpdateSourceInfoByUser(sourceinfo, groupTaskId string, userTaskIdInfo map[s
 		}
 		updateArr := [][]map[string]interface{}{}
 		qu.Debug("Query:", query)
-		it := sess.DB(Mgo.DbName).C(sourceinfo).Find(&query).Limit(int64(num)).Iter()
+		it := sess.DB(Mgo.DbName).C(DATACOLLNAME).Find(&query).Limit(int64(num)).Iter()
 		n := 0
 		for tmp := make(map[string]interface{}); it.Next(tmp); n++ {
 			ch <- true
@@ -870,7 +864,7 @@ func UpdateSourceInfoByUser(sourceinfo, groupTaskId string, userTaskIdInfo map[s
 				lock.Lock()
 				updateArr = append(updateArr, update)
 				if len(updateArr) > 500 {
-					Mgo.UpdateBulk(sourceinfo, updateArr...)
+					Mgo.UpdateBulk(DATACOLLNAME, updateArr...)
 					updateArr = [][]map[string]interface{}{}
 				}
 				lock.Unlock()
@@ -883,7 +877,7 @@ func UpdateSourceInfoByUser(sourceinfo, groupTaskId string, userTaskIdInfo map[s
 		wg.Wait()
 		lock.Lock()
 		if len(updateArr) > 0 {
-			Mgo.UpdateBulk(sourceinfo, updateArr...)
+			Mgo.UpdateBulk(DATACOLLNAME, updateArr...)
 			updateArr = [][]map[string]interface{}{}
 		}
 		lock.Unlock()
@@ -891,7 +885,7 @@ func UpdateSourceInfoByUser(sourceinfo, groupTaskId string, userTaskIdInfo map[s
 }
 
 // RetrieveCloseTaskByUser 用户收回任务、关闭,更新数据源
-func RetrieveCloseTaskByUser(sourceInfo, username string, userTaskIdStatus map[string]string) (allMsg string, allCount int, allSuccess bool) {
+func RetrieveCloseTaskByUser(username string, userTaskIdStatus map[string]string) (allMsg string, allCount int, allSuccess bool) {
 	defer qu.Catch()
 	allSuccess = true
 	for taskId, userTaskStatus := range userTaskIdStatus {
@@ -916,7 +910,7 @@ func RetrieveCloseTaskByUser(sourceInfo, username string, userTaskIdStatus map[s
 			"s_usertaskid": taskId,
 			"b_istag":      false,
 		}
-		count := Mgo.Count(sourceInfo, query)
+		count := Mgo.Count(DATACOLLNAME, query)
 		qu.Debug("Find Task Id:", taskId, " Retrieve Count:", count)
 		if count > 0 { //更新数据源信息
 			set := map[string]interface{}{
@@ -928,7 +922,7 @@ func RetrieveCloseTaskByUser(sourceInfo, username string, userTaskIdStatus map[s
 				"s_userid":     "",
 				"s_login":      "",
 			}
-			success := Mgo.Update(sourceInfo, query, map[string]interface{}{"$set": set, "$unset": unset}, false, true)
+			success := Mgo.Update(DATACOLLNAME, query, map[string]interface{}{"$set": set, "$unset": unset}, false, true)
 			qu.Debug("Update SourceInfo:", success)
 			if success {
 				allCount += count
@@ -988,7 +982,6 @@ func (f *Front) UserTask() {
 			f.ServeJson(map[string]interface{}{"success": false, "msg": msg})
 			return
 		}
-		sourceinfo := qu.ObjToString((*groupTask)["s_sourceinfo"])
 		userTaskId := primitive.NewObjectID()
 		userTask := map[string]interface{}{
 			"_id":           userTaskId,                                    //生成任务id
@@ -1004,7 +997,6 @@ func (f *Front) UserTask() {
 			"s_createname":  s_name,                                        //创建人
 			"i_createtime":  time.Now().Unix(),                             //创建时间
 			"s_progress":    "0%",                                          //完成进度
-			"s_sourceinfo":  sourceinfo,                                    //源数据表
 			"s_stype":       "user",                                        //任务类型
 			"s_parentid":    grouptaskid,                                   //父任务及用户组任务id
 			"s_entname":     qu.ObjToString((*groupTask)["s_entname"]),     //公司名称
@@ -1047,14 +1039,13 @@ func (f *Front) UserTask() {
 				}
 				userTaskIdInfo := map[string]Task{}
 				userTaskIdInfo[mgo.BsonIdToSId(userTaskId)] = ut
-				UpdateSourceInfoByUser(sourceinfo, grouptaskid, userTaskIdInfo) //用户分发任务成功后,同时更新任务数据源表
+				UpdateSourceInfoByUser(grouptaskid, userTaskIdInfo) //用户分发任务成功后,同时更新任务数据源表
 			}
 		}
 		f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
 	} else {
 		// 聚合
 		//match := bson.M{"$match": bson.M{"s_groupid": gid, "s_stype": "group"}}
-		//group := bson.M{"$group": bson.M{"_id": bson.M{"pid": "$s_projectid", "info": "$s_sourceinfo", "name": "$s_projectname"}, "count": bson.M{"$sum": "$i_givenum"}}}
 		//info := make([]map[string]interface{}, 0)
 		//Mgo.GetMgoConn().DB(Mgo.DbName).C(TASKCOLLNAME).Pipe([]map[string]interface{}{match, group}).All(&info)
 		info, _ := Mgo.Find(TASKCOLLNAME, bson.M{"s_groupid": gid, "s_stype": "group"}, nil, bson.M{}, false, -1, -1)
@@ -1063,7 +1054,6 @@ func (f *Front) UserTask() {
 			d1 := make(map[string]interface{})
 			d1["_id"] = mgo.BsonIdToSId(m["_id"])
 			d1["pid"] = m["s_projectid"]
-			d1["coll"] = m["s_sourceinfo"]
 			d1["pname"] = m["s_projectname"]
 			d1["size"] = m["i_givenum"]
 			c := Mgo.Count(qu.ObjToString(d1["coll"]), bson.M{"b_isgiveuser": false, "s_groupid": gid})
@@ -1089,9 +1079,8 @@ func (f *Front) UserTaskAppend() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
 		gid := f.GetString("groupid")
-		sourceinfo := f.GetString("s_sourceinfo")
-		c := Mgo.Count(sourceinfo, bson.M{"b_isgiveuser": false, "s_grouptaskid": gid})
-		qu.Debug(gid, sourceinfo, c)
+		c := Mgo.Count(DATACOLLNAME, bson.M{"b_isgiveuser": false, "s_grouptaskid": gid})
+		qu.Debug(gid, c)
 		if c > 0 {
 			f.ServeJson(map[string]interface{}{
 				"success": true,
@@ -1110,13 +1099,12 @@ func (f *Front) UserTaskAppendSave() {
 		userid := qu.ObjToString(user["id"])
 		username := qu.ObjToString(user["s_login"])
 		tid := f.GetString("taskid")
-		sourceinfo := f.GetString("s_sourceinfo")
 		gid := f.GetString("groupid")
 		num, _ := f.GetInt("num")
 		if num > 0 {
 			tinfo, _ := Mgo.FindById(TASKCOLLNAME, tid, "")
 			total := qu.IntAll((*tinfo)["i_givenum"]) + int(num)
-			n1 := Mgo.Count(sourceinfo, bson.M{"s_usertaskid": tid, "b_istag": false})
+			n1 := Mgo.Count(DATACOLLNAME, bson.M{"s_usertaskid": tid, "b_istag": false})
 			noTag := n1 + int(num)
 			progressFloat := float64(noTag) / float64(total)
 			value, _ := strconv.ParseFloat(fmt.Sprintf("%.4f", progressFloat), 64)
@@ -1130,7 +1118,7 @@ func (f *Front) UserTaskAppendSave() {
 				"s_status":   "进行中",
 			}}
 			Mgo.UpdateById(TASKCOLLNAME, tid, update)
-			UpdateSourceInfoByUser(sourceinfo, gid, map[string]Task{tid: {UserId: userid, GiveNum: int(num), UserName: username}})
+			UpdateSourceInfoByUser(gid, map[string]Task{tid: {UserId: userid, GiveNum: int(num), UserName: username}})
 
 			f.ServeJson(map[string]interface{}{"success": true, "msg": "领取数量成功"})
 		} else {

+ 1 - 1
src/main.go

@@ -29,7 +29,7 @@ func init() {
 	xweb.RootApp().AppConfig.CacheTemplates = false
 	xweb.AddAction(&front.Front{})
 	xweb.RootApp().AppConfig.SessionTimeout = 1 * time.Hour
-	xweb.RootApp().Logger.SetOutputLevel(1)
+	xweb.RootApp().Logger.SetOutputLevel(3)
 	//xweb.AddTmplVar("add", func(a, b int) int { return a + b })
 
 }

+ 1 - 1
src/util/common.go

@@ -21,7 +21,7 @@ type Data struct {
 
 // oss
 var (
-	ossEndpoint        = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
+	ossEndpoint        = "oss-cn-beijing.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
 	ossAccessKeyId     = "LTAI4G5x9aoZx8dDamQ7vfZi"
 	ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
 	ossBucketName      = "topjy"

+ 8 - 9
src/web/templates/project/check_data_list.html

@@ -134,7 +134,6 @@
 
     let tid = {{ .T.tid }}
     let pid = {{ .T.pid }}
-    let sourceinfo = {{ .T.sourceinfo }}
     let stype = {{ .T.stype }}
     let datatype = {{ .T.datatype }}
     let topsubtype = {{ .T.topsubtype }}
@@ -154,7 +153,7 @@
             "ajax": {
                 "url": "/front/jy/check/data",
                 "type": "POST",
-                "data": {"tid": tid, "s_sourceinfo": sourceinfo, "stype": stype, "datatype": datatype}
+                "data": {"tid": tid, "stype": stype, "datatype": datatype}
             },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"
@@ -195,9 +194,9 @@
                 {"data": "v_baseinfo.title", render: function (val, index, row) {
                         let tmp
                         if (row["b_check"]) {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'&s_sourceinfo='+sourceinfo+'">'+val+'</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'">'+val+'</a>'
                         } else {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'&s_sourceinfo='+sourceinfo+'">'+val+'</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'">'+val+'</a>'
                         }
                         return tmp
                     }},
@@ -275,7 +274,7 @@
     function checkResult() {
         let num = {{ .T.taskCheckNum }}
         if (num > 0) {
-            window.location.href = "/front/user/check/result?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
+            window.location.href = "/front/user/check/result?pid={{.T.pid}}&tid={{.T.tid}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
         }else {
             showTip("没有审核数据")
         }
@@ -284,10 +283,10 @@
         $.ajax({
             url: "/front/group/check/wb/result",
             type: 'POST',
-            data: {"tid": tid, "pid": pid, "s_sourceinfo": sourceinfo},
+            data: {"tid": tid, "pid": pid},
             success: function (r) {
                 if (r.success) {
-                    window.location.href = "/front/group/check/wb/result?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}"
+                    window.location.href = "/front/group/check/wb/result?pid={{.T.pid}}&tid={{.T.tid}}"
                 } else {
                     showTip(r.msg);
                 }
@@ -295,7 +294,7 @@
         })
     }
     function checkExcpResult() {
-        window.location.href = "/front/check/excp/result?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
+        window.location.href = "/front/check/excp/result?pid={{.T.pid}}&tid={{.T.tid}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
     }
 
     function validPurchase() {
@@ -308,7 +307,7 @@
         $.ajax({
             url: "/front/check/data/purchase",
             type: 'POST',
-            data: {"s_sourceinfo": sourceinfo, "taskid": tid, "pid": pid, "datatype": datatype, "keyword": ps},
+            data: {"taskid": tid, "pid": pid, "datatype": datatype, "keyword": ps, "appid": appid},
             success: function (r) {
                 hideLoading()
                 if (r.success) {

+ 2 - 2
src/web/templates/project/check_detail.html

@@ -884,7 +884,7 @@
                         if (nextid === "") {
                             alert("当前已经是最后一条数据!")
                         } else {
-                            window.location.href = "/front/user/check/detail/?pid="+pid+"&tid="+tid+"&did="+nextid+"&s_sourceinfo="+coll
+                            window.location.href = "/front/user/check/detail/?pid="+pid+"&tid="+tid+"&did="+nextid
                         }
                     }
                 },
@@ -1357,7 +1357,7 @@
                     $.ajax({
                         url: "/front/user/check/save",
                         type: "POST",
-                        data: {"data": d, "s_infoid": did, "pid": pid, "s_sourceinfo": coll},
+                        data: {"data": d, "s_infoid": did, "pid": pid},
                         success: function(res) {
                             console.log(res)
                             if (res) {

+ 4 - 4
src/web/templates/project/check_excp_result.html

@@ -8,22 +8,22 @@
         <h1><small></small></h1>
         <ol class="breadcrumb" name="tab1" style="display: none">
             <li><a href="/front/project"><i class="fa fa-dashboard"></i> 项目列表</a></li>
-            <li><a href="/front/jy/check/data?pid={{.T.pid}}&s_sourceinfo={{.T.sourceinfo}}"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/jy/check/data?pid={{.T.pid}}"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 异常校验结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab2" style="display: none">
             <li><a href="/front/group/admin/task/list"><i class="fa fa-dashboard"></i> 剑鱼任务列表</a></li>
-            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 异常校验结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab3" style="display: none">
             <li><a href="/front/group/task/list"><i class="fa fa-dashboard"></i> 用户组任务列表</a></li>
-            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 异常校验结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab4" style="display: none">
             <li><a href="/front/user/check/list?"><i class="fa fa-dashboard"></i> 质检任务列表</a></li>
-            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=user"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=user"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 异常校验结果</a></li>
         </ol>
     </section>

+ 5 - 5
src/web/templates/project/check_result.html

@@ -8,22 +8,22 @@
         <h1><small></small></h1>
         <ol class="breadcrumb" name="tab1" style="display: none">
             <li><a href="/front/project"><i class="fa fa-dashboard"></i> 项目列表</a></li>
-            <li><a href="/front/jy/check/data?pid={{.T.pid}}&s_sourceinfo={{.T.sourceinfo}}"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/jy/check/data?pid={{.T.pid}}"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 质检结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab2" style="display: none">
             <li><a href="/front/group/admin/task/list"><i class="fa fa-dashboard"></i> 剑鱼任务列表</a></li>
-            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/jy/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 质检结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab3" style="display: none">
             <li><a href="/front/group/task/list"><i class="fa fa-dashboard"></i> 用户组任务列表</a></li>
-            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=group"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 质检结果</a></li>
         </ol>
         <ol class="breadcrumb" name="tab4" style="display: none">
             <li><a href="/front/user/check/list?"><i class="fa fa-dashboard"></i> 质检任务列表</a></li>
-            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype=user"><i class="fa fa-dashboard"></i> 质检列表</a></li>
+            <li><a href="/front/user/check/data?pid={{.T.pid}}&tid={{.T.tid}}&stype=user"><i class="fa fa-dashboard"></i> 质检列表</a></li>
             <li><a href="#"><i class="fa fa-dashboard"></i> 质检结果</a></li>
         </ol>
     </section>
@@ -40,7 +40,7 @@
                         <div class="row">
                             <div class="col-xs-12">
                                 <div class="box">
-                                    <div class="box-body">
+                                    <div class="box-body">1
                                         <div class="box-body">
                                             <h4><i class="glyphicon glyphicon-exclamation-sign" style="margin-right: 6px"></i>数据情况</h4>
                                             <div class="form-group" style="margin-left: 10px;margin-top: 10px">

+ 3 - 3
src/web/templates/project/check_task_list.html

@@ -113,7 +113,7 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\''+row.s_projectid+'\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\''+row.s_projectid+'\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
                             '</div>';
                         return tmp
                     }
@@ -132,10 +132,10 @@
         })
     });
 
-    function checkMethod(tid, pid, sourceinfo, status) {
+    function checkMethod(tid, pid, status) {
         if (status !== "已关闭") {
             sessionStorage.setItem("check", "task")
-            window.location.href = "/front/user/check/data?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo+"&stype=user"
+            window.location.href = "/front/user/check/data?pid="+pid+"&tid="+tid+"&stype=user"
         }else {
             showTip("操作不允许")
         }

+ 5 - 6
src/web/templates/project/check_user_data_list.html

@@ -67,7 +67,6 @@
 
     let tid = {{ .T.tid }}
     let pid = {{ .T.pid }}
-    let sourceinfo = {{ .T.sourceinfo }}
 
     $(function () {
         ttable = $('#dataTable').dataTable({
@@ -83,7 +82,7 @@
             "ajax": {
                 "url": "/front/user/check/data",
                 "type": "POST",
-                "data": {"tid": tid, "s_sourceinfo": sourceinfo}
+                "data": {"tid": tid}
             },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"
@@ -124,9 +123,9 @@
                 {"data": "v_baseinfo.title", render: function (val, index, row) {
                         let tmp
                         if (row["b_check"]) {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'&s_sourceinfo='+sourceinfo+'">'+val+'</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'">'+val+'</a>'
                         } else {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'&s_sourceinfo='+sourceinfo+'">'+val+'</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/check/detail/?pid='+pid+'&did='+row._id+'&tid='+tid+'">'+val+'</a>'
                         }
                         return tmp
                     }},
@@ -152,12 +151,12 @@
     function checkResult() {
         let num = {{ .T.taskCheckNum }}
         if (num > 0) {
-            window.location.href = "/front/user/check/result?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
+            window.location.href = "/front/user/check/result?pid={{.T.pid}}&tid={{.T.tid}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
         }else {
             showTip("没有审核数据")
         }
     }
     function checkExcpResult() {
-        window.location.href = "/front/check/excp/result?pid={{.T.pid}}&tid={{.T.tid}}&s_sourceinfo={{.T.sourceinfo}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
+        window.location.href = "/front/check/excp/result?pid={{.T.pid}}&tid={{.T.tid}}&stype={{.T.stype}}&datatype={{.T.datatype}}"
     }
 </script>

+ 36 - 37
src/web/templates/project/project_clear.html

@@ -35,7 +35,7 @@
                                     </div>
                                     <div class="col-xs-5 form-group">
                                         <label class="form-inline">&nbsp;操作:
-                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?pid={{.T.s_projectid}}&stype=all">标注</a>
+                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?appid={{.T.appid}}&pid={.T.s_projectid}&stype=all">标注</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="dispatchTask('all')">分发</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="checkMethod('all')">质检</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="checkAllSuc()">通过</a>
@@ -55,7 +55,7 @@
                                     </div>
                                     <div class="col-xs-5 form-group">
                                         <label class="form-inline">操作:
-                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?pid={{.T.s_projectid}}&stype=notag">标注</a>
+                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?appid={{.T.appid}}&pid={.T.s_projectid}&stype=notag">标注</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="dispatchTask('notag')">分发</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="checkMethod('notag')">质检</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="checkSuc()">质检通过</a>
@@ -75,7 +75,7 @@
                                     </div>
                                     <div class="col-xs-5 form-group">
                                         <label class="form-inline">操作:
-                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?pid={{.T.s_projectid}}&stype=tag">标注</a>
+                                            <a type="button" class="btn btn-sm btn-primary" href="/front/user/jymark/list?appid={{.T.appid}}&pid={{.T.s_projectid}}&stype=tag">标注</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="dispatchTask('tag')">分发</a>
                                             <a type="button" class="btn btn-sm btn-primary" onclick="checkMethod('tag')">质检</a>
 <!--                                            <input type="button" class="btn btn-sm btn-primary" value="质检结果">-->
@@ -185,7 +185,7 @@
     menuActive("project");
 
     let projectid = {{ .T.s_projectid }}
-    let sourceinfo = {{ .T.s_sourceinfo }}
+    let appid = {{ .T.appid }}
     let allNoGiveDataNum = {{.T.allNoGiveDataNum}}
     let okNotGiveDataNum = {{.T.okNotGiveDataNum}}
     let okIsTagDataNum = {{ .T.okIsTagDataNum }}
@@ -253,26 +253,26 @@
                         if (row.s_status === '已完成') {
                             if (row.sendflag) {
                                 tmp = '<div>' +
-                                    '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
-                                    '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'">查看</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\')">质检</a>&nbsp;&nbsp;' +
                                     '<a class="btn btn-sm btn-primary" onclick="#">已推送</a>&nbsp;&nbsp;' +
                                     '</div>';
                             } else {
                                 tmp = '<div>' +
-                                    '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
-                                    '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
-                                    '<a class="btn btn-sm btn-primary" onclick="syncJyCm(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">推送</a>&nbsp;&nbsp;' +
-                                    '<a class="btn btn-sm btn-primary" onclick="exportData(\'' + val + '\',\''+row.s_sourceinfo+'\')">导出</a>&nbsp;&nbsp;' +
-                                    '<a class="btn btn-sm btn-primary" onclick="importData(\'' + val + '\',\''+row.s_sourceinfo+'\')">导入</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'">查看</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\')">质检</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" onclick="syncJyCm(\'' + val + '\',\'' + row.s_status + '\')">推送</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" onclick="exportData(\'' + val + '\')">导出</a>&nbsp;&nbsp;' +
+                                    '<a class="btn btn-sm btn-primary" onclick="importData(\'' + val + '\')">导入</a>&nbsp;&nbsp;' +
                                     '</div>';
                             }
                         }else {
                             tmp = '<div>' +
-                                '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\''+val+'\',\''+row.s_sourceinfo+'\',\''+row.s_status+'\')">收回</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="repulseTask(\''+val+'\',\''+row.s_sourceinfo+'\',\''+row.s_status+'\')">打回</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'">查看</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\''+val+'\',\''+row.s_status+'\')">收回</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="checkMethod1(\'' + row.s_projectid + '\',\'' + val + '\')">质检</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="repulseTask(\''+val+'\',\''+row.s_status+'\')">打回</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
                                 '</div>';
                         }
                         return tmp
@@ -422,13 +422,13 @@
     }
 
     // 收回
-    function retrieveTask(id, sourceinfo, status, givenum) {
+    function retrieveTask(id, status, givenum) {
         if (status === "未开始" || status === "进行中") {
             showConfirm("确认要收回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/retrieve",
                     type: 'POST',
-                    data: { "s_sourceinfo": sourceinfo, "taskid": id, "i_givenum" :givenum},
+                    data: { "taskid": id, "i_givenum" :givenum},
                     success: function (r) {
                         if (r.success) {
                             let msg = r.msg+"<br>"+"共收回"+r.count+"数据。"
@@ -446,13 +446,13 @@
     }
 
     // 打回
-    function repulseTask(id, sourceinfo, status) {
+    function repulseTask(id, status) {
         if (status === "已完成") {
             showConfirm("确认要打回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/repulse",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             location.reload()
@@ -467,13 +467,13 @@
         }
     }
 
-    function closeTask(id, sourceinfo,status) {
+    function closeTask(id,status) {
         if (status === "未开始") {
             showConfirm("确认要关闭当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/close",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             let msg = r.msg+"<br>"+"收回数据"+r.count+"条"
@@ -491,14 +491,14 @@
     }
 
     // 推送数据
-    function syncJyCm(id, sourceinfo, status) {
+    function syncJyCm(id, status) {
         if (status === "已完成") {
             showConfirm("确认要否推送当前数据到剑鱼客户管理服务平台?", function () {
                 showLoading("正在推送数据,请稍候...")
                 $.ajax({
                     url: "/front/project/task/syncjycm",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id, "pid": projectid},
+                    data: {"taskid": id, "pid": projectid},
                     success: function (r) {
                         hideLoading()
                         if (r.success) {
@@ -519,13 +519,13 @@
         }
     }
 
-    function exportData(id, sourceinfo) {
+    function exportData(id) {
         showConfirm("确认从标注平台导出任务数据?", function () {
             showLoading("正在导出数据,请稍候...")
             $.ajax({
                 url: "/front/project/task/exportdata",
                 type: 'POST',
-                data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                data: {"taskid": id},
                 xhrFields: { responseType: 'arraybuffer'},
                 success: function (r, status, xhr) {
                     hideLoading()
@@ -561,14 +561,13 @@
         }
     }
 
-    function importData(id, sourceinfo) {
+    function importData(id) {
         let input = $("<input>").attr("type", "file").hide();
         $(input).on("change", function() {
             showLoading("正在导出数据,请稍候...")
             let file = this.files[0];
             // 创建FormData对象,用于上传文件
             let formData = new FormData();
-            formData.append("s_sourceinfo", sourceinfo)
             formData.append("taskid", id)
             formData.append("xlsx", file);
             $.ajax({
@@ -613,7 +612,7 @@
             let num0 = {{ .T.allIsTagDataNum }}     // 已标注
             if (num0 > 0) {
                 sessionStorage.setItem("check", "project")
-                window.location.href = "/front/jy/check/data?pid="+projectid+"&s_sourceinfo={{.T.s_sourceinfo}}"+"&stype="+stype
+                window.location.href = "/front/jy/check/data?pid="+projectid+"&stype="+stype
             }else {
                 showTip("没有质检数据")
             }
@@ -626,7 +625,7 @@
                 if (num1 > 0) {
                     if (num3 > 0) {
                         sessionStorage.setItem("check", "project")
-                        window.location.href = "/front/jy/check/data?pid="+projectid+"&s_sourceinfo={{.T.s_sourceinfo}}"+"&stype="+stype+"&datatype=2"
+                        window.location.href = "/front/jy/check/data?pid="+projectid+"&stype="+stype+"&datatype=2"
                     }else {
                         showTip("没有质检数据")
                     }
@@ -636,12 +635,12 @@
                         $.ajax({
                             url: "/front/check/excp/notag/data",
                             type: 'POST',
-                            data: {"s_sourceinfo": sourceinfo},
+                            data: {"appid": appid},
                             success: function (r) {
                                 hideLoading()
                                 if (r.success) {
                                     sessionStorage.setItem("check", "project")
-                                    window.location.href = "/front/jy/check/data?pid="+projectid+"&s_sourceinfo={{.T.s_sourceinfo}}"+"&stype="+stype+"&datatype=1"
+                                    window.location.href = "/front/jy/check/data?pid="+projectid+"&stype="+stype+"&datatype=1"
                                 } else {
                                     showTip(r.msg);
                                 }
@@ -659,7 +658,7 @@
             let num0 = {{ .T.IsNotOkIsTagDataNum }}
             if (num0 > 0) {
                 sessionStorage.setItem("check", "project")
-                window.location.href = "/front/jy/check/data?pid="+projectid+"&s_sourceinfo={{.T.s_sourceinfo}}"+"&stype="+stype
+                window.location.href = "/front/jy/check/data?pid="+projectid+"&stype="+stype
             }else {
                 showTip("没有质检数据")
             }
@@ -675,7 +674,7 @@
                 $.ajax({
                     url: "/front/project/check/success",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo},
+                    data: {"appid": appid},
                     success: function (r) {
                         if (r.success) {
                             location.reload()
@@ -697,7 +696,7 @@
                 $.ajax({
                     url: "/front/project/pass/success",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo},
+                    data: {"appid": appid},
                     success: function (r) {
                         if (r.success) {
                             location.reload()
@@ -711,8 +710,8 @@
             showTip("操作不允许", 500)
         }
     }
-    function checkMethod1(pid, tid, sourceinfo) {
+    function checkMethod1(pid, tid) {
         sessionStorage.setItem("check", "project")
-        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo+"&stype=group"
+        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&stype=group"
     }
 </script>

+ 2 - 3
src/web/templates/project/project_data.html

@@ -37,8 +37,7 @@
 {{include "com/footer.html"}}
 <script>
     menuActive("project");
-    let _id = {{ .T.id }}
-    let coll = {{ .T.sourceinfo }}
+    let appid = {{ .T.appid }}
     $(function () {
         ttable = $('#dataTable').dataTable({
             "paging": true,
@@ -51,7 +50,7 @@
             "ajax": {
                 "url": "/front/project/data",
                 "type": "post",
-                data: {"id": _id, "sourceinfo": coll},
+                data: {"appid": appid},
             },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"

+ 13 - 14
src/web/templates/project/project_list.html

@@ -37,7 +37,7 @@
                                 <th>序号</th>
                                 <th>项目名称</th>
                                 <th>公司名称</th>
-                                <th>部门名称</th>
+                                <th>客户标识</th>
                                 <th>规则名称</th>
                                 <th>售后人员</th>
                                 <th>数据量</th>
@@ -294,7 +294,7 @@
                                 <div class="form-group">
                                     <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据表名</label>
                                     <div class="col-sm-5">
-                                        <input type="text" class="form-control" id="coll-save-name-add" placeholder="数据表名" readonly>
+                                        <input type="text" class="form-control" value="f_data" readonly>
                                     </div>
                                 </div>
                             </div>
@@ -361,7 +361,7 @@
                 {"data": null, width: "1%"},
                 {"data": "s_name", width: "4%"},
                 {"data": "s_entname", width: "5%"},
-                {"data": "s_departname", width: "4%"},
+                {"data": "appid", width: "4%"},
                 {"data": "s_rulename", width: "4%"},
                 {"data": "s_personname", width: "3%", "defaultContent": ""},
                 {"data": "i_importnum", width: "2%"},
@@ -393,24 +393,24 @@
                                 '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">编辑</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" onclick="addData(\'' + pos.row + '\')">新增</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" onclick="clearPro(\''+ pos.row +'\')">查看</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\'' + row.appid + '\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
                                 '<br>' +
                                 // '<a class="btn btn-sm btn-primary" href="">质检结果</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" href="/front/project/field?id='+row._id+'">字段配置</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" href="/front/project/data?id='+row._id+'&sourceinfo='+row.s_sourceinfo+'">数据预览</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" style="margin-top: 5px" onclick="completePro(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">完成</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" href="/front/project/data?appid='+row.appid+'">数据预览</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" style="margin-top: 5px" onclick="completePro(\'' + val + '\',\'' + row.s_status + '\')">完成</a>&nbsp;&nbsp;' +
                                 '</div>';
                         }else {
                             tmp = '<div>' +
                                 '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">编辑</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" onclick="addData(\'' + pos.row + '\')">新增</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" onclick="clearPro(\''+ pos.row +'\')">清洗</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + val + '\',\'' + row.appid + '\',\'' + row.s_status + '\')">质检</a>&nbsp;&nbsp;' +
                                 '<br>' +
                                 // '<a class="btn btn-sm btn-primary" href="">质检结果</a>&nbsp;&nbsp;' +
                                 '<a class="btn btn-sm btn-primary" href="/front/project/field?id='+row._id+'">字段配置</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" href="/front/project/data?id='+row._id+'">数据预览</a>&nbsp;&nbsp;' +
-                                '<a class="btn btn-sm btn-primary" style="margin-top: 5px" onclick="completePro(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">完成</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" href="/front/project/data?appid='+row.appid+'">数据预览</a>&nbsp;&nbsp;' +
+                                '<a class="btn btn-sm btn-primary" style="margin-top: 5px" onclick="completePro(\'' + val + '\',\'' + row.s_status + '\')">完成</a>&nbsp;&nbsp;' +
                                 '</div>';
                         }
                         return tmp
@@ -620,13 +620,13 @@
         }
     }
 
-    function completePro(pid, sourceinfo, status) {
+    function completePro(pid, appid, status) {
         if (status === "进行中") {
            showConfirm("确认已经完成该项目任务?", function () {
                $.ajax({
                    url: "/front/project/complete",
                    type: 'POST',
-                   data: {"s_projectid": pid, "s_sourceinfo": sourceinfo},
+                   data: {"s_projectid": pid, "appid": appid},
                    success: function (r) {
                        if (r.success) {
                            ttable.api().ajax.reload();
@@ -641,12 +641,12 @@
         }
     }
 
-    function checkMethod(pid, sourceinfo, status) {
+    function checkMethod(pid, appid, status) {
         if (status === "进行中" || status === "已完成") {
             $.ajax({
                 url: "/front/project/tagNum",
                 type: "POST",
-                data: {"s_sourceinfo": sourceinfo},
+                data: {"appid": appid},
                 success: function (r) {
                     if (r.success) {
                         sessionStorage.setItem("check", "project")
@@ -690,7 +690,6 @@
         if (status !== "已完成") {
             stype = "coll"
             $("#project-name-add").val(projectmap["s_name"])
-            $("#coll-save-name-add").val(projectmap["s_sourceinfo"])
             $("#modal-add_data").modal('show')
         }else {
             showTip("项目已完成,无法添加新的数据")

+ 3 - 3
src/web/templates/project/remark_detail.html

@@ -861,7 +861,7 @@
                         if (nextid === "") {
                             alert("当前数据是第一条数据,没有上一条数据!")
                         } else {
-                            window.location.href = "/front/user/remark/detail/?pid="+pid+"&tid="+tid+"&did="+lastid+"&s_sourceinfo="+coll
+                            window.location.href = "/front/user/remark/detail/?pid="+pid+"&tid="+tid+"&did="+lastid
                         }
                     } else {
                         if (issave) {
@@ -878,7 +878,7 @@
                         alert("当前已经是最后一条数据!")
                     } else {
                         sessionStorage.removeItem(_id + '_save')
-                        window.location.href = "/front/user/remark/detail/?pid="+pid+"&tid="+tid+"&did="+nextid+"&s_sourceinfo="+coll
+                        window.location.href = "/front/user/remark/detail/?pid="+pid+"&tid="+tid+"&did="+nextid
                     }
                 },
                 // 检查一级是否需要改变状态
@@ -1360,7 +1360,7 @@
                         $.ajax({
                             url: "/front/data/jyuser/mark",
                             method: "post",
-                            data: {"data": d, "s_infoid": _id, "pid": pid, "s_sourceinfo": coll, "isEff": isEff},
+                            data: {"data": d, "s_infoid": _id, "pid": pid, "isEff": isEff},
                             success: function (res) {
                                 if (res) {
                                     _this.$message({

+ 4 - 4
src/web/templates/project/remark_jy_list.html

@@ -67,7 +67,7 @@
 
     let pid = {{ .T.pid }}
     let stype = {{ .T.stype }}
-    let sourceinfo = {{ .T.s_sourceinfo }}
+    let appid = {{ .T.appid }}
     let topsubtype = {{ .T.topsubtype }}
     let allfield = {{ .T.allfield }}
 
@@ -85,7 +85,7 @@
             "ajax": {
                 "url": "/front/user/jymark/list",
                 "type": "post",
-                "data": {"pid": pid, "s_sourceinfo": sourceinfo, "stype": stype}
+                "data": {"pid": pid, "appid": appid, "stype": stype}
             },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"
@@ -117,9 +117,9 @@
                 {"data": "v_baseinfo.title", render: function (val, index, row) {
                         let tmp;
                         if (row["b_istag"]) {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&did=' + row._id + '&s_sourceinfo='+sourceinfo+'">' + val + '</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&did=' + row._id + '">' + val + '</a>'
                         } else {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&did=' + row._id + '&s_sourceinfo='+sourceinfo+'">' + val + '</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&did=' + row._id + '">' + val + '</a>'
                         }
                         return tmp
                     }}

+ 3 - 4
src/web/templates/project/remark_list.html

@@ -49,7 +49,6 @@
 
     let tid = {{ .T.tid }}
     let pid = {{ .T.pid }}
-    let sourceinfo = {{ .T.s_sourceinfo }}
 
     $(function () {
         ttable = $('#dataTable').dataTable({
@@ -65,7 +64,7 @@
             "ajax": {
                 "url": "/front/user/remark/list",
                 "type": "post",
-                "data": {"tid": tid, "s_sourceinfo": sourceinfo}
+                "data": {"tid": tid}
             },
             "language": {
                 "url": "/dist/js/dataTables.chinese.lang"
@@ -97,9 +96,9 @@
                 {"data": "v_baseinfo.title", render: function (val, index, row) {
                         let tmp;
                         if (row["b_istag"]) {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&tid=' + tid +'&did=' + row._id + '&s_sourceinfo='+sourceinfo+'">' + val + '</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: green" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&tid=' + tid +'&did=' + row._id + '">' + val + '</a>'
                         } else {
-                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&tid=' + tid +'&did=' + row._id + '&s_sourceinfo='+sourceinfo+'">' + val + '</a>'
+                            tmp = '<a style="display: inline-block;cursor:pointer;font-size:16px;color: #428bca" target="_blank" href="/front/user/remark/detail/?pid='+pid+'&tid=' + tid +'&did=' + row._id + '">' + val + '</a>'
                         }
                         return tmp
                     }}

+ 9 - 9
src/web/templates/project/task_detail.html

@@ -219,9 +219,9 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\''+val+'\',\''+row.s_sourceinfo+'\',\''+row.s_status+'\')">收回</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\'' + row.s_status + '\',\''+row.s_sourceinfo+'\')">打回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\''+val+'\',\''+row.appid+'\',\''+row.s_status+'\')">收回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.appid + '\')">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\'' + row.s_status + '\',\''+row.appid+'\')">打回</a>&nbsp;&nbsp;' +
                             '</div>';
                         return tmp
                     }
@@ -423,13 +423,13 @@
     }
 
     // 收回
-    function retrieveTask(id, sourceinfo, status) {
+    function retrieveTask(id, appid, status) {
         if (status === "未开始" || status === "进行中") {
             showConfirm("确认要收回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/user/task/retrieve",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"appid": appid, "taskid": id},
                     success: function (r) {
                         if (r.success) {
                             let msg = r.msg+"<br>"+"共收回"+r.count+"数据。"
@@ -446,13 +446,13 @@
             showTip("操作不允许")
         }
     }
-    function closeTask(id, status, sourceinfo) {
+    function closeTask(id, status, appid) {
         if (status === "已完成" || status === "进行中") {
             showConfirm("确认要打回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/user/task/close",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"appid": appid, "taskid": id},
                     success: function (r) {
                         if (r.success) {
                             location.reload()
@@ -466,7 +466,7 @@
             showTip("操作不允许")
         }
     }
-    function checkMethod(pid, tid, sourceinfo) {
-        window.location.href = "/front/user/check/data?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo
+    function checkMethod(pid, tid, appid) {
+        window.location.href = "/front/user/check/data?pid="+pid+"&tid="+tid+"&appid="+appid
     }
 </script>

+ 4 - 4
src/web/templates/project/task_group_list.html

@@ -113,9 +113,9 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'">查看</a>&nbsp;&nbsp;' +
                             // '<a class="btn btn-sm btn-warning">分发</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\')">质检</a>&nbsp;&nbsp;' +
                             // '<a class="btn btn-sm btn-primary">质检结果</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-primary" onclick="deliverTask(\'' + val + '\',\'' + row.s_status + '\')">交付</a>&nbsp;&nbsp;' +
                             '</div>';
@@ -158,9 +158,9 @@
         }
     }
 
-    function checkMethod(pid, tid, sourceinfo) {
+    function checkMethod(pid, tid) {
         sessionStorage.setItem("check", "group")
-        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo+"&stype=group"
+        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&stype=group"
     }
 
 </script>

+ 13 - 13
src/web/templates/project/task_list.html

@@ -134,11 +134,11 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'&stype=jy">查看</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">收回</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="repulseTask(\''+val+'\',\''+row.s_sourceinfo+'\',\''+row.s_status+'\')">打回</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'&stype=jy">查看</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\'' + val + '\',\'' + row.s_status + '\')">收回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\')">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="repulseTask(\''+val+'\',\''+row.s_status+'\')">打回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
                             '</div>';
                         return tmp
                     }
@@ -195,13 +195,13 @@
     });
 
     // 收回
-    function retrieveTask(id, sourceinfo, status) {
+    function retrieveTask(id, status) {
         if (status === "未开始" || status === "进行中") {
             showConfirm("确定收回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/retrieve",
                     type: 'POST',
-                    data: {"taskid": id, "s_sourceinfo": sourceinfo},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             let msg = r.msg+"<br>"+"共收回"+r.count+"数据。"
@@ -217,13 +217,13 @@
             showTip("操作不允许")
         }
     }
-    function closeTask(id, sourceinfo,status) {
+    function closeTask(id,status) {
         if (status === "未开始") {
             showConfirm("确认要关闭当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/close",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             let msg = r.msg+"<br>"+"共收回"+r.count+"数据。"
@@ -241,13 +241,13 @@
     }
 
     // 打回
-    function repulseTask(id, sourceinfo, status) {
+    function repulseTask(id, status) {
         if (status === "已完成") {
             showConfirm("确认要打回当前任务吗?", function () {
                 $.ajax({
                     url: "/front/project/task/repulse",
                     type: 'POST',
-                    data: {"s_sourceinfo": sourceinfo, "taskid": id},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             location.reload()
@@ -285,9 +285,9 @@
         window.location.href = "/front/group/task/export?"+"i_starttime="+sttime+"&i_completetime="+edtime+"&s_search="+search+"&s_status="+status
     }
 
-    function checkMethod(pid, tid, sourceinfo) {
+    function checkMethod(pid, tid) {
         sessionStorage.setItem("check", "jygroup")
-        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo+"&stype=group"
+        window.location.href = "/front/jy/check/data?pid="+pid+"&tid="+tid+"&stype=group"
     }
 
     function statsTask() {

+ 10 - 12
src/web/templates/project/task_user_list.html

@@ -149,9 +149,9 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" onclick="markMethod(\'' + val + '\',\''+row.s_projectid+'\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">标注</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="deliverTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">交付</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" onclick="appendTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_parentid + '\')">领取数据</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="markMethod(\'' + val + '\',\''+row.s_projectid+'\',\'' + row.s_status + '\')">标注</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="deliverTask(\'' + val + '\',\'' + row.s_status + '\')">交付</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" onclick="appendTask(\'' + val + '\',\'' + row.s_parentid + '\')">领取数据</a>&nbsp;&nbsp;' +
                             '</div>';
                         return tmp
                     }
@@ -170,13 +170,13 @@
         })
     });
 
-    function deliverTask(id, sourceinfo, status) {
+    function deliverTask(id, status) {
         if (status === "进行中") {
             showConfirm("确认要交付当前任务吗?", function () {
                 $.ajax({
                     url: "/front/user/task/deliver",
                     type: 'POST',
-                    data: {"taskid": id, "s_sourceinfo": sourceinfo},
+                    data: {"taskid": id},
                     success: function (r) {
                         if (r.success) {
                             ttable.api().ajax.reload()
@@ -193,12 +193,11 @@
 
     let ctid = ""
     let cgid = ""
-    let sourceinfo = ""
     function appendTask(id, sinfo, gid) {
         $.ajax({
             url: "/front/user/task/append",
             type: 'POST',
-            data: {"taskid": id, "s_sourceinfo": sinfo, "groupid": gid},
+            data: {"taskid": id, "groupid": gid},
             success: function (r) {
                 if (r.success) {
                     $('#modal-num').html(r.count)
@@ -206,7 +205,6 @@
 
                     ctid = id
                     cgid = gid
-                    sourceinfo = sinfo
                     $('#modal-task-append').modal('show')
                 } else {
                     showTip(r.msg);
@@ -227,7 +225,7 @@
                 $.ajax({
                     url: "/front/user/task/append/save",
                     type: 'POST',
-                    data: {"taskid": ctid, "s_sourceinfo": sourceinfo, "num": max, "groupid": cgid},
+                    data: {"taskid": ctid, "num": max, "groupid": cgid},
                     success: function (r) {
                         if (r.success) {
                             ttable.api().ajax.reload()
@@ -241,7 +239,7 @@
             $.ajax({
                 url: "/front/user/task/append/save",
                 type: 'POST',
-                data: {"taskid": ctid, "s_sourceinfo": sourceinfo, "num": val, "groupid": cgid},
+                data: {"taskid": ctid, "num": val, "groupid": cgid},
                 success: function (r) {
                     if (r.success) {
                         $('#modal-task-append').modal('hide')
@@ -259,9 +257,9 @@
         $("#modal-task-append").modal('hide')
     }
 
-    function markMethod(tid, pid, sourceinfo, status) {
+    function markMethod(tid, pid, status) {
         if (status !== "已关闭") {
-            window.location.href ="/front/user/remark/list?pid="+pid+"&tid="+tid+"&s_sourceinfo="+sourceinfo
+            window.location.href ="/front/user/remark/list?pid="+pid+"&tid="+tid
         }else {
             showTip("操作不允许")
         }