Files
ATV_STDLabelAttach/Handler/Project/RunCode/RunSequence/90_SaveData.cs
2025-09-09 17:24:19 +09:00

147 lines
6.4 KiB
C#

using AR;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace Project
{
public partial class FMain
{
delegate void savedataeehandler(Class.JobData item, string Loc, string inboundok, string reason);
public void SaveData_EE(Class.JobData item, string Loc, string inboundok, string reason)
{
if (this.InvokeRequired)
{
//이자료를 복사해서 데이터를 넘겨줘야한다.
var a = new Class.JobData(999);
item.CopyTo(ref a);
this.BeginInvoke(new savedataeehandler(SaveData_EE), a, Loc, inboundok, reason);
return;
}
var retval = false;
if (AR.SETTING.Data.OnlineMode == false)
{
PUB.log.AddAT($"[SAVE-EE] Not saving in offline mode");
return;
}
DateTime savestart = DateTime.Now;
try
{
var save_month = DateTime.Now.ToString("YY") + DateTime.Now.Month.ToString("X");
var save_sn = string.Empty;
if (item.VisionData.RID.Length == 15)
{
save_month = item.VisionData.RID.Substring(8, 3); //21A 식으로 년도와 월이 나온다
save_sn = item.VisionData.RID.Substring(item.VisionData.RID.Length - 4); //뒷에서 4자리 끊는다
}
//var Jobtype = VAR.STR[eVarString.JOB_TYPE];
//var ByPassMode = Jobtype == "BP";
var CVMode = VAR.BOOL[eVarBool.Use_Conveyor];
//option check
//var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target);
//var OPT_CameraOff = PUB.OPT_CAMERA(target);
var OPT_BYPASS = SETTING.Data.SystemBypass;// PUB.OPT_BYPASS(target);
using (var taResult = new DataSet1TableAdapters.K4EE_Component_Reel_ResultTableAdapter())
{
//QTY 0값은 없을 수도있다(해당 값은 서버조회여부에다라 다르다)
int? qtyorg = null;
if (int.TryParse(item.VisionData.QTY0, out int vqty0))
qtyorg = vqty0;
string remark = string.Empty;
if (item.VisionData.ConfirmAuto) remark = "[자동]" + remark; //자동확인문구
else if (item.VisionData.ConfirmUser) remark = "[확인]" + remark; //사용자 확인데이터 비고에 추가
if (OPT_BYPASS) remark = "(BYPASS)" + remark;
DataSet1.K4EE_Component_Reel_ResultRow newdr = this.dataSet1.K4EE_Component_Reel_Result.Where(t => t.JGUID.Equals(item.guid)).FirstOrDefault();
if (newdr == null) newdr = this.dataSet1.K4EE_Component_Reel_Result.NewK4EE_Component_Reel_ResultRow();
//else newdr = dt.Rows[0] as DataSet1.Component_Reel_ResultRow;
if (item.JobStart.Year != 1982) newdr.STIME = item.JobStart;
else newdr.STIME = DateTime.Now;
if (item.JobEnd.Year != 1982) newdr.ETIME = item.JobEnd;
if (item.PrintTime.Year != 1982) newdr.PTIME = item.PrintTime;
newdr.ATIME = item.Attachtime;
newdr.PDATE = save_month;
newdr.JTYPE = PUB.Result.vModel.Title;// PUB.Result.JobType2;
if (newdr.JTYPE.Length > 10) newdr.JTYPE = newdr.JTYPE.Substring(0, 9);
newdr.SID = item.VisionData.SID;
newdr.SID0 = item.VisionData.SID0;
newdr.RID = item.VisionData.RID;
newdr.RID0 = item.VisionData.RID0;
newdr.RSN = save_sn;
newdr.QR = item.VisionData.PrintQRData;
newdr.ZPL = item.VisionData.ZPL;
newdr.POS = item.VisionData.PrintPositionData;
newdr.LOC = Loc;
newdr.ANGLE = item.VisionData.ApplyAngle;
if (int.TryParse(item.VisionData.QTY, out int oqty))
newdr.QTY = oqty;
else
newdr.QTY = 0;
newdr.MFGDATE = item.VisionData.MFGDATE;//210326 날짜도 추가함
if (qtyorg != null) newdr.QTY0 = (int)qtyorg;
newdr.VNAME = item.VisionData.VNAME;
newdr.VLOT = item.VisionData.VLOT; ///210326
newdr.PRNATTACH = item.PrintAttach;
newdr.PRNVALID = item.PrintQRValid;
newdr.REMARK = remark;
if (inboundok.isEmpty() == false) newdr.iNBOUND = inboundok;//230622
newdr.MC = AR.SETTING.Data.McName;
newdr.PARTNO = item.VisionData.PARTNO;
newdr.CUSTCODE = item.VisionData.CUSTCODE;
newdr.MCN = item.VisionData.MCN;
newdr.target = item.VisionData.Target;
//220921 - batch qtymax
newdr.BATCH = item.VisionData.BATCH;
if (int.TryParse(item.VisionData.QTYMAX, out int qtymax))
newdr.qtymax = qtymax;
else newdr.qtymax = -1;
//new mode
if (newdr.RowState == System.Data.DataRowState.Detached)
{
newdr.GUID = PUB.Result.guid; //220921
newdr.JGUID = item.guid;
newdr.wdate = DateTime.Now;
this.dataSet1.K4EE_Component_Reel_Result.AddK4EE_Component_Reel_ResultRow(newdr);
}
else newdr.EndEdit();
var ta = new DataSet1TableAdapters.K4EE_Component_Reel_ResultTableAdapter();
var cnt = ta.Update(newdr);
newdr.AcceptChanges();
if (cnt == 0) PUB.log.AddE("Save Error");
}
retval = true;
}
catch (Exception ex)
{
PUB.log.AddE($"[EE-SAVE] {ex.Message}");
retval = false;
}
var ts = DateTime.Now - savestart;
PUB.log.AddI($"data save time : {ts.TotalSeconds:N2}");
ListFormmatData();
}
}
}