2023-05-23 16:13:17 +08:00
/// <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; " ;
2023-11-21 19:18:23 +08:00
_strSql + = " truncate table t_wmsOrderDetail;" ;
2023-05-23 16:13:17 +08:00
_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;" ;
2023-11-21 19:18:23 +08:00
_strSql = "" ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
break ;
case 99 : //query orders
2023-11-21 19:18:23 +08:00
_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 ;
2023-05-23 16:13:17 +08:00
case 100 : //by name
_strSql = "SELECT * FROM t_wmsInRequest WHERE NAME = @NAME" ;
2023-11-21 19:18:23 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@NAME" , mObj . CmdParameters [ 0 ] ) ;
2023-05-23 16:13:17 +08:00
break ;
case 110 : //initial by goodsid,batch,locationid
2023-09-04 22:41:19 +08:00
_strSql = "SELECT * FROM t_wmsInRequest WHERE preInOrder =@ORDERNO" ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2023-11-21 19:18:23 +08:00
sqlCmd . Parameters . AddWithValue ( "@ORDERNO" , mObj . CmdParameters [ 0 ] ) ;
2023-05-23 16:13:17 +08:00
break ;
case 200 : //initial in stock requests
2023-11-21 19:18:23 +08:00
// _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]);
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
// string v_detailAvalable = WmsConstants.IN_STOCK_RECEIVE_VALID
// ?"v_stockInRequestDetail_Available"
// :"v_stockInRequestDetail_Available_noReceiveValid";
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
string v_detailAvalable = "v_stockInRequestDetail_Available_noReceiveValid" ;
2023-05-23 16:13:17 +08:00
_strSql = "INSERT INTO t_wmsInRequestDetail (ORDERNO,GOODSID,VALIDCOUNT,PRODUCTDATE,BATCH,BARCODE,VALIDDATE,REGEDITCODE,MANUFACTURER,whType,validbyAccount1,validbyAccount ) "
2023-11-21 19:18:23 +08:00
+ "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);";
2023-09-04 22:41:19 +08:00
_strSql + = "; INSERT INTO t_wmsInRequest (preInOrder,STATE,ORDERTYPENAME,ORDERDATE,VENDER,OWNER,DESCRIPTION) SELECT ORDERNO,STATE,ORDERTYPENAME,ORDERDATE,VENDER,OWNER, DESCRIPTION "
2023-11-21 19:18:23 +08:00
+ " FROM V_STOCKINREQUEST_AVAILABLE" ; // WHERE STATE =0 ";
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2023-11-21 19:18:23 +08:00
break ;
2023-05-23 16:13:17 +08:00
case 400 : //query order detail by orderNo,
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM V_STOCKINREQUESTDETAIL_WMS WHERE preInOrder =@ORDERNO"
+ " ORDER BY GOODSID,BATCH" ; //同药品,按批次排序,便于分配货位。
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@ORDERNO" , mObj . CmdParameters [ 0 ] ) ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
break ;
2023-05-23 16:13:17 +08:00
case 500 : //query order detail by orderNo,
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
/ * if ( WmsConstants . IN_STOCK_PDA_SCAN )
{
_strSql = "SELECT * FROM v_stockInRequestDetail4wince WHERE ORDERNO =@ORDERNO"
+ " ORDER BY GOODSID,BATCH" ; //同药品,按批次排序,便于分配货位。
}
else
* * /
2023-11-21 19:18:23 +08:00
{
2023-05-23 16:13:17 +08:00
_strSql = "SELECT * FROM v_reportStockRecord WHERE ORDERNO =@ORDERNO"
+ " ORDER BY GOODSID,BATCH" ; //同药品,按批次排序,便于分配货位。
2023-11-21 19:18:23 +08:00
}
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@ORDERNO" , mObj . CmdParameters [ 0 ] ) ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
break ;
2023-05-23 16:13:17 +08:00
case 600 : //query order with bad batch\productdate\validate details
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM V_STOCKINREQUEST_AVAILABLE_bad order by orderDate desc" ;
sqlCmd . CommandText = _strSql ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
break ;
2023-05-23 16:13:17 +08:00
case 610 : //query order details with bad batch\productdate\validate
2023-11-21 19:18:23 +08:00
_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" ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@orderNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
2023-05-23 16:13:17 +08:00
case 700 : //delete request and details
2023-11-21 19:18:23 +08:00
_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 ;
2023-05-23 16:13:17 +08:00
case 800 : //get stock in record detail by Id
2023-11-21 19:18:23 +08:00
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 ;
2023-05-23 16:13:17 +08:00
case 810 : //get stock in record detail by flowNo 托板验收流水号,可能对应多个货位
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM [v_stockInRequestDetail4wince] WHERE flowNo = @flowNo" ;
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@flowNo" , mObj . CmdParameters [ 0 ] ) ;
break ;
2023-05-23 16:13:17 +08:00
case 820 : //get stock in record detail by requestin detailid 可能对应多个流水号
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM [v_stockInRequestDetail4wince] WHERE detailId = @detailId" ;
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@detailId" , mObj . CmdParameters [ 0 ] ) ;
break ;
2023-05-23 16:13:17 +08:00
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 ] ) ;
2023-11-21 19:18:23 +08:00
sqlCmd . Parameters . AddWithValue ( "@status" , ( int ) enumInStockDetailStatus . 上 架 完 成 ) ;
2023-05-23 16:13:17 +08:00
break ;
case 900 : //update request order status to
2023-11-21 19:18:23 +08:00
_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 ;
2023-05-23 16:13:17 +08:00
case 1000 : // 验收结果货位分配明细
2023-11-21 19:18:23 +08:00
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 " +
2024-02-06 19:36:47 +08:00
" and flowType=@flowType " +
" and (state =@state or state =@statepart) " +
2024-04-12 09:43:41 +08:00
" and partion is not null " +
2024-02-06 19:36:47 +08:00
// " 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 . 暂 停 ) ;
2023-11-21 19:18:23 +08:00
if ( ! String . IsNullOrEmpty ( mObj . CmdParameters [ 0 ] . ToString ( ) ) )
{
_strSql + = " and inPreOrder=@inPreOrder" ;
2023-05-23 16:13:17 +08:00
sqlCmd . Parameters . AddWithValue ( "@inPreOrder" , mObj . CmdParameters [ 0 ] ) ;
2023-11-21 19:18:23 +08:00
}
if ( ! String . IsNullOrEmpty ( mObj . CmdParameters [ 1 ] . ToString ( ) ) )
{
_strSql + = " and 上架码 = @flowNo" ;
sqlCmd . Parameters . AddWithValue ( "@flowNo" , mObj . CmdParameters [ 1 ] ) ;
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
}
if ( Convert . ToInt32 ( mObj . CmdParameters [ 2 ] . ToString ( ) ) > 0 )
{
_strSql + = " and empId=@userId" ;
sqlCmd . Parameters . AddWithValue ( "@userId" , mObj . CmdParameters [ 2 ] ) ;
}
2024-02-06 19:36:47 +08:00
2023-11-21 19:18:23 +08:00
_strSql + = " order by state, partion,货位 desc" ;
sqlCmd . CommandText = _strSql ;
break ;
2023-05-23 16:13:17 +08:00
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 ] ) ;
}
2023-11-21 19:18:23 +08:00
_strSql + = " order by id desc" ;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
2023-11-21 19:18:23 +08:00
// LogHelper.debug(this.GetType(), _strSql);
// LogHelper.debug(this.GetType(), mObj.CmdParameters[0].ToString());
// LogHelper.debug(this.GetType(), mObj.CmdParameters[1].ToString());
2023-05-23 16:13:17 +08:00
break ;
case 1200 : //直通入库播种,根据验收流水号, 获取对应物品的出库订单需求明细
_strSql = "SELECT * FROM [v_stockInSeedsOutDetail] WHERE " +
2023-09-04 22:41:19 +08:00
" flowNo = @flowNo"
2023-11-21 19:18:23 +08:00
// + " order by priority"
2023-09-04 22:41:19 +08:00
;
2023-05-23 16:13:17 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@flowNo" , mObj . CmdParameters [ 0 ] ) ;
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
break ;
2023-09-04 22:41:19 +08:00
case 1300 : // //直通入库播种,按门店边收边发, 获取对应物品的出库订单需求明细
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM [v_stockInSeedsOutDetailByCust] where [preInOrderNo] =@preOrder" ;
if ( ! string . IsNullOrEmpty ( mObj . CmdParameters [ 2 ] . ToString ( ) ) )
{
2024-02-06 19:36:47 +08:00
_strSql + = " and ( barcode=@barcode )" ;
2023-11-21 19:18:23 +08:00
}
2024-02-06 19:36:47 +08:00
_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);
2023-09-04 22:41:19 +08:00
sqlCmd . CommandText = _strSql ;
sqlCmd . Parameters . AddWithValue ( "@preOrder" , mObj . CmdParameters [ 0 ] ) ;
sqlCmd . Parameters . AddWithValue ( "@orderBy" , mObj . CmdParameters [ 1 ] ) ;
2023-11-21 19:18:23 +08:00
sqlCmd . Parameters . AddWithValue ( "@barcode" , mObj . CmdParameters [ 2 ] ) ;
2023-09-04 22:41:19 +08:00
break ;
2023-05-23 16:13:17 +08:00
}
}
}
}