|
@ -3,11 +3,14 @@ package implments |
|
|
import ( |
|
|
import ( |
|
|
"LAPP_GAAS_GFrame_BACKEND/dao/pdc" |
|
|
"LAPP_GAAS_GFrame_BACKEND/dao/pdc" |
|
|
"LAPP_GAAS_GFrame_BACKEND/db" |
|
|
"LAPP_GAAS_GFrame_BACKEND/db" |
|
|
|
|
|
"LAPP_GAAS_GFrame_BACKEND/global" |
|
|
"LAPP_GAAS_GFrame_BACKEND/grmi" |
|
|
"LAPP_GAAS_GFrame_BACKEND/grmi" |
|
|
"LAPP_GAAS_GFrame_BACKEND/infra/logger" |
|
|
"LAPP_GAAS_GFrame_BACKEND/infra/logger" |
|
|
model "LAPP_GAAS_GFrame_BACKEND/models/api" |
|
|
model "LAPP_GAAS_GFrame_BACKEND/models/api" |
|
|
|
|
|
baseModel "LAPP_GAAS_GFrame_BACKEND/models/base" |
|
|
"LAPP_GAAS_GFrame_BACKEND/web/models" |
|
|
"LAPP_GAAS_GFrame_BACKEND/web/models" |
|
|
"encoding/json" |
|
|
"encoding/json" |
|
|
|
|
|
"errors" |
|
|
"strconv" |
|
|
"strconv" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
@ -57,44 +60,54 @@ func (impl *ScrewServiceImplement) Receive(screw *model.Screw) (err error) { |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
log.Info("SCREW Receive:" + string(recData)) |
|
|
log.Info("SCREW Receive:" + string(recData)) |
|
|
// 全局变量初始化
|
|
|
|
|
|
model.ScrewGlobalArtId.Lock.Lock() |
|
|
|
|
|
model.ScrewGlobalMap.Lock.Lock() |
|
|
|
|
|
model.ScrewGlobalNewest.Lock.Lock() |
|
|
|
|
|
defer func() { |
|
|
|
|
|
model.ScrewGlobalArtId.Lock.Unlock() |
|
|
|
|
|
model.ScrewGlobalMap.Lock.Unlock() |
|
|
|
|
|
model.ScrewGlobalNewest.Lock.Unlock() |
|
|
|
|
|
}() |
|
|
|
|
|
if model.ScrewGlobalArtId.Map == nil { |
|
|
|
|
|
model.ScrewGlobalArtId.Map = make(map[string]string) |
|
|
|
|
|
} |
|
|
|
|
|
if model.ScrewGlobalNewest.Map == nil { |
|
|
|
|
|
model.ScrewGlobalNewest.Map = make(map[string]model.ScrewWithData) |
|
|
|
|
|
|
|
|
conn := global.WebsocketContext.Get(screw.STN) |
|
|
|
|
|
if conn == nil { |
|
|
|
|
|
log.Error("该工位和程序未建立连接") |
|
|
|
|
|
return errors.New("该工位和程序未建立连接") |
|
|
} |
|
|
} |
|
|
if model.ScrewGlobalMap.Map == nil { |
|
|
|
|
|
model.ScrewGlobalMap.Map = make(map[string]map[int]model.ScrewWithData) |
|
|
|
|
|
} |
|
|
|
|
|
// 给当前工作的最新screw data赋值
|
|
|
|
|
|
var screwWithData model.ScrewWithData |
|
|
|
|
|
screwWithData.Screw = *screw |
|
|
|
|
|
model.ScrewGlobalNewest.Map[screw.STN] = screwWithData |
|
|
|
|
|
// 校验当前工位的零件号
|
|
|
|
|
|
preScrewPartNo, exist := model.ScrewGlobalArtId.Map[screw.STN] |
|
|
|
|
|
if !exist { |
|
|
|
|
|
model.ScrewGlobalArtId.Map[screw.STN] = screw.PARTNO |
|
|
|
|
|
preScrewPartNo = screw.PARTNO |
|
|
|
|
|
|
|
|
res := conn.Emit(baseModel.EVENT_STN_DATA, recData) |
|
|
|
|
|
if !res { |
|
|
|
|
|
log.Error("像前端发送工位数据失败") |
|
|
} |
|
|
} |
|
|
// 初始化当前工位的全局map
|
|
|
|
|
|
_, exist = model.ScrewGlobalMap.Map[screw.STN] |
|
|
|
|
|
if !exist { |
|
|
|
|
|
model.ScrewGlobalMap.Map[screw.STN] = make(map[int]model.ScrewWithData) |
|
|
|
|
|
} |
|
|
|
|
|
if preScrewPartNo != screw.PARTNO { |
|
|
|
|
|
model.ScrewGlobalMap.Map[screw.STN] = make(map[int]model.ScrewWithData) |
|
|
|
|
|
} |
|
|
|
|
|
model.ScrewGlobalMap.Map[screw.STN][screw.SCREW_POS] = screwWithData |
|
|
|
|
|
model.ScrewGlobalArtId.Map[screw.STN] = screw.PARTNO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 全局变量初始化
|
|
|
|
|
|
//model.ScrewGlobalArtId.Lock.Lock()
|
|
|
|
|
|
//model.ScrewGlobalMap.Lock.Lock()
|
|
|
|
|
|
//model.ScrewGlobalNewest.Lock.Lock()
|
|
|
|
|
|
//defer func() {
|
|
|
|
|
|
// model.ScrewGlobalArtId.Lock.Unlock()
|
|
|
|
|
|
// model.ScrewGlobalMap.Lock.Unlock()
|
|
|
|
|
|
// model.ScrewGlobalNewest.Lock.Unlock()
|
|
|
|
|
|
//}()
|
|
|
|
|
|
//if model.ScrewGlobalArtId.Map == nil {
|
|
|
|
|
|
// model.ScrewGlobalArtId.Map = make(map[string]string)
|
|
|
|
|
|
//}
|
|
|
|
|
|
//if model.ScrewGlobalNewest.Map == nil {
|
|
|
|
|
|
// model.ScrewGlobalNewest.Map = make(map[string]model.ScrewWithData)
|
|
|
|
|
|
//}
|
|
|
|
|
|
//if model.ScrewGlobalMap.Map == nil {
|
|
|
|
|
|
// model.ScrewGlobalMap.Map = make(map[string]map[int]model.ScrewWithData)
|
|
|
|
|
|
//}
|
|
|
|
|
|
//// 给当前工作的最新screw data赋值
|
|
|
|
|
|
//var screwWithData model.ScrewWithData
|
|
|
|
|
|
//screwWithData.Screw = *screw
|
|
|
|
|
|
//model.ScrewGlobalNewest.Map[screw.STN] = screwWithData
|
|
|
|
|
|
//// 校验当前工位的零件号
|
|
|
|
|
|
//preScrewPartNo, exist := model.ScrewGlobalArtId.Map[screw.STN]
|
|
|
|
|
|
//if !exist {
|
|
|
|
|
|
// model.ScrewGlobalArtId.Map[screw.STN] = screw.PARTNO
|
|
|
|
|
|
// preScrewPartNo = screw.PARTNO
|
|
|
|
|
|
//}
|
|
|
|
|
|
//// 初始化当前工位的全局map
|
|
|
|
|
|
//_, exist = model.ScrewGlobalMap.Map[screw.STN]
|
|
|
|
|
|
//if !exist {
|
|
|
|
|
|
// model.ScrewGlobalMap.Map[screw.STN] = make(map[int]model.ScrewWithData)
|
|
|
|
|
|
//}
|
|
|
|
|
|
//if preScrewPartNo != screw.PARTNO {
|
|
|
|
|
|
// model.ScrewGlobalMap.Map[screw.STN] = make(map[int]model.ScrewWithData)
|
|
|
|
|
|
//}
|
|
|
|
|
|
//model.ScrewGlobalMap.Map[screw.STN][screw.SCREW_POS] = screwWithData
|
|
|
|
|
|
//model.ScrewGlobalArtId.Map[screw.STN] = screw.PARTNO
|
|
|
return nil |
|
|
return nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|