using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Core.APPBLL; using WMS.Core.WcsTask; using WMS.Info; using WMS.Util; namespace WMS.Core.ServiceCore { public class WcsTaskService { /// /// 获取分页数据 /// /// 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.CREATETIME >= queryParam["Btime"].ToDate() && ord.CREATETIME <= queryParam["Etime"].ToDate()); } if (!queryParam["keyword"].IsEmpty()) { string kw = queryParam["keyword"].ToString(); db.Where(ord => ord.BARCODE.Contains(kw)); } if (pagination.sord.ToUpper() != "ASC") { pagination.sidx = pagination.sidx + " DESC"; } if (pagination.sidx.Contains("UPDATETIME")) pagination.sidx = pagination.sidx + " DESC"; var list = db.OrderBy(pagination.sidx).Select(@" [ID] ,[BARCODE] ,[TYPE] ,[STATUS] ,[ADDRFROM] ,[ADDRTO] ,[ADDRNEXT] ,[TUNNEL] ,[FLOOR] ,[DEVICE] ,[SRMSTATION] ,[CREATETIME] ,[STARTTIME] ,[ENDTIME] ,[DOCID] ,[PALLETTYPE] ,[PRODLINE] ,[FULLQTY] ,[HEIGHT] ,[WMSTASK] ,[TaskGroupKey] ,[UPLOADED] ,[AGVTASKID] ,[Priority] ,[ManualRemarks] ,[Length] ,[MaterialCode] ,[ENABLED] ,[UPDATEUSER] ,[UPDATETIME] ").ToPageList(pagination.page, pagination.rows, ref count); pagination.records = count; return list; } catch (Exception ex) { throw ex; } finally { client.Dispose(); } } /// /// 获取单据数据 /// /// public IEnumerable GeItem(int taskId) { try { var lst = SysDbCore.GetDbCtx().Queryable().Where(it => it.ParentTaskCode == taskId); var list = lst.Select(@" [ID] ,[ParentTaskCode] ,[CurPoint] ,[NextPoint] ,[Desc] ,[ExecTime] ,[ENABLED] ,[UPDATEUSER] ,[UPDATETIME] ").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.ID == _F_No).First(); if ((int)db.STATUS > (int)WcsTask.TaskStatus.执行中) throw SysExCore.ThrowFailException("任务当前状态不能取消"); db.UPDATEUSER = loginUserInfo.UserNo; db.UPDATETIME = DateTime.Now; db.STATUS = WcsTask.TaskStatus.已取消; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.UPDATEUSER, it.UPDATETIME, it.STATUS }).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.ID == taskno).First(); if ((int)db.STATUS >= (int)WcsTask.TaskStatus.已完成) throw SysExCore.ThrowFailException("任务当前状态不能手动完成"); if ((int)db.STATUS <= (int)WcsTask.TaskStatus.新建) { throw SysExCore.ThrowFailException($"任务[{taskno}]未执行,不能执行[手动完成]."); } db.UPDATEUSER = loginUserInfo.UserNo; db.UPDATETIME = DateTime.Now; db.STATUS = WcsTask.TaskStatus.已完成; SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.UPDATEUSER, it.UPDATETIME, it.STATUS }).ExecuteCommand(); //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; } } } }