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.
315 lines
15 KiB
315 lines
15 KiB
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity.Validation;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using Warehouse.Models.mesModel;
|
|
using Z.EntityFramework.Plus;
|
|
using System;
|
|
using System.Data;
|
|
|
|
namespace Warehouse.DAL.QC
|
|
{
|
|
public class QC
|
|
{
|
|
public List<dynamic> QueryQCInfo(dynamic para)
|
|
{
|
|
using (var context = new mesModel())
|
|
{
|
|
string strwhere = string.Empty;
|
|
string strwheres = string.Empty;
|
|
if (!string.IsNullOrEmpty(para.begintime.ToString()))
|
|
{
|
|
strwhere += "and alls.create_date >= '" + Convert.ToString(para.begintime) + "'";
|
|
strwhere += "and alls.create_date <= '" + Convert.ToString(para.endtime) + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(para.serialno.ToString()))
|
|
{
|
|
strwhere += " and alls.[serial_nbr] = '" + Convert.ToString(para.serialno) + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(para.workshop.ToString()))
|
|
{
|
|
strwhere += " and alls.[area_code] = '" + Convert.ToString(para.workshop) + "'";
|
|
}
|
|
//if (!string.IsNullOrEmpty(para.status.ToString()))
|
|
//{
|
|
// strwhere += " AND qcv.[visit_type] = '" + Convert.ToString(para.status) + "'";
|
|
//}
|
|
if (!string.IsNullOrEmpty(para.workorder.ToString()))
|
|
{
|
|
strwhere += " AND alls.schedule_nbr = '" + Convert.ToString(para.workorder) + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(para.station.ToString()))
|
|
{
|
|
strwheres += " AND e.process_code = '" + Convert.ToString(para.station) + "'";
|
|
}
|
|
|
|
string sql = @"select distinct alls.serial_nbr,alls.sale_order,alls.schedule_nbr,alls.dqstatus,alls.final_grade
|
|
,code.process_code_desc,defecttype.defect_type_name,defectposition.defect_position
|
|
,remark.remark,accord.according_std
|
|
,hold.serial_status hstatus,hold.hperson,CONVERT(varchar(100), hold.htime, 120) as htime
|
|
,qcv.serial_status rstatus,qcv.operator rperson,CONVERT(varchar(100), pend.rtime, 120) as rtime
|
|
from ( select a.serial_nbr,b.sale_order,a.schedule_nbr,c.serial_status dqstatus,c.final_grade,a.create_date,b.area_code
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
left join mes_main.dbo.wo_mfg b
|
|
on a.schedule_nbr = b.workorder
|
|
left join mes_main.dbo.assembly_status c
|
|
on a.serial_nbr = c.serial_nbr
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on a.wks_id = e.wks_id
|
|
where 1=1 " + strwheres+ @") alls
|
|
left join ( select aa.serial_nbr, process_code_desc = (stuff((select ',' + bb.process_code_desc from (select p.serial_nbr,p.process_code_desc from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 "+strwheres+ @"
|
|
group by p.serial_nbr,p.process_code_desc ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.process_code_desc from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.process_code_desc ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) code
|
|
on alls.serial_nbr = code.serial_nbr
|
|
left join ( select aa.serial_nbr, defect_type_name = (stuff((select ',' + bb.defect_type_name from (select p.serial_nbr,d.defect_type_name from
|
|
mes_main.dbo.defects p
|
|
left join mes_main.dbo.config_defect_type d
|
|
on p.defect_type_id = d.defect_type_id
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,d.defect_type_name ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,d.defect_type_name from
|
|
mes_main.dbo.defects p
|
|
left join mes_main.dbo.config_defect_type d
|
|
on p.defect_type_id = d.defect_type_id
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,d.defect_type_name ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) defecttype
|
|
on alls.serial_nbr = defecttype.serial_nbr
|
|
left join (select aa.serial_nbr, defect_position = (stuff((select ',' + bb.defect_position from (select p.serial_nbr,p.defect_position from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.defect_position ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.defect_position from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.defect_position ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) defectposition
|
|
on alls.serial_nbr = defectposition.serial_nbr
|
|
left join (select aa.serial_nbr, remark = (stuff((select ',' + bb.remark from (select p.serial_nbr,p.remark from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.remark ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.remark from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.remark ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) remark
|
|
on alls.serial_nbr = remark.serial_nbr
|
|
left join ( select aa.serial_nbr, according_std = (stuff((select ',' + bb.according_std from (select p.serial_nbr,p.according_std from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.according_std ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.according_std from
|
|
mes_main.dbo.defects p
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on p.wks_id = e.wks_id
|
|
where 1 = 1 " + strwheres + @"
|
|
group by p.serial_nbr,p.according_std ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) accord
|
|
on alls.serial_nbr = accord.serial_nbr
|
|
left join (select a.serial_nbr,a.create_date htime,a.serial_status,a.operator hperson
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
left join [mes_main].[dbo].[config_workstation] e
|
|
on a.wks_id = e.wks_id
|
|
where a.visit_type = 'H' " + strwheres + @" ) hold
|
|
on alls.serial_nbr = hold.serial_nbr
|
|
left join ( select a.serial_nbr,max(a.create_date) rtime
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
where a.wks_id = 'QC' and a.visit_type in ('PENDING','RL','RW','S')
|
|
group by a.serial_nbr) pend
|
|
on alls.serial_nbr = pend.serial_nbr
|
|
left join mes_main.dbo.qc_visit qcv
|
|
on pend.serial_nbr = qcv.serial_nbr and pend.rtime = qcv.create_date
|
|
where 1 = 1 " + strwhere;
|
|
// if (!string.IsNullOrEmpty(para.begintime.ToString()))
|
|
//{
|
|
// sql += "and qcv.create_date >= '" + Convert.ToString(para.begintime) + "'";
|
|
// sql += "and qcv.create_date <= '" + Convert.ToString(para.endtime) + "'";
|
|
//}
|
|
//sql += String.IsNullOrEmpty(para.serialno.ToString()) ? "" : " and qcv.[serial_nbr] LIKE '" + Convert.ToString(para.serialno) + "%'";
|
|
//sql += String.IsNullOrEmpty(para.workshop.ToString()) ? "" : " AND wo.[area_code] = '" + Convert.ToString(para.workshop) + "' ";
|
|
//sql += String.IsNullOrEmpty(para.status.ToString()) ? "" : " AND qcv.[visit_type] = '" + Convert.ToString(para.status) + "'";
|
|
//sql += String.IsNullOrEmpty(para.workorder.ToString()) ? "" : " AND qcv.schedule_nbr = '" + Convert.ToString(para.workorder) + "'";
|
|
var res = context.DynamicListFromSql(sql, null);
|
|
return res.ToList();
|
|
}
|
|
}
|
|
|
|
|
|
public List<dynamic> QueryQCInfonew(dynamic para)
|
|
{
|
|
using (var context = new mesModel())
|
|
{
|
|
string strwhere = string.Empty;
|
|
if (!string.IsNullOrEmpty(para.TestTimeBegin.ToString()))
|
|
{
|
|
strwhere += "and alls.create_date >= '" + Convert.ToString(para.TestTimeBegin) + "'";
|
|
strwhere += "and alls.create_date <= '" + Convert.ToString(para.TestTimeEnd) + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(para.SerialNum.ToString()))
|
|
{
|
|
strwhere += " and alls.[serial_nbr] = '" + Convert.ToString(para.SerialNum) + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(para.WorkShop.ToString()))
|
|
{
|
|
strwhere += " and alls.[area_code] = '" + Convert.ToString(para.WorkShop) + "'";
|
|
}
|
|
//if (!string.IsNullOrEmpty(para.status.ToString()))
|
|
//{
|
|
// strwhere += " AND qcv.[visit_type] = '" + Convert.ToString(para.status) + "'";
|
|
//}
|
|
if (!string.IsNullOrEmpty(para.WorkOrder.ToString()))
|
|
{
|
|
strwhere += " AND alls.schedule_nbr = '" + Convert.ToString(para.WorkOrder) + "'";
|
|
}
|
|
|
|
string sql = @"select distinct alls.serial_nbr,alls.sale_order,alls.schedule_nbr,alls.dqstatus,alls.final_grade
|
|
,code.process_code_desc,defecttype.defect_type_name,defectposition.defect_position
|
|
,remark.remark,accord.according_std
|
|
,hold.serial_status hstatus,hold.hperson,hold.htime
|
|
,qcv.serial_status rstatus,qcv.operator rperson,pend.rtime
|
|
from ( select a.serial_nbr,b.sale_order,a.schedule_nbr,c.serial_status dqstatus,c.final_grade,a.create_date,b.area_code
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
left join mes_main.dbo.wo_mfg b
|
|
on a.schedule_nbr = b.workorder
|
|
left join mes_main.dbo.assembly_status c
|
|
on a.serial_nbr = c.serial_nbr
|
|
where a.wks_id = 'QC') alls
|
|
left join ( select aa.serial_nbr, process_code_desc = (stuff((select ',' + bb.process_code_desc from (select p.serial_nbr,p.process_code_desc from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.process_code_desc ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.process_code_desc from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.process_code_desc ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) code
|
|
on alls.serial_nbr = code.serial_nbr
|
|
left join ( select aa.serial_nbr, defect_type_name = (stuff((select ',' + bb.defect_type_name from (select p.serial_nbr,d.defect_type_name from
|
|
mes_main.dbo.defects p
|
|
left join mes_main.dbo.config_defect_type d
|
|
on p.defect_type_id = d.defect_type_id
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,d.defect_type_name ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,d.defect_type_name from
|
|
mes_main.dbo.defects p
|
|
left join mes_main.dbo.config_defect_type d
|
|
on p.defect_type_id = d.defect_type_id
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,d.defect_type_name ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) defecttype
|
|
on alls.serial_nbr = defecttype.serial_nbr
|
|
left join (select aa.serial_nbr, defect_position = (stuff((select ',' + bb.defect_position from (select p.serial_nbr,p.defect_position from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.defect_position ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.defect_position from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.defect_position ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) defectposition
|
|
on alls.serial_nbr = defectposition.serial_nbr
|
|
left join (select aa.serial_nbr, remark = (stuff((select ',' + bb.remark from (select p.serial_nbr,p.remark from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.remark ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.remark from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.remark ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) remark
|
|
on alls.serial_nbr = remark.serial_nbr
|
|
left join ( select aa.serial_nbr, according_std = (stuff((select ',' + bb.according_std from (select p.serial_nbr,p.according_std from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.according_std ) bb where bb.serial_nbr =
|
|
aa.serial_nbr for xml path('')),1,1,'')) from (select p.serial_nbr,p.according_std from
|
|
mes_main.dbo.defects p
|
|
where 1 = 1 and p.wks_id = 'QC'
|
|
group by p.serial_nbr,p.according_std ) aa
|
|
where aa.serial_nbr != ''
|
|
group by aa.serial_nbr ) accord
|
|
on alls.serial_nbr = accord.serial_nbr
|
|
left join (select a.serial_nbr,a.create_date htime,a.serial_status,a.operator hperson
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
where a.wks_id = 'QC' and a.visit_type = 'H') hold
|
|
on alls.serial_nbr = hold.serial_nbr
|
|
left join ( select a.serial_nbr,max(a.create_date) rtime
|
|
FROM [mes_main].[dbo].[qc_visit] a
|
|
where a.wks_id = 'QC' and a.visit_type in ('PENDING','RL','RW','S')
|
|
group by a.serial_nbr) pend
|
|
on alls.serial_nbr = pend.serial_nbr
|
|
left join mes_main.dbo.qc_visit qcv
|
|
on pend.serial_nbr = qcv.serial_nbr and pend.rtime = qcv.create_date
|
|
where 1 = 1 " + strwhere;
|
|
// if (!string.IsNullOrEmpty(para.begintime.ToString()))
|
|
//{
|
|
// sql += "and qcv.create_date >= '" + Convert.ToString(para.begintime) + "'";
|
|
// sql += "and qcv.create_date <= '" + Convert.ToString(para.endtime) + "'";
|
|
//}
|
|
//sql += String.IsNullOrEmpty(para.serialno.ToString()) ? "" : " and qcv.[serial_nbr] LIKE '" + Convert.ToString(para.serialno) + "%'";
|
|
//sql += String.IsNullOrEmpty(para.workshop.ToString()) ? "" : " AND wo.[area_code] = '" + Convert.ToString(para.workshop) + "' ";
|
|
//sql += String.IsNullOrEmpty(para.status.ToString()) ? "" : " AND qcv.[visit_type] = '" + Convert.ToString(para.status) + "'";
|
|
//sql += String.IsNullOrEmpty(para.workorder.ToString()) ? "" : " AND qcv.schedule_nbr = '" + Convert.ToString(para.workorder) + "'";
|
|
var res = context.DynamicListFromSql(sql, null);
|
|
return res.ToList();
|
|
}
|
|
}
|
|
public List<dynamic> QueryStatus()
|
|
{
|
|
using (var context = new mesModel())
|
|
{
|
|
string sql = @"select * from [mes_main].[dbo].[df_wks_visit_type] vt
|
|
where vt.visit_type in ('M','H','RL','S')";
|
|
var res = context.DynamicListFromSql(sql, null);
|
|
return res.ToList();
|
|
}
|
|
}
|
|
|
|
// public DataTable ExportExcel()
|
|
// {
|
|
// using (var context = new mesModel())
|
|
// {
|
|
// string sql = @"SELECT TOP 1000 *
|
|
//FROM[mes_main].[dbo].[assembly_basis]";
|
|
// var res = context.DynamicListFromSql(sql, null);
|
|
|
|
// return res();
|
|
// }
|
|
// }
|
|
}
|
|
}
|