diff --git a/youchain-system/src/main/java/com/youchain/appupdate/rest/SceneAppController.java b/youchain-system/src/main/java/com/youchain/appupdate/rest/SceneAppController.java index 24fc265..46f2cc8 100644 --- a/youchain-system/src/main/java/com/youchain/appupdate/rest/SceneAppController.java +++ b/youchain-system/src/main/java/com/youchain/appupdate/rest/SceneAppController.java @@ -285,7 +285,7 @@ public class SceneAppController { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // apiCode=200; }else { - agvTaskService.pointStockRk("BTP", point.getId()); +// agvTaskService.pointStockRk("BTP", point.getId()); } ApiResult apiResult=ApiResult.fail(apiCode,msg,apiData); return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus())); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/AgvTaskController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/AgvTaskController.java index a7293aa..3593bd6 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/AgvTaskController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/AgvTaskController.java @@ -19,9 +19,14 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.youchain.annotation.AnonymousAccess; import com.youchain.annotation.Log; +import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.repository.PointRepository; import com.youchain.businessdata.domain.AgvTask; +import com.youchain.businessdata.domain.Task; import com.youchain.businessdata.repository.AgvTaskRepository; +import com.youchain.businessdata.repository.TaskRepository; import com.youchain.businessdata.service.AgvTaskService; +import com.youchain.businessdata.service.TaskService; import com.youchain.businessdata.service.dto.AgvTaskDto; import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria; import com.youchain.exception.handler.ApiResult; @@ -53,6 +58,9 @@ public class AgvTaskController { private final AgvTaskService agvTaskService; private final AgvTaskRepository agvTaskRepository; + private final TaskRepository taskRepository; + private final PointRepository pointRepository; + private final TaskService taskService; @Log("导出数据") @ApiOperation("导出数据") @@ -222,4 +230,30 @@ public class AgvTaskController { ApiResult apiResult=ApiResult.fail(200,"操作成功",null); return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus())); } + @PostMapping("/cancelInboundTask") + @Log("取消入库") + @AnonymousAccess + public ResponseEntity allocate(@RequestBody Integer id) { + ApiResult apiResult = ApiResult.fail(200,"取料成功",null); + AgvTask agvTask=agvTaskRepository.getById(id); + List taskList = taskRepository.findByAgvTask(agvTask.getId()); + if (taskList.size()>0){ + for (Task task:taskList){ + task.setAgvTask(null); + taskRepository.save(task); + } + agvTask.setStatus(BizStatus.CANCEL); + agvTaskRepository.save(agvTask); + /*释放终点*/ + Point point=pointRepository.findByCode(agvTask.getEndSlotCode()); + if (point!=null){ + point.setStorageType(null); + pointRepository.save(point); + } + }else { + apiResult = ApiResult.fail(500,"没有关联入库任务",null); + } + + return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus())); + } } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java index d1eb9f7..d29bf40 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java @@ -81,6 +81,7 @@ public interface TaskService { * @param ids / */ void deleteAll(Long[] ids); + void deleteAll(Long id); /** * 导出数据 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java index c3b5ed0..c535c34 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java @@ -720,12 +720,12 @@ public class AgvTaskServiceImpl implements AgvTaskService { public ApiResult pointStockRk(String storageType, Long id) { Point point=pointRepository.getById(id); if (point.getStorageType()!=null&&point.getStorageType().length()>0){ - throw new BadRequestException("点位已记录容器"); + throw new BadRequestException(point.getCode()+"点位已记录容器"); } AgvTask agvTask=addAgvTask(BizStatus.AGV_R,storageType,null,point.getCode(),BizStatus.OPEN,BizStatus.ASN); JSONObject resultJson = JSONObject.parseObject(sendAgvTaskImpl(agvTask)); if (!resultJson.getString("code").equals("0")){ - throw new BadRequestException("容器入场失败"+resultJson); +// throw new BadRequestException("容器入场失败"+resultJson); } point.setStorageType(storageType); pointRepository.save(point); @@ -755,8 +755,11 @@ public class AgvTaskServiceImpl implements AgvTaskService { return agvTaskList.get(0); } agvTask.setType(type); - String storageType=stockTypeRepository.findByCode(stockTypeCode).getMode(); - agvTask.setStockTypeCode(storageType); + StockType stockType=stockTypeRepository.findByCode(stockTypeCode); + if (stockType==null){ + throw new BadRequestException("找不到容器类型"+stockTypeCode); + } + agvTask.setStockTypeCode(stockType.getMode()); agvTask.setStartSlotCode(startSlotCode); agvTask.setEndSlotCode(endSlotCode); agvTask.setStatus(status); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index af30e75..b44c469 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -127,6 +127,9 @@ public class TaskServiceImpl implements TaskService { public void deleteAll(Long[] ids) { for (Long id : ids) { Task task=taskRepository.getById(id); + if (task.getAgvTask()!=null){ + throw new BadRequestException(HttpStatus.NOT_IMPLEMENTED, "ID:"+id+"已生成任务,请先取消入库"); + } if (task.getAsnDetail()!=null){ //删除 入库Task任务 if (task.getTaskStatus().equals(BizStatus.RECEIVING)||task.getTaskStatus().equals(BizStatus.PUTAWAY)){ @@ -142,12 +145,15 @@ public class TaskServiceImpl implements TaskService { // 删除 taskRepository.deleteById(id); }else { - throw new BadRequestException(HttpStatus.NOT_IMPLEMENTED, "已生成任务无法删除"); + throw new BadRequestException(HttpStatus.NOT_IMPLEMENTED, "已生成库存无法删除"); } } } } + @Override + public void deleteAll(Long id) { + } @Override public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); @@ -848,7 +854,7 @@ public class TaskServiceImpl implements TaskService { // 起点位 Point pointStart=inventory.getPoint(); // 移位 - //写入终点 + // 写入终点 if (pointEnd.getArea().getId()==39&&pointEnd.getType().equals(BaseStatus.STORAGE)){ pointEnd.setStorageType(BizStatus.LX_STO); }else {