ldj/Model/wms/data/Wmslocation_Imp.cs

255 lines
12 KiB
C#

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmslocation
///By wm with codesmith.
///on 05/02/2017
/// </summary>
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class Wmslocation_Imp : WmsLocation_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
base.CmdPrepare(sqlCmd);
WmsLocation mObj = ( WmsLocation)modelObj;
switch (_cust_op_flag)
{
case 99: //query with dic
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM v_location WHERE DR = 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_location WHERE DR = 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 10:
_strSql = "SELECT * FROM v_location WHERE DR=1 AND LOCATIONID =@LOCATIONID";
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
/*
case 100:
_strSql = "SELECT LOC.* ,WH.NAME WHNAME,WGT.NAME WGTTYPE, GT.NAME GT,WT.NAME WT,WV.NAME WV FROM t_wmslocation LOC "
+ " LEFTOUT JOIN T_NODE WH ON LOC.WAREHOUSE = TWH.ID "
+ " LEFTOUT JOIN T_NODE WGT ON LOC.WGTYPE = WGT.ID"
+ " LEFTOUT JOIN T_NODE GT ON LOC.GDTYPE = GT.ID"
+ " LEFTOUT JOIN T_NODE WT ON LOC.WHYPE = WT.ID"
+ " LEFTOUT JOIN T_NODE WV ON LOC.WHVOL = WV.ID"
+ " WHERE DR=1";
sqlCmd.CommandText = _strSql;
break;
*/
case 300: //to find free location //TODO:考虑重量因素,重量大放下层
int warehouse = Convert.ToInt16( mObj.CmdParameters[7].ToString());
string locationId = mObj.CmdParameters[0].ToString();
_strSql = " SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.
+ " and (isnull(ownerCode,@ownerCode) =@ownerCode or ownerCode ='') "
+ " AND (LOC.WHTYPE>0 or goodsType =@GOODTYPE) AND LOC.VOLTYPE = @VOLTYPE AND LOC.WHTYPE =@WHTYPE "
+ " AND NOT EXISTS (SELECT 1 FROM T_WMSSTOCK WHERE LOCATIONID = LOC.LOCATIONID) ";
if (WmsConstants.IN_STOCK_ABC)
{
_strSql = _strSql + " and ABC =@ABC ";
sqlCmd.Parameters.AddWithValue("@ABC", mObj.CmdParameters[5]);
}
if (!string.IsNullOrEmpty(locationId))
{
_strSql = _strSql + " AND LOCATIONID < @LOCATIONID ORDER BY LOC.layer,LOC.locationId DESC;" //货位序号小优先
+ _strSql + " AND LOCATIONID > @LOCATIONID ORDER BY LOC.layer,LOC.locationId ;";
}
if (warehouse > 0)
{
_strSql = _strSql + " and warehouse =@warehouse ";
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@LOCATIONID", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@GOODTYPE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@VOLTYPE", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[4]);
sqlCmd.Parameters.AddWithValue("@ownerCode", mObj.CmdParameters[6]);
sqlCmd.Parameters.AddWithValue("@warehouse", mObj.CmdParameters[7]);
sqlCmd.CommandText = _strSql;
break;
case 301: //to find free location
_strSql = " SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.
+ " AND LOC.WHTYPE =@WHTYPE ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 400: //free the location that goods count is 0
_strSql = " delete from t_wmsstock where plateid is null and countIn=0 and countOuting =0 and "
+" ([count] + countIn - countout) <=0";
sqlCmd.CommandText = _strSql;
break;
case 500: // get location info by locationId
_strSql = " select * from v_location where locationId= @locId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@locId", mObj.CmdParameters[0]);
break;
case 600: // update location wh fields
_strSql = " update t_wmsLocation set whType =@whType, goodsType =@goodsType,whVolType =@whVolType,volType=@volType,part=@part "
+ " ,operater =@operId,lastmodified = getdate() where ID in " + mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@whType", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@whVolType", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@goodsType", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[4]);
sqlCmd.Parameters.AddWithValue("@part", mObj.CmdParameters[5]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[6]);
//sqlCmd.Parameters.AddWithValue("@transLine", mObj.CmdParameters[7]);
break;
case 610: // update location size fields
_strSql = " update t_wmsLocation set width =@width, length =@length,height =@height,weight=@weight "
+ " ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@width", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@length", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@height", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@weight", mObj.CmdParameters[4]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[5]);
break;
case 620: // update location status fields
_strSql = " update t_wmsLocation set state =@status "
+ " ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
break;
case 630: // update location transLine
_strSql = " update t_wmsLocation set transLine =@transLine ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@transLine", mObj.CmdParameters[1]);
break;
case 640: // update location labelId
_strSql = " update t_wmsLocation set elabId =@labelId ,elabAddress =@address"
+ "operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@labelId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@address", mObj.CmdParameters[2]);
break;
case 650: // delete locations
_strSql = " delete from t_wmsLocation "
+ " where ID in " + mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
break;
case 660: // update location abc
_strSql = " update t_wmsLocation set abc =@abc ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@abc", mObj.CmdParameters[1]);
break;
case 670: // query used percent
_strSql = " SELECT * FROM [v_locationPercent] order by goodsType,voltype ";
sqlCmd.CommandText = _strSql;
break;
case 680: // update location ownerCode
_strSql = " update t_wmsLocation set ownerCode =@ownerCode ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@ownerCode", mObj.CmdParameters[1]);
break;
case 690: // update location storetype
_strSql = " update t_wmsLocation set storeType =@storeType ,operater =@operId,lastmodified = getdate() where ID in "
+ mObj.CmdParameters[0];
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@storeType", mObj.CmdParameters[1]);
break;
case 700: // is the location free
_strSql = " SELECT * FROM [v_freeLocations] where locationid =@locationid ";
sqlCmd.Parameters.AddWithValue("@locationid", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 800: // is the location free
_strSql = " update [t_wmsLocation] set elabId =@labId,elabAddress=layer*10+col where channel=@channel "
+ " and shelf=@shelf and voltype=0";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@channel", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@shelf", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@labId", mObj.CmdParameters[2]);
break;
case 900: // is the location free
_strSql = " select * from t_wmslocation where locationid128 is not null and warehouse in(115,15421,15416 );";
sqlCmd.CommandText = _strSql;
break;
}
}
}
}