using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Common;
using Model;
using Model.WcsModel;
namespace BLL.DAL
{
public class DAL_IpPlcInfo
{
#region WCSIP
///
/// 获取WCSIP信息
///
///
///
///
public IList GetList(AjaxGetIpList json, ref PageInfo pageInfo)
{
try
{
StringBuilder strSql = new StringBuilder();
List para = new List();
// 0 未下发 1 已下发 2 ? 3已完成
strSql.Append("select Id,IP, Type,WareHouseNo,Text,IsDel,CreateTime,CreateUser from WCSIP where IsDel = '0'");
if (!string.IsNullOrWhiteSpace(json.Ip))
{
strSql.Append(" and IP like '%" + json.Ip + "%' ");
}
if (!string.IsNullOrWhiteSpace(json.Type))
{
strSql.Append(" and Type = '" + json.Type + "' ");
}
SqlParam[] param = null;
if (para != null)
{
param = para.ToArray();
}
DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), param, "Id", "asc", ref pageInfo);
return ModelConvertHelper.DataTableToModel(dt);
}
catch(Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 获取WCSIP单条信息
///
///
///
public WCSIP GetOneIp(string id)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append($"select Id,IP, Type,WareHouseNo,Text,IsDel,CreateTime,CreateUser from WCSIP where Id = {id} ");
var dt = DataFactory.SqlDataBase().GetDataReaderBySQL(strSql);
return ModelConvertHelper.ReaderToModel(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 获取设备类型
///
///
///
public string GetDicTypeHtml(string type = "")
{
try
{
StringBuilder sb = new StringBuilder();
string resMenuTemplate = "";
sb.AppendFormat(resMenuTemplate, "", "", "选择");
var list = new List();
list.Add(new DicOption()
{
Val="0",
Text = "跺机"
});
list.Add(new DicOption()
{
Val = "1",
Text = "托盘输送线"
});
list.Add(new DicOption()
{
Val = "2",
Text = "件箱输送线"
});
foreach (var row in list)
{
sb.AppendFormat(resMenuTemplate, row.Val, row.Val == type ? "selected='selected'" :
string.Empty, row.Text);
}
return sb.ToString();
}
catch
{
return "";
}
}
///
/// 添加IP信息
///
///
///
public bool IpAdd(AjasWCSIP models)
{
bool result = false;
try
{
StringBuilder sqlString = new StringBuilder();
// 验证任务是否已存在
//sqlString.Append($"select count(Id) from WCSIP where PalletNo = '{models.PalletNo}';");
//DataTable dt = DataFactory.SqlDataBase().GetDataTableBySQL(sqlString);
//if (dt.Rows[0][0].ToString() != "0")
//{
// throw new Exception("托盘号:" + models.PalletNo + ";已存在!");
//}
// 新增任务
sqlString.Clear();
var str = $"insert into WCSIP (IP ,Type ,WareHouseNo ,Text ,IsDel ,CreateTime ,CreateUser) VALUES('{models.IP}','{models.Type}','{models.WareHouseNo}','{models.Text}','0',GETDATE(),'{models.CreateUser}' ); ";
sqlString.Append(str);
var num = DataFactory.SqlDataBase().ExecuteBySql(sqlString);
if (num == 1) result = true;
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 修改IP信息
///
///
///
public bool IpUpdate(AjasWCSIP models)
{
bool result = false;
try
{
StringBuilder sqlString = new StringBuilder();
// 验证任务是否已存在
//sqlString.Append($"select count(Id) from WCSIP where PalletNo = '{models.PalletNo}';");
//DataTable dt = DataFactory.SqlDataBase().GetDataTableBySQL(sqlString);
//if (dt.Rows[0][0].ToString() != "0")
//{
// throw new Exception("托盘号:" + models.PalletNo + ";已存在!");
//}
// 新增任务
sqlString.Clear();
var str = $"update WCSIP set IP = '{models.IP}',Type = '{models.Type}',WareHouseNo = '{models.WareHouseNo}', Text = '{models.Text}' where Id = {models.Id} ; ";
sqlString.Append(str);
var num = DataFactory.SqlDataBase().ExecuteBySql(sqlString);
if (num == 1) result = true;
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 删除IP信息
///
///
///
public bool IpDel(string[] Id)
{
bool result = false;
try
{
int dt = DataFactory.SqlDataBase().IsExist("WCSIP", "Id", Id);
if (dt >= Id.Length)
{
int i = 0;
while (i < Id.Length)
{
StringBuilder sql = new StringBuilder();
// 验证任务是否已存在
sql.Append($"select count(Id) from WCSPlcInfo where PlcIP = {Id[i]};");
DataTable dt2 = DataFactory.SqlDataBase().GetDataTableBySQL(sql);
if (dt2.Rows[0][0].ToString() != "0")
{
throw new Exception($"当前IP下存有工位设备信息,请先移除!");
}
// 获取当前IP信息
sql.Clear();
sql.Append($"select * from WCSIP where Id = '{Id[i]}';");
DataTable monitorDt = DataFactory.SqlDataBase().GetDataTableBySQL(sql);
if (monitorDt != null && monitorDt.Rows.Count > 0)
{
if (monitorDt.Rows[0]["IsDel"].ToString() == "1")
{
i++;
continue;
}
sql.Clear();
// 修改任务状态
sql.Append($"update WCSIP set IsDel = '1' where Id = {Id[i]} ;");
int _ret = DataFactory.SqlDataBase().ExecuteBySql(sql);
if (_ret >= 1) result = true;
}
i++;
}
}
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
#endregion
#region WCSPlcInfo
///
/// 获取WCSPlcInfo信息
///
///
///
///
public IList GetPlcInfoList(AjaxGetIpList json, ref PageInfo pageInfo)
{
try
{
StringBuilder strSql = new StringBuilder();
List para = new List();
// 0 未下发 1 已下发 2 ? 3已完成
strSql.Append("select Id ,PlcIP ,LedIP ,DbNumber ,Level ,StationNum ,PlcPos ,WcsPos ,PosType ,Text ,IsDel ,CreateTime ,CreateUser from WCSPlcInfo where IsDel = '0' ");
if (!string.IsNullOrWhiteSpace(json.Ip))
{
strSql.Append(" and PlcIP = '" + json.Ip + "' ");
}
SqlParam[] param = null;
if (para != null)
{
param = para.ToArray();
}
DataTable dt = DataFactory.SqlDataBase().GetPageList(strSql.ToString(), param, "Id", "asc", ref pageInfo);
return ModelConvertHelper.DataTableToModel(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 获取 WCSPlcInfo 单条信息
///
///
///
public WCSPlcInfo GetOnePlc(string id)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append($"select * from WCSPlcInfo where Id = {id} ");
var dt = DataFactory.SqlDataBase().GetDataReaderBySQL(strSql);
return ModelConvertHelper.ReaderToModel(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 获取设备级别
///
///
///
public string GetDicLevelHtml(string type = "")
{
try
{
StringBuilder sb = new StringBuilder();
string resMenuTemplate = "";
sb.AppendFormat(resMenuTemplate, "", "", "选择");
var list = new List();
list.Add(new DicOption()
{
Val = "1",
Text = "DB区域级别"
});
list.Add(new DicOption()
{
Val = "2",
Text = "工位级别"
});
foreach (var row in list)
{
sb.AppendFormat(resMenuTemplate, row.Val, row.Val == type ? "selected='selected'" :
string.Empty, row.Text);
}
return sb.ToString();
}
catch
{
return "";
}
}
///
/// 获取设备级别
///
///
///
public string GetDicPlcIpHtml(string code = "")
{
try
{
StringBuilder sb = new StringBuilder();
string resMenuTemplate = "";
sb.AppendFormat(resMenuTemplate, "", "", "选择");
StringBuilder sql = new StringBuilder();
sql.Append("select * from WCSIP where IsDel = 0;");
DataTable dt = DataFactory.SqlDataBase().GetDataTableBySQL(sql);
foreach (DataRow row in dt.Rows)
{
sb.AppendFormat(resMenuTemplate, row["Id"].ToString(), row["Id"].ToString() == code ? "selected='selected'" :
string.Empty, row["Text"].ToString());
}
return sb.ToString();
}
catch
{
return "";
}
}
///
/// 添加PlcInfo信息
///
///
///
public bool PlcAdd(AjasWCSPlcInfo models)
{
bool result = false;
try
{
StringBuilder sqlString = new StringBuilder();
// 验证任务是否已存在
//sqlString.Append($"select count(Id) from WCSIP where PalletNo = '{models.PalletNo}';");
//DataTable dt = DataFactory.SqlDataBase().GetDataTableBySQL(sqlString);
//if (dt.Rows[0][0].ToString() != "0")
//{
// throw new Exception("托盘号:" + models.PalletNo + ";已存在!");
//}
// 新增任务
sqlString.Clear();
var str = $"insert into WCSPlcInfo (PlcIP ,LedIP ,DbNumber ,Level,StationNum ,PlcPos ,WcsPos ,PosType ,Text ,IsDel ,CreateTime,CreateUser) VALUES('{models.PlcIP}','{models.LedIP}','{models.DbNumber}','{models.Level}','{models.StationNum}','{models.PlcPos}','{models.WcsPos}','{models.PosType}','{models.Text}','0',GETDATE(),'{models.CreateUser}' ); ";
sqlString.Append(str);
var num = DataFactory.SqlDataBase().ExecuteBySql(sqlString);
if (num == 1) result = true;
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 修改IP信息
///
///
///
public bool PlcUpdate(AjasWCSPlcInfo models)
{
bool result = false;
try
{
StringBuilder sqlString = new StringBuilder();
// 验证任务是否已存在
//sqlString.Append($"select count(Id) from WCSIP where PalletNo = '{models.PalletNo}';");
//DataTable dt = DataFactory.SqlDataBase().GetDataTableBySQL(sqlString);
//if (dt.Rows[0][0].ToString() != "0")
//{
// throw new Exception("托盘号:" + models.PalletNo + ";已存在!");
//}
// 新增任务
sqlString.Clear();
var str = $"update WCSPlcInfo set PlcIP = '{models.PlcIP}',LedIP = '{models.LedIP}',DbNumber ='{models.DbNumber}',Level = '{models.Level}',StationNum = '{models.StationNum}',PlcPos = '{models.PlcPos}',WcsPos = '{models.WcsPos}',PosType = '{models.PosType}',Text = '{models.Text}' where Id = {models.Id} ; ";
sqlString.Append(str);
var num = DataFactory.SqlDataBase().ExecuteBySql(sqlString);
if (num == 1) result = true;
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
///
/// 删除IP信息
///
///
///
public bool PlcDel(string[] Id)
{
bool result = false;
try
{
int dt = DataFactory.SqlDataBase().IsExist("WCSPlcInfo", "Id", Id);
if (dt >= Id.Length)
{
int i = 0;
while (i < Id.Length)
{
StringBuilder sql = new StringBuilder();
// 验证任务是否已存在
sql.Append($"select count(Id) from WCSPlcPos where PlcInfoId = {Id[i]};");
DataTable dt2 = DataFactory.SqlDataBase().GetDataTableBySQL(sql);
if (dt2.Rows[0][0].ToString() != "0")
{
throw new Exception($"当前IP下存有流程字信息,请先移除!");
}
// 获取当前IP信息
sql.Clear();
sql.Append($"select * from WCSPlcInfo where Id = '{Id[i]}';");
DataTable monitorDt = DataFactory.SqlDataBase().GetDataTableBySQL(sql);
if (monitorDt != null && monitorDt.Rows.Count > 0)
{
if (monitorDt.Rows[0]["IsDel"].ToString() == "1")
{
i++;
continue;
}
sql.Clear();
// 修改任务状态
sql.Append($"update WCSPlcInfo set IsDel = '1' where Id = {Id[i]} ;");
int _ret = DataFactory.SqlDataBase().ExecuteBySql(sql);
if (_ret >= 1) result = true;
}
i++;
}
}
return result;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
#endregion
}
public class DicOption
{
public string Val { get; set; }
public string Text { get; set; }
}
}