qrmode 에서 wms rcv 태그 인식되게 함
This commit is contained in:
@@ -1,187 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public static class AmkorReelID
|
||||
{
|
||||
/// <summary>
|
||||
/// 앰코 ID형태인지 확인합니다.
|
||||
/// </summary>
|
||||
/// <param name="rid"></param>
|
||||
/// <param name="yy"></param>
|
||||
/// <param name="m"></param>
|
||||
/// <returns></returns>
|
||||
public static Boolean IsValidID(string rid, out string yy, out string m)
|
||||
{
|
||||
yy = string.Empty;
|
||||
m = string.Empty;
|
||||
if (rid.Length != 15) return false;
|
||||
try
|
||||
{
|
||||
var custCost = rid.Substring(2, 4);
|
||||
var site = "K" + rid.Substring(6, 1);
|
||||
var mc = rid.Substring(7, 1);
|
||||
yy = rid.Substring(8, 2);
|
||||
m = rid.Substring(10, 1);
|
||||
var sn = rid.Substring(11, 4);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static string MakeReelID(string customercode, string ym)
|
||||
{
|
||||
if (customercode.Length != 4)
|
||||
{
|
||||
return String.Empty;//
|
||||
//throw new Exception("Customer 코드는 4자리 입니다");
|
||||
}
|
||||
if (ym.Length != 3)
|
||||
{
|
||||
return string.Empty;//
|
||||
//throw new Exception("Ym 코드는 3자리 입니다");
|
||||
}
|
||||
var rid = "RC{CUST}{DEVLOC}{DEVID}{YM}";
|
||||
rid = rid.Replace("{DEVLOC}", AR.SETTING.Data.ReelIdDeviceLoc);
|
||||
rid = rid.Replace("{DEVID}", AR.SETTING.Data.ReelIdDeviceID);
|
||||
rid = rid.Replace("{CUST}", customercode);
|
||||
rid = rid.Replace("{YM}", ym);
|
||||
rid += GetNextSNbyYM(ym);
|
||||
return rid;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 입력된 월 기준으로 시리얼 번호를 생성합니다
|
||||
/// </summary>
|
||||
/// <param name="ym">21년 1월의 경우 211, 10월의 경우 21A 식으로 표현</param>
|
||||
/// <param name="removeR">1,2번 위치에 R기호를 제거 할 것인가?</param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbyYM(string ym)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
var db = new EEEntities();
|
||||
var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.Contains("R") == false).OrderByDescending(t => t.RSN).FirstOrDefault();
|
||||
if (dr == null) return "0001"; //처음쓰는 자료인다.
|
||||
var curSN = dr.RSN;
|
||||
return GetNextSNbySN(curSN);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 해당월의 리턴릴의 번호를 생성한다
|
||||
/// </summary>
|
||||
/// <param name="ym"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbyYM_Return(string ym)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
var db = new EEEntities();
|
||||
var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("R")).OrderByDescending(t => t.RSN).FirstOrDefault();
|
||||
if (dr == null) return "R001"; //처음쓰는 자료인다.
|
||||
var curSN = dr.RSN;
|
||||
return GetNextSNbySN_Return(curSN);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 중복릴의 다은번호를 생성한다
|
||||
/// </summary>
|
||||
/// <param name="ym"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbyYM_Dup(string ym)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
var db = new EEEntities();
|
||||
var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("0R")).OrderByDescending(t => t.RSN).FirstOrDefault();
|
||||
if (dr == null) return "0R01"; //처음쓰는 자료인다.
|
||||
var curSN = dr.RSN;
|
||||
return GetNextSNbySN_Dup(curSN);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 입력한 시리얼 번호 이후의 번호를 생성합니다(0000~ZZZZ) 까지의 데이터를 가지며 2번쨰짜리까지는 R을 사용하지 못한다
|
||||
/// </summary>
|
||||
/// <param name="sn">기준 시리얼번호 4자리</param>
|
||||
/// <param name="removeR"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbySN(string sn)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
string curSN = sn;
|
||||
if (sn.Length != 4) throw new Exception("s/n length 4");
|
||||
|
||||
var buffer = curSN.ToCharArray();
|
||||
for (int i = buffer.Length; i > 0; i--)
|
||||
{
|
||||
if (i <= 2)
|
||||
if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R';
|
||||
|
||||
if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; }
|
||||
else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0';
|
||||
else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; }
|
||||
}
|
||||
return string.Join("", buffer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 리턴릴의 다음 번호 생성 R로시작하며 000~ZZZ 영역을 가진다(제외문자 없음)
|
||||
/// </summary>
|
||||
/// <param name="sn"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbySN_Return(string sn)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
string curSN = sn;
|
||||
if (sn.Length != 4) throw new Exception("s/n length 4");
|
||||
|
||||
var buffer = curSN.ToCharArray();
|
||||
for (int i = buffer.Length; i > 1; i--)
|
||||
{
|
||||
//if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다.
|
||||
//{
|
||||
// if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R';
|
||||
//}
|
||||
|
||||
if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; }
|
||||
else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0';
|
||||
else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; }
|
||||
}
|
||||
buffer[0] = 'R';
|
||||
return string.Join("", buffer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 중복릴의 다음 번호 생성(0R로 시작하며 00~ZZ의 영역을 가진다)
|
||||
/// </summary>
|
||||
/// <param name="sn"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetNextSNbySN_Dup(string sn)
|
||||
{
|
||||
//서버에서 자료를 조회해서 처리한다.
|
||||
string curSN = sn;
|
||||
if (sn.Length != 4) throw new Exception("s/n length 4");
|
||||
|
||||
var buffer = curSN.ToCharArray();
|
||||
for (int i = buffer.Length; i > 2; i--)
|
||||
{
|
||||
//if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다.
|
||||
//{
|
||||
// if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R';
|
||||
//}
|
||||
|
||||
if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; }
|
||||
else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0';
|
||||
else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; }
|
||||
}
|
||||
buffer[0] = '0';
|
||||
buffer[1] = 'R';
|
||||
return string.Join("", buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AR;
|
||||
|
||||
/// <summary>
|
||||
/// ============================================================================
|
||||
@@ -223,7 +224,9 @@ public static partial class EEMStatus
|
||||
}
|
||||
else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다,
|
||||
{
|
||||
if (PUB.Result.ResultErrorCode == eECode.USER_STEP || PUB.Result.ResultErrorCode == eECode.USER_STOP || PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE"))
|
||||
if (PUB.Result.ResultErrorCode == Project.eECode.USER_STEP ||
|
||||
PUB.Result.ResultErrorCode == Project.eECode.USER_STOP ||
|
||||
PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE"))
|
||||
{
|
||||
//사용자에의해 멈추는 것은 오류코드를 넣지 않는다.
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Text;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using System.Web.Services.Protocols;
|
||||
using AR;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@ using System.Drawing;
|
||||
using System.Collections.Concurrent;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using AR;
|
||||
|
||||
namespace Project.Class
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user