ldj/Model/wms/tables/WmsOutPickLable.cs

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];
}
}
}