diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index 8f36c8f..3804fbe 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.task_manage; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; @@ -10,15 +11,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.enums.TaskDirectionEnum; +import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -31,6 +36,7 @@ import java.util.concurrent.CopyOnWriteArrayList; * @version 1.0 * @date 2023年05月16日 16:42 * @desc 任务抽象父类,申请任务的相关率先判断以及生成,接着到子类执行任务的创建,最后统一通过定时任务去下发到ACS + *
模板模式+策略模式,将具体的创建任务交付给具体的子类,能够做到责任拆分,各司其职
*/ @Slf4j @Component @@ -102,6 +108,7 @@ public abstract class AbstractTask { taskDto.setNext_device_code2(task.getPoint_code4()); taskDto.setVehicle_code(task.getVehicle_code()); taskDto.setVehicle_code2(task.getVehicle_code2()); + // todo: 如果各类方法对返回参数有不同,可以通过调用子类实现的具体方法来完成赋值,也可以是统一封装到参数值中。 this.setTask(task.getConfig_code(), taskDto); list.add(taskDto); } @@ -236,6 +243,69 @@ public abstract class AbstractTask { * @throws BadRequestException */ public void apply(JSONObject param) throws BadRequestException { + // 申请任务 + SchBaseTask task = new SchBaseTask(); + // 请求点 + String apply_point_code = param.getString("device_code"); + String config_code = param.getString("config_code"); + String requestNo = param.getString("requestNo"); + String vehicleType = param.getString("vehicle_type"); + String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code")); + AbstractTask bean = SpringContextHolder.getBean(this.getClass()); + // 1、校验数据 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper