ldj/Model/wms/data/WmsOutPickPort_Imp.cs

838 lines
40 KiB
C#
Raw Normal View History

2023-05-23 16:13:17 +08:00

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmsOutPickPort
///By wm with codesmith.
///on 06/15/2017
/// </summary>
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class WmsOutPickPort_Imp : WmsOutPickPort_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
WaveRule wr;
2023-12-03 22:13:49 +08:00
try
{
base.CmdPrepare(sqlCmd);
}catch(Exception er)
{
LogHelper.WriteLog(this.GetType(), er);
}
2023-05-23 16:13:17 +08:00
WmsOutPickPort mObj = ( WmsOutPickPort)modelObj;
switch (_cust_op_flag)
{
case 99: //query with dic
2024-03-06 20:48:05 +08:00
if (/*1==1 ||*/ mObj.CmdParameters[0].ToString().Contains("saleOrder ="))
2023-05-23 16:13:17 +08:00
{
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
2023-11-21 19:18:23 +08:00
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY pickpriority ,channel,shelf,layer";
2023-05-23 16:13:17 +08:00
_strSql += ";SELECT COUNT(*) FROM [v_stockOutBatchPickDetailWithSaleOrder] WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
}
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
else
{
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM v_stockOutBatchPickDetail WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID ";
_strSql += ";SELECT COUNT(*) FROM v_stockOutBatchPickDetail WHERE 1 = 1 " + mObj.CmdParameters[0].ToString();
}
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.CommandText = _strSql;
break;
case 100: //by name
_strSql = "SELECT * FROM t_wmsOutPickPort WHERE NAME = @NAME";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@NAME", mObj.CmdParameters[0]);
break;
case 200: //by pickorderNo
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * FROM v_stockoutport WHERE pickOrderNo = @pickOrderNo ";
if (Convert.ToInt16(mObj.CmdParameters[1]) > -1)
{
_strSql += " and state =@state";
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
break;
case 201: // CLOSE ALL pick stasks that not picked by pickorderNo
_strSql = "UPDATE T_WMSOUTPICKPORT SET STATE =@STATE WHERE pickOrderNo = @pickOrderNo and state=0 ";
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@STATE", (int)enumPickState.);
2023-05-23 16:13:17 +08:00
break;
case 300: //get detail by Id
// _strSql = "SELECT * FROM [v_stockOutBatchPickDetail] WHERE ID = @Id";
_strSql = "SELECT * FROM [v_stockOutPort] WHERE ID = @Id";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@Id", mObj.CmdParameters[0]);
break;
case 400: //update state by Id
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,operater =@operater,lastmodified = getdate() WHERE ID = @Id";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@Id", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 401: //update state by pickOrderDetailId, bulk item validation done
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,operater =@operater,lastmodified = getdate()"
+ " , checkby=@operater,checkBy2=@checkBy2,checkTime=getdate(),checkByTime2=getdate()"
+" WHERE pickDetailId = @pickDetailId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickDetailId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@checkBy2", mObj.CmdParameters[3]);
break;
case 410: //update state by stockRecordId
_strSql = "UPDATE t_wmsOutPickPort SET STATE = @STATE ,pickby=@operater,pickTime=getdate(),operater =@operater,lastmodified = getdate() WHERE recordId = @recordId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@recordId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@operater", mObj.CmdParameters[2]);
break;
case 500: //by pickorderNo( or exclude rep pick order)
_strSql = "SELECT COUNT(*) FROM t_wmsOutPickPort WHERE state =@STATE";
2023-11-21 19:18:23 +08:00
if(!WmsConstants.OUT_STOCK_BULK_PDA_SCAN)
2023-05-23 16:13:17 +08:00
_strSql += Convert.ToBoolean(mObj.CmdParameters[2].ToString()) ?
" and volType > 0" //整库货位
: " and volType <= 0"; //零库货位
if (!string.IsNullOrEmpty(mObj.CmdParameters[0].ToString()))
{
_strSql += " and pickOrderNo = @pickOrderNo ";
sqlCmd.Parameters.AddWithValue("@pickOrderNo", mObj.CmdParameters[0]);
}
else if (!string.IsNullOrEmpty(mObj.CmdParameters[3].ToString()))
{
_strSql += " and waveOrder = @waveOrder ";
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[3]);
}
else
{
_strSql += " and waveOrder is not null ";
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@STATE", mObj.CmdParameters[1]);
break;
case 600: // get count for flowno and state
_strSql = "select count(*) from t_wmsOutPickPort where flowNo =@flowNo "
+ " and state !=@status";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@status", (int)enumPickState.);
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
/*
case 700: // 未分配波次的拣货任务
_strSql = "select * from t_wmsOutPickPort a where 1=1 "
+ " and exists(select 1 from t_wmsOutPickRequest where pickOrderNo =a.pickOrderNo and state=@orderState)"
+ " and waveOrder is null and state =@pickState"
+ " order by tranArea,pickOrderNo,voltype,partion,locationid";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
break;
*/
case 700: // 未分配波次的拣货任务
2023-09-04 22:41:19 +08:00
_strSql = "select top (@cnt) * from v_stockOutPort port where 1=1 "
// + " and orderState =@orderState "
+ " and waveOrder is null " +
" and state =@pickState";
2023-05-23 16:13:17 +08:00
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and ( orderType!= @orderType or exists(select 1 from v_tmsLineDetail where custid = port.customerId and lineId =@lineId))";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.owner))
{
_strSql += " and ( orderType!= @orderType or ownercode =@ownerCode ) ";
sqlCmd.Parameters.AddWithValue("@ownerCode", wr.owner);
}
2024-02-06 19:36:47 +08:00
_strSql += " order by priority desc,partion,channel,pickOrderNo,tranArea,voltype,locationid";
2023-05-23 16:13:17 +08:00
// LogHelper.debug("pick waves ", _strSql);
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@orderState", (int)enumOutStockRequestStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)enumPickState.);
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", (int)enumOrderType.);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.MAX_JOBS_IN_A_WAVE*20);
2023-05-23 16:13:17 +08:00
break;
case 701: // 未分配波次的拣货任务 4 dps wave
_strSql = "select top(@cnt) * from v_stockOutPort port where recType=1 "
+ " and dpsorder is null and elabId >0 and voltype=0 ";
wr = (WaveRule)mObj.CmdParameters[0];
if (wr.lineId > 0)
{
_strSql += " and ( orderType!= @orderType or exists(select 1 from v_tmsLineDetail where custid = port.customerId and lineId =@lineId))";
sqlCmd.Parameters.AddWithValue("@lineId", wr.lineId);
}
if (!string.IsNullOrEmpty(wr.owner))
{
_strSql += " and ( orderType!= @orderType or ownercode =@ownerCode ) ";
sqlCmd.Parameters.AddWithValue("@ownerCode", wr.owner);
}
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", (int)enumOrderType.);
2023-05-23 16:13:17 +08:00
_strSql += " order by pickOrderNo;";
sqlCmd.CommandText = _strSql;
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.MAX_CONTROL_DATA_IN_A_WAVE * 20);
2023-05-23 16:13:17 +08:00
break;
case 800: // 根据waveNo 取wave detail 分页数据
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM v_stockOutPort WHERE waveOrder =@waveNo ";
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY jobNo ";
_strSql += ";SELECT COUNT(*) FROM v_stockOutPort WHERE waveOrder =@waveNo ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 801: // 不分页详细数据
_strSql = "select * from t_wmsOutPickPort where waveOrder =@waveNo order by jobNo "
;
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 900: // get wave detail by waveNo
_strSql = "SELECT * FROM [v_stockOutPort] WHERE waveOrder = @waveOrder";
_strSql += " order by volType,part,locationId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
break;
case 910: // get wave detail by waveNo and volType
_strSql = "SELECT * FROM [v_stockOutPort] WHERE waveOrder = @waveOrder and volType =@volType";
_strSql += " order by part,locationId";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[1]);
break;
case 920: // get wave detail summary by waveNo and volType = bulk
_strSql = "SELECT * FROM [v_stockOutPortSum] WHERE waveOrder = @waveOrder and volType =@volType ";
_strSql += " order by pickOrderNo,jobNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@waveOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@volType", mObj.CmdParameters[1]);
break;
case 1000: //by orderNo
_strSql = "SELECT * FROM v_stockOutPort WHERE jobNo = @jobNo";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@jobNo", mObj.CmdParameters[0]);
break;
case 1001: //by flowno
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * FROM v_stockOutPort WHERE flowNo = @flowNo and goodsId=@goodsId and isnull(batch,@batch )=@batch ";// or batch is null)";
LogHelper.debug(GetType(), _strSql);
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
break;
2024-02-06 19:36:47 +08:00
case 1002: //by flowno and seedsNo
_strSql = "SELECT * FROM v_stockOutPort WHERE pickOrderNo=@seedsNo and flowNo = @flowNo and goodsId=@goodsId and isnull(batch,@batch )=@batch ";
LogHelper.debug(GetType(), _strSql);
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@goodsId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@batch", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@seedsNo", mObj.CmdParameters[3]);
break;
2023-05-23 16:13:17 +08:00
case 1100: //getFreeTasks
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] a WHERE cast(createtime as date) = cast(getdate() as date) " +
" and jobNo is not null" +
2023-09-04 22:41:19 +08:00
" and isnull(takeBy,0) =0 ";
2023-11-21 19:18:23 +08:00
if (Convert.ToInt32(mObj.CmdParameters[4]) > 0)
{
_strSql += " and orderType =@orderType ";
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
}
2024-02-06 19:36:47 +08:00
if (!(WmsConstants.OUT_TASK_ASSIGN_ZHAIGUO_TYPE && WmsConstants.OUT_SEEDS_PICK_TASK_AUTO_ASSIGN))
{
if (WmsConstants.OUT_SEEDS_PICK_TASK_AUTO_ASSIGN)
{
_strSql += " and recType = " + (int)enumStockRecordType.;
}
else
if (WmsConstants.OUT_TASK_ASSIGN_ZHAIGUO_TYPE)
{
_strSql += " and recType = " + (int)enumStockRecordType.;
}
}
2023-05-23 16:13:17 +08:00
if (Convert.ToBoolean(mObj.CmdParameters[2]))
{
_strSql += " and volType>0 ";
}
_strSql += " and state = " + (int)enumPickState.;
2023-09-04 22:41:19 +08:00
if (Convert.ToInt32(mObj.CmdParameters[0]) > 0)
2023-05-23 16:13:17 +08:00
{
2023-11-21 19:18:23 +08:00
_strSql += " and (partion=0 or partion =@partion)";
2023-05-23 16:13:17 +08:00
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
}
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
if (Convert.ToInt32(mObj.CmdParameters[1]) > 0)
2023-05-23 16:13:17 +08:00
{
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[1]);
}
if (Convert.ToInt32(mObj.CmdParameters[5]) > 0)
{
_strSql += " and exists(select 1 from v_empPartions where partion = a.partion and empId=@empId)";
sqlCmd.Parameters.AddWithValue("@empId", mObj.CmdParameters[5]);
}
2023-09-04 22:41:19 +08:00
_strSql += " order by priority desc,pickorderno,locationid";
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
2023-11-21 19:18:23 +08:00
break;
2023-12-03 22:13:49 +08:00
2023-11-21 19:18:23 +08:00
case 1110: //getFreeTasks by jobNo
_strSql = "SELECT top (@cnt) * FROM [v_stockOutBatchPickDetail] a WHERE cast(createtime as date) = cast(getdate() as date) " +
" and jobNo is not null" +
2024-02-06 19:36:47 +08:00
" and elabId =0 " +
" and isnull(takeBy,0) =0 " +
" and ( isWeightSeeds=0 or isWeightSeeds =1 and partion =@partion )"; //区的任务可跨区获取,或获取指定区的任务
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
/* // 是否可以获取分配任务
if (Convert.ToBoolean(mObj.CmdParameters[9]))
{
_strSql += " and recType =12 ";
}
*/
/*
*
if (!(WmsConstants.OUT_TASK_ASSIGN_ZHAIGUO_TYPE && WmsConstants.OUT_SEEDS_PICK_TASK_AUTO_ASSIGN))
{
if (WmsConstants.OUT_SEEDS_PICK_TASK_AUTO_ASSIGN) //集中拣货任务可抢
{
_strSql += " and recType = " + (int)enumStockRecordType.;
}
else
if (WmsConstants.OUT_TASK_ASSIGN_ZHAIGUO_TYPE) //按单拣货任务可抢
{
_strSql += " and recType = " + (int)enumStockRecordType.;
}
}
*/
2023-11-21 19:18:23 +08:00
if (Convert.ToInt32(mObj.CmdParameters[4]) > 0)
{
_strSql += " and orderType =@orderType ";
2023-12-03 22:13:49 +08:00
try
{
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
}catch(Exception er)
{
LogHelper.WriteLog(this.GetType(), er);
LogHelper.debug("wmsoutpickport_imp",er.StackTrace);
}
}
2024-02-06 19:36:47 +08:00
2023-12-03 22:13:49 +08:00
if (mObj.CmdParameters[6]!=null && ! string.IsNullOrEmpty( mObj.CmdParameters[6].ToString()))
{
_strSql += " and jobNo =@jobNo ";
sqlCmd.Parameters.AddWithValue("@jobNo", mObj.CmdParameters[6]);
2023-11-21 19:18:23 +08:00
}
2023-12-03 22:13:49 +08:00
if (Convert.ToInt32(mObj.CmdParameters[3]) > 0)
{
_strSql += " and warehouse =@warehouse ";
sqlCmd.Parameters.AddWithValue("@warehouse", mObj.CmdParameters[3]);
}
if (!string.IsNullOrEmpty(mObj.CmdParameters[7].ToString()))
{
_strSql += " and pickorderNo =@pickorderNo ";
sqlCmd.Parameters.AddWithValue("@pickorderNo", mObj.CmdParameters[7]);
}
2023-11-21 19:18:23 +08:00
if (Convert.ToBoolean(mObj.CmdParameters[2]))
{
_strSql += " and volType>0 ";
}
_strSql += " and state = " + (int)enumPickState.;
2024-02-06 19:36:47 +08:00
2023-11-21 19:18:23 +08:00
if (Convert.ToInt32(mObj.CmdParameters[0]) > 0)
{
_strSql += " and (partion=0 or partion =@partion)";
2024-02-06 19:36:47 +08:00
//sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
2023-11-21 19:18:23 +08:00
}
2024-02-06 19:36:47 +08:00
2023-11-21 19:18:23 +08:00
if (Convert.ToInt32(mObj.CmdParameters[1]) > 0)
{
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[1]);
}
if (Convert.ToInt32(mObj.CmdParameters[5]) > 0)
{
_strSql += " and exists(select 1 from v_empPartions where partion = a.partion and empId=@empId)";
sqlCmd.Parameters.AddWithValue("@empId", mObj.CmdParameters[5]);
}
2023-12-03 22:13:49 +08:00
// _strSql += " order by priority desc,pickorderno,locationid";
2023-11-21 19:18:23 +08:00
2023-12-03 22:13:49 +08:00
if (Convert.ToBoolean(mObj.CmdParameters[8]))
{
2024-03-06 20:48:05 +08:00
// _strSql += " order by priority desc,seedspickno desc, goodsid";
_strSql += " order by priority desc, goodsid";
2023-12-03 22:13:49 +08:00
}
else
{
2024-02-06 19:36:47 +08:00
_strSql += " order by priority desc,lineId,lineorder, pickorderNo , virtialCnt, warehouse,partion,channel,shelf,col,layer,goodsid";
2023-12-03 22:13:49 +08:00
}
2024-03-06 20:48:05 +08:00
// LogHelper.debug(GetType(), _strSql);
2023-12-03 22:13:49 +08:00
2024-03-06 20:48:05 +08:00
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.MAX_JOBS_IN_A_WAVE*5);
2023-11-21 19:18:23 +08:00
sqlCmd.CommandText = _strSql;
2023-05-23 16:13:17 +08:00
break;
2024-02-06 19:36:47 +08:00
case 1120: //getFreeTasks by pickorder
_strSql = "SELECT * FROM [v_stockOutBatchPickDetail] WHERE " +
" jobNo is not null" +
// " and elabId =0 " +
2024-02-06 19:36:47 +08:00
" and isnull(takeBy,0) =0 "+
" and pickorderNo =@pickorderNo "+
// " order by priority desc,lineId,lineorder, pickorderNo , virtialCnt," +
" order by warehouse,partion,channel,shelf,col,layer,goodsid";
2024-02-06 19:36:47 +08:00
sqlCmd.CommandText = _strSql;
// LogHelper.debug(GetType(), _strSql);
//sqlCmd.Parameters.AddWithValue("@takeBy", 5000);
// sqlCmd.Parameters.AddWithValue("@cnt", 5000);
sqlCmd.Parameters.AddWithValue("@pickorderNo", mObj.CmdParameters[0]);
break;
2023-05-23 16:13:17 +08:00
case 1200: //getAssignedTasks by takeby
_strSql = "SELECT top (@cnt) * FROM [v_stockOutBatchPickDetail] WHERE 1=1 ";
// + " and elabId = 0 " ;
2024-02-06 19:36:47 +08:00
if (Convert.ToInt32(mObj.CmdParameters[10]) <= 0)
{
_strSql += " and state = 0 "; //未拣任务
2024-02-06 19:36:47 +08:00
}
else
{
_strSql += " and state >= @state "; //已分拣、播种
}
// _strSql += " and (owner=@takeBy or takeBy =@takeBy) ";
_strSql += " and ( takeBy =@takeBy) ";
// _strSql += String.Format(" and ( takeBy ='{0}') ", mObj.CmdParameters[0]);
2023-09-04 22:41:19 +08:00
_strSql += " and jobNo is not null ";
2023-11-21 19:18:23 +08:00
2024-02-06 19:36:47 +08:00
if (Convert.ToInt32(mObj.CmdParameters[9]) > 0)
2023-11-21 19:18:23 +08:00
{
_strSql += " and orderType =@orderType ";
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[9]);
2023-11-21 19:18:23 +08:00
}
2023-05-23 16:13:17 +08:00
2024-02-06 19:36:47 +08:00
if (Convert.ToBoolean(mObj.CmdParameters[8]))
2023-05-23 16:13:17 +08:00
{
_strSql += " and volType>0 ";
}
/*
_strSql += " and isnull(lineid,0) = @lineId"
+ " and isnull(partion,0) =@partion"
+ " and takeBy =@takeBy"
+ " order by priority desc,locationid";
_strSql += " and isnull(takeBy,0) =@takeby";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[1]);
*/
2024-02-06 19:36:47 +08:00
if (Convert.ToInt32( mObj.CmdParameters[7])>0){
2023-05-23 16:13:17 +08:00
_strSql += " and isnull(lineid,0) = @lineId";
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[7]);
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
if (Convert.ToInt32(mObj.CmdParameters[6]) > 0)
2023-05-23 16:13:17 +08:00
{
_strSql += " and partion =@partion";
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[6]);
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
if (Convert.ToInt32(mObj.CmdParameters[10]) > 0) //播种
{
_strSql += " and isnull( pickTime,getdate()-100) > getdate()-1 " +
" and DATEPART(dd, isnull( pickTime,getdate()-5) ) = DATEPART(dd, getdate()) ";
_strSql += " order by pickTime desc ";
}
else
{
// _strSql += " order by priority desc,linepriority desc, pickorderNo ,/* virtialCnt,*/ warehouse,partion,locationId,channel,shelf,col,layer,goodsid";
_strSql += " order by priority desc,lineId,lineorder, pickorderNo , /* virtialCnt,*/ warehouse,partion,channel,shelf,col,layer,goodsid";
2024-02-06 19:36:47 +08:00
}
2024-03-06 20:48:05 +08:00
// LogHelper.debug(GetType(), _strSql);
2024-02-06 19:36:47 +08:00
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[10]);
// _strSql += " order by priority desc,customerid,locationid";
sqlCmd.Parameters.AddWithValue("@takeBy", mObj.CmdParameters[5]);
sqlCmd.Parameters.AddWithValue("@cnt", WmsConstants.MAX_JOBS_IN_A_WAVE);
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
2024-02-06 19:36:47 +08:00
2023-05-23 16:13:17 +08:00
break;
case 1300: //get assigned Tasks by pda //for wince use
_strSql = "SELECT [货区], [货位] ,[件],[线路],[数量],[商品] ,[分配人] "
+ " FROM [v_stockOutBatchPickDetail4Wince] WHERE state = " + (int)enumPickState. ;
_strSql += " and orderType =@orderType ";
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[4]);
if (Convert.ToBoolean(mObj.CmdParameters[3]))
{
_strSql += " and volType>0 ";
}
_strSql += " and isnull(takeBy,0) =@takeby";
2023-09-04 22:41:19 +08:00
if(Convert.ToInt32( mObj.CmdParameters[2])>0){
2023-05-23 16:13:17 +08:00
_strSql += " and isnull(lineid,0) = @lineId";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[2]);
}
2023-09-04 22:41:19 +08:00
if (Convert.ToInt32(mObj.CmdParameters[1]) > 0)
2023-05-23 16:13:17 +08:00
{
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
_strSql += " order by priority desc,货位";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@takeby", mObj.CmdParameters[0]);
break;
2024-02-06 19:36:47 +08:00
case 1400: //get partions
_strSql = " select flag as [partion] , name as [partName] from t_node where parentid=16753";
sqlCmd.CommandText = _strSql;
break;
case 1401: //get partion by userid
2023-05-23 16:13:17 +08:00
_strSql = "SELECT distinct [partion] ,[partName] FROM [v_empPartions] ";
_strSql += " where empid =@empId ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@empId", mObj.CmdParameters[0]);
break;
case 1500: //get partion by userid
_strSql = "SELECT * from t_wmsOutPickPort where recordId=@recId ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@recId", mObj.CmdParameters[0]);
break;
case 1600: //update bulkpickstatus by pickOrder ,seeds finished one pickorder
_strSql = " update t_wmsOutPickPort set state =@state "
+", checkby=@checkBy,checktime=getdate(),checkBy2=@checkBy2,checkByTime2=getdate()"
+" where voltype =0 "
+ " and pickOrderNo=@pickorderNo "
;
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@pickorderNo", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@checkBy", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@checkBy2", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[3]);
break;
case 1700: //get partion by userid
_strSql = "SELECT * from [v_repStockOutInTasks] where takeBy =@takeBy ";
_strSql += " and state =@state";
2023-09-04 22:41:19 +08:00
if(Convert.ToInt32(mObj.CmdParameters[1].ToString())>0){
2023-05-23 16:13:17 +08:00
_strSql += " and partion =@partion";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@takeBy", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
break;
case 1800://get seeds out detail by flowno
_strSql = "SELECT * from [v_stockOutPortSeedsDetail] where flowNo=@flowNo " +
"order by goodsId";
2023-11-21 19:18:23 +08:00
2023-05-23 16:13:17 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
case 1810://get seeds out detail by flowno, order by cust line order
_strSql = "SELECT * from [v_stockOutPortSeedsDetail] where flowNo=@flowNo " +
"order by lineOrder ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
2023-09-04 22:41:19 +08:00
case 1801://get seeds out detail by flowno
2023-11-21 19:18:23 +08:00
// _strSql = "SELECT * from [v_stockOutPortSeedsPickDetail] where flowNo=@flowNo " +
// "order by goodsId";
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * from [v_stockOutValidInSeedsDetail] where flowNo=@flowNo " + //直通分播商品按检验入拖的先入后出原则分播;
//集中贱货商品按拣货时间排序,后拣货的排前面
"order by picktime desc, goodsId,lineid, lineOrder";
2023-09-04 22:41:19 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
case 1811://get seeds out detail by flowno, order by cust line order
2023-11-21 19:18:23 +08:00
// _strSql = "SELECT * from [v_stockOutPortSeedsPickDetail] where flowNo=@flowNo " +
// "order by lineid, lineOrder,customerid ";
2023-09-04 22:41:19 +08:00
2024-02-06 19:36:47 +08:00
_strSql = "SELECT * from [v_stockOutValidInSeedsDetail] where flowNo=@flowNo " +//直通分播商品按检验入拖的先入后出原则分播; 集中拣货商品按店铺线路顺序排序
2023-11-21 19:18:23 +08:00
"order by createtime, lineid, lineOrder,customerid ";
2023-09-04 22:41:19 +08:00
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@flowNo", mObj.CmdParameters[0]);
break;
case 1900://get seeds out detail by flowno, order by cust line order
// _strSql = " SELECT distinct flowNo from [v_stockOutPortSeedsDetail] where availableCnt>0 ";
_strSql = " SELECT distinct flowNo from [v_stockOutPortSeedsPickDetail] where availableCnt>0 ";
sqlCmd.CommandText = _strSql;
break;
case 2000://get portdetails by pickdetailid and pick state
_strSql = " SELECT * from v_stockoutport where pickdetailId =@detailId and state =@state";
sqlCmd.Parameters.AddWithValue("@detailId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
2023-05-23 16:13:17 +08:00
2023-09-04 22:41:19 +08:00
case 2100://get portdetails cnt by pickdetailid and pick state
_strSql = " SELECT count(1) from v_stockoutport where pickdetailId =@detailId and state =@state";
sqlCmd.Parameters.AddWithValue("@detailId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
2023-11-21 19:18:23 +08:00
sqlCmd.CommandText = _strSql;
break;
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
case 2200://
_strSql = " SELECT * FROM [v_stockOutPortSumLight] WHERE state =0 and takeby=@takeby ";
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
if (Convert.ToInt16( mObj.CmdParameters[1].ToString())>0)
{
_strSql += " and partion=@partion ";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
if (Convert.ToInt16(mObj.CmdParameters[2].ToString()) > 0)
{
_strSql += " and orderType=@orderType" ;
sqlCmd.Parameters.AddWithValue("@orderType", mObj.CmdParameters[2]);
2023-05-23 16:13:17 +08:00
2023-11-21 19:18:23 +08:00
}
sqlCmd.Parameters.AddWithValue("@takeby", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
2024-02-06 19:36:47 +08:00
case 2210:// get by light
_strSql = " SELECT * FROM [v_stockOutPortSumLight] WHERE state =@state";
if (Convert.ToInt16(mObj.CmdParameters[1].ToString()) > 0)
{
_strSql += " and part=@partion ";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}
if (Convert.ToInt16(mObj.CmdParameters[2].ToString()) > 0)
{
_strSql += " and lineId=@lineId ";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[2]);
}
_strSql += " and orderDate=@orderDate ";
_strSql += " order by lineId,customerName ";
sqlCmd.Parameters.AddWithValue("@orderDate", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 2220:// get no light tasks
_strSql = " SELECT * FROM [v_stockOutPortSumNoLightByPickOrder] WHERE state =@state";
/*
if (Convert.ToInt16(mObj.CmdParameters[1].ToString()) > 0)
{
_strSql += " and part=@partion ";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
}*/
if (Convert.ToInt16(mObj.CmdParameters[4].ToString()) > 0)
{
_strSql += " and warehouse=@warehouse ";
sqlCmd.Parameters.AddWithValue("@warehouse", mObj.CmdParameters[4]);
}
if (Convert.ToInt16(mObj.CmdParameters[2].ToString()) > 0)
{
_strSql += " and lineId=@lineId ";
sqlCmd.Parameters.AddWithValue("@lineId", mObj.CmdParameters[2]);
}
_strSql += " and orderDate=@orderDate ";
_strSql += mObj.CmdParameters[5].ToString();
_strSql += " order by lineId,customerName ";
sqlCmd.Parameters.AddWithValue("@orderDate", mObj.CmdParameters[3]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
2023-11-21 19:18:23 +08:00
case 2300://
_strSql = " SELECT id as portId, * FROM v_stockoutport WHERE jobNo =@jobNo " +
2024-02-06 19:36:47 +08:00
" and elabId>0 order by lineid desc";
2023-11-21 19:18:23 +08:00
sqlCmd.Parameters.AddWithValue("@jobNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
2024-02-06 19:36:47 +08:00
case 2400://
_strSql = " SELECT id as portId, * FROM v_stockoutport WHERE pickorderNo =@pickorderNo " +
" and elabId>0 order by lineid desc ";
sqlCmd.Parameters.AddWithValue("@pickorderNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
2024-05-24 19:11:48 +08:00
case 2500://
_strSql = " select * from [v_stockSeedsDeskLight] where 1=1 " +
" and flowno =@flowno" +
" and deskId= @deskId" +
" and (barcode=@barcode /* or goodsId=@barcode */) ";
2024-02-06 19:36:47 +08:00
2024-05-24 19:11:48 +08:00
sqlCmd.Parameters.AddWithValue("@deskId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@flowno", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@barcode", mObj.CmdParameters[2]);
sqlCmd.CommandText = _strSql;
break;
2023-05-23 16:13:17 +08:00
}
2024-02-06 19:36:47 +08:00
sqlCmd.CommandText = _strSql;
2023-05-23 16:13:17 +08:00
}
}
}