147 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			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();
 | |
| 
 | |
| 
 | |
|         }
 | |
|     }
 | |
| } | 
