Commit 7c6cdf5ddbedecceba6af05fc8d0163fba7ecc74
1 parent
46232207
feat:自动出库的出库逻辑由上一条单据尾状态等于拣货完成(任务全部出库完成)后,才执行下一条,改为所有单据状态为【已自动出库】或【自动执行中】的单据下的所有出…
…库任务,大于等于到达拣选台后就可以执行下一条了。(限制仅限于单据下的立库任务)
Showing
2 changed files
with
26 additions
and
10 deletions
src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java
@@ -63,6 +63,10 @@ public class ArrivedNoticeController extends BaseController { | @@ -63,6 +63,10 @@ public class ArrivedNoticeController extends BaseController { | ||
63 | return AjaxResult.success("状态已经是到达站台了,不要重复更新"); | 63 | return AjaxResult.success("状态已经是到达站台了,不要重复更新"); |
64 | } | 64 | } |
65 | taskHeader.setStatus(QuantityConstant.TASK_STATUS_ARRIVED_STATION); | 65 | taskHeader.setStatus(QuantityConstant.TASK_STATUS_ARRIVED_STATION); |
66 | + taskDetailService.findByTaskId(Integer.valueOf(taskNo)).forEach(e -> { | ||
67 | + e.setStatus(QuantityConstant.TASK_STATUS_ARRIVED_STATION); | ||
68 | + taskDetailService.updateById(e); | ||
69 | + }); | ||
66 | } else { | 70 | } else { |
67 | return AjaxResult.error("没有找到任务taskNo:" + taskNo); | 71 | return AjaxResult.error("没有找到任务taskNo:" + taskNo); |
68 | } | 72 | } |
src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
@@ -180,16 +180,7 @@ public class RyTask extends BaseController { | @@ -180,16 +180,7 @@ public class RyTask extends BaseController { | ||
180 | * 自动出库,自动出库单据间隔从定时任务那边配置 | 180 | * 自动出库,自动出库单据间隔从定时任务那边配置 |
181 | */ | 181 | */ |
182 | public void autoShipment() { | 182 | public void autoShipment() { |
183 | - //如果上一条出库单未完成,就不执行下一条 | ||
184 | - ShipmentHeader header = shipmentHeaderService.getOne(new LambdaQueryWrapper<ShipmentHeader>() | ||
185 | - .eq(ShipmentHeader::getDeleted, 0) | ||
186 | - .in(ShipmentHeader::getAutoShipmentStatus, 2, 3) | ||
187 | - .last("ORDER BY requestedStartDate asc,id asc limit 1")); | ||
188 | - if (header != null) { | ||
189 | - if (header.getLastStatus() < QuantityConstant.SHIPMENT_HEADER_COMPLETED) {//尾状态小于拣货完成(出库单未完成),就不继续走了 | ||
190 | - return; | ||
191 | - } | ||
192 | - } | 183 | + |
193 | //039一厂设备立库、042二厂设备立库优先出库,requestedStartDate升序排序,如果没有就按照created升序 | 184 | //039一厂设备立库、042二厂设备立库优先出库,requestedStartDate升序排序,如果没有就按照created升序 |
194 | List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>() | 185 | List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>() |
195 | .eq(ShipmentHeader::getDeleted, 0) | 186 | .eq(ShipmentHeader::getDeleted, 0) |
@@ -201,6 +192,27 @@ public class RyTask extends BaseController { | @@ -201,6 +192,27 @@ public class RyTask extends BaseController { | ||
201 | return; | 192 | return; |
202 | } | 193 | } |
203 | 194 | ||
195 | + | ||
196 | + //如果有任务状态小于到达拣选台,就不继续走了 | ||
197 | + List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>() | ||
198 | + .eq(ShipmentHeader::getDeleted, 0) | ||
199 | + .ne(ShipmentHeader::getLastStatus, 500) | ||
200 | + .in(ShipmentHeader::getAutoShipmentStatus, 2, 3) | ||
201 | + .last("ORDER BY requestedStartDate asc,id asc")); | ||
202 | + | ||
203 | + if (!shipmentHeaderList.isEmpty()) { | ||
204 | + for (ShipmentHeader shipmentHeader : shipmentHeaderList) { | ||
205 | + List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>() | ||
206 | + .lt(TaskDetail::getStatus, 50) //状态小于到达拣选台 | ||
207 | + .eq(TaskDetail::getFlat, 0) | ||
208 | + .eq(TaskDetail::getBillCode, shipmentHeader.getCode())); | ||
209 | + if (!list.isEmpty()) { | ||
210 | + return; | ||
211 | + } | ||
212 | + } | ||
213 | + } | ||
214 | + | ||
215 | + | ||
204 | // 查找039一厂设备立库或042二厂设备立库的出库单 | 216 | // 查找039一厂设备立库或042二厂设备立库的出库单 |
205 | ShipmentHeader priorityHeader = shipmentHeaders.stream().filter(h -> "039".equals(h.getWarehouse()) || "042".equals(h.getWarehouse())).findFirst().orElse(null); | 217 | ShipmentHeader priorityHeader = shipmentHeaders.stream().filter(h -> "039".equals(h.getWarehouse()) || "042".equals(h.getWarehouse())).findFirst().orElse(null); |
206 | if (priorityHeader == null) { | 218 | if (priorityHeader == null) { |