WcsTaskService.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WMS.Core.APPBLL;
  8. using WMS.Core.WcsTask;
  9. using WMS.Info;
  10. using WMS.Util;
  11. namespace WMS.Core.ServiceCore
  12. {
  13. public class WcsTaskService
  14. {
  15. /// <summary>
  16. /// 获取分页数据
  17. /// <summary>
  18. /// <returns></returns>
  19. public IEnumerable<dynamic> GetTaskPageList(Pagination pagination, string queryJson)
  20. {
  21. SqlSugarClient client = null;
  22. try
  23. {
  24. client = SysDbCore.GetDbCtx();
  25. int count = 0;
  26. var queryParam = queryJson.ToJObject();
  27. var db = client.Queryable<ZT_WCS_TASK>();
  28. //单据日期
  29. if (!queryParam["Btime"].IsEmpty() && !queryParam["Etime"].IsEmpty())
  30. {
  31. db.Where(ord => ord.CREATETIME >= queryParam["Btime"].ToDate() && ord.CREATETIME <= queryParam["Etime"].ToDate());
  32. }
  33. if (!queryParam["keyword"].IsEmpty())
  34. {
  35. string kw = queryParam["keyword"].ToString();
  36. db.Where(ord => ord.BARCODE.Contains(kw));
  37. }
  38. if (pagination.sord.ToUpper() != "ASC")
  39. {
  40. pagination.sidx = pagination.sidx + " DESC";
  41. }
  42. if (pagination.sidx.Contains("UPDATETIME"))
  43. pagination.sidx = pagination.sidx + " DESC";
  44. var list = db.OrderBy(pagination.sidx).Select<dynamic>(@"
  45. [ID]
  46. ,[BARCODE]
  47. ,[TYPE]
  48. ,[STATUS]
  49. ,[ADDRFROM]
  50. ,[ADDRTO]
  51. ,[ADDRNEXT]
  52. ,[TUNNEL]
  53. ,[FLOOR]
  54. ,[DEVICE]
  55. ,[SRMSTATION]
  56. ,[CREATETIME]
  57. ,[STARTTIME]
  58. ,[ENDTIME]
  59. ,[DOCID]
  60. ,[PALLETTYPE]
  61. ,[PRODLINE]
  62. ,[FULLQTY]
  63. ,[HEIGHT]
  64. ,[WMSTASK]
  65. ,[TaskGroupKey]
  66. ,[UPLOADED]
  67. ,[AGVTASKID]
  68. ,[Priority]
  69. ,[ManualRemarks]
  70. ,[Length]
  71. ,[MaterialCode]
  72. ,[ENABLED]
  73. ,[UPDATEUSER]
  74. ,[UPDATETIME]
  75. ").ToPageList(pagination.page, pagination.rows, ref count);
  76. pagination.records = count;
  77. return list;
  78. }
  79. catch (Exception ex)
  80. {
  81. throw ex;
  82. }
  83. finally
  84. {
  85. client.Dispose();
  86. }
  87. }
  88. /// <summary>
  89. /// 获取单据数据
  90. /// <summary>
  91. /// <returns></returns>
  92. public IEnumerable<ZT_WCS_TASK_DTL> GeItem(int taskId)
  93. {
  94. try
  95. {
  96. var lst = SysDbCore.GetDbCtx().Queryable<ZT_WCS_TASK_DTL>().Where(it => it.ParentTaskCode == taskId);
  97. var list = lst.Select<ZT_WCS_TASK_DTL>(@"
  98. [ID]
  99. ,[ParentTaskCode]
  100. ,[CurPoint]
  101. ,[NextPoint]
  102. ,[Desc]
  103. ,[ExecTime]
  104. ,[ENABLED]
  105. ,[UPDATEUSER]
  106. ,[UPDATETIME]
  107. ").ToList();
  108. return list;
  109. }
  110. catch (Exception ex)
  111. {
  112. throw ex;
  113. }
  114. }
  115. /// <summary>
  116. /// 作废
  117. /// </summary>
  118. /// <param name="keyValue">主键</param>
  119. public void CanelEntity(LoginUserInfo loginUserInfo, int _F_No)
  120. {
  121. SqlSugarClient client = null;
  122. try
  123. {
  124. client = SysDbCore.GetDbCtx();
  125. var db = client.Queryable<ZT_WCS_TASK>().Where(it => it.ID == _F_No).First();
  126. if ((int)db.STATUS > (int)WcsTask.TaskStatus.执行中)
  127. throw SysExCore.ThrowFailException("任务当前状态不能取消");
  128. db.UPDATEUSER = loginUserInfo.UserNo;
  129. db.UPDATETIME = DateTime.Now;
  130. db.STATUS = WcsTask.TaskStatus.已取消;
  131. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.UPDATEUSER, it.UPDATETIME, it.STATUS }).ExecuteCommand();
  132. }
  133. catch (Exception ex)
  134. {
  135. throw ex;
  136. }
  137. }
  138. /// <summary>
  139. /// 任务完成
  140. /// </summary>
  141. /// <param name="db"></param>
  142. /// <param name="conveyorOut">设备编号</param>
  143. /// <param name="taskno">任务号</param>
  144. public void TaskComplete(int taskno, LoginUserInfo loginUserInfo)
  145. {
  146. SqlSugarClient client = null;
  147. try
  148. {
  149. client = SysDbCore.GetDbCtx();
  150. var db = client.Queryable<ZT_WCS_TASK>().Where(it => it.ID == taskno).First();
  151. if ((int)db.STATUS >= (int)WcsTask.TaskStatus.已完成)
  152. throw SysExCore.ThrowFailException("任务当前状态不能手动完成");
  153. if ((int)db.STATUS <= (int)WcsTask.TaskStatus.新建)
  154. {
  155. throw SysExCore.ThrowFailException($"任务[{taskno}]未执行,不能执行[手动完成].");
  156. }
  157. db.UPDATEUSER = loginUserInfo.UserNo;
  158. db.UPDATETIME = DateTime.Now;
  159. db.STATUS = WcsTask.TaskStatus.已完成;
  160. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.UPDATEUSER, it.UPDATETIME, it.STATUS }).ExecuteCommand();
  161. //var res = new TaskBLL().Callback(new WcsCallBackRequest { TaskNo = db.TASK_NO }, loginUserInfo);
  162. //if (res.IsSucc)
  163. //{
  164. // db.TASK_WKSTATUS = (int)ETaskStatus.TaskManualFinish;
  165. // db.TASK_EDITUSERNO = loginUserInfo.UserNo;
  166. // db.TASK_EDITDATETIME = DateTime.Now;
  167. // SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.TASK_EDITUSERNO, it.TASK_EDITDATETIME, it.TASK_WKSTATUS }).ExecuteCommand();
  168. //}
  169. }
  170. catch (Exception ex)
  171. {
  172. throw ex;
  173. }
  174. }
  175. }
  176. }