qrmode 에서 wms rcv 태그 인식되게 함
This commit is contained in:
@@ -23,7 +23,7 @@ namespace Project
|
||||
{
|
||||
var bg1 = lbl.BackColor;
|
||||
var bg2 = lbl.BackColor2;
|
||||
lbl.BackColor = bg2;
|
||||
if(bg2 != null) lbl.BackColor = (Color)bg2;
|
||||
lbl.BackColor2 = bg1;
|
||||
lbl.Invalidate();
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace Project
|
||||
var conv = VAR.BOOL[eVarBool.Use_Conveyor];
|
||||
if (conv)
|
||||
{
|
||||
var sidinfo = await PUB.UpdateSIDInfoByECS();
|
||||
var sidinfo = await PUB.UpdateSIDInfo();
|
||||
var systembypass = SETTING.Data.SystemBypass;
|
||||
if (systembypass == false && sidinfo.Item1 == false)
|
||||
{
|
||||
|
||||
@@ -343,111 +343,6 @@ namespace Project
|
||||
}
|
||||
}
|
||||
|
||||
//데이터가 충족되면 오류처리한다.
|
||||
if (PUB.Result.ItemDataC.VisionData.SID.isEmpty() == false && PUB.Result.ItemDataC.VisionData.BATCH.isEmpty() == false)
|
||||
{
|
||||
|
||||
//ecs on 컨베이어때만 사용한다
|
||||
bool warndata = false;
|
||||
if (SETTING.Data.ECSSkip == false && CVMode)
|
||||
{
|
||||
//모두 찾은상태에서는 활성화여부를 추가 확인한다.
|
||||
var sid = PUB.Result.ItemDataC.VisionData.SID;// item.VisionData.SID;
|
||||
var bat = PUB.Result.ItemDataC.VisionData.BATCH;// item.VisionData.BATCH;
|
||||
|
||||
//현 시점의 활성화 목록을 가져온다
|
||||
var activelist = PUB.GetECSActiveSIDList();
|
||||
|
||||
//해당sid+bat 가 활성화된것인지 확인한다.
|
||||
bool active = false;
|
||||
string active_sid = "";
|
||||
string active_bat = "";
|
||||
var sidorder = 0;
|
||||
var sidx = 0;
|
||||
foreach (var actItem in activelist)
|
||||
{
|
||||
if (actItem.Item3 != SETTING.Data.McName) continue;
|
||||
|
||||
if (actItem.Item4)
|
||||
{
|
||||
if (active_sid.isEmpty())
|
||||
{
|
||||
active_sid = actItem.Item1;
|
||||
active_bat = actItem.Item2;
|
||||
PUB.log.Add($"act 목록에서 활성화코드 확인:{active_sid},bat:{active_bat}");
|
||||
}
|
||||
}
|
||||
|
||||
if (actItem.Item1.Equals(sid) && actItem.Item2.Equals(bat))
|
||||
{
|
||||
active = actItem.Item4;
|
||||
sidorder = sidx; //순서를 저장한다. 0부터 시작하는값이다.
|
||||
}
|
||||
|
||||
//내 장비에 한해서 순서를 결정한다.
|
||||
//if (actItem.Item3 == SETTING.Data.McName)
|
||||
sidx += 1;
|
||||
}
|
||||
|
||||
//활성화된 sid가 아니다
|
||||
if (active == false)
|
||||
{
|
||||
if (sidorder > 1) //2번째는 무조건 에러
|
||||
{
|
||||
PUB.log.AddE($"active sid 아니고 {sidorder + 1}번 항목이므로 오류 처리한다.");
|
||||
warndata = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//활성sid의 작업데이터가있으면 ok
|
||||
var qa = new DataSet1TableAdapters.QueriesTableAdapter();
|
||||
var existreadat = qa.GetIBResultCountBySIDBatch(DateTime.Now.AddHours(-6), active_sid, active_bat) > 0;
|
||||
|
||||
//활성sid의 작업데이터가있으면 ok
|
||||
if (existreadat)
|
||||
{
|
||||
PUB.log.AddAT($"active sid 는 아니지만 활성sid({active_sid},batch:{active_bat}) 의 기록이 있어 진행 합니다");
|
||||
warndata = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.AddE($"active sid 아니고 활성sid({active_sid},batch:{active_bat}) 의 기록이 없어 진행 불가");
|
||||
warndata = true;
|
||||
}
|
||||
//없으면 ng
|
||||
}
|
||||
}
|
||||
|
||||
//오류발생조건이나, 이미 발생했다면 처리하지 않는다.
|
||||
if (warndata)
|
||||
{
|
||||
if (warninactivelist.Contains(sid + bat) == false)
|
||||
{
|
||||
warninactivelist.Add(sid + bat);
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.AddAT($"이미 경고한 sid+bqt이므로 넘어갑니다({sid}{bat})");
|
||||
warndata = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (warndata)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOECSDATAACTIVE, eNextStep.PAUSE, item.VisionData.SID, item.VisionData.BATCH);
|
||||
if (ShowUserForm)
|
||||
{
|
||||
//오류로 인해 사용자 확인창을 표시하지 않습니다.
|
||||
ShowUserForm = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//사용자 확인창을 표시한다
|
||||
if (ShowUserForm)
|
||||
{
|
||||
@@ -1042,43 +937,27 @@ namespace Project
|
||||
|
||||
bool rlt = false;
|
||||
string errmsg = string.Empty;
|
||||
//var systembypassmode = SETTING PUB.Result.vModel.Title.Equals("BYPASS");
|
||||
|
||||
if (CVMode == true && SETTING.Data.SystemBypass == false)
|
||||
//var systembypassmode = SETTING PUB.Result.vModel.Title.Equals("BYPASS"); CVMode == true &&
|
||||
if (SETTING.Data.SystemBypass == false)
|
||||
{
|
||||
rlt = Amkor.RestfulService.Inbound_label_attach_reel_info(reelinfo, out errmsg);
|
||||
PUB.log.AddE("WAS전송" + (rlt ? "성공" : "실패") + $":{errmsg}");
|
||||
rlt = PUB.UpdateWMS(item.VisionData); //rlt = Amkor.RestfulService.Inbound_label_attach_reel_info(reelinfo, out errmsg);
|
||||
PUB.log.AddE("WMS전송" + (rlt ? "성공" : "실패") + $":{errmsg}");
|
||||
if (rlt == false) //230927 - 오류발생시
|
||||
{
|
||||
if (errmsg.Contains("LABEL_ID is duplicate") && SETTING.Data.InboundWebService_RID_DupSKIP)
|
||||
{
|
||||
PUB.log.AddAT($"환경설정에서 인바운드API 중복 오류가 무시됨");
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.INBOUNDWEBAPIERROR, eNextStep.PAUSE, target, errmsg);
|
||||
return false; ;
|
||||
}
|
||||
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.INBOUNDWEBAPIERROR, eNextStep.PAUSE, target, errmsg);
|
||||
return false; ;
|
||||
}
|
||||
}
|
||||
else if (CVMode == false)
|
||||
{
|
||||
//카트모드에서는 처리하지 않는다.
|
||||
rlt = true;
|
||||
errmsg = string.Empty;
|
||||
PUB.log.AddAT($"cart mode 로 인해 inbound 저장 안함");
|
||||
}
|
||||
else
|
||||
{
|
||||
errmsg = "bypass";
|
||||
rlt = false;
|
||||
PUB.log.AddAT($"System bytpass 로 인해 inbound 저장 안함");
|
||||
PUB.log.AddAT($"System bytpass 로 인해 WMS 저장 안함");
|
||||
}
|
||||
if (errmsg.Length > 190) errmsg = errmsg.Substring(0, 190); //230810 maxlength error
|
||||
SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg),"root_sequence");
|
||||
SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg), "root_sequence");
|
||||
//RefreshList(); //목록업데이트
|
||||
EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620
|
||||
|
||||
PUB.sm.seq.Update(cmdIndex);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -187,16 +187,16 @@ namespace Project
|
||||
//릴Id 신규부여
|
||||
if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_NewReelID])
|
||||
{
|
||||
if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false)
|
||||
if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false && itemC.VisionData.SID.isEmpty() == false)
|
||||
{
|
||||
var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
|
||||
if (newid.isEmpty() == false)
|
||||
var newid = PUB.MakeNewREELID(itemC.VisionData.SID);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
|
||||
if (newid.success == true)
|
||||
{
|
||||
//backup origin reel id
|
||||
itemC.VisionData.RID0 = itemC.VisionData.RID;
|
||||
|
||||
//set new reel id
|
||||
itemC.VisionData.SetRID(newid, "SPS:CHKDATACOMPLETE");// = newid;
|
||||
itemC.VisionData.SetRID(newid.newid, "SPS:CHKDATACOMPLETE");// = newid;
|
||||
itemC.VisionData.RIDNew = true; //applied new reel id
|
||||
|
||||
//서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함)
|
||||
@@ -216,7 +216,7 @@ namespace Project
|
||||
var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR);
|
||||
if (logtime.TotalSeconds >= 3000)
|
||||
{
|
||||
PUB.log.AddAT($"Reel_ID 생성실패 : {errmsg}");
|
||||
PUB.log.AddAT($"Reel_ID 생성실패 : {newid.message}");
|
||||
VAR.TIME.Update(eVarTime.LOG_NEWIDERROR);
|
||||
}
|
||||
}
|
||||
@@ -331,8 +331,12 @@ namespace Project
|
||||
//수량원본이 없는 경우
|
||||
if (item.VisionData.QTY0.isEmpty())
|
||||
{
|
||||
string msg;
|
||||
var cnt = (int)(Amkor.RestfulService.get_stock_count(item.VisionData.RID, out msg));
|
||||
string msg= "서버 수량 업데이트 기능은 WMS에 적용되지 않음, 필요한 경우 개발자 컨택";
|
||||
var cnt = 0;// (int)(Amkor.RestfulService.get_stock_count(item.VisionData.RID, out msg));
|
||||
if(mainjob)
|
||||
{
|
||||
PUB.log.AddE("서버 수량 업데이트 기능은 WMS에 적용되지 않음, 필요한 경우 개발자 컨택");
|
||||
}
|
||||
if (cnt > 0)
|
||||
{
|
||||
//새로받은 데이터를 실제 수량에 추가한다
|
||||
@@ -570,7 +574,7 @@ namespace Project
|
||||
// active_sid = actItem.Item1;
|
||||
// active_bat = actItem.Item2;
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
|
||||
// if (actItem.Item1.Equals(sid) && actItem.Item2.Equals(bat))
|
||||
@@ -633,11 +637,11 @@ namespace Project
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
if (PUB.Result.ItemDataC.VisionData.ConfirmAuto == false)
|
||||
{
|
||||
PUB.logDbg.Add($"비젼 자동 확정 처리 {Source}");
|
||||
PUB.Result.ItemDataC.VisionData.ConfirmAuto = true;
|
||||
}
|
||||
if (PUB.Result.ItemDataC.VisionData.ConfirmAuto == false)
|
||||
{
|
||||
PUB.logDbg.Add($"비젼 자동 확정 처리 {Source}");
|
||||
PUB.Result.ItemDataC.VisionData.ConfirmAuto = true;
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -655,9 +659,9 @@ namespace Project
|
||||
if (item.VisionData.PARTNO.isEmpty()) item.VisionData.PARTNO = "PARTNO" + DateTime.Now.ToString("yyyyMMddHHmmss.fff");
|
||||
if (item.VisionData.RID.isEmpty())
|
||||
{
|
||||
var rid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD("1234", "4", "A", out string err);
|
||||
if (rid.isEmpty()) item.VisionData.SetRID("RID" + DateTime.Now.ToString("yyyyMMddHHmmss.fff"), "DRY");
|
||||
else item.VisionData.SetRID(rid, "DRY");
|
||||
var newid = PUB.MakeNewREELID(item.VisionData.SID);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD("1234", "4", "A", out string err);
|
||||
if (newid.success == false) item.VisionData.SetRID("RID" + DateTime.Now.ToString("yyyyMMddHHmmss.fff"), "DRY");
|
||||
else item.VisionData.SetRID(newid.newid, "DRY");
|
||||
}
|
||||
if (item.VisionData.PrintPositionData.isEmpty()) item.VisionData.PrintPositionData = "2";
|
||||
item.VisionData.PrintPositionCheck = true;
|
||||
|
||||
@@ -249,7 +249,6 @@ namespace Project
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////New ReelID
|
||||
/// this process run ( 3_keyence_read.cs )
|
||||
//if (VAR.BOOL[eVarBool.Opt_NewReelID) && PUB.sm.isRunning)
|
||||
@@ -277,14 +276,14 @@ namespace Project
|
||||
{
|
||||
if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false)
|
||||
{
|
||||
var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
|
||||
if (newid.isEmpty() == false)
|
||||
var newid = PUB.MakeNewREELID(vdata.SID);// Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg);
|
||||
if (newid.success)
|
||||
{
|
||||
//backup origin reel id
|
||||
itemC.VisionData.RID0 = itemC.VisionData.RID;
|
||||
|
||||
//set new reel id
|
||||
itemC.VisionData.SetRID(newid, "SPS:CHKDATACOMPLETE");// = newid;
|
||||
itemC.VisionData.SetRID(newid.newid, "SPS:CHKDATACOMPLETE");// = newid;
|
||||
itemC.VisionData.RIDNew = true; //applied new reel id
|
||||
|
||||
//서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함)
|
||||
@@ -304,7 +303,7 @@ namespace Project
|
||||
var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR);
|
||||
if (logtime.TotalSeconds >= 3000)
|
||||
{
|
||||
PUB.log.AddAT($"Reel_ID 생성실패 : {errmsg}");
|
||||
PUB.log.AddAT($"Reel_ID 생성실패 : {newid.message}");
|
||||
VAR.TIME.Update(eVarTime.LOG_NEWIDERROR);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user