Files
01-Siyuan-MesProject/MisDataFunction/MesServer.Function/Function17/Methods/EngineGetOverBaseWork.cs
2026-05-29 10:07:05 +08:00

122 lines
4.6 KiB
C#
Raw 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_17
{
/// <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 RepairPartStatusPLC = 0;
int MES_QualityMask = 1;
//string OrderForm = "";//订单号
string EngineID_MES;
DataTable dt;
//第一步,查询订单号,保存机型、机型代码、总成号、托盘号、订单号到数据库
MIS_BASE.Read_EngineID_MES(OpName, out EngineID_MES);//获取MES总成号
BaseDataSystemMES.GetEngineID_Select(OpName, EngineID, out dt);
if (dt != null && dt.Rows.Count > 0)
{
OrderForm = Convert.ToString(dt.Rows[0]["订单号"]);
}
BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, OrderForm, EngineTypeID, EngineType, EngineID, PartPallet_Code, 0, 0, "");
//第二步,将拧紧的信息放入到临时表里
BaseDataSystemMES.MesServer_ShaftPosition_EngineTypeOver(OpName);
//第三步将零件信息转移到零件_临时表中本地BOM与订单BOM的选择显示关系
BaseDataSystemMES.MesServer_Process_EngineTypeOver(OpName);
//通知web显示
Sendmessage("5123", "1111", OpName);
MIS_BASE.Read_PalletInfo(OpName, out MES_QualityMask);//合格标志
MIS_BASE.Read_RepairStatus_PLC(OpName, out RepairPartStatusPLC);//返修标志
SendInfomation("QualityMask", Convert.ToString(MES_QualityMask), OpName);//显示合格标志
SendInfomation("RepairPartStatusPLC", Convert.ToString(RepairPartStatusPLC), OpName);//显示返修标志
if (MES_QualityMask != 1)
{
//工作完成
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
SendInfomation("NgGO", "1", OpName);//显示不合格标志
return;
}
//第四步,用于工件离开后完工数量统计及工件编号追溯
BaseDataSystemMES.MaterialPush_EngineIDStatus_Insert(OpName);
//第五步,获取是否允许工作
BaseDataSystemMES.MesServer_Judge_IsCanWork(OpName, out IsAllowWork);
//通知web显示
SendInfomation("ShaftPosition", Convert.ToString(IsAllowWork), OpName);//显示拧紧位置
//暂时先定义为扫描完成才能进行压装工作,因为考虑到工作完成后,操作工未必会去扫描物料的情况
if (EngineID_MES == EngineID)
{
//拧紧逻辑
InitWorkStep(OpName, EngineTypeID, EngineType, EngineID);
}
else
{
AsyncSendMessage_Notice(OpName, "MES与PLC信息不一致");
}
}
/// <summary>
/// 返修件需要工作
/// </summary>
/// <param name="OpName">工位号</param>
private void IsNeedRepaire_OK(string OpName)
{
string orderForm = "";
int engineTypeID;
string engineType = "";
string engineID = "";
string palletCode = "";
int isRepair;
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);
}
/// <summary>
/// 允许读发动机号后,判断是工件否合格
/// </summary>
private bool TestEngineIDIsNG(string OpName, string EngineID)
{
//MES数据库中的不合格放行信息
bool isNG = false;
DataTable dt;
isNG = BaseDataSystemMES.BaseData_tagTable_Engine_IsNG_Select(OpName, EngineID, out dt);
return isNG;
}
}
}