旧版报表、仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

407 lines
17 KiB

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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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();
}
}
}
}