using Dapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using VueWebCoreApi.Models;
|
using VueWebCoreApi.Tools;
|
|
namespace VueWebCoreApi.DLL.DAL
|
{
|
public class AppAnDonDAL
|
{
|
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 AppAnDonCallScanSearch(string eqpcode)
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
//获取对应设备及所属车间
|
sql = @"select A.code,A.name,T.torg_code as wksp_code,T.torg_name as wksp_name,E.eqpchkmain_code
|
from TEqpInfo A
|
left join TOrganization T on A.torg_code=T.torg_code
|
left join TEqpchk_Eqp E on A.code=E.eqp_code
|
where A.code=@eqpcode and A.enable='Y'";
|
dynamicParams.Add("@eqpcode", eqpcode);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0)
|
{
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.data = data;
|
}
|
else
|
{
|
mes.code = "300";
|
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 AppAnDonCallItemSearch(string eqpcode, string wkshpcode)
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
List<AnDnDate> list = new List<AnDnDate>();
|
try
|
{
|
//根据车间代码查找呼叫类型数据
|
sql = @"select A.id,B.code,B.name,(case when F.type is null then 'N' else 'Y' end) flag
|
from TAnDon_Roul_ConFig A
|
inner join TAnDonType B on A.andotype_code=B.code
|
inner join TEqpInfo E on A.wkshp_code=e.torg_code
|
left join(
|
select type,wkshp_code,eqp_code from TAnDon_Task_Info where eqp_code=@eqpcode and wkshp_code=@wkshpcode and status='START'
|
) F on A.wkshp_code=F.wkshp_code and E.code=F.eqp_code and B.code=F.type
|
where A.wkshp_code=@wkshpcode and E.code=@eqpcode and A.enable='N'";
|
dynamicParams.Add("@wkshpcode", wkshpcode);
|
dynamicParams.Add("@eqpcode", eqpcode);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0)
|
{
|
for (int i = 0; i < data.Rows.Count; i++)
|
{
|
AnDnDate mn = new AnDnDate();
|
mn.code = data.Rows[i]["CODE"].ToString();
|
mn.name = data.Rows[i]["NAME"].ToString();
|
mn.flag = data.Rows[i]["FLAG"].ToString();
|
mn.children = new List<AnDnDateSub>();
|
//根据呼叫类型id查找绑定人员
|
sql = @"select U.usercode,U.username,U.rid
|
from TAnDon_Roul_ConFigUser A
|
inner join TUser U on A.usercode=U.usercode
|
where A.ando_cogfigid=@id";
|
dynamicParams.Add("@id", data.Rows[i]["ID"].ToString());
|
var data0 = DapperHelper.selectdata(sql, dynamicParams);
|
if (data0.Rows.Count > 0)
|
{
|
for (int j = 0; j < data0.Rows.Count; j++)
|
{
|
AnDnDateSub sn = new AnDnDateSub();
|
sn.rid = data0.Rows[j]["RID"].ToString();//rid
|
sn.alias = data0.Rows[j]["RID"].ToString() + data0.Rows[j]["USERCODE"].ToString(); //别名
|
sn.usercode = data0.Rows[j]["USERCODE"].ToString();
|
sn.username = data0.Rows[j]["USERNAME"].ToString();
|
mn.children.Add(sn);
|
}
|
}
|
list.Add(mn);
|
}
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.data = list;
|
}
|
else
|
{
|
mes.code = "300";
|
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 AppAnDonCallSave(User us, string eqpcode, string wkshpcode, List<AnDnDate> json)
|
{
|
string sql = "";
|
int AnDnID = 0; //最大id
|
var dynamicParams = new DynamicParameters();
|
List<object> list = new List<object>();
|
List<string> list1 = new List<string>();
|
try
|
{
|
list.Clear();
|
//获取主表最大ID
|
AnDnID = DapperHelper.insertReturnId("TAnDon_Task_Info");
|
for (int i = 0; i < json.Count; i++)
|
{
|
AnDnID = AnDnID + 1;//自增1
|
string code = json[i].code.ToString();
|
string name = json[i].name.ToString();
|
sql = @"select * from TAnDon_Task_Info where wkshp_code=@wkshpcode and eqp_code=@eqpcode and type=@typecode and status='START'";
|
dynamicParams.Add("@wkshpcode", wkshpcode);
|
dynamicParams.Add("@eqpcode", eqpcode);
|
dynamicParams.Add("@typecode", code);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0)
|
{
|
mes.code = "300";
|
mes.message = "当前设备已经呼叫【" + name + "】,请先响应!";
|
mes.data = null;
|
return mes;
|
}
|
else
|
{
|
//写入安灯呼叫表
|
sql = @"insert into TAnDon_Task_Info(wkshp_code,eqp_code,type,start_date,start_user,status)
|
values(@wkshp_code,@eqp_code,@type,@start_date,@start_user,@status)";
|
list.Add(new
|
{
|
str = sql,
|
parm = new
|
{
|
wkshp_code = wkshpcode,
|
eqp_code = eqpcode,
|
type = code,
|
start_date = DateTime.Now.ToString(),
|
start_user = us.usercode,
|
status = "START"
|
}
|
});
|
|
//for (int j = 0; j < json[i].children.Count; j++)
|
//{
|
// //写入安灯记录推送人员表
|
// sql = @"insert into TAnDnMessagePush(m_id,wkshp_code,eqp_code,type,resp_user,status)
|
// values(@m_id,@wkshp_code,@eqp_code,@type,@resp_user,@status)";
|
// list.Add(new
|
// {
|
// str = sql,
|
// parm = new
|
// {
|
// m_id = AnDnID,
|
// //m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
|
// wkshp_code = wkshpcode,
|
// eqp_code = eqpcode,
|
// type = code,
|
// resp_user = json[i].children[j].usercode,
|
// alias = json[i].children[j].alias,
|
// status = "N"
|
// }
|
// });
|
//}
|
}
|
}
|
//极光推送
|
//mes = JPushManage.ExecutePushByUserId(us.usercode, wkshpcode, eqpcode, json);
|
bool aa = DapperHelper.DoTransaction(list);
|
if (aa)
|
{
|
//写入操作记录表
|
LogHelper.DbOperateLog(us.usercode, "安灯呼叫", "呼叫了:" + string.Join(",", json.Select(item => item.name)), us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "呼叫成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
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 AppAnDonLampResponseScanSearch(string eqpcode)
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
try
|
{
|
//获取对应设备及所属车间的安灯呼叫记录
|
sql = @"select A.eqp_code,B.name as eqp_name,T.torg_code as wksp_code,T.torg_name as wksp_name,A.type as typecode,D.name as typename
|
from TAnDon_Task_Info A
|
left join TEqpInfo B on A.eqp_code=B.code
|
left join TOrganization T on B.torg_code=T.torg_code
|
left join TAnDonType D on A.type=D.code
|
where A.eqp_code=@eqpcode and A.status='START' and B.enable='Y'";
|
dynamicParams.Add("@eqpcode", eqpcode);
|
var data = DapperHelper.selectdata(sql, dynamicParams);
|
if (data.Rows.Count > 0)
|
{
|
mes.code = "200";
|
mes.message = "查询成功!";
|
mes.data = data;
|
}
|
else
|
{
|
mes.code = "300";
|
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 AppAnDonLampResponseSave(User us, string eqpcode, string wkshpcode, List<ObjectData> json)
|
{
|
string sql = "";
|
var dynamicParams = new DynamicParameters();
|
List<object> list = new List<object>();
|
try
|
{
|
list.Clear();
|
for (int i = 0; i < json.Count; i++)
|
{
|
string code = json[i].code.ToString();
|
string name = json[i].name.ToString();
|
//更新安灯呼叫表
|
sql = @"update TAnDon_Task_Info set resp_user=@resp_user,resp_date=@resp_date,status='CLOSED',taking=cast ( cast ( datediff ( ss, start_date, @resp_date) / ( 60 * 60 * 24 ) as int ) as varchar ) + '天' +
|
cast ( cast ( datediff ( ss, start_date, @resp_date ) % 86400 / 3600 as int ) as varchar ) + '小时' +
|
cast ( cast ( datediff ( ss, start_date, @resp_date ) % 3600 / 60 as int ) as varchar ) + '分' +
|
cast ( cast ( datediff ( ss, start_date, @resp_date ) % 60 as int ) as varchar ) + '秒'
|
where wkshp_code=@wkshp_code and eqp_code=@eqp_code and type=@type and status='START'";
|
list.Add(new
|
{
|
str = sql,
|
parm = new
|
{
|
wkshp_code = wkshpcode,
|
eqp_code = eqpcode,
|
type = code,
|
resp_date = DateTime.Now.ToString(),
|
resp_user = us.usercode,
|
status = "START"
|
}
|
});
|
}
|
bool aa = DapperHelper.DoTransaction(list);
|
if (aa)
|
{
|
LogHelper.DbOperateLog(us.usercode, "安灯响应", "响应了:" + string.Join(",", json.Select(item => item.name)), us.usertype);
|
mes.code = "200";
|
mes.count = 0;
|
mes.message = "响应成功!";
|
mes.data = null;
|
}
|
else
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = "响应失败!";
|
mes.data = null;
|
}
|
|
}
|
catch (Exception e)
|
{
|
mes.code = "300";
|
mes.count = 0;
|
mes.message = e.Message;
|
mes.data = null;
|
}
|
return mes;
|
}
|
#endregion
|
}
|
}
|