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 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 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 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } //public List FourHours(string workshop, string BeginTime, string EndTime, string Projected_Qty) public List 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(" call prGetPalletOfContainer('" + container + "') ").ToList(); // var data = new Dictionary //{ // { "workshop", workshop }, // { "endtime",EndTime }, // { "begintime",BeginTime } //}; var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } } }