using DC_A95.MES_A95;
using NPOI.OpenXmlFormats.Dml;
using NPOI.Util;
using Opc.Ua;
using OpcBasic;
using Rhino.DocObjects;
using SlMesDbIterface;
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using SystemFramework;
///
///
///
namespace MesWork
{
///
///
///
public class MES_QueryCache
{
///
/// 根据发动机编号,获取计划信息
///
///
///
public static void Get_ProductPlan_ByEngineNo(string engineNo, out string engineTypeNo, out string orderNum, out int orderNo, out int orderSum,out int if_codetest,out int if_hottest)
{
engineTypeNo = "";
orderNum = "";
orderNo = -1;
orderSum = -1;
if_codetest=0;
if_hottest=0;
var sql =
$" SELECT" +
$" [订单类型],[生产日期],[班次],[上线序号],[上线总排序]" +
$" ,[发动机流水号],[机型号],[托盘号],[订单号],[订单序号],[订单数量]" +
$" ,[起始流水号],[终止流水号],[创建时间],[执行状态],[状态变更时间],[操作标记],isnull([是否冷试],0) as 是否冷试,isnull([是否热试],0) as 是否热试" +
$" FROM [潍柴_接口_生产计划_执行计划]" +
$" WHERE [发动机流水号] = '{engineNo}'";
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
if (dt.Rows.Count > 0)
{
engineTypeNo = dt.Rows[0]["机型号"].ToString();
orderNum = dt.Rows[0]["订单号"].ToString();
orderNo = int.Parse(dt.Rows[0]["订单序号"].ToString());
orderSum = int.Parse(dt.Rows[0]["订单数量"].ToString());
if_codetest= int.Parse(dt.Rows[0]["是否冷试"].ToString());
if_hottest = int.Parse(dt.Rows[0]["是否热试"].ToString());
}
if (err.Length > 0)
{
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Get_ProductPlan_ByEngineNo 报错!,,{err}");
}
}
///
/// 根据工位号,获取工序信息
///
///
///
///
public static void Get_ProductProcess_ByOP(string opCode, out string processCode, out string processName, out string opName, out string AreaCode)
{
processCode = "";
processName = "";
opName = "";
AreaCode = "";
var sql = $"SELECT [工序号],[工序名称],[工位名称],[区域编码] FROM [MES_计划BOM_工位与名称] WHERE [工位号]='{opCode}'";
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
if (dt.Rows.Count > 0)
{
processCode = dt.Rows[0]["工序号"].ToString();
processName = dt.Rows[0]["工序名称"].ToString();
opName = dt.Rows[0]["工位名称"].ToString();
AreaCode = dt.Rows[0]["区域编码"].ToString();
}
if (err.Length > 0)
{
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Get_ProductProcess_ByOP报错!,,{err}");
}
}
//public static DataTable Get_QCData_Configure(string opCode)
//{
// var sql = $"SELECT [修改时间],[机型号],[工序编号],[工序名称],[工位编号],[工位名称],[数据编码],[组顺序号],[列位置],[变量排序]," +
// $"[测量位置],[测量项目],[数据单位],[理论值],[下限值],[上限值],[数据说明]" +
// $" FROM [大柴_质量数据_配置信息]" +
// $" WHERE 工位编号='{opCode}'";
// SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
// return dt;
//}
public static int Get_EngineTypeID(string EngineType)
{
var sql = $"SELECT [AID] FROM [配方_大柴_机型] WHERE [机型号]='{EngineType}'";
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
if(dt.Rows.Count>0)return int.Parse(dt.Rows[0][0].ToString());
else return 0;
}
public static void Get_StationInfo(string OPName, out string PLC, out string StartDB)
{
var rows = MesWorkForm.dt_OPNameInfo.Select($"工位号='{OPName}'");
if (rows.Length > 0)
{
PLC = rows[0]["PLC"].ToString();
StartDB = "DB" + rows[0]["工位起始DB号"].ToString();
}
else
{
PLC = "";
StartDB = "";
}
}
public static void Get_OPCode_ByAGVCode(string agvcode, out string OPCode)
{
string sql = $"SELECT [操作工位] FROM [大柴_上线记录_外装线] WHERE AGV号={agvcode}";
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
if (dt.Rows.Count > 0)
{
OPCode = dt.Rows[0][0].ToString();
}
else OPCode = "";
}
}
}