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 FxWcsTaskCore { /// /// 获取分页数据 /// /// 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.TASK_ADDDATETIME >= queryParam["Btime"].ToDate() && ord.TASK_ADDDATETIME <= queryParam["Etime"].ToDate()); } if (!queryParam["keyword"].IsEmpty()) { string kw = queryParam["keyword"].ToString(); db.Where(ord => ord.TASK_NO == 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(@" [TASK_ID], [TASK_NO], [TASK_SYSTYPE], [TASK_POSIDFROM], [TASK_POSIDCUR], [TASK_POSIDNEXT], [TASK_POSIDTO], [TASK_POSIDMOVE], [TASK_WHID], [TASK_ADDUSERNO], [TASK_ADDDATETIME], [TASK_EDITUSERNO], [TASK_EDITDATETIME], [TASK_NOTES], [TASK_SRMNO], [TASK_BOXBARCODE], [TASK_BOXNUM], [TASK_ITEM6], [TASK_ITEM7], [TASK_ITEM8], [TASK_ITEM9], [TASK_ITEM10], [TASK_ORDERTYPE], [TASK_WKSTATUS], [TASK_PRIORITY], [TASK_COMTYPE] ").ToPageList(pagination.page, pagination.rows, ref count); pagination.records = count; return list; } catch (Exception ex) { throw ex; } finally { client.Dispose(); } } /// /// 获取单据数据 /// /// public IEnumerable GeItem(string taskId) { try { var lst = SysDbCore.GetDbCtx().Queryable().Where(it => it.PARENTID == taskId); var list = lst.Select(@" ID, PARENTID, TASKNO, POSIDCUR, POSIDNEXT, DESCRIPTION, NOTES, --TASK_WKSTATUS, --DEVICE_TYPE, --DEVICE_TASKNO, DEVICE_NO EXECUTEDATE ").ToList(); return list; } catch (Exception ex) { throw ex; } } /// /// 作废 /// /// 主键 public void CanelEntity(LoginUserInfo loginUserInfo, int _F_No) { SqlSugarClient client = null; try { client = SysDbCore.GetDbCtx(); var db = client.Queryable().Where(it => it.TASK_NO == _F_No).First(); if (db.TASK_WKSTATUS > 3) throw SysExCore.ThrowFailException("任务当前状态不能取消"); db.TASK_EDITUSERNO = loginUserInfo.UserNo; db.TASK_EDITDATETIME = DateTime.Now; db.TASK_WKSTATUS = (int)ETaskStatus.TaskCancel; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.TASK_EDITUSERNO, it.TASK_EDITDATETIME, it.TASK_WKSTATUS }).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.TASK_NO == taskno).First(); if (db.TASK_WKSTATUS > 99) throw SysExCore.ThrowFailException("任务当前状态不能手动完成"); var res = new TaskBLL().Callback(new WcsCallBackRequest { TaskNo = db.TASK_NO }, loginUserInfo); if (res.IsSucc) { db.TASK_WKSTATUS = (int)ETaskStatus.TaskManualFinish; db.TASK_EDITUSERNO = loginUserInfo.UserNo; db.TASK_EDITDATETIME = DateTime.Now; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.TASK_EDITUSERNO, it.TASK_EDITDATETIME, it.TASK_WKSTATUS }).ExecuteCommand(); } } catch (Exception ex) { throw ex; } } } }