623 lines
30 KiB
VB.net
623 lines
30 KiB
VB.net
|
|
Imports System.Text
|
|||
|
|
Imports UTS_Core.Database
|
|||
|
|
Imports UTS_Core.UTSModule
|
|||
|
|
Imports UTS_Core.UTSModule.DbTableModel.Customer
|
|||
|
|
Imports UTS_Core.UTSModule.License
|
|||
|
|
Imports UTS_Core.UTSModule.DbTableModel
|
|||
|
|
|
|||
|
|
Public Class FrmMain
|
|||
|
|
Private Sub BtnCommit_Click(sender As Object, e As EventArgs) Handles BtnCommit.Click
|
|||
|
|
UpdateInstallTip(0, "注册客户准备中")
|
|||
|
|
|
|||
|
|
Try
|
|||
|
|
'更新License信息
|
|||
|
|
UpdateInstallTip(1, $"License信息更新中...")
|
|||
|
|
Dim lic As License = FillLicense()
|
|||
|
|
UpdateInstallTip(20, $"License信息更新完成!")
|
|||
|
|
|
|||
|
|
'生成License文件
|
|||
|
|
UpdateInstallTip(21, $"License文件生成中...")
|
|||
|
|
CreateVendorLicense(lic)
|
|||
|
|
UpdateInstallTip(40, $"License文件生成完成!")
|
|||
|
|
|
|||
|
|
'创建FTP文件夹
|
|||
|
|
UpdateInstallTip(41, $"Ftp文件夹生成中...")
|
|||
|
|
CreateFtpDic(lic)
|
|||
|
|
UpdateInstallTip(60, $"Ftp文件夹生成完成!")
|
|||
|
|
|
|||
|
|
'创建数据库的数据表
|
|||
|
|
UpdateInstallTip(61, $"创建数据库结构中...")
|
|||
|
|
CreateVendorTables(lic)
|
|||
|
|
UpdateInstallTip(99, $"创建数据库结构完成!")
|
|||
|
|
|
|||
|
|
UpdateInstallTip(100, $"注册客户完成")
|
|||
|
|
Catch ex As Exception
|
|||
|
|
Console.WriteLine($"Commit vendor error:{ex.Message}")
|
|||
|
|
UpdateInstallTip(100, $"注册客户失败,{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Function FillLicense() As License
|
|||
|
|
'更新License缓存
|
|||
|
|
Dim lic As New License With {
|
|||
|
|
.ID = $"1",
|
|||
|
|
.VendorName = TxtVendorName.Text,
|
|||
|
|
.AuthorizationDate = $"{Now:yyyy-MM-dd HH:mm:ss}",
|
|||
|
|
.ExpirationDate = $"{DtpExpirationDate.Value:yyyy-MM-dd HH:mm:ss}",
|
|||
|
|
.DefaultUser = $"Admin",
|
|||
|
|
.DefaultPassword = $"Admin",
|
|||
|
|
.MysqlServer = TxtRemoteServer.Text,
|
|||
|
|
.MysqlPort = NudRemotePort.Value.ToString(),
|
|||
|
|
.MysqlUserID = TxtRemoteUser.Text,
|
|||
|
|
.MysqlPassword = TxtRemotePwd.Text,
|
|||
|
|
.MysqlDatabase = TxtRemotePrivateDb.Text,
|
|||
|
|
.PublicDb = TxtRemotePublicDb.Text,
|
|||
|
|
.SqliteDir = "LocalDB",
|
|||
|
|
.SqliteName = TxtLocalFileName.Text,
|
|||
|
|
.SqlitePassword = TxtLocalPwd.Text,
|
|||
|
|
.FtpHost = TxtFtpHost.Text,
|
|||
|
|
.FtpPort = NudFtpPort.Value.ToString(),
|
|||
|
|
.FtpUser = TxtFtpUser.Text,
|
|||
|
|
.FtpPwd = TxtFtpPwd.Text,
|
|||
|
|
.Mac = TxtMac.Text,
|
|||
|
|
.Remark = TxtRemard.Text,
|
|||
|
|
.UtsVersion = $"3",
|
|||
|
|
.Signature = $"this is a valid license data"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Return lic
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 创建Ftp所需的文件夹
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="lic"></param>
|
|||
|
|
Private Sub CreateFtpDic(lic As License)
|
|||
|
|
|
|||
|
|
UtsFtp.InitConnectParams(CInt(lic.FtpPort), lic.FtpUser, lic.FtpPwd)
|
|||
|
|
Dim ftp As UtsFtp = UtsFtp.CreateObject()
|
|||
|
|
ftp.FtpHost = lic.FtpHost
|
|||
|
|
Try
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/AOI", True) '拍摄站上传图像
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/Package", True) '装箱站上传图像
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/Product", True) '产品图像
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/Repair", True) '维修站位图像
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/Project", True) '测试站位流程
|
|||
|
|
ftp.CreateDir($"/uts_Manager/AUTS/{lic.VendorName}/Upload", True) '服务上传内容
|
|||
|
|
Catch ex As Exception
|
|||
|
|
Throw New Exception($"创建客户Ftp文件夹失败,{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub CreateVendorLicense(lic As License)
|
|||
|
|
'获取License文件名
|
|||
|
|
Dim licensePath As String
|
|||
|
|
Using saveDlg As New SaveFileDialog
|
|||
|
|
saveDlg.Title = $"请选择鉴权License文件的保存路径"
|
|||
|
|
saveDlg.Filter = $"License文件(*.dat)|*.dat"
|
|||
|
|
saveDlg.AddExtension = True
|
|||
|
|
If saveDlg.ShowDialog() <> DialogResult.OK Then Return
|
|||
|
|
licensePath = saveDlg.FileName
|
|||
|
|
End Using
|
|||
|
|
|
|||
|
|
UpdateInstallTip(30, $"License文件即将保存至{licensePath}.")
|
|||
|
|
'保存License文件
|
|||
|
|
lic.SaveLicenseFile(licensePath)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub UpdateCompanyTable(db As DbExecutor, dbName As String, company As String)
|
|||
|
|
'更新公共库公司总表
|
|||
|
|
Dim tableName As String = $"{Manage.CustomerListTable.TableName}"
|
|||
|
|
Dim condition As String = $"`{Manage.CustomerListTable.ColNamesEnum.CustomerName}` = '{company}'"
|
|||
|
|
Dim cmdText As String = db.CmdHelper.DbSearch(dbName, "count(*)", tableName, condition)
|
|||
|
|
If CInt(db.ExecuteScalar(cmdText)) > 0 Then
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Dim field As New Dictionary(Of String, String) From
|
|||
|
|
{
|
|||
|
|
{$"{Manage.CustomerListTable.ColNamesEnum.CustomerName}", company}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
cmdText = db.CmdHelper.DbInsert(dbName, tableName, field)
|
|||
|
|
db.ExecuteNonQuery(cmdText)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub UpdateDatabaseTable(db As DbExecutor, dbName As String, company As String, userDb As String, user As String, pwd As String)
|
|||
|
|
''更新公共库公司总表
|
|||
|
|
Dim tableName As String = $"{Manage.CustomerListTable.TableName}"
|
|||
|
|
Dim condition As String = $"`{Manage.CustomerListTable.ColNamesEnum.CustomerName}` = '{company}'"
|
|||
|
|
Dim colName As String = $"{Manage.CustomerListTable.ColNamesEnum.ID}"
|
|||
|
|
Dim cmdText As String = db.CmdHelper.DbSearch(dbName, colName, tableName, condition)
|
|||
|
|
Dim companyID As String = db.ExecuteScalar(cmdText).ToString()
|
|||
|
|
|
|||
|
|
|
|||
|
|
'更新公共库数据库总表
|
|||
|
|
tableName = Manage.DbListTable.TableName
|
|||
|
|
condition = $"`{Manage.DbListTable.ColNamesEnum.DatabaseName}` = '{userDb}'"
|
|||
|
|
cmdText = db.CmdHelper.DbSearch(dbName, "count(*)", tableName, condition)
|
|||
|
|
If CInt(db.ExecuteScalar(cmdText)) > 0 Then
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Dim field2 As New Dictionary(Of String, String) From
|
|||
|
|
{
|
|||
|
|
{$"{Manage.DbListTable.ColNamesEnum.CompanyID}", companyID},
|
|||
|
|
{$"{Manage.DbListTable.ColNamesEnum.DatabaseName}", userDb},
|
|||
|
|
{$"{Manage.DbListTable.ColNamesEnum.DatabaseUser}", user},
|
|||
|
|
{$"{Manage.DbListTable.ColNamesEnum.DatabasePassword}", pwd},
|
|||
|
|
{$"{Manage.DbListTable.ColNamesEnum.DatabaseDesc}", ""}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
cmdText = db.CmdHelper.DbInsert(dbName, tableName, field2)
|
|||
|
|
db.ExecuteNonQuery(cmdText)
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub CreateProcedure(db As DbExecutor, dbName As String)
|
|||
|
|
'修改测试记录表字段存储过程
|
|||
|
|
Dim sqlCmd As New StringBuilder
|
|||
|
|
sqlCmd.Append($"Drop Procedure If Exists `{dbName}`.`AlterTestLogFiled`;" & vbCrLf)
|
|||
|
|
sqlCmd.Append($"Create Procedure `{dbName}`.`AlterTestLogFiled`(in dbName varchar(32),in tbName varchar(32),in filed varchar(32),in len int)" & vbCrLf)
|
|||
|
|
sqlCmd.Append("begin" & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE l_int int default 0;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE l_len int default 0;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE l_type varchar(16) default '';" & vbCrLf)
|
|||
|
|
sqlCmd.Append("select count(*),`DATA_TYPE`,`CHARACTER_MAXIMUM_LENGTH` into l_int,l_type,l_len from `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = dbName and TABLE_NAME = tbName and COLUMN_NAME = filed COLLATE utf8_general_ci;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if l_int = 0 then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = CONCAT('alter table ',dbName,'.',tbName,' add column ',filed,' varchar(',len,')');" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if l_type = 'varchar' and len > l_len then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = CONCAT('alter table ',dbName,'.',tbName,' modify column ',filed,' varchar(',len,')');" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end" & vbCrLf)
|
|||
|
|
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString)
|
|||
|
|
|
|||
|
|
|
|||
|
|
'Sn总表新增条码存储过程
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append($"Drop Procedure If Exists `{dbName}`.`AlterSnListBarcode`;" & vbCrLf)
|
|||
|
|
sqlCmd.Append($"Create Procedure `{dbName}`.`AlterSnListBarcode`(in orderid int,in orderinternalid int,in pid int,in code varchar(32),in sntype int)" & vbCrLf)
|
|||
|
|
sqlCmd.Append("begin " & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE l_int int default 0; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("select count(*) into l_int from `TBL_SnList` WHERE `BarCode` = code COLLATE utf8_general_ci; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("if l_int = 0 then " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = CONCAT('Insert into TBL_SnList(OrderID,OrderInternalID,ProductID,BarCode,SnType) values(',orderid,',',orderinternalid,',',pid,',''',code,''',',sntype,')'); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("end " & vbCrLf)
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString)
|
|||
|
|
|
|||
|
|
|
|||
|
|
'Sn总表更新条码测试记录存储过程-有MO
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append($"Drop Procedure If Exists `{dbName}`.`UpdateSnListBarcode_MO`;" & vbCrLf)
|
|||
|
|
|
|||
|
|
'2023-06-07 add MO'''''''''''
|
|||
|
|
'sqlCmd.Append($"Create Procedure `{dbName}`.`UpdateSnListBarcode`(in code varchar(32),in snOrder int,in startTime datetime,in result int,in a1String varchar(254))," & vbCrLf)
|
|||
|
|
sqlCmd.Append($"Create Procedure `{dbName}`.`UpdateSnListBarcode_MO`(in code varchar(32),in snOrder int,in startTime datetime,in result int,in a1String varchar(254),in MoId int)" & vbCrLf)
|
|||
|
|
''''''''''''''''''''''''''''''
|
|||
|
|
sqlCmd.Append("begin " & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE msg int default -1; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('select S',snOrder,',count(1) into @l_tm,@l_ct from `TBL_SnList` where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if @l_ct = 0 then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 0;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if @l_tm is null then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if char_length(a1String) = 0 then " & vbCrLf)
|
|||
|
|
'2023-06-07 add MO'''''''''''
|
|||
|
|
'sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,'''');" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set OrderInternalID=''',MoId,''',S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,'''');" & vbCrLf)
|
|||
|
|
''''''''''''''''''''''''''''''
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
'2023-06-07 add MO'''''''''''
|
|||
|
|
'sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set OrderInternalID=''',MoId,''',S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
''''''''''''''''''''''''''''''
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 1;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if startTime >= @l_tm then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if char_length(a1String) = 0 then " & vbCrLf)
|
|||
|
|
'2023-06-07 add MO'''''''''''
|
|||
|
|
'sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set OrderInternalID=''',MoId,''',S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
''''''''''''''''''''''''''''''
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
'2023-06-07 add MO'''''''''''
|
|||
|
|
'sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set OrderInternalID=''',MoId,''',S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
''''''''''''''''''''''''''''''
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 1;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 2;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("select msg;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end " & vbCrLf)
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString)
|
|||
|
|
|
|||
|
|
'Sn总表更新条码测试记录存储过程:无MO
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append($"Drop Procedure If Exists `{dbName}`.`UpdateSnListBarcode`;" & vbCrLf)
|
|||
|
|
|
|||
|
|
sqlCmd.Append($"Create Procedure `{dbName}`.`UpdateSnListBarcode`(in code varchar(32),in snOrder int,in startTime datetime,in result int,in a1String varchar(254))" & vbCrLf)
|
|||
|
|
sqlCmd.Append("begin " & vbCrLf)
|
|||
|
|
sqlCmd.Append("DECLARE msg int default -1; " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('select S',snOrder,',count(1) into @l_tm,@l_ct from `TBL_SnList` where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if @l_ct = 0 then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 0;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if @l_tm is null then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if char_length(a1String) = 0 then " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,'''');" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 1;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if startTime >= @l_tm then" & vbCrLf)
|
|||
|
|
sqlCmd.Append("if char_length(a1String) = 0 then " & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set @cmd = Concat('update `TBL_SnList` set S',snOrder,' = ''',startTime,''',Result',snOrder, ' = ',result,',AssemblySn = ''',a1String,''',AssemblyTime =''',startTime,''' where `BarCode` = ''',code,''''); " & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("PREPARE pre FROM @cmd;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("EXECUTE pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("deallocate prepare pre;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 1;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("else" & vbCrLf)
|
|||
|
|
sqlCmd.Append("set msg = 2;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end if;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("select msg;" & vbCrLf)
|
|||
|
|
sqlCmd.Append("end " & vbCrLf)
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub CreateDatabase(db As DbExecutor, dbName As String)
|
|||
|
|
Dim sqlCmd As New StringBuilder
|
|||
|
|
Dim tableName As String
|
|||
|
|
|
|||
|
|
'创建数据库
|
|||
|
|
UpdateInstallTip(55, $"创建数据库中...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append($"CREATE DATABASE IF NOT EXISTS {dbName};")
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(60, $"创建数据库完成!")
|
|||
|
|
|
|||
|
|
'创建数据库同步表
|
|||
|
|
UpdateInstallTip(65, $"创建同步表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append(SyncListTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(65, $"创建同步表完成!")
|
|||
|
|
|
|||
|
|
'创建数据库日志表
|
|||
|
|
UpdateInstallTip(65, $"创建日志表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
sqlCmd.Append(LogTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(65, $"创建日志表完成!")
|
|||
|
|
|
|||
|
|
'创建项目类型表
|
|||
|
|
UpdateInstallTip(65, $"创建项目类型表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = ProductTypesTable.TableName
|
|||
|
|
sqlCmd.Append(ProductTypesTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(65, $"创建项目类型表完成!")
|
|||
|
|
|
|||
|
|
'创建项目表
|
|||
|
|
UpdateInstallTip(70, $"创建项目表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = ProjectTable.TableName
|
|||
|
|
sqlCmd.Append(ProjectTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(70, $"创建项目表完成!")
|
|||
|
|
|
|||
|
|
'创建站位表
|
|||
|
|
UpdateInstallTip(70, $"创建站位表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = StationListTable.TableName
|
|||
|
|
sqlCmd.Append(StationListTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(70, $"创建站位表完成!")
|
|||
|
|
|
|||
|
|
'创建站包发布历史表
|
|||
|
|
UpdateInstallTip(70, $"创建站包发布历史表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = StationPacketReleaseLogTable.TableName
|
|||
|
|
sqlCmd.Append(StationPacketReleaseLogTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(70, $"创建站包发布历史表完成!")
|
|||
|
|
|
|||
|
|
'创建内部单表
|
|||
|
|
UpdateInstallTip(70, $"创建内部单表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = OrderInternalTable.TableName
|
|||
|
|
sqlCmd.Append(OrderInternalTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(70, $"创建内部单表完成!")
|
|||
|
|
|
|||
|
|
'创建订单表
|
|||
|
|
UpdateInstallTip(70, $"创建订单表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = OrdersTable.TableName
|
|||
|
|
sqlCmd.Append(OrdersTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(70, $"创建订单表完成!")
|
|||
|
|
|
|||
|
|
'创建产线表
|
|||
|
|
UpdateInstallTip(75, $"创建产线表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = ProductionLineTable.TableName
|
|||
|
|
sqlCmd.Append(ProductionLineTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建产线表完成!")
|
|||
|
|
|
|||
|
|
'创建生产计划表
|
|||
|
|
UpdateInstallTip(75, $"创建生产计划表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = ProductionPlanTable.TableName
|
|||
|
|
sqlCmd.Append(ProductionPlanTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建生产计划表完成!")
|
|||
|
|
|
|||
|
|
'创建产商客户表
|
|||
|
|
UpdateInstallTip(75, $"创建产商客户表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = VendorCustomerTable.TableName
|
|||
|
|
sqlCmd.Append(VendorCustomerTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建产商客户表完成!")
|
|||
|
|
|
|||
|
|
'创建序号总表
|
|||
|
|
UpdateInstallTip(75, $"创建序号总表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = SnListTable.TableName
|
|||
|
|
sqlCmd.Append(SnListTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName, "new"))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建序号总表完成!")
|
|||
|
|
|
|||
|
|
'创建序号关联信息总表
|
|||
|
|
UpdateInstallTip(75, $"创建序号关联信息总表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = ImportInfoTable.TableName
|
|||
|
|
sqlCmd.Append(ImportInfoTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName, "new"))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建序号关联信息总表完成!")
|
|||
|
|
|
|||
|
|
|
|||
|
|
'创建维修原因类型表
|
|||
|
|
UpdateInstallTip(75, $"创建维修原因类型表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RepairTypesTable.TableName
|
|||
|
|
sqlCmd.Append(RepairTypesTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建维修原因类型表完成!")
|
|||
|
|
|
|||
|
|
'创建维修原因表
|
|||
|
|
UpdateInstallTip(75, $"创建维修原因表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RepairReasonTable.TableName
|
|||
|
|
sqlCmd.Append(RepairReasonTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建维修原因表完成!")
|
|||
|
|
|
|||
|
|
'创建报修不良代码表
|
|||
|
|
UpdateInstallTip(75, $"创建报修不良代码表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RejectsExplainTable.TableName
|
|||
|
|
sqlCmd.Append(RejectsExplainTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建报修不良代码完成!")
|
|||
|
|
|
|||
|
|
'创建报修记录表
|
|||
|
|
UpdateInstallTip(75, $"创建报修记录表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RepairRequestTable.TableName
|
|||
|
|
sqlCmd.Append(RepairRequestTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建报修记录表完成!")
|
|||
|
|
|
|||
|
|
'创建维修结果表
|
|||
|
|
UpdateInstallTip(75, $"创建维修结果表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RepairResultTable.TableName
|
|||
|
|
sqlCmd.Append(RepairResultTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建维修结果表完成!")
|
|||
|
|
|
|||
|
|
|
|||
|
|
'创建维修记录表
|
|||
|
|
UpdateInstallTip(75, $"创建维修记录表...")
|
|||
|
|
sqlCmd.Clear()
|
|||
|
|
tableName = RepairLogTable.TableName
|
|||
|
|
sqlCmd.Append(RepairLogTable.CreateTableString(dbName, db.DatabaseType))
|
|||
|
|
sqlCmd.Append(SyncListTable.SyncTrigger(dbName, tableName))
|
|||
|
|
sqlCmd.Append(SyncListTable.AddSyncTableString(dbName, tableName))
|
|||
|
|
db.ExecuteNonQuery(sqlCmd.ToString())
|
|||
|
|
UpdateInstallTip(75, $"创建维修记录表完成!")
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub CreateVendorTables(lic As License)
|
|||
|
|
'生成对应数据库的对应数据表
|
|||
|
|
Dim connType As DbExecutor.DbTypeEnum = DbExecutor.DbTypeEnum.Mysql
|
|||
|
|
Dim connString As String = $"Server = {lic.MysqlServer};Port = {lic.MysqlPort};User id = {lic.MysqlUserID};Password = {lic.MysqlPassword};SslMode = none;Allow User Variables = True;"
|
|||
|
|
|
|||
|
|
UpdateInstallTip(45, $"连接数据库中...")
|
|||
|
|
Using db As New DbExecutor(connType, connString)
|
|||
|
|
db.Open()
|
|||
|
|
|
|||
|
|
UpdateInstallTip(50, $"连接数据库完成!")
|
|||
|
|
|
|||
|
|
UpdateInstallTip(51, $"创建客户数据库中...")
|
|||
|
|
Try
|
|||
|
|
CreateDatabase(db, lic.MysqlDatabase)
|
|||
|
|
UpdateInstallTip(80, $"创建客户数据库完成!")
|
|||
|
|
Catch ex As Exception
|
|||
|
|
Throw New Exception($"创建客户数据库失败,{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
Try
|
|||
|
|
CreateProcedure(db, lic.MysqlDatabase)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
Throw New Exception($"创建客户数据库存储过程失败,{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
UpdateInstallTip(81, $"注册客户中...")
|
|||
|
|
Try
|
|||
|
|
UpdateInstallTip(81, $"注册客户公司中...")
|
|||
|
|
UpdateCompanyTable(db, lic.PublicDb, lic.VendorName)
|
|||
|
|
UpdateInstallTip(85, $"注册客户公司中!")
|
|||
|
|
|
|||
|
|
UpdateInstallTip(86, $"注册客户数据库中...")
|
|||
|
|
UpdateDatabaseTable(db, lic.PublicDb, lic.VendorName, lic.MysqlDatabase, lic.MysqlUserID, lic.MysqlPassword)
|
|||
|
|
UpdateInstallTip(90, $"注册客户数据库完成!")
|
|||
|
|
Catch ex As Exception
|
|||
|
|
Throw New Exception($"注册客户失败,{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
db.Close()
|
|||
|
|
End Using
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub UpdateFormByLicense(lic As License)
|
|||
|
|
TxtVendorName.Text = lic.VendorName
|
|||
|
|
DtpExpirationDate.Value = Date.Parse(lic.ExpirationDate)
|
|||
|
|
|
|||
|
|
TxtRemoteServer.Text = lic.MysqlServer
|
|||
|
|
NudRemotePort.Value = CInt(lic.MysqlPort)
|
|||
|
|
TxtRemoteUser.Text = lic.MysqlUserID
|
|||
|
|
TxtRemotePwd.Text = lic.MysqlPassword
|
|||
|
|
TxtRemotePrivateDb.Text = lic.MysqlDatabase
|
|||
|
|
TxtRemotePublicDb.Text = lic.PublicDb
|
|||
|
|
|
|||
|
|
TxtLocalFileName.Text = lic.SqliteName
|
|||
|
|
TxtLocalPwd.Text = lic.SqlitePassword
|
|||
|
|
|
|||
|
|
TxtFtpHost.Text = lic.FtpHost
|
|||
|
|
NudFtpPort.Value = CInt(lic.FtpPort)
|
|||
|
|
TxtFtpUser.Text = lic.FtpUser
|
|||
|
|
TxtFtpPwd.Text = lic.FtpPwd
|
|||
|
|
|
|||
|
|
TxtMac.Text = lic.Mac
|
|||
|
|
TxtRemard.Text = lic.Remark
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub BtnLoad_Click(sender As Object, e As EventArgs) Handles BtnLoad.Click
|
|||
|
|
Dim licensePath As String
|
|||
|
|
Using openDlg As New OpenFileDialog
|
|||
|
|
openDlg.Title = $"请选择模板鉴权License文件的路径"
|
|||
|
|
openDlg.Filter = $"License文件(*.dat)|*.dat"
|
|||
|
|
If openDlg.ShowDialog() <> DialogResult.OK Then Return
|
|||
|
|
licensePath = openDlg.FileName
|
|||
|
|
End Using
|
|||
|
|
|
|||
|
|
Try
|
|||
|
|
Dim lic As New License(licensePath)
|
|||
|
|
UpdateFormByLicense(lic)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
MsgBox($"Load license file error:{ex.Message}")
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub UpdateProgressBar(value As Integer)
|
|||
|
|
TsPrgInstall.Value = value
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub UpdateInstallLog(value As Integer, log As String)
|
|||
|
|
If value = 0 Then RtxTip.Clear()
|
|||
|
|
|
|||
|
|
RtxTip.AppendText($"[{value,3}%]-[{Now}]{log}{vbCrLf}")
|
|||
|
|
RtxTip.ScrollToCaret()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub UpdateInstallTip(value As Integer, str As String)
|
|||
|
|
UpdateProgressBar(value)
|
|||
|
|
|
|||
|
|
UpdateInstallLog(value, str)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|||
|
|
Text = $"{Application.ProductName} {Application.ProductVersion}"
|
|||
|
|
|
|||
|
|
DtpExpirationDate.Value = Now.AddMonths(6)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub GroupBox2_Enter(sender As Object, e As EventArgs) Handles GroupBox2.Enter
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
End Class
|