/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/lcm/palletid.ashx
260 строк
10 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
<%@ WebHandler Language="VB" Class="PalletID" %> Imports sharedClasses.dbFunctions Imports System.Net Imports System.IO Imports Newtonsoft.Json Imports System.Data Public Class PalletID : Implements IHttpHandler Private sqlf As New SqlFunctions Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest Dim carton As String = context.Request("carton") context.Response.ContentType = "text/plain" If Not IsNothing(carton) Then context.Response.Write(getCartonInfo(carton)) Else context.Response.Write("use correct request format. Ex.: /LCM/PalletID.ashx?carton=CARP630J71004369") End If context.Response.End() End Sub Private Function getCartonInfo(carton As String) As String Dim resp As String = "" Select Case carton.Substring(0, 2) Case "00" 'GERP - SESK resp = getGERPData(carton) 'Case "50" 'GERP - SESK ' resp = getGERPData(carton) Case "SL" 'SHIELD - SEH resp = getSHIELDData(carton) Case Else 'OTHER - SUPPOSE GMES resp = getGMESData(carton) End Select Return resp End Function Private Function getGERPData(carton As String) As String 'Run WA script> Dim dt As System.Data.DataTable Dim com As New System.Data.SqlClient.SqlCommand com.CommandText = "SELECT CARTON_NO, VENDOR, MODEL, PART_NO, SN, PROD_DATE from usermodules.[user].vendor_panel_packing_info WHERE CARTON_NO = @CARTON_NO " com.Parameters.AddWithValue("CARTON_NO", carton) dt = sqlf.GetData(com) If Not IsNothing(dt) Then dt.TableName = carton Dim writer As New System.IO.StringWriter() dt.WriteXml(writer, XmlWriteMode.WriteSchema, False) getGERPData = writer.ToString Else getGERPData = "" End If End Function Private Function getGMESData(carton As String) As String Dim wb As WebRequest Dim url As String = "http://o3.serk.lan/api/gmes_api/getCartonInfo?cartonNo=" & carton '"http://o3.serk.lan/api/gmes_api/getCartonInfo?cartonNo=CARP630J71004369" wb = WebRequest.Create(url) Dim res As WebResponse = wb.GetResponse Dim sr As New StreamReader(res.GetResponseStream) Dim resp As String = "" resp = sr.ReadToEnd() Dim dt As System.Data.DataTable = JsonConvert.DeserializeObject(Of System.Data.DataTable)(resp) dt.TableName = carton Dim com As New System.Data.SqlClient.SqlCommand com.CommandText = "INSERT INTO usermodules.[user].vendor_panel_packing_info (CARTON_NO, VENDOR, MODEL, PART_NO, SN, PROD_DATE, [TYPE]) " & "values (@CARTON_NO, @VENDOR, @MODEL, @PART_NO, @SN, @PROD_DATE, 'GMES')" Dim preparedDt As New DataTable With {.TableName = carton} preparedDt.Columns.Add("CARTON_NO") preparedDt.Columns.Add("VENDOR") preparedDt.Columns.Add("MODEL") preparedDt.Columns.Add("PART_NO") preparedDt.Columns.Add("SN") preparedDt.Columns.Add("PROD_DATE") With com.Parameters For Each dr As DataRow In dt.Rows Dim drr As DataRow = preparedDt.NewRow drr("CARTON_NO") = dr("cartonNo") .AddWithValue("CARTON_NO", drr("CARTON_NO")) Dim sn As String = dr("prodcMagtNo").ToString Select Case sn.Substring(0, 2) Case "CN" drr("VENDOR") = "TSEC" Case "EG" drr("VENDOR") = "SEEG" Case "HU" drr("VENDOR") = "SEH" Case "SK" drr("VENDOR") = "SESK" Case "KR" drr("VENDOR") = "SEC" Case "VN" drr("VENDOR") = "SEHC" Case Else drr("VENDOR") = "OTHR" End Select .AddWithValue("VENDOR", drr("VENDOR")) drr("MODEL") = "" .AddWithValue("MODEL", "") drr("PART_NO") = sn.Substring(4, 4) & "-" & sn.Substring(8, 6) .AddWithValue("PART_NO", drr("PART_NO")) drr("SN") = sn .AddWithValue("SN", drr("SN")) drr("PROD_DATE") = decodeEpassDate(sn) .AddWithValue("PROD_DATE", drr("PROD_DATE")) preparedDt.Rows.Add(drr) sqlf.NonQuery(com) .Clear() Next End With Dim writer As New System.IO.StringWriter() preparedDt.WriteXml(writer, XmlWriteMode.WriteSchema, False) resp = writer.ToString Return resp End Function Private Function getSHIELDData(carton As String) As String Dim wb As WebRequest Dim url As String = "http://106.114.87.86:888/?info=" & carton '"http://106.114.87.86:888/?info=SL170600012575" wb = WebRequest.Create(url) Dim res As WebResponse = wb.GetResponse Dim sr As New StreamReader(res.GetResponseStream) Dim resp As String = "" resp = sr.ReadToEnd() Dim dt As System.Data.DataTable = JsonConvert.DeserializeObject(Of System.Data.DataTable)(resp) dt.TableName = carton Dim com As New System.Data.SqlClient.SqlCommand com.CommandText = "INSERT INTO usermodules.[user].vendor_panel_packing_info (CARTON_NO, VENDOR, MODEL, PART_NO, SN, PROD_DATE, [TYPE]) " & "values (@CARTON_NO, @VENDOR, @MODEL, @PART_NO, @SN, @PROD_DATE, 'SHIELD')" Dim preparedDt As New DataTable With {.TableName = carton} preparedDt.Columns.Add("CARTON_NO") preparedDt.Columns.Add("VENDOR") preparedDt.Columns.Add("MODEL") preparedDt.Columns.Add("PART_NO") preparedDt.Columns.Add("SN") preparedDt.Columns.Add("PROD_DATE") With com.Parameters For Each dr As DataRow In dt.Rows Dim drr As DataRow = preparedDt.NewRow drr("CARTON_NO") = dr("carton_no") .AddWithValue("CARTON_NO", drr("CARTON_NO")) drr("VENDOR") = "SEH" .AddWithValue("VENDOR", drr("VENDOR")) drr("MODEL") = "" .AddWithValue("MODEL", "") drr("PART_NO") = dr("model") .AddWithValue("PART_NO", drr("PART_NO")) drr("SN") = dr("sn") .AddWithValue("SN", drr("SN")) drr("PROD_DATE") = dr("prod_date") .AddWithValue("PROD_DATE", drr("PROD_DATE")) preparedDt.Rows.Add(drr) sqlf.NonQuery(com) .Clear() Next End With Dim writer As New System.IO.StringWriter() preparedDt.WriteXml(writer, XmlWriteMode.WriteSchema, False) resp = writer.ToString Return resp End Function Private Function decodeEpassDate(epass As String) As String Dim ymd As String = epass.Substring(18, 3) Dim year As String = "" Dim month As String = "" Dim day As String = "" Select Case ymd.Substring(0, 1) Case "S" : year = "2009" Case "Z" : year = "2010" Case "B" : year = "2011" Case "C" : year = "2012" Case "D" : year = "2013" Case "F" : year = "2014" Case "G" : year = "2015" Case "H" : year = "2016" Case "J" : year = "2017" Case "K" : year = "2018" Case "M" : year = "2019" Case "N" : year = "2020" Case Else year = "ND_" & ymd.Substring(0, 1) End Select Select Case ymd.Substring(1, 1) Case "1" : month = "01" Case "2" : month = "02" Case "3" : month = "03" Case "4" : month = "04" Case "5" : month = "05" Case "6" : month = "06" Case "7" : month = "07" Case "8" : month = "08" Case "9" : month = "09" Case "A" : month = "10" Case "B" : month = "11" Case "C" : month = "12" Case Else month = "_" & ymd.Substring(1, 1) End Select Select Case ymd.Substring(2, 1) Case "1" : day = "01" Case "2" : day = "02" Case "3" : day = "03" Case "4" : day = "04" Case "5" : day = "05" Case "6" : day = "06" Case "7" : day = "07" Case "8" : day = "08" Case "9" : day = "09" Case "A" : day = "10" Case "B" : day = "11" Case "C" : day = "12" Case "D" : day = "13" Case "E" : day = "14" Case "F" : day = "15" Case "G" : day = "16" Case "H" : day = "17" Case "J" : day = "18" Case "K" : day = "19" Case "L" : day = "20" Case "M" : day = "21" Case "N" : day = "22" Case "P" : day = "23" Case "R" : day = "24" Case "S" : day = "25" Case "T" : day = "26" Case "V" : day = "27" Case "W" : day = "28" Case "X" : day = "29" Case "Y" : day = "30" Case "Z" : day = "31" Case Else day = "_" & ymd.Substring(2, 1) End Select decodeEpassDate = year & month & day End Function Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return False End Get End Property End Class