Files
7-Dongan-MesProject/Common/07WebBusinessFacade/BusinessFacade/MES/BaseDataSystemMES.MaterialList.cs
2026-05-29 13:57:19 +08:00

217 lines
16 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.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using DataLinkMesWork;
//using SystemFramework;
namespace bizFacade
{
public partial class BaseDataSystemMES
{
///// <summary>
///// MES_计划BOM_发动机号
///// 获得订单号
///// </summary>
///// <param name="dt"></param>
//static public void WorkPositionGuidOnLine_OrderForm(out DataTable dt)
//{
// string sql;
// sql = "SELECT distinct 订单号 from MES_计划BOM_订单计划下达_执行顺序 ";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
//}
///// <summary>
///// 物料清单
///// 根据ID号获得物料清单
///// 一行
///// </summary>
///// <param name="ID"></param>
///// <param name="dt"></param>
//static public void WorkPositionGuidOnLine_MaterialList(int ID, out DataTable dt)
//{
// string sql;
// sql = "SELECT [订单号], [SAP物料号], [发动机型号], [发动机型号代码], [发动机机型]," +
// "[发动机数量], [厂牌编号起始号], [客户名称], [投料日期], [文件编号], [集团名称], [通知号], " +
// "[功率], [指南文件编号], [装机状态], [适用状态], [物料描述],[计划下达日期], [计划完工日期],[实际完成日期],[实际结束日期],[操作时间]," +
// "[主配厂家],[工位号], [工位名称], [物料号], [零件图号], [零件名称], [零件数量],[是否扫描],扫描方式,[厂家代码], [生产厂家], " +
// "[操作指导],[工位基本操作指导],[工位基本指导图片],[日计划产量], [工位操作指导],[工位指导图片],[物料来源代码],[是否禁用代码],[被强制验证物料号],更改代码,更改原因" +
// " FROM MES_计划BOM_订单计划下达 " +
// " WHERE ID =" + Convert.ToString(ID);
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
//}
///// <summary>
///// 物料清单
///// 根据订单号和工位号
///// </summary>
///// <param name="orderForm"></param>
///// <param name="opName"></param>
///// <param name="dt"></param>
//static public void WorkPositionGuidOnLine_MaterialList(string orderForm, string opName, out DataTable dt)
//{
// string sql;
// //sql = "SELECT [ID], [订单号], [SAP物料号], [发动机型号], [发动机型号代码], [发动机机型]," +
// // "[发动机数量], [厂牌编号起始号], [客户名称], [投料日期], [文件编号], [集团名称], [通知号], " +
// // "[功率], [指南文件编号], [装机状态], [适用状态], [物料描述],[计划下达日期], [计划完工日期],[实际完成日期],[实际结束日期],[操作时间], " +
// // "[主配厂家],[工位号], [工位名称], [物料号], [零件图号], [零件名称], [零件数量],[是否扫描],d.扫描方式代码,d.扫描方式,[厂家代码], [生产厂家], " +
// // "[操作指导],[工位基本操作指导],[工位基本指导图片],[日计划产量], [工位操作指导],[工位指导图片],b.物料来源代码, b.物料来源, a.是否禁用代码, a.是否禁用,被强制验证物料号,更改代码,更改原因 "
// // + " FROM MES_计划BOM_订单计划下达_扫描方式 AS d INNER JOIN (MES_计划BOM_订单计划下达_是否禁用 AS a INNER JOIN (MES_计划BOM_订单计划下达_物料来源 AS b INNER JOIN MES_计划BOM_订单计划下达 AS c ON b.物料来源代码 = c.物料来源代码) ON a.是否禁用代码 = c.是否禁用代码) ON c.扫描方式=d.扫描方式代码 "
// // + " WHERE 订单号 ='" + orderForm + "'"
// // + " AND 工位号 = '" + opName + "' "
// // + " ORDER BY 物料号 ";
// sql = " SELECT a.订单号, a.执行顺序,a.SAP物料号,a.发动机型号,a.发动机型号代码,a.发动机机型,"
// + "a.发动机数量,a.厂牌编号起始号,a.客户名称,a.投料日期,a.文件编号,a.集团名称,a.通知号,a.功率,"
// + "a.指南文件编号,a.装机状态,a.适用状态,a.物料描述,a.计划下达日期,a.计划完工日期,a.实际完成日期,"
// + "a.实际结束日期,a.完成情况代码,a.完成数量,a.订单完成日期 ,"
// + "b.主配厂家, b.工位号, b.工位名称, b.物料号,b.零件图号,b.零件名称,b.零件数量,"
// + "b.是否扫描,b.扫描方式,b.是否主物料,b.厂家代码,b.生产厂家,b.操作指导,b.物料来源代码,"
// + "b.是否禁用代码,b.被强制验证物料号,b.更改代码,b.更改原因,"
// + "c.工位基本指导图片,d.工位操作指导, d.工位指导图片 "
// + " FROM MES_计划BOM_订单计划下达_执行顺序 AS a INNER JOIN "
// + "(MES_计划BOM_工位操作指南 AS d INNER JOIN "
// + "(MES_计划BOM_发动机装配指南 AS b INNER JOIN MES_计划BOM_工位基本指导 AS c ON b.工位号 = c.工位号)"
// + "ON d.工位号 = b.工位号) ON a.订单号 = b.订单号"
// + " WHERE a.发动机型号代码=d.发动机型号代码 "
// + " AND a.订单号 = '" + orderForm + "' "
// + " AND b.工位号 = '" + opName + "' "
// + " ORDER BY 物料号 ";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
//}
///// <summary>
///// 0090 F2 分线缸盖上线工位
///// 1、缸盖到位后显示该工位的操作指南物料表和物料验证表
///// 2、扫描缸盖验证缸盖物料号
///// 3、扫描“物料追踪号”
///// 4、保存“物料追踪号”和缸盖号到缸盖需要验证的工位
///// </summary>
///// <returns></returns>
//static public void WorkPositionGuidOnLine_MaterialList_F2(out DataTable dt, out string engineID)
//{
// //订单号
// string orderForm;
// //发动机号
// engineID = null;
// string sql;
// string whereStr = " WHERE c.ID <> 0 ";
// string order = " ORDER BY d.是否优先代码 DESC, a.执行顺序, c.发动机号 ";
// sql = "SELECT a.订单号, a.执行顺序, a.计划下达日期, a.订单完成日期, b.完成情况代码, b.完成情况, "
// + " c.ID, c.发动机号, c.发动机型号代码,c.发动机机型, c.投料日期, c.人员代码, c.班次, "
// + " c.是否优先代码, c.是否装配代码, c.装配日期, d.是否优先代码, d.是否优先, e.是否装配代码, e.是否装配"
// + " FROM (((MES_计划BOM_订单计划下达_执行顺序 AS a INNER JOIN MES_计划BOM_订单计划下达_完成情况 AS b ON a.完成情况代码 = b.完成情况代码) INNER JOIN MES_计划BOM_发动机号 AS c ON a.订单号 = c.订单号) INNER JOIN MES_计划BOM_发动机号_是否优先 AS d ON c.是否优先代码 = d.是否优先代码) INNER JOIN MES_计划BOM_发动机号_是否装配 AS e ON c.是否装配代码 = e.是否装配代码 ";
// whereStr = whereStr + " and e.是否装配代码 = 0";
// sql = sql + whereStr + order;
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
// if (dt != null)
// {
// if (dt.Rows.Count > 0)
// {
// orderForm = dt.Rows[0]["订单号"].ToString();
// engineID = dt.Rows[0]["发动机号"].ToString();
// WorkPositionGuidOnLine_MaterialList(orderForm, ApplicationConfig.OpName, out dt);
// }
// }
//}
///// <summary>
///// 根据追踪代码(挂牌号)获得物料表
/////六分线缸盖半自动工位流程MachineType=“S”ScannerType = “1”
/////OpType=“P2” OpNameMainLine=“OP0000”总线缸盖上线工位
/////1PLC向MES发送工件到位开始扫描信号。WorkStart=1
/////2扫描追踪代码挂牌号
/////3通过OpNameMainLine总线缸盖上线工位工位数据表和本工位的装配指南
/////获得当前工位的装配指南,订单号、缸盖号、机型、机型标志。
/////4显示订单号、缸盖号、机型、机型标志
/////5显示装配指南和被验证物料
/////6MES向PLC写入发动机号、机型、机型标志、追踪代码
/////7MES向PLC写入MES激发变量扫描完成EngineGetOver=1
/////8验证物料。
/////9物料验证完成MES向PLC写入MES激发变量物料验证完毕信号MaterialVerifyOver=1。
/////10PLC向MES发送工件离开信号WorkStart=0
/////保存数据发动机号、机型、机型标志、追踪代码到OpNameMainLine总线缸盖上线工位工位数据表中
/////完成工件当日计数和工作开始时间和结束时间。
///// </summary>
///// <returns></returns>
//static public void WorkPositionGuidOnLine_MaterialList_P2(string opName, string orderForm, out DataTable dt)
//{
// ////物料追踪数据库来源
// //string OpNameOther=null;
// //////物料追踪数据库保存
// ////string OpNameMainLine;
// ////订单号
// //string orderForm=null;
// string sql;
// //sql = "SELECT * FROM [MES_装配数据_零部件追溯_数据主表] "
// // + " WHERE 追踪代码='" + traceCode+"'";
// //DataAccess.ExecuteDataTable_OleDb_Access(sql,ApplicationConfig.OpNameOtherFileName, out dt);
// //if (dt == null) return;
// //if (dt.Rows.Count > 0)
// //{
// // orderForm = dt.Rows[0]["订单号"].ToString();
// //}
// ////物料清单
// sql = "SELECT [ID], [订单号], [SAP物料号], [发动机型号], [发动机型号代码], [发动机机型]," +
// "[发动机数量], [厂牌编号起始号], [客户名称], [投料日期], [文件编号], [集团名称], [通知号], " +
// "[功率], [指南文件编号], [装机状态], [适用状态], [物料描述],[计划下达日期], [计划完工日期],[实际完成日期],[实际结束日期],[操作时间], " +
// "[主配厂家],[工位号], [工位名称], [物料号], [零件图号], [零件名称], [零件数量],[是否扫描],d.扫描方式代码,d.扫描方式,[厂家代码], [生产厂家], " +
// "[操作指导],[工位基本操作指导],[工位基本指导图片],[日计划产量], [工位操作指导],[工位指导图片],b.物料来源代码, b.物料来源, a.是否禁用代码, a.是否禁用,被强制验证物料号,更改代码,更改原因 "
// + " FROM MES_计划BOM_订单计划下达_扫描方式 AS d INNER JOIN (MES_计划BOM_订单计划下达_是否禁用 AS a INNER JOIN (MES_计划BOM_订单计划下达_物料来源 AS b INNER JOIN MES_计划BOM_订单计划下达 AS c ON b.物料来源代码 = c.物料来源代码) ON a.是否禁用代码 = c.是否禁用代码) ON c.扫描方式=d.扫描方式代码 "
// + " WHERE 订单号 ='" + orderForm + "'"
// + " AND 工位号 = '" + opName + "' "
// + " ORDER BY 物料号 ";
// DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt);
//}
/// <summary>
/// 根据订单号和工位获得装配指南信息
/// [MES_计划BOM_订单计划下达]
/// </summary>
/// <param name="orderForm">订单号</param>
/// <param name="OpName">工位号</param>
/// <param name="isVerify">是验证物料还是全部物料</param>
/// <returns></returns>
//public static DataTable GetMaterialListBak(string orderForm, string OpName, bool isVerify)
//{
// string errorMessage;
// DataTable dt;
// string sql;
// if (isVerify)
// {
// sql = "SELECT [ID], [订单号], [SAP物料号], [发动机型号], [发动机型号代码], [发动机机型]," +
// "[发动机数量], [厂牌编号起始号], [客户名称], [投料日期], [文件编号], [集团名称], [通知号], " +
// "[功率], [指南文件编号], [装机状态], [适用状态], [物料描述],[计划下达日期], [计划完工日期]," +
// "[主配厂家],[工位号], [工位名称], [物料号], [零件图号], [零件名称], [零件数量],[是否扫描],d.扫描方式代码,d.扫描方式,[厂家代码], [生产厂家], " +
// "[操作指导],'' as 发动机号,'' as 追踪代码,0 as 物料号表索引号,0 as 零件数量验证,"
// + "'' as 物料条码,'' as 物料条码物料号,'' as 物料条码批次,0 as 验证结果,"
// + "'' as 操作者工号,'' as 操作者姓名,'' as 班次代码,"
// + "b.物料来源代码, b.物料来源, a.是否禁用代码, a.是否禁用,被强制验证物料号,更改代码,更改原因 "
// + " FROM MES_计划BOM_订单计划下达_扫描方式 AS d INNER JOIN (MES_计划BOM_订单计划下达_是否禁用 AS a INNER JOIN (MES_计划BOM_订单计划下达_物料来源 AS b INNER JOIN MES_计划BOM_订单计划下达 AS c ON b.物料来源代码 = c.物料来源代码) ON a.是否禁用代码 = c.是否禁用代码) ON c.扫描方式=d.扫描方式代码 "
// + "where 订单号='" + orderForm + "'"
// + "and 工位号='" + OpName + "' and a.是否禁用代码 = 0 and 是否扫描 <> 0 "
// + " ORDER BY 物料号 ";
// }
// else
// {
// sql = "SELECT [ID],[订单号], [SAP物料号], [发动机型号], [发动机型号代码], [发动机机型]," +
// "[发动机数量], [厂牌编号起始号], [客户名称], [投料日期], [文件编号], [集团名称], [通知号], " +
// "[功率], [指南文件编号], [装机状态], [适用状态], [物料描述],[计划下达日期], [计划完工日期]," +
// "[主配厂家],[工位号], [工位名称], [物料号], [零件图号], [零件名称], [零件数量],[是否扫描],d.扫描方式代码,d.扫描方式,[厂家代码], [生产厂家], " +
// "[操作指导],'' as 发动机号,0 as 物料号表索引号,0 as 零件数量验证,"
// + "'' as 物料条码,'' as 物料条码物料号,'' as 物料条码批次,0 as 验证结果,"
// + "'' as 操作者工号,'' as 操作者姓名,'' as 班次代码,"
// + "b.物料来源代码, b.物料来源, a.是否禁用代码, a.是否禁用,被强制验证物料号,更改代码,更改原因 "
// + " FROM MES_计划BOM_订单计划下达_扫描方式 AS d INNER JOIN (MES_计划BOM_订单计划下达_是否禁用 AS a INNER JOIN (MES_计划BOM_订单计划下达_物料来源 AS b INNER JOIN MES_计划BOM_订单计划下达 AS c ON b.物料来源代码 = c.物料来源代码) ON a.是否禁用代码 = c.是否禁用代码) ON c.扫描方式=d.扫描方式代码 "
// + "where 订单号='" + orderForm + "'"
// + "and 工位号='" + OpName + "' and a.是否禁用代码 = 0 "
// + " ORDER BY 物料号 ";
// }
// SQLCommon.ExecuteDataTable_OleDb(sql, ApplicationConfig.ConnectionString_Access, out dt, out errorMessage);
// return dt;
//}
}
}