Commit 2eb3f91b6f19fb684030c7773b94b824827bab87
1 parent
36784ac8
任务状态维护
Showing
3 changed files
with
31 additions
and
6 deletions
src/main/java/com/huaheng/api/acs/controller/AgvTaskController.java
... | ... | @@ -161,6 +161,10 @@ public class AgvTaskController extends BaseController { |
161 | 161 | if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ |
162 | 162 | return AjaxResult.error("目标点位有托盘,请选择其他点位"); |
163 | 163 | } |
164 | + AgvTask one = acsService.getOne(new LambdaQueryWrapper<AgvTask>().eq(AgvTask::getToPort, agvTask.getToPort()).lt(AgvTask::getStatus, QuantityConstant.TASK_STATUS_COMPLETED)); | |
165 | + if(one!=null){ | |
166 | + return AjaxResult.error("目标点位存在未完成的任务"); | |
167 | + } | |
164 | 168 | return toAjax(acsService.updateById(agvTask)); |
165 | 169 | } |
166 | 170 | |
... | ... |
src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java
... | ... | @@ -139,7 +139,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
139 | 139 | LambdaQueryWrapper<AgvTask> agvTaskLambdaQueryWrapper=Wrappers.lambdaQuery(); |
140 | 140 | agvTaskLambdaQueryWrapper.eq(AgvTask::getToPort,task.getToPort()) |
141 | 141 | .eq(AgvTask::getWarehouseCode,task.getWarehouseCode()) |
142 | - .ge(AgvTask::getStatus,QuantityConstant.TASK_STATUS_RELEASE); | |
142 | + .ge(AgvTask::getStatus,QuantityConstant.TASK_STATUS_RELEASE) | |
143 | + .lt(AgvTask::getStatus,QuantityConstant.TASK_STATUS_COMPLETED); | |
143 | 144 | List<AgvTask> list = list(agvTaskLambdaQueryWrapper); |
144 | 145 | if(list!=null&&list.size()>0){ |
145 | 146 | return AjaxResult.error("目标点位存在任务,请更换目标点位"); |
... | ... | @@ -218,7 +219,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
218 | 219 | default: |
219 | 220 | break; |
220 | 221 | } |
221 | - cancelPositionAndContainerStatus(agvTask); | |
222 | + cancelPositionStatus(agvTask); | |
223 | + cancelContainerStatus(agvTask); | |
222 | 224 | } |
223 | 225 | return AjaxResult.success("取消任务成功!"); |
224 | 226 | } |
... | ... | @@ -301,8 +303,22 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
301 | 303 | agvTask.setId(taskNo); |
302 | 304 | agvTask.setCarNo(carNo); |
303 | 305 | agvTask.setStatus(Integer.parseInt(status)); |
306 | + AgvTask task = getById(taskNo); | |
307 | + if(task==null)return AjaxResult.error("任务号"+taskNo+"不存在"); | |
308 | + if(task.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED))return AjaxResult.error("任务"+taskNo+"已经完成"); | |
309 | + if(agvTask.getStatus().equals(QuantityConstant.TASK_STATUS_RUNNING)){ | |
310 | + pointPositionService.updateStatus(task.getFromPort(),QuantityConstant.STATUS_POSITION_EMPTY,task.getWarehouseCode()); | |
311 | + pointPositionService.setContainerCode(task.getFromPort(),null,task.getWarehouseCode()); | |
312 | + updateById(agvTask); | |
313 | + } | |
304 | 314 | if(agvTask.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)){ |
305 | - cancelPositionAndContainerStatus(agvTask); | |
315 | + pointPositionService.updateStatus(task.getFromPort(),QuantityConstant.STATUS_POSITION_EMPTY,task.getWarehouseCode()); | |
316 | + pointPositionService.updateStatus(task.getToPort(),QuantityConstant.STATUS_POSITION_SOME,task.getWarehouseCode()); | |
317 | + pointPositionService.setContainerCode(task.getFromPort(),null,task.getWarehouseCode()); | |
318 | + pointPositionService.setContainerCode(task.getToPort(),task.getContainerCode(),task.getWarehouseCode()); | |
319 | + containerService.updateLocationCodeAndStatus(task.getContainerCode(),task.getToPort(),QuantityConstant.STATUS_CONTAINER_EMPTY,task.getWarehouseCode()); | |
320 | + updateById(agvTask); | |
321 | + cancelContainerStatus(task); | |
306 | 322 | } |
307 | 323 | if(!updateById(agvTask)){ throw new ServiceException("更新失败"); }; |
308 | 324 | return AjaxResult.success(); |
... | ... | @@ -441,8 +457,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
441 | 457 | } |
442 | 458 | } |
443 | 459 | |
444 | - //更新点位状态及容器状态 | |
445 | - private void cancelPositionAndContainerStatus(AgvTask agvTask) { | |
460 | + //更新点位状态 | |
461 | + private void cancelPositionStatus(AgvTask agvTask) { | |
446 | 462 | if (agvTask.getFromPort() != null) { |
447 | 463 | //更新点位状态 |
448 | 464 | PointPosition pointPosition = pointPositionService.getOne(new LambdaQueryWrapper<PointPosition>().eq(PointPosition::getPositionName, agvTask.getFromPort())); |
... | ... | @@ -462,6 +478,10 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
462 | 478 | |
463 | 479 | } |
464 | 480 | } |
481 | + | |
482 | + } | |
483 | + //更新容器状态 | |
484 | + private void cancelContainerStatus(AgvTask agvTask){ | |
465 | 485 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); |
466 | 486 | inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getContainerCode, agvTask.getContainerCode()); |
467 | 487 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); |
... | ... | @@ -477,6 +497,7 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
477 | 497 | containerService.update(container, containerUpdateWrapper); |
478 | 498 | } |
479 | 499 | |
500 | + | |
480 | 501 | //检查点位是否存在 |
481 | 502 | private AjaxResult checkPointPositionExist(AgvTask agvTask){ |
482 | 503 | PointPosition sourcePosition = pointPositionService.getPositionByCode(agvTask.getFromPort(), "CS0001"); |
... | ... |
src/main/java/com/huaheng/pc/config/pointPosition/service/PointPositionServiceImpl.java
... | ... | @@ -33,7 +33,7 @@ public class PointPositionServiceImpl extends ServiceImpl<PointPositionMapper, P |
33 | 33 | |
34 | 34 | @Override |
35 | 35 | public void setContainerCode(String positionName, String containerCode, String warehouseCode) { |
36 | - if(StringUtils.isNotEmpty(positionName)&&StringUtils.isNotEmpty(containerCode)){ | |
36 | + if(StringUtils.isNotEmpty(positionName)){ | |
37 | 37 | pointPositionMapper.setContainerCode(positionName,containerCode,warehouseCode); |
38 | 38 | } |
39 | 39 | } |
... | ... |