ldj/Model/wms/data/WmsInRequest_Imp.cs

327 lines
18 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;
}
}
}
}