340 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			340 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
 | |
| /// <summary>
 | |
| ///INTERFACE IMPLIMENT FOR TABLE t_wmsInRequest
 | |
| ///By wm with codesmith. 
 | |
| ///on 05/12/2017
 | |
| /// </summary>
 | |
| 
 | |
| using System;
 | |
| using System.Data.SqlClient;
 | |
| using DeiNiu.Utils; 
 | |
| namespace DeiNiu.wms.Data.Model
 | |
| {
 | |
|     [Serializable]  class WmsInRequest_Imp : WmsInRequest_base_Imp
 | |
|     { 
 | |
|         protected override void CmdPrepare(SqlCommand sqlCmd)
 | |
|         { 
 | |
|             base.CmdPrepare(sqlCmd);
 | |
|             WmsInRequest mObj = ( WmsInRequest)modelObj;
 | |
|             switch (_cust_op_flag)
 | |
|             {
 | |
|                 case 9999:  //系统初始化数据 
 | |
|                     _strSql = "  truncate table t_wmsinRequest;  ";
 | |
|                     _strSql += " truncate table t_wmsinRequestDetail;   ";
 | |
|                     _strSql += "  truncate table t_wmsstockrecord;   ";
 | |
|                     _strSql += "  update t_wmsstock set count =count+ countin ,countin=0  ;  ";
 | |
|                     _strSql += "update t_wmsstock set countOut =0,countin=0,countouting =0;";
 | |
|                     _strSql += "truncate table t_wmsStockpre;";
 | |
|                     _strSql += "truncate table [t_wmsOutPickRequest];";
 | |
|                     _strSql += "  truncate table  [t_wmsOutPickDetail];";
 | |
|                     _strSql += " truncate table t_wmsOutRequestDetail;";
 | |
|                     _strSql += "truncate table t_wmsOutRequest; ";
 | |
|                     _strSql += "truncate table t_wmsOutDetail;";
 | |
|                     _strSql += " truncate table [t_wmsOutPickPort];";
 | |
|                     _strSql += "truncate table t_tmsStock;";
 | |
|                     _strSql += "truncate table t_tmsTranRequest;";
 | |
|                     _strSql += "truncate table t_tmsTranRequestDetail;";
 | |
|                     _strSql += "truncate table t_wmsOutPickDetail_tmp;";
 | |
|                     _strSql += "truncate table t_wmsOutPickLable;";
 | |
|                     _strSql += "truncate table t_wmsOutPickLable_tmp;";
 | |
|                     _strSql += "truncate table t_wmsOutLog;";
 | |
|                     _strSql += "truncate table t_wmsInUpPort;";
 | |
|                     _strSql += " truncate table t_wmsflow;   	";
 | |
|                     _strSql += " truncate table t_wmsWave;";
 | |
|                     _strSql += " truncate table t_wmsOrderRequest;   	";
 | |
|                     _strSql += " truncate table t_wmsOrderDetail;";
 | |
|                     _strSql += " update [custErp].[dbo].[t_erp_sale] set wms_state =0;";
 | |
|                     _strSql += "update [custErp].[dbo].[t_erp_purch] set wms_state =0;";
 | |
|                     _strSql += " update [custErp].[dbo].[t_erp_purch_d] set wms_state =0,receiveCount =0,rejectCount =0,validCount =0,arriveCount=0;";
 | |
|                     _strSql += "truncate table [custErp].[dbo].[t_erp_receiveValidDetail];";
 | |
|                     _strSql += "  truncate table [custErp].[dbo].[t_erp_purch_receive_log];";
 | |
|                     _strSql += " truncate table  [custErp].[dbo].t_erp_purch_receive_pre;";
 | |
|                     _strSql += "  update [custErp].[dbo].[t_erp_sale] set dueDate =GETDATE()+2,orderDate = getdate()-2;";
 | |
|                     _strSql += "  update [custErp].[dbo].[t_erp_purch] set [deliveryDate] =GETDATE()-2, [shipDate]  = getdate()+2, [endDate]  = getdate()+10;";
 | |
|                     _strSql = "";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
|                     break;
 | |
|                 case 99:  //query orders 
 | |
|                     _strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo  FROM t_wmsInRequest WHERE DR = 1 " + mObj.CmdParameters[0].ToString();
 | |
|                     _strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END";
 | |
|                     _strSql += ";SELECT COUNT(*) FROM t_wmsInRequest WHERE DR = 1  " + mObj.CmdParameters[0].ToString();
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
 | |
|                     sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
 | |
| 
 | |
|                     break;
 | |
|                 case 991:  //query sum in by goods 
 | |
|                     string tmp_strSql = "SELECT goodsId, goodsName, SUM(validCount) AS validCount, goodsTypeName, spec, unit, bigCount, manufacturer," +
 | |
|                         " ROW_NUMBER() OVER (ORDER BY GOODSID DESC) as sortNo  FROM dbo.v_stockInRequestDetail_wms WHERE whType = 0 " + mObj.CmdParameters[0].ToString() + " GROUP BY goodsId, goodsName, goodsTypeName, spec, unit, bigCount, manufacturer ";
 | |
|                     _strSql = "SELECT * FROM (" + tmp_strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END";
 | |
|                     _strSql += ";SELECT COUNT(*) FROM ("+ tmp_strSql + ")a  " ;
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
 | |
|                     sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
 | |
| 
 | |
|                     break;
 | |
|                 case 100:  //by name
 | |
|                     _strSql = "SELECT * FROM t_wmsInRequest WHERE NAME = @NAME";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@NAME", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
|                 case 110:  //initial by goodsid,batch,locationid
 | |
|                     _strSql = "SELECT * FROM t_wmsInRequest WHERE preInOrder =@ORDERNO";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
|                 case 200: //initial in stock requests
 | |
|                           // _strSql  = "INSER INTO  t_wmsInRequestDetail VALUES SELECT * FROM V_STOCKINREQUESTDETAIL A WHERE EXISTS(SELECT 1 FROM  V_STOCKINREQUEST B  "
 | |
|                           //           + "  WHERE ORDERDATE >= @START AND  ORDERDATE <= @END AND A.ORDERNO = B.ORDERNO)";
 | |
|                           //_strSql  += "INSER INTO  t_wmsInRequest VALUES SELECT * FROM V_STOCKINREQUEST WHERE ORDERDATE >= @START AND  ORDERDATE <= @END";
 | |
|                           //sqlCmd.Parameters.AddWithValue("@START", mObj.CmdParameters[0]);
 | |
|                           //sqlCmd.Parameters.AddWithValue("@END",   mObj.CmdParameters[0]);
 | |
| 
 | |
|                     //  string v_detailAvalable = WmsConstants.IN_STOCK_RECEIVE_VALID
 | |
|                     //      ?"v_stockInRequestDetail_Available"
 | |
|                     //      :"v_stockInRequestDetail_Available_noReceiveValid";
 | |
| 
 | |
|                     string v_detailAvalable = "v_stockInRequestDetail_Available_noReceiveValid";
 | |
| 
 | |
|                     _strSql = "INSERT INTO  t_wmsInRequestDetail (ORDERNO,GOODSID,VALIDCOUNT,PRODUCTDATE,BATCH,BARCODE,VALIDDATE,REGEDITCODE,MANUFACTURER,whType,validbyAccount1,validbyAccount ) "
 | |
|                                 + "SELECT  ORDERNO,GOODSID, COUNT,PRODUCTDATE,BATCH,BARCODE,VALIDDATE,REGEDITCODE,MANUFACTURER ,validResult,validbyAccount1,validbyAccount  FROM " + v_detailAvalable;
 | |
| 
 | |
|                     // A WHERE EXISTS(SELECT 1 FROM  V_STOCKINREQUEST_AVAILABLE B  "
 | |
|                     // + "  WHERE STATE =0 AND A.ORDERNO = B.ORDERNO);";
 | |
|                     _strSql += "; INSERT INTO  t_wmsInRequest (preInOrder,STATE,ORDERTYPENAME,ORDERDATE,VENDER,OWNER,DESCRIPTION) SELECT  ORDERNO,STATE,ORDERTYPENAME,ORDERDATE,VENDER,OWNER, DESCRIPTION "
 | |
|                                  + " FROM V_STOCKINREQUEST_AVAILABLE";// WHERE STATE =0 ";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
| 
 | |
|                     break;
 | |
| 
 | |
| 
 | |
|                 case 400:  //query order detail by orderNo, 
 | |
| 
 | |
|                     _strSql = "SELECT * FROM V_STOCKINREQUESTDETAIL_WMS WHERE preInOrder =@ORDERNO"
 | |
|                              + " ORDER BY GOODSID,BATCH";  //同药品,按批次排序,便于分配货位。
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 500:  //query order detail by orderNo, 
 | |
| 
 | |
|                     /*if (WmsConstants.IN_STOCK_PDA_SCAN)
 | |
|                    { 
 | |
|                        _strSql = "SELECT * FROM v_stockInRequestDetail4wince WHERE ORDERNO =@ORDERNO"
 | |
|                                 + " ORDER BY GOODSID,BATCH";  //同药品,按批次排序,便于分配货位。
 | |
|  
 | |
|                    }
 | |
|                    else
 | |
|                      * */
 | |
|                     {
 | |
|                         _strSql = "SELECT * FROM v_reportStockRecord WHERE ORDERNO =@ORDERNO"
 | |
|                                 + " ORDER BY GOODSID,BATCH";  //同药品,按批次排序,便于分配货位。
 | |
|                     }
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 600:  //query order with bad batch\productdate\validate details
 | |
| 
 | |
|                     _strSql = "SELECT * FROM V_STOCKINREQUEST_AVAILABLE_bad order by orderDate desc";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
|                     break;
 | |
|                 case 610:  //query order details with bad batch\productdate\validate  
 | |
| 
 | |
|                     _strSql = " select * from v_stockInRequestDetail_Available_bad a where  orderno =@orderNo "
 | |
|                              + " and exists (select 1   from v_stockInRequestDetail_Available_bad b where orderNo = a.orderNo  group by  goodsId,batch having(count(1)>1)) "
 | |
|                              + " order by goodsId,batch,productDate,validDate";
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[0]);
 | |
| 
 | |
|                     break;
 | |
|                 case 700:  //delete request and details
 | |
| 
 | |
|                     _strSql = "DELETE FROM T_WMSINREQUESTDETAIL WHERE  preInOrder =@ORDERNO "
 | |
|                               + " ; DELETE FROM T_WMSINREQUEST WHERE preInOrder =@ORDERNO";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
| 
 | |
|                 case 800:  //get stock in record detail by  Id
 | |
| 
 | |
|                     string col = "[分区] ,[商品名称]  ,[货位]  ,[应上数]  ,[实上数]  ,[sku]  ,[inPreOrder]   ,[上架码]  ,state  ,[diffCount] ,[portId] ,[partionEmpId],[partion], [unit] ,[typeName] ,[batch],[spec],[manufacturer] ,[validDate],[productDate] ,vender,orderNo";
 | |
|                     _strSql = " SELECT distinct " + col + " FROM [v_stockInRequestDetailOnShelf4wince] WHERE portId = @Id ";  
 | |
|                     // _strSql = "SELECT * FROM [v_stockInRequestDetail4wince] WHERE ID = @Id";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@Id", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
|                 case 810:  //get stock in record detail by  flowNo 托板验收流水号,可能对应多个货位
 | |
| 
 | |
|                     _strSql = "SELECT * FROM [v_stockInRequestDetail4wince] WHERE flowNo = @flowNo";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
|                 case 820:  //get stock in record detail by requestin  detailid 可能对应多个流水号  
 | |
|                     _strSql = "SELECT * FROM [v_stockInRequestDetail4wince] WHERE detailId = @detailId";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@detailId", mObj.CmdParameters[0]);
 | |
|                     break;
 | |
|                 case 830:  //get stock in record detail by preInNo, flowNo 托板验收流水号,可能对应多个货位
 | |
| 
 | |
|                     _strSql = "SELECT * FROM [t_wmsInRequestDetail] WHERE preInOrder =@preInNo" +
 | |
|                         " and flowNo = @flowNo" +
 | |
|                         " and state <@status";
 | |
| 
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@preInNo", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@status", (int)enumInStockDetailStatus.上架完成);
 | |
|                     break;
 | |
|                 case 900:  //update request order status to 
 | |
| 
 | |
|                     _strSql = " UPDATE T_WMSINREQUEST SET STATE =@STATE,operater=@operater,lastmodified=getdate() WHERE preInOrder =@ORDERNO  "
 | |
|                               + " AND NOT EXISTS(SELECT 1 FROM T_WMSINUPPORT WHERE preInOrder = @ORDERNO AND STATE=1 )";
 | |
|                     _strSql += "; UPDATE t_wmsInRequestDetail SET STATE =@DETAILSTATE,operater=@operater,lastmodified=getdate() WHERE id =@detailId  ";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@ORDERNO", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@detailId", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@STATE", (int)enumInStockOrderStatus.已上架);
 | |
|                     sqlCmd.Parameters.AddWithValue("@DETAILSTATE", (int)enumInStockDetailStatus.上架完成);
 | |
| 
 | |
|                     break;
 | |
|                 case 1000:  // 验收结果货位分配明细
 | |
|                       col = "[分区] ,[商品名称]  ,[货位]  ,[应上数]  ,box,[实上数]  ,[sku]  ,[inPreOrder]   ,[上架码] " +
 | |
|                         ",state  ,[diffCount] ,[portId] ,[partionEmpId],[partion], [unit] ,[typeName] ,[batch],[spec],bigCount,[manufacturer] ,[validDate],[productDate] ,vender,orderNo";
 | |
|                     _strSql = " SELECT distinct " + col + " FROM [v_stockInRequestDetailOnShelf4wince] WHERE 1=1 " +
 | |
|                         " and flowType=@flowType " +
 | |
|                         " and (state =@state or state =@statepart) " +
 | |
|                         " and partion is not null " +
 | |
|                      //  " and stackState=@taskState ";
 | |
|                          " and stackState<@taskState ";
 | |
|                     sqlCmd.Parameters.AddWithValue("@flowType",(int)EnumFlowTaskType.入库上架);
 | |
|                     sqlCmd.Parameters.AddWithValue("@state", (int)enumInStockDetailStatus.已分配货位);
 | |
|                     sqlCmd.Parameters.AddWithValue("@statepart", (int)enumInStockDetailStatus.部分上架);
 | |
|                     //  _strSql = " SELECT distinct * FROM [v_stockInRequestDetailOnShelf4wince] WHERE 1=1 ";
 | |
|                     //sqlCmd.Parameters.AddWithValue("@taskState", (int)enumFlowTaskStatus.进行中);
 | |
|                     sqlCmd.Parameters.AddWithValue("@taskState", (int)enumFlowTaskStatus.暂停);
 | |
|                     if (!String.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
 | |
|                     {
 | |
|                         _strSql += " and inPreOrder=@inPreOrder";
 | |
|                         sqlCmd.Parameters.AddWithValue("@inPreOrder", mObj.CmdParameters[0]);
 | |
| 
 | |
| 
 | |
|                     }
 | |
|                     if (!String.IsNullOrEmpty(mObj.CmdParameters[1].ToString()))
 | |
|                     {
 | |
|                         _strSql += " and 上架码 = @flowNo";
 | |
|                         sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[1]);
 | |
| 
 | |
|                     }
 | |
|                     if (Convert.ToInt32(mObj.CmdParameters[2].ToString()) > 0)
 | |
|                     {
 | |
|                         _strSql += " and empId=@userId";
 | |
|                         sqlCmd.Parameters.AddWithValue("@userId", mObj.CmdParameters[2]);
 | |
|                     }
 | |
|                    
 | |
|                     _strSql += " order by state, partion,货位 desc";
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 1100:  //  验收明细
 | |
|                     _strSql = "SELECT * FROM [v_stockInRequestDetail_wms] WHERE 1=1 ";
 | |
|                     if (!String.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
 | |
|                     {
 | |
|                         _strSql += " and preInOrder=@inPreOrder";
 | |
|                         sqlCmd.Parameters.AddWithValue("@inPreOrder", mObj.CmdParameters[0]);
 | |
| 
 | |
| 
 | |
|                     }
 | |
|                     if (!String.IsNullOrEmpty(mObj.CmdParameters[1].ToString()))
 | |
|                     {
 | |
|                         _strSql += " and flowNo = @flowNo";
 | |
|                         sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[1]);
 | |
| 
 | |
|                     }
 | |
|                     _strSql += " order by id desc";
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
| 
 | |
|                   //  LogHelper.debug(this.GetType(), _strSql);
 | |
|                   //  LogHelper.debug(this.GetType(), mObj.CmdParameters[0].ToString());
 | |
|                   //  LogHelper.debug(this.GetType(), mObj.CmdParameters[1].ToString());
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 1200:  //直通入库播种,根据验收流水号, 获取对应物品的出库订单需求明细
 | |
| 
 | |
|                     _strSql = "SELECT * FROM [v_stockInSeedsOutDetail] WHERE " +
 | |
|                         " flowNo = @flowNo"
 | |
|                         // + " order by priority"
 | |
|                         ;
 | |
| 
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
 | |
| 
 | |
|                     break;
 | |
| 
 | |
|                 case 1300:  // //直通入库播种,按门店边收边发, 获取对应物品的出库订单需求明细
 | |
| 
 | |
|                     _strSql = "SELECT *  FROM [v_stockInSeedsOutDetailByCust]  where  [preInOrderNo] =@preOrder";
 | |
| 
 | |
|                     if (!string.IsNullOrEmpty(mObj.CmdParameters[2].ToString()))
 | |
|                     {
 | |
|                         _strSql += " and ( barcode=@barcode )";
 | |
|                     }
 | |
| 
 | |
| 
 | |
| 
 | |
|                     _strSql += "  and customerid is not null {0} ";
 | |
| 
 | |
|                     string orderBy = mObj.CmdParameters[1].ToString();
 | |
|                     try
 | |
|                     {
 | |
|                         if (Convert.ToInt32(mObj.CmdParameters[1].ToString()) == 0) //by cust
 | |
|                         {
 | |
|                             orderBy = "  order by linePriority ,lineOrder";
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             orderBy = "  order by goodsId";
 | |
|                         }
 | |
|                     }catch (Exception er)
 | |
|                     {
 | |
| 
 | |
|                     }
 | |
|                      
 | |
| 
 | |
|                     _strSql = String.Format(_strSql, orderBy);
 | |
|                     //LogHelper.debug(GetType(), _strSql);
 | |
|                     sqlCmd.CommandText = _strSql;
 | |
|                     sqlCmd.Parameters.AddWithValue("@preOrder", mObj.CmdParameters[0]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@orderBy", mObj.CmdParameters[1]);
 | |
|                     sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[2]);
 | |
|                     break;
 | |
| 
 | |
| 
 | |
|                 case 1400:  // 取已完验
 | |
| 
 | |
|                     _strSql = "  SELECT * FROM T_WMSINREQUEST a  where     STATE = @orderStatus   and   isnull( lastmodified,createtime) +1 > getdate()  " +
 | |
|                         " and not exists(select 1 from t_wmsInUpPort where orderno =a.preInOrder and state =@upStatus) ";
 | |
|                     sqlCmd.CommandText = _strSql; 
 | |
|                     sqlCmd.Parameters.AddWithValue("@orderStatus", (int)enumInStockOrderStatus.完验);
 | |
|                     sqlCmd.Parameters.AddWithValue("@upStatus", (int)enumInStockDetailStatus.已分配货位);
 | |
| 
 | |
| 
 | |
|                     break;
 | |
| 
 | |
| 
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |