|
@@ -470,18 +470,22 @@ func (p *ProjectTask) CommonMerge(tmp map[string]interface{}, info *Info) {
|
|
|
proHref := jsonData["projecthref"].(string)
|
|
|
tmp["projecthref"] = proHref
|
|
|
p.mapHrefLock.Lock()
|
|
|
- defer p.mapHrefLock.Unlock()
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
- defer p.AllIdsMapLock.Unlock()
|
|
|
- if p.mapHref[proHref] != "" {
|
|
|
- pid := p.mapHref[proHref]
|
|
|
+ pid := p.mapHref[proHref]
|
|
|
+ p.mapHrefLock.Unlock()
|
|
|
+ if pid != "" {
|
|
|
+ p.AllIdsMapLock.Lock()
|
|
|
comparePro := p.AllIdsMap[pid].P
|
|
|
+ p.AllIdsMapLock.Unlock()
|
|
|
_, ex := CompareStatus(comparePro, info)
|
|
|
p.UpdateProject(tmp, info, comparePro, -1, "AAAAAAAAAA", ex)
|
|
|
} else {
|
|
|
id, p1 := p.NewProject(tmp, info)
|
|
|
+ p.mapHrefLock.Lock()
|
|
|
p.mapHref[proHref] = id
|
|
|
+ p.mapHrefLock.Unlock()
|
|
|
+ p.AllIdsMapLock.Lock()
|
|
|
p.AllIdsMap[id] = &ID{Id: id, P: p1}
|
|
|
+ p.AllIdsMapLock.Unlock()
|
|
|
}
|
|
|
}else {
|
|
|
//项目合并
|
|
@@ -615,15 +619,14 @@ func (p *ProjectTask) updateJudge(tmp map[string]interface{}, info *Info) {
|
|
|
infoList := []interface{}(tmpPro["list"].(primitive.A))
|
|
|
infoMap := infoList[index].(map[string]interface{})
|
|
|
modifyMap, f := modifyEle(infoMap, tmp)
|
|
|
-
|
|
|
//projecthref字段
|
|
|
jsonData := tmp["jsondata"].(map[string]interface{})
|
|
|
if jsonData != nil && jsonData["projecthref"] != nil {
|
|
|
proHref := jsonData["projecthref"].(string)
|
|
|
tmp["projecthref"] = proHref
|
|
|
p.mapHrefLock.Lock()
|
|
|
- defer p.mapHrefLock.Unlock()
|
|
|
pid := p.mapHref[proHref]
|
|
|
+ p.mapHrefLock.Unlock()
|
|
|
if pid == pInfoId {
|
|
|
p.modifyUpdate(pInfoId, index, info, tmp, tmpPro, modifyMap)
|
|
|
return
|
|
@@ -687,9 +690,9 @@ func (p *ProjectTask) fillInPlace(tmp map[string]interface{}) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ tmpSite := tmp["site"].(string)
|
|
|
p.mapSiteLock.Lock()
|
|
|
defer p.mapSiteLock.Unlock()
|
|
|
- tmpSite := tmp["site"].(string)
|
|
|
site := p.mapSite[tmpSite]
|
|
|
if site != nil {
|
|
|
if area != "" {
|