|
|
@@ -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");
|
|
|
|