|
@@ -48,11 +48,9 @@ func (f *Front) RemarkList() {
|
|
bson.M{"v_baseinfo.title": bson.M{"$regex": search}},
|
|
bson.M{"v_baseinfo.title": bson.M{"$regex": search}},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug(query)
|
|
|
|
field := map[string]interface{}{"v_baseinfo.title": 1, "b_istag": 1, "i_ckdata": 1}
|
|
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)
|
|
info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, field, false, start, limit)
|
|
count := util.Mgo.Count(sourceinfo, query)
|
|
count := util.Mgo.Count(sourceinfo, query)
|
|
- qu.Debug(query, sourceinfo, count)
|
|
|
|
f.ServeJson(map[string]interface{}{
|
|
f.ServeJson(map[string]interface{}{
|
|
"draw": draw,
|
|
"draw": draw,
|
|
"data": *info,
|
|
"data": *info,
|
|
@@ -74,9 +72,9 @@ func (f *Front) RemarkDetail() {
|
|
coll := f.GetString("s_sourceinfo")
|
|
coll := f.GetString("s_sourceinfo")
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
|
|
fs, _ := (*project)["v_fields"].([]interface{})
|
|
fs, _ := (*project)["v_fields"].([]interface{})
|
|
- rep := getDetail(did, coll, qu.ObjArrToMapArr(fs)) //获取本条公告的信息
|
|
|
|
- f.T["otherInfo"] = rep["otherInfo"] //展示关联公告信息
|
|
|
|
- f.T["moreInfo"] = rep["moreInfo"] //更多关联公告信息
|
|
|
|
|
|
+ rep := getDetail(did, coll, "remark", qu.ObjArrToMapArr(fs)) //获取本条公告的信息
|
|
|
|
+ f.T["otherInfo"] = rep["otherInfo"] //展示关联公告信息
|
|
|
|
+ f.T["moreInfo"] = rep["moreInfo"] //更多关联公告信息
|
|
f.T["pid"] = pid
|
|
f.T["pid"] = pid
|
|
f.T["tid"] = tid
|
|
f.T["tid"] = tid
|
|
f.T["did"] = did
|
|
f.T["did"] = did
|
|
@@ -93,7 +91,6 @@ func (f *Front) RemarkDetail() {
|
|
f.T["PurchasinglistField"] = m["field"]
|
|
f.T["PurchasinglistField"] = m["field"]
|
|
}
|
|
}
|
|
if rep["proc"] != nil {
|
|
if rep["proc"] != nil {
|
|
- qu.Debug(rep["proc"])
|
|
|
|
m := rep["proc"].(map[string]interface{})
|
|
m := rep["proc"].(map[string]interface{})
|
|
f.T["procurementlist"] = m["procurementlist"]
|
|
f.T["procurementlist"] = m["procurementlist"]
|
|
f.T["pcl_new_1"] = m["pcl_new_1"]
|
|
f.T["pcl_new_1"] = m["pcl_new_1"]
|
|
@@ -118,12 +115,12 @@ func (f *Front) RemarkDetail() {
|
|
f.T["ck_winnerorder"] = rep["ck_winnerorder"]
|
|
f.T["ck_winnerorder"] = rep["ck_winnerorder"]
|
|
f.T["keyword"] = rep["matchkey"]
|
|
f.T["keyword"] = rep["matchkey"]
|
|
f.T["nextid"] = GetNextDataId(did, coll, tid) //下一条id
|
|
f.T["nextid"] = GetNextDataId(did, coll, tid) //下一条id
|
|
|
|
+ f.T["lastid"] = GetLastDataId(did, coll, tid) //上一条id
|
|
_ = f.Render("project/remark_detail.html", &f.T)
|
|
_ = f.Render("project/remark_detail.html", &f.T)
|
|
}
|
|
}
|
|
|
|
|
|
-func getDetail(id, coll string, fs []map[string]interface{}) map[string]interface{} {
|
|
|
|
|
|
+func getDetail(id, coll, stype string, fs []map[string]interface{}) map[string]interface{} {
|
|
rep := map[string]interface{}{}
|
|
rep := map[string]interface{}{}
|
|
- qu.Debug(fs)
|
|
|
|
infoTmp, _ := util.Mgo.FindById(coll, id, ``)
|
|
infoTmp, _ := util.Mgo.FindById(coll, id, ``)
|
|
rep["s_excp_info"] = (*infoTmp)["s_excp_info"]
|
|
rep["s_excp_info"] = (*infoTmp)["s_excp_info"]
|
|
baseInfo := (*infoTmp)["v_baseinfo"].(map[string]interface{}) //字段值
|
|
baseInfo := (*infoTmp)["v_baseinfo"].(map[string]interface{}) //字段值
|
|
@@ -143,7 +140,7 @@ func getDetail(id, coll string, fs []map[string]interface{}) map[string]interfac
|
|
}
|
|
}
|
|
rep["matchkey"] = baseInfo["matchkey"]
|
|
rep["matchkey"] = baseInfo["matchkey"]
|
|
rep["info"] = baseInfo
|
|
rep["info"] = baseInfo
|
|
- common, other, pruM, proM, pkgM, winM, enbArr := setExtComMap(baseInfo, bzInfo, fs)
|
|
|
|
|
|
+ common, other, pruM, proM, pkgM, winM, enbArr := setExtComMap(baseInfo, bzInfo, fs, stype)
|
|
rep["common"] = common
|
|
rep["common"] = common
|
|
rep["other"] = other
|
|
rep["other"] = other
|
|
rep["pkg"] = pkgM // 多包信息
|
|
rep["pkg"] = pkgM // 多包信息
|
|
@@ -174,7 +171,7 @@ func getDetail(id, coll string, fs []map[string]interface{}) map[string]interfac
|
|
}
|
|
}
|
|
|
|
|
|
// 拼装抽取common值
|
|
// 拼装抽取common值
|
|
-func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface{}) ([]interface{}, []interface{},
|
|
|
|
|
|
+func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface{}, stype string) ([]interface{}, []interface{},
|
|
map[string]interface{}, map[string]interface{}, map[string]interface{}, map[string]interface{}, []string) {
|
|
map[string]interface{}, map[string]interface{}, map[string]interface{}, map[string]interface{}, []string) {
|
|
var common []interface{} // 基本字段信息
|
|
var common []interface{} // 基本字段信息
|
|
var other []interface{} //自定义字段信息
|
|
var other []interface{} //自定义字段信息
|
|
@@ -190,7 +187,7 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
if v["child"] != nil {
|
|
if v["child"] != nil {
|
|
enbArr = append(enbArr, key)
|
|
enbArr = append(enbArr, key)
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
- purchasinglist, isNewStatus := setPurchasingMap(info, child)
|
|
|
|
|
|
+ purchasinglist, isNewStatus := setPurchasingMap(info, child, stype)
|
|
purM["purchasinglist"] = purchasinglist
|
|
purM["purchasinglist"] = purchasinglist
|
|
purM["pcl_new"] = isNewStatus
|
|
purM["pcl_new"] = isNewStatus
|
|
var m []map[string]string
|
|
var m []map[string]string
|
|
@@ -205,8 +202,7 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
if v["child"] != nil {
|
|
if v["child"] != nil {
|
|
enbArr = append(enbArr, key)
|
|
enbArr = append(enbArr, key)
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
- purchasinglist_1, isNewStatus1 := setPurchasingMap1(info, child)
|
|
|
|
- qu.Debug(purchasinglist_1, isNewStatus1)
|
|
|
|
|
|
+ purchasinglist_1, isNewStatus1 := setPurchasingMap1(info, child, stype)
|
|
proM["procurementlist"] = purchasinglist_1
|
|
proM["procurementlist"] = purchasinglist_1
|
|
proM["pcl_new_1"] = isNewStatus1
|
|
proM["pcl_new_1"] = isNewStatus1
|
|
var m []map[string]string
|
|
var m []map[string]string
|
|
@@ -221,7 +217,7 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
if v["child"] != nil {
|
|
if v["child"] != nil {
|
|
enbArr = append(enbArr, key)
|
|
enbArr = append(enbArr, key)
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
- packs, packskey, pkg_new := setPaceMap(info, child)
|
|
|
|
|
|
+ packs, packskey, pkg_new := setPaceMap(info, child, stype)
|
|
pkgM["packs"] = packs
|
|
pkgM["packs"] = packs
|
|
pkgM["packskey"] = packskey
|
|
pkgM["packskey"] = packskey
|
|
pkgM["pkg_new"] = pkg_new
|
|
pkgM["pkg_new"] = pkg_new
|
|
@@ -237,7 +233,7 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
if v["child"] != nil {
|
|
if v["child"] != nil {
|
|
enbArr = append(enbArr, key)
|
|
enbArr = append(enbArr, key)
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
child := qu.ObjArrToMapArr(v["child"].([]interface{}))
|
|
- worder, worderNew := setWorderMap(info, child)
|
|
|
|
|
|
+ worder, worderNew := setWorderMap(info, child, stype)
|
|
winM["worder"] = worder
|
|
winM["worder"] = worder
|
|
winM["worder_new"] = worderNew
|
|
winM["worder_new"] = worderNew
|
|
var m []map[string]string
|
|
var m []map[string]string
|
|
@@ -252,7 +248,11 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
if v["child"] != nil {
|
|
if v["child"] != nil {
|
|
enbArr = append(enbArr, key)
|
|
enbArr = append(enbArr, key)
|
|
for _, tm := range qu.ObjArrToMapArr(v["child"].([]interface{})) {
|
|
for _, tm := range qu.ObjArrToMapArr(v["child"].([]interface{})) {
|
|
- tm["status"] = "1"
|
|
|
|
|
|
+ if stype == "remark" {
|
|
|
|
+ tm["status"] = "1"
|
|
|
|
+ } else {
|
|
|
|
+ tm["status"] = "-1"
|
|
|
|
+ }
|
|
tm["value"] = info[qu.ObjToString(tm["key"])]
|
|
tm["value"] = info[qu.ObjToString(tm["key"])]
|
|
other = append(other, tm)
|
|
other = append(other, tm)
|
|
}
|
|
}
|
|
@@ -275,7 +275,11 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
} else {
|
|
} else {
|
|
v["value"] = info[key]
|
|
v["value"] = info[key]
|
|
}
|
|
}
|
|
- v["status"] = "1"
|
|
|
|
|
|
+ if stype == "remark" {
|
|
|
|
+ v["status"] = "1"
|
|
|
|
+ } else {
|
|
|
|
+ v["status"] = "-1"
|
|
|
|
+ }
|
|
common = append(common, v)
|
|
common = append(common, v)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -286,7 +290,7 @@ func setExtComMap(info, bzInfo map[string]interface{}, fs []map[string]interface
|
|
}
|
|
}
|
|
|
|
|
|
// 拼装子包信息
|
|
// 拼装子包信息
|
|
-func setPaceMap(info map[string]interface{}, confpack []map[string]interface{}) ([]map[string]interface{}, []string, []bool) {
|
|
|
|
|
|
+func setPaceMap(info map[string]interface{}, confpack []map[string]interface{}, stype string) ([]map[string]interface{}, []string, []bool) {
|
|
//bzpack := bzInfo["package"].(map[string]interface{})
|
|
//bzpack := bzInfo["package"].(map[string]interface{})
|
|
packs := map[string]map[string]interface{}{}
|
|
packs := map[string]map[string]interface{}{}
|
|
var sortpackskey []string
|
|
var sortpackskey []string
|
|
@@ -296,7 +300,7 @@ func setPaceMap(info map[string]interface{}, confpack []map[string]interface{})
|
|
if tmppack, ok := tmpackage.(map[string]interface{}); ok {
|
|
if tmppack, ok := tmpackage.(map[string]interface{}); ok {
|
|
isNew, _ := tmppack["isnew"].(bool)
|
|
isNew, _ := tmppack["isnew"].(bool)
|
|
status := "-1"
|
|
status := "-1"
|
|
- if tmppack["package_son"] != nil {
|
|
|
|
|
|
+ if stype == "remark" && tmppack["package_son"] != nil {
|
|
status = "1"
|
|
status = "1"
|
|
}
|
|
}
|
|
isNewPkg[k] = isNew
|
|
isNewPkg[k] = isNew
|
|
@@ -311,8 +315,8 @@ func setPaceMap(info map[string]interface{}, confpack []map[string]interface{})
|
|
"key": key,
|
|
"key": key,
|
|
"descript": cpack["descript"],
|
|
"descript": cpack["descript"],
|
|
}
|
|
}
|
|
- if tmppack[fmt.Sprint(tp["key"])] != nil {
|
|
|
|
- tp["value"] = tmppack[qu.ObjToString(tp["key"])]
|
|
|
|
|
|
+ if tmppack[key] != nil {
|
|
|
|
+ tp["value"] = tmppack[key]
|
|
} else {
|
|
} else {
|
|
tp["value"] = ""
|
|
tp["value"] = ""
|
|
}
|
|
}
|
|
@@ -378,7 +382,7 @@ func setPaceMap(info map[string]interface{}, confpack []map[string]interface{})
|
|
}
|
|
}
|
|
|
|
|
|
// 拼装标的物
|
|
// 拼装标的物
|
|
-func setPurchasingMap(info map[string]interface{}, pur []map[string]interface{}) ([]interface{}, []map[string]interface{}) {
|
|
|
|
|
|
+func setPurchasingMap(info map[string]interface{}, pur []map[string]interface{}, stype string) ([]interface{}, []map[string]interface{}) {
|
|
var purchasinglists []interface{}
|
|
var purchasinglists []interface{}
|
|
//isNewPcl := []bool{} //记录子包是否是新增的
|
|
//isNewPcl := []bool{} //记录子包是否是新增的
|
|
var isNewAndStatus []map[string]interface{}
|
|
var isNewAndStatus []map[string]interface{}
|
|
@@ -388,7 +392,7 @@ func setPurchasingMap(info map[string]interface{}, pur []map[string]interface{})
|
|
//isNew, _ := pcl["isnew"].(bool)
|
|
//isNew, _ := pcl["isnew"].(bool)
|
|
isNew := false
|
|
isNew := false
|
|
status := "-1"
|
|
status := "-1"
|
|
- if pcl["purchasinglist_son"] != nil {
|
|
|
|
|
|
+ if stype == "remark" && pcl["purchasinglist_son"] != nil {
|
|
status = "1"
|
|
status = "1"
|
|
}
|
|
}
|
|
//isNewPcl = append(isNewPcl, isNew)
|
|
//isNewPcl = append(isNewPcl, isNew)
|
|
@@ -420,7 +424,7 @@ func setPurchasingMap(info map[string]interface{}, pur []map[string]interface{})
|
|
}
|
|
}
|
|
|
|
|
|
// 采购意向
|
|
// 采购意向
|
|
-func setPurchasingMap1(info map[string]interface{}, pro []map[string]interface{}) ([]interface{}, []map[string]interface{}) {
|
|
|
|
|
|
+func setPurchasingMap1(info map[string]interface{}, pro []map[string]interface{}, stype string) ([]interface{}, []map[string]interface{}) {
|
|
var procurementlists []interface{}
|
|
var procurementlists []interface{}
|
|
//isNewPcl := []bool{} //记录子包是否是新增的
|
|
//isNewPcl := []bool{} //记录子包是否是新增的
|
|
var isNewAndStatus []map[string]interface{}
|
|
var isNewAndStatus []map[string]interface{}
|
|
@@ -430,7 +434,7 @@ func setPurchasingMap1(info map[string]interface{}, pro []map[string]interface{}
|
|
//isNew, _ := pcl["isnew"].(bool)
|
|
//isNew, _ := pcl["isnew"].(bool)
|
|
isNew := false
|
|
isNew := false
|
|
status := "-1"
|
|
status := "-1"
|
|
- if pcl["purchasinglist_son"] != nil {
|
|
|
|
|
|
+ if stype == "remark" && pcl["purchasinglist_son"] != nil {
|
|
status = "1"
|
|
status = "1"
|
|
}
|
|
}
|
|
//isNewPcl = append(isNewPcl, isNew)
|
|
//isNewPcl = append(isNewPcl, isNew)
|
|
@@ -462,7 +466,7 @@ func setPurchasingMap1(info map[string]interface{}, pro []map[string]interface{}
|
|
}
|
|
}
|
|
|
|
|
|
// 拼装中标候选人
|
|
// 拼装中标候选人
|
|
-func setWorderMap(info map[string]interface{}, winnerorder []map[string]interface{}) ([]interface{}, []map[string]interface{}) {
|
|
|
|
|
|
+func setWorderMap(info map[string]interface{}, winnerorder []map[string]interface{}, stype string) ([]interface{}, []map[string]interface{}) {
|
|
//基本参数--中标候选人
|
|
//基本参数--中标候选人
|
|
worders := []interface{}{}
|
|
worders := []interface{}{}
|
|
isNewAndStatus := []map[string]interface{}{}
|
|
isNewAndStatus := []map[string]interface{}{}
|
|
@@ -472,7 +476,7 @@ func setWorderMap(info map[string]interface{}, winnerorder []map[string]interfac
|
|
//isNew, _ := wd["isnew"].(bool)
|
|
//isNew, _ := wd["isnew"].(bool)
|
|
isNew := false
|
|
isNew := false
|
|
status := "-1"
|
|
status := "-1"
|
|
- if wd["winnerorder_son"] != nil {
|
|
|
|
|
|
+ if stype == "remark" && wd["winnerorder_son"] != nil {
|
|
status = "1"
|
|
status = "1"
|
|
}
|
|
}
|
|
isNewAndStatus = append(isNewAndStatus, map[string]interface{}{"isnew": isNew, "status": status})
|
|
isNewAndStatus = append(isNewAndStatus, map[string]interface{}{"isnew": isNew, "status": status})
|
|
@@ -600,7 +604,7 @@ func DealData(tmpLen int, publishtime float64, tmp []map[string]interface{}, mor
|
|
// GetNextDataId 获取当前数据下一条的id
|
|
// GetNextDataId 获取当前数据下一条的id
|
|
func GetNextDataId(id, coll, tid string) string {
|
|
func GetNextDataId(id, coll, tid string) string {
|
|
nextIdQuery := map[string]interface{}{
|
|
nextIdQuery := map[string]interface{}{
|
|
- "b_istag": false,
|
|
|
|
|
|
+ //"b_istag": false,
|
|
"_id": map[string]interface{}{
|
|
"_id": map[string]interface{}{
|
|
"$gt": mgo.StringTOBsonId(id),
|
|
"$gt": mgo.StringTOBsonId(id),
|
|
},
|
|
},
|
|
@@ -608,21 +612,44 @@ func GetNextDataId(id, coll, tid string) string {
|
|
if tid != "" {
|
|
if tid != "" {
|
|
nextIdQuery["s_usertaskid"] = tid
|
|
nextIdQuery["s_usertaskid"] = tid
|
|
}
|
|
}
|
|
- qu.Debug(nextIdQuery)
|
|
|
|
one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
- qu.Debug((*one)[0])
|
|
|
|
if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
} else {
|
|
} else {
|
|
- delete(nextIdQuery, "_id")
|
|
|
|
- qu.Debug(nextIdQuery)
|
|
|
|
- one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
- if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
- if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
- return ""
|
|
|
|
- }
|
|
|
|
- return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
- }
|
|
|
|
|
|
+ //delete(nextIdQuery, "_id")
|
|
|
|
+ //one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
+ //if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ // if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
+ // return ""
|
|
|
|
+ // }
|
|
|
|
+ // return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ //}
|
|
|
|
+ }
|
|
|
|
+ return ""
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetLastDataId(id, coll, tid string) string {
|
|
|
|
+ nextIdQuery := map[string]interface{}{
|
|
|
|
+ //"b_istag": false,
|
|
|
|
+ "_id": map[string]interface{}{
|
|
|
|
+ "$lt": mgo.StringTOBsonId(id),
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ if tid != "" {
|
|
|
|
+ nextIdQuery["s_usertaskid"] = tid
|
|
|
|
+ }
|
|
|
|
+ one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
+ if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ } else {
|
|
|
|
+ //delete(nextIdQuery, "_id")
|
|
|
|
+ //one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":-1}`, true, 0, 1)
|
|
|
|
+ //if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ // if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
+ // return ""
|
|
|
|
+ // }
|
|
|
|
+ // return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
return ""
|
|
return ""
|
|
}
|
|
}
|
|
@@ -633,7 +660,7 @@ func GetNextDataId1(id, coll, tid, tag string) string {
|
|
"_id": map[string]interface{}{
|
|
"_id": map[string]interface{}{
|
|
"$gt": mgo.StringTOBsonId(id),
|
|
"$gt": mgo.StringTOBsonId(id),
|
|
},
|
|
},
|
|
- "b_check": false,
|
|
|
|
|
|
+ //"b_check": false,
|
|
}
|
|
}
|
|
if tid != "" {
|
|
if tid != "" {
|
|
// 数据有任务 查询带上标注标记
|
|
// 数据有任务 查询带上标注标记
|
|
@@ -646,19 +673,52 @@ func GetNextDataId1(id, coll, tid, tag string) string {
|
|
} else {
|
|
} else {
|
|
nextIdQuery["i_ckdata"] = 2
|
|
nextIdQuery["i_ckdata"] = 2
|
|
}
|
|
}
|
|
- qu.Debug(nextIdQuery, coll)
|
|
|
|
one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
} else {
|
|
} else {
|
|
- delete(nextIdQuery, "_id")
|
|
|
|
- one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
- if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
- if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
- return ""
|
|
|
|
- }
|
|
|
|
- return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
|
|
+ //delete(nextIdQuery, "_id")
|
|
|
|
+ //one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
+ //if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ // if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
+ // return ""
|
|
|
|
+ // }
|
|
|
|
+ // return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ //}
|
|
|
|
+ }
|
|
|
|
+ return ""
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetLastDataId1(id, coll, tid, tag string) string {
|
|
|
|
+ nextIdQuery := map[string]interface{}{
|
|
|
|
+ "_id": map[string]interface{}{
|
|
|
|
+ "$lt": mgo.StringTOBsonId(id),
|
|
|
|
+ },
|
|
|
|
+ //"b_check": false,
|
|
|
|
+ }
|
|
|
|
+ if tid != "" {
|
|
|
|
+ // 数据有任务 查询带上标注标记
|
|
|
|
+ nextIdQuery["i_ckdata"] = 2
|
|
|
|
+ if tag == "group" {
|
|
|
|
+ nextIdQuery["s_grouptaskid"] = tid
|
|
|
|
+ } else {
|
|
|
|
+ nextIdQuery["s_usertaskid"] = tid
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ nextIdQuery["i_ckdata"] = 2
|
|
|
|
+ }
|
|
|
|
+ one, _ := util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
+ if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ } else {
|
|
|
|
+ //delete(nextIdQuery, "_id")
|
|
|
|
+ //one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":-1}`, `{"_id":1}`, true, 0, 1)
|
|
|
|
+ //if len(*one) == 1 && len((*one)[0]) > 0 {
|
|
|
|
+ // if mgo.BsonIdToSId((*one)[0]["_id"]) == id {
|
|
|
|
+ // return ""
|
|
|
|
+ // }
|
|
|
|
+ // return mgo.BsonIdToSId((*one)[0]["_id"])
|
|
|
|
+ //}
|
|
}
|
|
}
|
|
return ""
|
|
return ""
|
|
}
|
|
}
|
|
@@ -693,7 +753,6 @@ func (f *Front) CheckList() {
|
|
map[string]interface{}{"s_projectname": map[string]interface{}{"$regex": search}},
|
|
map[string]interface{}{"s_projectname": map[string]interface{}{"$regex": search}},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("Query:", query)
|
|
|
|
count := util.Mgo.Count(util.TASKCOLLNAME, query)
|
|
count := util.Mgo.Count(util.TASKCOLLNAME, query)
|
|
list, _ := util.Mgo.Find(util.TASKCOLLNAME, query, bson.M{"_id": -1}, nil, false, start, limit)
|
|
list, _ := util.Mgo.Find(util.TASKCOLLNAME, query, bson.M{"_id": -1}, nil, false, start, limit)
|
|
for _, l := range *list {
|
|
for _, l := range *list {
|
|
@@ -744,7 +803,6 @@ func (f *Front) CheckData() {
|
|
} else if s_excp == "-1" {
|
|
} else if s_excp == "-1" {
|
|
query["s_excp"] = map[string]interface{}{"$exists": true}
|
|
query["s_excp"] = map[string]interface{}{"$exists": true}
|
|
}
|
|
}
|
|
- qu.Debug(query)
|
|
|
|
count := util.Mgo.Count(sourceinfo, query)
|
|
count := util.Mgo.Count(sourceinfo, 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}
|
|
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(sourceinfo, query, `{"_id": 1}`, fields, false, start, limit)
|
|
@@ -822,6 +880,14 @@ func (f *Front) CheckJyData() {
|
|
max := f.GetString("maxval")
|
|
max := f.GetString("maxval")
|
|
hasno, _ := f.GetBool("hasno") //是否存在
|
|
hasno, _ := f.GetBool("hasno") //是否存在
|
|
notag, _ := f.GetBool("notag") //是否标注
|
|
notag, _ := f.GetBool("notag") //是否标注
|
|
|
|
+ searchStr := f.GetString("search[value]")
|
|
|
|
+ searchStr = strings.TrimSpace(searchStr)
|
|
|
|
+ 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}},
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if status == "1" {
|
|
if status == "1" {
|
|
query["b_check"] = true
|
|
query["b_check"] = true
|
|
} else if status == "-1" {
|
|
} else if status == "-1" {
|
|
@@ -906,7 +972,6 @@ func (f *Front) CheckJyData() {
|
|
} else if !fieldScreen && notag {
|
|
} else if !fieldScreen && notag {
|
|
query["i_ckdata"] = 0
|
|
query["i_ckdata"] = 0
|
|
}
|
|
}
|
|
- qu.Debug(query)
|
|
|
|
count := util.Mgo.Count(sourceinfo, query)
|
|
count := util.Mgo.Count(sourceinfo, 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}
|
|
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(sourceinfo, query, `{"_id": 1}`, fields, false, start, limit)
|
|
@@ -944,7 +1009,6 @@ func (f *Front) CheckJyData() {
|
|
f.T["taskNum"] = (*project)["i_importnum"]
|
|
f.T["taskNum"] = (*project)["i_importnum"]
|
|
query1["i_ckdata"] = 2
|
|
query1["i_ckdata"] = 2
|
|
}
|
|
}
|
|
- qu.Debug(sourceinfo, query1)
|
|
|
|
count := util.Mgo.Count(sourceinfo, query1)
|
|
count := util.Mgo.Count(sourceinfo, query1)
|
|
//f.T["taskNum"] = count
|
|
//f.T["taskNum"] = count
|
|
f.T["taskTagNum"] = count
|
|
f.T["taskTagNum"] = count
|
|
@@ -987,9 +1051,9 @@ func (f *Front) CheckDetail() {
|
|
coll := f.GetString("s_sourceinfo")
|
|
coll := f.GetString("s_sourceinfo")
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, `{"v_fields": 1}`)
|
|
fs, _ := (*project)["v_fields"].([]interface{})
|
|
fs, _ := (*project)["v_fields"].([]interface{})
|
|
- rep := getDetail(did, coll, qu.ObjArrToMapArr(fs)) //获取本条公告的信息
|
|
|
|
- f.T["otherInfo"] = rep["otherInfo"] //展示关联公告信息
|
|
|
|
- f.T["moreInfo"] = rep["moreInfo"] //更多关联公告信息
|
|
|
|
|
|
+ rep := getDetail(did, coll, "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["s_excp_info"] = rep["s_excp_info"]
|
|
f.T["pid"] = pid
|
|
f.T["pid"] = pid
|
|
f.T["tid"] = tid
|
|
f.T["tid"] = tid
|
|
@@ -1007,7 +1071,6 @@ func (f *Front) CheckDetail() {
|
|
f.T["PurchasinglistField"] = m["field"]
|
|
f.T["PurchasinglistField"] = m["field"]
|
|
}
|
|
}
|
|
if rep["proc"] != nil {
|
|
if rep["proc"] != nil {
|
|
- qu.Debug(rep["proc"])
|
|
|
|
m := rep["proc"].(map[string]interface{})
|
|
m := rep["proc"].(map[string]interface{})
|
|
f.T["procurementlist"] = m["procurementlist"]
|
|
f.T["procurementlist"] = m["procurementlist"]
|
|
f.T["pcl_new_1"] = m["pcl_new_1"]
|
|
f.T["pcl_new_1"] = m["pcl_new_1"]
|
|
@@ -1030,13 +1093,9 @@ func (f *Front) CheckDetail() {
|
|
f.T["ck_purchasinglist"] = rep["ck_purchasinglist"]
|
|
f.T["ck_purchasinglist"] = rep["ck_purchasinglist"]
|
|
f.T["ck_package"] = rep["ck_package"]
|
|
f.T["ck_package"] = rep["ck_package"]
|
|
f.T["ck_winnerorder"] = rep["ck_winnerorder"]
|
|
f.T["ck_winnerorder"] = rep["ck_winnerorder"]
|
|
- f.T["worder"] = rep["worder"]
|
|
|
|
- f.T["packs"] = rep["packs"]
|
|
|
|
- f.T["packskey"] = rep["packskey"]
|
|
|
|
- f.T["timeplace"] = rep["timeplace"]
|
|
|
|
- f.T["purchasinglist"] = rep["purchasinglist"]
|
|
|
|
f.T["topsubtype"] = util.TopSubStypeArr2
|
|
f.T["topsubtype"] = util.TopSubStypeArr2
|
|
f.T["nextid"] = GetNextDataId1(did, coll, tid, qu.ObjToString(f.GetSession("check"))) //下一条id
|
|
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.Render("project/check_detail.html", &f.T)
|
|
_ = f.Render("project/check_detail.html", &f.T)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1052,7 +1111,6 @@ func (f *Front) CheckSave() {
|
|
infoId := f.GetString("s_infoid")
|
|
infoId := f.GetString("s_infoid")
|
|
sourceInfo := f.GetString("s_sourceinfo")
|
|
sourceInfo := f.GetString("s_sourceinfo")
|
|
pid := f.GetString("pid")
|
|
pid := f.GetString("pid")
|
|
- qu.Debug("Data ID:", infoId)
|
|
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_name": 1, "v_fields": 1})
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_name": 1, "v_fields": 1})
|
|
data := f.GetString("data")
|
|
data := f.GetString("data")
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
@@ -1089,10 +1147,10 @@ func (f *Front) CheckSave() {
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
for _, val := range obj {
|
|
for _, val := range obj {
|
|
- title := qu.ObjToString(obj[0]["title"])
|
|
|
|
|
|
+ title := qu.ObjToString(val["title"])
|
|
content, ok := val["content"].([]interface{})
|
|
content, ok := val["content"].([]interface{})
|
|
status := qu.IntAll(val["status"])
|
|
status := qu.IntAll(val["status"])
|
|
- if !ok {
|
|
|
|
|
|
+ if !ok && len(content) > 0 {
|
|
qu.Debug("Content Error")
|
|
qu.Debug("Content Error")
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
@@ -1121,7 +1179,7 @@ func (f *Front) CheckSave() {
|
|
status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
- qu.Debug("已标注字段field---", field)
|
|
|
|
|
|
+ //qu.Debug("已标注字段field---", field)
|
|
//delete(tagSet, field)
|
|
//delete(tagSet, field)
|
|
delete(baseSet, field)
|
|
delete(baseSet, field)
|
|
//continue
|
|
//continue
|
|
@@ -1139,16 +1197,20 @@ func (f *Front) CheckSave() {
|
|
for k, _ := range baseUnset {
|
|
for k, _ := range baseUnset {
|
|
allTagFields[k] = nil
|
|
allTagFields[k] = nil
|
|
}
|
|
}
|
|
- //qu.Debug("allTagFields===", allTagFields)
|
|
|
|
- //qu.Debug("tagSet===", tagSet)
|
|
|
|
-
|
|
|
|
// 质检时,标注标记变成质检标记
|
|
// 质检时,标注标记变成质检标记
|
|
- checkFields, _ := (*project)["v_fields"].(map[string]interface{})
|
|
|
|
|
|
+ checkFields := qu.ObjArrToMapArr((*project)["v_fields"].([]interface{}))
|
|
//datatype := qu.ObjToString((*project)["s_datatype"])
|
|
//datatype := qu.ObjToString((*project)["s_datatype"])
|
|
- qu.Debug(checkFields)
|
|
|
|
checkSet := make(map[string]interface{})
|
|
checkSet := make(map[string]interface{})
|
|
- for k := range checkFields {
|
|
|
|
- checkSet[k] = tagSet[k]
|
|
|
|
|
|
+ for _, v := range checkFields {
|
|
|
|
+ key := qu.ObjToString(v["key"])
|
|
|
|
+ if key == "extend" && v["child"] != nil {
|
|
|
|
+ for _, v1 := range qu.ObjArrToMapArr(v["child"].([]interface{})) {
|
|
|
|
+ key1 := qu.ObjToString(v1["key"])
|
|
|
|
+ checkSet[key1] = tagSet[key1]
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ checkSet[key] = tagSet[key]
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if len(tagSet) > 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
if len(tagSet) > 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
@@ -1168,12 +1230,12 @@ func (f *Front) CheckSave() {
|
|
setResult["v_checkinfo"] = checkSet
|
|
setResult["v_checkinfo"] = checkSet
|
|
for field, val := range baseSet { //更新基本字段
|
|
for field, val := range baseSet { //更新基本字段
|
|
setResult["v_baseinfo."+field] = val
|
|
setResult["v_baseinfo."+field] = val
|
|
- baseInfo[field] = val
|
|
|
|
|
|
+ //baseInfo[field] = val
|
|
}
|
|
}
|
|
baseUnsetResult := map[string]interface{}{} //删除字段集
|
|
baseUnsetResult := map[string]interface{}{} //删除字段集
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
- delete(baseInfo, field)
|
|
|
|
|
|
+ //delete(baseInfo, field)
|
|
}
|
|
}
|
|
ex, exp := DataException(baseInfo)
|
|
ex, exp := DataException(baseInfo)
|
|
if ex != "" {
|
|
if ex != "" {
|
|
@@ -1192,20 +1254,16 @@ func (f *Front) CheckSave() {
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
//2、更新marked表
|
|
//2、更新marked表
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
- qu.Debug("infoId:", infoId)
|
|
|
|
delete(*tmp, "_id")
|
|
delete(*tmp, "_id")
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
- b := util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
|
|
- qu.Debug("Update Marked:", b)
|
|
|
|
|
|
+ _ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
}
|
|
}
|
|
//3、保存标注日志
|
|
//3、保存标注日志
|
|
- b := SaveLog(infoId, "", username, userId, userRole, qu.ObjToString((*project)["s_name"]), "质检", baseInfo, allTagFields)
|
|
|
|
- qu.Debug("Save Log:", b)
|
|
|
|
|
|
+ _ = SaveLog(infoId, "", username, userId, userRole, qu.ObjToString((*project)["s_name"]), "质检", baseInfo, allTagFields)
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
}
|
|
}
|
|
|
|
|
|
func (f *Front) CheckResult() {
|
|
func (f *Front) CheckResult() {
|
|
- qu.Catch()
|
|
|
|
pid := f.GetString("pid")
|
|
pid := f.GetString("pid")
|
|
tid := f.GetString("tid")
|
|
tid := f.GetString("tid")
|
|
sourceinfo := f.GetString("s_sourceinfo")
|
|
sourceinfo := f.GetString("s_sourceinfo")
|
|
@@ -1218,10 +1276,23 @@ func (f *Front) CheckResult() {
|
|
|
|
|
|
markNum, checkNum, checkNumR := 0, 0, 0 // 标注数量, 审核数据量, 审核数据完全正确的数据量
|
|
markNum, checkNum, checkNumR := 0, 0, 0 // 标注数量, 审核数据量, 审核数据完全正确的数据量
|
|
cmaps := make(map[string]int) // 标注字段整体准确率
|
|
cmaps := make(map[string]int) // 标注字段整体准确率
|
|
- umaps := make(map[string]interface{}) // 按人员 字段准确率
|
|
|
|
- for k := range (*projcet)["v_fields"].(map[string]interface{}) {
|
|
|
|
- cmaps[k] = 0
|
|
|
|
|
|
+ cmaps_m := make(map[string]string)
|
|
|
|
+ umaps := make(map[string]interface{}) // 按人员 字段准确率
|
|
|
|
+ for _, v := range qu.ObjArrToMapArr((*projcet)["v_fields"].([]interface{})) {
|
|
|
|
+ key := qu.ObjToString(v["key"])
|
|
|
|
+ if key == "extend" && v["child"] != nil {
|
|
|
|
+ for _, v1 := range qu.ObjArrToMapArr(v["child"].([]interface{})) {
|
|
|
|
+ key1 := qu.ObjToString(v1["key"])
|
|
|
|
+ cmaps[key1] = 0
|
|
|
|
+ cmaps_m[key1] = qu.ObjToString(v1["descript"])
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ cmaps[key] = 0
|
|
|
|
+ cmaps_m[key] = qu.ObjToString(v["descript"])
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+ qu.Debug(cmaps)
|
|
sess := util.Mgo.GetMgoConn()
|
|
sess := util.Mgo.GetMgoConn()
|
|
defer util.Mgo.DestoryMongoConn(sess)
|
|
defer util.Mgo.DestoryMongoConn(sess)
|
|
query := make(map[string]interface{})
|
|
query := make(map[string]interface{})
|
|
@@ -1254,7 +1325,6 @@ func (f *Front) CheckResult() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
query["b_check"] = true
|
|
query["b_check"] = true
|
|
- qu.Debug(query)
|
|
|
|
checkNum = util.Mgo.Count(sourceinfo, query)
|
|
checkNum = util.Mgo.Count(sourceinfo, query)
|
|
result := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(query).Iter()
|
|
result := sess.DB(util.Mgo.DbName).C(sourceinfo).Find(query).Iter()
|
|
if checkNum == 0 {
|
|
if checkNum == 0 {
|
|
@@ -1262,14 +1332,13 @@ func (f *Front) CheckResult() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
// 排序
|
|
// 排序
|
|
- fields := (*projcet)["v_fields"].(map[string]interface{})
|
|
|
|
purchasingTag := false // 标的物统计标识
|
|
purchasingTag := false // 标的物统计标识
|
|
var strs []string
|
|
var strs []string
|
|
- if fields["purchasinglist"] != nil {
|
|
|
|
|
|
+ if cmaps["purchasinglist"] != 0 {
|
|
purchasingTag = true
|
|
purchasingTag = true
|
|
- delete(fields, "purchasinglist")
|
|
|
|
|
|
+ delete(cmaps, "purchasinglist")
|
|
}
|
|
}
|
|
- for k := range fields {
|
|
|
|
|
|
+ for k := range cmaps {
|
|
strs = append(strs, k)
|
|
strs = append(strs, k)
|
|
}
|
|
}
|
|
pNum, pEffNum := 0, 0 // 标的物数量, 标的物有效数量
|
|
pNum, pEffNum := 0, 0 // 标的物数量, 标的物有效数量
|
|
@@ -1345,8 +1414,6 @@ func (f *Front) CheckResult() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug(cmaps)
|
|
|
|
- qu.Debug(umaps)
|
|
|
|
pResult := method(fieldNumMap, tagNumMap, rightNumMap)
|
|
pResult := method(fieldNumMap, tagNumMap, rightNumMap)
|
|
// 前台页面数据
|
|
// 前台页面数据
|
|
dataSource := make(map[string]interface{})
|
|
dataSource := make(map[string]interface{})
|
|
@@ -1364,7 +1431,7 @@ func (f *Front) CheckResult() {
|
|
sort.Strings(strs)
|
|
sort.Strings(strs)
|
|
for _, v := range strs {
|
|
for _, v := range strs {
|
|
tmp1 := make(map[string]interface{})
|
|
tmp1 := make(map[string]interface{})
|
|
- tmp1["name"] = fields[v]
|
|
|
|
|
|
+ tmp1["name"] = cmaps_m[v]
|
|
tmp1["num1"] = markNum
|
|
tmp1["num1"] = markNum
|
|
tmp1["num2"] = checkNum
|
|
tmp1["num2"] = checkNum
|
|
tmp1["num3"] = cmaps[v]
|
|
tmp1["num3"] = cmaps[v]
|
|
@@ -1383,7 +1450,7 @@ func (f *Front) CheckResult() {
|
|
tmp2["num3"] = v2["re_rg_count"]
|
|
tmp2["num3"] = v2["re_rg_count"]
|
|
tmp2["num4"] = CountPr(v2["re_rg_count"], v2["re_count"])
|
|
tmp2["num4"] = CountPr(v2["re_rg_count"], v2["re_count"])
|
|
dataSelect1 = append(dataSelect1, tmp2)
|
|
dataSelect1 = append(dataSelect1, tmp2)
|
|
- for k, v := range fields {
|
|
|
|
|
|
+ for k, v := range cmaps_m {
|
|
tmp1 := make(map[string]interface{})
|
|
tmp1 := make(map[string]interface{})
|
|
tmp1["name"] = v
|
|
tmp1["name"] = v
|
|
tmp1["num1"] = v2["ck_count"]
|
|
tmp1["num1"] = v2["ck_count"]
|
|
@@ -1395,8 +1462,6 @@ func (f *Front) CheckResult() {
|
|
dataSource[k1] = dataSelect1
|
|
dataSource[k1] = dataSelect1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("字段统计---", dataSource)
|
|
|
|
- qu.Debug("字段统计---", pResult)
|
|
|
|
f.T["pid"] = pid
|
|
f.T["pid"] = pid
|
|
f.T["tid"] = tid
|
|
f.T["tid"] = tid
|
|
f.T["sourceinfo"] = sourceinfo
|
|
f.T["sourceinfo"] = sourceinfo
|
|
@@ -1658,7 +1723,6 @@ func (f *Front) JyMarkList() {
|
|
query["i_ckdata"] = 0
|
|
query["i_ckdata"] = 0
|
|
}
|
|
}
|
|
count := util.Mgo.Count(sourceInfo, query)
|
|
count := util.Mgo.Count(sourceInfo, query)
|
|
- qu.Debug("query:", query, sourceInfo, count)
|
|
|
|
fields := map[string]interface{}{"v_baseinfo.title": 1, "b_istag": 1, "i_ckdata": 1}
|
|
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)
|
|
list, _ := util.Mgo.Find(sourceInfo, query, map[string]interface{}{"_id": 1}, fields, false, start, limit)
|
|
//checkedNum, allNum := GetCheckedAndAllDataInfo(query, coll) //已标和总数信息
|
|
//checkedNum, allNum := GetCheckedAndAllDataInfo(query, coll) //已标和总数信息
|
|
@@ -1678,7 +1742,6 @@ func (f *Front) JyMarkList() {
|
|
// JyUserDataMark 剑鱼管理人员数据标注
|
|
// JyUserDataMark 剑鱼管理人员数据标注
|
|
func (f *Front) JyUserDataMark() {
|
|
func (f *Front) JyUserDataMark() {
|
|
defer qu.Catch()
|
|
defer qu.Catch()
|
|
- qu.Debug("jy save...")
|
|
|
|
success := false
|
|
success := false
|
|
msg := ""
|
|
msg := ""
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
@@ -1689,11 +1752,10 @@ func (f *Front) JyUserDataMark() {
|
|
obj := []map[string]interface{}{}
|
|
obj := []map[string]interface{}{}
|
|
infoId := f.GetString("s_infoid")
|
|
infoId := f.GetString("s_infoid")
|
|
sourceInfo := f.GetString("s_sourceinfo")
|
|
sourceInfo := f.GetString("s_sourceinfo")
|
|
- remark := f.GetString("remark")
|
|
|
|
isEff, _ := f.GetBool("isEff")
|
|
isEff, _ := f.GetBool("isEff")
|
|
pid := f.GetString("pid")
|
|
pid := f.GetString("pid")
|
|
- qu.Debug("Data ID:", infoId)
|
|
|
|
data := f.GetString("data")
|
|
data := f.GetString("data")
|
|
|
|
+
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
if err != nil {
|
|
if err != nil {
|
|
qu.Debug("Json Unmarshal Error")
|
|
qu.Debug("Json Unmarshal Error")
|
|
@@ -1752,25 +1814,26 @@ 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(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
|
|
- tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
|
|
|
|
|
|
+ //tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
|
|
baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
|
|
baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
|
|
- if tagInfo != nil && len(tagInfo) > 0 {
|
|
|
|
- for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
|
|
|
|
- status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
|
|
- markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
|
|
- if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
|
|
- qu.Debug("已标注字段field---", field)
|
|
|
|
- delete(tagSet, field)
|
|
|
|
- delete(baseSet, field)
|
|
|
|
- //continue
|
|
|
|
- }
|
|
|
|
- //else {
|
|
|
|
- // qu.Debug("未标注字段field---", field, status)
|
|
|
|
- //}
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //if tagInfo != nil && len(tagInfo) > 0 {
|
|
|
|
+ // for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
|
|
|
|
+ // status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
|
|
+ // markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
|
|
+ // if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
|
|
+ // delete(tagSet, field)
|
|
|
|
+ // delete(baseSet, field)
|
|
|
|
+ // //continue
|
|
|
|
+ // }
|
|
|
|
+ // //else {
|
|
|
|
+ // // qu.Debug("未标注字段field---", field, status)
|
|
|
|
+ // //}
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
//
|
|
//
|
|
|
|
+ qu.Debug("baseSet===", baseSet)
|
|
allTagFields := map[string]interface{}{} //记录此此标注所有标注信息,用于日志记录
|
|
allTagFields := map[string]interface{}{} //记录此此标注所有标注信息,用于日志记录
|
|
for k, _ := range tagSet {
|
|
for k, _ := range tagSet {
|
|
allTagFields[k] = true
|
|
allTagFields[k] = true
|
|
@@ -1781,9 +1844,6 @@ func (f *Front) JyUserDataMark() {
|
|
for k, _ := range baseUnset {
|
|
for k, _ := range baseUnset {
|
|
allTagFields[k] = nil
|
|
allTagFields[k] = nil
|
|
}
|
|
}
|
|
- qu.Debug("allTagFields===", allTagFields)
|
|
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
-
|
|
|
|
if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
//1、更新数据源信息
|
|
//1、更新数据源信息
|
|
setResult := map[string]interface{}{ //更新字段集
|
|
setResult := map[string]interface{}{ //更新字段集
|
|
@@ -1806,9 +1866,6 @@ func (f *Front) JyUserDataMark() {
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
}
|
|
}
|
|
- if remark != "" {
|
|
|
|
- setResult["v_taginfo.reamrk"] = remark
|
|
|
|
- }
|
|
|
|
setResult["isEff"] = isEff
|
|
setResult["isEff"] = isEff
|
|
set := map[string]interface{}{
|
|
set := map[string]interface{}{
|
|
"$set": setResult,
|
|
"$set": setResult,
|
|
@@ -1816,15 +1873,12 @@ func (f *Front) JyUserDataMark() {
|
|
if len(baseUnsetResult) > 0 {
|
|
if len(baseUnsetResult) > 0 {
|
|
set["$unset"] = baseUnsetResult
|
|
set["$unset"] = baseUnsetResult
|
|
}
|
|
}
|
|
- qu.Debug("set---", set)
|
|
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
//2、更新marked表
|
|
//2、更新marked表
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
- qu.Debug("infoId:", infoId)
|
|
|
|
delete((*tmp), "_id")
|
|
delete((*tmp), "_id")
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
- b := util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
|
|
- qu.Debug("Update Marked:", b)
|
|
|
|
|
|
+ _ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
}
|
|
}
|
|
/*
|
|
/*
|
|
} else {
|
|
} else {
|
|
@@ -1833,8 +1887,7 @@ func (f *Front) JyUserDataMark() {
|
|
*/
|
|
*/
|
|
//3、保存标注日志
|
|
//3、保存标注日志
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_name": 1})
|
|
project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"s_name": 1})
|
|
- b := SaveLog(infoId, "", username, userId, userRole, qu.ObjToString((*project)["s_name"]), "标注", baseInfo, allTagFields)
|
|
|
|
- qu.Debug("Save Log:", b)
|
|
|
|
|
|
+ _ = SaveLog(infoId, "", username, userId, userRole, qu.ObjToString((*project)["s_name"]), "标注", baseInfo, allTagFields)
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1847,12 +1900,10 @@ func (f *Front) UserDataMark() {
|
|
username := qu.ObjToString(user["s_login"]) //当前登录用户
|
|
username := qu.ObjToString(user["s_login"]) //当前登录用户
|
|
userId := qu.ObjToString(user["id"]) //当前登录用户标识
|
|
userId := qu.ObjToString(user["id"]) //当前登录用户标识
|
|
userRole := qu.ObjToString(user["i_role"]) //当前登录用户权限
|
|
userRole := qu.ObjToString(user["i_role"]) //当前登录用户权限
|
|
- remark := f.GetString("remark")
|
|
|
|
isEff, _ := f.GetBool("isEff")
|
|
isEff, _ := f.GetBool("isEff")
|
|
obj := []map[string]interface{}{}
|
|
obj := []map[string]interface{}{}
|
|
infoId := f.GetString("s_infoid")
|
|
infoId := f.GetString("s_infoid")
|
|
userTaskId := f.GetString("s_usertaskid")
|
|
userTaskId := f.GetString("s_usertaskid")
|
|
- qu.Debug("Task ID:", userTaskId, " Data ID:", infoId)
|
|
|
|
data := f.GetString("data")
|
|
data := f.GetString("data")
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
err := json.Unmarshal([]byte(data), &obj)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -1889,7 +1940,6 @@ func (f *Front) UserDataMark() {
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
for _, val := range obj {
|
|
for _, val := range obj {
|
|
- qu.Debug("---", val)
|
|
|
|
title := qu.ObjToString(val["title"])
|
|
title := qu.ObjToString(val["title"])
|
|
content, ok := val["content"].([]interface{})
|
|
content, ok := val["content"].([]interface{})
|
|
status := qu.IntAll(val["status"])
|
|
status := qu.IntAll(val["status"])
|
|
@@ -1922,24 +1972,23 @@ func (f *Front) UserDataMark() {
|
|
}
|
|
}
|
|
sourceInfo := qu.ObjToString((*userTask)["s_sourceinfo"]) //数据源表
|
|
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(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
|
|
- tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
|
|
|
|
|
|
+ //tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
|
|
baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
|
|
baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
|
|
- if tagInfo != nil && len(tagInfo) > 0 {
|
|
|
|
- for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
|
|
|
|
- status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
|
|
- markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
|
|
- if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
|
|
- qu.Debug("已标注字段field---", field)
|
|
|
|
- delete(tagSet, field)
|
|
|
|
- delete(baseSet, field)
|
|
|
|
- //continue
|
|
|
|
- }
|
|
|
|
- //else {
|
|
|
|
- // qu.Debug("未标注字段field---", field, status)
|
|
|
|
- //}
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //
|
|
|
|
|
|
+ //if tagInfo != nil && len(tagInfo) > 0 {
|
|
|
|
+ // for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
|
|
|
|
+ // status := qu.IntAll(tmpStatus) //此次被标注字段的状态
|
|
|
|
+ // markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
|
|
|
|
+ // if status == 1 && markedStatus != 0 { //此次标注结果为正确,且有历史标注记录,不做修改
|
|
|
|
+ // qu.Debug("已标注字段field---", field)
|
|
|
|
+ // delete(tagSet, field)
|
|
|
|
+ // delete(baseSet, field)
|
|
|
|
+ // //continue
|
|
|
|
+ // }
|
|
|
|
+ // //else {
|
|
|
|
+ // // qu.Debug("未标注字段field---", field, status)
|
|
|
|
+ // //}
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
allTagFields := map[string]interface{}{} //记录此此标注所有标注信息,用于日志记录
|
|
allTagFields := map[string]interface{}{} //记录此此标注所有标注信息,用于日志记录
|
|
for k, _ := range tagSet {
|
|
for k, _ := range tagSet {
|
|
allTagFields[k] = true
|
|
allTagFields[k] = true
|
|
@@ -1950,8 +1999,6 @@ func (f *Front) UserDataMark() {
|
|
for k, _ := range baseUnset {
|
|
for k, _ := range baseUnset {
|
|
allTagFields[k] = nil
|
|
allTagFields[k] = nil
|
|
}
|
|
}
|
|
- qu.Debug("allTagFields===", allTagFields)
|
|
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
|
|
//1、更新数据源信息
|
|
//1、更新数据源信息
|
|
setResult := map[string]interface{}{ //更新字段集
|
|
setResult := map[string]interface{}{ //更新字段集
|
|
@@ -1964,22 +2011,18 @@ func (f *Front) UserDataMark() {
|
|
}
|
|
}
|
|
for field, val := range baseSet { //更新基本字段
|
|
for field, val := range baseSet { //更新基本字段
|
|
setResult["v_baseinfo."+field] = val
|
|
setResult["v_baseinfo."+field] = val
|
|
- baseInfo[field] = val
|
|
|
|
|
|
+ //baseInfo[field] = val
|
|
}
|
|
}
|
|
baseUnsetResult := map[string]interface{}{} //删除字段集
|
|
baseUnsetResult := map[string]interface{}{} //删除字段集
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
for field, _ := range baseUnset { //删除基本字段
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
baseUnsetResult["v_baseinfo."+field] = ""
|
|
- delete(baseInfo, field)
|
|
|
|
|
|
+ //delete(baseInfo, field)
|
|
}
|
|
}
|
|
ex, exp := DataException(baseInfo)
|
|
ex, exp := DataException(baseInfo)
|
|
if ex != "" {
|
|
if ex != "" {
|
|
setResult["s_excp"] = ex
|
|
setResult["s_excp"] = ex
|
|
setResult["s_excp_info"] = exp
|
|
setResult["s_excp_info"] = exp
|
|
}
|
|
}
|
|
- // todo
|
|
|
|
- if remark != "" {
|
|
|
|
- setResult["v_taginfo.reamrk"] = remark
|
|
|
|
- }
|
|
|
|
setResult["isEff"] = isEff
|
|
setResult["isEff"] = isEff
|
|
set := map[string]interface{}{
|
|
set := map[string]interface{}{
|
|
"$set": setResult,
|
|
"$set": setResult,
|
|
@@ -1987,15 +2030,12 @@ func (f *Front) UserDataMark() {
|
|
if len(baseUnsetResult) > 0 {
|
|
if len(baseUnsetResult) > 0 {
|
|
set["$unset"] = baseUnsetResult
|
|
set["$unset"] = baseUnsetResult
|
|
}
|
|
}
|
|
- qu.Debug("set---", set)
|
|
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
success = util.Mgo.UpdateById(sourceInfo, infoId, set)
|
|
//2、更新marked表
|
|
//2、更新marked表
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
|
|
- qu.Debug("infoId:", infoId)
|
|
|
|
delete((*tmp), "_id")
|
|
delete((*tmp), "_id")
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
(*tmp)["updatetime"] = time.Now().Unix()
|
|
- b := util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
|
|
- qu.Debug("Update Marked:", b)
|
|
|
|
|
|
+ _ = util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mgo.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
|
|
}
|
|
}
|
|
/*
|
|
/*
|
|
} else {
|
|
} else {
|
|
@@ -2003,7 +2043,7 @@ func (f *Front) UserDataMark() {
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
//3、修改任务状态
|
|
//3、修改任务状态
|
|
- b := util.Mgo.Update(util.TASKCOLLNAME, map[string]interface{}{"_id": (*userTask)["_id"], "s_status": "未开始"}, map[string]interface{}{
|
|
|
|
|
|
+ _ = util.Mgo.Update(util.TASKCOLLNAME, map[string]interface{}{"_id": (*userTask)["_id"], "s_status": "未开始"}, map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"i_starttime": time.Now().Unix(),
|
|
"i_starttime": time.Now().Unix(),
|
|
"i_updatetime": time.Now().Unix(),
|
|
"i_updatetime": time.Now().Unix(),
|
|
@@ -2011,10 +2051,8 @@ func (f *Front) UserDataMark() {
|
|
"s_status": "进行中",
|
|
"s_status": "进行中",
|
|
},
|
|
},
|
|
}, false, false)
|
|
}, false, false)
|
|
- qu.Debug("Update UserTask:", b)
|
|
|
|
//4、保存标注日志
|
|
//4、保存标注日志
|
|
- b = SaveLog(infoId, userTaskId, username, userId, userRole, qu.ObjToString((*userTask)["s_projectname"]), "标注", baseInfo, allTagFields)
|
|
|
|
- qu.Debug("Save Log:", b)
|
|
|
|
|
|
+ _ = SaveLog(infoId, userTaskId, username, userId, userRole, qu.ObjToString((*userTask)["s_projectname"]), "标注", baseInfo, allTagFields)
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2063,9 +2101,6 @@ func MarkBase(content []interface{}, tagSet, baseSet, baseUnset map[string]inter
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// MarkTimePlace 标注时间地点
|
|
// MarkTimePlace 标注时间地点
|
|
@@ -2098,9 +2133,6 @@ func MarkTimePlace(content []interface{}, tagSet, baseSet, baseUnset map[string]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
func MarkPurchasinglist(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
|
|
func MarkPurchasinglist(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
|
|
@@ -2149,7 +2181,6 @@ func MarkPurchasinglist(content []interface{}, tagSet, baseSet, baseUnset map[st
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("purchasinglist", len(purchasinglist))
|
|
|
|
if len(purchasinglist)+delpclson == len(content) {
|
|
if len(purchasinglist)+delpclson == len(content) {
|
|
if len(purchasinglist) > 0 {
|
|
if len(purchasinglist) > 0 {
|
|
baseSet["purchasinglist"] = purchasinglist
|
|
baseSet["purchasinglist"] = purchasinglist
|
|
@@ -2161,9 +2192,6 @@ func MarkPurchasinglist(content []interface{}, tagSet, baseSet, baseUnset map[st
|
|
} else {
|
|
} else {
|
|
qu.Debug("Purchasinglist Tag Error")
|
|
qu.Debug("Purchasinglist Tag Error")
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
func MarkProcurementList(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
|
|
func MarkProcurementList(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
|
|
@@ -2212,7 +2240,6 @@ func MarkProcurementList(content []interface{}, tagSet, baseSet, baseUnset map[s
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("procurementlist", len(procurementlist))
|
|
|
|
if len(procurementlist)+delpclson == len(content) {
|
|
if len(procurementlist)+delpclson == len(content) {
|
|
if len(procurementlist) > 0 {
|
|
if len(procurementlist) > 0 {
|
|
baseSet["procurementlist"] = procurementlist
|
|
baseSet["procurementlist"] = procurementlist
|
|
@@ -2220,13 +2247,10 @@ func MarkProcurementList(content []interface{}, tagSet, baseSet, baseUnset map[s
|
|
baseUnset["procurementlist"] = ""
|
|
baseUnset["procurementlist"] = ""
|
|
}
|
|
}
|
|
//tagSet["purchasinglist"] = status
|
|
//tagSet["purchasinglist"] = status
|
|
- tagSet["procurementlist"] = procurementlistStatus
|
|
|
|
|
|
+ tagSet["procurementlist"] = status
|
|
} else {
|
|
} else {
|
|
qu.Debug("ProcurementList Tag Error")
|
|
qu.Debug("ProcurementList Tag Error")
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// MarkPackage 标注多包信息
|
|
// MarkPackage 标注多包信息
|
|
@@ -2235,6 +2259,7 @@ func MarkPackage(content []interface{}, tagSet, baseSet, baseUnset map[string]in
|
|
return
|
|
return
|
|
}
|
|
}
|
|
pkgs := map[string]interface{}{}
|
|
pkgs := map[string]interface{}{}
|
|
|
|
+ total := 0.0
|
|
newNum := 1
|
|
newNum := 1
|
|
delpkgson := 0 //记录子包删除个数
|
|
delpkgson := 0 //记录子包删除个数
|
|
var sw []string
|
|
var sw []string
|
|
@@ -2303,6 +2328,7 @@ func MarkPackage(content []interface{}, tagSet, baseSet, baseUnset map[string]in
|
|
sw = append(sw, qu.ObjToString(w))
|
|
sw = append(sw, qu.ObjToString(w))
|
|
}
|
|
}
|
|
if b != nil {
|
|
if b != nil {
|
|
|
|
+ total += qu.Float64All(b)
|
|
wbMap["bidamount"] = b
|
|
wbMap["bidamount"] = b
|
|
}
|
|
}
|
|
if len(wbMap) > 0 {
|
|
if len(wbMap) > 0 {
|
|
@@ -2320,12 +2346,12 @@ func MarkPackage(content []interface{}, tagSet, baseSet, baseUnset map[string]in
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("pkgs", len(pkgs))
|
|
|
|
if len(pkgs)+delpkgson == len(content) {
|
|
if len(pkgs)+delpkgson == len(content) {
|
|
if len(pkgs) > 0 {
|
|
if len(pkgs) > 0 {
|
|
baseSet["package"] = pkgs
|
|
baseSet["package"] = pkgs
|
|
baseSet["s_winner"] = strings.Join(sw, ",")
|
|
baseSet["s_winner"] = strings.Join(sw, ",")
|
|
- } else if len(content) > 0 && delpkgson == len(content) { //只有删除
|
|
|
|
|
|
+ baseSet["bidamount"] = total
|
|
|
|
+ } else if len(content) == 0 { //只有删除
|
|
baseUnset["package"] = ""
|
|
baseUnset["package"] = ""
|
|
}
|
|
}
|
|
tagSet["package"] = status
|
|
tagSet["package"] = status
|
|
@@ -2374,7 +2400,6 @@ func MarkWonderorder(content []interface{}, tagSet, baseSet, baseUnset map[strin
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("winnerorder", len(winnerorder))
|
|
|
|
if len(winnerorder)+delwodrson == len(content) {
|
|
if len(winnerorder)+delwodrson == len(content) {
|
|
if len(winnerorder) > 0 {
|
|
if len(winnerorder) > 0 {
|
|
baseSet["winnerorder"] = winnerorder
|
|
baseSet["winnerorder"] = winnerorder
|
|
@@ -2385,9 +2410,6 @@ func MarkWonderorder(content []interface{}, tagSet, baseSet, baseUnset map[strin
|
|
} else {
|
|
} else {
|
|
qu.Debug("Winnerorder Tag Error")
|
|
qu.Debug("Winnerorder Tag Error")
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// 标注其他信息
|
|
// 标注其他信息
|
|
@@ -2425,14 +2447,11 @@ func MarkOther(content []interface{}, tagSet, baseSet, baseUnset map[string]inte
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- qu.Debug("tagSet===", tagSet)
|
|
|
|
- qu.Debug("baseSet===", baseSet)
|
|
|
|
- qu.Debug("baseUnset===", baseUnset)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// SaveLog 标注日志保存
|
|
// SaveLog 标注日志保存
|
|
func SaveLog(s_infoid, s_usertaskid, username, userid, role, projectname, s_stype string, baseInfo, allTagFields map[string]interface{}) (success bool) {
|
|
func SaveLog(s_infoid, s_usertaskid, username, userid, role, projectname, s_stype string, baseInfo, allTagFields map[string]interface{}) (success bool) {
|
|
- defer qu.Debug()
|
|
|
|
|
|
+ defer qu.Catch()
|
|
v_before := map[string]interface{}{}
|
|
v_before := map[string]interface{}{}
|
|
for f, v := range allTagFields {
|
|
for f, v := range allTagFields {
|
|
if _, ok := v.(bool); ok && f != "purchasinglist_alltag" { //表示此次标注status=1的字段
|
|
if _, ok := v.(bool); ok && f != "purchasinglist_alltag" { //表示此次标注status=1的字段
|
|
@@ -2498,8 +2517,6 @@ func (f *Front) CheckDataPurchase() {
|
|
}
|
|
}
|
|
util.Mgo.UpdateById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"$set": map[string]interface{}{"purchasinglist_key": keyword}})
|
|
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}
|
|
query["v_baseinfo.purchasinglist"] = map[string]interface{}{"$exists": true}
|
|
- count := util.Mgo.Count(sourceinfo, query)
|
|
|
|
- qu.Debug(query, count)
|
|
|
|
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(sourceinfo, query, `{"_id": 1}`, `{"v_baseinfo": 1, "b_isEff": 1, "v_checkinfo": 1, "v_taginfo": 1}`, false, -1, -1)
|
|
var updateArr [][]map[string]interface{}
|
|
var updateArr [][]map[string]interface{}
|
|
for _, m := range *info {
|
|
for _, m := range *info {
|