Commit 7dfd71bb804a2b417becac74036064ca445289c0
1 parent
b70740ed
校验数据
Showing
2 changed files
with
36 additions
and
2 deletions
src/main/java/com/huaheng/api/acs/controller/AgvTaskController.java
... | ... | @@ -74,8 +74,7 @@ public class AgvTaskController extends BaseController { |
74 | 74 | .eq(StringUtils.isNotEmpty(agvTask.getCarNo()),AgvTask::getCarNo,agvTask.getCarNo()) |
75 | 75 | .gt(StringUtils.isNotEmpty(createdTime),AgvTask::getCreatedTime,createdTime) |
76 | 76 | .lt(StringUtils.isNotEmpty(updated),AgvTask::getUpdated,updated) |
77 | - .orderByAsc(AgvTask::getStatus) | |
78 | - .orderByDesc(AgvTask::getId); | |
77 | + .orderByAsc(AgvTask::getStatus); | |
79 | 78 | if(StringUtils.isNotNull(taskComplete)){ |
80 | 79 | if(taskComplete==100){ |
81 | 80 | lambdaQueryWrapper.eq(AgvTask::getStatus,taskComplete); |
... | ... |
src/main/java/com/huaheng/api/acs/service/AcsServiceImpl.java
... | ... | @@ -78,6 +78,8 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
78 | 78 | checkAgvTaskPosition(agvTask); |
79 | 79 | //校验托盘是否存在任务及是否锁定 |
80 | 80 | checkContainerAndPositionStatus(agvTask); |
81 | + //校验自己生成的任务中源点位的托盘和实际托盘一不一致 | |
82 | + checkContainerAndPositionLove(agvTask); | |
81 | 83 | agvTask.setStatus(QuantityConstant.TASK_STATUS_BUILD); |
82 | 84 | agvTask.setCreatedBy(ShiroUtils.getLoginName()); |
83 | 85 | agvTask.setTaskType(QuantityConstant.STATUS_TASK_CARRY); |
... | ... | @@ -131,6 +133,17 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
131 | 133 | if (task.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE) { |
132 | 134 | return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止"); |
133 | 135 | } |
136 | + if(StringUtils.isEmpty(task.getToPort())){ | |
137 | + return AjaxResult.error("任务没有目标点位,不允许下发"); | |
138 | + } | |
139 | + LambdaQueryWrapper<AgvTask> agvTaskLambdaQueryWrapper=Wrappers.lambdaQuery(); | |
140 | + agvTaskLambdaQueryWrapper.eq(AgvTask::getToPort,task.getToPort()) | |
141 | + .eq(AgvTask::getWarehouseCode,task.getWarehouseCode()) | |
142 | + .ge(AgvTask::getStatus,QuantityConstant.TASK_STATUS_RELEASE); | |
143 | + List<AgvTask> list = list(agvTaskLambdaQueryWrapper); | |
144 | + if(list!=null&&list.size()>0){ | |
145 | + return AjaxResult.error("目标点位存在任务,请更换目标点位"); | |
146 | + } | |
134 | 147 | // 给AGV传递任务 |
135 | 148 | AjaxResult ajaxResult = agvTaskAssign(task); |
136 | 149 | if (ajaxResult != null && ajaxResult.hasErr()) { |
... | ... | @@ -419,6 +432,9 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
419 | 432 | if(desPosition.getStatus().equals(QuantityConstant.STATUS_POSITION_LOCK)){ |
420 | 433 | throw new ServiceException("目标点位:" + desPosition + "禁用"); |
421 | 434 | } |
435 | + if(StringUtils.isNotEmpty(desPosition.getContainCode())){ | |
436 | + throw new ServiceException("目标点位:" + desPosition + "存在托盘:"+desPosition.getContainCode()); | |
437 | + } | |
422 | 438 | if (QuantityConstant.STATUS_CONTAINER_FULL.equals(desPosition.getStatus())) { |
423 | 439 | throw new ServiceException("目标点位:" + desPosition + "已满"); |
424 | 440 | } |
... | ... | @@ -429,10 +445,18 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
429 | 445 | private void cancelPositionAndContainerStatus(AgvTask agvTask) { |
430 | 446 | if (agvTask.getFromPort() != null) { |
431 | 447 | //更新点位状态 |
448 | + PointPosition pointPosition = pointPositionService.getOne(new LambdaQueryWrapper<PointPosition>().eq(PointPosition::getPositionName, agvTask.getFromPort())); | |
449 | + if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ | |
450 | + pointPositionService.updateStatus(agvTask.getFromPort(), QuantityConstant.STATUS_POSITION_SOME,agvTask.getWarehouseCode()); | |
451 | + } | |
432 | 452 | pointPositionService.updateStatus(agvTask.getFromPort(), QuantityConstant.STATUS_POSITION_EMPTY,agvTask.getWarehouseCode()); |
433 | 453 | } |
434 | 454 | if (agvTask.getToPort() != null) { |
435 | 455 | //更新点位状态 |
456 | + PointPosition pointPosition = pointPositionService.getOne(new LambdaQueryWrapper<PointPosition>().eq(PointPosition::getPositionName, agvTask.getToPort())); | |
457 | + if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ | |
458 | + pointPositionService.updateStatus(agvTask.getToPort(), QuantityConstant.STATUS_POSITION_SOME,agvTask.getWarehouseCode()); | |
459 | + } | |
436 | 460 | pointPositionService.updateStatus(agvTask.getToPort(), QuantityConstant.STATUS_POSITION_EMPTY,agvTask.getWarehouseCode()); |
437 | 461 | } |
438 | 462 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... | @@ -468,5 +492,16 @@ public class AcsServiceImpl extends ServiceImpl<AcsMapper,AgvTask> implements Ac |
468 | 492 | }*/ |
469 | 493 | return AjaxResult.success(); |
470 | 494 | } |
495 | + //校验自己生成的任务中源点位的托盘和实际托盘一不一致 | |
496 | + private void checkContainerAndPositionLove(AgvTask agvTask){ | |
497 | + PointPosition pointPosition = pointPositionService.getOne(new LambdaQueryWrapper<PointPosition>().eq(PointPosition::getPositionName, agvTask.getFromPort())); | |
498 | + if(pointPosition!=null&&StringUtils.isNotEmpty(pointPosition.getContainCode())){ | |
499 | + if(!agvTask.getContainerCode().equals(pointPosition.getContainCode())){ | |
500 | + throw new ServiceException("源点位上托盘数据和分配的托盘不一致,请核对"); | |
501 | + } | |
502 | + } | |
503 | + | |
504 | + } | |
505 | + | |
471 | 506 | |
472 | 507 | } |
... | ... |