You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
7.2 KiB

2 months ago
​
​
​
​
​
​
​
​
​
2 months ago
2 months ago
​
​
​
2 months ago
2 months ago
​
​
​
2 months ago
​
​
​
​
​
​
​
​
​
2 months ago
​
​
​
​
​
​
​
​
2 months ago
2 months ago
​
2 months ago
​
​
​
​
​
​
​
​
2 months ago
2 months ago
​
​
​
​
​
​
2 months ago
2 months ago
​
2 months ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 months ago
​
​
​
​
​
​
​
2 months ago
2 months ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 months ago
​
​
​
​
2 months ago
2 months ago
​
​
​
​
​
2 months ago
  1. package com.gaotao.modules.autoWareHourceHaian.mapper;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnWmsTransportTaskData;
  5. import com.gaotao.modules.autoWareHourceHaian.entity.vo.HaiAnWmsTransportTask;
  6. import com.gaotao.modules.autoWareHourceHaian.entity.vo.HaiAnWmsTransportTaskDetail;
  7. import org.apache.ibatis.annotations.Mapper;
  8. import org.apache.ibatis.annotations.Param;
  9. import java.util.Date;
  10. import java.util.List;
  11. /**
  12. * @author rqrq
  13. * @Description 海安AGV任务Mapper:提供查询能力并承接AGV回调明细落库(幂等去重) - rqrq
  14. */
  15. @Mapper
  16. public interface HaiAnAgvTaskMapper {
  17. /**
  18. * 按工厂、托盘、实际任务号及来源WOT判断齐套运输;仅下达和缺主单取消使用,未匹配返回false。- rqrq
  19. * 只认WOT的齐套运输类型,不兼容旧单据;SQL失败由调用方事务回滚。- rqrq
  20. */
  21. boolean isCacheTransportTask(@Param("site") String site,
  22. @Param("palletId") String palletId,
  23. @Param("taskNo") String taskNo,
  24. @Param("sourceBillNo") String sourceBillNo);
  25. /**
  26. * @author rqrq
  27. * @Description 分页查询海安运输任务主表 - rqrq
  28. */
  29. IPage<HaiAnWmsTransportTask> getTransportTaskList(Page<HaiAnWmsTransportTask> page,
  30. @Param("data") HaiAnWmsTransportTaskData data);
  31. /**
  32. * @author rqrq
  33. * @Description 按任务号查询海安运输任务步骤明细(明细层已改为to_location+to_area,不再返回from_location) - rqrq
  34. */
  35. List<HaiAnWmsTransportTaskDetail> getTransportTaskDetails(@Param("site") String site, @Param("taskNo") String taskNo);
  36. /**
  37. * @author rqrq
  38. * @Description 按site+taskNo查询当前最大步骤序号并返回下一个序号,避免并发插入序号冲突 - rqrq
  39. */
  40. Integer getNextSeqNoForTaskDetail(@Param("site") String site, @Param("taskNo") String taskNo);
  41. /**
  42. * @author rqrq
  43. * @Description 按site+taskNo(wmsId)+actionType统计明细条数,不校验托盘号;查询锁保持至调用方事务结束,防止并发重复落库 - rqrq
  44. */
  45. Integer countTaskDetailByType(@Param("site") String site,
  46. @Param("taskNo") String taskNo,
  47. @Param("actionType") String actionType);
  48. /**
  49. * @author rqrq
  50. * @Description 写入haian_wms_transport_task_detail,所有动作同步落pallet_id供轨迹展示,状态统一“已录入” - rqrq
  51. */
  52. int insertTransportTaskDetail(HaiAnWmsTransportTaskDetail detail);
  53. /**
  54. * @author rqrq
  55. * @Description 查询待处理海安AGV回调明细(状态控制并发),供定时任务轮询消费 - rqrq
  56. */
  57. List<HaiAnWmsTransportTaskDetail> getTransportTaskDetailListWithStatus(@Param("site") String site);
  58. /**
  59. * @author rqrq
  60. * @Description 通过明细ID乐观锁抢占处理权:仅允许“已录入/处理失败/回调处理失败”更新为“处理中” - rqrq
  61. * @return 影响行数,0=抢占失败(已被其他线程处理),1=抢占成功 - rqrq
  62. */
  63. int lockTaskDetailForProcessing(@Param("id") Long id);
  64. /**
  65. * @author rqrq
  66. * @Description 更新海安AGV回调明细状态,可按需回写完成时间用于追溯处理耗时 - rqrq
  67. */
  68. int updateTransportTaskDetailStatusForId(@Param("id") Long id,
  69. @Param("status") String status,
  70. @Param("completeTime") Date completeTime);
  71. /**
  72. * @author rqrq
  73. * @Description 回写海安AGV回调明细错误信息,便于定时任务失败重试与排障 - rqrq
  74. */
  75. int updateTransportTaskDetailWithError(@Param("id") Long id,
  76. @Param("errorCode") String errorCode,
  77. @Param("errorMsg") String errorMsg);
  78. /**
  79. * @author rqrq
  80. * @Description 清空海安AGV回调明细错误信息,防止历史失败原因污染成功记录 - rqrq
  81. */
  82. int clearTransportTaskDetailError(@Param("id") Long id);
  83. /**
  84. * 重复RFID回调按 site+taskNo+明细ID回写等待或完成;只更新已抢占的处理中明细,失败让整个回调回滚。 - rqrq
  85. * @param site 工厂编码,不得用登录态替代 - rqrq
  86. * @param taskNo 当前搬运任务号 - rqrq
  87. * @param id 当前RFID回调明细ID,仅用于定位回调,不参与发料任务查重 - rqrq
  88. * @param status 原回调写待自动发料,重复回调或已完成任务写已完成 - rqrq
  89. * @param completeTime 等待时为空,完成时为当前时间 - rqrq
  90. * @return 更新行数,必须为1 - rqrq
  91. */
  92. int updateRfidDetailForExistingAutoIssue(@Param("site") String site,
  93. @Param("taskNo") String taskNo,
  94. @Param("id") Long id,
  95. @Param("status") String status,
  96. @Param("completeTime") Date completeTime);
  97. /**
  98. * @author rqrq
  99. * @Description 按site+taskNo查询海安运输任务主记录,供回调消费阶段做状态联动 - rqrq
  100. */
  101. HaiAnWmsTransportTask getTransportTaskByTaskNo(@Param("site") String site, @Param("taskNo") String taskNo);
  102. /**
  103. * @author rqrq
  104. * @Description 新增海安运输任务主记录(下达任务场景),并落from_area/to_area用于后续放货完成与取消处理 - rqrq
  105. */
  106. int insertTransportTask(HaiAnWmsTransportTask task);
  107. /**
  108. * @author rqrq
  109. * @Description 下达任务回调重复到达时,按taskNo更新主记录关键字段(from/to区域、托盘、来源单号、状态) - rqrq
  110. */
  111. int updateTransportTaskForDispatch(HaiAnWmsTransportTask task);
  112. /**
  113. * @author rqrq
  114. * @Description 按site+taskNo更新海安运输任务主状态,可在完成/取消时补齐complete_time - rqrq
  115. */
  116. int updateTransportTaskStatusByTaskNo(@Param("site") String site,
  117. @Param("taskNo") String taskNo,
  118. @Param("status") String status,
  119. @Param("completeTime") Date completeTime);
  120. /**
  121. * @author rqrq
  122. * @Description 按site+notifyNo统计shoporder领料主单,供RFID复核判断是否挂起待自动发料;NOLOCK允许脏读,短暂未提交主单可能漏挂,下一轮不会再扫已完成/待自动发料以外的RFID明细 - rqrq
  123. * @param site 工厂site,必须与回调一致 - rqrq
  124. * @param notifyNo 标签预定主单号 reserve_order_ref1 - rqrq
  125. * @param orderType 申请单类型,RFID场景固定 shoporder - rqrq
  126. * @return 命中行数,大于0表示需要自动发料挂起 - rqrq
  127. */
  128. Integer countShoporderNotifyHeader(@Param("site") String site,
  129. @Param("notifyNo") String notifyNo,
  130. @Param("orderType") String orderType);
  131. }