FxWmsTaskCore.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 FxWmsTaskCore
  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<WMS_TASK>();
  27. //单据日期
  28. if (!queryParam["Btime"].IsEmpty() && !queryParam["Etime"].IsEmpty())
  29. {
  30. db.Where(ord => ord.F_addTime >= queryParam["Btime"].ToDate() && ord.F_addTime <= queryParam["Etime"].ToDate());
  31. }
  32. if (!queryParam["keyword"].IsEmpty())
  33. {
  34. string kw = queryParam["keyword"].ToString();
  35. db.Where(ord => ord.F_taskNo == Convert.ToInt32(kw));
  36. }
  37. if (!queryParam["TASK_COMTYPE"].IsEmpty())
  38. {
  39. string kw = queryParam["TASK_COMTYPE"].ToString();
  40. db.Where(ord => ord.F_taskType == Convert.ToInt32(kw));
  41. }
  42. if (pagination.sord.ToUpper() != "ASC")
  43. {
  44. pagination.sidx = pagination.sidx + " DESC";
  45. }
  46. if(pagination.sidx.Contains("F_editTime"))
  47. pagination.sidx = pagination.sidx + " DESC";
  48. var list = db.OrderBy(pagination.sidx).Select<dynamic>(@"
  49. [F_taskNo],
  50. [F_taskType],
  51. [F_taskStatus],
  52. [F_orderNo],
  53. [F_orderType],
  54. [F_posidFrom],
  55. [F_posidcur],
  56. [F_posidNext],
  57. [F_posidTo],
  58. [F_pickPort],
  59. [F_priority],
  60. [F_trayNo],
  61. [F_boxNo],
  62. [F_addUserNo],
  63. [F_addTime],
  64. [F_wcsExecuteTime],
  65. [F_wcsExecuteResult],
  66. [F_editUserNo],
  67. [F_editTime],
  68. [F_isBonded],
  69. [F_canceledUserNo],
  70. [F_canceledTime]").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. /// <param name="keyValue">主键</param>
  87. public void CanelEntity(LoginUserInfo loginUserInfo, int _F_No)
  88. {
  89. SqlSugarClient client = null;
  90. try
  91. {
  92. client = SysDbCore.GetDbCtx();
  93. var db = client.Queryable<WMS_TASK>().Where(it => it.F_taskNo == _F_No).First();
  94. if (db.F_taskStatus > 3)
  95. throw SysExCore.ThrowFailException("任务当前状态不能取消");
  96. db.F_canceledUserNo = loginUserInfo.UserNo;
  97. db.F_canceledTime = DateTime.Now;
  98. db.F_taskStatus = (int)ETaskStatus.TaskCancel;
  99. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.F_canceledUserNo, it.F_canceledTime, it.F_taskStatus }).ExecuteCommand();
  100. }
  101. catch (Exception ex)
  102. {
  103. throw ex;
  104. }
  105. }
  106. /// <summary>
  107. /// 任务完成
  108. /// </summary>
  109. /// <param name="db"></param>
  110. /// <param name="conveyorOut">设备编号</param>
  111. /// <param name="taskno">任务号</param>
  112. public void TaskComplete(int taskno, LoginUserInfo loginUserInfo)
  113. {
  114. SqlSugarClient client = null;
  115. try
  116. {
  117. client = SysDbCore.GetDbCtx();
  118. var db = client.Queryable<WMS_TASK>().Where(it => it.F_taskNo == taskno).First();
  119. if (db.F_taskStatus > 99)
  120. throw SysExCore.ThrowFailException("任务当前状态不能手动完成");
  121. var res = new TaskBLL().Callback(new WcsCallBackRequest { TaskNo = db.F_taskNo }, loginUserInfo);
  122. if (res.IsSucc)
  123. {
  124. db.F_taskStatus = (int)ETaskStatus.TaskManualFinish;
  125. SysDbCore.GetDbCtx().Updateable(db).UpdateColumns(it => new { it.F_canceledUserNo, it.F_canceledTime, it.F_taskStatus }).ExecuteCommand();
  126. }
  127. }
  128. catch (Exception ex)
  129. {
  130. throw ex;
  131. }
  132. }
  133. }
  134. }