337 lines
12 KiB
VB.net
337 lines
12 KiB
VB.net
Imports System.Security.Cryptography
|
||
Imports System.Text
|
||
|
||
Public Class CreateProject
|
||
Public Property AccountAuth As AccountAuth
|
||
Private _defalut As Boolean
|
||
''' <summary>
|
||
''' 客户名称
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property VerderName As String
|
||
Public Property DbConnString2 As String = ""
|
||
''' <summary>
|
||
''' 客户索引
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property HotelIndex As String
|
||
Public Property RoomIndex As String
|
||
|
||
''' <summary>
|
||
''' 客户索引
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Public Property VerderIndex As String
|
||
|
||
Public holtdic As List(Of Dictionary(Of String, String))
|
||
Public Userdic As List(Of Dictionary(Of String, String))
|
||
|
||
Public NStartTime As String = ""
|
||
|
||
Public AppUser As String = ""
|
||
Private Sub CreateProject_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||
|
||
SetRefreshHolte_cbo()
|
||
Setdepartment_cbo()
|
||
layer_cbo.SelectedIndex = 0
|
||
'If IsNothing(holtdic) And holtdic.Count = 0 Then
|
||
' MsgBox("获取酒店项目信息失败,请查询数据库或联系开发者。")
|
||
'Else
|
||
' For Each index In holtdic
|
||
' Holte_cbo.Items.Add(index.Item("HOTEL_NAME_CN"))
|
||
' Next
|
||
|
||
'End If
|
||
'If IsNothing(Userdic) And Userdic.Count = 0 Then
|
||
' MsgBox("获取人员信息失败,请查询数据库或联系开发者。")
|
||
'Else
|
||
' For Each index In Userdic
|
||
' ManageUser_cbo .Items.Add(index.Item("UserName"))
|
||
' Next
|
||
|
||
'End If
|
||
|
||
End Sub
|
||
Public department As New Dictionary(Of String, String)
|
||
Public Sub Setdepartment_cbo()
|
||
Dim sqlstr As String = "SELECT * FROM `tbl_engineerning_department`"
|
||
Dim dic = GetSqlTableRowlist(sqlstr)
|
||
If IsNothing(dic) AndAlso dic.Count < 1 Then Return
|
||
department_cbo.Items.Clear()
|
||
department.Clear()
|
||
For Each index In dic
|
||
If String.IsNullOrEmpty(index.Item("DepartmentName")) Then
|
||
Continue For
|
||
End If
|
||
If department.ContainsKey(index.Item("DepartmentName")) Then Continue For
|
||
department_cbo.Items.Add(index.Item("DepartmentName"))
|
||
|
||
department.Add(index.Item("DepartmentName"), index.Item("id"))
|
||
Next
|
||
End Sub
|
||
|
||
|
||
Public Sub SetRefreshHolte_cbo()
|
||
If IsNothing(AccountAuth) Then Return
|
||
If String.IsNullOrEmpty(HotelIndex) Then
|
||
_defalut = False
|
||
Else
|
||
_defalut = True
|
||
End If
|
||
Holte_cbo.Items.Clear()
|
||
Room_cbo.Text = ""
|
||
For i As Integer = 0 To AccountAuth.HotelData.Count - 1
|
||
Dim group As HotelGroup = AccountAuth.HotelData.Item(i)
|
||
'遍历所有酒店组,将酒店组添加到tree view控件中
|
||
'node.Nodes.Add(group.HotelGroupsName)
|
||
Holte_cbo.Items.Add(group.HotelGroupsName)
|
||
If _defalut AndAlso group.HotelGroupsId.Equals(VerderIndex) Then
|
||
'Holte_cbo.DroppedDown =True
|
||
Holte_cbo.SelectedIndex = i
|
||
|
||
'Holte_cbo.DroppedDown =False
|
||
End If
|
||
Next
|
||
|
||
End Sub
|
||
|
||
|
||
Public Function GetSqlTableRowlist(sqlstr As String) As List(Of Dictionary(Of String, String))
|
||
Dim FileMysqlRow As New List(Of Dictionary(Of String, String))
|
||
Try
|
||
Dim dt As DataTable
|
||
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString2)
|
||
|
||
db.Open()
|
||
dt = db.ExecuteDataTable(sqlstr)
|
||
db.Close()
|
||
End Using
|
||
|
||
For Each dtrow As DataRow In dt.Rows
|
||
Dim clunm As New Dictionary(Of String, String)
|
||
For i As Integer = 0 To dt.Columns.Count - 1
|
||
'Console.WriteLine("argRoomTypeNodeIdx = " & dtrow.Item(i))
|
||
'If dtrow.Item(i).GetType = "DbNull" Then
|
||
' clunm.Add(dt.Columns(i).ColumnName, "")
|
||
' Continue For
|
||
'End If
|
||
clunm.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
|
||
Next
|
||
FileMysqlRow.Add(clunm)
|
||
Next
|
||
Catch ex As Exception
|
||
Return Nothing
|
||
End Try
|
||
Return FileMysqlRow
|
||
End Function
|
||
|
||
|
||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||
Dim sqlval As New Dictionary(Of String, String)
|
||
'Console .WriteLine (StartTime_tim .Value .ToString("yyyy-MM-dd HH:mm:ss"))
|
||
'Console.WriteLine(stringtoByte(UserControl11.ProjectDescription_rictxt.Rtf).ToString)
|
||
|
||
If String.IsNullOrEmpty(Title_txt.Text) Then
|
||
MsgBox("标题为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(Holte_cbo.Text) Then
|
||
MsgBox("项目为空!!!")
|
||
Return
|
||
End If
|
||
|
||
If String.IsNullOrEmpty(Room_cbo.Text) Then
|
||
MsgBox("房型为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(RoomID_cbo.Text) Then
|
||
MsgBox("房间ID为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(StartTime_tim.Text) Then
|
||
MsgBox("开始时间为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(StopTime_tim.Text) Then
|
||
MsgBox("截止时间为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(layer_cbo.Text) Then
|
||
MsgBox("事件类型为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(level_cbo.Text) Then
|
||
MsgBox("优先级为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(department_cbo.Text) Then
|
||
MsgBox("处理部门为空!!!")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(ManageUser_cbo.Text) Then
|
||
MsgBox("处理人为空!!!")
|
||
Return
|
||
End If
|
||
sqlval.Add("CurrentStatus", 1)
|
||
sqlval.Add("DateTime", StartTime_tim.Value.ToString("yyyy-MM-dd HH:mm:ss"))
|
||
|
||
sqlval.Add("Proposer", AppUser)
|
||
sqlval.Add("EventType", layer_cbo.Tag)
|
||
sqlval.Add("HotelID", Holte_cbo.Text)
|
||
sqlval.Add("RoomTypeId", Room_cbo.Text)
|
||
sqlval.Add("RoomID", RoomID_cbo.Tag)
|
||
sqlval.Add("EventDesc", Title_txt.Text)
|
||
sqlval.Add("Process_Department", department_cbo.Text)
|
||
sqlval.Add("Process_Handler", ManageUser_cbo.Text)
|
||
sqlval.Add("Process_TargetDateTime", StopTime_tim.Value.ToString("yyyy-MM-dd HH:mm:ss"))
|
||
|
||
sqlval.Add("RtfTextMd5", GetStringMd5(UserControl11.ProjectDescription_rictxt.Rtf))
|
||
|
||
|
||
'UserControl11.ProjectDescription_rictxt.SaveFile(Application.StartupPath & "log.RTF", RichTextBoxStreamType.RichText)
|
||
'Console.WriteLine(UserControl11.ProjectDescription_rictxt.Rtf)
|
||
'Dim rtf As String = UserControl11.ProjectDescription_rictxt.Rtf
|
||
|
||
'UserControl11.ProjectDescription_rictxt.Clear()
|
||
'UserControl11.ProjectDescription_rictxt.Rtf = rtf
|
||
'stringtoByte(UserControl11.ProjectDescription_rictxt.Rtf)
|
||
'Dim filepath As String =Application .StartupPath &"\Rtftest1.rtf"
|
||
' UserControl11.ProjectDescription_rictxt.SaveFile (filepath,RichTextBoxStreamType .RichText )
|
||
'UserControl11.ProjectDescription_rictxt.p
|
||
'
|
||
Dim buff() As Byte = System.Text.Encoding.Default.GetBytes(UserControl11.ProjectDescription_rictxt.Rtf)
|
||
Dim sb As New StringBuilder
|
||
For Each ss In buff
|
||
sb.Append(ss)
|
||
sb.Append("|")
|
||
Next
|
||
'Console.WriteLine ("上传:"& ByteToString(buff ))
|
||
'Console.WriteLine ("上传:"& sb.ToString)
|
||
|
||
sqlval.Add("RtfText", sb.ToString)
|
||
If InsertIntoSqlTable("tbl_event_lists", sqlval) Then
|
||
NStartTime = sqlval.Item("DateTime")
|
||
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||
Else
|
||
Return
|
||
End If
|
||
|
||
End Sub
|
||
|
||
Public Function ByteToString(databuff() As Byte)
|
||
Dim strData As String = String.Empty
|
||
For i = 0 To databuff.Length - 1
|
||
strData &= $" {Hex(databuff(i)).PadLeft(2, "0"c)}"
|
||
Next
|
||
Return strData
|
||
End Function
|
||
Public Function stringtoByte(str As String) As Byte()
|
||
Return Encoding.ASCII.GetBytes(str)
|
||
End Function
|
||
|
||
|
||
|
||
Public Function GetStringMd5(str As String) As String
|
||
Dim md5Hasher As New MD5CryptoServiceProvider()
|
||
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(str))
|
||
Dim fileMd5 As New StringBuilder()
|
||
Dim i As Integer
|
||
For i = 0 To data.Length - 1
|
||
fileMd5.Append(data(i).ToString("X2"))
|
||
Next
|
||
|
||
Return fileMd5.ToString()
|
||
End Function
|
||
|
||
|
||
Public Function InsertIntoSqlTable(tablename As String, sqlval As Dictionary(Of String, String)) As Boolean
|
||
Dim dt As DataTable
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString2)
|
||
db.Open()
|
||
dt = db.ExecuteDataTable(db.CmdHelper.Insert(tablename, sqlval))
|
||
|
||
db.Close()
|
||
If IsNothing(dt) Then
|
||
MsgBox($"发布事务失败,请查看数据表:{tablename},或联系开发者。")
|
||
Return False
|
||
End If
|
||
Return True
|
||
End Using
|
||
|
||
End Function
|
||
|
||
|
||
|
||
Private Sub Holte_cbo_SelectedValueChanged(sender As Object, e As EventArgs) Handles Holte_cbo.SelectedValueChanged
|
||
If String.IsNullOrEmpty(HotelIndex) Then
|
||
_defalut = False
|
||
Else
|
||
_defalut = True
|
||
End If
|
||
For Each group As HotelGroup In AccountAuth.HotelData
|
||
If group.HotelGroupsName.Equals(Holte_cbo.Text) Then
|
||
Room_cbo.Items.Clear()
|
||
Room_cbo.Text = ""
|
||
For i As Integer = 0 To group.Hotels.Count - 1
|
||
Dim hotel As Hotel = group.Hotels.Item(i)
|
||
'tmpHotelInfo.HotelId = hotel.HotelId
|
||
'tmpHotelInfo.HotelCode = hotel.Code
|
||
'tmpHotelInfo.HotelName = hotel.HotelName
|
||
|
||
Room_cbo.Items.Add(hotel.HotelName)
|
||
|
||
If _defalut AndAlso hotel.Code.Equals(RoomIndex) Then
|
||
Room_cbo.SelectedIndex = i
|
||
End If
|
||
Next
|
||
End If
|
||
Next
|
||
End Sub
|
||
|
||
Private Sub department_cbo_SelectedValueChanged(sender As Object, e As EventArgs) Handles department_cbo.SelectedValueChanged
|
||
department_cbo.Tag = department.Item(department_cbo.Text)
|
||
SetManageUser_cbo()
|
||
End Sub
|
||
Public ManageUser As New Dictionary(Of String, String)
|
||
Public Sub SetManageUser_cbo()
|
||
Dim sqlstr As String = "SELECT * FROM `tbl_engineerning_teammembers`"
|
||
Dim dic = GetSqlTableRowlist(sqlstr)
|
||
If IsNothing(dic) AndAlso dic.Count < 1 Then Return
|
||
ManageUser_cbo.Items.Clear()
|
||
ManageUser.Clear()
|
||
For Each index In dic
|
||
If String.IsNullOrEmpty(index.Item("UserName")) Then
|
||
Continue For
|
||
End If
|
||
If ManageUser.ContainsKey(index.Item("UserName")) Then Continue For
|
||
ManageUser_cbo.Items.Add(index.Item("UserName"))
|
||
ManageUser.Add(index.Item("UserName"), index.Item("UserID"))
|
||
Next
|
||
End Sub
|
||
|
||
Private Sub ManageUser_cbo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ManageUser_cbo.SelectedIndexChanged
|
||
ManageUser_cbo.Tag = ManageUser.Item(ManageUser_cbo.Text)
|
||
End Sub
|
||
|
||
Public Sub Setlayer_cbo()
|
||
Dim sqlstr As String = "SELECT * FROM `tbl_eventtype_lists`"
|
||
Dim dic = GetSqlTableRowlist(sqlstr)
|
||
If IsNothing(dic) AndAlso dic.Count < 1 Then Return
|
||
layer_cbo.Items.Clear()
|
||
|
||
For Each index In dic
|
||
If String.IsNullOrEmpty(index.Item("UserName")) Then
|
||
Continue For
|
||
End If
|
||
|
||
layer_cbo.Items.Add(index.Item("UserName"))
|
||
|
||
Next
|
||
End Sub
|
||
|
||
Private Sub layer_cbo_SelectedValueChanged(sender As Object, e As EventArgs) Handles layer_cbo.SelectedValueChanged
|
||
layer_cbo.Tag = layer_cbo.SelectedIndex + 1
|
||
End Sub
|
||
|
||
End Class |