325 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			16 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.ToInt32( mObj.CmdParameters[7].ToString());
 | |
|                     string locationId = mObj.CmdParameters[0].ToString();
 | |
|                     _strSql = "  SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC with(nolock) WHERE LOC.STATE = " +  (int)DeiNiu.Utils.enumStockLocationStatus.正常
 | |
|                                  + " and (isnull(ownerCode,@ownerCode) =@ownerCode or ownerCode ='') "
 | |
|                                  + " AND ( goodsType =@GOODTYPE or goodstype=0 ) "
 | |
|                                  + " AND (LOC.WHTYPE>0 or warehouse =@warehouse) " +
 | |
|                                  //    +" AND (LOC.WHTYPE>0 or goodsType =@GOODTYPE) " +
 | |
|                                  "   AND LOC.VOLTYPE = @VOLTYPE AND LOC.WHTYPE =@WHTYPE " 
 | |
|                                  + " AND NOT EXISTS (SELECT 1 FROM T_WMSSTOCK with(nolock) WHERE " +
 | |
|                                                         "  LOCATIONID = LOC.LOCATIONID" +
 | |
|                                                         "   and (count-countOut>0 or countin>0 or countOuting>0 ) ) ";  //--已全部下架,但在途数量存在,依然可以当空货架使用
 | |
| 
 | |
|                     if (1==1 || WmsConstants.IN_STOCK_ABC)
 | |
|                     {
 | |
|                         _strSql = _strSql + " and ABC =@ABC ";
 | |
|                         sqlCmd.Parameters.AddWithValue("@ABC", mObj.CmdParameters[5]);
 | |
|                     } 
 | |
|                     
 | |
|                    /* if (warehouse > 0)
 | |
|                     {
 | |
|                         _strSql = _strSql + " and warehouse =@warehouse ";
 | |
|                     }
 | |
|                     */
 | |
|                     if (!string.IsNullOrEmpty(locationId))
 | |
|                     {
 | |
|                       _strSql =  _strSql + " AND   LOCATIONID < @LOCATIONID  ORDER BY goodsType desc, LOC.layer,LOC.locationId DESC;" //货位序号小优先
 | |
|                                + _strSql + " AND   LOCATIONID > @LOCATIONID  ORDER BY  goodsType desc, LOC.layer,LOC.locationId ;";
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         _strSql += " ORDER BY goodsType desc, LOCATIONID";
 | |
|                     }
 | |
|                
 | |
|                      
 | |
|                     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  location 
 | |
| 
 | |
|                     _strSql = "  SELECT TOP (@cnt) LOC.* FROM t_wmsLocation LOC WHERE LOC.STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.正常
 | |
|                                   + " AND  LOC.voltype =@voltype   " +
 | |
|                                   " and isnull(LOC.abc,0)=@abc ";
 | |
|                     if (Convert.ToInt32(mObj.CmdParameters[3])>0)
 | |
|                     {
 | |
|                         _strSql += " and warehouse =@warehouse ";
 | |
|                        sqlCmd.Parameters.AddWithValue("@warehouse", mObj.CmdParameters[3]);
 | |
|                     }
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;             
 | |
|                     sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@voltype", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@abc", mObj.CmdParameters[2]);
 | |
|                   
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 302:  //to find  location 
 | |
| 
 | |
|                     _strSql = "  SELECT TOP (@cnt) * FROM t_wmsLocation  WHERE  STATE = " + (int)DeiNiu.Utils.enumStockLocationStatus.正常
 | |
|                                   + " AND  WHTYPE =@WHTYPE   " +
 | |
|                                   " AND WAREHOUSE=@WAREHOUSE" +
 | |
|                                   " AND volType=@volType";
 | |
|                                   
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@WHTYPE", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@WAREHOUSE", mObj.CmdParameters[2]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[3]);
 | |
|                     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 plateCount=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 710: // update location status fields
 | |
| 
 | |
|                     _strSql = " update t_wmsLocation set scaleFactor =@scaleFactor "
 | |
|                             + " ,operater =@operId,lastmodified = getdate()  where  ID  in "
 | |
|                             + mObj.CmdParameters[0];
 | |
|                
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@scaleFactor", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
 | |
|                     break;
 | |
| 
 | |
|                 case 720: // update location status fields
 | |
| 
 | |
|                     _strSql = " update t_wmsLocation set isWeightSeeds =@isWeightSeeds "
 | |
|                             + " ,operater =@operId,lastmodified = getdate()  where  ID  in "
 | |
|                             + mObj.CmdParameters[0];
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@isWeightSeeds", Convert.ToBoolean(mObj.CmdParameters[1]));
 | |
|                     sqlCmd.Parameters.AddWithValue("@operId", mObj.CmdParameters[2]);
 | |
|                     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: // formatLocName
 | |
|                     _strSql = " select * from t_wmslocation where locationid128 is not null and warehouse in(115,15421,15416  );";
 | |
|                    
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                   
 | |
| 
 | |
|                     break;
 | |
| 
 | |
| 
 | |
|                 case 1000: // get loc by partion
 | |
|                     _strSql = "select top (@cnt)  * from v_location where partion =@partion"; 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[1]);
 | |
|                     
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |