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