using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using WMS.Info;
using WMS.Util;
namespace WMS.Core
{
public class QueryCell
{
///
/// 打印条码
///
///
///
public string PrintBarcode(string locCode)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.F_NO
");
strSql.Append(" FROM BASE_WARECELL t ");
strSql.Append(" WHERE 1=1 AND F_NO='" + locCode + "'");
// 虚拟参数
DataTable dt = suger.Ado.GetDataTable(strSql.ToString());
return "";//Print.PrintBarCode(dt, BarCodeType.货位, "广东***公司", false);
}
catch (Exception ex)
{
throw ex;
}
finally
{ suger.Dispose(); }
}
#region 获取数据
///
/// 获取列表数据
///
///
public IEnumerable GetList(string keyword)
{
try
{
return SysDbCore.GetDbCtx().Queryable().Where(it => it.F_ISDELETE == 0).WhereIF(!keyword.IsEmpty(), it => it.F_NO.Contains(keyword) || it.F_NAME.Contains(keyword)).ToList();
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取储位信息
///
///
public IEnumerable GetLocList(string houserNo, int line)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
string sql = "SELECT F_WAREHOUSENO,F_NO,F_ISSTOP,F_STATENUM,F_LINE,F_COL,F_LAYER,F_DEPTH,isnull(F_CNTRGRPNO,' ') F_CNTRGRPNO FROM V_WTV_LOCSHOW WHERE F_WAREHOUSENO=@F_WAREHOUSENO AND F_LINE=@F_LINE GROUP BY F_WAREHOUSENO,F_NO,F_ISSTOP,F_STATENUM,F_LINE,F_COL,F_LAYER,F_DEPTH,F_CNTRGRPNO";
return suger.Ado.SqlQuery(sql, new { F_WAREHOUSENO = houserNo, F_LINE = line });
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 获取储位明细信息
///
///
public IEnumerable GetLocDetailList(string conCode, string barCode)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
string sql = string.Empty;
sql = "SELECT NVL(F_CONTRGRPBARCODE,' ')F_CONTRGRPBARCODE,NVL(F_CONTRBARCODE,' ') F_CONTRBARCODE,NVL(F_MATNO,' ') F_MATNO, NVL(F_MATNAME,' ')F_MATNAME,F_QTY,NVL(F_BATCHNO,' ')F_BATCHNO, NVL(F_MATVERSION,' ')F_MATVERSION,NVL(F_MATGEAR,' ')F_MATGEAR,NVL(F_OUTLOCKONO,' ') F_OUTLOCKONO FROM V_WTV_LOCSHOWDETAIL WHERE F_CONTRGRPBARCODE=@F_CONTRGRPBARCODE OR F_CONTRBARCODE=@F_CONTRBARCODE";
return suger.Ado.SqlQuery(sql, new { F_CONTRGRPBARCODE = conCode, F_CONTRBARCODE = barCode });
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 获取托盘,周转箱号
///
///
///
public IEnumerable GetLocCodeList(string contrgrpno)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx(); // SELECT * FROM V_WTV_LOCSHOWDETAIL WHERE F_CONTRGRPNO='{0}' ORDER BY F_CONTRSORT,contrgrpno
string sql = string.Format("SELECT * FROM V_WTV_LOCSHOWDETAIL WHERE F_CONTRGRPNO='{0}'", contrgrpno);
return suger.Ado.SqlQuery(sql);
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 根据仓库编码获取不同的出库口
///
///
///
public IEnumerable GetAddrtoList(string WarehouseCode)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
string sql = string.Format("SELECT F_NUM FROM SYS_DATA WHERE F_ISSTOP=0 AND F_ISDELETE=0 AND F_CODE LIKE 'EWarehouse{0}%'", WarehouseCode);
DataTable dt = suger.Ado.GetDataTable(sql);
List lstStr = new List();
foreach (DataRow row in dt.Rows)
lstStr.Add(row[0].ToString());
return lstStr;
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 根据仓库编码获取不同的出库口
///
///
///
public IEnumerable GetLearunAddrtoList(string WarehouseCode)
{
List treeList = new List();
try
{
string str = "EWarehouse" + WarehouseCode;
List list = SysDbCore.GetDbCtx().Queryable().Where(it => it.F_ISDELETE == 0 && it.F_ISSTOP == 0 && it.F_CODE.Contains(str)).ToList();
foreach (var item in list)
{
TreeModel node = new TreeModel();
node.id = item.F_NO;
node.text = item.F_NAME.ToString();
node.value = item.F_NUM.ToString();
node.showcheck = true;
node.checkstate = 0;
node.isexpand = true;
node.icon = ACLAuthorize.IcoAuthorize;
node.parentId = "";
treeList.Add(node);
}
return treeList.ToTree();
}
catch (Exception ex)
{
throw;
}
}
///
/// 获取仓库编号
///
///
public IEnumerable GetHouseNo()
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
string sql = "SELECT F_NO||'-'||F_NAME from BASE_WAREHOUSE WHERE F_TYPENUM = 1 GROUP BY F_NO,F_NAME ";
DataTable dt = suger.Ado.GetDataTable(sql);
List lstStr = new List();
foreach (DataRow row in dt.Rows)
lstStr.Add(row[0].ToString());
return lstStr;
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 获取仓库有多少排
///
/// 仓库编号
///
public int GetMaxLine(string houseNo)
{
try
{
return SysDbCore.GetDbCtx().Queryable().Where(it => it.F_WAREHOUSENO == houseNo).Max(it => it.F_LINE);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 提交数据
///
/// 下架,生成出库任务
///
/// 仓库号
/// 托盘号
/// 目标地址
///
public string AddOutTask(string houserNo, string F_CONTRGRPNO, string Addrto)
{
string res = "下架成功";
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
if (string.IsNullOrEmpty(houserNo))
throw new Exception("仓库不能为空");
if (string.IsNullOrEmpty(F_CONTRGRPNO))
throw new Exception("托盘不能为空");
if (string.IsNullOrEmpty(Addrto))
throw new Exception("目标地址为空");
var warehouse = suger.Queryable().Where(v => v.F_NO == houserNo).First();
// this.BaseRepository().FindEntity(v => v.F_NO == houserNo);
if (warehouse == null)
throw new Exception("未找到仓库信息");
if (warehouse.F_ISSTOP != 0 || warehouse.F_ISDELETE != 0)
throw new Exception("仓库被停用或者被删除");
if (warehouse.F_TYPENUM != 1)
throw new Exception("仓库不是立库,无法下架");
StringBuilder sql = new StringBuilder();
sql.AppendFormat(@"SELECT C.* FROM BASE_WARECELL C LEFT JOIN BILL_INVCONTR I ON I.F_CONTRGRPNO = C.F_CNTRGRPNO WHERE I.F_CONTRGRPBARCODE = '{0}'", F_CONTRGRPNO);
var cell = suger.Queryable(sql.ToString());
if (cell == null)
throw new Exception("未找到库存,下架失败");
//string EOutPort = "EWarehouse" + houserNo + "_" + Addrto;
//int AddVal = (int)Enum.Parse(typeof(EOutPort), EOutPort);
return "";
}
catch (Exception ex)
{
res = ex.Message;
}
return res;
}
///
/// 获取BASE_WARECELL表实体数据
/// 主键
///
///
public BASE_WARECELL GetBASE_WARECELLEntity(string keyValue)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
return suger.Queryable(keyValue).First();
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 获取主表实体数据
/// 流程实例ID
///
///
public BASE_WARECELL GetEntityByProcessId(string processId)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
return suger.Queryable().Where(t => t.F_NO == processId).First();
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 删除实体数据
/// 主键
///
///
public void DeleteEntity(string keyValue)
{
SqlSugarClient suger = null;
try
{
suger = SysDbCore.GetDbCtx();
suger.Deleteable().Where(t => t.F_NO == keyValue);
}
catch (Exception ex)
{
throw ex;
}
finally
{
suger.Dispose();
}
}
///
/// 保存实体数据(新增、修改)
/// 主键
///
///
public void SaveEntity(LoginUserInfo loginUserInfo, string keyValue, BASE_WARECELL entity)
{
try
{
if (entity == null)
throw SysExCore.ThrowFailException("输入数据为空。");
if (string.IsNullOrWhiteSpace(entity.F_NO))
throw SysExCore.ThrowFailException("编码为空。");
if (string.IsNullOrWhiteSpace(entity.F_NAME))
throw SysExCore.ThrowFailException("名称为空。");
entity.F_EDITTIME = DateTime.Now;
entity.F_EDITUSERNO = loginUserInfo.UserNo;
if (string.IsNullOrEmpty(keyValue))
{
entity.F_ADDTIME = DateTime.Now;
entity.F_ADDUSERNO = loginUserInfo.UserNo;
entity.F_ISDELETE = 0;
entity.F_ISSTOP = 0;
SysDbCore.GetDbCtx().Insertable(entity).ExecuteCommand();
}
else
{
SysDbCore.GetDbCtx().Updateable(entity).IgnoreColumns(it => new { it.F_ADDTIME, it.F_ADDUSERNO }).Where(it => it.F_NO == keyValue).ExecuteCommand();
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
}
}