Files
T-DAS/Epost.DAL/AddressstorageDAL.cs
2025-06-28 09:40:33 +08:00

866 lines
29 KiB
C#

using Epost.Common;
using Epost.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Epost.DAL
{
public class AddressstorageDAL
{
//DB db = new DB();
DataBaseOpration.OprationSqlDAL db = DB_DLL.GetInstance();
#region
public DataTable getBlock(string address,string type,string controlip)
{
string sql = "";
if (string.IsNullOrEmpty(type))
{
sql = string.Format("select * from V_Address where address = '{0}' and ControlIP='{1}'",
address,
controlip);
}
else
{
sql = string.Format("select * from V_Address where type='{1}' and address = '{0}' and ControlIP='{2}'",
address,
type,
controlip);
}
LogHelper.WriteLogInfo("查询设备所在区" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getLocationList(string address,string controlIP)
{
string sql = string.Format(" select * from addressstorage as addr left join controller as con on con.ID=addr.controlid where type=4 and address = '{0}' and ControlIP='{1}'",
address,
controlIP
);
// LogHelper.WriteLogInfo("根据地址查询货位信息" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getArea(string address, string ip)
{
string sql = string.Format("select * from v_address where address='{0}' and ControlIP='{1}'",
address,
ip);
LogHelper.WriteLogInfo("查询扫描枪所在区:" + sql);
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public DataTable getAddressList(string location)
{
string sql = string.Format(" select * from v_address where location = '{0}'",
location
);
// LogHelper.WriteLogInfo("根据货位号查询标签地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getOrderAddress(string location)
{
string sql = string.Format(" select top 1 shopid, address, ControlIP,block,area from v_orders where tolocation = '{0}' ",
location
);
// LogHelper.WriteLogInfo("根据货位号查询标签地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getAddressListByway(string location, string block, string area,string way)
{
string sql = string.Format(" select * from addressstorage where location = '{0}' and block='{1}' and area='{2}' and way='{3}'",
location,
block,
area,way
);
// LogHelper.WriteLogInfo("根据地址、通道查询信息:" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getControlList()
{
string sql = string.Format("select * from Controller");
// LogHelper.WriteLogInfo("获取控制器列表" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getAddressList()
{
string sql = string.Format("select address,ControlIP,block,area,way,type,bkaddress,addresstype from V_address group by address,ControlIP,block,area,way,type,bkaddress,addresstype ORDER BY TYPE DESC");
// LogHelper.WriteLogInfo("获取控制器列表" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getLabelList(string controlid)
{
string sql = string.Format(" select distinct address, state, type, ControlID,addresstype from Addressstorage where type in (1, 2, 8) and Controlid = '{0}' ",
controlid);
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public DataTable getLabelList(string controlid,string batchno)
{
string sql = string.Format(" select distinct address, state, type, ControlID,addresstype,isnull(shopid,'') as shopid,name,batchno from v_storeaddress where type in (1, 2, 8) and Controlid = '{0}' and batchno='{1}' ",
controlid,batchno);
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public DataTable getAddressByBlock(string block)
{
string sql = string.Format("select * from V_Address where type = 2 and block = '{0}'",
block);
// LogHelper.WriteLogInfo("根据区域 查询显示箱号地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getAddressByBlock(string block, string area)
{
string sql = string.Format("select addr.*,con.ControlIP from addressstorage as addr left join controller as con on addr.controlid = con.id where block='{0}' and area='{1}' and type=2",
block,
area);
// LogHelper.WriteLogInfo("根据区域 查询显示箱号地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetBoxAddress(string block,string area,int type)
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(area))
{
strwhere = " and area='"+area+"'";
}
string sql = string.Format("select address, bkaddress, state, type, area ,way ,shelfid, ControlID ,location ,layer, slist, block, addresstype, ControlIP, ControlType, info from V_address where type='{1}' and block='{0}' " + strwhere,
block,
type);
LogHelper.WriteLogInfo("根据区域 查询显示地址"+sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getAddresslist(string block, string area,string type)
{
string sql = string.Format(" select * from V_Address where location in (select min(location) from V_Address group by address) and block = '{0}' and area = '{1}' and type ='{2}'",
block,
area,type);
// LogHelper.WriteLogInfo("根据区域 查询显示箱号地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable getAddresslistByBlock(string block, string area)
{
string sql = string.Format("select * from V_Address where block='{0}' and area='{1}' and type in(2,4)",
block,
area);
// LogHelper.WriteLogInfo("根据区域 查询显示箱号地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetScanList()
{
string sql = string.Format("select * from V_Address where type =6");
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetLightList()
{
string sql = string.Format("select * from V_Address where type =1");
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetScanListByArea(string block,string area)
{
string sql = string.Format("select * from V_Address where type =6 and block='"+block+"' and area = '"+area+"'");
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetlightListByArea(string block, string area)
{
string sql = string.Format("select * from V_Address where type =1 and block='" + block + "' and area = '" + area + "'");
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetBlockList()
{
string sql = string.Format("select block from Addressstorage group by block");
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetAreaList()
{
string sql = string.Format("select area,block from Addressstorage where type=1 group by area,block");
return db.GetsqlForDT(sql);
}
#endregion
#region
public List<AddressstorageModel> GetAreaList(string block, string shelfid)
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(block))
{
strwhere += "and block ='" + block + "'";
}
if (!string.IsNullOrEmpty(shelfid))
{
strwhere += "and shelfid ='" + shelfid + "'";
}
string sql = string.Format("select area,block from Addressstorage where type=1 " + strwhere + " group by area,block");
DataTable dt = db.GetsqlForDT(sql);
return ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
}
#endregion
#region
public List<AddressstorageModel> GetOrderWayList(string block, string shelfid)
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(block))
{
strwhere += "and block ='" + block + "'";
}
if (!string.IsNullOrEmpty(shelfid))
{
strwhere += "and shelfid ='" + shelfid + "'";
}
string sql = string.Format("select distinct area,block,way from Addressstorage where type=1 " + strwhere + " group by area,block,way");
DataTable dt = db.GetsqlForDT(sql);
return ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
}
#endregion
#region
public List<AddressstorageModel> GetshelfidList(string block)
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(block))
{
strwhere += "and block ='" + block + "'";
}
string sql = string.Format("select shelfid,block from Addressstorage where type=1 " + strwhere + " group by shelfid,block");
DataTable dt = db.GetsqlForDT(sql);
return ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
}
#endregion
#region
public DataTable GetWayList()
{
string sql = string.Format("select way from Addressstorage group by way");
return db.GetsqlForDT(sql);
}
#endregion
#region
public List<AddressstorageModel> GetCityListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by T.address desc");
}
strSql.Append(")AS Row, T.* from Addressstorage T WITH(NOLOCK) ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(" WHERE 1=1 " + strWhere);
}
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(db.GetsqlForDT(strSql.ToString()));
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT COUNT(*) FROM Addressstorage AS T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", strWhere);
}
object obj = db.GetsqlForDT(strSql.ToString());
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.AddressstorageModel>();
}
}
#endregion
//---
#region ()
public List<AddressstorageModel> GetBlockByAreaList()
{
//string sql = string.Format("select cast(area as Int) as 'Area_area',block from Addressstorage group by block,area order by 'Area_area',block");
string sql = string.Format("select cast(way as Int) as 'Area_area',area from Addressstorage where type in(1,2) group by way,area order by Area_area,area");
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(db.GetsqlForDT(sql));
return list;
}
#endregion
#region
public List<AddressstorageModel> GetLocationListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by cast(address as int) asc");
}
strSql.Append(")AS Row, T.* from epost T WITH(NOLOCK) ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(" WHERE 1=1 " + strWhere);
}
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(db.GetsqlForDT(strSql.ToString()));
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT COUNT(*) FROM epost AS T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", strWhere);
}
object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0];
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.AddressstorageModel>();
}
}
#endregion
#region
public bool DeleteLocation(string strwhere)
{
string sql = "delete from Addressstorage where address is not null ";
try
{
if (strwhere != string.Empty && strwhere != null)
{
sql += " " + strwhere;
}
}
catch (Exception)
{
throw;
}
long dt = db.UpdateSql(sql);
if (dt > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region
public bool Locational_Binding_Save(string one, string two, string three, string four, string five, string six)
{
#region one
string sql1 = "update Addressstorage ";
try
{
if (one != string.Empty && one != null)
{
sql1 += "set area='" + one + "' where way='01' and type in(2,1)";
}
}
catch (Exception)
{
throw;
}
long dt = db.UpdateSql(sql1);
#endregion
#region two
string sql2 = "update Addressstorage ";
try
{
if (two != string.Empty && two != null)
{
sql2 += "set area='" + two + "' where way='02' and type in(2,1)";
}
}
catch (Exception)
{
throw;
}
dt = db.UpdateSql(sql2);
#endregion
#region three
string sql3 = "update Addressstorage ";
try
{
if (three != string.Empty && three != null)
{
sql3 += "set area='" + three + "' where way='03' and type in(2,1)";
}
}
catch (Exception)
{
throw;
}
dt = db.UpdateSql(sql3);
#endregion
#region four
string sql4 = "update Addressstorage ";
try
{
if (four != string.Empty && four != null)
{
sql4 += "set area='" + four + "' where way='04' and type in (2,1)";
}
}
catch (Exception)
{
throw;
}
dt = db.UpdateSql(sql4);
#endregion
#region five
string sql5 = "update Addressstorage ";
try
{
if (five != string.Empty && five != null)
{
sql5 += "set area='" + five + "' where way='05' and type in(2,1)";
}
}
catch (Exception)
{
throw;
}
dt = db.UpdateSql(sql5);
#endregion
#region six
string sql6 = "update Addressstorage ";
try
{
if (six != string.Empty && six != null)
{
sql6 += "set area='" + six + "' where way='06' and type in(2,1)";
}
}
catch (Exception)
{
throw;
}
dt = db.UpdateSql(sql6);
#endregion
if (dt > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region
public List<AddressstorageModel> GetLocationQuantityListByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
String STR = "(SELECT dbo.Addressstorage.location, COUNT(dbo.Ordershis.quantity) AS Count, SUM(dbo.Ordershis.quantity) AS Number " +
"FROM dbo.Addressstorage LEFT OUTER JOIN " +
" dbo.Ordershis ON dbo.Addressstorage.location = dbo.Ordershis.tolocation " +
" WHERE 1=1 " + strWhere +
"GROUP BY dbo.Addressstorage.location) ";
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by location asc");
}
strSql.Append(")AS Row, T.* from " + STR + " T ");
//if (!string.IsNullOrEmpty(strWhere.Trim()))
//{
// strSql.Append(" WHERE 1=1 " + STR);
//}
strSql.Append(" ) TT");
string sq = strSql.Append(" WHERE TT.Row between {0} and {1}").ToString();
string sq1= string.Format(sq, startIndex, endIndex);
string sq3 = string.Format(sq, 0, 100000);
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(db.GetsqlForDT(sq1.ToString()));
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT COUNT(*) FROM (" + sq3 + ") AS T ");
if (!string.IsNullOrEmpty(STR.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", STR);
}
object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0];
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.AddressstorageModel>();
}
}
#endregion
#region
public bool Locational_Save(string address, string type, string state, string location, string controlIP, string shelfid,
string block, string area, string username,
string address_pre, string location_pre, string block_pre, string area_pre
)
{
string sql = "update Addressstorage set address='{0}',type='{1}',location='{2}',shelfid='{3}',block='{4}',area='{5}',state='{6}' where" +
" address='{7}' and location='{8}' and block='{9}' and area='{10}'";
sql = string.Format(sql, address, type, location, shelfid, block, area, state, address_pre, location_pre, block_pre, area_pre);
long dt = db.UpdateSql(sql);
if (dt > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region state
public DataTable getErrorState(string address, string controlIP)
{
string sql = string.Format(" select distinct address,bkaddress,state,type,con.ControlIP,ID from addressstorage as addr left join controller as con on con.ID=addr.controlid where address = '{0}' and ControlIP='{1}'",
address,
controlIP
);
// LogHelper.WriteLogInfo("根据地址查询货位信息" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region state=3
public bool UpdateErrorState(string address, string controlIP)
{
string sql = "select ID from Controller where controlIP='" + controlIP + "'";
string controlId = db.GetsqlForDT(sql).Rows[0][0].ToString();
string sql2 = string.Format(" update addressstorage set state='3' where address = '{0}' and controlid='{1}'",
address,
controlId
);
// LogHelper.WriteLogInfo("根据地址查询货位信息" + sql);
long dt = db.UpdateSql(sql2);
if (dt > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region 1
public bool UpdateState()
{
string sql = "update Addressstorage SET state = '1'";
long dt = db.UpdateSql(sql);
if (dt > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region
public DataTable getIP(string carid)
{
string sql = string.Format(" select distinct controlip from v_address order by ControlIP");
// LogHelper.WriteLogInfo("根据货位号查询标签地址" + sql);
return db.GetsqlForDT(sql);
}
#endregion
#region
public DataTable GetALLList(string strwhere)
{
string sql = string.Format("select * from v_address where 1=1 " + strwhere + " ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public List<AddressstorageModel> GetAddressListByPageByMySql(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT addr.* from v_address as addr WHERE 1 = 1 ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(strWhere);
}
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append(" order by " + orderby);
}
else
{
strSql.Append(" order by block asc");
}
strSql.AppendFormat(" limit {0},{1}", startIndex, endIndex);
DataTable dt = db.GetsqlForDT(strSql.ToString());
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT COUNT(*) FROM v_address AS T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", strWhere);
}
object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0];
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.AddressstorageModel>();
}
}
public List<AddressstorageModel> GetAddressListByByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by address asc");
}
strSql.Append(")AS Row, T.* from v_address T WITH(NOLOCK) ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(" WHERE 1=1 " + strWhere);
}
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
List<AddressstorageModel> list = ModelConvertHelper<AddressstorageModel>.ConvertToList(db.GetsqlForDT(strSql.ToString()));
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT COUNT(*) FROM v_address AS T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", strWhere);
}
object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0];
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.AddressstorageModel>();
}
}
#endregion
}
}