Commit 2eb3f91b6f19fb684030c7773b94b824827bab87

Authored by xumiao
1 parent 36784ac8

任务状态维护

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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -139,7 +139,8 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -218,7 +219,8 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -301,8 +303,22 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -441,8 +457,8 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -462,6 +478,10 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;AcsMapper,AgvTask&gt; implements Ac @@ -477,6 +497,7 @@ public class AcsServiceImpl extends ServiceImpl&lt;AcsMapper,AgvTask&gt; 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&lt;PointPositionMapper, P @@ -33,7 +33,7 @@ public class PointPositionServiceImpl extends ServiceImpl&lt;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 }