2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
/// <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();
|
2023-05-23 23:33:56 +08:00
|
|
|
|
_strSql = " SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.正常
|
2023-05-23 16:13:17 +08:00
|
|
|
|
+ " 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
|
|
|
|
|
|
2023-05-23 23:33:56 +08:00
|
|
|
|
_strSql = " SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.正常
|
2023-05-23 16:13:17 +08:00
|
|
|
|
+ " 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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|