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 { ///// ///// MES_计划BOM_发动机号 ///// 获得订单号 ///// ///// //static public void WorkPositionGuidOnLine_OrderForm(out DataTable dt) //{ // string sql; // sql = "SELECT distinct 订单号 from MES_计划BOM_订单计划下达_执行顺序 "; // DataAccess.ExecuteDataTable_OleDb_Access(sql, out dt); //} ///// ///// 物料清单 ///// 根据ID号获得物料清单 ///// 一行 ///// ///// ///// //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); //} ///// ///// 物料清单 ///// 根据订单号和工位号 ///// ///// ///// ///// //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); //} ///// ///// 0090 F2 分线缸盖上线工位 ///// 1、缸盖到位后,显示该工位的操作指南,物料表和物料验证表 ///// 2、扫描缸盖,验证缸盖物料号 ///// 3、扫描“物料追踪号” ///// 4、保存“物料追踪号”和缸盖号到缸盖需要验证的工位 ///// ///// //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); // } // } //} ///// ///// 根据追踪代码(挂牌号)获得物料表 /////六:分线缸盖半自动工位流程:MachineType=“S”,ScannerType = “1”, /////OpType=“P2”, OpNameMainLine=“OP0000”(总线缸盖上线工位) /////1:PLC向MES发送工件到位,开始扫描信号。WorkStart=1 /////2:扫描追踪代码(挂牌号) /////3:通过OpNameMainLine(总线缸盖上线工位)工位数据表和本工位的装配指南, /////获得当前工位的装配指南,订单号、缸盖号、机型、机型标志。 /////4:显示订单号、缸盖号、机型、机型标志 /////5:显示装配指南和被验证物料 /////6:MES向PLC写入发动机号、机型、机型标志、追踪代码 /////7:MES向PLC写入MES激发变量扫描完成,EngineGetOver=1 /////8:验证物料。 /////9:物料验证完成,MES向PLC写入MES激发变量物料验证完毕信号,MaterialVerifyOver=1。 /////10:PLC向MES发送工件离开信号WorkStart=0, /////保存数据发动机号、机型、机型标志、追踪代码到OpNameMainLine(总线缸盖上线工位)工位数据表中, /////完成工件当日计数和工作开始时间和结束时间。 ///// ///// //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); //} /// /// 根据订单号和工位获得装配指南信息 /// [MES_计划BOM_订单计划下达] /// /// 订单号 /// 工位号 /// 是验证物料还是全部物料 /// //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; //} } }