Files
2026-05-29 10:07:05 +08:00

161 lines
6.4 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Data;
using bizFacade;
using MesServerWork;
namespace MesServerFunctions
{
partial class Functions_BASE_24
{
/// <summary>
/// 正常逻辑工作(传递机型)
/// </summary>
/// <param name="OpName"></param>
/// <param name="EngineTypeID"></param>
/// <param name="EngineType"></param>
/// <param name="EngineID"></param>
/// <param name="PartPallet_Code"></param>
private void EngineTypeGetOver_PLC_Work(string OpName, int EngineTypeID, string EngineType, string EngineID, int PartPallet_Code,string OrderForm)
{
int IsAllowWork;
int IsrepairBarcode = 0;//拆解返修标志
int RepairPartStatusPLC = 0;
int MES_QualityMask = 1;
//string OrderForm = "";//订单号
string EngineID_MES;
string repairBarcode = "";//拆解返修条码
bool MesRead = false;
bool MesReadOver = false;
DataTable dt;
//OP050
MIS_BASE.Read_EngineID_MES(OpName, out EngineID_MES);//获取MES总成号 用于判断是否一致
MIS_BASE.Read_MesReadOver(OpName, out MesReadOver); //保存完成
MIS_BASE.Read_QualityData_Read_CF(OpName, out MesRead); //允许保存
MIS_BASE.Read_PalletInfo(OpName, out MES_QualityMask);//合格标志
MIS_BASE.Read_RepairStatus_PLC(OpName, out RepairPartStatusPLC);//返修标志
BaseDataSystemMES.GetEngineID_Select(OpName, EngineID, out dt);//查询订单信息
//if (dt != null&&dt.Rows.Count > 0)
//{
// //OrderForm = Convert.ToString(dt.Rows[0]["订单号"]);
// IsrepairBarcode = Convert.ToInt32(dt.Rows[0]["拆解标志"]);
// repairBarcode = Convert.ToString(dt.Rows[0]["拆解返修条码"]);
//}
BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, OrderForm, EngineTypeID, EngineType, EngineID, PartPallet_Code, 0, IsrepairBarcode, repairBarcode);
SaveMobyMessage(OpName, EngineTypeID, EngineType, EngineID, OrderForm);
Sendmessage("5", "1", OpName);
SendInfomation("QualityMask", Convert.ToString(MES_QualityMask), OpName);
SendInfomation("RepairPartStatusPLC", Convert.ToString(RepairPartStatusPLC), OpName);
BaseDataSystemMES.MaterialPush_EngineIDStatus_Insert(OpName);
//创建线首物料验证表
BaseDataSystemMES.MesServer_Process_EngineTypeOver_FirstOpName(OpName);
//第二步将零件信息转移到零件_临时表中本地BOM与订单BOM的选择显示关系
BaseDataSystemMES.MesServer_Process_EngineTypeOver(OpName, 1);
//第三步直接验证物料
bool IsSuccess;
BaseDataSystemMES.PartMaterial_DM_Update(OpName, EngineID, out IsSuccess);
MIS_BASE.Write_FixAllow(OpName, true);
//if (EngineID_MES == EngineID)
//{
// FirstOpName_Code_Update(OpName, EngineID, PartPallet_Code);
// // MES允许工作(66)
// MIS_BASE.Write_FixAllow(OpName, true);
// // 清空上线工位的匹配不一致(69)
// MIS_BASE.Write_TagTypeID(69, OpName, false);
//}
//else
//{
// AsyncSendMessage_Notice(OpName, "PLC与MES不一致");
//}
}
private void FirstOpName_Code_Update(string OpName,string EngineID,int PartPallet_Code)
{
try
{
//if (tagValue == 1)
{
//MIS_BASE.GetEngineTypeFromDB(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code);
//线首流水号
BaseDataSystemMES.FirstOpName_Code_Update(OpName, EngineID, PartPallet_Code.ToString());
//物料数据
//BaseDataSystemMES.Material_Insert(OpName, 1);
//MIS_BASE.Write_MaterialVerifyOver(OpName, true);
Sendmessage("49", "11", OpName);//向web发送消息
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function03:ConfirmOkGo");
}
}
/// <summary>
/// 保存MOBY信息
/// </summary>
/// <param name="OpName"></param>
/// <param name="engineTypeID"></param>
/// <param name="engineType"></param>
/// <param name="engineID"></param>
private void SaveMobyMessage(string OpName, int engineTypeID, string engineType, string engineID, string orderForm)
{
if(MIS_BASE.hashtable_EngineGetOver_EngineTypeID==null)
{
MIS_BASE.InitHashtable_MesServerCode();
}
if (MIS_BASE.hashtable_EngineGetOver_EngineTypeID.ContainsKey(OpName))
{
MIS_BASE.hashtable_EngineGetOver_EngineTypeID[OpName] = engineTypeID;
}
if (MIS_BASE.hashtable_EngineGetOver_EngineType.ContainsKey(OpName))
{
MIS_BASE.hashtable_EngineGetOver_EngineType[OpName] = engineType;
}
if (MIS_BASE.hashtable_EngineGetOver_EngineID.ContainsKey(OpName))
{
MIS_BASE.hashtable_EngineGetOver_EngineID[OpName] = engineID;
}
if (MIS_BASE.hashtable_EngineGetOver_OrderForm.ContainsKey(OpName))
{
MIS_BASE.hashtable_EngineGetOver_OrderForm[OpName] = orderForm;
}
}
/// <summary>
/// 返修件需要工作
/// </summary>
/// <param name="OpName">工位号</param>
private void IsNeedRepaire_OK(string OpName)
{
int isRepair;
int engineTypeID;
string engineType = "";
string engineID = "";
string palletCode = "";
string orderForm = "";
string repairCode = "";
//从监控系统中查询出本工位信息
BaseDataSystemMES.OpName_MIS_Moby_Select(OpName,
out orderForm, out engineTypeID, out engineType,
out engineID, out palletCode, out isRepair, out repairCode);
EngineTypeGetOver_PLC_Work(OpName, engineTypeID, engineType, engineID, Convert.ToInt32(palletCode),orderForm);
}
}
}