Ver código fonte

官塘增加补干识别

xuwei 3 anos atrás
pai
commit
36a47cdab5
2 arquivos alterados com 73 adições e 0 exclusões
  1. 3 0
      PLC/PLC_S/Core/PLC_S_Core.cs
  2. 70 0
      PLC/PLC_S/ServerModel/GoodsAuto.cs

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

@@ -179,6 +179,9 @@ namespace PLC_S
         public string PLC_SEMIREWORK_CODE; //半检返工
         public string PLC_SEMIREWORK_CODENUM;
 
+        public string PLC_SEMIREPAIR_CODE; //半检补土(官塘)
+        public string PLC_SEMIREPAIR_CODENUM;
+
         public string PLC_GOODSLEVEL_CODE; //产品等级
         public string PLC_GOODSLEVEL_CODENUM;
 

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

@@ -441,6 +441,29 @@ namespace PLC_S.ServerModel
                     }
                     #endregion
 
+                    #region 【可选】半检补土(适用于官塘)
+                    if (!string.IsNullOrEmpty(plc_s.PLC_SEMIREPAIR_CODE) && !string.IsNullOrEmpty(plc_s.PLC_SEMIREPAIR_CODENUM))
+                    {
+                        Int16 semiRepair = Convert.ToInt16(GetSemiRepair(barCode, e, logKeyT));
+                        if (!string.IsNullOrEmpty(plc_s.PLC_IP))
+                        {
+                            outputMessage = $"[{e.Content}]SET_SemiRepair=[{semiRepair}]{plc_s.PLC_SEMIREPAIR_CODE + plc_s.PLC_SEMIREPAIR_CODENUM}";
+                            Logger.Trace(outputMessage, logKeyT, logger_t);
+                            FormLogShow?.ShowLog(outputMessage);
+                            p_r = plc?.Write<short>(plc_s.PLC_SEMIREPAIR_CODE, plc_s.PLC_SEMIREPAIR_CODENUM, semiRepair);
+                            outputMessage = $"[{e.Content}]END_SemiRepair=[{p_r.ToString()}]{plc_s.PLC_SEMIREPAIR_CODE + plc_s.PLC_SEMIREPAIR_CODENUM}";
+                            Logger.Trace(outputMessage, logKeyT, logger_t);
+                            FormLogShow?.ShowLog(outputMessage);
+                        }
+                        else
+                        {
+                            outputMessage = $"[{e.Content}]半检补土=[{semiRepair}]";
+                            Logger.Trace(outputMessage, logKeyT, logger_t);
+                            FormLogShow?.ShowLog(outputMessage);
+                        }
+                    }
+                    #endregion
+
                     #region 【可选】产品等级写入(重烧过的产品写6,非重烧的写4)(适用于官塘)
                     if (!string.IsNullOrEmpty(plc_s.PLC_GOODSLEVEL2_CODE) && !string.IsNullOrEmpty(plc_s.PLC_GOODSLEVEL2_CODENUM))
                     {
@@ -1174,6 +1197,50 @@ namespace PLC_S.ServerModel
 
         }
 
+        private string GetSemiRepair(string barCode,ReceiveSession e,string loggerName)
+        {
+            try
+            {
+                using (IDataAccess conn = PLC_S_DataAccess.GetDataAccess())
+                {
+                    string sqlStr = @"
+                          SELECT GL.GOODSLEVELTYPEID
+                          FROM   TP_PM_GROUTINGDAILYDETAIL GDD
+                          LEFT   JOIN TP_MST_GOODSLEVEL GL
+                          ON     GDD.GOODSLEVELTYPEID = GL.GOODSLEVELTYPEID
+                          WHERE  GDD.BARCODE = :BARCODE
+                    ";
+                    object goodsLevel = conn.ExecuteScalar(sqlStr, new CDAParameter(":BARCODE", barCode));
+
+                    sqlStr = @"
+                        SELECT
+	                        99 
+                        FROM
+	                        TP_PM_INPRODUCTION 
+                        WHERE
+	                        BARCODE = :BARCODE
+	                        AND PROCEDUREID = 64 --完成的最后一个工序是1#二检补土时直接return 99(作为二检补土识别)
+                    ";
+                    object semiRepair = conn.ExecuteScalar(sqlStr, new CDAParameter(":BARCODE", barCode));
+
+                    if (semiRepair != null)
+                    {
+                        return semiRepair.ToString();
+                    }
+                    else
+                    {
+                        return goodsLevel.ToString();
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                Logger.Error(ex, $"[{e.Content}]ERROR-GetSemiReWork", loggerName, logger_e);
+                FormLogShow?.ShowLog($"[{e.Content}]ERROR-GetSemiReWork={ex.Message}");
+                return "0";
+            }
+        }
+
         private PLC_S_GA GetPLC_S_GA(string flag, ReceiveSession e, string loggerName)
         {
             try
@@ -1212,6 +1279,9 @@ namespace PLC_S.ServerModel
                     plc_s.PLC_SEMIREWORK_CODE = ini.Read(flag, "PLC_SEMIREWORK_CODE");
                     plc_s.PLC_SEMIREWORK_CODENUM = ini.Read(flag, "PLC_SEMIREWORK_CODENUM");
 
+                    plc_s.PLC_SEMIREPAIR_CODE = ini.Read(flag, "PLC_SEMIREPAIR_CODE");
+                    plc_s.PLC_SEMIREPAIR_CODENUM = ini.Read(flag, "PLC_SEMIREPAIR_CODENUM");
+
                     plc_s.PLC_GOODSLEVEL_CODE = ini.Read(flag, "PLC_GOODSLEVEL_CODE");
                     plc_s.PLC_GOODSLEVEL_CODENUM = ini.Read(flag, "PLC_GOODSLEVEL_CODENUM");