Browse Source

自动识别重烧节点

xuwei 4 năm trước cách đây
mục cha
commit
0535fde50f

+ 2 - 0
PLC/PLC_S/Core/PLC_S_Core.cs

@@ -192,6 +192,8 @@ namespace PLC_S
         public string PROCEDURE_USERCODE; //工序工号
         public string PROCEDURE_CHECKID; //工序验证ID
 
+        public string PROCEDURE_AUTOREFIRE_ID;//工序计件ID 用于重烧成检交接,重烧时,PROCEDURE_AUTO_ID会使用这个值
+
         public string WORKSTATION_ID; //工位ID
         public string WORKSTATION_NAME; //工位名称
     }

+ 3 - 0
PLC/PLC_S/EPTS/GoodsAuto/INI_GA.cs

@@ -45,6 +45,7 @@ namespace PLC_S.EPTS
 
         public string PROCEDURE_ID; //工序ID
         public string PROCEDURE_USERCODE; //工序工号
+        public string PROCEDURE_AUTOREFIRE_ID; //自动替换重烧ID
 
         public string WORKSTATION_ID; //工位ID
         public string WORKSTATION_NAME; //工位名称
@@ -85,6 +86,8 @@ namespace PLC_S.EPTS
             ini_plc.PROCEDURE_ID = ini.Read(flag, "PROCEDURE_ID");
             ini_plc.PROCEDURE_USERCODE = ini.Read(flag, "PROCEDURE_USERCODE");
 
+            ini_plc.PROCEDURE_AUTOREFIRE_ID = ini.Read(flag, "PROCEDURE_AUTOREFIRE_ID");
+
             ini_plc.WORKSTATION_ID = ini.Read(flag, "WORKSTATION_ID");
             ini_plc.WORKSTATION_NAME = ini.Read(flag, "WORKSTATION_NAME");
 

+ 37 - 0
PLC/PLC_S/ServerModel/GoodsAuto.cs

@@ -508,6 +508,12 @@ namespace PLC_S.ServerModel
                     #region 【可选】工序计件
                     if (!string.IsNullOrEmpty(plc_s.PROCEDURE_ID) && (!string.IsNullOrEmpty(plc_s.PROCEDURE_USERCODE) || !string.IsNullOrEmpty(plc_s.WORKSTATION_ID)) )
                     {
+                        //如果是重烧产品使用重烧ID
+                        if (!string.IsNullOrEmpty(plc_s.PROCEDURE_AUTOREFIRE_ID))
+                        {
+                            plc_s.PROCEDURE_ID = GetAutoFireID(barCode, plc_s.PROCEDURE_ID, plc_s.PROCEDURE_AUTOREFIRE_ID, e, logKeyE);
+                        }
+
                         string p_id = GetFlowId(barCode, e, logKeyE);
                         Int16 plc_flag = 0;
                         if (p_id != plc_s.PROCEDURE_ID.ToString())
@@ -750,6 +756,37 @@ namespace PLC_S.ServerModel
             }
         }
 
+        private string GetAutoFireID(string barCode, string procedureId, string autoFireId, ReceiveSession e, string loggerName)
+        {
+            try
+            {
+                using (IDataAccess conn = PLC_S_DataAccess.GetDataAccess(e))
+                {
+                    string sqlStr = @"
+                        SELECT T.ISREFIRE
+                        FROM   TP_PM_INPRODUCTION T
+                        WHERE  T.BARCODE = :BARCODE
+                        UNION
+                        SELECT T.ISREFIRE
+                        FROM   TP_PM_INPRODUCTIONTRASH T
+                        WHERE  T.BARCODE = :BARCODE
+                        ";
+                    string result = conn.ExecuteScalar(sqlStr, new CDAParameter(":BARCODE", barCode)).ToString();
+                    if (result == "6")
+                        return autoFireId;
+                    else
+                        return procedureId;
+                }
+
+            }
+            catch (Exception ex)
+            {
+                Logger.Error(ex, $"[{e.Content}]ERROR-GetAutoFireID", loggerName, logger_e);
+                FormLogShow?.ShowLog($"[{e.Content}]ERROR-GetAutoFireID={ex.Message}");
+                return "0";
+            }
+        }
+
         private string GetUserCodeFromWorkStation(string workStationId, ReceiveSession e, string loggerName)
         {
             try