Commit 7dfd71bb804a2b417becac74036064ca445289c0

Authored by xumiao
1 parent b70740ed

校验数据

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&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; 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 }
... ...