Files

336 lines
12 KiB
VB.net
Raw Permalink Normal View History

Imports System.IO
Imports BLV_Studio.UTSModule
Public Class UpdataDevMode
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 Author As String
Private Sub UpdataDevMode_Load(sender As Object, e As EventArgs) Handles MyBase.Load
UploadFileList = New Dictionary(Of String, String)
InitGrid()
InitGrid2()
End Sub
Public Sub InitGrid()
Grid1.Rows = 1
Grid1.Cols = 5
Grid1.DisplayRowNumber = True
Grid1.ExtendLastCol = True
For i = 0 To 4
Select Case i
Case 0
Grid1.Cell(0, i).Text = "ID"
Case 1
Grid1.Cell(0, i).Text = "Name"
Case 2
Grid1.Cell(0, i).Text = "MD5"
Case 3
Grid1.Cell(0, i).Text = "Size"
Case 4
Grid1.Cell(0, i).Text = "PATH"
End Select
Grid1.Column(i).Locked = True
Next
End Sub
Public rmodedevtablenode As Dictionary(Of String, modedevtablenode)
Public Sub InitGrid2()
Grid2.Rows = 1
Grid2.Cols = 5
Grid2.DisplayRowNumber = True
Grid2.ExtendLastCol = True
For i = 0 To 4
Select Case i
Case 0
Grid2.Cell(0, i).Text = "ID"
Case 1
Grid2.Cell(0, i).Text = "UPdataTime"
Case 2
Grid2.Cell(0, i).Text = "Name"
Case 3
Grid2.Cell(0, i).Text = "MD5"
Case 4
Grid2.Cell(0, i).Text = "PATH"
' Grid2.Cell(0, i).Text = "Size"
Case 5
End Select
Grid2.Column(i).Locked = True
Next
rmodedevtablenode = GetServerFile()
For Each item In rmodedevtablenode
Grid2.AddItem("")
Grid2.Cell(Grid2.Rows - 1, 1).Text = item.Value.UploadDateTime
Grid2.Cell(Grid2.Rows - 1, 4).Text = item.Value.Directory
Grid2.Cell(Grid2.Rows - 1, 3).Text = item.Value.XLM_MD5
Grid2.Cell(Grid2.Rows - 1, 2).Text = item.Value.XML_FileName
Next
End Sub
Public Function GetServerFile()
Dim result As New Dictionary(Of String, modedevtablenode)
Dim selectstr As String = $"SELECT * FROM `blv_rcu_db`.`tbl_model_file_data` ORDER BY `MFD_ID` DESC"
'Dim delete As String = $"DELETE FROM {tablename} WHERE HotelID ='{HotelID}' and RoomID='{RoomID}'"
Dim dt As DataTable
Dim mdtn As modedevtablenode
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteDataTable(selectstr)
If IsNothing(dt) Then Return result
For i As Integer = 0 To dt.Rows.Count - 1
mdtn = New modedevtablenode
mdtn.MFD_ID = dt(i)("MFD_ID")
mdtn.Available = dt(i)("Available")
'mdtn.Brand = dt(i)("Brand")
'mdtn.ModelNo = dt(i)("ModelNo")
'mdtn.ModelName = dt(i)("ModelName")
'mdtn.Description = dt(i)("Description")
'mdtn.Image = dt(i)("Image")
mdtn.Directory = dt(i)("Directory")
mdtn.XML_FileName = dt(i)("XML_FileName")
'mdtn.DAT_FileName = dt(i)("DAT_FileName")
'mdtn.Version = dt(i)("Version")
mdtn.UploadDateTime = dt(i)("UploadDateTime")
'判读Author 是否为dbnull
If IsDBNull(dt(i)("Author")) Then
mdtn.Author = ""
Else
mdtn.Author = dt(i)("Author")
End If
mdtn.XLM_MD5 = dt(i)("XLM_MD5")
'mdtn.DAT_MD5 = dt(i)("DAT_MD5")
'mdtn.PartNumber = dt(i)("PartNumber")
'mdtn.Remark = dt(i)("Remark")
result.Add($"{dt(i)("XML_FileName")}", mdtn)
Next
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Return result
End Function
Public Function deleteServerFile(XML_FileName As String) As Boolean
Dim result As Boolean = False
Dim selectstr As String = $"DELETE FROM `blv_rcu_db`.`tbl_model_file_data` where XML_FileName='{XML_FileName}' "
'Dim delete As String = $"DELETE FROM {tablename} WHERE HotelID ='{HotelID}' and RoomID='{RoomID}'"
Dim dt As Integer = 0
Dim mdtn As modedevtablenode
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteNonQuery(selectstr)
If IsNothing(dt) OrElse dt = 0 Then Return result
result = True
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Return result
End Function
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
'获取Grid1选中的行
Dim selectedRow As Integer = Grid1.ActiveCell.Row
'获取选中的文件名称
Dim selectedFileName As String = Grid1.Cell(selectedRow, 1).Text
'判断是否选中了有效行
If selectedRow > 0 Then
'删除Grid1选中行(selectedRow)
Grid1.RemoveItem(selectedRow)
'判断文件在不在键值对
If UploadFileList.ContainsKey(selectedFileName) Then
'删除键值对
UploadFileList.Remove(selectedFileName)
End If
End If
End Sub
'待上传文件列表变量
Public UploadFileList As Dictionary(Of String, String)
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
'打开文件选择器 设置打开的路径为根目录下BLV_Studio\Data\Model
Dim OpenFileDialog1 As New OpenFileDialog()
OpenFileDialog1.Filter = "XML Files (*.xml)|*.xml"
OpenFileDialog1.InitialDirectory = Application.StartupPath & "\Data\Model"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
'将选中的文件名和文件路径填充键值对
If rmodedevtablenode.ContainsKey(OpenFileDialog1.SafeFileName) Then
MsgBox("服务器已存在该文件!")
Return
End If
If UploadFileList.ContainsKey(OpenFileDialog1.SafeFileName) Then
MsgBox("文件已存在")
Else
'将选中的文件名和文件路径填充键值对
UploadFileList.Add(OpenFileDialog1.SafeFileName, OpenFileDialog1.FileName)
End If
End If
'Case 0
'Grid1.Cell(0, i).Text = "ID"
'Case 1
'Grid1.Cell(0, i).Text = "Name"
'Case 2
'Grid1.Cell(0, i).Text = "MD5"
'Case 3
'Grid1.Cell(0, i).Text = "Size"
'Case 4
'Grid1.Cell(0, i).Text = "PATH"
Dim xmlmd5 As String
Dim fileInfo As FileInfo
Dim fileSize As Long
Grid1.Rows = 1
For Each item In UploadFileList
Grid1.AddItem("")
Grid1.Cell(Grid1.Rows - 1, 1).Text = item.Key
xmlmd5 = GetStringMd5(item.Value)
Grid1.Cell(Grid1.Rows - 1, 2).Text = xmlmd5
'获取文件大小
fileInfo = New FileInfo(item.Value)
fileSize = fileInfo.Length
Grid1.Cell(Grid1.Rows - 1, 3).Text = fileSize
Grid1.Cell(Grid1.Rows - 1, 4).Text = item.Value
Next
End Sub
Private Sub UpdataDevMode_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Return
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
If String.IsNullOrEmpty(ToolStripComboBox1.Text) Then
MsgBox("请选择上传的文件类型!")
Return
End If
If UploadFileList.Count = 0 Then
MsgBox("请选择上传的文件!")
Return
End If
Dim strInputMsg As String = InputBox("请输入上传设备模型密码", "密码确认")
If strInputMsg <> "Cc2022OK" Then Return
'遍历UploadFileList
Dim serverpath = $"\Data\Model\{ToolStripComboBox1.Text}"
Dim tmp_FTP_Xml_FullName As String = ""
Dim sqlstr As String = ""
Dim insertstr As String = ""
Dim dt As Integer = 0
For Each item In UploadFileList
tmp_FTP_Xml_FullName = serverpath & "\" & item.Key
If UtsFtp.CreateObject.FtpUploadBlv(tmp_FTP_Xml_FullName, item.Value) = 1 Then
'插入一条数据库记录
insertstr = getInsertStr(serverpath, item.Key, item.Value)
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteNonQuery(insertstr)
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Else
MsgBox("上传文件错误!")
Return
End If
Next
MsgBox("上传完成!")
UpdataDevMode_Load(Nothing Nothing)
End Sub
'生成插入一条数据库记录函数
Public Function getInsertStr(serverpath As String, filename As String filepath As String)
Dim md5 As String = GetStringMd5(filepath)
Dim result As String = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data`
(`Available`
,`Directory`
,`XML_FileName`
,`UploadDateTime`
,`Author`
,`XLM_MD5`
,`Remark`)
VALUES
(1,'{serverpath.Replace("\", "\\")}','{filename}','{Now}','{Author}','{md5}','配置上传~')"
Return result
End Function
Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click
Dim strInputMsg As String = InputBox("请输入删除设备模型密码", "密码确认")
If strInputMsg <> "Cc2022OK" Then Return
'获取Gri2的选择文件名
Dim selectedRow As Integer = Grid2.ActiveCell.Row
Dim selectedFileName As String = Grid2.Cell(selectedRow, 2).Text
'判断是否选中了有效行
If selectedRow > 0 Then
If deleteServerFile(selectedFileName) Then
'删除Grid2选中行(selectedRow)
Grid2.RemoveItem(selectedRow)
'判断文件在不在键值对
If rmodedevtablenode.ContainsKey(selectedFileName) Then
'删除键值对
rmodedevtablenode.Remove(selectedFileName)
End If
Else
MsgBox("删除失败!")
End If
End If
End Sub
End Class
Public Class modedevtablenode
Public MFD_ID As Integer
Public Available As String
Public Brand As String
Public ModelNo As String
Public ModelName As String
Public Description As String
Public Image As String
Public Directory As String
Public XML_FileName As String
Public DAT_FileName As String
Public Version As String
Public UploadDateTime As String
Public Author As String
Public XLM_MD5 As String
Public DAT_MD5 As String
Public PartNumber As String
Public Remark As String
End Class