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.
239 lines
7.8 KiB
239 lines
7.8 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using Warehouse.Models.mesModel;
|
|
|
|
namespace Warehouse.DAL.Report
|
|
{
|
|
public class OnceMoldingRateDal
|
|
{
|
|
|
|
public List<dynamic>[] TwohoursHJ(string machine,string workshop ,string bt,string et)
|
|
{
|
|
List<dynamic>[] ress = new List<dynamic>[3];
|
|
// string workshop = "";
|
|
using (var context = new mesModel())
|
|
{
|
|
string strWhere = string.Empty;
|
|
if (!string.IsNullOrEmpty(machine))
|
|
{
|
|
strWhere += " and a.wks_id = '" + machine + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(workshop))
|
|
{
|
|
strWhere += " and b.area_code = '" + workshop + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(bt))
|
|
{
|
|
strWhere += " and a.wks_visit_date >= '" + bt + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(et))
|
|
{
|
|
strWhere += " and a.wks_visit_date <= '" + et + "' ";
|
|
}
|
|
string str = @"
|
|
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#temp') and type='U')
|
|
begin
|
|
drop table #temp --删除临时表#temp
|
|
end
|
|
select
|
|
a.serial_nbr,a.wks_visit_date,a.wks_id,b.wks_desc,a.shift_type into #temp
|
|
from mes_main.dbo.trace_workstation_visit a
|
|
join mes_main.dbo.config_workstation b
|
|
on a.wks_id = b.wks_id and b.process_code = 'M10'
|
|
join mes_level2_iface.dbo.el c
|
|
on a.serial_nbr = c.serial_nbr and c.process_code ='QEL'
|
|
left join mes_main.dbo.assembly_status d
|
|
on c.serial_nbr = d.serial_nbr
|
|
where d.serial_nbr <>'' " + strWhere + @"
|
|
|
|
--select * from #temp
|
|
|
|
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#temmp') and type='U')
|
|
begin
|
|
drop table #temmp --删除临时表#temmp
|
|
end
|
|
|
|
select a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120) as wks_visit_date,count(a.serial_nbr) Wks_Nbr
|
|
,sum(case when b.serial_nbr is not null then 1 else 0 end) Wks_Bad_Nbr
|
|
into #temmp
|
|
from #temp a
|
|
left join
|
|
(
|
|
select a.serial_nbr from #temp a
|
|
left join mes_main.dbo.qc_visit b
|
|
on a.serial_nbr = b.serial_nbr
|
|
where b.serial_nbr is not null
|
|
group by a.serial_nbr
|
|
)b
|
|
on a.serial_nbr=b.serial_nbr
|
|
group by a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120)
|
|
ORDER BY a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120)";
|
|
string sql = str+
|
|
@"DECLARE @sql_str VARCHAR(8000)
|
|
DECLARE @sql_col VARCHAR(8000)
|
|
DECLARE @EE VARCHAR(8000)
|
|
SET @EE='';
|
|
select @EE = @EE+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN Wks_Nbr END ),0) as ['+wks_visit_date+'过站数],'
|
|
+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN Wks_Nbr-Wks_Bad_Nbr END ),0) as ['+wks_visit_date+'良品数],'
|
|
+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN cast((Wks_Nbr-Wks_Bad_Nbr)*100/Wks_Nbr as varchar(20))+''%'' END ),0) as ['+wks_visit_date+'良品率],'
|
|
from (SELECT wks_visit_date FROM #temmp GROUP BY wks_visit_date) A
|
|
|
|
|
|
--select @EE
|
|
|
|
select @sql_col =ISNULL(@sql_col + ',','') + wks_visit_date
|
|
from #temmp
|
|
group by wks_visit_date
|
|
|
|
SET @sql_str = '
|
|
SELECT * FROM (
|
|
SELECT wks_id as ''机台'',wks_desc,shift_type,'+@EE+' ''AA'' AS ''AA'' FROM #temmp
|
|
group by wks_id,wks_desc,shift_type) AS pvt
|
|
ORDER BY pvt.机台'
|
|
PRINT (@sql_str)
|
|
EXEC (@sql_str);
|
|
|
|
";
|
|
string sql1 = str +
|
|
@"SELECT [wks_id], [wks_desc], [shift_type]
|
|
FROM #temmp
|
|
group by [wks_id], [wks_desc], [shift_type]
|
|
";
|
|
string sql2 = str +
|
|
@"SELECT [wks_visit_date]
|
|
FROM #temmp
|
|
group by [wks_visit_date]
|
|
";
|
|
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
|
|
var res0 = context.DynamicListFromSql(sql, null);
|
|
var res1 = context.DynamicListFromSql(sql1, null);
|
|
var res2 = context.DynamicListFromSql(sql2, null);
|
|
if (res0 != null)
|
|
{
|
|
ress[0] = res0.ToList();
|
|
}
|
|
else
|
|
{
|
|
ress[0] = null;
|
|
}
|
|
if (res1 != null)
|
|
{
|
|
ress[1] = res1.ToList();
|
|
}
|
|
else
|
|
{
|
|
ress[1] = null;
|
|
}
|
|
if (res2 != null)
|
|
{
|
|
ress[2] = res2.ToList();
|
|
}
|
|
else
|
|
{
|
|
ress[2] = null;
|
|
}
|
|
if (ress != null)
|
|
{
|
|
return ress;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
public List<dynamic> MoldingQuery(string machine, string workshop, string bt, string et)
|
|
{
|
|
using (var context = new mesModel())
|
|
{
|
|
//and c.sale_order = '' and b.workorder = '' and c.area_code = '' and a.create_date >= '' and a.create_date < ''
|
|
string strWhere = string.Empty;
|
|
if (!string.IsNullOrEmpty(machine))
|
|
{
|
|
strWhere += " and a.wks_id = '" + machine + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(workshop))
|
|
{
|
|
strWhere += " and b.area_code = '" + workshop + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(bt))
|
|
{
|
|
strWhere += " and a.wks_visit_date >= '" + bt + "' ";
|
|
}
|
|
if (!string.IsNullOrEmpty(et))
|
|
{
|
|
strWhere += " and a.wks_visit_date <= '" + et + "' ";
|
|
}
|
|
string sql = @" if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#temp') and type='U')
|
|
begin
|
|
drop table #temp --删除临时表#temp
|
|
end
|
|
select
|
|
a.serial_nbr,a.wks_visit_date,a.wks_id,b.wks_desc,a.shift_type into #temp
|
|
from mes_main.dbo.trace_workstation_visit a
|
|
join mes_main.dbo.config_workstation b
|
|
on a.wks_id = b.wks_id and b.process_code = 'M10'
|
|
join mes_level2_iface.dbo.el c
|
|
on a.serial_nbr = c.serial_nbr and c.process_code ='QEL'
|
|
left join mes_main.dbo.assembly_status d
|
|
on c.serial_nbr = d.serial_nbr
|
|
where d.serial_nbr <>'' " + strWhere + @"
|
|
--select * from #temp
|
|
|
|
if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#temmp') and type='U')
|
|
begin
|
|
drop table #temmp --删除临时表#temmp
|
|
end
|
|
|
|
select a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120) as wks_visit_date,count(a.serial_nbr) Wks_Nbr
|
|
,sum(case when b.serial_nbr is not null then 1 else 0 end) Wks_Bad_Nbr
|
|
into #temmp
|
|
from #temp a
|
|
left join
|
|
(
|
|
select a.serial_nbr from #temp a
|
|
left join mes_main.dbo.qc_visit b
|
|
on a.serial_nbr = b.serial_nbr
|
|
where b.serial_nbr is not null
|
|
group by a.serial_nbr
|
|
)b
|
|
on a.serial_nbr=b.serial_nbr
|
|
group by a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120)
|
|
ORDER BY a.wks_id,a.wks_desc,a.shift_type,Convert(Char(10),a.wks_visit_date,120)
|
|
|
|
|
|
--select * from #temmp
|
|
|
|
DECLARE @sql_str VARCHAR(8000)
|
|
DECLARE @sql_col VARCHAR(8000)
|
|
DECLARE @EE VARCHAR(8000)
|
|
SET @EE='';
|
|
select @EE = @EE+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN Wks_Nbr END ),0) as ['+wks_visit_date+'过站数],'
|
|
+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN Wks_Nbr-Wks_Bad_Nbr END ),0) as ['+wks_visit_date+'良品数],'
|
|
+'ISNULL(MAX(CASE wks_visit_date WHEN '''+ wks_visit_date+'''THEN (Wks_Nbr-Wks_Bad_Nbr)*100/Wks_Nbr END ),0) as ['+wks_visit_date+'良品率],'
|
|
from (SELECT wks_visit_date FROM #temmp GROUP BY wks_visit_date) A
|
|
|
|
|
|
--select @EE
|
|
|
|
select @sql_col =ISNULL(@sql_col + ',','') + wks_visit_date
|
|
from #temmp
|
|
group by wks_visit_date
|
|
|
|
SET @sql_str = '
|
|
SELECT * FROM (
|
|
SELECT wks_id as ''机台'',shift_type as ''班次'','+@EE+' '' '' AS ''汇总'' FROM #temmp
|
|
group by wks_id,wks_desc,shift_type) AS pvt
|
|
ORDER BY pvt.机台'
|
|
PRINT (@sql_str)
|
|
EXEC (@sql_str);
|
|
";
|
|
var res = context.DynamicListFromSql(sql, null);
|
|
return res.ToList();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|