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