初始化

This commit is contained in:
2025-12-11 11:44:54 +08:00
commit ccd2c36afa
719 changed files with 676439 additions and 0 deletions

687
Form1.vb Normal file
View File

@@ -0,0 +1,687 @@
Imports System.IO
Imports System.Text
Imports System.Xml
Imports DevModeFirmwareInfo.UTSModule
Imports FlexCell
Imports MySql.Data.MySqlClient
Public Class Form1
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
'固件量
Public GFirmwareli As Dictionary(Of String, String)
'主机数量
Public GHostli As Dictionary(Of String, String)
'设备数量
Public GDevli As Dictionary(Of String, String)
Public FtpHost As String = "blv-oa.com"
Public FtpPort As Integer = 50
Public FtpUser As String = "BLV_Studio"
Public FtpPwd As String = "37f5675t6R&5*"
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim xmlFilePath As String = SelectXmlFile()
If String.IsNullOrEmpty(xmlFilePath) Then
Return
End If
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_NAME")
If strValue.Trim.ToLower.Equals("blv_c12") Then
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
ToolStripLabel2.Tag = 1
ToolStripLabel1.Tag = xmlFilePath
Dim Hostli = New Dictionary(Of String, String)()
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
Hostli.Add(ToolStripLabel2.Text, intValue.ToString())
LoadData(GFirmwareli, Hostli, GDevli)
Else
MessageBox.Show("请选择正确的xml文件")
End If
'将文件路径截取文件名称设置到ToolStripLabel2文本中
End Sub
Public Function XmlFieldExists(xmlFile As String, fieldName As String) As Integer
Try
Dim doc As New XmlDocument()
doc.Load(xmlFile)
' 任意深度查找第一个匹配节点
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
If node IsNot Nothing Then
'取到该节点的值
Dim value As String = node.InnerText.Trim()
'将其转int
Dim intValue As Integer = 0
Dim d As Double = 0
Double.TryParse(value, d)
Integer.TryParse(d, intValue)
Return intValue
Else
Return 0
End If
Catch ex As Exception
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
Return 0
End Try
End Function
Public Function XmlFieldExistsf(xmlFile As String, fieldName As String) As String
Try
Dim doc As New XmlDocument()
doc.Load(xmlFile)
' 任意深度查找第一个匹配节点
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
If node IsNot Nothing Then
'取到该节点的值
Dim value As String = node.InnerText
'将其转int
Return value
Else
Return ""
End If
Catch ex As Exception
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
Return ""
End Try
End Function
'加载Grid1数据
Public Sub LoadData(Firmwareli As Dictionary(Of String, String), Hostli As Dictionary(Of String, String), Devli As Dictionary(Of String, String))
'嵌套遍历三个列表
initdevmodefirmware()
For Each Firmware In Firmwareli
For Each Host In Hostli
For Each Dev In Devli
Grid1.AddItem("")
Grid1.Cell(Grid1.Rows - 1, 0).Text = Grid1.Rows - 1
Grid1.Cell(Grid1.Rows - 1, 1).Text = Host.Value
Grid1.Cell(Grid1.Rows - 1, 2).Text = Host.Key
Grid1.Cell(Grid1.Rows - 1, 3).Text = Firmware.Value
Grid1.Cell(Grid1.Rows - 1, 4).Text = Firmware.Key
Grid1.Cell(Grid1.Rows - 1, 5).Text = Dev.Value
Grid1.Cell(Grid1.Rows - 1, 6).Text = Dev.Key
Grid1.Cell(Grid1.Rows - 1, 7).Text = "1"
Next
Next
Next
End Sub
Public Sub initdevmodefirmware()
With Grid1
.NewFile()
.ExtendLastCol = True
.DisplayRowNumber = True
.Rows = 1
.Cols = 8
For i As Integer = 0 To .Cols - 1
.Column(i).Alignment = AlignmentEnum.CenterCenter
.Column(i).Locked = True
Next
.Cell(0, 0).Text = "序号"
.Column(0).Width = 30
.Cell(0, 1).Text = "主机版本"
.Column(1).Width = 30
.Cell(0, 2).Text = "主机"
.Column(2).Width = 200
.Cell(0, 3).Text = "固件版本"
.Column(3).Width = 30
.Cell(0, 4).Text = "固件"
.Column(4).Width = 200
.Cell(0, 5).Text = "设备版本"
.Column(5).Width = 30
.Cell(0, 6).Text = "设备"
.Column(6).Width = 200
.Cell(0, 7).Text = "是否有效"
.Column(7).CellType = CellTypeEnum.CheckBox
.Column(7).Locked = False
End With
End Sub
''' <summary>
''' 弹出文件选择对话框,只允许选择 .xml 文件。
''' </summary>
''' <returns>选中的 .xml 文件的完整路径;如果用户取消,则返回 Nothing。</returns>
Public Function SelectXmlFile() As String
Using ofd As New OpenFileDialog()
ofd.Title = "请选择 XML 文件"
ofd.Filter = "XML 文件 (*.xml)|*.xml"
ofd.Multiselect = False
ofd.CheckFileExists = True
ofd.CheckPathExists = True
If ofd.ShowDialog() = DialogResult.OK Then
Return ofd.FileName
Else
Return Nothing
End If
End Using
End Function
Public Function SelecthexFile() As String
'C1F_A_L4_42_251110_NM
Using ofd As New OpenFileDialog()
ofd.Title = "请选择 XML 文件"
ofd.Filter = "XML 文件 (*.hex)|*.HEX"
ofd.Multiselect = False
ofd.CheckFileExists = True
ofd.CheckPathExists = True
If ofd.ShowDialog() = DialogResult.OK Then
Return ofd.FileName
Else
Return Nothing
End If
End Using
End Function
'查询主机、固件、设备 数量函数
Public Sub QueryCount()
GFirmwareli = New Dictionary(Of String, String)()
GHostli = New Dictionary(Of String, String)()
GDevli = New Dictionary(Of String, String)()
Dim ExecText As String = "SELECT HostVersion, HostName
FROM (
SELECT HostVersion,
HostName,
ROW_NUMBER() OVER (PARTITION BY HostName ORDER BY ID) AS rn
FROM tbl_devmode_firmware_info
) t
WHERE rn = 1;"
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
Try
db.Open()
dt = db.ExecuteDataTable(ExecText)
'将查询到的值赋给全局变量
For Each row As DataRow In dt.Rows
GHostli.Add(row("HostName").ToString(), row("HostVersion").ToString())
Next
ExecText = "SELECT FirmwareVersion, FirmwareName
FROM (
SELECT FirmwareVersion,
FirmwareName,
ROW_NUMBER() OVER (PARTITION BY FirmwareName ORDER BY ID) AS rn
FROM tbl_devmode_firmware_info
) t
WHERE rn = 1;"
dt = db.ExecuteDataTable(ExecText)
For Each row As DataRow In dt.Rows
GFirmwareli.Add(row("FirmwareName").ToString(), row("FirmwareVersion").ToString())
Next
ExecText = "SELECT DevVersion, DevName
FROM (
SELECT DevVersion,
DevName,
ROW_NUMBER() OVER (PARTITION BY DevName ORDER BY ID) AS rn
FROM tbl_devmode_firmware_info
) t
WHERE rn = 1;;"
dt = db.ExecuteDataTable(ExecText)
For Each row As DataRow In dt.Rows
GDevli.Add(row("DevName").ToString(), row("DevVersion").ToString())
Next
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
End Sub
'查询tbl_devmode_firmware_info 表中的数据并显示在FlexCell控件中
Public Sub QueryData(tablename)
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY ID DESC;"
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
Try
db.Open()
dt = db.ExecuteDataTable(ExecText)
db.Close()
Grid1.DataSource = dt
Grid1.Locked = True
Catch ex As Exception
db.Close()
End Try
End Using
End Sub
Public Sub QueryData2(tablename)
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY MFD_ID DESC;"
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
Try
db.Open()
dt = db.ExecuteDataTable(ExecText)
db.Close()
Grid1.DataSource = dt
Grid1.Locked = True
Catch ex As Exception
db.Close()
End Try
End Using
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
QueryCount()
QueryData("tbl_devmode_firmware_info")
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Dim xmlFilePath As String = SelectXmlFile()
If String.IsNullOrEmpty(xmlFilePath) Then
Return
End If
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_INTERFACE")
If strValue.Trim.ToLower.Equals("RS485Active".ToLower) OrElse strValue.Trim.ToLower.Equals("VirtualObject".ToLower) OrElse strValue.Trim.ToLower.Equals("RS485Polling".ToLower) Then
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
ToolStripLabel2.Tag = 2
ToolStripLabel1.Tag = xmlFilePath
Dim Devli = New Dictionary(Of String, String)()
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
Devli.Add(ToolStripLabel2.Text, intValue.ToString())
LoadData(GFirmwareli, GHostli, Devli)
Else
MessageBox.Show("请选择正确的xml文件")
End If
End Sub
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
Dim xmlFilePath As String = SelecthexFile()
If String.IsNullOrEmpty(xmlFilePath) Then
Return
End If
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
If IsFirmwareNameValid(strValue) Then
Dim buff1 As String() = strValue.Split("_")
ToolStripLabel2.Text = strValue
ToolStripLabel2.Tag = 3
ToolStripLabel1.Tag = xmlFilePath
Dim Firmwareli = New Dictionary(Of String, String)()
Dim intValue As Integer = Hex2ToInt(buff1(3).ToString)
Firmwareli.Add(ToolStripLabel2.Text, intValue.ToString())
LoadData(Firmwareli, GHostli, GDevli)
Else
MessageBox.Show("请选择正确的固件文件")
End If
'C1F_A_L4_42_251110_NM
'判断文件名称是否合法
End Sub
'判断固件文件名称是否合法函数
Private Function IsFirmwareNameValid(ByVal FirmwareName As String) As Boolean
Dim buff1 As String() = FirmwareName.ToLower.Replace(".hex", "").Split("_")
If buff1.Length = 6 AndAlso buff1(1).ToLower.Equals("a") AndAlso buff1(0).ToLower.Equals("c1f") Then
If buff1(5).ToLower.Equals("m") Or buff1(5).ToLower.Equals("nm") Then
If buff1(2).ToLower.Equals("l2") Or buff1(2).ToLower.Equals("l4") Then
If IsNumeric(Hex2ToInt(buff1(3).ToString)) AndAlso IsNumeric(buff1(4)) Then
Return True
Else
Return False
End If
Else
Return False
End If
Else
Return False
End If
Else
Return False
End If
End Function
Public Function Hex2ToInt(ByVal hex2 As String) As Integer
If hex2 Is Nothing OrElse hex2.Length <> 2 Then Return -1
Dim v As Byte
If Byte.TryParse(hex2, Globalization.NumberStyles.HexNumber, Nothing, v) Then
Return CInt(v)
End If
Return -1
End Function
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
Dim intag As Integer = ToolStripLabel2.Tag
Select Case intag
Case 1
UploadHostFile()
Case 2
UploadDEvFile()
Case 3
UploadFirmwareFile()
Case > 3
MsgBox("发布失败,未设置设备有效固件")
End Select
QueryCount()
QueryData("tbl_devmode_firmware_info")
End Sub
'上传固件文件函数
Private Sub UploadFirmwareFile()
''弹出提示询问是否填写完设备有效固件
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
Dim loadFilePath As String = ToolStripLabel1.Tag
Dim hostFilePath As String = $"\Data\Firmware\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
'判断上传者是否为空
If String.IsNullOrEmpty(TextBox1.Text) Then
MsgBox("请填写上传者")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) Then
MsgBox("备注不能为空!请填写备注!")
Return
End If
'判断文件是否已在服务器
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
Return
End If
Try
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
'遍历表格
' Dim li As List(Of String) = New List(Of String)()
Dim rowstr As String = ""
Dim UserName = TextBox1.Text.Trim
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
Dim FirmwareEnable As Integer = 0
Dim HostVersion FirmwareVersion DevVersion As String
Dim HostName FirmwareName DevName As String
Dim md5 As String = GetStringMd5(loadFilePath)
Dim colNames As New StringBuilder
Dim buf As String() = ToolStripLabel2.Text.Split("_")
Dim mac As String = GetMACaddress()
Dim filepazth = $"\Data\Firmware\"
filepazth = filepazth.Replace("\", "\\")
For i As Integer = 1 To Grid1.Rows - 1
HostVersion = Grid1.Cell(i, 1).Text
HostName = Grid1.Cell(i, 2).Text
FirmwareVersion = Grid1.Cell(i, 3).Text
FirmwareName = Grid1.Cell(i, 4).Text
DevVersion = Grid1.Cell(i, 5).Text
DevName = Grid1.Cell(i, 6).Text
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
FirmwareEnable = 1
Else
FirmwareEnable = 0
End If
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
'li.Add(rowstr)
colNames.Append(rowstr)
Next
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_firmware_upload_logs` (`DateTime`,`AppType`,`FilePath`,`FileName`,`Ver`,`MD5Val`,`Handler`,`Remark`,`PC_MAC`,`PC_NAME`,`IsValid`,`Luncher_Ver`,`HOTEL_ID`,`ROOM_TYPE_ID`) VALUES ('{UpTime}','{"App_Cfg"}','{filepazth}','{ToolStripLabel2.Text}','{FirmwareVersion}','{md5}','{UserName}','{TextBox2.Text.Trim}','{mac}','{System.Environment.UserName}',1,'C1_L4',0,0)"
colNames.Append(rowstr)
Add_room_type_circuit_powers(colNames.ToString)
MsgBox("上传成功")
Else
MsgBox("文件上传失败!")
Return
End If
Catch ex As Exception
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
End Try
End If
End Sub
''上传主机文件函数
Private Sub UploadHostFile()
''弹出提示询问是否填写完设备有效固件
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
Dim loadFilePath As String = ToolStripLabel1.Tag
Dim hostFilePath As String = $"\Data\Model\RCUModel\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
'判断上传者是否为空
If String.IsNullOrEmpty(TextBox1.Text) Then
MsgBox("请填写上传者")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) Then
MsgBox("备注不能为空!请填写备注!")
Return
End If
'判断文件是否已在服务器
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
Return
End If
Try
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
'遍历表格
' Dim li As List(Of String) = New List(Of String)()
Dim rowstr As String = ""
Dim UserName = TextBox1.Text.Trim
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
Dim FirmwareEnable As Integer = 0
Dim HostVersion FirmwareVersion DevVersion As String
Dim HostName FirmwareName DevName As String
Dim md5 As String = GetStringMd5(loadFilePath)
Dim colNames As New StringBuilder
For i As Integer = 1 To Grid1.Rows - 1
HostVersion = Grid1.Cell(i, 1).Text
HostName = Grid1.Cell(i, 2).Text
FirmwareVersion = Grid1.Cell(i, 3).Text
FirmwareName = Grid1.Cell(i, 4).Text
DevVersion = Grid1.Cell(i, 5).Text
DevName = Grid1.Cell(i, 6).Text
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
FirmwareEnable = 1
Else
FirmwareEnable = 0
End If
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
'li.Add(rowstr)
colNames.Append(rowstr)
Next
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\RCUModel".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
colNames.Append(rowstr)
Add_room_type_circuit_powers(colNames.ToString)
MsgBox("上传成功")
Else
MsgBox("文件上传失败!")
Return
End If
Catch ex As Exception
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
End Try
End If
End Sub
Public Function GetMACaddress() As String
Dim netAddress As String = ""
Dim netName As String = ""
Dim searcher As New Management.ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration")
Dim moc2 As Management.ManagementObjectCollection = searcher.Get()
For Each mo As Management.ManagementObject In moc2
If CBool(mo("IPEnabled")) Then '判断是否是网卡
netName = mo.Properties("caption").Value.ToString '网卡名称
netAddress = mo.Properties("MACAddress").Value.ToString 'mac地址
End If
Next
Return netAddress
End Function
Private Sub UploadDEvFile()
''弹出提示询问是否填写完设备有效固件
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
Dim loadFilePath As String = ToolStripLabel1.Tag
Dim hostFilePath As String = $"\Data\Model\485Model\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
'判断上传者是否为空
If String.IsNullOrEmpty(TextBox1.Text) Then
MsgBox("请填写上传者")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) Then
MsgBox("备注不能为空!请填写备注!")
Return
End If
'判断文件是否已在服务器
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
Return
End If
Try
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
'遍历表格
' Dim li As List(Of String) = New List(Of String)()
Dim rowstr As String = ""
Dim UserName = TextBox1.Text.Trim
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
Dim FirmwareEnable As Integer = 0
Dim HostVersion FirmwareVersion DevVersion As String
Dim HostName FirmwareName DevName As String
Dim md5 As String = GetStringMd5(loadFilePath)
Dim colNames As New StringBuilder
For i As Integer = 1 To Grid1.Rows - 1
HostVersion = Grid1.Cell(i, 1).Text
HostName = Grid1.Cell(i, 2).Text
FirmwareVersion = Grid1.Cell(i, 3).Text
FirmwareName = Grid1.Cell(i, 4).Text
DevVersion = Grid1.Cell(i, 5).Text
DevName = Grid1.Cell(i, 6).Text
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
FirmwareEnable = 1
Else
FirmwareEnable = 0
End If
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
'li.Add(rowstr)
colNames.Append(rowstr)
Next
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\485Model".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
colNames.Append(rowstr)
Add_room_type_circuit_powers(colNames.ToString)
MsgBox("上传成功")
Else
MsgBox("文件上传失败!")
Return
End If
Catch ex As Exception
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
End Try
End If
End Sub
Public Function GetStringMd5(filePath As String) As String
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
Dim databuff As Byte() = Security.Cryptography.MD5.Create().ComputeHash(dataFile)
Dim MD5str As String = BitConverter.ToString(databuff)
' Console.WriteLine($"md5-1:{MD5str}")
Return MD5str.Replace("-", "").ToUpper
End Function
Public Function Add_room_type_circuit_powers(insertClunm As String) As Boolean
If String.IsNullOrEmpty(insertClunm) Then Return False
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
db.BeginTransaction()
dt = db.ExecuteDataTable(insertClunm)
db.CommitTransaction()
Catch ex As Exception
db.RollbackTransaction()
db.Close()
Return False
End Try
db.Close()
End Using
Return True
End Function
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
Dim xmlFilePath As String = SelectXmlFile()
If String.IsNullOrEmpty(xmlFilePath) Then
MsgBox("请选择正确的xml文件")
Return
End If
If String.IsNullOrEmpty(TextBox1.Text) Then
MsgBox("请填写上传者")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) Then
MsgBox("备注不能为空!请填写备注!")
Return
End If
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
Dim md5 As String = GetStringMd5(xmlFilePath)
Dim UserName = TextBox1.Text.Trim
Dim colNames As New StringBuilder
Dim hostFilePath As String = $"\Data\Model\BaseModel\{strValue}"
'判断文件是否已在服务器
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
MsgBox($"服务器已存在文件<{strValue}>")
Return
End If
Try
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, xmlFilePath) Then
Dim rowstr As String = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\BaseModel".Replace("\", "\\")}','{strValue}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
colNames.Append(rowstr)
Add_room_type_circuit_powers(colNames.ToString)
MsgBox("上传成功")
End If
Catch ex As Exception
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
End Try
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button5.Click, Button4.Click
QueryCount()
QueryData("tbl_devmode_firmware_info")
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button6.Click, Button3.Click, Button10.Click
QueryData2("tbl_model_file_data")
End Sub
End Class