zhangqian
2023-09-14 d93d2bc56ed06b3c060ff48f49591e8c5d779230
model/index.go
@@ -4,6 +4,7 @@
   "apsClient/conf"
   "apsClient/pkg/logx"
   "apsClient/pkg/sqlitex"
   "sync"
)
func Init() error {
@@ -14,11 +15,52 @@
   if err := RegisterTables(); err != nil {
      return err
   }
   InsertDefaultData()
   return nil
}
func RegisterTables() error {
   db := sqlitex.GetDB()
   err := db.AutoMigrate(Order{}, Procedures{})
   err := db.AutoMigrate(
      Order{},
      Procedures{},
      NetConfig{},
      PlcBrand{},
      DevicePlc{},
      ProcessModel{},
      ProductionProgress{},
   )
   return err
}
type InitDefaultData interface {
   InitDefaultData(errCh chan<- error, wg *sync.WaitGroup)
}
func InsertDefaultData() {
   errCh := make(chan error, 2)
   var wg sync.WaitGroup
   models := []interface{}{
      NewNetConfigSearch(nil),
      NewPlcBrandSearch(),
   }
   for _, model := range models {
      if id, ok := model.(InitDefaultData); ok {
         wg.Add(1)
         go id.InitDefaultData(errCh, &wg)
      }
   }
   go func() {
      wg.Wait()    // 等待所有goroutine完成
      close(errCh) // 关闭错误通道
   }()
   for err := range errCh {
      if err != nil {
         logx.Errorf("InitDefaultData err: %v", err.Error())
      }
   }
}