433 lines
13 KiB
C#
433 lines
13 KiB
C#
|
|
/// <summary>
|
|
///INTERFACE CLASS FOR TABLE t_wmsOutPickLable
|
|
///By wm with codesmith.
|
|
///on 05/22/2017
|
|
/// </summary>
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
using DeiNiu.Utils;
|
|
|
|
namespace DeiNiu.wms.Data.Model
|
|
{
|
|
[Serializable]
|
|
public class WmsOutPickLable : WmsOutPickLable_base
|
|
{
|
|
public WmsOutPickLable()
|
|
{
|
|
|
|
}
|
|
|
|
public WmsOutPickLable(int id): base(id)
|
|
{
|
|
|
|
}
|
|
public WmsOutPickLable(DataRow dr): base(dr)
|
|
{
|
|
|
|
}
|
|
|
|
protected override void getImp()
|
|
{
|
|
model_imp = new WmsOutPickLable_Imp();
|
|
|
|
}
|
|
|
|
//begin cust db operation, query, excute sql etc.
|
|
public DataSet QueryByName(string name)
|
|
{
|
|
cmdParameters[0] = name;
|
|
return CustQuery(100);
|
|
}
|
|
/// <summary>
|
|
/// lookfor from history pick info
|
|
/// </summary>
|
|
/// <param name="pickOrder"></param>
|
|
/// <param name="isShowAll"></param>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
public DataSet getPickListByOrder(string pickOrder, bool isShowAll = true, enumPickState state = enumPickState.未拣)
|
|
{
|
|
cmdParameters[0] = pickOrder;
|
|
cmdParameters[1] = isShowAll;
|
|
cmdParameters[2] = (int) state;
|
|
return CustQuery(200);
|
|
}
|
|
/// <summary>
|
|
/// lookfor from history pick info
|
|
/// </summary>
|
|
/// <param name="waveOrder"></param>
|
|
/// <param name="isShowAll"></param>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
public DataSet getPickListByWave(string waveOrder, bool isShowAll = true, enumPickState state = enumPickState.未拣)
|
|
{
|
|
cmdParameters[0] = waveOrder;
|
|
cmdParameters[1] = isShowAll;
|
|
cmdParameters[2] = (int)state;
|
|
return CustQuery(300);
|
|
}
|
|
|
|
public DataSet getPickList(enumPickState state = enumPickState.未拣) {
|
|
cmdParameters[0] = (int)state;
|
|
return CustQuery(400);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 第三方亮灯数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataSet getNewPickList()
|
|
{
|
|
return CustQuery(401);
|
|
}
|
|
/// <summary>
|
|
/// 第三方数据 需维护货位和标签对应关系的数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable getUnMaintainLocations()
|
|
{
|
|
return CustQuery(402).Tables[0];
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// current pick details
|
|
/// from tmp table
|
|
/// </summary>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
public DataSet getCurrentPickList(enumPickState state = enumPickState.未拣)
|
|
{
|
|
cmdParameters[0] = (int)state;
|
|
return CustQuery(500);
|
|
}
|
|
/// <summary>
|
|
/// 分区拣选明细
|
|
/// </summary>
|
|
/// <param name="part"></param>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
public DataSet getPartPickList(int part,enumPickState state )
|
|
{
|
|
cmdParameters[0] = part;
|
|
cmdParameters[1] = (int)state;
|
|
return CustQuery(501);
|
|
}
|
|
|
|
public DataTable getDpsPickList(string dpsOrder, enumPickState state)
|
|
{
|
|
cmdParameters[0] = dpsOrder;
|
|
cmdParameters[1] = (int)state;
|
|
return CustQuery(503).Tables[0];
|
|
}
|
|
|
|
/// 分区拣选明细
|
|
/// </summary>
|
|
/// <param name="part"></param>
|
|
/// <param name="state"></param>
|
|
/// <returns></returns>
|
|
public DataSet getPartPickList(int part )
|
|
{
|
|
cmdParameters[0] = part;
|
|
return CustQuery(502);
|
|
}
|
|
/// <summary>
|
|
/// 分区现有订单中未完成分拣的明细(订单明细可能在其他区或未开始拣选)
|
|
/// </summary>
|
|
/// <param name="part"></param>
|
|
/// <returns></returns>
|
|
public DataTable getPartUnPickList(int part)
|
|
{
|
|
cmdParameters[0] = part;
|
|
return CustQuery(712).Tables[0];
|
|
}
|
|
|
|
/// <summary>
|
|
/// update the picking data
|
|
/// send back by ele label
|
|
/// </summary>
|
|
/// <param name="color"></param>
|
|
/// <param name="eleId"></param>
|
|
/// <param name="pickCount"></param>
|
|
/// <returns></returns>
|
|
public int updatePickingStatus(int color,int eleId,int elabAddress,decimal pickCount,bool isProcessStock =false)
|
|
{
|
|
|
|
cmdParameters[0] = color;
|
|
cmdParameters[1] = eleId;
|
|
cmdParameters[2] = pickCount;
|
|
cmdParameters[3] = elabAddress;
|
|
cmdParameters[4] = isProcessStock;
|
|
return CustOper(600);
|
|
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// 一个pickorderdetail 对象可能对应多个 WmsOutPickLable ,所以该方法不适用除强制分拣完成之外的地方了
|
|
///
|
|
/// 更新复核数据的捡货状态
|
|
/// 在更新临时捡货状态后调用
|
|
/// </summary>
|
|
/// <param name="color"></param>
|
|
/// <param name="eleId"></param>
|
|
/// <param name="elabAddress"></param>
|
|
/// <returns></returns>
|
|
public int updateValidPickingStatus(int color, int eleId, int elabAddress )
|
|
{
|
|
|
|
cmdParameters[0] = color;
|
|
cmdParameters[1] = eleId;
|
|
cmdParameters[2] = elabAddress;
|
|
|
|
return CustOper(610);
|
|
|
|
}
|
|
/// <summary>
|
|
/// 仅适用除强制分拣完成,复核数据状态更新
|
|
/// </summary>
|
|
/// <param name="dpsOrder"></param>
|
|
/// <returns></returns>
|
|
public int updateValidPickingStatus(string dpsOrder)
|
|
{
|
|
|
|
cmdParameters[0] = dpsOrder;
|
|
|
|
|
|
return CustOper(611);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// move the current picking data to picking [t_wmsOutPickLable]
|
|
/// delete the picking finished data
|
|
/// need transaction
|
|
/// </summary>
|
|
/// <param name="isForce"></param>
|
|
/// <returns></returns>
|
|
public void finishCurrentPickingData(bool isForce)
|
|
{
|
|
|
|
// string waveOrder = "";
|
|
|
|
// DataTable dt = getCurrentPickList(enumLabelPickState.picked).Tables[0];
|
|
|
|
//foreach (DataRow dr in dt.Rows)
|
|
//{
|
|
// waveOrder = dr["waveOrder"].ToString(); //取完成拣选的waveOrder
|
|
// break;
|
|
//}
|
|
|
|
|
|
|
|
if (isForce)
|
|
{
|
|
|
|
if (WmsConstants.OUT_STOCK_DEDUCT) //处理库存
|
|
{
|
|
DataTable dt = getCurrentPickList().Tables[0];
|
|
WmsOutPickLable wp;
|
|
int i=0;
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
i++;
|
|
wp = new WmsOutPickLable(dr);
|
|
|
|
WmsStockRecord wr = new WmsStockRecord(wp.recordId);
|
|
wr.count = wr.countOuting;
|
|
wr.countOuting = 0;
|
|
wr.description = "强制波次完成";
|
|
wr.operater = this.operater;
|
|
if(wr.ID>0 && !string.IsNullOrEmpty(wr.orderNo)){
|
|
wr.Add();
|
|
}
|
|
|
|
WmsPlate box = new WmsPlate(wp.plate);
|
|
box.setFree();
|
|
|
|
updatePickingStatus(wp.color, wp.elabId, wp.elabAddress, wp.count, true);
|
|
// updateValidPickingStatus(wp.color, wp.elabId, wp.elabAddress);
|
|
|
|
if (i == 1)
|
|
{
|
|
updateValidPickingStatus(wp.dpsOrder);
|
|
}
|
|
|
|
}
|
|
i++;
|
|
}
|
|
cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣;
|
|
CustOper(710);
|
|
|
|
return;
|
|
}
|
|
cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣;
|
|
CustOper(700);
|
|
|
|
// return waveOrder;
|
|
|
|
}
|
|
public void finishPartPickingData(int part,bool isForce)
|
|
{
|
|
|
|
cmdParameters[0] = (int)DeiNiu.Utils.enumPickState.已拣;
|
|
cmdParameters[1] = part;
|
|
if (isForce)
|
|
{
|
|
|
|
if (WmsConstants.OUT_STOCK_DEDUCT) //处理库存
|
|
{
|
|
DataTable dt = getPartPickList(part).Tables[0];
|
|
WmsOutPickLable wp;
|
|
int i = 0;
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
i++;
|
|
wp = new WmsOutPickLable(dr);
|
|
|
|
WmsStockRecord wr = new WmsStockRecord(wp.recordId);
|
|
wr.count = wr.countOuting;
|
|
wr.countOuting = 0;
|
|
wr.description = "强制波次完成";
|
|
wr.operater = this.operater;
|
|
wr.Add();
|
|
|
|
updatePickingStatus(wp.color, wp.elabId, wp.elabAddress, wp.count, true);
|
|
// updateValidPickingStatus(wp.color, wp.elabId, wp.elabAddress);
|
|
|
|
if (i == 1)
|
|
{
|
|
updateValidPickingStatus(wp.dpsOrder);
|
|
}
|
|
}
|
|
|
|
i++;
|
|
}
|
|
|
|
CustOper(711);
|
|
|
|
return;
|
|
}
|
|
CustOper(701);
|
|
|
|
}
|
|
public void finishCurrentPickingData(string waveOrder,bool isForce)
|
|
{
|
|
|
|
cmdParameters[0] = waveOrder;
|
|
cmdParameters[1] = "";
|
|
if (isForce)
|
|
{
|
|
cmdParameters[1] = "强制结束";
|
|
}
|
|
|
|
CustOper(720);
|
|
|
|
|
|
}
|
|
public DataSet getData4Pick(string waveOrder)
|
|
{
|
|
cmdParameters[0] = waveOrder;
|
|
return CustQuery(800);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 取未拣选完毕的数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataSet getPickedData(enumPickState state)
|
|
{
|
|
cmdParameters[0] =(int) state;
|
|
return CustQuery(900);
|
|
}
|
|
/// <summary>
|
|
/// 取分区亮灯数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataSet getPartPickedData(enumPickState state)
|
|
{
|
|
cmdParameters[0] = (int)state;
|
|
return CustQuery(901);
|
|
}
|
|
/// <summary>
|
|
/// 第三方当前波次数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataSet getCurrentWavePick()
|
|
{
|
|
|
|
return CustQuery(403);
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable getPartsPickList(int[] parts, enumPickState enumPickState)
|
|
{
|
|
string p = "";
|
|
|
|
if (parts.Length > 0)
|
|
{
|
|
p = "(";
|
|
foreach (int s in parts)
|
|
{
|
|
p += s + ",";
|
|
}
|
|
p = p.Substring(0, p.Length - 1);
|
|
p += ")";
|
|
}
|
|
cmdParameters[0] = (int)state;
|
|
cmdParameters[1] = p;
|
|
|
|
return CustQuery(902).Tables[0];
|
|
}
|
|
|
|
public DataTable getPartionRequests(int partion)
|
|
{
|
|
cmdParameters[0] = partion;
|
|
|
|
return CustQuery(1000).Tables[0];
|
|
}
|
|
|
|
public DataTable getPlateTaskPickList(string plateId, int partion)
|
|
{
|
|
cmdParameters[0] = plateId;
|
|
cmdParameters[1] = partion;
|
|
return CustQuery(1100).Tables[0];
|
|
}
|
|
|
|
public DataTable getPlatePickTaskList4wince(string plateId, int partion)
|
|
{
|
|
cmdParameters[0] = plateId;
|
|
cmdParameters[1] = partion;
|
|
return CustQuery(1200).Tables[0];
|
|
}
|
|
/// <summary>
|
|
/// 返回某区的 top 数量的复核台对应的拣货任务
|
|
/// </summary>
|
|
/// <param name="part"></param>
|
|
/// <param name="status"></param>
|
|
/// <returns></returns>
|
|
public DataTable getSeedDesksPickList(int part, enumPickState status)
|
|
{
|
|
|
|
cmdParameters[0] = part;
|
|
cmdParameters[1] = (int)status;
|
|
cmdParameters[2] = WmsConstants.SEEDS_PART_LIGHT_DESK_CNT; ;
|
|
return CustQuery(905).Tables[0];
|
|
|
|
}
|
|
}
|
|
}
|
|
|