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; namespace Warehouse.DAL.PackOutput { public class PackOutput { //原始版本 public List QueryInfo2(string workshop, string bt, string et, string lot, string container, string pallet, string check,string workorder) { using (var context = new mesModel()) { string sql = @"SELECT ast.[pallet_nbr]/*托盘编码*/ ,wh.containerno as container_nbr/*柜号*/ ,ast.[serial_nbr] /*组件序列号*/ ,ast.[workorder]/*工单号*/ ,wm.sale_order ,ast.[power_grade]/*功率档位*/ ,ast.current_grade/*电流档位*/ ,ast.[product_code]/*装配件号*/ ,ast.[el_grade]/*EL等级*/ ,ast.exterior_grade ,ast.[final_grade]/*外观等级*/ ,iv.wks_id ,CONVERT(varchar(100), ppk.[pack_date], 120) as pack_date/*封箱时间*/ ,cpp.[descriptions]/*功率组*/ ,dps.[pallet_status_desc]/*托盘状态*/ ,dst.[descriptions] shift_type/*班次*/ , cast(iv.[pmax] as numeric(18,2)) pmax ,cast(iv.[voc] as numeric(18,2)) voc ,cast(iv.[isc] as numeric(18,2)) isc ,cast(iv.[ff] as numeric(18,2)) ff ,cast(iv.[vpm] as numeric(18,2)) vpm ,cast(iv.[ipm] as numeric(18,2)) ipm ,cast(iv.[rs] as numeric(18,2)) rs ,cast(iv.[rsh] as numeric(18,2)) rsh ,cast(iv.[eff] as numeric(18,2)) eff ,cast(iv.[env_temp] as numeric(18,2)) env_temp ,cast(iv.[surf_temp] as numeric(18,2)) surf_temp ,cast(iv.[temp] as numeric(18,2)) temp ,cast(iv.[ivfile_path] as numeric(18,2)) ivfile_path ,ast.[pack_seq] ,ppk.[check_nbr] ,ms.[descriptions] as cell_supplier/*电池片供应商*/ ,cmc.cell_color_desc ,cmc.cell_type_desc ,'' /*电池片档位*/ ,[cell_uop] /*电池片效率*/ ,iv.[pmax]/(cast(REPLACE(cp.[cell_qty],'W','') as float)*cast(REPLACE([cell_uop],'W','') as float)) fff /*转换效率*/ --,cp.[cell_qty] ,ab.[eva_supplier_code]/*EVA供应商*/ ,cmeva.[eva_thickness] /*EVA规格*/ ,ab.[eva_lot_nbr]/*EVA批号*/ ,ab.[bks_supplier_code]/*背板供应商*/ ,cmbks.[bks_thickness] /*bks规格*/ ,ab.[bks_lot_nbr]/*背板批号*/ ,ab.[glass_supplier_code]/*玻璃供应商*/ ,cmglass.glass_thickness_desc /*玻璃规格*/ ,ab.[glass_lot_nbr]/*电池批号*/ ,ab.[jbox_supplier_code]/*接线盒供应商*/ ,cmjbox.jbox_model_desc/*型材规格*/ ,ab.[jbox_lot_nbr]/*接线盒批号*/ ,ab.[frame_supplier_code]/*型材供应商*/ ,cmframe.frame_thickness_desc/*型材规格*/ ,ab.[frame_lot_nbr]/*型材批号*/ ,wm.[customer] ,ppk.[product_code_original] --,ppk.container_nbr as batch ,CONVERT(varchar(100),iv.wks_visit_date, 120) as wks_visit_date /*测试时间*/ FROM[mes_main].[dbo].[assembly_status] ast left join[mes_level2_iface].[dbo].[iv] iv on ast.[serial_nbr]=iv.[serial_nbr] left join[mes_main].[dbo].[pack_pallets] ppk on ast.[pallet_nbr]=ppk.[pallet_nbr] left join[mes_main].[dbo].[df_pallet_status] dps on ppk.[pallet_status]=dps.[pallet_status] left join[mes_main].[dbo].[df_shift_type] dst on ppk.[shift_type]=dst.[shift_type] left join[mes_main].[dbo].[config_power_group] cpp on ppk.[power_grade_group_id]=cpp.[power_grade_group_id] left join[mes_main].[dbo].[assembly_basis] ab on ast.[serial_nbr]=ab.[serial_nbr] left join[mes_main].[dbo].[config_mat_cell] cmc on ab.[cell_part_nbr]=cmc.[part_nbr] left join[mes_level4_iface].[dbo].[master_supplier] ms on ab.[cell_supplier_code]=ms.[supplier_code] left join[mes_main].[dbo].[config_products] cp on ab.[product_code]=cp.[product_code] left join[mes_main].[dbo].[wo_mfg] wm on ast.[workorder]=wm.[workorder] left join[mes_main].[dbo].[config_mat_eva] cmeva on ab.[eva_part_nbr]=cmeva.[part_nbr] left join[mes_main].[dbo].[config_mat_bks] cmbks on ab.[cell_part_nbr]=cmbks.[part_nbr] left join[mes_main].[dbo].[config_mat_glass] cmglass on ab.glass_part_nbr=cmglass.part_nbr left join[mes_main].[dbo].[config_mat_frame] cmframe on ab.frame_part_nbr=cmframe.part_nbr left join[mes_main].[dbo].[config_mat_jbox] cmjbox on ab.jbox_part_nbr=cmjbox.part_nbr left join wh.dbo.tcontainerpallet wh on ast.pallet_nbr =wh.palletno where 1=1 "; //ppk.[pack_date]>='" + Convert.ToString(bt) + "' and ppk.[pack_date]<='" + Convert.ToString(et) + "' "; //报检单号 sql += (String.IsNullOrEmpty(workshop) | (workorder == "''")) ? "" : " AND wm.area_code='" + Convert.ToString(workshop) + "'"; sql += (String.IsNullOrEmpty(bt) | (bt == "''")) ? "" : " AND ppk.[pack_date]>='" + Convert.ToString(bt) + "'"; //报检单号 sql += (String.IsNullOrEmpty(et) | (et == "''")) ? "" : " AND ppk.[pack_date]<='" + Convert.ToString(et) + "'"; //柜号 sql += String.IsNullOrEmpty(container) | (container == "''") ? "" : " and wh.containerno in ( " + Convert.ToString(container) + " )"; //托盘号 sql += (String.IsNullOrEmpty(pallet)|(pallet=="''")) ? "" : " and ast.[pallet_nbr] in ( " + Convert.ToString(pallet) + " ) "; //组件序列号 sql += (String.IsNullOrEmpty(lot) | (lot == "''")) ? "" : " AND ast.[serial_nbr] in ( " + Convert.ToString(lot) + " )"; //报检单号 sql += (String.IsNullOrEmpty(check) |(check == "''")) ? "" : " AND ppk.[check_nbr]='" + Convert.ToString(check) + "'"; sql += (String.IsNullOrEmpty(workorder) | (workorder == "''")) ? "" : " AND wm.workorder='" + Convert.ToString(workorder) + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //山东客户版本 public List QueryInfo(string workshop, string bt, string et, string lot, string container, string pallet, string check, string workorder) { using (var context = new mesModel()) { string sql = @"SELECT wh.containerno as container_nbr/*柜号*/ ,ast.[pallet_nbr]/*托盘编码*/ ,ast.[pack_seq]/*包装顺序*/ ,ast.[workorder]/*工单号*/ ,wm.sale_order ,ast.[serial_nbr] /*组件序列号*/ ,CONVERT(varchar(100), ppk.[pack_date], 120) as pack_date/*封箱时间*/ ,CONVERT(varchar(100),iv.wks_visit_date, 120) as wks_visit_date /*测试时间*/ ,iv.wks_id/*测试机台*/ ,ast.[power_grade]/*功率档位*/ ,ast.current_grade/*电流档位*/ --,ast.[product_code]/*装配件号*/ ,ast.[el_grade]/*EL等级*/ ,ast.exterior_grade/*外观等级*/ ,ast.[final_grade]/*最终等级*/ --,cpp.[descriptions]/*功率组*/ --,dst.[descriptions] shift_type/*班次*/ --, cast(iv.[pmax] as numeric(18,2)) pmax --, round(iv.[pmax] ,2) pmax ,iv.[pmax] --,round(iv.[ff] ,2) ff ,iv.[ff] --,round(iv.[voc] ,2) voc ,iv.[voc] --,round(iv.[isc] ,2) isc ,iv.[isc] --,round(iv.[vpm] ,2) vpm ,iv.[vpm] --,round(iv.[ipm] ,2) ipm ,iv.[ipm] --,round(iv.[rs] ,2) rs ,iv.[rs] --,round(iv.[rsh] ,2) rsh ,iv.[rsh] ,iv.[eff] --,cast(iv.[eff] as numeric(18,2)) eff --,round(iv.[env_temp] ,2) env_temp ,iv.[env_temp] --,cast(iv.[surf_temp] as numeric(18,2)) surf_temp --,cast(iv.[temp] as numeric(18,2)) temp --,cast(iv.[ivfile_path] as numeric(18,2)) ivfile_path --,round(iv.[surf_temp] ,2) tmod ,iv.[surf_temp] tmod ,ms.[descriptions] as cell_supplier/*电池片供应商*/ --,ppk.[check_nbr] ,case when cmc.attr_code = 'cell_uop' then cmc.attr_value end cell_uop/*单片功率*/ ,case when color.attr_code = 'cell_color' then color.attr_value end cell_color/*电池颜色*/ ,case when grade.attr_code = 'cell_grade' then grade.attr_value end cell_grade/*电池片等级*/ ,case when type.attr_code = 'cell_type' then type.attr_value end cell_type/*电池片类型*/ ,case when eff.attr_code = 'cell_eff' then eff.attr_value end cell_eff/*电池片效率档*/ --,iv.[pmax]/(cast(REPLACE(cp.[cell_qty],'W','') as float)*cast(REPLACE([cell_uop],'W','') as float)) fff /*转换效率*/ --,cp.[cell_qty] --,ppk.container_nbr as batch ,dps.[pallet_status_desc]/*托盘状态*/ FROM[mes_main].[dbo].[assembly_status] ast left join[mes_level2_iface].[dbo].[iv] iv on ast.[serial_nbr]=iv.[serial_nbr] left join[mes_main].[dbo].[pack_pallets] ppk on ast.[pallet_nbr]=ppk.[pallet_nbr] left join[mes_main].[dbo].[df_pallet_status] dps on ppk.[pallet_status]=dps.[pallet_status] left join[mes_main].[dbo].[df_shift_type] dst on ppk.[shift_type]=dst.[shift_type] left join[mes_main].[dbo].[config_power_group] cpp on ppk.[power_grade_group_id]=cpp.[power_grade_group_id] LEFT join mes_main.dbo.trace_componnet_lot ab on ab.serial_nbr = ast.serial_nbr and ab.part_type = 'CELL' --left join[mes_main].[dbo].[assembly_basis] -- ab --on ast.[serial_nbr]=ab.[serial_nbr] left join[mes_main].[dbo].[config_mat_attr] cmc on ab.part_nbr=cmc.[part_nbr] and cmc.attr_code = 'cell_uop' left join[mes_main].[dbo].[config_mat_attr] color on ab.part_nbr=color.[part_nbr] and color.attr_code = 'cell_color' left join[mes_main].[dbo].[config_mat_attr] grade on ab.part_nbr=grade.[part_nbr] and grade.attr_code = 'cell_grade' left join[mes_main].[dbo].[config_mat_attr] type on ab.part_nbr=type.[part_nbr] and type.attr_code = 'cell_type' left join[mes_main].[dbo].[config_mat_attr] eff on ab.part_nbr=eff.[part_nbr] and eff.attr_code = 'cell_eff' left join[mes_level4_iface].[dbo].[master_supplier] ms on ab.supplier_code=ms.[supplier_code] left join[mes_main].[dbo].[config_products] cp on ppk.[product_code]=cp.[product_code] left join[mes_main].[dbo].[wo_mfg] wm on ast.[workorder]=wm.[workorder] --left join[mes_main].[dbo].[config_mat_eva] --cmeva --on ab.[eva_part_nbr]=cmeva.[part_nbr] --left join[mes_main].[dbo].[config_mat_bks] --cmbks --on ab.[cell_part_nbr]=cmbks.[part_nbr] --left join[mes_main].[dbo].[config_mat_glass] --cmglass --on ab.glass_part_nbr=cmglass.part_nbr --left join[mes_main].[dbo].[config_mat_frame] --cmframe --on ab.frame_part_nbr=cmframe.part_nbr --left join[mes_main].[dbo].[config_mat_jbox] --cmjbox --on ab.jbox_part_nbr=cmjbox.part_nbr left join wh.dbo.tcontainerpallet wh on ast.pallet_nbr =wh.palletno where 1=1 and ast.pallet_nbr is not null"; //ppk.[pack_date]>='" + Convert.ToString(bt) + "' and ppk.[pack_date]<='" + Convert.ToString(et) + "' "; //报检单号 sql += (String.IsNullOrEmpty(workshop) | (workorder == "''")) ? "" : " AND wm.area_code='" + Convert.ToString(workshop) + "'"; sql += (String.IsNullOrEmpty(bt) | (bt == "''")) ? "" : " AND ppk.[pack_date]>='" + Convert.ToString(bt) + "'"; //报检单号 sql += (String.IsNullOrEmpty(et) | (et == "''")) ? "" : " AND ppk.[pack_date]<='" + Convert.ToString(et) + "'"; //柜号 sql += String.IsNullOrEmpty(container) | (container == "''") ? "" : " and wh.containerno in ( " + Convert.ToString(container) + " )"; //托盘号 sql += (String.IsNullOrEmpty(pallet) | (pallet == "''")) ? "" : " and ast.[pallet_nbr] in ( " + Convert.ToString(pallet) + " ) "; //组件序列号 sql += (String.IsNullOrEmpty(lot) | (lot == "''")) ? "" : " AND ast.[serial_nbr] in ( " + Convert.ToString(lot) + " )"; //报检单号 sql += (String.IsNullOrEmpty(check) | (check == "''")) ? "" : " AND ppk.[check_nbr]='" + Convert.ToString(check) + "'"; sql += (String.IsNullOrEmpty(workorder) | (workorder == "''")) ? "" : " AND wm.workorder='" + Convert.ToString(workorder) + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //英利客户版本 public List QueryDetailInfo(string workshop, string bt, string et, string lot, string container, string pallet, string check, string workorder) { using (var context = new mesModel()) { string sql = @"SELECT ast.[pallet_nbr]/*托盘编码*/ ,ast.[serial_nbr] /*组件序列号*/ --,round(iv.[voc] ,2) voc ,iv.[voc] --,round(iv.[isc] ,2) isc ,iv.[isc] ,iv.[pmax] --,round(iv.[vpm] ,2) vpm ,iv.[vpm] --,round(iv.[ipm] ,2) ipm ,iv.[ipm] ,cast(substring(cast(iv.[ff]*100.00 as varchar(10)),1,charindex('.',iv.[ff]*100.00)+2) as float) as ff ,CONVERT(varchar(100),iv.wks_visit_date, 120) as wks_visit_date /*测试时间*/ FROM[mes_main].[dbo].[assembly_status] ast left join[mes_level2_iface].[dbo].[iv] iv on ast.[serial_nbr]=iv.[serial_nbr] left join[mes_main].[dbo].[pack_pallets] ppk on ast.[pallet_nbr]=ppk.[pallet_nbr] left join[mes_main].[dbo].[df_pallet_status] dps on ppk.[pallet_status]=dps.[pallet_status] left join[mes_main].[dbo].[df_shift_type] dst on ppk.[shift_type]=dst.[shift_type] left join[mes_main].[dbo].[config_power_group] cpp on ppk.[power_grade_group_id]=cpp.[power_grade_group_id] LEFT join mes_main.dbo.trace_componnet_lot ab on ab.serial_nbr = ast.serial_nbr and ab.part_type = 'CELL' --left join[mes_main].[dbo].[assembly_basis] -- ab --on ast.[serial_nbr]=ab.[serial_nbr] left join[mes_main].[dbo].[config_mat_attr] cmc on ab.part_nbr=cmc.[part_nbr] and cmc.attr_code = 'cell_uop' left join[mes_main].[dbo].[config_mat_attr] color on ab.part_nbr=color.[part_nbr] and color.attr_code = 'cell_color' left join[mes_main].[dbo].[config_mat_attr] grade on ab.part_nbr=grade.[part_nbr] and grade.attr_code = 'cell_grade' left join[mes_main].[dbo].[config_mat_attr] type on ab.part_nbr=type.[part_nbr] and type.attr_code = 'cell_type' left join[mes_main].[dbo].[config_mat_attr] eff on ab.part_nbr=eff.[part_nbr] and eff.attr_code = 'cell_eff' left join[mes_level4_iface].[dbo].[master_supplier] ms on ab.supplier_code=ms.[supplier_code] left join[mes_main].[dbo].[config_products] cp on ppk.[product_code]=cp.[product_code] left join[mes_main].[dbo].[wo_mfg] wm on ast.[workorder]=wm.[workorder] --left join[mes_main].[dbo].[config_mat_eva] --cmeva --on ab.[eva_part_nbr]=cmeva.[part_nbr] --left join[mes_main].[dbo].[config_mat_bks] --cmbks --on ab.[cell_part_nbr]=cmbks.[part_nbr] --left join[mes_main].[dbo].[config_mat_glass] --cmglass --on ab.glass_part_nbr=cmglass.part_nbr --left join[mes_main].[dbo].[config_mat_frame] --cmframe --on ab.frame_part_nbr=cmframe.part_nbr --left join[mes_main].[dbo].[config_mat_jbox] --cmjbox --on ab.jbox_part_nbr=cmjbox.part_nbr left join wh.dbo.tcontainerpallet wh on ast.pallet_nbr =wh.palletno where 1=1 and ast.[pallet_nbr] is not null"; //ppk.[pack_date]>='" + Convert.ToString(bt) + "' and ppk.[pack_date]<='" + Convert.ToString(et) + "' "; //报检单号 sql += (String.IsNullOrEmpty(workshop) | (workorder == "''")) ? "" : " AND wm.area_code='" + Convert.ToString(workshop) + "'"; sql += (String.IsNullOrEmpty(bt) | (bt == "''")) ? "" : " AND ppk.[pack_date]>='" + Convert.ToString(bt) + "'"; //报检单号 sql += (String.IsNullOrEmpty(et) | (et == "''")) ? "" : " AND ppk.[pack_date]<='" + Convert.ToString(et) + "'"; //柜号 sql += String.IsNullOrEmpty(container) | (container == "''") ? "" : " and wh.containerno in ( " + Convert.ToString(container) + " )"; //托盘号 sql += (String.IsNullOrEmpty(pallet) | (pallet == "''")) ? "" : " and ast.[pallet_nbr] in ( " + Convert.ToString(pallet) + " ) "; //组件序列号 sql += (String.IsNullOrEmpty(lot) | (lot == "''")) ? "" : " AND ast.[serial_nbr] in ( " + Convert.ToString(lot) + " )"; //报检单号 sql += (String.IsNullOrEmpty(check) | (check == "''")) ? "" : " AND ppk.[check_nbr]='" + Convert.ToString(check) + "'"; sql += (String.IsNullOrEmpty(workorder) | (workorder == "''")) ? "" : " AND wm.workorder='" + Convert.ToString(workorder) + "'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } public List QueryStatus() { using (var context = new mesModel()) { string sql = @"select * from [mes_main].[dbo].[df_wks_visit_type] vt where vt.visit_type in ('M','H','RL','S')"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } } }