using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Core.APPBLL; using WMS.Info; using WMS.Util; namespace WMS.Core.ServiceCore { public class FxWmsTaskCore { /// /// 获取分页数据 /// /// public IEnumerable GetTaskPageList(Pagination pagination, string queryJson) { SqlSugarClient client = null; try { client = SysDbCore.GetDbCtx(); int count = 0; var queryParam = queryJson.ToJObject(); var db = client.Queryable(); //单据日期 if (!queryParam["Btime"].IsEmpty() && !queryParam["Etime"].IsEmpty()) { db.Where(ord => ord.F_addTime >= queryParam["Btime"].ToDate() && ord.F_addTime <= queryParam["Etime"].ToDate()); } if (!queryParam["keyword"].IsEmpty()) { string kw = queryParam["keyword"].ToString(); db.Where(ord => ord.F_taskNo == Convert.ToInt32(kw)); } if (!queryParam["TASK_COMTYPE"].IsEmpty()) { string kw = queryParam["TASK_COMTYPE"].ToString(); db.Where(ord => ord.F_taskType == Convert.ToInt32(kw)); } if (pagination.sord.ToUpper() != "ASC") { pagination.sidx = pagination.sidx + " DESC"; } if(pagination.sidx.Contains("F_editTime")) pagination.sidx = pagination.sidx + " DESC"; var list = db.OrderBy(pagination.sidx).Select(@" [F_taskNo], [F_taskType], [F_taskStatus], [F_orderNo], [F_orderType], [F_posidFrom], [F_posidcur], [F_posidNext], [F_posidTo], [F_pickPort], [F_priority], [F_trayNo], [F_boxNo], [F_addUserNo], [F_addTime], [F_wcsExecuteTime], [F_wcsExecuteResult], [F_editUserNo], [F_editTime], [F_isBonded], [F_canceledUserNo], [F_canceledTime]").ToPageList(pagination.page, pagination.rows, ref count); pagination.records = count; return list; } catch (Exception ex) { throw ex; } finally { client.Dispose(); } } /// /// 作废 /// /// 主键 public void CanelEntity(LoginUserInfo loginUserInfo, int _F_No) { SqlSugarClient client = null; try { client = SysDbCore.GetDbCtx(); var db = client.Queryable().Where(it => it.F_taskNo == _F_No).First(); if (db.F_taskStatus > 3) throw SysExCore.ThrowFailException("任务当前状态不能取消"); db.F_canceledUserNo = loginUserInfo.UserNo; db.F_canceledTime = DateTime.Now; db.F_taskStatus = (int)ETaskStatus.TaskCancel; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.F_canceledUserNo, it.F_canceledTime, it.F_taskStatus }).ExecuteCommand(); } catch (Exception ex) { throw ex; } } /// /// 任务完成 /// /// /// 设备编号 /// 任务号 public void TaskComplete(int taskno, LoginUserInfo loginUserInfo) { SqlSugarClient client = null; try { client = SysDbCore.GetDbCtx(); var db = client.Queryable().Where(it => it.F_taskNo == taskno).First(); if (db.F_taskStatus > 99) throw SysExCore.ThrowFailException("任务当前状态不能手动完成"); var res = new TaskBLL().Callback(new WcsCallBackRequest { TaskNo = db.F_taskNo }, loginUserInfo); if (res.IsSucc) { db.F_taskStatus = (int)ETaskStatus.TaskManualFinish; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.F_canceledUserNo, it.F_canceledTime, it.F_taskStatus }).ExecuteCommand(); } } catch (Exception ex) { throw ex; } } } }