diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java index 9624160..3d2adc4 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java @@ -8,7 +8,6 @@ import lombok.Data; import org.springframework.stereotype.Component; @Data -@Component public class CommonFinalParam { private final String DELETE = "0"; diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/feedBackTaskStatus/FeedBackTaskStatusRequest.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/feedBackTaskStatus/FeedBackTaskStatusRequest.java index 961bbc8..c1cd625 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/feedBackTaskStatus/FeedBackTaskStatusRequest.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/feedBackTaskStatus/FeedBackTaskStatusRequest.java @@ -1,11 +1,15 @@ package org.nl.acs.ext.wms.data.one.feedBackTaskStatus; +import lombok.Builder; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.SuperBuilder; import org.nl.acs.ext.wms.data.one.BaseRequest; @Data public class FeedBackTaskStatusRequest extends BaseRequest { + /** * 任务id */ diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java index c422828..a95bbde 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java @@ -131,10 +131,9 @@ public interface TaskService extends CommonService { /** * 查询所有数据不分页 * - * @param whereJson 条件参数 * @return List */ - List queryAll(String whereJson); + List queryAll(); /** * 根据状态查询 @@ -234,14 +233,6 @@ public interface TaskService extends CommonService { List queryTaskByNextAndIntStatus(String head_next_device_code); - /** - * 根据关联编号查询非立刻下发的关联任务 - * - * @param link_num - * @return TaskDto - */ - TaskDto queryTaskByLinkNum(String link_num); - /** * 创建 * @@ -297,14 +288,6 @@ public interface TaskService extends CommonService { void cancel(String ids) throws Exception; - /** - * 取消任务 - * - * @param ids - * @throws Exception - */ - void cancelNoSendWms(String ids) throws Exception; - /** * 手动创建指令 * @@ -314,24 +297,6 @@ public interface TaskService extends CommonService { */ Instruction createInst(String ids) throws Exception; - /** - * 手动创建指令 - * - * @param inst - * @return - * @throws Exception - */ - Instruction createInst(Instruction inst) throws Exception; - - - /** - * ' - * 创建指令 - * - * @param dto - * @return - */ - Instruction createTemporaryInst(TaskDto dto); /** * 导出数据 @@ -351,14 +316,6 @@ public interface TaskService extends CommonService { void createTaskByClick(JSONObject json); - /** - * 检查是否允许创建任务 - * - * @param code - * @return - */ - int checkAllowCreate(String code); - /** * 从缓存中删除任务 * @@ -367,6 +324,13 @@ public interface TaskService extends CommonService { */ boolean removeByCodeFromCache(String code); + /** + * 向缓存中添加就绪和执行中任务 + * + * @param taskDto + */ + void addTaskToCache(TaskDto taskDto); + /** * 根据容器编号查询任务 * @@ -392,21 +356,6 @@ public interface TaskService extends CommonService { */ TaskDto findByNextCode(String device_code); - /** - * 根据目的地设备编号查询当前是否有设备 - * - * @param device_code - * @return - */ - List findAllByNextCode(String device_code); - - /** - * 根据设备编号查询当前是否有设备 - * - * @param device_code - * @return - */ - Integer queryAllTaskMaterialQty(String device_code); /** * 根据起点设备编号查询当前是否有设备 @@ -467,13 +416,6 @@ public interface TaskService extends CommonService { */ String queryAssignedByDevice(String device_code, String task_nextdevice_code); - /** - * 查询相同任务类型的数量 - * - * @param taskType - * @return - */ - Integer querySameTaskByType(String taskType); /** * 查询相同起点任务的数量 @@ -492,17 +434,6 @@ public interface TaskService extends CommonService { Integer querySameDestinationTask(String code); - /** - * 查询相同起终任务的数量 - * - * @param start_device - * @param next_device - * @param status - * @return Integer - */ - Integer querySameDeviceReadyTask(String start_device, String next_device, String status); - - /** * 条件查询任务和指令 * diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 3a4ab13..3692e5e 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -28,6 +28,7 @@ import org.nl.acs.device.service.dto.DeviceAssignedDto; import org.nl.acs.device.service.impl.DeviceServiceImpl; import org.nl.acs.device_driver.DeviceDriverDefination; import org.nl.acs.device_driver.RequestMethodEnum; +import org.nl.acs.ext.wms.data.one.BaseRequest; import org.nl.acs.ext.wms.data.one.feedBackTaskStatus.FeedBackTaskStatusRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.domain.Instruction; @@ -41,8 +42,6 @@ import org.nl.acs.route.domain.RoutePlan; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.route.service.mapper.RoutePlanMapper; -import org.nl.acs.storage_cell.service.StorageCellService; -import org.nl.acs.task.TaskInstructionLock; import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.dto.TaskFeedbackDto; @@ -88,32 +87,32 @@ import java.util.stream.Collectors; public class TaskServiceImpl extends CommonServiceImpl implements TaskService, ApplicationAutoInitial { @Autowired - TaskMapper taskMapper; + private TaskMapper taskMapper; @Autowired - RoutePlanMapper routePlanMapper; + private RoutePlanMapper routePlanMapper; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private AcsToWmsService acstowmsService; + @Autowired + private TaskFeedbackService taskFeedbackService; + @Autowired + private ISysParamService paramService; + @Autowired + private XianGongAgvService agvService; + @Autowired + private RouteLineService routeLineService; + @Autowired + private DeviceAssignedService deviceAssignedService; + @Autowired + private InstructionService instructionService; - List tasks = new CopyOnWriteArrayList<>(); + /** + * 缓存 + * 存储未完成的任务信息 + */ + private CopyOnWriteArrayList tasks = new CopyOnWriteArrayList<>(); - @Autowired - DeviceAppService deviceAppService; - @Autowired - RouteLineService routelineserver; - @Autowired - AcsToWmsService acstowmsService; - @Autowired - TaskFeedbackService taskFeedbackService; - @Autowired - ISysParamService paramService; - @Autowired - XianGongAgvService agvService; - @Autowired - RouteLineService routeLineService; - @Autowired - DeviceAssignedService deviceAssignedService; - @Autowired - InstructionService instructionService; - @Autowired - StorageCellService storageCellService; @Override public PageInfo queryAll(TaskQueryParam query, Pageable pageable) { @@ -140,23 +139,18 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override @Transactional(rollbackFor = Exception.class) public int insert(TaskDto resources) { - Task entity = ConvertUtil.convert(resources, Task.class); - return taskMapper.insert(entity); + return taskMapper.insert(ConvertUtil.convert(resources, Task.class)); } @Override @Transactional(rollbackFor = Exception.class) public int updateById(TaskDto resources) { - Task entity = ConvertUtil.convert(resources, Task.class); - int ret = taskMapper.updateById(entity); - // delCaches(resources.id); - return ret; + return taskMapper.updateById(ConvertUtil.convert(resources, Task.class)); } @Override @Transactional(rollbackFor = Exception.class) public int removeByIds(Set ids) { - // delCaches(ids); return taskMapper.deleteBatchIds(ids); } @@ -170,27 +164,23 @@ public class TaskServiceImpl extends CommonServiceImpl impleme /** - * 获取未完成任务 + * 刷新内存信息 * * @throws Exception */ @Override public void autoInitial() throws Exception { - Class var1 = TaskInstructionLock.class; - synchronized (TaskInstructionLock.class) { - this.reload(); - } + this.reload(); } @Override public synchronized void reload() { - List list = this.queryAll("task_status <2 and is_delete =0 order by create_time"); - - tasks = new CopyOnWriteArrayList<>(list); + List list = this.queryAll(); + this.tasks = list == null ? new CopyOnWriteArrayList<>() : new CopyOnWriteArrayList<>(list); } @Override - public List queryAll(String whereJson) { + public List queryAll() { List taskList = new LambdaQueryChainWrapper<>(taskMapper) .lt(Task::getTask_status, TaskStatusEnum.FINISHED.getIndex()) .eq(Task::getIs_delete, "0") @@ -251,74 +241,65 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override public Map queryAllByCache(Map whereJson, Pageable page) { - this.reload(); String task_code = (String) whereJson.get("task_code"); String vehicle_code = (String) whereJson.get("vehicle_code"); String material_type = (String) whereJson.get("material_type"); String status = (String) whereJson.get("status"); String point_code = (String) whereJson.get("point_code"); - String is_over = (String) whereJson.get("is_over"); String task_type = (String) whereJson.get("task_type"); - List taskList = new ArrayList(); - - synchronized (TaskServiceImpl.class) { - Iterator it = tasks.iterator(); - while (it.hasNext()) { - TaskDto task = it.next(); - if (CommonFinalParam.ONE.equals(is_over) && Integer.valueOf(task.getTask_status()) < 2) { - continue; - } - if (!CommonFinalParam.ONE.equals(is_over) && Integer.valueOf(task.getTask_status()) >= 2) { - continue; - } - if (!ObjectUtil.isEmpty(task_code) && !task.getTask_code().contains(task_code)) { - continue; - } - if (!ObjectUtil.isEmpty(status) && !task.getTask_status().equals(status)) { - continue; - } - if (!ObjectUtil.isEmpty(vehicle_code) && !task.getVehicle_code().contains(vehicle_code)) { - continue; - } - if (!ObjectUtil.isEmpty(material_type) && !task.getMaterial().equals(material_type)) { - continue; - } - if (!ObjectUtil.isEmpty(point_code)) { - if (!(task.getStart_point_code().contains(point_code) - || task.getNext_point_code().contains(point_code))) { - continue; - } - } - if (!ObjectUtil.isEmpty(task_type) && !task.getTask_type().equals(task_type)) { - continue; - } - taskList.add(task); - } - - // 按照创建时间排序 - taskList = - taskList.stream() - .sorted( - (task1, task2) -> - DateUtil.compare( - DateUtil.parseDate(task1.getCreate_time()), - DateUtil.parse(task2.getCreate_time()))) - .collect(Collectors.toList()); - - } - + String is_over = (String) whereJson.get("is_over"); Integer currentPageNumber = page.getPageNumber() + 1; Integer pageMaxSize = page.getPageSize(); - List taskDtoList = - taskList.stream() - .skip((currentPageNumber - 1) * pageMaxSize) - .limit(pageMaxSize) + List taskList = + Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(t -> { + if (StrUtil.isNotEmpty(task_code)) { + return t.getTask_code().contains(task_code); + } + return true; + }) + .filter(t -> { + if (StrUtil.isNotEmpty(vehicle_code)) { + return t.getVehicle_code().contains(vehicle_code); + } + return true; + }) + .filter(t -> { + if (StrUtil.isNotEmpty(material_type)) { + return t.getMaterial().contains(material_type); + } + return true; + }) + .filter(t -> { + if (StrUtil.isNotEmpty(status)) { + return t.getTask_status().contains(status); + } + return true; + }) + .filter(t -> { + if (StrUtil.isNotEmpty(point_code)) { + return t.getStart_point_code().contains(point_code) || t.getNext_point_code().equals(point_code) || t.getPut_point_code().equals(point_code); + } + return true; + }) + .filter(t -> { + if (StrUtil.isNotEmpty(task_type)) { + return t.getTask_type().contains(task_type); + } + return true; + }) + .sorted((task1, task2) -> DateUtil.compare(DateUtil.parseDate(task1.getCreate_time()), DateUtil.parse(task2.getCreate_time()))) .collect(Collectors.toList()); + List skipList = taskList.stream().skip((currentPageNumber - 1) * pageMaxSize) + .limit(pageMaxSize) + .collect(Collectors.toList()); JSONObject jo = new JSONObject(); - jo.put("content", taskDtoList); + jo.put("content", skipList); jo.put("totalElements", taskList.size()); return jo; - } @Override @@ -369,7 +350,6 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override public List queryAll(Map whereJson) { - List taskList = new LambdaQueryChainWrapper<>(taskMapper) .list(); return ConvertUtil.convertList(taskList, TaskDto.class); @@ -394,117 +374,79 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override public List queryTaskByDeviceCode(String device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (task.getStart_device_code().equals(device_code) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) { - list.add(task); - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(taskDto -> taskDto.getStart_device_code().equals(device_code) + && StrUtil.equals(taskDto.getTask_status(), TaskStatusEnum.READY.getIndex())) + .collect(Collectors.toList()); } @Override public List queryTaskByStartDeviceCode(String start_device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (!StrUtil.equals(task.getTask_type(), "6")) { - continue; - } - if (StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) { - if ((task.getStart_device_code().equals(start_device_code) - || task.getStart_device_code2().equals(start_device_code))) { - list.add(task); - } - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getTask_type(), "6") + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex()) + && (task.getStart_device_code().equals(start_device_code) + || task.getStart_device_code2().equals(start_device_code))) + .collect(Collectors.toList()); } @Override public List queryTaskByBackDeviceCode(String back_start_device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (!StrUtil.equals(task.getTask_type(), "6")) { - continue; - } - if (task.getStart_device_code().equals(back_start_device_code) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) { - list.add(task); - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getTask_type(), "6") + && task.getStart_device_code().equals(back_start_device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) + .collect(Collectors.toList()); } @Override public List queryTaskByDeviceCodeAndStatus(String device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (task.getStart_device_code().equals(device_code) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { - Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)) { - list.add(task); - } - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> task.getStart_device_code().equals(device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) + .filter(task -> instructionService.findByTaskcodeAndStatus(task.getTask_code()) != null) + .collect(Collectors.toList()); } @Override public List queryTaskByStartAndIntStatus(String head_start_device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (!StrUtil.equals(task.getTask_type(), "6")) { - continue; - } - if (StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { - if ((task.getStart_device_code().equals(head_start_device_code) - || task.getStart_device_code2().equals(head_start_device_code))) { - Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)) { - list.add(task); - } - } - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getTask_type(), "6") + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex()) + && (task.getStart_device_code().equals(head_start_device_code) + || task.getStart_device_code2().equals(head_start_device_code))) + .filter(task -> instructionService.findByTaskcodeAndStatus(task.getTask_code()) != null) + .collect(Collectors.toList()); } @Override public List queryTaskByNextAndIntStatus(String back_start_device_code) { - List list = new ArrayList<>(); - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (!StrUtil.equals(task.getTask_type(), "6")) { - continue; - } - if ((task.getStart_device_code().equals(back_start_device_code)) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { - Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)) { - list.add(task); - } - } - } - return list; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getTask_type(), "6") + && task.getStart_device_code().equals(back_start_device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) + .filter(task -> instructionService.findByTaskcodeAndStatus(task.getTask_code()) != null) + .collect(Collectors.toList()); } - @Override - public TaskDto queryTaskByLinkNum(String link_num) { - return null; - } @Override public List queryByStauts(String status) { @@ -558,7 +500,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme // 判断起点终点设备类型 String startDeviceType = deviceAppService.findDeviceTypeByCode(dto.getStart_device_code()); String nextDeviceType = deviceAppService.findDeviceTypeByCode(dto.getNext_device_code()); - if (routelineserver + if (routeLineService .getShortPathLines(dto.getStart_device_code(), dto.getNext_device_code(), plan_code) .size() == 0) { @@ -635,14 +577,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme } Task entity = ConvertUtil.convert(dto, Task.class); taskMapper.insert(entity); - synchronized (TaskServiceImpl.class) { - System.out.println("-------------------" + dto.getTask_code()); - System.out.println("-------------1" + tasks.size()); - - tasks.add(dto); - System.out.println("-------------2" + tasks.size()); - - } + tasks.add(dto); } /** @@ -674,7 +609,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme new LambdaQueryChainWrapper<>(routePlanMapper) .eq(RoutePlan::getPlan_code, dto.getRoute_plan_code()) .one().getPlan_uuid(); - JSONArray ja = routelineserver.queryNextLine(device_code, plan_uuid); + JSONArray ja = routeLineService.queryNextLine(device_code, plan_uuid); for (int j = 0; j < ja.size(); j++) { JSONObject jo = (JSONObject) ja.get(j); next_device_code = jo.get("next_device_code").toString(); @@ -764,7 +699,6 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override @Transactional(rollbackFor = Exception.class) public void update(TaskDto dto) { - TaskDto entity = this.findById(dto.getTask_id()); if (entity == null) { throw new BadRequestException(LangProcess.msg("error_sysAuth")); @@ -778,42 +712,12 @@ public class TaskServiceImpl extends CommonServiceImpl impleme Task task = ConvertUtil.convert(dto, Task.class); taskMapper.updateById(task); - Iterator iterator = tasks.iterator(); -// while (iterator.hasNext()) { -// TaskDto task = iterator.next(); -// if (task.getTask_code().equals(dto.getTask_code())) { -// iterator.remove(); -// } -// } - - - removeByCodeFromCache(entity.getTask_code()); - - if (StrUtil.equals(dto.getTask_status(), TaskStatusEnum.READY.getIndex()) || StrUtil.equals(dto.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { - tasks.add(dto); - } - // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS - CommonFinalParam commonFinalParam = new CommonFinalParam(); - String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); - if (!StrUtil.startWith(dto.getTask_code(), commonFinalParam.getBARRE()) && StrUtil.equals(hasWms, CommonFinalParam.ONE)) { - TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); - FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); - request.setTask_code(entity.getTask_code()); - request.setTask_status(entity.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); - boolean flag = false; - String resp = null; - try { - resp = acstowmsService.feedTaskStatus(request); - log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); - } catch (Exception e) { - log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); - } finally { - - } - } - + //从缓存中移除任务信息 + this.removeByCodeFromCache(entity.getTask_code()); + //向缓存添加任务信息 + this.addTaskToCache(dto); + //反馈上位系统任务状态 + this.feedWmsTaskStatus(entity); } @Override @@ -827,16 +731,16 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override @Transactional(rollbackFor = Exception.class) public void finish(String id) { - CommonFinalParam commonFinalParam = new CommonFinalParam(); TaskDto entity = this.findById(id); if (entity == null) { throw new BadRequestException(LangProcess.msg("error_sysAuth")); } - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 "); + + InstructionDto instdto = instructionService.findByTaskid(id, "instruction_status <2 "); if (instdto != null) { throw new BadRequestException(LangProcess.msg("task_insHas")); } + String currentUsername = SecurityUtils.getCurrentUsername(); String now = DateUtil.now(); entity.setUpdate_time(now); @@ -846,37 +750,12 @@ public class TaskServiceImpl extends CommonServiceImpl impleme Task task = ConvertUtil.convert(entity, Task.class); taskMapper.updateById(task); - removeByCodeFromCache(entity.getTask_code()); - // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS - String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); - if (!StrUtil.startWith(entity.getTask_code(), commonFinalParam.getBARRE()) && StrUtil.equals(hasWms, CommonFinalParam.ONE)) { - FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); - request.setTask_id(entity.getExt_task_id()); - request.setTask_code(entity.getTask_code()); - request.setTask_status(entity.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); - boolean flag = false; - String resp = null; - try { - resp = acstowmsService.feedTaskStatus(request); - log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); - } catch (Exception e) { - log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); - flag = true; - e.printStackTrace(); - } finally { - - } - } - // 如果属于先知AGV,关闭运单序列 - if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { - try { - agvService.markComplete(entity.getTask_code()); - } catch (Exception e) { - e.printStackTrace(); - } - } + //移除任务缓存信息 + this.removeByCodeFromCache(entity.getTask_code()); + //反馈上位系统任务状态 + this.feedWmsTaskStatus(entity); + //关闭仙工运单序列 + this.markComplete(entity); } @Override @@ -886,11 +765,12 @@ public class TaskServiceImpl extends CommonServiceImpl impleme if (entity == null) { throw new BadRequestException(LangProcess.msg("error_sysAuth")); } - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 "); + + InstructionDto instdto = instructionService.findByTaskid(id, "instruction_status <2 "); if (instdto != null) { throw new BadRequestException(LangProcess.msg("task_insRun")); } + String currentUsername = SecurityUtils.getCurrentUsername(); String now = DateUtil.now(); entity.setUpdate_time(now); @@ -899,238 +779,14 @@ public class TaskServiceImpl extends CommonServiceImpl impleme Task task = ConvertUtil.convert(entity, Task.class); taskMapper.updateById(task); - - -// synchronized (TaskServiceImpl.class){ -// Iterator it = tasks.iterator(); -// // 清理缓存 -// while (it.hasNext()) { -// TaskDto taskDto = it.next(); -// if (taskDto.getTask_id().equals(id)) { -// tasks.remove(taskDto); -// } -// }} - - removeByCodeFromCache(entity.getTask_code()); - - // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS - String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); - CommonFinalParam commonFinalParam = new CommonFinalParam(); - if (!StrUtil.startWith(entity.getTask_code(), commonFinalParam.getBARRE()) && StrUtil.equals(hasWms, CommonFinalParam.ONE)) { - FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); - request.setTask_id(entity.getExt_task_id()); - request.setTask_id(entity.getExt_task_id()); - request.setTask_code(entity.getTask_code()); - request.setTask_status(entity.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); - boolean flag = false; - String resp = null; - try { - resp = acstowmsService.feedTaskStatus(request); - log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), resp); - } catch (Exception e) { - log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); - } finally { - - } - } - List shortPathsList = - routeLineService.getShortPathLines( - entity.getStart_device_code(), - entity.getNext_device_code(), - entity.getRoute_plan_code()); - if (ObjectUtil.isNotEmpty(shortPathsList)) { - String type = shortPathsList.get(0).getType(); - // != 0 为agv任务 - if (!StrUtil.equals(type, "0")) { - if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { - agvService.markComplete(entity.getTask_code()); - } - } - } - + //移除任务缓存信息 + this.removeByCodeFromCache(entity.getTask_code()); + //反馈上位系统任务状态 + this.feedWmsTaskStatus(entity); + //关闭仙工运单序列 + this.markComplete(entity); } - @Override - @Transactional(rollbackFor = Exception.class) - public void cancelNoSendWms(String id) throws Exception { - TaskDto entity = this.findById(id); - if (entity == null) { - throw new BadRequestException(LangProcess.msg("error_sysAuth")); - } - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 "); - if (instdto != null) { - throw new BadRequestException(LangProcess.msg("task_insRun")); - } - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - entity.setUpdate_time(now); - entity.setUpdate_by(currentUsername); - entity.setTask_status(TaskStatusEnum.CANCEL.getIndex()); -// WQLObject wo = WQLObject.getWQLObject("acs_task"); -// JSONObject json = (JSONObject) JSONObject.toJSON(entity); -// wo.update(json); - - Task task = ConvertUtil.convert(entity, Task.class); - taskMapper.updateById(task); - -// synchronized (TaskServiceImpl.class){ -// Iterator it = tasks.iterator(); -// // 清理缓存 -// while (it.hasNext()) { -// TaskDto taskDto = it.next(); -// if (taskDto.getTask_id().equals(id)) { -// tasks.remove(taskDto); -// } -// }} - - removeByCodeFromCache(entity.getTask_code()); - - List shortPathsList = - routeLineService.getShortPathLines( - entity.getStart_device_code(), - entity.getNext_device_code(), - entity.getRoute_plan_code()); - String type = shortPathsList.get(0).getType(); - // != 0 为agv任务 - if (!StrUtil.equals(type, "0")) { - if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { - agvService.markComplete(entity.getTask_code()); - } - } - } - - @Override - public Instruction createTemporaryInst(TaskDto acsTask) { - if (acsTask == null) { - throw new BadRequestException(LangProcess.msg("error_sysAuth")); - } - acsTask = foramte(acsTask); - ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - // InstructionDto inst = instructionservice.findByTaskid(acsTask, "instruction_status < 2 - // "); - // if (inst != null) { - // throw new BadRequestException("有指令未完成!"); - // } - - String taskid = acsTask.getTask_id(); - String taskcode = acsTask.getTask_code(); - String vehiclecode = acsTask.getVehicle_code(); - String priority = acsTask.getPriority(); - String start_point_code = acsTask.getStart_point_code(); - String start_device_code = acsTask.getStart_device_code(); - String route_plan_code = acsTask.getRoute_plan_code(); - String vehicleType = acsTask.getVehicle_type(); - // 是否复合任务 =0非复合任务 - String compound_task = acsTask.getCompound_task(); - String next_point_code = acsTask.getNext_point_code(); - String next_device_code = acsTask.getNext_device_code(); - String start_point_code2 = acsTask.getStart_point_code2(); - String next_point_code2 = acsTask.getNext_point_code2(); - String agv_system_type = acsTask.getAgv_system_type(); - String task_type = acsTask.getTask_type(); - String from_x = acsTask.getFrom_x(); - String from_y = acsTask.getFrom_y(); - String from_z = acsTask.getFrom_z(); - String to_x = acsTask.getTo_x(); - String to_y = acsTask.getTo_y(); - String to_z = acsTask.getTo_z(); - - /** 开始平均分解校验 */ - String this_device_code = - this.queryAssignedByDevice(acsTask.getStart_device_code(), acsTask.getNext_device_code()); - if (StrUtil.isEmpty(this_device_code)) { - List shortPathsList = - routeLineService.getShortPathLines( - start_device_code, acsTask.getNext_device_code(), route_plan_code); - RouteLineDto routeLineDto = shortPathsList.get(0); - String path = routeLineDto.getPath(); - String type = routeLineDto.getType(); - String[] str = path.split("->"); - List pathlist = Arrays.asList(str); - int index = 0; - for (int m = 0; m < pathlist.size(); m++) { - if (pathlist.get(m).equals(start_device_code)) { - index = m + 1; - break; - } - } - next_device_code = pathlist.get(index); - } else { - next_device_code = this_device_code; - } - CommonFinalParam commonFinalParam = new CommonFinalParam(); - if (StrUtil.equals(appService.findDeviceTypeByCode(next_device_code), "storage")) { - next_point_code = next_device_code + commonFinalParam.getBARRE() + acsTask.getTo_y() + commonFinalParam.getBARRE() + acsTask.getTo_z(); - } else { - next_point_code = next_device_code; - } - - Instruction instdto = new Instruction(); - if (StrUtil.isEmpty(instdto.getInstruction_code())) { - instdto.setInstruction_code(CodeUtil.getNewCode("INSTRUCT_NO")); - } - instdto.setInstruction_type(task_type); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setRemark(acsTask.getRemark()); - instdto.setMaterial(acsTask.getMaterial()); - instdto.setQuantity(acsTask.getQuantity()); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setVehicle_code(vehiclecode); - String now = DateUtil.now(); - instdto.setCreate_time(now); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setPriority(priority); - instdto.setInstruction_status(InstructionStatusEnum.READY.getIndex()); - instdto.setExecute_device_code(start_point_code); - instdto.setVehicle_type(vehicleType); - instdto.setStart_point_code2(start_point_code2); - instdto.setStart_device_code2(start_point_code2); - instdto.setNext_device_code2(next_point_code2); - instdto.setNext_point_code2(next_point_code2); - instdto.setAgv_system_type(agv_system_type); - instdto.setFrom_x(from_x); - instdto.setFrom_y(from_y); - instdto.setFrom_z(from_z); - instdto.setTo_x(to_x); - instdto.setTo_y(to_y); - instdto.setTo_z(to_z); - - // 判断agv系统 - // 1、1楼叉车系统 - // 2、2楼1区域AGV系统 - // 3、2楼2区域AGV系统 - if (!StrUtil.equals(agv_system_type, CommonFinalParam.ONE)) { - // task_type - // 1、生箔; Itype=1:取空,取满,放空,放满; - // 2、分切 Itype=3取满、取空、放满、放空; - // 3、普通任务 Itype=2:取货、放货; - // 4、叉车任务 - // 5、输送任务 - // 6、行架 - // 7、立库 - if (StrUtil.equals(task_type, CommonFinalParam.ONE)) { - instdto.setAgv_inst_type(CommonFinalParam.ONE); - } else if (StrUtil.equals(task_type, "3")) { - instdto.setAgv_inst_type("2"); - } else if (StrUtil.equals(task_type, "2")) { - instdto.setAgv_inst_type("3"); - } - } else { - instdto.setAgv_inst_type("4"); - } - return instdto; - } @Override public Instruction createInst(String ids) throws Exception { @@ -1225,15 +881,6 @@ public class TaskServiceImpl extends CommonServiceImpl impleme return instdto; } - @Override - public Instruction createInst(Instruction inst) throws Exception { - - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - - instructionservice.create2(inst); - return inst; - } @Override public void download(List all, HttpServletResponse response) throws IOException { @@ -1279,132 +926,81 @@ public class TaskServiceImpl extends CommonServiceImpl impleme public void createTaskByClick(JSONObject json) { } - @Override - public int checkAllowCreate(String devicecode) { - Map map = new HashMap(); - List taskList = this.queryAllUnfinished(map); - int num = 0; - for (int i = 0; i < taskList.size(); i++) { - TaskDto onetask = taskList.get(i); - String next_code = onetask.getNext_point_code(); - if (StrUtil.equals(devicecode, next_code)) { - num = num + 1; - } - } - return num; - } @Override public boolean removeByCodeFromCache(String code) { - CopyOnWriteArrayList taskDtos = (CopyOnWriteArrayList) this.tasks; - taskDtos.removeIf((task) -> { - return task.getTask_code().equals(code); - }); - return true; + return this.tasks.removeIf(task -> task.getTask_code().equals(code)); + } + + @Override + public void addTaskToCache(TaskDto taskDto) { + if (StrUtil.equals(taskDto.getTask_status(), TaskStatusEnum.READY.getIndex()) || StrUtil.equals(taskDto.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { + tasks.add(taskDto); + } } @Override public List findAllTaskFromCache() { - return tasks; + return this.tasks; } @Override public TaskDto findByContainer(String container_code) { - Iterator var3 = tasks.iterator(); + Optional optionalTask = tasks.stream() + .filter(task -> StrUtil.equals(task.getVehicle_code(), container_code)) + .findFirst(); - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - if (StrUtil.equals(task.getVehicle_code(), container_code)) { - return task; - } - } - - return null; + return optionalTask.orElse(null); } @Override public TaskDto findByCodeFromCache(String task_code) { - Iterator var3 = tasks.iterator(); + Optional optionalTask = tasks.stream() + .filter(task -> StrUtil.equals(task.getTask_code(), task_code)) + .findFirst(); - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - if (StrUtil.equals(task.getTask_code(), task_code)) { - return task; - } - } - return null; + return optionalTask.orElse(null); } @Override public TaskDto findByNextCode(String device_code) { - Iterator var3 = tasks.iterator(); - - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - if (StrUtil.equals(task.getNext_device_code(), device_code)) { - return task; - } - } - return null; + Optional optionalTask = tasks.stream() + .filter(task -> StrUtil.equals(task.getNext_device_code(), device_code)) + .findFirst(); + return optionalTask.orElse(null); } - @Override - public List findAllByNextCode(String device_code) { - return null; - } - - @Override - public Integer queryAllTaskMaterialQty(String device_code) { - return null; - } @Override public TaskDto findByStartCodeAndReady(String device_code) { - Iterator var3 = tasks.iterator(); - - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - // if (!StrUtil.equals(task.getTask_type(), "5")) { - // continue; - // } - if (StrUtil.equals(task.getStart_device_code(), device_code) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) { - return task; - } - } - return null; + Optional optionalTask = tasks.stream() + .filter(task -> StrUtil.equals(task.getStart_device_code(), device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex())) + .findFirst(); + return optionalTask.orElse(null); } @Override public TaskDto findByEndCodeAndReady(String device_code, String index) { - Iterator var3 = tasks.iterator(); - - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - // if (!StrUtil.equals(task.getTask_type(), "5")) { - // continue; - // } - if (StrUtil.equals(task.getNext_device_code(), device_code) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex()) && StrUtil.equals(task.getTask_type(), index)) { - return task; - } - } - return null; + Optional optionalTask = tasks.stream() + .filter(task -> StrUtil.equals(task.getNext_device_code(), device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.READY.getIndex()) + && StrUtil.equals(task.getTask_type(), index)) + .findFirst(); + return optionalTask.orElse(null); } @Override public TaskDto findByStartCode(String device_code) { - Iterator var3 = tasks.iterator(); - - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - if (StrUtil.equals(task.getStart_device_code(), device_code)) { - return task; - } - } - return null; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getStart_device_code(), device_code)) + .findFirst() + .orElse(null); } @Override @@ -1548,7 +1144,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme @Override public void updateByCodeFromCache(TaskDto dto) { removeByCodeFromCache(dto.getTask_code()); - tasks.add(dto); + this.tasks.add(dto); } @Override @@ -1592,21 +1188,6 @@ public class TaskServiceImpl extends CommonServiceImpl impleme return null; } - @Override - public Integer querySameDeviceReadyTask(String start_device, String next_device, String status) { - int num = 0; - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (StrUtil.equals(task.getStart_device_code(), start_device) - && StrUtil.equals(task.getNext_device_code(), next_device) - && StrUtil.equals(task.getTask_status(), status)) { - num++; - } - } - - return num; - } @Override public List getTaskAndInst(Map whereJson) { @@ -1734,87 +1315,60 @@ public class TaskServiceImpl extends CommonServiceImpl impleme public List getTaskList(Map whereJson) { LambdaQueryWrapper wrapper = getTaskLambdaQueryWrapper(whereJson); List taskList = taskMapper.selectList(wrapper); - List array = new ArrayList<>(); - if (CollUtil.isNotEmpty(taskList) && taskList.size() > 0) { - for (Task task : taskList) { - JSONObject ins = new JSONObject(); - ins.put("task_code", task.getTask_code()); - ins.put("vehicle_code", task.getVehicle_code()); - ins.put("task_status", task.getTask_status()); - ins.put("priority", task.getPriority()); - ins.put("start_point_code", task.getStart_point_code()); - ins.put("next_point_code", task.getNext_point_code()); - ins.put("matarial", task.getMaterial()); - ins.put("quantity", task.getQuantity()); - ins.put("remark", task.getRemark()); - ins.put("create_by", task.getCreate_by()); - ins.put("create_time", task.getCreate_time()); - array.add(ins); - } - } - return array; + return Optional + .ofNullable(taskList) + .orElse(new ArrayList<>()) + .stream() + .map(task -> { + JSONObject ins = new JSONObject(); + ins.put("task_code", task.getTask_code()); + ins.put("vehicle_code", task.getVehicle_code()); + ins.put("task_status", task.getTask_status()); + ins.put("priority", task.getPriority()); + ins.put("start_point_code", task.getStart_point_code()); + ins.put("next_point_code", task.getNext_point_code()); + ins.put("matarial", task.getMaterial()); + ins.put("quantity", task.getQuantity()); + ins.put("remark", task.getRemark()); + ins.put("create_by", task.getCreate_by()); + ins.put("create_time", task.getCreate_time()); + return ins; + }) + .collect(Collectors.toList()); } @Override public List findByStartCodeAndBusy(String deviceCode) { - Iterator var3 = tasks.iterator(); - ArrayList tasks = new ArrayList<>(); - while (var3.hasNext()) { - TaskDto task = (TaskDto) var3.next(); - // if (!StrUtil.equals(task.getTask_type(), "5")) { - // continue; - // } - if (StrUtil.equals(task.getStart_device_code(), deviceCode) - && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { - if (tasks.size() < 2) { - tasks.add(task); - } - } - } - return tasks; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getStart_device_code(), deviceCode) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) + .limit(2) + .collect(Collectors.toList()); } - @Override - public Integer querySameTaskByType(String taskType) { - int num = 0; - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (task.getTask_type().equals(taskType) && task.getTask_status().equals(TaskStatusEnum.BUSY.getIndex())) { - num++; - } - } - - return num; - } - @Override public Integer querySameOriginTask(String code) { - int num = 0; - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (StrUtil.equals(task.getStart_device_code(), code)) { - num++; - } - } - - return num; + return (int) Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(task -> StrUtil.equals(task.getStart_device_code(), code)) + .count(); } @Override public Integer querySameDestinationTask(String code) { - int num = 0; - Iterator iterator = tasks.iterator(); - while (iterator.hasNext()) { - TaskDto task = iterator.next(); - if (StrUtil.equals(task.getNext_device_code(), code)) { - num++; - } - } - - return num; + return Optional + .ofNullable(this.tasks) + .orElse(new CopyOnWriteArrayList<>()) + .stream() + .filter(taskDto -> StrUtil.equals(taskDto.getNext_device_code(), code)) + .collect(Collectors.toList()) + .size(); } @Override @@ -1828,7 +1382,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme JSONObject param = JSON.parseObject(dto.getParam()); List pathList = this.getPathList(inst_nextDevice_code); for (int j = 0; j < pathList.size(); j++) { - String inst_next_device_code = pathList.get(i); + String inst_next_device_code = pathList.get(j); String limit = param.getString("limit"); Boolean inOut = param.getBoolean("inOut"); if (inOut) { @@ -1846,9 +1400,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme } } else { Integer sameInstNum = instructionService.querySameDestinationInst(inst_next_device_code); - if (sameInstNum >= Integer.parseInt(limit)) { - continue; - } else { + if (sameInstNum < Integer.parseInt(limit)) { return inst_next_device_code; } } @@ -1872,4 +1424,54 @@ public class TaskServiceImpl extends CommonServiceImpl impleme List pathList = Arrays.asList(str); return pathList; } + + + /** + * 统一抽取反馈上位系统任务状态信息 + * + * @param taskDto + */ + private void feedWmsTaskStatus(TaskDto taskDto) { + // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS + String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); + if (!StrUtil.startWith(taskDto.getTask_code(), CommonFinalParam.HYPHEN_) && StrUtil.equals(hasWms, CommonFinalParam.ONE)) { + FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); + request.setTask_id(taskDto.getExt_task_id()); + request.setTask_code(taskDto.getTask_code()); + request.setTask_status(taskDto.getTask_status()); + request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + //TODO 有需要根据上位系统反馈的信息再做进一步处理 + acstowmsService.feedTaskStatus(request); + } + } + + /** + * 关闭仙工运单序列 + * + * @param taskDto + */ + private void markComplete(TaskDto taskDto) { + // 如果属于先知AGV,关闭运单序列 + List shortPathsList = + routeLineService.getShortPathLines( + taskDto.getStart_device_code(), + taskDto.getNext_device_code(), + taskDto.getRoute_plan_code()); + if (ObjectUtil.isNotEmpty(shortPathsList)) { + String type = shortPathsList.get(0).getType(); + // != 0 为agv任务 + if (!StrUtil.equals(type, "0")) { + if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { + try { + agvService.markComplete(taskDto.getTask_code()); + } catch (Exception e) { + log.error("关闭运单异常,原因:{}", e.getMessage()); + } + } + } + } + } + + }