389 lines
19 KiB
C#
389 lines
19 KiB
C#
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”。每个发动机装配六个活塞连杆。
|
||
///六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
|
||
///每个工位完成一个托盘两个活塞连杆的安装。
|
||
///三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
|
||
///活塞连杆上托盘:
|
||
///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 验证完成第三组
|
||
/// </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”。每个发动机装配六个活塞连杆。
|
||
/////六个活塞连杆分别放在三个连续的活塞连杆托盘上,每个托盘放两个活塞连杆,
|
||
/////每个工位完成一个托盘两个活塞连杆的安装。
|
||
/////三个连续的活塞连杆托盘上的描挂牌码(物料追踪号[追踪代码])相同。
|
||
/////活塞连杆上托盘:
|
||
/////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 验证完成第三组
|
||
///// </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;
|
||
//}
|
||
}
|
||
}
|