using Dapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Linq;
|
using System.Web;
|
using VueWebApi.DDKanBanModel;
|
using VueWebApi.Models;
|
using VueWebApi.Tools;
|
|
namespace VueWebApi.DLL.DAL
|
{
|
public class KanBanManagerentDAL
|
{
|
public static DataTable dt; //定义全局变量dt
|
public static bool res; //定义全局变量dt
|
public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
|
public static string strProcName = ""; //定义全局sql变量
|
public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
|
public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
|
|
|
#region[大岛车间综合看板,生产车间查找产线接口]
|
public static ToMessage ShopSearchLine(string shopcode)
|
{
|
string sql = "";
|
string search = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
if (shopcode != "" && shopcode != null) //车间编码不为空
|
{
|
search += "where wksp_code=@shopcode ";
|
dynamicParams.Add("@shopcode", shopcode);
|
}
|
//车间编码获取产线信息
|
sql = @"select code ,name from TEqpInfo " + search;
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
mes.code = "200";
|
mes.Message = "查询成功!";
|
mes.data = data;
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.Message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[大岛车间综合看板,左上产线加工任务接口]
|
public static ToMessage LineSearchTopLeftData(List<ObjectData> json)
|
{
|
string sql = "";
|
string search = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
if (json == null || json.Count <= 0) //产线编码不为空
|
{
|
List<ShopTopLeft> list = new List<ShopTopLeft>();
|
//获取产线信息
|
for (int i = 0; i < json.Count; i++)
|
{
|
ShopTopLeft line = new ShopTopLeft();
|
line.linecode = json[i].code;
|
line.linename = json[i].name;
|
//获取产线下开工总单量
|
sql = @"select COUNT(*) cont from(
|
select distinct B.rout_code,M.wo_code from TFlw_Rteqp A
|
inner join TFlw_Rtdt B on A.step_code=B.step_code
|
inner join TK_Wrk_Man M on B.rout_code=M.route_code
|
where M.status<>'CLOSED' and M.is_delete<>'1' and A.eqp_code=@linecode) as A";
|
dynamicParams.Add("@linecode", json[i].code);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0 && decimal.Parse(data.Rows[0]["CONT"].ToString())>0)
|
{
|
line.lineworkcont=data.Rows[0]["CONT"].ToString(); //产线总单量
|
line.children = new List<TreeOne>();
|
//查询产线下工单信息
|
sql = @"select distinct E.saleOrderCode,P.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname from TFlw_Rteqp A
|
inner join TFlw_Rtdt B on A.step_code=B.step_code
|
inner join TK_Wrk_Man P on B.rout_code=P.route_code
|
left join TMateriel_Info M on P.materiel_code=M.partcode
|
left join TUom T on M.uom_code=T.code
|
left join TKimp_Ewo E on P.m_po=E.wo
|
where P.status<>'CLOSED' and P.status<>'NEW' and P.is_delete<>'1' and A.eqp_code=@linecode";
|
dynamicParams.Add("@linecode", json[i].code);
|
var data0 = DapperHelper.selectdata(sql, dynamicParams);
|
if (data0.Rows.Count > 0)
|
{
|
for (int j = 0; j < data0.Rows.Count; j++)
|
{
|
string saleOrderCode = data0.Rows[j]["SALEORDERCODE"].ToString();//销售订单号
|
string wo_code = data0.Rows[j]["WO_CODE"].ToString();//工单号
|
string plan_qty = data0.Rows[j]["PLAN_QTY"].ToString();//任务数量
|
string partcode = data0.Rows[j]["PARTCODE"].ToString();//产品编码
|
string partname = data0.Rows[j]["PARTNAME"].ToString();//产品名称
|
string partspec = data0.Rows[j]["PARTSPEC"].ToString();//产品规格
|
string uomname = data0.Rows[j]["UOMNAME"].ToString();//单位名称
|
TreeOne lineone = new TreeOne();
|
lineone.saleordercode = saleOrderCode;
|
lineone.workcode = wo_code;
|
lineone.qty = plan_qty;
|
lineone.partnumber = partcode;
|
lineone.partname = partname;
|
lineone.partspec = partspec;
|
lineone.uom = uomname;
|
line.children.Add(lineone);
|
lineone.children = new List<TreeTwo>();
|
|
//查新工单下工序信息
|
sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty
|
from TK_Wrk_Step A
|
left join TStep T on A.step_code=T.stepcode
|
where A.wo_code=@wo_code";
|
dynamicParams.Add("@linecode", wo_code);
|
var data1 = DapperHelper.selectdata(sql, dynamicParams);
|
for (int k = 0; k < data1.Rows.Count; k++)
|
{
|
string stepseq= data1.Rows[k]["SEQ"].ToString();//工序序号
|
string stepcode = data1.Rows[k]["STEPCODE"].ToString();//工序编码
|
string stepname = data1.Rows[k]["STEPNAME"].ToString();//工序名称
|
string planqty = data1.Rows[k]["PLAN_QTY"].ToString();//任务数量
|
string good_qty = data1.Rows[k]["GOOD_QTY"].ToString();//报工数量
|
string ng_qty = data1.Rows[k]["NG_QTY"].ToString();//不良数量
|
TreeTwo linetwo = new TreeTwo();
|
linetwo.stepseq = stepseq;
|
linetwo.stepcode = stepcode;
|
linetwo.stepname = stepname;
|
linetwo.planqty = planqty;
|
linetwo.goodqty = good_qty;
|
linetwo.ngqty = ng_qty;
|
lineone.children.Add(linetwo);
|
}
|
}
|
list.Add(line);
|
}
|
else
|
{
|
mes.code = "300";
|
mes.Message = "当前产线下无在生产任务!";
|
mes.data = null;
|
return mes;
|
}
|
}
|
else
|
{
|
mes.code = "300";
|
mes.Message = "当前产线下无在生产任务!";
|
mes.data = null;
|
return mes;
|
}
|
}
|
}
|
else
|
{
|
mes.code = "300";
|
mes.Message = "产线参数不能为空!";
|
mes.data = null;
|
}
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.Message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion\
|
|
#region[大岛车间综合看板,左下列表接口]
|
public static ToMessage LineSearchBottomLeftData()
|
{
|
string sql = "";
|
try
|
{
|
//获取任务列表信息
|
sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
|
select A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
|
A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
|
from TK_Wrk_Man A
|
inner join TK_Wrk_Step B on A.wo_code=B.wo_code
|
inner join TKimp_Ewo E on A.m_po=E.wo
|
left join TMateriel_Info M on A.materiel_code=M.partcode
|
left join TUom U on M.uom_code=U.code
|
where A.status<>'CLOSED' and A.is_delete<>'1' and B.isend='Y'
|
)as A ";
|
var data = DapperHelper.selecttable(sql);
|
mes.code = "200";
|
mes.Message = "查询成功!";
|
mes.data = data;
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.Message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[大岛车间综合看板,右上top排行接口]
|
public static ToMessage LineSearchTopRightData()
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
//获取产品报工top5信息
|
sql = @"select top 5 A.partname,isnull(sum(A.good_qty),0) as good_qty from(
|
select M.partname,A.good_qty from TK_Wrk_Record A
|
inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
|
inner join TMateriel_Info M on A.materiel_code=M.partcode
|
where A.style='B' and S.isend='Y'
|
union all
|
select M.partname,A.sqty as good_qty from TK_Wrk_OutRecord A
|
inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
|
inner join TMateriel_Info M on A.materiel_code=M.partcode
|
where A.style='S' and S.isend='Y'
|
) as A group by A.partname order by good_qty desc";
|
var data = DapperHelper.selecttable(sql);
|
mes.code = "200";
|
mes.Message = "查询成功!";
|
mes.data = data;
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.Message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
|
#region[大岛车间综合看板,右下top排行接口]
|
public static ToMessage LineSearchBottomRightData()
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
//获取报工不良top5信息
|
sql = @"select isnull(COUNT(checkitem_name),0) cont,checkitem_name from TStepCheckRecordSub
|
group by checkitem_name order by cont desc";
|
var data = DapperHelper.selecttable(sql);
|
mes.code = "200";
|
mes.Message = "查询成功!";
|
mes.data = data;
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.Message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
}
|
}
|