Files
2-BeiqiFutian-MesProject/Common/07WebBusinessFacade/BusinessFacade/MES.Biz.TraceTable/MES.Biz.TraceTable.Cylinder.cs
2026-05-29 13:44:10 +08:00

389 lines
19 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.IO;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using DataLinkMesWork;
using System.Data.OleDb;
//using SystemFramework;
namespace bizFacade
{
public partial class BaseDataSystemMES
{
/// <summary>
/// 检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在
/// 不存在 返回 true 否则返回 false
///分线活塞连杆上线工位流程:(活塞连杆OP3800)MachineType=“S”
///ScannerType = “1”OpType=“F103”。每个发动机装配六个活塞连杆。
///六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
///每个工位完成一个托盘两个活塞连杆的安装。
///三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
///活塞连杆上托盘:
///1PLC向MES发送工件到位开始扫描信号。WorkStart=1
///2扫描挂牌码物料追踪号[追踪代码]
///3检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在(是否禁用
///3 and追踪代码 = )。
///3.1:如果不存在或存在并且验证完成(是否禁用=3)
///显示当前生产计划对应的活塞连杆信息(物料表和需要验证的物料表);
///保存[追踪代码]和[追踪标识](追踪标识=HL+时间标签)
///到表[MES_装配数据_发动机号_追踪代码]中。[追踪标识]对应表[MES_装配数据_发动机号_追踪代码]的
///[发动机号]字段。MES向PLC写入发动机号、机型、机型标志、追踪代码
///MES向PLC写入MES激发变量扫描完成EngineGetOver=1
///3.2:如果存在并且验证完成(是否禁用3),使用[MES_装配数据_发动机号_追踪代码],
///显示扫描挂牌码对应的活塞连杆信息(物料表和需要验证的物料表)。
///MES向PLC写入发动机号、机型、机型标志、追踪代码
///MES向PLC写入MES激发变量扫描完成EngineGetOver=1
///3.3:如果物料验证完成,追踪代码对应的[是否禁用]=3
///每验证完成一个托盘对应活塞连杆物料增加1
///3.4:显示每一个托盘对应的验证物料。
///4物料验证每验证完成一个托盘对应活塞连杆物料如果没有全部完成验证
///MaterialVerifyOver=1不清空表[MES_装配数据_零部件追溯_临时状态]。
///PLC向MES发送工件离开信号WorkStart=0保存数据到信息管理系统
///完成工件当日计数和工作开始时间和结束时间。
///5如果全部完成验证MaterialVerifyOver=1清空表[MES_装配数据_零部件追溯_临时状态]。
///每验证完成一个托盘对应活塞连杆物料,追踪代码对应的[是否禁用]增加1
///作为活塞连杆分组验证标识。每验证一个物料,保存数据到表[MES_装配数据_零部件追溯_数据主表]
///和[MES_装配数据_零部件追溯],发动机号=追踪标识。PLC向MES发送工件离开信号WorkStart=0
///保存数据到信息管理系统,完成工件当日计数和工作开始时间和结束时间。
///6通过OpNameMainLine总线活塞连杆上线工位工位数据表和本工位的装配指南
///获得当前工位的装配指南,订单号、机型、机型标志。
///7显示活塞连杆订单号、活塞连杆、机型、机型标志
///-1 不合理
///0 没记录
///1 验证完成第一组
///2 验证完成第二组
///3 验证完成第三组
/// </summary>
//public static int TraceTableCheck_F3_New(string opName, string TraceCode)
//{
// DataTable dt;
// int isFalse;
// string sql;
// //存在,并且没有验证完成条件
// sql = "SELECT top 1 是否禁用 FROM [MES_装配数据_发动机号_追踪代码] "
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')"
// +" order by 操作时间 desc ";
// //if (!SQLCommon.SqlServerConnectionStatus)
// //{
// // DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// //}
// //else
// {
// DataAccess.ExecuteDataTable(sql, out dt);
// }
// if (dt == null)
// {
// //读[MES_装配数据_发动机号_追踪代码]数据失败
// isFalse = -1;
// }
// if (dt.Rows.Count > 0)
// {
// isFalse = Convert.ToInt32(dt.Rows[0]["是否禁用"]);
// }
// else
// {
// isFalse = 0;
// }
// return isFalse;
//}
///// <summary>
///// 检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在
///// 不存在 返回 true 否则返回 false
/////分线活塞连杆上线工位流程:(活塞连杆OP3800)MachineType=“S”
/////ScannerType = “1”OpType=“F103”。每个发动机装配六个活塞连杆。
/////六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
/////每个工位完成一个托盘两个活塞连杆的安装。
/////三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
/////活塞连杆上托盘:
/////1PLC向MES发送工件到位开始扫描信号。WorkStart=1
/////2扫描挂牌码物料追踪号[追踪代码]
/////3检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在(是否禁用
/////3 and追踪代码 = )。
/////3.1:如果不存在或存在并且验证完成(是否禁用=3)
/////显示当前生产计划对应的活塞连杆信息(物料表和需要验证的物料表);
/////保存[追踪代码]和[追踪标识](追踪标识=HL+时间标签)
/////到表[MES_装配数据_发动机号_追踪代码]中。[追踪标识]对应表[MES_装配数据_发动机号_追踪代码]的
/////[发动机号]字段。MES向PLC写入发动机号、机型、机型标志、追踪代码
/////MES向PLC写入MES激发变量扫描完成EngineGetOver=1
/////3.2:如果存在并且验证完成(是否禁用3),使用[MES_装配数据_发动机号_追踪代码],
/////显示扫描挂牌码对应的活塞连杆信息(物料表和需要验证的物料表)。
/////MES向PLC写入发动机号、机型、机型标志、追踪代码
/////MES向PLC写入MES激发变量扫描完成EngineGetOver=1
/////3.3:如果物料验证完成,追踪代码对应的[是否禁用]=3
/////每验证完成一个托盘对应活塞连杆物料增加1
/////3.4:显示每一个托盘对应的验证物料。
/////4物料验证每验证完成一个托盘对应活塞连杆物料如果没有全部完成验证
/////MaterialVerifyOver=1不清空表[MES_装配数据_零部件追溯_临时状态]。
/////PLC向MES发送工件离开信号WorkStart=0保存数据到信息管理系统
/////完成工件当日计数和工作开始时间和结束时间。
/////5如果全部完成验证MaterialVerifyOver=1清空表[MES_装配数据_零部件追溯_临时状态]。
/////每验证完成一个托盘对应活塞连杆物料,追踪代码对应的[是否禁用]增加1
/////作为活塞连杆分组验证标识。每验证一个物料,保存数据到表[MES_装配数据_零部件追溯_数据主表]
/////和[MES_装配数据_零部件追溯],发动机号=追踪标识。PLC向MES发送工件离开信号WorkStart=0
/////保存数据到信息管理系统,完成工件当日计数和工作开始时间和结束时间。
/////6通过OpNameMainLine总线活塞连杆上线工位工位数据表和本工位的装配指南
/////获得当前工位的装配指南,订单号、机型、机型标志。
/////7显示活塞连杆订单号、活塞连杆、机型、机型标志
/////-1 不合理
/////0 没记录
/////1 验证完成第一组
/////2 验证完成第二组
/////3 验证完成第三组
///// </summary>
//public static int TraceTableCheck_F3(string opName, string TraceCode)
//{
// DataTable dt;
// int isFalse;
// string sql;
// //存在,并且没有验证完成条件
// sql = "SELECT top 1 是否禁用 FROM [MES_装配数据_发动机号_追踪代码] "
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')"
// +" order by 操作时间 desc ";
// //if (!SQLCommon.SqlServerConnectionStatus)
// //{
// // DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// //}
// //else
// {
// DataAccess.ExecuteDataTable(sql, out dt);
// }
// if (dt == null)
// {
// //读[MES_装配数据_发动机号_追踪代码]数据失败
// isFalse = -1;
// }
// if (dt.Rows.Count > 0)
// {
// isFalse = Convert.ToInt32(dt.Rows[0]["是否禁用"]);
// }
// else
// {
// isFalse = 0;
// }
// return isFalse;
//}
///// <summary>
///// 用于:活塞连杆上线
///// 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,表[MES_计划BOM_发动机号]的字段“是否装配代码”=1
///// 表示已经完成一个发动机的活塞连杆装配。
///// </summary>
///// <param name="opName"></param>
///// <param name="TraceCode"></param>
///// <param name="strConnectionstring"></param>
///// <returns></returns>
//public static int TraceTableCheck(string opName, string TraceCode, string strConnectionstring)
//{
// DataTable dt;
// int isFalse;
// string sql;
// //存在,并且没有验证完成条件
// sql = "SELECT 是否禁用 FROM [MES_装配数据_发动机号_追踪代码] "
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, strConnectionstring, out dt);
// if (dt == null)
// {
// isFalse = -1;
// }
// if (dt.Rows.Count > 0)
// {
// isFalse = Convert.ToInt32(dt.Rows[0]["是否禁用"]);
// }
// else
// {
// isFalse = -1;
// }
// return isFalse;
//}
///// <summary>
///// 用于:活塞连杆上线
///// 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,表[MES_计划BOM_发动机号]的字段“是否装配代码”=1
///// 表示已经完成一个发动机的活塞连杆装配。
///// </summary>
///// <param name="opName"></param>
///// <param name="TraceCode"></param>
///// <returns></returns>
//public static int TraceTableCheck(string opName, string TraceCode)
//{
// DataTable dt;
// int isFalse;
// string sql;
// //存在,并且没有验证完成条件
// sql = "SELECT 是否禁用 FROM [MES_装配数据_发动机号_追踪代码] "
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// if (dt == null)
// {
// isFalse = -1;
// }
// if (dt.Rows.Count > 0)
// {
// isFalse = Convert.ToInt32(dt.Rows[0]["是否禁用"]);
// }
// else
// {
// isFalse = -1;
// }
// return isFalse;
//}
///// <summary>
///// 更新活塞连杆验证状态(是否禁用加"1")
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
///// 6.5 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,
///// 表[MES_计划BOM_发动机号]的字段“是否装配代码”=1
///// 表示已经完成一个发动机的活塞连杆装配。
///// </summary>
///// <param name="opName"></param>
///// <param name="TraceCode"></param>
///// <param name="EngineID"></param>
///// <returns></returns>
//public static bool TraceTableUpdate_AddOne_F3(string opName, string TraceCode, string EngineID)
//{
// string sql;
// DataTable dt;
// int count;
// sql = "SELECT top 1 是否禁用 FROM [MES_装配数据_发动机号_追踪代码] "
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')"
// + " order by 操作时间 desc ";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// if (dt == null) return false;
// if (dt.Rows.Count > 0)
// {
// count = Convert.ToInt32(dt.Rows[0]["是否禁用"]);
// }
// else
// {
// count = 0;
// }
// count = count + 1;
// sql = "UPDATE [MES_装配数据_发动机号_追踪代码] "
// + " SET 是否禁用=" + count.ToString()
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')";
// //[MES_计划BOM_发动机号]的字段“是否装配代码”=1
// if (count == 3)
// {
// try
// {
// BaseDataSystemMES.BaseData_tagTable_EngineID_UpDate(EngineID);
// }
// catch (Exception err)
// {
// ////ApplicationLog.WriteLog(err, "更新活塞连杆验证状态");
// }
// }
// return DataAccess.ExecuteSQL_OleDb_Access(sql);
//}
///// <summary>
///// 更新活塞连杆验证状态
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
///// </summary>
///// <param name="opName"></param>
///// <param name="TraceCode"></param>
///// <param name="isFalse"></param>
///// <returns></returns>
//public static bool TraceTableUpdate_F3_New(string opName, string TraceCode, int isFalse)
//{
// string sql;
// sql = "UPDATE [MES_装配数据_发动机号_追踪代码] "
// + " SET 是否禁用=" + isFalse.ToString()
// + " where ( 是否禁用<=2 and 追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')";
// //if (!SQLCommon.SqlServerConnectionStatus)
// //{
// // return DataAccess.ExecuteSQL_OleDb_Access(sql);
// //}
// //else
// {
// return DataAccess.ExecuteSQL(sql);
// }
//}
///// <summary>
///// 更新活塞连杆验证状态
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
///// </summary>
///// <param name="opName"></param>
///// <param name="TraceCode"></param>
///// <param name="isFalse"></param>
///// <returns></returns>
//public static bool TraceTableUpdate_F3(string opName, string TraceCode, int isFalse)
//{
// string sql;
// sql = "UPDATE [MES_装配数据_发动机号_追踪代码] "
// + " SET 是否禁用=" + isFalse.ToString()
// + " where (追踪代码='" + TraceCode + "'"
// + " and 工位号='" + opName + "')";
// return DataAccess.ExecuteSQL_OleDb_Access(sql);
//}
///// <summary>
///// 线首,用于物料追踪
///// 3.2.2.1)如果表[MES_装配数据_发动机号_追踪代码]中
///// 不存在字段“是否禁用” 小于“3”的记录
///// 说明活塞连杆工位已经全部验证完成,
///// 开始全新验证流程。同2基本流程。
///// </summary>
///// <returns></returns>
//public static bool TableTraceSelectIsFalse()
//{
// DataTable dt;
// string sql = null;
// sql = "SELECT * FROM MES_装配数据_发动机号_追踪代码 WHERE 是否禁用 < 3";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// if (dt == null)
// {
// return true;
// }
// if (dt.Rows.Count == 0)
// {
// return true;
// }
// return false;
//}
}
}