FxWcsTaskCore.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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.Info;
  9. using WMS.Util;
  10. namespace WMS.Core.ServiceCore
  11. {
  12. public class FxWcsTaskCore
  13. {
  14. /// <summary>
  15. /// 获取分页数据
  16. /// <summary>
  17. /// <returns></returns>
  18. public IEnumerable<dynamic> GetTaskPageList(Pagination pagination, string queryJson)
  19. {
  20. SqlSugarClient client = null;
  21. try
  22. {
  23. client = SysDbCore.GetDbCtx();
  24. int count = 0;
  25. var queryParam = queryJson.ToJObject();
  26. var db = client.Queryable<WCS_TASK>();
  27. //单据日期
  28. if (!queryParam["Btime"].IsEmpty() && !queryParam["Etime"].IsEmpty())
  29. {
  30. db.Where(ord => ord.TASK_ADDDATETIME >= queryParam["Btime"].ToDate() && ord.TASK_ADDDATETIME <= queryParam["Etime"].ToDate());
  31. }
  32. if (!queryParam["keyword"].IsEmpty())
  33. {
  34. string kw = queryParam["keyword"].ToString();
  35. db.Where(ord => ord.TASK_NO == Convert.ToInt32(kw));
  36. }
  37. if (pagination.sord.ToUpper() != "ASC")
  38. {
  39. pagination.sidx = pagination.sidx + " DESC";
  40. }
  41. if(pagination.sidx.Contains("F_editTime"))
  42. pagination.sidx = pagination.sidx + " DESC";
  43. var list = db.OrderBy(pagination.sidx).Select<dynamic>(@"
  44. [TASK_ID],
  45. [TASK_NO],
  46. [TASK_SYSTYPE],
  47. [TASK_POSIDFROM],
  48. [TASK_POSIDCUR],
  49. [TASK_POSIDNEXT],
  50. [TASK_POSIDTO],
  51. [TASK_POSIDMOVE],
  52. [TASK_WHID],
  53. [TASK_ADDUSERNO],
  54. [TASK_ADDDATETIME],
  55. [TASK_EDITUSERNO],
  56. [TASK_EDITDATETIME],
  57. [TASK_NOTES],
  58. [TASK_SRMNO],
  59. [TASK_BOXBARCODE],
  60. [TASK_BOXNUM],
  61. [TASK_ITEM6],
  62. [TASK_ITEM7],
  63. [TASK_ITEM8],
  64. [TASK_ITEM9],
  65. [TASK_ITEM10],
  66. [TASK_ORDERTYPE],
  67. [TASK_WKSTATUS],
  68. [TASK_PRIORITY],
  69. [TASK_COMTYPE]
  70. ").ToPageList(pagination.page, pagination.rows, ref count);
  71. pagination.records = count;
  72. return list;
  73. }
  74. catch (Exception ex)
  75. {
  76. throw ex;
  77. }
  78. finally
  79. {
  80. client.Dispose();
  81. }
  82. }
  83. /// <summary>
  84. /// 获取单据数据
  85. /// <summary>
  86. /// <returns></returns>
  87. public IEnumerable<WCS_TASK_DTL> GeItem(string taskId)
  88. {
  89. try
  90. {
  91. var lst = SysDbCore.GetDbCtx().Queryable<WCS_TASK_DTL>().Where(it => it.PARENTID == taskId);
  92. var list = lst.Select<WCS_TASK_DTL>(@" ID,
  93. PARENTID,
  94. TASKNO,
  95. POSIDCUR,
  96. POSIDNEXT,
  97. DESCRIPTION,
  98. NOTES,
  99. --TASK_WKSTATUS,
  100. --DEVICE_TYPE,
  101. --DEVICE_TASKNO, DEVICE_NO
  102. EXECUTEDATE
  103. ").ToList();
  104. return list;
  105. }
  106. catch (Exception ex)
  107. {
  108. throw ex;
  109. }
  110. }
  111. /// <summary>
  112. /// 作废
  113. /// </summary>
  114. /// <param name="keyValue">主键</param>
  115. public void CanelEntity(LoginUserInfo loginUserInfo, int _F_No)
  116. {
  117. SqlSugarClient client = null;
  118. try
  119. {
  120. client = SysDbCore.GetDbCtx();
  121. var db = client.Queryable<WCS_TASK>().Where(it => it.TASK_NO == _F_No).First();
  122. if (db.TASK_WKSTATUS > 3)
  123. throw SysExCore.ThrowFailException("任务当前状态不能取消");
  124. db.TASK_EDITUSERNO = loginUserInfo.UserNo;
  125. db.TASK_EDITDATETIME = DateTime.Now;
  126. db.TASK_WKSTATUS = (int)ETaskStatus.TaskCancel;
  127. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.TASK_EDITUSERNO, it.TASK_EDITDATETIME, it.TASK_WKSTATUS }).ExecuteCommand();
  128. }
  129. catch (Exception ex)
  130. {
  131. throw ex;
  132. }
  133. }
  134. /// <summary>
  135. /// 任务完成
  136. /// </summary>
  137. /// <param name="db"></param>
  138. /// <param name="conveyorOut">设备编号</param>
  139. /// <param name="taskno">任务号</param>
  140. public void TaskComplete(int taskno, LoginUserInfo loginUserInfo)
  141. {
  142. SqlSugarClient client = null;
  143. try
  144. {
  145. client = SysDbCore.GetDbCtx();
  146. var db = client.Queryable<WCS_TASK>().Where(it => it.TASK_NO == taskno).First();
  147. if (db.TASK_WKSTATUS > 99)
  148. throw SysExCore.ThrowFailException("任务当前状态不能手动完成");
  149. var res = new TaskBLL().Callback(new WcsCallBackRequest { TaskNo = db.TASK_NO }, loginUserInfo);
  150. if (res.IsSucc)
  151. {
  152. db.TASK_WKSTATUS = (int)ETaskStatus.TaskManualFinish;
  153. db.TASK_EDITUSERNO = loginUserInfo.UserNo;
  154. db.TASK_EDITDATETIME = DateTime.Now;
  155. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.TASK_EDITUSERNO, it.TASK_EDITDATETIME, it.TASK_WKSTATUS }).ExecuteCommand();
  156. }
  157. }
  158. catch (Exception ex)
  159. {
  160. throw ex;
  161. }
  162. }
  163. }
  164. }