ldj/Model/wms/data/WmsStock_Imp.cs

566 lines
33 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmsStock
///By wm with codesmith.
///on 05/14/2017
/// </summary>
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class WmsStock_Imp : WmsStock_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
string locStatusWhere = " and locState =0 and state =0";
base.CmdPrepare(sqlCmd);
WmsStock mObj = ( WmsStock)modelObj;
switch (_cust_op_flag)
{
case 99: //query with dic
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID) as sortNo FROM v_stockGoods WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY goodsID,batch";
_strSql += ";SELECT COUNT(*) FROM v_stockGoods WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 98: //query stock sum no batch
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY goodsID) as sortNo FROM v_stockGoodsSumNoBatchAlert WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY goodsID";
_strSql += ";SELECT COUNT(*) FROM v_stockGoodsSumNoBatchAlert WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 100: //initial by goodsid,batch,locationid
_strSql = "SELECT * FROM t_wmsStock WHERE GOODSID = @GOODSID AND BATCH = @BATCH AND LOCATIONID =@LOCATIONID";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@GOODSID", mObj.CmdParameters[0] );
sqlCmd.Parameters.AddWithValue("@BATCH", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[2]);
break;
case 101: //库存汇总查询
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY goodsID) as sortNo FROM [v_stockGoodsSumDesc] WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY goodsID,batch";
_strSql += ";SELECT COUNT(*) FROM [v_stockGoodsSumDesc] WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 102: //零库库存补货查询
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY avCount) as sortNo FROM v_stockGoodsBulkBatchAlert WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY avCount";
_strSql += ";SELECT COUNT(*) FROM v_stockGoodsBulkBatchAlert WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 103: //initial by skuId,locationid
_strSql = "SELECT * FROM t_wmsStock WHERE LOCATIONID =@LOCATIONID and skuId =@skuId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[1]);
break;
case 104: //initial by skuId,locationid
_strSql = "SELECT * FROM t_wmsStock WHERE LOCATIONID =@LOCATIONID and goodsId =@goodsId";
if (mObj.cmdParameters[2] != null)
{
_strSql += " and batch=@batch";
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
break;
case 110: //initial by locationid
_strSql = "SELECT * FROM t_wmsStock WHERE LOCATIONID =@LOCATIONID";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[0]);
break;
case 199: //query orders with free parameters
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY GOODSID DESC) as sortNo FROM v_wmsStockVSerp WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END";
_strSql += ";SELECT COUNT(*) FROM v_wmsStockVSerp WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
break;
//200-202 包含该商品的记录,同品存储
case 200: //query by goodsidbath
_strSql = "SELECT * FROM v_stockGoods WHERE whType=@whType and /*( VOLTYPE=0 OR STORETYPE =0 ) AND*/ GOODSID = @GOODSID AND BATCH = @BATCH ";
_strSql += locStatusWhere;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@GOODSID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@BATCH", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[2]);
break;
case 201: //query by sku
_strSql = "SELECT * FROM v_stockGoods WHERE whType=@whType and /*( VOLTYPE=0 OR STORETYPE =0 ) AND*/ SKUID= @SKUID ";
_strSql += locStatusWhere;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@SKUID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[1]);
break;
case 2011: //query by sku
_strSql = "SELECT * FROM v_stockGoods with(nolock) WHERE SKUID= @SKUID" +
" and whType =@whType ";
if( (enumWhLocVol)mObj.CmdParameters[2] != enumWhLocVol.)
{
_strSql += " and volType=@volType";
}
_strSql+= " order by avcount";
// _strSql += locStatusWhere;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@SKUID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[2]);
break;
case 202: //query by skucode
_strSql = "SELECT * FROM v_stockGoods WHERE whType=@whType and /*( VOLTYPE=0 OR STORETYPE =0 ) AND*/ SKUCODE = @SKUCODE ";
_strSql += locStatusWhere;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@SKUCODE", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[1]);
break;
case 203: //query by GOODSID
_strSql = "SELECT * FROM v_stockGoods with(nolock) WHERE whType=@whType and /*( VOLTYPE=0 OR STORETYPE =0 ) AND*/ GOODSID = @GOODSID ";
_strSql += locStatusWhere;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@GOODSID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[1]);
break;
// 204 不包含200,201,202 ,只取不包含该商品的其它商品共享货位的情况,混品存储
case 204: //query sharing locations,不包括该商品
_strSql = " SELECT top(@cnt) * FROM [v_stockGoodsLocationStat]"
+ " where whType=@whType and (storetype =1 or storetype=3) and goodsid !=@goodsId "
+ " and usedPercent <1 and voltype=@volType and goodsType=@goodsType "
+ " and ownercode =@ownercode and ( goodsABCID=@goodsABC) "
;
_strSql += locStatusWhere;
/* +" and ("
// +" (storetype =0 and skuid =@skuId or goodsid =@goodsId and batch=@batch) or " //同品同批
+ "(storetype =1 and ( goodsid !=@goodsId or( goodsid =@goodsId and (skuid!=@skuId or batch !=@batch))))" //混品同批
+ " or (storetype=2 and goodsId =@goodsId )" //同品混批
+ " or (storetype=3 ) "//混品混批
+" )"*/
_strSql += " order by usedpercent";
sqlCmd.CommandText = _strSql;
WmsGoods goods = (WmsGoods)mObj.CmdParameters[1];
sqlCmd.Parameters.AddWithValue("@goodsType", goods.goodsType);
sqlCmd.Parameters.AddWithValue("@ownercode", goods.ownerCode);
sqlCmd.Parameters.AddWithValue("@goodsABC", goods.ABC);
sqlCmd.Parameters.AddWithValue("@goodsId", goods.goodsId);
// sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[0]);
// sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[4]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[5]);
break;
case 300: //query by goodsname like
//_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM t_wmslocation LOC WHERE 1=1 AND ";
//_strSql += " EXISTS (SELECT 1 FROM V_WMSGOODS WHERE GOODSID = LOC.GOODSID AND GOODSNAME LIKE @GOODSNAME)";
string _strSql1 = "SELECT V.*,LOC.COUNT - LOC.COUNTLOCK - LOC.COUNTOUT AS AVAILABLECOUNT ,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo "
+ " FROM t_wmslocation LOC INNER JOIN V_WMSGOODS V "
+" ON LOC.GOODSID = V.GOODSID WHERE 1=1 "
+ " AND LOC.WHTYPE =@WHTYPE "
+ " AND V.GOODSNAME LIKE @GOODSNAME ";
_strSql = " SELECT * FROM (" + _strSql1 + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END";
_strSql += ";SELECT COUNT(*) FROM (" + _strSql1 + ")";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@GOODSNAME", "%" + mObj.CmdParameters[0] + "%");
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 400: //query by goodsid
_strSql = "SELECT * FROM v_reportStockRecord WHERE ORDERNO = @ORDERNO";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
break;
case 401: //by skuId to get stock info
_strSql = "SELECT * FROM v_stockGoods s WHERE goodsId = @goodsId " +
" and volType < 4 "; //零库1 = -1, 零库, 小整, 中整, 大整,
int skuId = Convert.ToInt32(mObj.CmdParameters[1].ToString());
if ((enumWhType)mObj.CmdParameters[3] == enumWhType.)
{
_strSql += " and (expiryDays =0 or validdate>getdate()+ @minDays )";
}
if (skuId > 0)
{
_strSql += " and skuId = @skuId ";
sqlCmd.Parameters.AddWithValue("@skuId", skuId);
}
else if (!String.IsNullOrEmpty(mObj.CmdParameters[2].ToString()))
{
_strSql += " and batch = @batch ";
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
}
_strSql += " and (state =@state1 or state =@state2)"
// + " and avCount > 0 "
+ " and whType =@whType "
+ " ORDER BY productDate,batch,createtime,avCount desc";
//LogHelper.debug(this.GetType(), _strSql);
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@state1", (int)enumStockLocationStatus.);
sqlCmd.Parameters.AddWithValue("@state2", (int)enumStockLocationStatus.);
sqlCmd.Parameters.AddWithValue("@minDays", WmsConstants.OUT_MIN_DAYS_VALIDTION_LEFT);
break;
case 500: //query by goodsId, string batch, enumWhLocVol locVolType, enumWhType whType
_strSql = "SELECT * FROM v_stockGoods WHERE GOODSID = @GOODSID AND BATCH = @BATCH AND VOLTYPE =@VOLTYPE AND WHTYPE =@WHTYPE ORDER BY VALIDATIONTERM ASC";
// _strSql += " ; SELECT SUM( AS CNT FROM v_stockGoods WHERE GOODSID = @GOODSID AND VOLTYPE =@VOLTYPE ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@GOODSID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@VOLTYPE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@BATCH", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[3]);
break;
case 501: //query by skuId
_strSql = "SELECT * FROM v_stockGoods WHERE SKUID =@SKUID AND VOLTYPE =@VOLTYPE AND WHTYPE =@WHTYPE ORDER BY VALIDATIONTERM ASC";
// _strSql += " ; SELECT SUM( AS CNT FROM v_stockGoods WHERE GOODSID = @GOODSID AND VOLTYPE =@VOLTYPE ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@SKUID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@VOLTYPE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[2]);
break;
case 502: //query by skuCode
_strSql = "SELECT * FROM v_stockGoods WHERE SKUCODE=@SKUCODE AND VOLTYPE =@VOLTYPE AND WHTYPE =@WHTYPE ORDER BY VALIDATIONTERM ASC";
// _strSql += " ; SELECT SUM( AS CNT FROM v_stockGoods WHERE GOODSID = @GOODSID AND VOLTYPE =@VOLTYPE ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@SKUCODE", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@VOLTYPE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[3]);
break;
case 600: //get stock detail by location id , goodsId
_strSql = " SELECT * FROM v_stockgoodsonshelf where locationid =@locId";
if (mObj.CmdParameters[1] != null)
{
_strSql += " and goodsId =@goodsId";
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
}
_strSql += " order by avcount desc ,goodsId";
sqlCmd.Parameters.AddWithValue("@locId", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 605: //get stock detail by barcode
_strSql = " SELECT * FROM v_stockGoods a where exists(select 1 from v_erpGoodsBarcods where goodsId=a.goodsId and barcode =@barcode)";
sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 610: //get stock detail by location id for wince with ZH title
_strSql = " SELECT * FROM v_stockGoods4Wince where 条码 =@barcode";
sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 620: //get stock detail by location id
_strSql = " SELECT * FROM t_wmsStock where locationid =@locId";
sqlCmd.Parameters.AddWithValue("@locId", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 700: //根据货位比较 erp wms库存
string barcode = mObj.CmdParameters[1].ToString();
string goodsId = mObj.CmdParameters[0].ToString();
_strSql = " SELECT 'WMS' as 来源,sum(avcount ) as 数量,locationId as 货位, min(batch) as 批号,max(productdate) as 生产日期,max(validdate) as 有效期至"
+ " FROM v_stockGoods where {0} group by goodsid,locationid "
+ " union all "
+ " SELECT 'ERP' as 来源,count AS 数量,'' AS 货位,batch as 批号,productdate as 生产日期,validDate AS 有效期至 "
+ " FROM v_erpGoodsBalance e where exists(select 1 from v_stockGoods where goodsId = e.goodsId and {1}) ";
if(!string.IsNullOrEmpty(barcode)){
_strSql = string.Format(_strSql, " barcode=@barcode ", " barcode=@barcode ");
sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[1]);
}
else if (!string.IsNullOrEmpty(goodsId))
{
_strSql = string.Format(_strSql, " goodsId=@goodsId ", " goodsId=@goodsId ");
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[0]);
}
sqlCmd.CommandText = _strSql;
break;
case 800: //已下架商品待上架商品列表
int operId = Convert.ToInt32( mObj.CmdParameters[0]) ; //operId ==-1 means all records
_strSql = " select * from v_reportStockRecordDownList4Up4winCE ";
if (operId > 0)
{
_strSql +=" where operater =@operaterId ";
sqlCmd.Parameters.AddWithValue("@operaterId", operId);
}
_strSql += " order by id desc ";
sqlCmd.CommandText = _strSql;
break;
case 810: //已下架商品待上架商品列表
//operId ==-1 means all records
_strSql = " select * from v_reportStockRecordDownList4Up4winCE where orderNo=@orderNo ";
if (WmsConstants.UP_DOWN_SELF_RECS)
{
operId = Convert.ToInt32(mObj.CmdParameters[0]);
if (operId > 0)
{
_strSql += " and operater =@operaterId ";
sqlCmd.Parameters.AddWithValue("@operaterId", operId);
}
}
_strSql += " order by id desc ";
sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 900: //erp 库存 by barcode
_strSql = " SELECT w.*, e.count,e.batch,e.productDate,e.validdate from v_erpGoodsBalance e left outer join v_wmsGoods w "
+" on e.goodsId = w.GoodsId "
+ " where w.barcode=@barcode and e.count > 0 ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[0]);
break;
case 1000: //养护异常停售/停售解除
string d = string.Format("\n养护异常操作:{0},操作人{1},时间{2}", ((enumStockLocationStatus)mObj.CmdParameters[1]).ToString(), mObj.CmdParameters[2], DateTime.Now.ToShortDateString());
// _strSql = " update v_stockGoods set state =@state,locState=@state, operater = @operId , lastmodified = getdate(), description +=@desc "
// +" where skuId=@skuId";
_strSql = " update t_wmsStock set state =@state, operater = @operId , lastmodified = getdate(), description +=@desc "
+ " where skuId=@skuId ;";
_strSql += "; update t_wmsLocation set state =@state, operater = @operId , lastmodified = getdate() "
+ " where exists(select 1 from t_wmsStock where skuId=@skuId and locationId =t_wmsLocation.locationId) ;";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@desc", d);
break;
case 1100:// 记录养护记录
//_strSql = "update a set maintaindate =dateadd( DAY,b.curCycle,maintainDate),operater =@operId,lastmodified =getdate() from t_wmsStock as a,v_erpGoods as b "
// + " where a.goodsid=b.goodsid and Locationid=@locId";
_strSql = " update a set maintaindate = getdate(),operater =@operId,lastmodified =getdate() from t_wmsStock as a "
+ " where Locationid=@locId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@locId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[1]);
break;
case 1200:// 根据goodsid,skuId 取货位存储详细
_strSql = "select * from v_stockGoods "
// + " where goodsid=@goodsid and batch=@batch "
+ " where skuId =@skuId " +
" and goodsId =@goodsId"
+ mObj.CmdParameters[2];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
// sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[1]);
break;
case 1300:// 根据goodsid 取10个自由货位
string strABC = "";
if (1==1 || WmsConstants.IN_STOCK_ABC)
{
strABC = " and f.ABC = g.ABC ";
}
_strSql = "select top (@cnt/2) f.* ,'零货位' as locType,g.bulkMax as volume from v_freelocations f inner join v_wmsgoods g on f.goodstype = g.goodstype and volType =0 " + strABC
+ " where g.goodsid=@goodsid ";
_strSql += "union all select top (@cnt/4) f.* ,'小整货位' as locType ,g.batchMax1 as volume from v_freelocations f inner join v_wmsgoods g on f.goodstype = g.goodstype and volType =1" + strABC
+ " where g.goodsid=@goodsid ";
_strSql += "union all select top (@cnt/4) f.* ,'大整货位' as locType,g.batchMax2 as volume from v_freelocations f inner join v_wmsgoods g on f.goodstype = g.goodstype and volType =2" + strABC
+ " where g.goodsid=@goodsid ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@goodsid", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[1]);
break;
case 1400: //query stock record
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM [v_reportStockRecordout] WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID DESC";
_strSql += ";SELECT COUNT(*) FROM v_reportStockRecordout WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 1500: //query stock used percent
_strSql = "SELECT top (1) usedPercent from v_stockGoodsLocationStat where locationId =@locationid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@locationid", mObj.CmdParameters[0]);
break;
case 1600: //query stock used percent
_strSql = " delete from t_wmsstock where exists(select 1 from t_wmslocation " +
" where voltype =@voltype and locationId =t_wmsstock.locationid)";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@voltype", mObj.CmdParameters[0]);
break;
case 1610: //query stock used percent
_strSql = " delete from t_wmsstock where skuId =@skuId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[0]);
break;
case 1700: //query plate stock
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM [v_wmsPlateStockTmp] WHERE 1=1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + ")AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID DESC";
_strSql += ";SELECT COUNT(*) FROM v_wmsPlateStockTmp WHERE 1=1 " + mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 1800: // query perfomance kpi
_strSql = " SELECT * FROM [v_flowTasksDetailTermKPI] where 1=1 "
+ mObj.CmdParameters[0].ToString();
sqlCmd.CommandText = _strSql;
break;
case 1810: // query perfomance kpi by sum
_strSql = " SELECT ownerName, SUM(入库验收) AS 入库验收, SUM(入库上架) AS 入库上架, SUM(出库下架) AS 出库下架, SUM(播种分货) AS 播种分货, SUM(补货下架) AS 补货下架, SUM(补货上架) AS 补货上架, SUM(移库下架) AS 移库下架, SUM(移库上架) AS 移库上架, SUM(报废下架) AS 报废下架, SUM(退供应商下架) AS 退供应商下架, SUM(退供应商上架) AS 退供应商上架, SUM(装车运输) AS 装车运输, SUM(盘点采集) AS 盘点采集, SUM(直通分货) AS 直通分货, SUM(客户集货) AS 客户集货,SUM(总数) AS 总数 FROM dbo.v_flowTasksDetailTermSumKPI where 1=1 "
+ mObj.CmdParameters[0].ToString()
+ " GROUP BY ownerName ";
sqlCmd.CommandText = _strSql;
break;
case 1820: // query perfomance kpi by day
_strSql = " SELECT ownerName, taskDay,SUM(入库验收) AS 入库验收, SUM(入库上架) AS 入库上架, SUM(出库下架) AS 出库下架, SUM(播种分货) AS 播种分货, SUM(补货下架) AS 补货下架, SUM(补货上架) AS 补货上架, SUM(移库下架) AS 移库下架, SUM(移库上架) AS 移库上架, SUM(报废下架) AS 报废下架, SUM(退供应商下架) AS 退供应商下架, SUM(退供应商上架) AS 退供应商上架, SUM(装车运输) AS 装车运输, SUM(盘点采集) AS 盘点采集, SUM(直通分货) AS 直通分货, SUM(客户集货) AS 客户集货,SUM(总数) AS 总数 FROM dbo.v_flowTasksDetailTermSumKPI where 1=1 "
+ mObj.CmdParameters[0].ToString()
+ " GROUP BY ownerName ,taskDay";
sqlCmd.CommandText = _strSql;
break;
case 1900: // query perfomance kpi
_strSql = " SELECT * FROM [v_stockGoodVirtialLack] ";
sqlCmd.CommandText = _strSql;
break;
case 2000: //stk list by part and elabeId>0
_strSql = " SELECT * FROM [v_stockgoodsbasic] where part=@part and elabId>0 ";
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 2100: //task stock requirements list by part and elabeId>0 //任务所需的库存数
_strSql = " SELECT * FROM [v_stockgoodsbasic] where part=@part and elabId>0 ";
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 2200: //task stock requirements list by part and elabeId>0 //任务所需的库存数
// _strSql = "select * from t_wmsoutpickport where locationid like '21%'";
_strSql = " select * from t_wmsoutpickrequest q where exists( select 1 from t_wmsoutrequest where orderNo like 'QR24012609-%' and pickOrderNo =q.pickorderno)"; //蔬菜拣货单
_strSql = " select * from t_wmsstock;";
_strSql = " select * from t_wmsstockTmp;";
sqlCmd.CommandText = _strSql;
break;
case 2300: //clean stock for pandian
_strSql = " delete from t_wmsstock where count<=countout ";
sqlCmd.CommandText = _strSql;
break;
}
}
}
}