/// ///INTERFACE IMPLIMENT FOR TABLE t_wmslocation ///By wm with codesmith. ///on 05/02/2017 /// 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 [id],[locationId] ,[ownerCode] ,[warehouse] ,[channel] ,[shelf] ,[layer] ,[col] ,[elabId] ,[elabAddress] ,[height] ,[width] ,[length] , [weight] ,[port] ,[part] ,[bigPart] ,[goodsType] ,[whType] ,[whGoodsType] ,[whVolType] ,[volType] ,[ABC] ,[state]" + " 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; } } } }