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