From 59e6096769bc175516c1bcbbc12e4711d1ff294c Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 15 八月 2023 18:08:17 +0800
Subject: [PATCH] 调整代码结构

---
 report/task.go |    6 ++++++
 gui/gui.go     |   14 +++-----------
 main.go        |   23 ++++++++++++++++++++++-
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/gui/gui.go b/gui/gui.go
index 94048e8..50080f0 100644
--- a/gui/gui.go
+++ b/gui/gui.go
@@ -6,10 +6,7 @@
 	"kingdee-dbapi/config"
 	"kingdee-dbapi/kingdee"
 	"kingdee-dbapi/logger"
-	"kingdee-dbapi/nsqclient"
-	"kingdee-dbapi/report"
 	"kingdee-dbapi/static"
-	"kingdee-dbapi/webserver"
 
 	"fyne.io/fyne/v2"
 	"fyne.io/fyne/v2/app"
@@ -25,7 +22,7 @@
 	FullScreen bool
 }
 
-func NewDisplay() *Display {
+func NewDisplay(dbConnectedChan chan bool) *Display {
 	a := app.New()
 
 	// 璁剧疆鍥炬爣
@@ -66,6 +63,7 @@
 		//	//myWindow.Close()
 		//},
 	}
+
 	var submitBtn *widget.Button
 	submitBtn = widget.NewButtonWithIcon("鍚姩", theme.MailSendIcon(), func() {
 		config.Options.WebPort = strings.Trim(serverPort.Text, " ")
@@ -87,13 +85,7 @@
 		submitBtn.Text = "宸插惎鍔�"
 		submitBtn.Disable()
 
-		report.Start()
-
-		// 寮�鍚闃匰QL鏌ヨ
-		go nsqclient.InitNsqConsumer(config.Options.SqlQueryTopic, "sensor01", kingdee.SqlQueryHandle)
-		go nsqclient.InitNsqConsumer(config.Options.CSTQueryTopic, "sensor01", kingdee.CSTQueryHandle)
-
-		go webserver.Serve(serverPort.Text)
+		dbConnectedChan <- true
 	})
 
 	content := container.New(layout.NewGridWrapLayout(fyne.NewSize(300, 200)), form)
diff --git a/main.go b/main.go
index 8e31c56..ce907ad 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,8 @@
 package main
 
 import (
+	"kingdee-dbapi/report"
+	"kingdee-dbapi/webserver"
 	"os"
 	"strings"
 
@@ -36,10 +38,29 @@
 	defer kingdee.CloseDB()
 
 	// 鍒涘缓绐楀彛骞惰繍琛�
-	window := gui.NewDisplay()
+	var dbConnectedChan chan bool
+	window := gui.NewDisplay(dbConnectedChan)
+
+	// 鏁版嵁搴撹繛鎺ユ垚鍔熷悗鍚姩鍏朵粬鏈嶅姟
+	go onSqlServerConnected(dbConnectedChan)
+
 	window.ShowMainWindow()
 }
 
+func onSqlServerConnected(dbConnectedChan chan bool) {
+	<-dbConnectedChan
+
+	logger.Debug("鏁版嵁搴撳凡杩炴帴, 鍚姩鎺ュ彛鏈嶅姟")
+	report.Start()
+
+	// 寮�鍚闃匰QL鏌ヨ
+	go nsqclient.InitNsqConsumer(config.Options.SqlQueryTopic, "sensor01", kingdee.SqlQueryHandle)
+	go nsqclient.InitNsqConsumer(config.Options.CSTQueryTopic, "sensor01", kingdee.CSTQueryHandle)
+	go nsqclient.InitNsqConsumer(config.Options.BomQueryTopic, "sensor01", report.HandleBomQuery)
+
+	go webserver.Serve(config.Options.WebPort)
+}
+
 func setFont() {
 	fontPaths := findfont.List()
 
diff --git a/report/task.go b/report/task.go
index 282c481..50c2727 100644
--- a/report/task.go
+++ b/report/task.go
@@ -49,3 +49,9 @@
 		}
 	}
 }
+
+func HandleBomQuery(msg []byte) error {
+	SendBom(true)
+
+	return nil
+}

--
Gitblit v1.8.0