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
{
///
/// 检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在
/// 不存在 返回 true 否则返回 false
///分线活塞连杆上线工位流程:(活塞连杆OP3800)MachineType=“S”,
///ScannerType = “1”,OpType=“F103”。每个发动机装配六个活塞连杆。
///六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
///每个工位完成一个托盘两个活塞连杆的安装。
///三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
///活塞连杆上托盘:
///1:PLC向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 验证完成第三组
///
//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;
//}
/////
///// 检测表 [MES_装配数据_发动机号_追踪代码] 中的扫描挂牌码[追踪代码]是否存在
///// 不存在 返回 true 否则返回 false
/////分线活塞连杆上线工位流程:(活塞连杆OP3800)MachineType=“S”,
/////ScannerType = “1”,OpType=“F103”。每个发动机装配六个活塞连杆。
/////六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
/////每个工位完成一个托盘两个活塞连杆的安装。
/////三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
/////活塞连杆上托盘:
/////1:PLC向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 验证完成第三组
/////
//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;
//}
/////
///// 用于:活塞连杆上线
///// 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1;
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2;
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,表[MES_计划BOM_发动机号]的字段“是否装配代码”=1,
///// 表示已经完成一个发动机的活塞连杆装配。
/////
/////
/////
/////
/////
//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;
//}
/////
///// 用于:活塞连杆上线
///// 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1;
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2;
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,表[MES_计划BOM_发动机号]的字段“是否装配代码”=1,
///// 表示已经完成一个发动机的活塞连杆装配。
/////
/////
/////
/////
//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;
//}
/////
///// 更新活塞连杆验证状态(是否禁用加"1")
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
///// 6.5 活塞连杆分三组,验证完成一组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=1;
///// 验证完成二组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=2;
///// 验证完成三组(包括将验证的物料保存以后),
///// [MES_装配数据_发动机号_追踪代码] 表中的字段“是否禁用”=3。
///// 当第三组验证完成后,
///// 表[MES_计划BOM_发动机号]的字段“是否装配代码”=1,
///// 表示已经完成一个发动机的活塞连杆装配。
/////
/////
/////
/////
/////
//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);
//}
/////
///// 更新活塞连杆验证状态
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
/////
/////
/////
/////
/////
//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);
// }
//}
/////
///// 更新活塞连杆验证状态
///// 是否禁用 =0 开始验证新的活塞连杆
///// =1第一组验证完成
///// =2第二组验证完成
///// =3第三组验证完成
/////
/////
/////
/////
/////
//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);
//}
/////
///// 线首,用于物料追踪
///// (3.2.2.1)如果表[MES_装配数据_发动机号_追踪代码]中
///// 不存在字段“是否禁用” 小于“3”的记录,
///// 说明活塞连杆工位已经全部验证完成,
///// 开始全新验证流程。同(2)基本流程。
/////
/////
//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;
//}
}
}