ldj/Model/wms/data/WmsOutPickLable_Imp.cs

462 lines
23 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_wmsOutPickLable
///By wm with codesmith.
///on 05/22/2017
/// </summary>
using System;
using System.Data.SqlClient;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class WmsOutPickLable_Imp : WmsOutPickLable_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
base.CmdPrepare(sqlCmd);
WmsOutPickLable mObj = ( WmsOutPickLable)modelObj;
bool isShowAll = false;
string wherestr = "";
switch (_cust_op_flag)
{
case 99: //query with dic
_strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo FROM t_wmsOutPickLable WHERE DR = 1 " + mObj.CmdParameters[0].ToString();
_strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID DESC";
_strSql += ";SELECT COUNT(*) FROM t_wmsOutPickLable WHERE DR = 1 " + mObj.CmdParameters[0].ToString();
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_wmsOutPickLable WHERE NAME = @NAME";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@NAME", mObj.CmdParameters[0] );
break;
case 200: //by pickorder
isShowAll = Convert.ToBoolean(mObj.CmdParameters[1]);
_strSql = "SELECT a.* FROM [v_stockOutLablePickDetail] a where orderNo =@orderNo ";
if (!isShowAll )
{
_strSql += " and state =@state ";
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
}
sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 300: //by dpsOrder
isShowAll = Convert.ToBoolean(mObj.CmdParameters[1]);
_strSql = "SELECT a.* FROM [v_stockOutLablePickDetail] a where dpsOrder =@dpsOrder ";
if (!isShowAll)
{
_strSql += " and state =@state ";
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[2]);
}
sqlCmd.Parameters.AddWithValue("@dpsOrder", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 400: //by state
_strSql = "SELECT a.* FROM [v_stockOutLablePickDetail] a where 1=1 ";
_strSql += " and state =@state ";
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 401: //可亮灯第三方数据
_strSql = "SELECT * FROM [v_unpick_toLight] where 1=1 order by port,color ";
sqlCmd.CommandText = _strSql;
break;
case 402: //第三方数据,location 需要维护的数据
_strSql = "SELECT distinct locationid FROM t_wmsOutPickLable a where not exists(select 1 from t_wmslocation where locationid =a.locationid)";
sqlCmd.CommandText = _strSql;
break;
case 403: //第三方数据,当前波次
_strSql = "SELECT *,0 AS isLightUp, 0 AS isPicked FROM t_wmsOutPickLable_tmp ";
_strSql += "; SELECT distinct locationId FROM t_wmsOutPickLable a where not exists(select 1 from t_wmslocation where locationid =a.locationid)";
sqlCmd.CommandText = _strSql;
break;
case 500: //to get current wave picking list by state
_strSql = "SELECT a.* FROM [t_wmsOutPickLable_tmp] a where state =@state  ";
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 501: //to get current wave picking list by state
_strSql = "SELECT a.* FROM [t_wmsOutPickLable_tmp] a where partion=@partion and state =@state  ";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 502: //to get current wave picking list by partion
_strSql = "SELECT a.* FROM [t_wmsOutPickLable_tmp] a where partion=@partion ";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 503:
_strSql = "SELECT * FROM [t_wmsOutPickLable_tmp] where dpsOrder=@dpsOrder ";
sqlCmd.Parameters.AddWithValue("@dpsOrder", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
/*case 503: //to get current wave picking list by partions
_strSql = "SELECT a.* FROM [t_wmsOutPickLable_tmp] a where state =@state ";
if(!String.IsNullOrEmpty(mObj.CmdParameters[1].ToString())){
_strSql += "and partion in " + mObj.CmdParameters[1];
}
//sqlCmd.Parameters.AddWithValue("@partions", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
*/
case 600 : //拣选结束lable 回传数据
wherestr = " where state = 0 and color =@color and elabId =@elabId and elabAddress=@elabAddress "
+ " and pickCount =0 and count =@pickCount";
// + "and isnull(plate,'-1')!='-1'"; //seed picking, a location can split to plates.
// bool isPDAouting = Convert.ToBoolean(mObj.CmdParameters[4].ToString());
//更新库存信息
if (Convert.ToBoolean(mObj.CmdParameters[4].ToString()))
{
/*update t_wmsStockRecord
* string recDesc = string.Format(";{0}:{1}","电子标签捡货",DateTime.Now);
_strSql = " update [t_wmsStockRecord] set count = @pickCount,description =@desc ,lastmodified =@timenow where exists(select 1 from t_wmsOutPickLable_tmp "
+ wherestr
+ " and recordId = t_wmsStockRecord.id ); ";
*/
//更新库存
_strSql = " update t_wmsStock set countOuting = countOuting - @pickCount,countOut =countOut + @pickCount "
+ " where exists(select 1 from t_wmsOutPickLable_tmp "
+ wherestr
+ " and locationid = t_wmsStock.locationId);"
;
// sqlCmd.Parameters.AddWithValue("@desc",recDesc);
sqlCmd.Parameters.AddWithValue("@timenow", DateTime.Now);
}
else
{
_strSql = "";
}
_strSql += " update [t_wmsOutPickLable_tmp] set state = @state , pickCount =@pickCount "
+ wherestr;
sqlCmd.Parameters.AddWithValue("@state", (int)DeiNiu.Utils.enumPickState.); //can be picked more than onece?
sqlCmd.Parameters.AddWithValue("@color", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@elabId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@pickCount", mObj.CmdParameters[2]);
sqlCmd.Parameters.AddWithValue("@elabAddress", mObj.CmdParameters[3]);
sqlCmd.CommandText = _strSql;
break;
case 610: // 更新 待复核数据状态
_strSql = " update t_wmsOutPickDetail_tmp set bulkPickState = @bulkPickState where "
+" exists(select 1 from t_wmsOutPickLable_tmp where dpsOrder = t_wmsOutPickDetail_tmp.waveOrder "
+" and orderdetailId = t_wmsOutPickDetail_tmp.id"
+" and state =@pickState"
+" and color =@color and elabId =@elabId and elabAddress=@elabAddress)";
// _strSql += "; update t_wmsOutDesk set state =0";
sqlCmd.Parameters.AddWithValue("@bulkPickState", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@pickState", (int)DeiNiu.Utils.enumPickState.);
sqlCmd.Parameters.AddWithValue("@color", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@elabId", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@elabAddress", mObj.CmdParameters[2]);
sqlCmd.CommandText = _strSql;
break;
case 611: // 强制更新 待复核数据状态
_strSql = " update t_wmsOutPickDetail_tmp set bulkPickState = @bulkPickState, bulkpicked =bulkcount where "
+ " waveOrder=@waveNo";
// _strSql += "; update t_wmsOutPickDetail set bulkPickState = @bulkPickState, bulkpicked =bulkcount where "
// + " waveOrder=@waveNo";
// _strSql += "; update t_wmsOutDesk set state =0";
sqlCmd.Parameters.AddWithValue("@bulkPickState", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@waveNo", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 700: //清除临时数据
string cols = " [pickOrderNo],[dpsOrder] ,[color] ,[recordId] ,[count] ,[locationId] ,[elabId] ,[port] ,[elabAddress]"
+ ",[state] ,[pickCount] ,[description] ,[operater] ,[dr] ,[createtime] ,[lastmodified],[plate],[partion]";
_strSql = string.Format(" insert into t_wmsOutPickLable ({0}) ", cols)
+ string.Format(" select {0} from t_wmsOutPickLable_tmp where state = @state ;", cols)
+ string.Format(" delete from t_wmsOutPickLable_tmp where state = @state ;");
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 701: //清除part临时数据
string cols4 = " [pickOrderNo],[dpsOrder] ,[color] ,[recordId] ,[count] ,[locationId] ,[elabId] ,[port] ,[elabAddress]"
+ ",[state] ,[pickCount] ,[description] ,[partion] ,[operater] ,[dr] ,[createtime] ,[lastmodified],[plate],[partion]";
_strSql = string.Format(" insert into t_wmsOutPickLable ({0}) ", cols4)
+ string.Format(" select {0} from t_wmsOutPickLable_tmp where partion=@partion and state = @state ;", cols4)
+ string.Format(" delete from t_wmsOutPickLable_tmp where partion=@partion and state = @state ;");
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 710: //强制清除临时数据 by force
string cols2 = " [pickOrderNo],[dpsOrder] ,[color] ,[recordId] ,[count] ,[locationId] ,[elabId] ,[port] ,[elabAddress]"
+ ",[state] ,[pickCount] ,[description] ,[operater] ,[dr] ,[createtime] ,[lastmodified],[plate],[partion]";
_strSql = " update [t_wmsOutPickLable_tmp] set state = @state ,description ='强制结束' where state =" + (int)DeiNiu.Utils.enumPickState.
+ string.Format("; insert into t_wmsOutPickLable ({0}) select {1} from t_wmsOutPickLable_tmp", cols2, cols2)
+ string.Format("; delete from t_wmsOutPickLable_tmp ");
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 711: //强制清除 part 临时数据 by force
string cols3 = " [pickOrderNo],[dpsOrder] ,[color] ,[recordId] ,[count] ,[locationId] ,[elabId] ,[port] ,[elabAddress]"
+ ",[state] ,[pickCount] ,[description],[partion] ,[operater] ,[dr] ,[createtime] ,[lastmodified],[plate],[partion]";
_strSql = " update [t_wmsOutPickLable_tmp] set state = @state ,description ='强制结束' where partion=@partion and state =" + (int)DeiNiu.Utils.enumPickState.
+ string.Format("; insert into t_wmsOutPickLable ({0}) select {1} from t_wmsOutPickLable_tmp where partion=@partion ", cols3, cols3)
+ string.Format("; delete from t_wmsOutPickLable_tmp where partion=@partion ");
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 712: //分区现有订单中未完成分拣的明细(订单明细可能在其他区或未开始拣选)
_strSql = " select * from t_wmsOutPickDetail_tmp pd where "
+ " exists(select 1 from t_wmsOutPickLable_tmp where partion =@partion and pickOrderNo = pd.pickOrderNo)"
+ " and bulkPickState <@bulkPickState";
sqlCmd.Parameters.AddWithValue("@bulkPickState", (int)DeiNiu.Utils.enumOutStockPickStatus.);
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 720: // 清除第三方临时数据 已完成部分的t_wmsOutPickLable的数据由第三方负责转入历史表t_wmsOutPickLable_history
_strSql = " update [t_wmsOutPickLable] set state = @state ,description =@desc where dpsOrder =@dpsOrder and state ="
+ (int)DeiNiu.Utils.enumPickState.
+ "; delete from t_wmsOutPickLable_tmp " ;
sqlCmd.Parameters.AddWithValue("@state", (int)DeiNiu.Utils.enumPickState.);
sqlCmd.Parameters.AddWithValue("@dpsOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@desc", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 721: //
_strSql = " ";
sqlCmd.Parameters.AddWithValue("@state", (int)DeiNiu.Utils.enumPickState.);
sqlCmd.Parameters.AddWithValue("@dpsOrder", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@desc", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 800: //pick list by dpsOrder
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,color as ele_order "
+ " FROM [t_wmsOutPickLable_tmp] a where dpsOrder =@dpsOrder order by port,color  "; // 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@dpsOrder", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 900: //get pick detail by state
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,color as ele_order "
+ " FROM [t_wmsOutPickLable_tmp] a where state =@state order by port,color"; // 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 901: //get part pick light data, all include picked, picked will be not lightup,but 相应完成器会点亮
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order ,state"
+ " FROM [t_wmsOutPickLable_tmp] a where partion=@partion order by port,partion"; // 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@partion", 4);
sqlCmd.CommandText = _strSql;
break;
case 902: //get part pick light data
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order ,state"
+ " FROM [t_wmsOutPickLable_tmp] a where state =@state ";
if (!String.IsNullOrEmpty(mObj.CmdParameters[1].ToString()))
{
_strSql += " and partion in " + mObj.CmdParameters[1];
}
_strSql += " order by port,partion"; // 按 Portpartion排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 903: //get part pick light data
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order ,state"
+ " FROM [t_wmsOutPickLable_tmp] a where state =@state and partion=@partion order by port,partion"; // 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@partion", 1);
sqlCmd.CommandText = _strSql;
break;
case 904: //get part task list
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order ,state"
+ " FROM [t_wmsOutPickLable_tmp] a where state =@state and partion=1 order by port,partion"; // 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 905: //get part task list
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order ,state,dpsOrder"
+ " FROM [t_wmsOutPickLable_tmp] a where exists(select 1 from(SELECT distinct top (@cnt) dpsorder ,[color] FROM [t_wmsOutPickLable_tmp] "; // 按 Portcolor排序 否则点灯异常
_strSql += "where state =@state and partion=@partion order by dpsorder ,color ) b where b.dpsorder =a.dpsorder and b.color = a.color ) and state =@state and partion=@partion";
_strSql += " order by port,color"; // 按 Portpartion排序 否则点灯异常// 按 Portcolor排序 否则点灯异常
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@state", mObj.CmdParameters[1]);
sqlCmd.Parameters.AddWithValue("@cnt", mObj.CmdParameters[2]);
sqlCmd.CommandText = _strSql;
break;
case 1000: //按分区待拣数据体积、重量、数目等 用于rf终端
_strSql = "select * from [v_stockOutPartionBulkSum4wince] "
+ " where 分区编号 =@partion "
+ " order by color";
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[0]);
sqlCmd.CommandText = _strSql;
break;
case 1100: // 按周转箱、分区号,取播种亮灯任务
// _strSql = "select * from [t_wmsOutPickLable_tmp] "
// + " where plate=@plateId and partion = @partion";
_strSql = "SELECT elabid as ele_lab_id,elabAddress as ele_address,port,count as pick_count,count - pickCount as send_count, color ,partion as ele_order "
+ " FROM [t_wmsOutPickLable_tmp] a where state=0 and plate=@plateId "
+" and partion = @partion "
+" order by port,ele_lab_id,ele_address  "; // 端口标签id,位置
sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
case 1200: // 按周转箱、分区号,取播种亮灯任务
_strSql = " SELECT goodsname as 货品, [count] as 数量,locationId as 货位,[elabId] as 标签ID,[color] as 播种台 ,[dpsOrder] as 播种单 "
+ " FROM [v_stockOutPartionBulkInCurrentWave] a where state=0 and plate=@plateId "
+ " and partion = @partion "
+ " order by locationId ";
sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
sqlCmd.Parameters.AddWithValue("@partion", mObj.CmdParameters[1]);
sqlCmd.CommandText = _strSql;
break;
}
}
}
}