using System.Collections.Generic; using System.Data.Entity.Validation; using System.Linq; using System.Web; using Warehouse.Models.mesModel; using Z.EntityFramework.Plus; using System; using System.Data; namespace Warehouse.DAL.Report { public class RunCard { public List QueryLotID(dynamic para) { using (var context = new mesModel()) { string sql = @"select ast.[serial_nbr]/*组件编号*/ ,ast.[pallet_nbr]/*托盘号*/ ,ast.[workorder]/*工单*/ ,ast.[product_code]/*产品类型*/ ,ast.[schedule_nbr] ,ast.[serial_status] ,ast.[exterior_grade] ,ast.[el_grade] ,ast.[final_grade] ,ast.[process_idx] ,ast.[process_code]/*站点编号*/ ,proce.descriptions as process_name/*站点名称*/ ,CONVERT(varchar(100),ast.[create_date], 120) as create_date/*投产日期--add by xue lei on 2018-7-31*/ ,ast.[ny_result]/*耐压数据--add by xue lei on 2018-7-31*/ , ( select top 1 create_time FROM [mes_level2_iface].[dbo].[YD9860_Data] where barcode = ast.serial_nbr order by create_time desc) nytime ,ast.power_grade /*功率挡位--add by xue lei on 2018-7-31*/ ,ast.current_grade /*电流挡位--add by xue lei on 2018-7-31*/ ,ast.exterior_grade /*组件等级--add by xue lei on 2018-7-31*/ --,ast.[last_update] -- ,ast.[pack_date] ,ast.[power_grade] ,ast.[current_grade] -- ,ast.[packrule_string] ,ast.[pack_seq] ,mfg.[cell_supplier_desc] ,mfg.area_code /*车间编号*/ ,da.descriptions as workshop_name /*车间*/ ,mfg.[workorder_type] /*工单类型编码*/ ,mfg.[mod_color] /*组件颜色--add by xue lei on 2018-7-31*/ ,mfg.sale_order /*订单号--add by xue lei on 2018-7-31*/ ,wot.descriptions as workorder_type_name/*工单类型*/ ,cus.[cust_desc]/*客户代码*/ from [mes_main].[dbo].[assembly_status] ast left join wo_mfg mfg on ast.workorder=mfg.workorder left join df_wo_status wo on mfg.wo_status=wo.wo_status left join [mes_level4_iface].[dbo].[customers] cus on mfg.[customer]=cus.[cust_id] left join [mes_main].[dbo].[df_processes] proce on ast.[process_code]=proce.[process_code] left join [mes_main].[dbo].[df_wo_type] wot on mfg.[workorder_type]=wot.[workorder_type] left join df_areas da on mfg.area_code=da.area_code and da.active_flag='1' where ast.serial_nbr=@lotid;"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } public List WeldStationInfo() { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,a.cell_uop /*单片功率*/ from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp ,mes_main.dbo.config_mat_cell a where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and tcl.serial_nbr=@lotid and dp.descriptions='焊接' and tcl.part_nbr = a.part_nbr ;"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //装框接线盒 public List FrameBox( string lot) { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,(select top 1 frame_spec_desc from [mes_main].[dbo].[config_mat_frame] where part_nbr = tcl.part_nbr ) spec from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and tcl.serial_nbr='" + lot + "'" + " and dp.descriptions='装框' "; //and dpt.[descriptions]='线盒' var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //EVA public List LaminationEVA(string lot) { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,a.eva_width ,a.eva_thickness from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp ,[mes_main].[dbo].[config_mat_eva] a where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and tcl.part_nbr = a.part_nbr and tcl.serial_nbr='" + lot + "' and dp.descriptions = '叠层' and dpt.[descriptions]='EVA'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //高透EVA public List LaminationHighEVA(string lot) { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,a.eva_width ,a.eva_thickness from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp ,[mes_main].[dbo].[config_mat_eva] a where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and tcl.part_nbr = a.part_nbr and tcl.serial_nbr='" + lot + "' and dp.descriptions='叠层' and dpt.[descriptions]='高透EVA'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //叠层玻璃 public List LaminationGlass(string lot) { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,a.glass_width_desc ,a.glass_thickness_desc ,a.glass_length_desc from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp ,[mes_main].[dbo].[config_mat_glass] a where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and a.part_nbr = tcl.part_nbr and tcl.serial_nbr='" + lot + "' and dp.descriptions='叠层' and dpt.[descriptions]='玻璃'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //叠层背板 public List LaminationBack(string lot) { using (var context = new mesModel()) { string sql = @"select tcl.serial_nbr /*组件序列号*/ ,twv.schedule_nbr/*工单号*/ ,tcl.wks_visit_date/*过站时间*/ ,dpt.[descriptions] part_type/*材料类型*/ ,tcl.part_nbr/*材料料号*/ ,ms.descriptions supplier_code/*材料供应商*/ ,tcl.lot_nbr/*材料批次号*/ ,DU.nickname operator/*材料供应商*/ ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,a.bks_width ,a.bks_thickness from trace_componnet_lot tcl/*记录材料*/ ,trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,wo_mfg wm ,[mes_level4_iface].[dbo].[df_part_type] dpt ,[mes_level4_iface].[dbo].[master_supplier] ms ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp ,[mes_main].[dbo].[config_mat_bks] a where twv.serial_nbr=tcl.serial_nbr and tcl.wks_id=twv.wks_id --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and ab.workorder=wm.workorder and tcl.part_type=dpt.part_type and tcl.supplier_code=ms.supplier_code and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and tcl.part_nbr = a.part_nbr and tcl.serial_nbr='" + lot + "' and dp.descriptions='叠层' and dpt.[descriptions]='背板'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //IV public List IVQueryInfo(string lot) { using (var context = new mesModel()) { string sql = @"SELECT [serial_nbr] ,[wks_id] ,[wks_visit_date] ,[pmax] ,[voc] ,[isc] ,[ff] ,[vpm] ,[ipm] ,[rs] ,[rsh] ,[eff] ,[env_temp] ,[surf_temp] ,[temp] ,[ivfile_path] FROM [mes_level2_iface].[dbo].[iv] iv where iv.serial_nbr='" + lot + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //pack public List PackQueryInfo(string lot) { using (var context = new mesModel()) { string sql = @"select AST.[serial_nbr] ,AST.[pallet_nbr] ,AST.[pack_date] ,PPT.wks_id From [mes_main].[dbo].[assembly_status] ast LEFT JOIN [mes_main].[dbo].[pack_pallets] PPT ON AST.pallet_nbr=PPT.pallet_nbr WHERE AST.[serial_nbr]='" + lot + "' "; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //测试后EL public List ELAfterTest(string lot) { using (var context = new mesModel()) { string sql = @"SELECT [serial_nbr] ,[wks_id] ,[wks_visit_date] ,[el_grade] ,[process_code] ,[el_path] FROM [mes_level2_iface].[dbo].[el] el where [process_code]='HEL' and el.serial_nbr='" + lot + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //层压前EL public List ELBeforeLayup(string lot) { using (var context = new mesModel()) { string sql = @"SELECT [serial_nbr] ,[wks_id] ,[wks_visit_date] ,[el_grade] ,[process_code] ,[el_path] ,case ( select count(*) from mes_main.dbo.qc_visit as a where a.visit_type='M' and wks_id = 'QC' and serial_nbr =el.serial_nbr ) when 0 then 'N' else 'Y' end isRepair FROM [mes_level2_iface].[dbo].[el] el where el.[process_code]='QEL' and el.serial_nbr='" + lot + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //功率后EL public List ELAfterIV(string lot) { using (var context = new mesModel()) { string sql = @"SELECT [serial_nbr] ,[wks_id] ,[wks_visit_date] ,[el_grade] ,[process_code] ,[el_path] FROM [mes_level2_iface].[dbo].[el] el where el.[process_code]='HEL' and el.serial_nbr='" + lot + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //清洗 public List CleanQueryInfo(string lot) { using (var context = new mesModel()) { string sql = @"select datediff(mi, (select top 1 a.wks_visit_date from trace_workstation_visit a inner join [mes_main].[dbo].[config_workstation] b on a.wks_id = b.wks_id where b.process_code = 'M45' and a.serial_nbr = ab.serial_nbr order by a.wks_visit_date desc),twv.wks_visit_date) curingtime ,twv.wks_visit_date ,twv.wks_id/*机台号*/ ,cw.process_code /*站点编号*/ ,dp.descriptions/*站点名称*/ ,dst.descriptions shift_type/*班次*/ ,du.nickname from trace_workstation_visit twv /*记录机台*/ ,assembly_status ab ,[mes_main].[dbo].[df_shift_type] dst ,[mes_auth].[dbo].[df_user] du ,[mes_main].[dbo].[config_workstation] cw ,[mes_main].[dbo].[df_processes] dp where twv.serial_nbr=ab.serial_nbr --and twv.serial_nbr='JYP171202X60000019' and twv.serial_nbr=ab.serial_nbr and twv.shift_type =dst.shift_type and twv.operator=du.username and twv.wks_id=cw.wks_id and cw.process_code=dp.process_code and ab.serial_nbr='" + lot + "' and dp.descriptions='清洗' order by twv.wks_visit_date desc"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //层压后检验 public List QCAfterLayup(string lot) { using (var context = new mesModel()) { string sql = @" select * ,(select nickname from [mes_auth].[dbo].[df_user] where username = a.operator) as username, (select count(*) from mes_main.dbo.qc_visit where qc_visit.visit_type = 'H' and wks_id like '%CYHJ%' and serial_nbr = a.serial_nbr) as isHold from[mes_main].[dbo].[trace_workstation_visit] as a where serial_nbr = '" + lot + "' and wks_id like '%CYHJ%' order by wks_visit_date desc; "; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } } }