This commit is contained in:
Albert Espín 2024-10-03 09:32:24 +02:00
parent 69624705ea
commit ac9f224748
3 changed files with 124 additions and 5 deletions

View File

@ -0,0 +1,61 @@
version: '3'
networks:
falcon-net:
volumes:
db-vol:
services:
db-adminer:
image: adminer
container_name: db-adminer
restart: always
ports:
- 9403:8080
networks:
- falcon-net
db-service:
image: 'postgres:17.0'
shm_size: 128mb
container_name: db
restart: always
environment:
POSTGRES_PASSWORD: Me8140@01
volumes:
- db-vol:/var/lib/postgresql/data
networks:
- falcon-net
nats-service:
image: nats:2.10.21-alpine
container_name: nats
restart: unless-stopped
networks:
- falcon-net
falcon-handset-service:
image: registry.espin.casa/cml04-falcon-system
container_name: handset
restart: unless-stopped
entrypoint: ["./cml04-falcon-system","handset"]
ports:
- 9402:9443
networks:
- falcon-net
falcon-barcode-service:
image: registry.espin.casa/cml04-falcon-system
container_name: barcode
restart: unless-stopped
entrypoint: ["./cml04-falcon-system","barcode"]
networks:
- falcon-net
falcon-bundle-service:
image: registry.espin.casa/cml04-falcon-system
container_name: bundle
restart: unless-stopped
entrypoint: ["./cml04-falcon-system","bundle"]
networks:
- falcon-net
falcon-sap-service:
image: registry.espin.casa/cml04-falcon-system
container_name: sap
restart: unless-stopped
entrypoint: ["./cml04-falcon-system","sap"]
networks:
- falcon-net

View File

@ -14,6 +14,9 @@ type Storager interface {
StoreBarcode(ctx context.Context, in *types.Barcode) error StoreBarcode(ctx context.Context, in *types.Barcode) error
StoreProductionOrder(ctx context.Context, in *types.ProductionOrder) error StoreProductionOrder(ctx context.Context, in *types.ProductionOrder) error
StoreCustomerOrder(ctx context.Context, in *types.CustomerOrder) error StoreCustomerOrder(ctx context.Context, in *types.CustomerOrder) error
StoreBeamCutPattern(ctx context.Context, in *types.BeamCutPattern) error
StoreLayerCutPattern(ctx context.Context, in *types.LayerCutPattern) error
StoreBeamGroup(ctx context.Context, in *types.BeamGroup) error
ConfirmBundle(ctx context.Context, barcode string) error ConfirmBundle(ctx context.Context, barcode string) error
} }
@ -30,6 +33,21 @@ type DBConfig struct {
Name string Name string
} }
// StoreBeamGroup implements Storager.
func (s *storage) StoreBeamGroup(ctx context.Context, in *types.BeamGroup) error {
return s.db.Save(in).Error
}
// StoreLayerCutPattern implements Storager.
func (s *storage) StoreLayerCutPattern(ctx context.Context, in *types.LayerCutPattern) error {
return s.db.Save(in).Error
}
// StoreBeamCutPattern implements Storager.
func (s *storage) StoreBeamCutPattern(ctx context.Context, in *types.BeamCutPattern) error {
return s.db.Save(in).Error
}
// StoreCustomerOrder implements Storager. // StoreCustomerOrder implements Storager.
func (s *storage) StoreCustomerOrder(ctx context.Context, in *types.CustomerOrder) error { func (s *storage) StoreCustomerOrder(ctx context.Context, in *types.CustomerOrder) error {
return s.db.Save(in).Error return s.db.Save(in).Error
@ -75,6 +93,7 @@ func Automigrate(db *gorm.DB) error {
&types.CustomerOrder{}, &types.CustomerOrder{},
&types.BeamCutPattern{}, &types.BeamCutPattern{},
&types.LayerCutPattern{}, &types.LayerCutPattern{},
&types.BeamGroup{},
) )
} }

View File

@ -105,6 +105,7 @@ func Run(cmd *cobra.Command, args []string) {
"event_id": event.EventID, "event_id": event.EventID,
"production_order": po.POrderNo, "production_order": po.POrderNo,
})) }))
// store data
if err := storage.StoreProductionOrder(ctx, po); err != nil { if err := storage.StoreProductionOrder(ctx, po); err != nil {
log.Error("store production order data failed", err, logFields) log.Error("store production order data failed", err, logFields)
continue continue
@ -122,13 +123,14 @@ func Run(cmd *cobra.Command, args []string) {
"customer_order": co.COrderNo, "customer_order": co.COrderNo,
"production_order": co.POrderNo, "production_order": co.POrderNo,
})) }))
// store data
if err := storage.StoreCustomerOrder(ctx, co); err != nil { if err := storage.StoreCustomerOrder(ctx, co); err != nil {
log.Error("store customer order data failed", err, logFields) log.Error("store customer order data failed", err, logFields)
continue continue
} }
case "sap.in.telegramas.z_sms_10003": case "sap.in.telegramas.z_sms_10003":
co := &types.CustomerOrder{} bcp := &types.BeamCutPattern{}
if err := json.Unmarshal(buffer.Bytes(), co); err != nil { if err := json.Unmarshal(buffer.Bytes(), bcp); err != nil {
log.Error("decode event message data failed", err, logFields) log.Error("decode event message data failed", err, logFields)
continue continue
} }
@ -136,10 +138,47 @@ func Run(cmd *cobra.Command, args []string) {
log.Info("received new production data from SAP event", logFields.Add( log.Info("received new production data from SAP event", logFields.Add(
logger.LogFields{ logger.LogFields{
"event_id": event.EventID, "event_id": event.EventID,
"customer_order": co.COrderNo, "beam_cut_pattern": bcp.BeamCutN,
"production_order": co.POrderNo, "production_order": bcp.SchedulNo,
})) }))
if err := storage.StoreCustomerOrder(ctx, co); err != nil { // store data
if err := storage.StoreBeamCutPattern(ctx, bcp); err != nil {
log.Error("store customer order data failed", err, logFields)
continue
}
case "sap.in.telegramas.z_sms_10004":
lcp := &types.LayerCutPattern{}
if err := json.Unmarshal(buffer.Bytes(), lcp); err != nil {
log.Error("decode event message data failed", err, logFields)
continue
}
// log info banner
log.Info("received new production data from SAP event", logFields.Add(
logger.LogFields{
"event_id": event.EventID,
"layer_cut_pattern": lcp.LayCutNo,
"production_order": lcp.SchedulNo,
}))
// store data
if err := storage.StoreLayerCutPattern(ctx, lcp); err != nil {
log.Error("store customer order data failed", err, logFields)
continue
}
case "sap.in.telegramas.z_sms_10005":
bg := &types.BeamGroup{}
if err := json.Unmarshal(buffer.Bytes(), bg); err != nil {
log.Error("decode event message data failed", err, logFields)
continue
}
// log info banner
log.Info("received new production data from SAP event", logFields.Add(
logger.LogFields{
"event_id": event.EventID,
"layer_cut_pattern": bg.BeamCutN,
"production_order": bg.SchedulNo,
}))
// store data
if err := storage.StoreBeamGroup(ctx, bg); err != nil {
log.Error("store customer order data failed", err, logFields) log.Error("store customer order data failed", err, logFields)
continue continue
} }