diff --git a/Common/09MesDataFunction/MesDataFunction/13MIS_FuntionSaveData/Funtion.MesRead.cs b/Common/09MesDataFunction/MesDataFunction/13MIS_FuntionSaveData/Funtion.MesRead.cs index 0b295b0..00afac1 100644 --- a/Common/09MesDataFunction/MesDataFunction/13MIS_FuntionSaveData/Funtion.MesRead.cs +++ b/Common/09MesDataFunction/MesDataFunction/13MIS_FuntionSaveData/Funtion.MesRead.cs @@ -228,7 +228,7 @@ namespace MisDataSaveDateMesRead MisDataFun.BaseData_tagTable_QualityData_B5A_Insert_OP170Status(id_tagCF, engineTypeID, engineID, "72300031", MaxUseTime.ToString(), qualityMask, opName); } - if(!((engineTypeID != 1 && engineTypeID != 1 ) && (opName == "OP120" || opName == "OP140" || opName == "OP160"))) // CC GQ UPS 固定架不涂胶 所以直接跳 PDC 和 W05 需要涂胶校验 + if(!((engineTypeID != 1 && engineTypeID != 5 ) && (opName == "OP120" || opName == "OP140" || opName == "OP160"))) // CC GQ UPS 固定架不涂胶 所以直接跳 PDC 和 W05 需要涂胶校验 { if (MisDataFun.GetSpecialOpExist(opName, "涂胶时间差校验")) { diff --git a/Common/09MesDataFunction/MesDataFunction/14MisDataFunctionDB/MisDataFun.DB.cs b/Common/09MesDataFunction/MesDataFunction/14MisDataFunctionDB/MisDataFun.DB.cs index 1a196c6..0421fea 100644 --- a/Common/09MesDataFunction/MesDataFunction/14MisDataFunctionDB/MisDataFun.DB.cs +++ b/Common/09MesDataFunction/MesDataFunction/14MisDataFunctionDB/MisDataFun.DB.cs @@ -284,6 +284,10 @@ namespace MisDataFunDll /// public static bool GetSpecialOpExist(string opName, string type) { + if (PP.SpecialOpList == null) + { + return false; + } if (PP.SpecialOpList.ContainsKey(type)) { return PP.SpecialOpList[type].Contains(opName); @@ -291,6 +295,30 @@ namespace MisDataFunDll return false; } + /// + /// 从启动缓存中读取特殊工位规则配置。 + /// + public static string GetSpecialOpRuleValue(string opName, string type, string ruleKey, string defaultValue = "") + { + if (PP.SpecialOpRuleConfig == null) + { + return defaultValue; + } + if (!PP.SpecialOpRuleConfig.ContainsKey(type)) + { + return defaultValue; + } + if (!PP.SpecialOpRuleConfig[type].ContainsKey(opName)) + { + return defaultValue; + } + if (!PP.SpecialOpRuleConfig[type][opName].ContainsKey(ruleKey)) + { + return defaultValue; + } + return PP.SpecialOpRuleConfig[type][opName][ruleKey]; + } + /// /// 这是一个防错方法 判断200扫码工位 如果出现 产品到位 传递机型未完成时扫码 无物料与拧紧的情况下 会直接跳到出站 给两秒缓冲时间 确保物料已入库 /// @@ -517,7 +545,7 @@ namespace MisDataFunDll switch (EngineTypeID) { case 1: case 5: targetField = "TEXT9"; break; - case 2: case 3: targetField = "TEXT14"; break; + case 2: case 3: case 6: case 7: targetField = "TEXT14"; break; case 4: targetField = "TEXT16"; break; default: targetField = ""; break; } diff --git a/Common/09MesDataFunction/MesDataFunction/ToPrinter/PP.cs b/Common/09MesDataFunction/MesDataFunction/ToPrinter/PP.cs index e755d2e..a807533 100644 --- a/Common/09MesDataFunction/MesDataFunction/ToPrinter/PP.cs +++ b/Common/09MesDataFunction/MesDataFunction/ToPrinter/PP.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Common/09MesDataFunction/MesDataFunction/webService/CallWebService.cs b/Common/09MesDataFunction/MesDataFunction/webService/CallWebService.cs index 1d7b45a..382fa30 100644 --- a/Common/09MesDataFunction/MesDataFunction/webService/CallWebService.cs +++ b/Common/09MesDataFunction/MesDataFunction/webService/CallWebService.cs @@ -1556,7 +1556,7 @@ namespace MisDataSaveDate int EngineTypeID = Convert.ToInt32(dt_quality.Rows[0]["产品代码"]); if (opName == "OP320") { - if (EngineTypeID == 2) dataCollectForResourceInspect.dcSequence = "B1"; + if (EngineTypeID == 2 || EngineTypeID == 6 || EngineTypeID == 7) dataCollectForResourceInspect.dcSequence = "B1"; if (EngineTypeID == 3) dataCollectForResourceInspect.dcSequence = "B2"; if (EngineTypeID == 4) dataCollectForResourceInspect.dcSequence = "B3"; } diff --git a/MisDataFun/MisDataFun/MisDataFun.cs b/MisDataFun/MisDataFun/MisDataFun.cs index a3a9954..ad4365d 100644 --- a/MisDataFun/MisDataFun/MisDataFun.cs +++ b/MisDataFun/MisDataFun/MisDataFun.cs @@ -1,4 +1,4 @@ -using DataLinkMesWork; +using DataLinkMesWork; using MesDataFunction; using MesServerWork; using MesWork.PLC; @@ -138,7 +138,7 @@ namespace MisDataSaveDate var dt_Device = MisDataFunDll.MisDataFun.dt_Device(); var dt_TagTypeDataType = MisDataFunDll.MisDataFun.dt_TagTypeDataType(); - Get_SpecialOpList(); + ReloadSpecialConfig(); var sql = $" SELECT [工位号],[工位名称],[PLC],[PLC代码],[MesDll]" + @@ -221,6 +221,13 @@ namespace MisDataSaveDate } + // 重新加载特殊工位及硬编码规则配置缓存 + static public void ReloadSpecialConfig() + { + Get_SpecialOpList(); + Get_SpecialOpRuleConfig(); + } + // 获取特殊工位列表 static public void Get_SpecialOpList() { @@ -238,6 +245,35 @@ namespace MisDataSaveDate PP.SpecialOpList = specialOpList; } + // 获取特殊工位规则配置,缓存结构:type -> opName -> ruleKey -> ruleValue + static public void Get_SpecialOpRuleConfig() + { + string procedureName = "MES_特殊工位规则配置表_查询"; + SqlParameter[] thisParms = new SqlParameter[0]; + DataAccess.ExecuteStoredProcedure(procedureName, ref thisParms, out DataTable dt); + var ruleConfig = new Dictionary>>(); + foreach (DataRow row in dt.Rows) + { + string type = row["type"].ToString(); + string opName = row["opName"].ToString(); + string ruleKey = row["ruleKey"].ToString(); + string ruleValue = row["ruleValue"].ToString(); + + if (!ruleConfig.ContainsKey(type)) + { + ruleConfig[type] = new Dictionary>(); + } + if (!ruleConfig[type].ContainsKey(opName)) + { + ruleConfig[type][opName] = new Dictionary(); + } + + ruleConfig[type][opName][ruleKey] = ruleValue; + } + + PP.SpecialOpRuleConfig = ruleConfig; + } + public void SaveData_Load(object sender, EventArgs e) { @@ -1074,7 +1110,8 @@ namespace MisDataSaveDate private void button19_Click_1(object sender, EventArgs e) { - Get_SpecialOpList(); + ReloadSpecialConfig(); + MessageBox.Show("特殊工位和规则配置已重新加载!"); } private void button21_Click(object sender, EventArgs e) diff --git a/MisDataFunction/Function1061/OpcServer/Barcode.cs b/MisDataFunction/Function1061/OpcServer/Barcode.cs index e2a0920..37db047 100644 --- a/MisDataFunction/Function1061/OpcServer/Barcode.cs +++ b/MisDataFunction/Function1061/OpcServer/Barcode.cs @@ -64,7 +64,7 @@ namespace MesServerFunctions //InitWorkStep(OpName, EngineTypeID, EngineType, EngineID); //更新订单完工数量及物料 SendMessageFun.SendMessage("2", "11", OpName); - if(EngineTypeID == 2 || EngineTypeID == 3) PrinterCommandCenter.PrintToPrinter(OpName, EngineID); // 打印PACK条码 + if(EngineTypeID == 2 || EngineTypeID == 3 || EngineTypeID == 6 || EngineTypeID == 7) PrinterCommandCenter.PrintToPrinter(OpName, EngineID); // 打印PACK条码 MIS_BASE.Write_FixAllow(OpName, true); // 允许工作 MisDataFun.LogRecording_OP(OpName, "INFO", "Barcode", "物料验证完成 允许工作!"); }