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

1002 lines
57 KiB

using System;
using System.Collections.Generic;
using System.Data.Entity.Validation;
using System.Linq;
using System.Web;
using Warehouse.Models;
using Warehouse.Models.mesModel;
using Warehouse.Models.mesMysqlModel;
using Z.EntityFramework.Plus;
namespace Warehouse.DAL.Order
{
public class Order
{
public IEnumerable<dynamic> GETorder(string order)
{
using (var context = new mesModel())
{
var res = from a in context.trace_workstation_visit
join b in context.assembly_status on a.serial_nbr equals b.serial_nbr
join c in context.wo_mfg on b.workorder equals c.workorder
join d in context.pack_pallets on b.pallet_nbr equals d.pallet_nbr
join e in context.df_pallet_status on d.pallet_status equals e.pallet_status
where (c.sale_order == order && e.pallet_status == 1)
select new
{
c.customer,
c.sale_order,
c.plan_qty,
//cnd = b.pallet_nbr.Count(),
b.serial_nbr,
c.create_date
} into x
group x by new { x.customer,x.sale_order } into g
select new
{
aa = g.Key.customer,
count = g.Select(x => x.serial_nbr).Count(),
crea = g.Select(c=>c.create_date).Distinct().FirstOrDefault(),
sale_oder = g.Select(e => e.sale_order).Distinct().FirstOrDefault(),
//plan_qyt = g.Select(f => f.plan_qty).Sum()
};
//var res = context.tusers.Where(a => a.UserId == 2).Select(a=>new {a.tuserroles,a.UserId }).ToList();
if (res.Count() != 0)
{
return res.ToList();
}
else
{
return null;
}
}
}
public IEnumerable<dynamic> Getworkorder(string order)
{
using (var context = new mesModel())
{
try
{
var res = from c in context.wo_mfg //GD
where (c.sale_order == order)
select new
{
c.plan_qty,
c.workorder,
} into x
group x by new { x.workorder } into g
select new
{
plan_qyt = g.Select(a => a.plan_qty).Sum()
};
if (res.Count() != 0)
return res.ToList();
else
return null;
}
catch (Exception ex)
{
return null;
}
}
}
public List<dynamic> QueryStockInfoByPallet(string workshop)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
string strwhere1 = string.Empty;
string strwhere2 = string.Empty;
if (!string.IsNullOrEmpty(workshop))
{
strwhere = "and a.area_code = '" + workshop + @"' ";
strwhere1 = "and wo.area_code = '" + workshop + @"' ";
strwhere2 = "and b.area_code = '" + workshop + @"' ";
}
string sql = @"select final.sale_order,final.OEMcustomer,final.planqty,final.pallqty
,convert(varchar(50),cast(ROUND((final.pallqty*100.00/final.planqty),2) as numeric(20,2)))+'%' as completion
,convert(varchar(50),cast(ROUND((final.Goodqty*100.00/
case
when final.pallqty = 0 then 1
else final.pallqty
end
),2) as numeric(20,2)))+'%' as yield
from
(
SELECT b.OEMcustomer,b.sale_order,c.planqty,count(case when a.pallet_nbr is not null then 1 end) pallqty
,count(case when a.pallet_nbr is not null and (a.final_grade = 'A' or a.final_grade = 'Q0') then 1 end) Goodqty
,MIN(b.create_date) as create_date
FROM [mes_main].[dbo].[assembly_status] a
left join mes_main.dbo.wo_mfg b
on a.workorder =b.workorder
left join
(
SELECT a.sale_order,SUM(plan_qty) as planqty
FROM [mes_main].[dbo].[wo_mfg] a
where 1=1
" + strwhere + @"
group by a.sale_order
) c
on b.sale_order = c.sale_order
where b.sale_order in
(select wo.sale_order from mes_main.dbo.wo_mfg wo
where wo.wo_status = 'O' " + strwhere1 + @"
)
" + strwhere2 + @"
group by b.sale_order,b.OEMcustomer,c.planqty
) final
";
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryStockInfoByPalletL6()
{
using (var context = new mymesModel())
{
string sql = @"SELEct A.sale_order,A.预计数量 as expected_nbr,A.customer,A.Create_Date,ifnull(B.包装数量,0) as pack_nbr,
ifnull(CONCAT(ROUND(B.包装数量/A.预计数量*100,2),'%'),'0.00%') AS 完成率,
ifnull(CONCAT(ROUND(D.良品数量/B.包装数量*100,2),'%'),'0.00%') AS 成品率
FROM (select b.sale_order,SUM(b.qty) as 预计数量,b.customer,b.Create_Date from js_mes.df_wo_info b
group by sale_order) A
left join (select a.sale_order,sum(b.serial_nbr) as 包装数量 from
js_mes.df_wo_info a
left join (SELECT WorkOrder_ID as workorder,COUNT(Module_ID) as serial_nbr
from js_mes.rt_mid_packing
group by workorder_id
) b
on a.workorder_id=b.workorder
group by sale_order) B
on A.sale_order=B.sale_order
left join(SELECT b.sale_order,count(a.module_id) as 不良数量
FROM js_mes.rt_mid_packing a
join lotbasis b
on a.module_id=b.module_id
where b.status !='A'
group by b.sale_order ) C
on C.sale_order=A.sale_order
left join(SELECT count(a.Module_ID) as 良品数量,b.sale_order FROM js_mes.rt_mid_packing a
left join js_mes.df_wo_info b
on a.workorder_id= b.workorder_id
where a.Module_Grade in('A','OK','Q1','ok')
group by b.sale_order) D
on D.sale_order=A.sale_order
where A.sale_order in (SELECT sale_order FROM js_mes.df_wo_info where State = 'open' and Create_Date>= date_add(now(), interval -3 month))
";
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> TwohoursHJ(string workshop)
{
using (var context = new mesModel())
{
string sql =
@"select GZ.times,GZ.焊接,GZ.叠层,GZ.层压,GZ.层压后检验,GZ.装框,GZ.清洗, isnull(IV.iv, 0) as iv,isnull(EL.el, 0) as el,GZ.全检
from(
SELECT case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times,
COUNT(CASE WHEN b.process_code = 'M10' THEN 1 END) AS 焊接,
COUNT(CASE WHEN b.process_code = 'M15' THEN 1 END) AS 叠层,
COUNT(CASE WHEN b.process_code = 'N30' THEN 1 END) AS 层压,
COUNT(CASE WHEN b.process_code = 'N40' THEN 1 END) AS 层压后检验,
COUNT(CASE WHEN b.process_code = 'M45' THEN 1 END) AS 装框,
COUNT(CASE WHEN b.process_code = 'N50' THEN 1 END) AS 清洗,
COUNT(CASE WHEN b.process_code = 'N60' THEN 1 END) AS 全检 FROM[mes_main].[dbo].[trace_workstation_visit] a join mes_main.dbo.config_workstation b on a.wks_id = b.wks_id
where YEAR(a.wks_visit_date) = YEAR(GETDATE()) and month(a.wks_visit_date) = month(GETDATE()) and day(a.wks_visit_date) = day(GETDATE()) and b.area_code = '" + workshop +
@"'
group by
case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)GZ
left join(SELECT count(serial_nbr) as iv,case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times FROM[mes_level2_iface].[dbo].[iv] a left join mes_main.dbo.config_workstation ZD on a.wks_id = ZD.wks_id
where YEAR(a.wks_visit_date) = YEAR(GETDATE()) and month(a.wks_visit_date) = month(GETDATE()) and day(a.wks_visit_date) = day(GETDATE()) and ZD.area_code = '" + workshop +
@"'
group by
case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)IV
on GZ.times = IV.times
left join(SELECT count(serial_nbr) as el,case
when DATEPART(HH, a.wks_visit_date)>= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date)>= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date)>= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date)>= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date)>= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date)>= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date)>= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date)>= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date)>= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date)>= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date)>= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date)>= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times FROM[mes_level2_iface].[dbo].[el] a
left join mes_main.dbo.config_workstation ZD on a.wks_id = ZD.wks_id
where YEAR(a.wks_visit_date)= YEAR(GETDATE()) and month(a.wks_visit_date)= month(GETDATE()) and day(a.wks_visit_date)= day(GETDATE()) and ZD.area_code = '" + workshop +
@"'
group by
case when DATEPART(HH, a.wks_visit_date)>= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date)>= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date)>= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date)>= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date)>= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date)>= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date)>= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date)>= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date)>= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date)>= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date)>= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date)>= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)EL
on GZ.times = EL.times
";
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> TwohoursLine(string workshop, string Line)
{
using (var context = new mesModel())
{
string sql =
@"select GZ.times,GZ.焊接,GZ.叠层,GZ.层压,GZ.层压后检验,GZ.装框,GZ.清洗, isnull(IV.iv, 0) as iv,isnull(EL.el, 0) as el,GZ.全检
from(
SELECT case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times,
COUNT(CASE WHEN b.process_code = 'M10' THEN 1 END) AS 焊接,
COUNT(CASE WHEN b.process_code = 'M15' THEN 1 END) AS 叠层,
COUNT(CASE WHEN b.process_code = 'N30' THEN 1 END) AS 层压,
COUNT(CASE WHEN b.process_code = 'N40' THEN 1 END) AS 层压后检验,
COUNT(CASE WHEN b.process_code = 'M45' THEN 1 END) AS 装框,
COUNT(CASE WHEN b.process_code = 'N50' THEN 1 END) AS 清洗,
COUNT(CASE WHEN b.process_code = 'N60' THEN 1 END) AS 全检 FROM[mes_main].[dbo].[trace_workstation_visit] a join mes_main.dbo.config_workstation b on a.wks_id = b.wks_id
where YEAR(a.wks_visit_date) = YEAR(GETDATE()) and month(a.wks_visit_date) = month(GETDATE()) and day(a.wks_visit_date) = day(GETDATE())
and b.area_code = '" + workshop +
@"' and b.line_id = '" + Line + @"'
group by
case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)GZ
left join(SELECT count(serial_nbr) as iv,case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times FROM[mes_level2_iface].[dbo].[iv] a left join mes_main.dbo.config_workstation ZD on a.wks_id = ZD.wks_id
where YEAR(a.wks_visit_date) = YEAR(GETDATE()) and month(a.wks_visit_date) = month(GETDATE()) and day(a.wks_visit_date) = day(GETDATE()) and ZD.area_code = '" + workshop +
@"'and ZD.line_id = '" + Line + @"'
group by
case when DATEPART(HH, a.wks_visit_date) >= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date) >= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date) >= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date) >= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date) >= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date) >= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date) >= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date) >= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date) >= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date) >= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date) >= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date) >= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)IV
on GZ.times = IV.times
left join(SELECT count(serial_nbr) as el,case
when DATEPART(HH, a.wks_visit_date)>= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date)>= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date)>= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date)>= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date)>= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date)>= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date)>= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date)>= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date)>= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date)>= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date)>= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date)>= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end times FROM[mes_level2_iface].[dbo].[el] a
left join mes_main.dbo.config_workstation ZD on a.wks_id = ZD.wks_id
where YEAR(a.wks_visit_date)= YEAR(GETDATE()) and month(a.wks_visit_date)= month(GETDATE()) and day(a.wks_visit_date)= day(GETDATE()) and ZD.area_code = '" + workshop +
@"'and ZD.line_id = '" + Line + @"'
group by
case when DATEPART(HH, a.wks_visit_date)>= '0' and DATEPART(HH, a.wks_visit_date) < '2' then '2'
when DATEPART(HH, a.wks_visit_date)>= '2' and DATEPART(HH, a.wks_visit_date) < '4' then '4'
when DATEPART(HH, a.wks_visit_date)>= '4' and DATEPART(HH, a.wks_visit_date) < '6' then '6'
when DATEPART(HH, a.wks_visit_date)>= '6' and DATEPART(HH, a.wks_visit_date) < '8' then '8' when DATEPART(HH, a.wks_visit_date)>= '8' and DATEPART(HH, a.wks_visit_date) < '10' then '10'
when DATEPART(HH, a.wks_visit_date)>= '10' and DATEPART(HH, a.wks_visit_date) < '12' then '12'
when DATEPART(HH, a.wks_visit_date)>= '12' and DATEPART(HH, a.wks_visit_date) < '14' then '14'
when DATEPART(HH, a.wks_visit_date)>= '14' and DATEPART(HH, a.wks_visit_date) < '16' then '16' when DATEPART(HH, a.wks_visit_date)>= '16' and DATEPART(HH, a.wks_visit_date) < '18' then '18'
when DATEPART(HH, a.wks_visit_date)>= '18' and DATEPART(HH, a.wks_visit_date) < '20' then '20'
when DATEPART(HH, a.wks_visit_date)>= '20' and DATEPART(HH, a.wks_visit_date) < '22' then '22'
when DATEPART(HH, a.wks_visit_date)>= '22' and DATEPART(HH, a.wks_visit_date) < '24' then '24'
end)EL
on GZ.times = EL.times
";
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryWorkshop()
{
using (var context = new mesModel())
{
string sql = @"SELECT area_code
,descriptions
,plant_code
,active_flag
FROM mes_main.dbo.df_areas
WHERE active_flag='1'";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryWorkTime()
{
using (var context = new mesModel())
{
string sql = @"SELECT TOP 1000 [shift_type]
,[descriptions]
,[active_flag]
,[shift_time]
,[end_time]
,[is_nextday]
FROM [mes_main].[dbo].[df_shift_type]";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryWorkorder(string workshop)
{
using (var context = new mesModel())
{
string sql = @"SELECT [workorder]
FROM [mes_main].[dbo].[wo_mfg]
where wo_status = 'O' and area_code = '" +workshop +"'";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryFinalGrade(string workorder)
{
using (var context = new mesModel())
{
string sql = @"select b.[final_grade]
from [mes_main].[dbo].[wo_mfg] a
left join [mes_main].[dbo].[config_finalgrade] b
on a.customer = b.customer
where a.workorder = '"+ workorder + @"'
group by b.[final_grade]";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryPowerGrade()
{
using (var context = new mesModel())
{
string sql = @"SELECT [power_grade_group_id]
,[descriptions]
FROM [mes_main].[dbo].[config_power_group]";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryMachine(dynamic areacode)
{
using (var context = new mesModel())
{
string sql = @"SELECT wks_id
,wks_desc
FROM mes_main.dbo.config_workstation
WHERE process_code='M10'and area_code='" + areacode + "'";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryMachineByStatus(string processcode, string areacode)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(processcode))
{
strwhere += "and process_code = '" + processcode + @"' ";
}
if (!string.IsNullOrEmpty(processcode))
{
strwhere += "and area_code = '" + areacode + @"' ";
}
string sql = @"SELECT wks_id
,wks_desc
FROM mes_main.dbo.config_workstation
WHERE 1=1 " + strwhere+@"";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> StationInfos(string station,string bt,string et,string workshop,string line)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(station))
{
strwhere += "and c.descriptions = '" + station + @"' ";
}
if (!string.IsNullOrEmpty(bt))
{
strwhere += "and a.wks_visit_date >= '" + bt + @"' ";
}
if (!string.IsNullOrEmpty(et))
{
strwhere += "and a.wks_visit_date <= '" + et + @"' ";
}
if (!string.IsNullOrEmpty(workshop))
{
strwhere += "and d.area_code = '" + workshop + @"' ";
}
if (!string.IsNullOrEmpty(line))
{
strwhere += "and d.line_id = '" + line + @"' ";
}
string sql = @"SELECT a.wks_id,b.wks_desc,COUNT(a.serial_nbr) as WksNbr
FROM [mes_main].[dbo].[trace_workstation_visit] a
LEFT JOIN mes_main.dbo.config_workstation b
on a.wks_id = b.wks_id
left join [mes_main].[dbo].[df_processes] c
on b.process_code = c.process_code
left join [mes_main].[dbo].[config_workstation] d
on d.wks_id = a.wks_id
where 1=1 " + strwhere+@"
group by a.wks_id,b.wks_desc";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> IVtest(string bt, string et, string workshop, string line)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(bt))
{
strwhere += "and a.wks_visit_date >= '" + bt + @"' ";
}
if (!string.IsNullOrEmpty(et))
{
strwhere += "and a.wks_visit_date <= '" + et + @"' ";
}
if (!string.IsNullOrEmpty(workshop))
{
strwhere += "and b.area_code = '" + workshop + @"' ";
}
if (!string.IsNullOrEmpty(line))
{
strwhere += "and b.line_id = '" + line + @"' ";
}
string sql = @"SELECT count(a.serial_nbr) number,a.wks_id
FROM [mes_level2_iface].[dbo].[iv] a
left join mes_main.dbo.config_workstation b
on a.wks_id = b.wks_id
WHERE 1=1 "+strwhere+@"
GROUP BY a.wks_id";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> ELtest(string bt, string et, string workshop, string line)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(bt))
{
strwhere += "and a.wks_visit_date >= '" + bt + @"' ";
}
if (!string.IsNullOrEmpty(et))
{
strwhere += "and a.wks_visit_date <= '" + et + @"' ";
}
if (!string.IsNullOrEmpty(workshop))
{
strwhere += "and b.area_code = '" + workshop + @"' ";
}
if (!string.IsNullOrEmpty(line))
{
strwhere += "and b.line_id = '" + line + @"' ";
}
string sql = @"SELECT count(a.serial_nbr) number,
--a.wks_id,
a.el_grade
FROM [mes_level2_iface].[dbo].[el] a
left join mes_main.dbo.config_workstation b
on a.wks_id = b.wks_id
WHERE a.process_code = 'HEL'" + strwhere+@"
GROUP BY
--a.wks_id,
a.el_grade";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> Inspection(string bt, string et, string workshop, string line)
{
using (var context = new mesModel())
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(bt))
{
strwhere += "and a.create_date >= '" + bt + @"' ";
}
if (!string.IsNullOrEmpty(et))
{
strwhere += "and a.create_date <= '" + et + @"' ";
}
if (!string.IsNullOrEmpty(workshop))
{
strwhere += "and c.area_code = '" + workshop + @"' ";
}
if (!string.IsNullOrEmpty(line))
{
strwhere += "and c.line_id = '" + line + @"' ";
}
string sql = @"SELECT d.defect_type_desc,COUNT(a.serial_nbr) number
FROM [mes_main].[dbo].[defects] a
left join mes_main.dbo.qc_visit b
on a.serial_nbr = b.serial_nbr and b.visit_type = 'H'
left join mes_main.dbo.config_workstation c
on a.wks_id=c.wks_id
left join mes_main.dbo.config_defect_type d
on d.defect_type_id = a.defect_type_id
WHERE a.process_code = 'N40' "+strwhere+@"
-- and a.create_date>=''
group by d.defect_type_desc
--ORDER BY a.create_date desc";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> SiteCapacityStand(dynamic Stand)
{
using (var context = new mesModel())
{
string sql = @"insert into [wh].[dbo].[SiteCapacityStand] values ('" + Stand[0] + "','" + Stand[1] + "','" + Stand[2] + "','"
+ Stand[3] + "','" + Stand[4] + "','" + Stand[5] + "','" + Stand[6] + "','" + Stand[7] + "','"
+ Stand[8] + "','" + Stand[9] + "','" + Stand[10] + "','" + Stand[11] + "','" + Stand[12] + "')";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> SearchLine(string workshop)
{
using (var context = new mesModel())
{
string sql = @"SELECT [line_id]
,[descriptions]
,[area_code]
,[active_flag]
FROM [mes_main].[dbo].[df_lines]
where active_flag = '1' and area_code = '"+workshop+"'";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> QueryProvider()
{
using (var context = new mesModel())
{
string sql = @"SELECT descriptions
,bom_part_nbr
FROM [mes_level4_iface].[dbo].[master_part]
WHERE part_type='CELL'";
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> TwohoursDC()
{
using (var context = new mesModel())
{
string sql = @"
SELECT case
when DATEPART(HH,a.wks_visit_date)>='0' and DATEPART(HH,a.wks_visit_date) <'2' then '02'
when DATEPART(HH,a.wks_visit_date)>='2' and DATEPART(HH,a.wks_visit_date) <'4' then '04'
when DATEPART(HH,a.wks_visit_date)>='4' and DATEPART(HH,a.wks_visit_date) <'6' then '06'
when DATEPART(HH,a.wks_visit_date)>='6' and DATEPART(HH,a.wks_visit_date) <'8' then '08'
when DATEPART(HH,a.wks_visit_date)>='8' and DATEPART(HH,a.wks_visit_date) <'10' then '10'
when DATEPART(HH,a.wks_visit_date)>='10' and DATEPART(HH,a.wks_visit_date) <'12' then '12'
when DATEPART(HH,a.wks_visit_date)>='12' and DATEPART(HH,a.wks_visit_date) <'14' then '14'
when DATEPART(HH,a.wks_visit_date)>='14' and DATEPART(HH,a.wks_visit_date) <'16' then '16'
when DATEPART(HH,a.wks_visit_date)>='16' and DATEPART(HH,a.wks_visit_date) <'18' then '18'
when DATEPART(HH,a.wks_visit_date)>='18' and DATEPART(HH,a.wks_visit_date) <'20' then '20'
when DATEPART(HH,a.wks_visit_date)>='20' and DATEPART(HH,a.wks_visit_date) <'22' then '22'
when DATEPART(HH,a.wks_visit_date)>='22' and DATEPART(HH,a.wks_visit_date) <'24' then '24'
end times,
--COUNT( CASE WHEN b.process_code='M10' THEN 1 END) AS sl
COUNT( CASE WHEN b.process_code='M15' THEN 1 END) AS sl
--COUNT( CASE WHEN b.process_code='N30' THEN 1 END) AS 层压,
--COUNT( CASE WHEN b.process_code='N40' THEN 1 END) AS 层压后检验,
--COUNT( CASE WHEN b.process_code='M45' THEN 1 END) AS 装框,
--COUNT( CASE WHEN b.process_code='N50' THEN 1 END) AS 清洗,
--COUNT( CASE WHEN b.process_code='N60' THEN 1 END) AS 全检
FROM [mes_main].[dbo].[trace_workstation_visit] a
join mes_main.dbo.config_workstation b
on a.wks_id = b.wks_id
--where YEAR(a.wks_visit_date)=YEAR(GETDATE()) and month(a.wks_visit_date)=month(GETDATE()) and day(a.wks_visit_date)=day(GETDATE())
group by
case
when DATEPART(HH,a.wks_visit_date)>='0' and DATEPART(HH,a.wks_visit_date) <'2' then '02'
when DATEPART(HH,a.wks_visit_date)>='2' and DATEPART(HH,a.wks_visit_date) <'4' then '04'
when DATEPART(HH,a.wks_visit_date)>='4' and DATEPART(HH,a.wks_visit_date) <'6' then '06'
when DATEPART(HH,a.wks_visit_date)>='6' and DATEPART(HH,a.wks_visit_date) <'8' then '08'
when DATEPART(HH,a.wks_visit_date)>='8' and DATEPART(HH,a.wks_visit_date) <'10' then '10'
when DATEPART(HH,a.wks_visit_date)>='10' and DATEPART(HH,a.wks_visit_date) <'12' then '12'
when DATEPART(HH,a.wks_visit_date)>='12' and DATEPART(HH,a.wks_visit_date) <'14' then '14'
when DATEPART(HH,a.wks_visit_date)>='14' and DATEPART(HH,a.wks_visit_date) <'16' then '16'
when DATEPART(HH,a.wks_visit_date)>='16' and DATEPART(HH,a.wks_visit_date) <'18' then '18'
when DATEPART(HH,a.wks_visit_date)>='18' and DATEPART(HH,a.wks_visit_date) <'20' then '20'
when DATEPART(HH,a.wks_visit_date)>='20' and DATEPART(HH,a.wks_visit_date) <'22' then '22'
when DATEPART(HH,a.wks_visit_date)>='22' and DATEPART(HH,a.wks_visit_date) <'24' then '24'
end";
//context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList();
var res = context.DynamicListFromSql(sql, null);
if (res != null)
{
return res.ToList();
}
else
{
return null;
}
}
}
public List<dynamic> TwohoursCY()
{
using (var context = new mesModel())
{
string sql = @"
SELECT case
when DATEPART(HH,a.wks_visit_date)>='0' and DATEPART(HH,a.wks_visit_date) <'2' then '02'
when DATEPART(HH,a.wks_visit_date)>='2' and DATEPART(HH,a.wks_visit_date) <'4' then '04'
when DATEPART(HH,a.wks_visit_date)>='4' and DATEPART(HH,a.wks_visit_date) <'6' then '06'
when DATEPART(HH,a.wks_visit_date)>='6' and DATEPART(HH,a.wks_visit_date) <'8' then '08'
when DATEPART(HH,a.wks_visit_date)>='8' and DATEPART(HH,a.wks_visit_date) <'10' then '10'
when DATEPART(HH,a.wks_visit_date)>='10' and DATEPART(HH,a.wks_visit_date) <'12' then '12'
when DATEPART(HH,a.wks_visit_date)>='12' and DATEPART(HH,a.wks_visit_date) <'14' then '14'
when DATEPART(HH,a.wks_visit_date)>='14' and DATEPART(HH,a.wks_visit_date) <'16' then '16'
when DATEPART(HH,a.wks_visit_date)>='16' and DATEPART(HH,a.wks_visit_date) <'18' then '18'
when DATEPART(HH,a.wks_visit_date)>='18' and DATEPART(HH,a.wks_visit_date) <'20' then '20'
when DATEPART(HH,a.wks_visit_date)>='20' and DATEPART(HH,a.wks_visit_date) <'22' then '22'
when DATEPART(HH,a.wks_visit_date)>='22' and DATEPART(HH,a.wks_visit_date) <'24' then '24'
end times,
--COUNT( CASE WHEN b.process_code='M10' THEN 1 END) AS sl
--COUNT( CASE WHEN b.process_code='M15' THEN 1 END) AS 叠层,
COUNT( CASE WHEN b.process_code='N30' THEN 1 END) AS sl --COUNT( CASE WHEN b.process_code='N40' THEN 1 END) AS 层压后检验, --COUNT( CASE WHEN b.process_code='M45' THEN 1 END) AS 装框, --COUNT( CASE WHEN b.process_code='N50' THEN 1 END) AS 清洗, --COUNT( CASE WHEN b.process_code='N60' THEN 1 END) AS 全检 FROM [mes_main].[dbo].[trace_workstation_visit] a join mes_main.dbo.config_workstation b on a.wks_id = b.wks_id --where YEAR(a.wks_visit_date)=YEAR(GETDATE()) and month(a.wks_visit_date)=month(GETDATE()) and day(a.wks_visit_date)=day(GETDATE()) group by case when DATEPART(HH,a.wks_visit_date)>='0' and DATEPART(HH,a.wks_visit_date) <'2' then '02' when DATEPART(HH,a.wks_visit_date)>='2' and DATEPART(HH,a.wks_visit_date) <'4' then '04' when DATEPART(HH,a.wks_visit_date)>='4' and DATEPART(HH,a.wks_visit_date) <'6' then '06' when DATEPART(HH,a.wks_visit_date)>='6' and DATEPART(HH,a.wks_visit_date) <'8' then '08' when DATEPART(HH,a.wks_visit_date)>='8' and DATEPART(HH,a.wks_visit_date) <'10' then '10' when DATEPART(HH,a.wks_visit_date)>='10' and DATEPART(HH,a.wks_visit_date) <'12' then '12' when DATEPART(HH,a.wks_visit_date)>='12' and DATEPART(HH,a.wks_visit_date) <'14' then '14' when DATEPART(HH,a.wks_visit_date)>='14' and DATEPART(HH,a.wks_visit_date) <'16' then '16' when DATEPART(HH,a.wks_visit_date)>='16' and DATEPART(HH,a.wks_visit_date) <'18' then '18' when DATEPART(HH,a.wks_visit_date)>='18' and DATEPART(HH,a.wks_visit_date) <'20' then '20' when DATEPART(HH,a.wks_visit_date)>='20' and DATEPART(HH,a.wks_visit_date) <'22' then '22' when DATEPART(HH,a.wks_visit_date)>='22' and DATEPART(HH,a.wks_visit_date) <'24' then '24' end"; //context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List<dynamic> TwohoursZD(string pallet) { using (var context = new mesModel()) { string sql = @" SELECT distinct process_code as 'station' from mes_main.dbo.config_workstation where process_code='" + pallet+"'"; //context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } //public List<dynamic> FourHours(string workshop, string BeginTime, string EndTime, string Projected_Qty) public List<dynamic> FourHours(string workshop, string Weld, string Lamin, string Lamination, string LaminationQC, string Frame, string Clean, string IV, string EL, string Complete, string Pack) { using (var context = new mesModel()) { string strwhere = string.Empty; string teststrwhere = string.Empty; string Welds = string.Empty; string Lamins = string.Empty; string Laminations = string.Empty; string LaminationQCs = string.Empty; string Frames = string.Empty; string Cleans = string.Empty; string IVs = string.Empty; string ELs = string.Empty; string Completes = string.Empty; string Packs = string.Empty; if (!string.IsNullOrEmpty(workshop)) { strwhere = "and b.area_code = '" + workshop + @"' "; teststrwhere = "and ZD.area_code = '" + workshop + @"' "; } if (!string.IsNullOrEmpty(Weld)) { Welds = " GZ.焊接,convert(varchar(50),cast(ROUND((GZ.焊接 *100.00/" + Weld + "),2) as numeric(20,2)))+'%' as 焊接比例,"; } else { Welds = "GZ.焊接,'0.00%' as 焊接比例,"; } if (!string.IsNullOrEmpty(Lamin)) { Lamins = "GZ.叠层,convert(varchar(50),cast(ROUND((GZ.叠层 *100.00/"+ Lamin + "),2) as numeric(20,2)))+'%' as 叠层比例,"; } else { Lamins = "GZ.叠层,'0.00%' as 叠层比例,"; } if (!string.IsNullOrEmpty(Lamination)) { Laminations = "GZ.层压,convert(varchar(50),cast(ROUND((GZ.层压 *100.00/"+ Lamination + "),2) as numeric(20,2)))+'%' as 层压比例,"; } else { Laminations = "GZ.层压,'0.00%' as 层压比例,"; } if (!string.IsNullOrEmpty(LaminationQC)) { LaminationQCs = "GZ.层压后检验,convert(varchar(50),cast(ROUND((GZ.层压后检验 *100.00/"+ LaminationQC + "),2) as numeric(20,2)))+'%' as 层压后检验比例,"; } else { LaminationQCs = "GZ.层压后检验,'0.00%' as 层压后检验比例,"; } if (!string.IsNullOrEmpty(Frame)) { Frames = "GZ.装框,convert(varchar(50),cast(ROUND((GZ.装框 *100.00/"+ Frame + "),2) as numeric(20,2)))+'%' as 装框比例,"; } else { Frames = "GZ.装框,'0.00%' as 装框比例,"; } if (!string.IsNullOrEmpty(Clean)) { Cleans = "GZ.清洗,convert(varchar(50),cast(ROUND((GZ.清洗 *100.00/"+ Clean + "),2) as numeric(20,2)))+'%' as 清洗比例,"; } else { Cleans = "GZ.清洗,'0.00%' as 清洗比例,"; } if (!string.IsNullOrEmpty(IV)) { IVs = "isnull(IV.iv,0)as iv,convert(varchar(50),cast(ROUND((iv *100.00/"+IV+"),2) as numeric(20,2)))+'%' as IV比例,"; } else { IVs = "isnull(IV.iv,0)as iv,'0.00%' as IV比例,"; } if (!string.IsNullOrEmpty(EL)) { ELs = "isnull(EL.el,0)as el,convert(varchar(50),cast(ROUND((el *100.00/"+EL+"),2) as numeric(20,2)))+'%' as EL比例,"; } else { ELs = "isnull(EL.el,0)as el,'0.00%' as EL比例,"; } if (!string.IsNullOrEmpty(Complete)) { Completes = "GZ.全检,convert(varchar(50),cast(ROUND((GZ.全检 *100.00/"+Complete+"),2) as numeric(20,2)))+'%' as 全检比例,"; } else { Completes = "GZ.全检,'0.00%' as 全检比例,"; } if (!string.IsNullOrEmpty(Pack)) { Packs = "BZ.BZ as 包装,convert(varchar(50),cast(ROUND((BZ.BZ *100.00/"+Pack+"),2) as numeric(20,2)))+'%' as 包装比例"; } else { Packs = "BZ.BZ as 包装,'0.00%' as 包装比例,"; } string sql = @"select" +Welds+ Lamins + Laminations+ LaminationQCs +Frames+Cleans+IVs+ELs+Completes+Packs+@" from ( SELECT COUNT( CASE WHEN b.process_code='M10' THEN 1 END) AS 焊接, COUNT( CASE WHEN b.process_code='M15' THEN 1 END) AS 叠层, COUNT( CASE WHEN b.process_code='N30' THEN 1 END) AS 层压, COUNT( CASE WHEN b.process_code='N40' THEN 1 END) AS 层压后检验, COUNT( CASE WHEN b.process_code='M45' THEN 1 END) AS 装框, COUNT( CASE WHEN b.process_code='N50' THEN 1 END) AS 清洗, COUNT( CASE WHEN b.process_code='N60' THEN 1 END) AS 全检, 1 AS N FROM [mes_main].[dbo].[trace_workstation_visit] a join mes_main.dbo.config_workstation b on a.wks_id = b.wks_id where YEAR(a.wks_visit_date)=YEAR(GETDATE()) and month(a.wks_visit_date)=month(GETDATE()) and day(a.wks_visit_date)=day(GETDATE()) " + strwhere + @" --WHERE b.area_code =1 )GZ left join ( SELECT count(serial_nbr) as iv,1 AS N FROM [mes_level2_iface].[dbo].[iv] a left join mes_main.dbo.config_workstation ZD on a.wks_id=ZD.wks_id where YEAR(a.wks_visit_date)=YEAR(GETDATE()) and month(a.wks_visit_date)=month(GETDATE()) and day(a.wks_visit_date)=day(GETDATE()) " + teststrwhere + @" --WHERE ZD.area_code =1 and a.wks_visit_date >= '2018-04-27 22:57:38.507' and a.wks_visit_date < '2019-04-27 22:57:38.507' )IV on GZ.N=IV.N left join ( SELECT count(serial_nbr) as el,1 AS N FROM [mes_level2_iface].[dbo].[el] a left join mes_main.dbo.config_workstation ZD on a.wks_id=ZD.wks_id where YEAR(a.wks_visit_date)=YEAR(GETDATE()) and month(a.wks_visit_date)=month(GETDATE()) and day(a.wks_visit_date)=day(GETDATE()) " + teststrwhere + @" --WHERE ZD.area_code =1 and a.wks_visit_date >= '2018-04-27 22:57:38.507' and a.wks_visit_date < '2019-04-27 22:57:38.507' )EL on GZ.N=EL.N left join ( SELECT count(serial_nbr) as BZ,1 AS N FROM mes_main.dbo.assembly_status a left join mes_main.dbo.wo_mfg b on a.workorder = b.workorder where YEAR(a.pack_date)=YEAR(GETDATE()) and month(a.pack_date)=month(GETDATE()) and day(a.pack_date)=day(GETDATE()) " + strwhere + @" --and b.area_code =1 )BZ on BZ.N = EL.N "; //context.Database.SqlQuery<dynamic>(" call prGetPalletOfContainer('" + container + "') ").ToList(); // var data = new Dictionary<string, object> //{ // { "workshop", workshop }, // { "endtime",EndTime }, // { "begintime",BeginTime } //}; var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } } }