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,6 +161,10 @@ public class AgvTaskController extends BaseController { | ||
161 | if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ | 161 | if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ |
162 | return AjaxResult.error("目标点位有托盘,请选择其他点位"); | 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 | return toAjax(acsService.updateById(agvTask)); | 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,7 +139,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | ||
139 | LambdaQueryWrapper<AgvTask> agvTaskLambdaQueryWrapper=Wrappers.lambdaQuery(); | 139 | LambdaQueryWrapper<AgvTask> agvTaskLambdaQueryWrapper=Wrappers.lambdaQuery(); |
140 | agvTaskLambdaQueryWrapper.eq(AgvTask::getToPort,task.getToPort()) | 140 | agvTaskLambdaQueryWrapper.eq(AgvTask::getToPort,task.getToPort()) |
141 | .eq(AgvTask::getWarehouseCode,task.getWarehouseCode()) | 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 | List<AgvTask> list = list(agvTaskLambdaQueryWrapper); | 144 | List<AgvTask> list = list(agvTaskLambdaQueryWrapper); |
144 | if(list!=null&&list.size()>0){ | 145 | if(list!=null&&list.size()>0){ |
145 | return AjaxResult.error("目标点位存在任务,请更换目标点位"); | 146 | return AjaxResult.error("目标点位存在任务,请更换目标点位"); |
@@ -218,7 +219,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | @@ -218,7 +219,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | ||
218 | default: | 219 | default: |
219 | break; | 220 | break; |
220 | } | 221 | } |
221 | - cancelPositionAndContainerStatus(agvTask); | 222 | + cancelPositionStatus(agvTask); |
223 | + cancelContainerStatus(agvTask); | ||
222 | } | 224 | } |
223 | return AjaxResult.success("取消任务成功!"); | 225 | return AjaxResult.success("取消任务成功!"); |
224 | } | 226 | } |
@@ -301,8 +303,22 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | @@ -301,8 +303,22 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | ||
301 | agvTask.setId(taskNo); | 303 | agvTask.setId(taskNo); |
302 | agvTask.setCarNo(carNo); | 304 | agvTask.setCarNo(carNo); |
303 | agvTask.setStatus(Integer.parseInt(status)); | 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 | if(agvTask.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)){ | 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 | if(!updateById(agvTask)){ throw new ServiceException("更新失败"); }; | 323 | if(!updateById(agvTask)){ throw new ServiceException("更新失败"); }; |
308 | return AjaxResult.success(); | 324 | return AjaxResult.success(); |
@@ -441,8 +457,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | @@ -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 | if (agvTask.getFromPort() != null) { | 462 | if (agvTask.getFromPort() != null) { |
447 | //更新点位状态 | 463 | //更新点位状态 |
448 | PointPosition pointPosition = pointPositionService.getOne(new LambdaQueryWrapper<PointPosition>().eq(PointPosition::getPositionName, agvTask.getFromPort())); | 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,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 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); | 485 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); |
466 | inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getContainerCode, agvTask.getContainerCode()); | 486 | inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getContainerCode, agvTask.getContainerCode()); |
467 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); | 487 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); |
@@ -477,6 +497,7 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | @@ -477,6 +497,7 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac | ||
477 | containerService.update(container, containerUpdateWrapper); | 497 | containerService.update(container, containerUpdateWrapper); |
478 | } | 498 | } |
479 | 499 | ||
500 | + | ||
480 | //检查点位是否存在 | 501 | //检查点位是否存在 |
481 | private AjaxResult checkPointPositionExist(AgvTask agvTask){ | 502 | private AjaxResult checkPointPositionExist(AgvTask agvTask){ |
482 | PointPosition sourcePosition = pointPositionService.getPositionByCode(agvTask.getFromPort(), "CS0001"); | 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,7 +33,7 @@ public class PointPositionServiceImpl extends ServiceImpl<PointPositionMapper, P | ||
33 | 33 | ||
34 | @Override | 34 | @Override |
35 | public void setContainerCode(String positionName, String containerCode, String warehouseCode) { | 35 | public void setContainerCode(String positionName, String containerCode, String warehouseCode) { |
36 | - if(StringUtils.isNotEmpty(positionName)&&StringUtils.isNotEmpty(containerCode)){ | 36 | + if(StringUtils.isNotEmpty(positionName)){ |
37 | pointPositionMapper.setContainerCode(positionName,containerCode,warehouseCode); | 37 | pointPositionMapper.setContainerCode(positionName,containerCode,warehouseCode); |
38 | } | 38 | } |
39 | } | 39 | } |