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