旧版报表、仓库
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.
 
 
 
 
 

507 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;
using System.Data;
namespace Warehouse.DAL.Report
{
public class RunCard
{
public List<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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<dynamic> 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();
}
}
}
}