| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |  | 
					
						
							|  |  |  |  | /// <summary> | 
					
						
							|  |  |  |  | ///LOGIC CLASS FOR TABLE t_wmsFlow | 
					
						
							|  |  |  |  | ///By wm with codesmith.  | 
					
						
							|  |  |  |  | ///on 07/10/2020 | 
					
						
							|  |  |  |  | /// </summary> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using System.Text; | 
					
						
							|  |  |  |  | using DeiNiu.wms.Data.Model; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Transactions; | 
					
						
							|  |  |  |  | using DeiNiu.Utils; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace DeiNiu.wms.Logical | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     [Serializable] | 
					
						
							|  |  |  |  |     public class lWmsFlow   :lbase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         WmsFlow _obj; | 
					
						
							|  |  |  |  |         public lWmsFlow() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |              initialize(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |   | 
					
						
							|  |  |  |  |         public  WmsFlow getWmsFlow | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |              if (_obj == null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     _obj = new WmsFlow(); | 
					
						
							|  |  |  |  |                     | 
					
						
							|  |  |  |  |                 }  | 
					
						
							|  |  |  |  |                 _obj.operater = operId; | 
					
						
							|  |  |  |  |                 return _obj; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |        public lWmsFlow(int operId) | 
					
						
							|  |  |  |  |             : base(operId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             initialize(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |    | 
					
						
							|  |  |  |  | 		/// <summary> | 
					
						
							|  |  |  |  | 		/// get all data | 
					
						
							|  |  |  |  | 		/// </summary> | 
					
						
							|  |  |  |  |         public DataSet getAllData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |            return _obj.Query(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// get all data | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public DataSet getAllActiveData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return _obj.QueryActived(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		/// <summary> | 
					
						
							|  |  |  |  | 		/// get a record by id | 
					
						
							|  |  |  |  | 		/// </summary> | 
					
						
							|  |  |  |  |         public void initialize(int id) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  |             _obj = id != 0 ? new WmsFlow(id) : new WmsFlow(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  | 		/// get a record by id 0 | 
					
						
							|  |  |  |  | 		/// </summary> | 
					
						
							|  |  |  |  |         public void initialize() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             initialize(0); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          /// <summary> | 
					
						
							|  |  |  |  |         /// get a record by id | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public void initialize(DataRow dr) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             _obj =   new WmsFlow(dr); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |         protected override DeiNiu.Data.BaseObject.BaseModel getModel() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return _obj; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |   | 
					
						
							|  |  |  |  |         //begin cust db operation, query, excute sql etc. | 
					
						
							|  |  |  |  |       | 
					
						
							|  |  |  |  |         internal int add(WmsFlow obj) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return obj.Add(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// update in a transaction scrop | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public void update() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (valid()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 using (TransactionScope scope = new TransactionScope()) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     //Node tmp = new Node(); | 
					
						
							|  |  |  |  |                     //tmp.parentid = 1; | 
					
						
							|  |  |  |  |                     //tmp.name = "test trans" + DateTime.Now; | 
					
						
							|  |  |  |  |                     //tmp.description = "this is for transTest"; | 
					
						
							|  |  |  |  |                     //tmp.Add(); | 
					
						
							|  |  |  |  |                     _obj.Update(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     scope.Complete(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |          private bool valid() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return true; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal DataTable getTaskDetail(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              return _obj.getTaskDetail(taskNo); | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal DataTable getTaskDetail4Wince(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              /* | 
					
						
							|  |  |  |  |              WmsFlow wf = new WmsFlow(taskNo); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              enumFlowTaskType type = (enumFlowTaskType)wf.type; | 
					
						
							|  |  |  |  |                | 
					
						
							|  |  |  |  |              switch (type) | 
					
						
							|  |  |  |  |              { | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.报废下架: | 
					
						
							|  |  |  |  |                      return getDownShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.出库拣货下架: | 
					
						
							|  |  |  |  |                      return getDownShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.储存区补货下架: | 
					
						
							|  |  |  |  |                      return getDownShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.退供应商下架: | 
					
						
							|  |  |  |  |                      return getDownShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.移库下架: | 
					
						
							|  |  |  |  |                      return getDownShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.拣货区补货上架: | 
					
						
							|  |  |  |  |                      return getUpShelfDetail(taskNo); | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.退供应商上架: | 
					
						
							|  |  |  |  |                      return getUpShelfDetail(taskNo);  | 
					
						
							|  |  |  |  |                  case enumFlowTaskType.预到收货上架: | 
					
						
							|  |  |  |  |                      return getUpShelfDetail(taskNo); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                  default: | 
					
						
							|  |  |  |  |                     throw new NotImplementedException(); | 
					
						
							|  |  |  |  |                      | 
					
						
							|  |  |  |  |              } | 
					
						
							|  |  |  |  |              */ | 
					
						
							|  |  |  |  |              DataTable dt = _obj.getTaskDetail4Wince(taskNo); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              foreach (DataRow dr in dt.Rows) | 
					
						
							|  |  |  |  |              { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                  dr["类型"] = ((enumStockRecordType) Convert.ToInt32(dr["recType"])).ToString(); | 
					
						
							|  |  |  |  |                  dr["状态"] = ((enumPickState) Convert.ToInt32(dr["state"])).ToString(); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |              } | 
					
						
							|  |  |  |  |              dt.Columns.Remove("recType"); | 
					
						
							|  |  |  |  |              dt.Columns.Remove("state"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              return dt; | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          private DataTable getUpShelfDetail(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              return new WmsInUpPort().getTaskDetail(taskNo); | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          DataTable getDownShelfDetail(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              return new WmsOutPickPort().getPickTaskDetails(taskNo); | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal DataTable getTasks(int status, int partion, int emId) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              DataTable dt = _obj.getTasks(status, partion, emId); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              foreach (DataRow dr in dt.Rows) | 
					
						
							|  |  |  |  |              { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                  dr["类型"] = ((EnumFlowTaskType) Convert.ToInt32(dr["type"])).ToString(); | 
					
						
							|  |  |  |  |                  dr["状态"] = ((enumFlowTaskStatus) Convert.ToInt32(dr["state"])).ToString();  | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |              } | 
					
						
							|  |  |  |  |             | 
					
						
							|  |  |  |  |             return dt; | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal DataTable getFlowDetail(string flowNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              DataTable dt = _obj.getFlowDetail(flowNo); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              foreach (DataRow dr in dt.Rows) | 
					
						
							|  |  |  |  |              { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                  dr["类型"] = ((EnumFlowTaskType) Convert.ToInt32(dr["type"])).ToString(); | 
					
						
							|  |  |  |  |                  dr["状态"] = ((enumFlowTaskStatus) Convert.ToInt32(dr["state"])).ToString(); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |              } | 
					
						
							|  |  |  |  |             | 
					
						
							|  |  |  |  |             return dt; | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal DataTable getTaskInfo(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              return _obj.getTaskInfo(taskNo); | 
					
						
							|  |  |  |  |          } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          internal enumFlowTaskResult startTask(string taskNo) | 
					
						
							|  |  |  |  |          { | 
					
						
							|  |  |  |  |              _obj = new WmsFlow(taskNo); | 
					
						
							|  |  |  |  |              if (getWmsFlow.owner > 0 && getWmsFlow.owner != this.operId) | 
					
						
							|  |  |  |  |              { | 
					
						
							|  |  |  |  |                  return  enumFlowTaskResult.已被他人开始; | 
					
						
							|  |  |  |  |              } | 
					
						
							|  |  |  |  |              if (getWmsFlow.state ==(int) enumFlowTaskStatus.取消 | 
					
						
							|  |  |  |  |                  || getWmsFlow.state == (int)enumFlowTaskStatus.已完成 | 
					
						
							|  |  |  |  |                   || getWmsFlow.state == (int)enumFlowTaskStatus.暂停) | 
					
						
							|  |  |  |  |              { | 
					
						
							|  |  |  |  |                  return enumFlowTaskResult.状态不允许; | 
					
						
							|  |  |  |  |              } | 
					
						
							|  |  |  |  |              getWmsFlow.state = (int)enumFlowTaskStatus.进行中; | 
					
						
							|  |  |  |  |              getWmsFlow.owner = operId; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              if ( getWmsFlow.Update()> 0) | 
					
						
							|  |  |  |  |              { | 
					
						
							|  |  |  |  |                  return enumFlowTaskResult.成功; | 
					
						
							|  |  |  |  |              } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |              return enumFlowTaskResult.失败; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |              | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |          } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |           | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         internal enumFlowTaskResult startTask(string orderNo, string flowNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |            if( _obj.startTask(orderNo, flowNo) > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumFlowTaskResult.成功; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return enumFlowTaskResult.任务不存在; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  |      | 
					
						
							|  |  |  |  |      | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  |   |