using HanHe.Utility.Data; using HH.MData; using HH.WMS.Entitys.Algorithm; using HH.WMS.Entitys.Common; using HH.WMS.Entitys.External; using MongoDB.Driver.Builders; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HH.WMS.DAL.External { public class TN_WM_B_OBJ_LOCATIONDAL : BaseDAL { #region 新增关联 /// /// 新增 /// /// /// /// /// [HanHe(lt)] CREATED 2018/03/24 public SqlExecuteResult Add(TN_WM_B_OBJ_LOCATIONEntity entity, DbTransaction trans) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TN_WM_B_OBJ_LOCATION( "); strSql.Append("CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_N_INDEX,CN_T_OPERATE)"); strSql.Append("values (:CN_GUID,:CN_S_OBJ,:CN_S_OBJ_CODE,:CN_S_STOCK_CODE,:CN_S_STOCK_AREA,:CN_S_LOCATION_CODE,:CN_N_INDEX,:CN_T_OPERATE)"); DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString()); DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, entity.CN_GUID); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, entity.CN_S_OBJ); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, entity.CN_S_OBJ_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, entity.CN_S_STOCK_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, entity.CN_S_STOCK_AREA); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, entity.CN_S_LOCATION_CODE); DataAccess.AddInParameter(cmd, "CN_N_INDEX", ComDbType.INT, entity.CN_N_INDEX); DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, DateTime.Now.ToString()); return ExecuteCommand(cmd, trans); } /// /// 新增 /// /// /// /// /// [HanHe(lt)] CREATED 2018/03/24 public SqlExecuteResult AddList(List entityList, DbTransaction trans) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TN_WM_B_OBJ_LOCATION( "); strSql.Append("CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_N_INDEX,CN_T_OPERATE)"); strSql.Append("values (:CN_GUID,:CN_S_OBJ,:CN_S_OBJ_CODE,:CN_S_STOCK_CODE,:CN_S_STOCK_AREA,:CN_S_LOCATION_CODE,:CN_N_INDEX,:CN_T_OPERATE)"); List cmds = new List(); foreach (TN_WM_B_OBJ_LOCATIONEntity entity in entityList) { DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString()); DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, entity.CN_GUID); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, entity.CN_S_OBJ); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, entity.CN_S_OBJ_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, entity.CN_S_STOCK_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, entity.CN_S_STOCK_AREA); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, entity.CN_S_LOCATION_CODE); DataAccess.AddInParameter(cmd, "CN_N_INDEX", ComDbType.INT, entity.CN_N_INDEX); DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, DateTime.Now.ToString()); cmds.Add(cmd); } return ExecuteCommands(cmds, trans); } /// /// 新增 /// /// /// /// /// [HanHe(lt)] CREATED 2018/07/30 public SqlExecuteResult AddLocationList(List entityList, DbTransaction trans) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TN_WM_B_OBJ_LOCATION( "); strSql.Append("CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_N_INDEX,CN_T_OPERATE)"); strSql.Append("values (:CN_GUID,:CN_S_OBJ,:CN_S_OBJ_CODE,:CN_S_STOCK_CODE,:CN_S_STOCK_AREA,:CN_S_LOCATION_CODE,:CN_N_INDEX,:CN_T_OPERATE)"); List cmds = new List(); foreach (TN_WM_B_OBJ_LOCATIONEntity entity in entityList) { DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString()); DataAccess.AddInParameter(cmd, "CN_GUID", ComDbType.STRING, entity.CN_GUID); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, entity.CN_S_OBJ); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, entity.CN_S_OBJ_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", ComDbType.STRING, entity.CN_S_STOCK_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, entity.CN_S_STOCK_AREA); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, entity.CN_S_LOCATION_CODE); DataAccess.AddInParameter(cmd, "CN_N_INDEX", ComDbType.INT, entity.CN_N_INDEX); DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, entity.CN_T_OPERATE); cmds.Add(cmd); } return ExecuteCommands(cmds, trans); } #endregion #region 根据对象编码获取列表 /// /// 根据对象编码获取 /// /// /// public List GetListByObjCode(string obj, string objCode) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ_CODE=:CN_S_OBJ_CODE AND CN_S_OBJ=:CN_S_OBJ"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, obj); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); } #endregion /// /// 设置实体的各列 /// private void SetEntity(TN_WM_B_OBJ_LOCATIONEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_GUID", "CN_GUID", reader); SetEntityUti(entity, "CN_S_OBJ", "CN_S_OBJ", reader); SetEntityUti(entity, "CN_S_OBJ_CODE", "CN_S_OBJ_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_CODE", "CN_S_STOCK_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_AREA", "CN_S_STOCK_AREA", reader); SetEntityUti(entity, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", reader); SetEntityUti(entity, "CN_N_INDEX", "CN_N_INDEX", reader); SetEntityUti(entity, "CN_T_OPERATE", "CN_T_OPERATE", reader); // SetEntityUti(entity, "CN_S_ITEM_CODE", "CN_S_ITEM_CODE", reader); // SetEntityUti(entity, "CN_S_ITEM_NAME", "CN_S_ITEM_NAME", reader); } private void SetEntityItem(TN_WM_B_OBJ_LOCATIONEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_GUID", "CN_GUID", reader); SetEntityUti(entity, "CN_S_OBJ", "CN_S_OBJ", reader); SetEntityUti(entity, "CN_S_OBJ_CODE", "CN_S_OBJ_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_CODE", "CN_S_STOCK_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_AREA", "CN_S_STOCK_AREA", reader); SetEntityUti(entity, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", reader); SetEntityUti(entity, "CN_N_INDEX", "CN_N_INDEX", reader); SetEntityUti(entity, "CN_T_OPERATE", "CN_T_OPERATE", reader); SetEntityUti(entity, "CN_S_ITEM_CODE", "CN_S_ITEM_CODE", reader); SetEntityUti(entity, "CN_S_ITEM_NAME", "CN_S_ITEM_NAME", reader); SetEntityUti(entity, "CN_S_ITEM_STATE", "CN_S_ITEM_STATE", reader); } private void SetEntityItemSxcc(TN_WM_B_OBJ_LOCATIONEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_GUID", "CN_GUID", reader); SetEntityUti(entity, "CN_S_OBJ", "CN_S_OBJ", reader); SetEntityUti(entity, "CN_S_OBJ_CODE", "CN_S_OBJ_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_CODE", "CN_S_STOCK_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_AREA", "CN_S_STOCK_AREA", reader); SetEntityUti(entity, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", reader); SetEntityUti(entity, "CN_N_INDEX", "CN_N_INDEX", reader); SetEntityUti(entity, "CN_T_OPERATE", "CN_T_OPERATE", reader); SetEntityUti(entity, "CN_S_ITEM_CODE", "CN_S_ITEM_CODE", reader); SetEntityUti(entity, "CN_S_ITEM_NAME", "CN_S_ITEM_NAME", reader); SetEntityUti(entity, "CN_S_VENDOR_NO", "CN_S_VENDOR_NO", reader); SetEntityUti(entity, "CN_S_VENDOR_NAME", "CN_S_VENDOR_NAME", reader); SetEntityUti(entity, "CN_S_FROM_NO", "CN_S_FROM_NO", reader); SetEntityUti(entity, "CN_S_FIGURE_NO", "CN_S_FIGURE_NO", reader); } private void SetEntityObj(TN_WM_B_OBJ_LOCATIONEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_GUID", "CN_GUID", reader); SetEntityUti(entity, "CN_S_OBJ", "CN_S_OBJ", reader); SetEntityUti(entity, "CN_S_OBJ_CODE", "CN_S_OBJ_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_CODE", "CN_S_STOCK_CODE", reader); SetEntityUti(entity, "CN_S_STOCK_AREA", "CN_S_STOCK_AREA", reader); SetEntityUti(entity, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", reader); SetEntityUti(entity, "CN_N_INDEX", "CN_N_INDEX", reader); SetEntityUti(entity, "CN_T_OPERATE", "CN_T_OPERATE", reader); } #region 根据对象编码获取 /// /// 根据对象编码获取 /// /// /// public TN_WM_B_OBJ_LOCATIONEntity GetEntityByObjCode(string obj, string objCode) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ_CODE=:CN_S_OBJ_CODE AND CN_S_OBJ=:CN_S_OBJ"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, obj); return DataAccessExtensive.ExecuteSingleEntity(this.DataAccess, cmd, SetEntity); } #endregion public DataTable GetLocationContent(string areaCode, string location) { string sql = @" select * from TN_WM_B_OBJ_LOCATION where 1=1 "; if (!string.IsNullOrEmpty(areaCode)) sql += " and CN_S_STOCK_AREA ='" + areaCode + "'"; if (!string.IsNullOrEmpty(location)) sql += " and CN_S_LOCATION_CODE ='" + location + "'"; sql += " order by CN_S_LOCATION_CODE,CN_N_INDEX "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd); } #region 根据对象、 多个库区获取货位 /// /// 根据对象、 多个库区获取货位 /// /// /// /// /// [HanHe(zh)] CREATED 2018/05/9 public string GetLocationCode(string objCode, string obj) { string sql = @"SELECT CN_S_LOCATION_CODE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ=:CN_S_OBJ AND CN_S_OBJ_CODE=:CN_S_OBJ_CODE "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, obj); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); var entity = DataAccessExtensive.ExecuteSingleEntity(this.DataAccess, cmd, (e, r) => { SetEntityUti(e, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", r); }); if (entity != null) return entity.CN_S_LOCATION_CODE; return string.Empty; } #endregion #region 批量清空货位 /// /// 批量清空货位 /// /// /// /// /// public SqlExecuteResult Clean(string pType, string[] pCodes, DbTransaction trans) { List cmds = new List(); if (!string.IsNullOrEmpty(pType) && pCodes.Length > 0) { string sql = string.Empty; switch (pType) { case "托盘": foreach (string m in pCodes) { sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ='托盘' AND CN_S_OBJ_CODE='" + m + "'"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); cmds.Add(cmd); } break; case "货位": foreach (string m in pCodes) { sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE='" + m + "'"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); cmds.Add(cmd); } break; } return ExecuteCommands(cmds, trans); } return new SqlExecuteResult(); } #endregion #region 清空货位、托盘 /// /// 清空货位、托盘 /// /// /// /// /// /// [HanHe(zh)] CREATED 2018/5/4 public SqlExecuteResult Clean(string pType, string pCode, DbTransaction trans) { if (!string.IsNullOrEmpty(pType) && !string.IsNullOrEmpty(pCode)) { string sql = string.Empty; pCode = pCode.Replace("\'", ""); switch (pType) { case "托盘": sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ='托盘' AND CN_S_OBJ_CODE='" + pCode + "'"; break; case "货位": sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE='" + pCode + "'"; break; } if (!string.IsNullOrEmpty(pCode)) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return ExecuteCommand(cmd, trans); } } return new SqlExecuteResult(); } /// /// /// /// /// /// /// public SqlExecuteResult UnBanding(string locaion, string trayCode, DbTransaction trans) { string sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE and CN_S_OBJ_CODE=:CN_S_OBJ_CODE"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); this.DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, locaion); this.DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, trayCode); return ExecuteCommand(cmd, trans); } /// /// /// /// /// public SqlExecuteResult DeleteObj(string sqlwhere, DbTransaction trans) { string sql = "DELETE FROM TN_WM_B_OBJ_LOCATION WHERE 1=1 {0}"; sql = string.Format(sql, sqlwhere); DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return ExecuteCommand(cmd, trans); } #endregion #region 批量新增 /// /// 批量新增 /// /// /// /// ///[Hanhe(DBS)] created 2018-5-8 public SqlExecuteResult Add(List objLocationRels, DbTransaction trans) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TN_WM_B_OBJ_LOCATION( "); strSql.Append("CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,CN_N_INDEX,CN_T_OPERATE)"); strSql.Append("values ( @CN_GUID,@CN_S_OBJ,@CN_S_OBJ_CODE,@CN_S_STOCK_CODE,@CN_S_STOCK_AREA,@CN_S_LOCATION_CODE,@CN_N_INDEX,@CN_T_OPERATE)"); List cmds = new List(); foreach (TN_WM_B_OBJ_LOCATIONEntity entity in objLocationRels) { DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString()); DataAccess.AddInParameter(cmd, "CN_GUID", DbType.String, entity.CN_GUID); DataAccess.AddInParameter(cmd, "CN_S_OBJ", DbType.String, entity.CN_S_OBJ); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", DbType.String, entity.CN_S_OBJ_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_CODE", DbType.String, entity.CN_S_STOCK_CODE); DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", DbType.String, entity.CN_S_STOCK_AREA); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", DbType.String, entity.CN_S_LOCATION_CODE); DataAccess.AddInParameter(cmd, "CN_N_INDEX", ComDbType.INT, entity.CN_N_INDEX); DataAccess.AddInParameter(cmd, "CN_T_OPERATE", ComDbType.DATE, DateTime.Now.ToString()); cmds.Add(cmd); } return ExecuteCommands(cmds, trans); } #endregion #region 判断货位是否含有关联 /// /// 判断货位是否含有关联 /// /// /// /// public List GetListByLocationCode(string locationCode, DbTransaction trans, string objCode = "") { List list = new List(); StringBuilder strSql = new StringBuilder(); if (!string.IsNullOrEmpty(Now_dbType) && Now_dbType.Equals("MYSQL")) { strSql.Append("SELECT CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,IFNULL(CN_N_INDEX,0) CN_N_INDEX,CN_T_OPERATE FROM TN_WM_B_OBJ_LOCATION"); } if (!string.IsNullOrEmpty(Now_dbType) && Now_dbType.Equals("MSSQL")) { strSql.Append("SELECT CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,ISNULL(CN_N_INDEX,0) CN_N_INDEX,CN_T_OPERATE FROM TN_WM_B_OBJ_LOCATION"); } if (!string.IsNullOrEmpty(Now_dbType) && Now_dbType.Equals("ORACLE")) { strSql.Append("SELECT CN_GUID,CN_S_OBJ,CN_S_OBJ_CODE,CN_S_STOCK_CODE,CN_S_STOCK_AREA,CN_S_LOCATION_CODE,NVL(CN_N_INDEX,0) CN_N_INDEX,CN_T_OPERATE FROM TN_WM_B_OBJ_LOCATION"); } if (!string.IsNullOrEmpty(locationCode)) { strSql.Append(" WHERE CN_S_LOCATION_CODE='" + locationCode + "' "); } else { return list; } if (!string.IsNullOrEmpty(objCode)) { strSql.Append(" AND CN_S_OBJ_CODE!='" + objCode + "' "); } strSql.Append(" ORDER BY CN_N_INDEX DESC "); DbCommand cmd = DataAccess.GetSqlStringCommand(strSql.ToString()); list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return list; } #endregion public TN_WM_B_OBJ_LOCATIONEntity GetModel(string location, string objCode) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE and CN_S_OBJ_CODE=:CN_S_OBJ_CODE"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); return DataAccessExtensive.ExecuteSingleEntity(this.DataAccess, cmd, SetEntity); } public List GetModelByLocation(string location) { string sql = @" SELECT A.*,B.CN_S_ITEM_CODE,CN_S_ITEM_NAME,B.CN_S_ITEM_STATE FROM TN_WM_B_OBJ_LOCATION A LEFT JOIN [dbo].[tn_wm_b_tray_item_rel] B ON A.CN_S_OBJ_CODE=B.CN_S_TRAY_CODE WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE ORDER BY A.CN_T_OPERATE ASC "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntityItem); } public List GetModelByLocationSxcc(string location) { string sql = @" SELECT A.*,B.CN_S_ITEM_CODE,CN_S_ITEM_NAME,B.CN_S_VENDOR_NO,B.CN_S_VENDOR_NAME,B.CN_S_FIGURE_NO,B.CN_S_FROM_NO FROM TN_WM_B_OBJ_LOCATION A LEFT JOIN [dbo].[tn_wm_b_tray_item_rel] B ON A.CN_S_OBJ_CODE=B.CN_S_TRAY_CODE WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE ORDER BY A.CN_T_OPERATE ASC "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntityItemSxcc); } public List SxccGetModel(string qybw, string kh, string qzsd, string xh) { string sql = @" SELECT DISTINCT A.* FROM TN_WM_B_OBJ_LOCATION A INNER JOIN [dbo].[tn_wm_b_tray_item_rel] B ON A.CN_S_OBJ_CODE=B.CN_S_TRAY_CODE WHERE 1=1 "; if (!string.IsNullOrEmpty(qybw)) sql += " and B.CN_S_VENDOR_NO like '%" + qybw + "%'"; if (!string.IsNullOrEmpty(kh)) sql += " and B.CN_S_VENDOR_NAME like '%" + kh + "%'"; if (!string.IsNullOrEmpty(qzsd)) sql += " and B.CN_S_FIGURE_NO like '%" + qzsd + "%'"; if (!string.IsNullOrEmpty(xh)) sql += " and B.CN_S_FROM_NO like '%" + xh + "%'"; sql += " ORDER BY A.CN_S_LOCATION_CODE,A.CN_N_INDEX ASC "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); } #region 更新对象位置 /// /// 更新对象位置 /// /// /// /// /// /// public SqlExecuteResult UpdateObjPosition(string objCode, string area, string location, DbTransaction trans) { string sql = @"UPDATE TN_WM_B_OBJ_LOCATION SET CN_S_STOCK_AREA=:CN_S_STOCK_AREA , CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE WHERE CN_S_OBJ_CODE=:CN_S_OBJ_CODE "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); DataAccess.AddInParameter(cmd, "CN_S_STOCK_AREA", ComDbType.STRING, area); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); return ExecuteCommand(cmd, trans); } #endregion #region 获取对象列表 public DataTable GetList(string objCode) { string sql = "select * from TN_WM_B_OBJ_LOCATION where CN_S_OBJ_CODE=:CN_S_OBJ_CODE"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd); } public DataTable GetList(string obj, string code) { string sql = "select * from TN_WM_B_OBJ_LOCATION CN_S_OBJ=:CN_S_OBJ and CN_S_OBJ_CODE=:CN_S_OBJ_CODE"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, code); return DataAccessExtensive.ExecuteDataTable(this.DataAccess, cmd); } public List GetExtendList(string objCode) { string sql = "select * from TN_WM_B_OBJ_LOCATION where CN_S_OBJ_CODE in(" + objCode + ")"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return list; } public List GetExtendListByArea(string areaCode) { string sql = "select a.* from TN_WM_B_OBJ_LOCATION a inner join tn_wm_b_location_ext b on a.cn_s_location_code = b.cn_s_location_code where a.CN_S_STOCK_AREA = '" + areaCode + "' AND a.CN_S_OBJ = '托盘' and b.cn_s_location_state = '正常' "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return list; } #endregion #region 根据对象、 库区获取货位 /// /// 根据对象、 库区获取货位 /// /// /// /// /// [HanHe(zh)] CREATED 2018/05/9 public string GetLocationCode(string objCode, string area, string obj) { string sql = @"SELECT CN_S_LOCATION_CODE FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_OBJ=:CN_S_OBJ AND CN_S_OBJ_CODE=:CN_S_OBJ_CODE "; if (!string.IsNullOrEmpty(area)) sql += " AND CN_S_STOCK_AREA='" + area + "' "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_OBJ", ComDbType.STRING, obj); DataAccess.AddInParameter(cmd, "CN_S_OBJ_CODE", ComDbType.STRING, objCode); var entity = DataAccessExtensive.ExecuteSingleEntity(this.DataAccess, cmd, (e, r) => { SetEntityUti(e, "CN_S_LOCATION_CODE", "CN_S_LOCATION_CODE", r); }); if (entity != null) return entity.CN_S_LOCATION_CODE; return string.Empty; } #endregion #region 根据仓库和库区编码获得库区结构 /// /// 根据仓库和库区编码获得库区结构 /// /// 仓库编号 /// 库区编号 /// /// [HanHe(LT)] CREATED 2018/11/30 public List GetStructList(string stockCode, string areaCode) { var query = Query.And(Query.EQ("CN_S_STOCK_CODE", stockCode), Query.EQ("CN_S_AREA_CODE", areaCode)); //仓库结构 List lstStruct = MongoDBSingleton.Instance.Find(query, "TN_AB_B_STOCK_STRUCTURE"); return lstStruct; } #endregion public List GetEntityList(string location) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE ORDER BY CN_T_OPERATE ASC"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); } public TN_WM_B_OBJ_LOCATIONEntity GetEntity(string location) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE=:CN_S_LOCATION_CODE ORDER BY CN_T_OPERATE ASC"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_LOCATION_CODE", ComDbType.STRING, location); return DataAccessExtensive.ExecuteSingleEntity(this.DataAccess, cmd, SetEntity); } public List GetObjLocationList(string locations) { string sql = @"SELECT * FROM TN_WM_B_OBJ_LOCATION WHERE CN_S_LOCATION_CODE in(" + locations + ") "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); } } }