Files
Desktop_BLVStudio/BLV_Studio/FrmReleaseFirmware.vb
2025-12-11 10:06:44 +08:00

312 lines
12 KiB
VB.net
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Imports System.IO
Imports System.Security.Cryptography
Public Class HotelConfigurationLogic
Public InsertFirmware As New Dictionary(Of String, String
Public InsertFirmwareV4 As New Dictionary(Of String, String
Private _dicPojer As Dictionary(Of String, String)
Private _dicRoonType As Dictionary(Of String, String)
Public FileName As String
Public SafeFileName As String
Public FileNameV4 As String
Public SafeFileNameV4 As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SetAPP_FOR_CodevFalse
'SetLauncher_cbointem(Launcher_cbo, "tbl_luncher_list", "Luncher_Name")
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
DataGridView2.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End Sub
Public Function SetLauncher_cbointem(cbo As ComboBox, tabname As String, clunm As String, Optional col As String = "", Optional hotel As Integer = 0) As Dictionary(Of String, String)
cbo.Items.Clear()
Dim udt As DataTable
Dim dickey As String = ""
Dim dicval As String = ""
Dim dic As New Dictionary(Of String, String)
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, FrmMain.DbConnString)
db.Open()
If hotel <> 0 Then
udt = db.ExecuteDataTable(db.CmdHelper.SearchAll(tabname, $"`HOTEL_OLD_ID`='{hotel}'"))
Else
udt = db.ExecuteDataTable(db.CmdHelper.SearchAll(tabname))
End If
db.Close()
End Using
If IsNothing(udt) Then
Return Nothing
Else
For Each dtrow As DataRow In udt.Rows
For i As Integer = 0 To udt.Columns.Count - 1
If udt.Columns(i).ColumnName.Equals(clunm) Then
dickey = dtrow.Item(i).ToString
ElseIf udt.Columns(i).ColumnName.Equals(col) Then
dicval = dtrow.Item(i).ToString
Else
Continue For
End If
Next
If String.IsNullOrWhiteSpace(dicval) Then
dickey = dickey
Else
dickey = dicval & "_" & dickey
End If
If dic.ContainsKey(dickey) Then
Continue For
End If
dic.Add(dickey, dicval)
Next
cbo.Items.AddRange(dic.Keys.ToArray)
End If
Return dic
End Function
Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles Firmware_cbo.SelectionChangeCommitted
If Firmware_cbo.SelectedItem.Equals("APP_FOR_Code") Then
SetAPP_FOR_Codev(True)
SetLauncher_cbointem(ApplicableModels_cbo, "tbl_rcu_model_list", "RCU_Model_Name")
_dicPojer = SetLauncher_cbointem(FirmwarePojer_cbo, "tbl_hotel_basic_info", "HOTEL_NAME_CN", "IDOLD")
DataGridView1.Rows.Clear()
For Each hot In _dicPojer
DataGridView1.Rows.Add(hot.Key)
Next
End If
End Sub
Public Sub SetAPP_FOR_Codev(flag As Boolean)
ApplicableModels_cbo.Enabled = flag
FirmwarePojer_cbo.Enabled = flag
FirmwareHouseType_cbo.Enabled = flag
Search_txt.Enabled = flag
Search_btn.Enabled = flag
DataGridView1.Enabled = flag
DataGridView2.Enabled = flag
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Ok_btn.Click
InsertFirmware.Clear()
InsertFirmwareV4.Clear()
If Not Firmware_cbo.Text.Length > 0 Then
MsgBox("未选择上传固件类型")
InsertFirmware.Clear()
Return
End If
If Not FirmwarePath_txt.Text.Length > 0 Then
MsgBox("未选择上传固件")
Return
End If
If Not FirmwarePathV4_txt.Text.Length > 0 Then
MsgBox("未选择上传固件")
Return
End If
If Not FirmwareVer_txt.Text.Length > 0 Then
MsgBox("未输入上传固件版本")
Return
End If
' If Not FirmwareV4_txt.Text.Length > 0 Then
' MsgBox("未输入上传固件版本")
' Return
'End If
'If Not Launcher_cbo.Text.Length > 0 Then
' MsgBox("未选择上传固件Launcher")
' Return
'End If
If Firmware_cbo.SelectedItem.Equals("APP_FOR_Code") Then
If Not ApplicableModels_cbo.Text.Length > 0 Then
MsgBox("未选择固件适用机型")
Return
Else
InsertFirmware.Add("AppForModel", ApplicableModels_cbo.Text)
End If
If Not DataGridView2.SelectedRows.Item(0).Cells(0).Value.Length > 0 Then
MsgBox("未选择固件适用项目")
Return
Else
'If _dicPojer.ContainsKey(FirmwarePojer_cbo.SelectedItem.ToString) Then
' Dim clunm As String = _dicPojer.Item(FirmwarePojer_cbo.SelectedItem.ToString)
' InsertFirmware.Add("HOTEL_ID", clunm)
'End If
If _dicPojer.ContainsKey(DataGridView1.SelectedRows.Item(0).Cells(0).Value) Then
Dim clunm As String = _dicPojer.Item(DataGridView1.SelectedRows.Item(0).Cells(0).Value)
InsertFirmware.Add("HOTEL_ID", clunm)
End If
End If
If Not DataGridView2.SelectedRows.Item(0).Cells(0).Value.Length > 0 Then
MsgBox("未选择固件适用户型")
Return
Else
If _dicPojer.ContainsKey(DataGridView2.SelectedRows.Item(0).Cells(0).Value) Then
Dim clunm As String = _dicPojer.Item(DataGridView2.SelectedRows.Item(0).Cells(0).Value)
InsertFirmware.Add("ROOM_TYPE_ID", clunm)
End If
End If
End If
If Not Remark_txt.Text.Length > 0 Then
MsgBox("未填写上传固件说明:")
Return
End If
Dim filepath As String = FirmwarePath_txt.Text
Dim filepathV4 As String = FirmwarePathV4_txt.Text
Dim md5 As String = GetStringMd5(filepath)
Dim v4md5 As String = GetStringMd5(filepathV4)
Dim filename As String = filepath.Substring(filepath.LastIndexOf("\") + 1)
Dim filenameV4 As String = filepathV4.Substring(filepathV4.LastIndexOf("\") + 1)
InsertFirmware.Add("AppType", Firmware_cbo.Text)
InsertFirmware.Add("FileName", filename)
InsertFirmware.Add("MD5Val", md5)
InsertFirmware.Add("Ver", FirmwareVer_txt.Text)
'InsertFirmware.Add("Luncher_Ver", Launcher_cbo.Text)
InsertFirmware.Add("Remark", Remark_txt.Text)
InsertFirmware.Add("DateTime", Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))
InsertFirmware.Add("FilePath", "\Data\Firmware\".Replace("\", "\\"))
InsertFirmware.Add("IsValid", "1")
For Each index In InsertFirmware
InsertFirmwareV4.Add (index.Key,index .Value )
Next
InsertFirmwareV4.Item("FileName") = filenameV4
InsertFirmwareV4.Item("MD5Val") = v4md5
'InsertFirmwarev4.Item("Ver")= FirmwareV4_txt.Text
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Return
End Sub
Public Function GetStringMd5(filePath As String) As String
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
Dim databuff As Byte() = MD5.Create().ComputeHash(dataFile)
Dim MD5str As String = BitConverter.ToString(databuff)
' Console.WriteLine($"md5-1:{MD5str}")
Return MD5str.Replace("-", "")
End Function
Private Sub No_btn_Click(sender As Object, e As EventArgs) Handles No_btn.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Return
End Sub
Private Sub SelectFile_btn_Click(sender As Object, e As EventArgs) Handles SelectFile_btn.Click
Dim openFileDialog As New OpenFileDialog
openFileDialog.InitialDirectory = Application.StartupPath
openFileDialog.RestoreDirectory = True
openFileDialog.Title = "选择上传固件"
openFileDialog.Filter = $"配置文件(*.hex)|*.hex"
If openFileDialog.ShowDialog() = DialogResult.OK Then
FirmwarePath_txt.Text = openFileDialog.FileName
FileName = openFileDialog.FileName
SafeFileName = openFileDialog.SafeFileName
End If
End Sub
Private Sub FirmwarePojer_cbo_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles FirmwarePojer_cbo.SelectionChangeCommitted
If _dicPojer.ContainsKey(FirmwarePojer_cbo.SelectedItem.ToString) Then
Dim clunm As String = _dicPojer.Item(FirmwarePojer_cbo.SelectedItem.ToString)
_dicRoonType = SetLauncher_cbointem(FirmwareHouseType_cbo, "tbl_room_type_list", "ROOM_TYPE_NAME", "ROOM_TYPE_ID", clunm)
End If
End Sub
Private Sub Search_btn_Click(sender As Object, e As EventArgs) Handles Search_btn.Click
Dim txt As String = Search_txt.Text
'Dim query = From name As String In FirmwarePojer_cbo.Items
' Order By name.Contains(txt) Descending
' Select name
Dim query = From name As String In FirmwarePojer_cbo.Items
Where name.Contains(txt) = True
Select name
'FirmwarePojer_cbo.Items.Clear
' for Each s In query
' Console.WriteLine($"排序:{s}")
' Next
Dim li As New List(Of String
li.AddRange(query.ToArray)
DataGridView2.Rows.Clear()
DataGridView1.Rows.Clear()
For Each hot In query
DataGridView1.Rows.Add(hot)
Next
'FirmwarePojer_cbo.Items.Clear()
'FirmwarePojer_cbo.Items.AddRange(li.ToArray)
'dim source As ParallelQuery=query
'FirmwarePojer_cbo.Items . .AsOrdered (source)
End Sub
Public Shared Sub Demo()
Dim names As New List(Of String) From {"Zhao", "Qian", "Sun", "Li"}
Dim result = From name In names Where name.Contains("a"c) Select name
Console.WriteLine($"result:{String.Join(",", result.ToArray) }")
names.AddRange({"Zhou", "Wu", "Zhen", "Wang"})
Console.WriteLine($"result:{String.Join(",", result.ToArray) }")
End Sub
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
If _dicPojer.ContainsKey(DataGridView1.SelectedRows.Item(0).Cells(0).Value) Then
Dim clunm As String = _dicPojer.Item(DataGridView1.SelectedRows.Item(0).Cells(0).Value)
_dicRoonType = SetLauncher_cbointem(FirmwareHouseType_cbo, "tbl_room_type_list", "ROOM_TYPE_NAME", "ROOM_TYPE_ID", clunm)
DataGridView2.Rows.Clear()
For Each hot In _dicRoonType
DataGridView2.Rows.Add(hot.Key)
Next
End If
End Sub
Private Sub DataGridView2_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
End Sub
Private Sub SelectFileV4_btn_Click(sender As Object, e As EventArgs) Handles SelectFileV4_btn.Click
Dim openFileDialog As New OpenFileDialog
openFileDialog.InitialDirectory = Application.StartupPath
openFileDialog.RestoreDirectory = True
openFileDialog.Title = "选择上传固件"
openFileDialog.Filter = $"配置文件(*.hex)|*.hex"
If openFileDialog.ShowDialog() = DialogResult.OK Then
FirmwarePathV4_txt.Text = openFileDialog.FileName
FileNameV4 = openFileDialog.FileName
SafeFileNameV4 = openFileDialog.SafeFileName
End If
End Sub
End Class