/// ///LOGIC CLASS FOR TABLE t_wmsFlow ///By wm with codesmith. ///on 07/10/2020 /// 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(); } /// /// get all data /// public DataSet getAllData() { return _obj.Query(); } /// /// get all data /// public DataSet getAllActiveData() { return _obj.QueryActived(); } /// /// get a record by id /// public void initialize(int id) { _obj = id != 0 ? new WmsFlow(id) : new WmsFlow(); } /// /// get a record by id 0 /// public void initialize() { initialize(0); } /// /// get a record by id /// 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(); } /// /// update in a transaction scrop /// 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) { dr["类型"] = ((enumStockRecordType) Convert.ToInt32(dr["recType"])).ToString(); dr["状态"] = ((enumPickState) Convert.ToInt32(dr["state"])).ToString(); } 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) { dr["类型"] = ((EnumFlowTaskType) Convert.ToInt32(dr["type"])).ToString(); dr["状态"] = ((enumFlowTaskStatus) Convert.ToInt32(dr["state"])).ToString(); } return dt; } internal DataTable getFlowDetail(string flowNo) { DataTable dt = _obj.getFlowDetail(flowNo); foreach (DataRow dr in dt.Rows) { dr["类型"] = ((EnumFlowTaskType) Convert.ToInt32(dr["type"])).ToString(); dr["状态"] = ((enumFlowTaskStatus) Convert.ToInt32(dr["state"])).ToString(); } 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.失败; } internal enumFlowTaskResult startTask(string orderNo, string flowNo) { if( _obj.startTask(orderNo, flowNo) > 0) { return enumFlowTaskResult.成功; } return enumFlowTaskResult.任务不存在; } } }