/// ///INTERFACE IMPLIMENT FOR TABLE t_wmsInRequest ///By wm with codesmith. ///on 05/12/2017 /// 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 desc,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; } } } }