2 changed files with 140 additions and 0 deletions
@ -0,0 +1,18 @@ |
|||
package org.nl.wms.sch_manage.service.util; |
|||
|
|||
import java.lang.annotation.ElementType; |
|||
import java.lang.annotation.Retention; |
|||
import java.lang.annotation.RetentionPolicy; |
|||
import java.lang.annotation.Target; |
|||
|
|||
/** |
|||
* @Author: Liuxy |
|||
* @Description: 配置任务类型注解 |
|||
* @Date: 2025/5/23 |
|||
*/ |
|||
@Retention(RetentionPolicy.RUNTIME) |
|||
@Target(ElementType.TYPE) |
|||
public @interface TaskType { |
|||
String value(); |
|||
} |
|||
|
@ -0,0 +1,122 @@ |
|||
package org.nl.wms.sch_manage.service.util.tasks; |
|||
|
|||
import cn.hutool.core.date.DateUtil; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import org.nl.common.exception.BadRequestException; |
|||
import org.nl.common.utils.SecurityUtils; |
|||
import org.nl.config.IdUtil; |
|||
import org.nl.wms.sch_manage.enums.TaskStatus; |
|||
import org.nl.wms.sch_manage.service.ISchBaseTaskService; |
|||
import org.nl.wms.sch_manage.service.dao.SchBaseTask; |
|||
import org.nl.wms.sch_manage.service.util.AbstractTask; |
|||
import org.nl.wms.sch_manage.service.util.AcsTaskDto; |
|||
import org.nl.wms.sch_manage.service.util.TaskType; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
/** |
|||
* @Author: Liuxy |
|||
* @Description: 入库任务类 |
|||
* @Date: 2025/5/25 |
|||
*/ |
|||
@Component(value = "STInTask") |
|||
@TaskType("STInTask") |
|||
public class StInTask extends AbstractTask { |
|||
@Autowired |
|||
private ISchBaseTaskService taskService; |
|||
|
|||
@Override |
|||
public String create(JSONObject json) { |
|||
SchBaseTask task = new SchBaseTask(); |
|||
task.setTask_id(IdUtil.getStringId()); |
|||
task.setTask_code(json.getString("TaskCode")); |
|||
task.setTask_status(TaskStatus.CREATE.getCode()); |
|||
task.setConfig_code(json.getString("task_type")); |
|||
task.setPoint_code1(json.getString("PickingLocation")); |
|||
task.setPoint_code2(json.getString("PlacedLocation")); |
|||
task.setExt_group_data(json.getString("CarryIsEmptyTuoPan")); |
|||
task.setRequest_param(json.toString()); |
|||
task.setPriority(json.getString("Priority")); |
|||
task.setCreate_id(SecurityUtils.getCurrentUserId()); |
|||
task.setCreate_name(SecurityUtils.getCurrentNickName()); |
|||
task.setCreate_time(DateUtil.now()); |
|||
taskService.save(task); |
|||
return task.getTask_id(); |
|||
} |
|||
|
|||
@Override |
|||
public AcsTaskDto sendAcsParam(String taskId) { |
|||
SchBaseTask taskDao = taskService.getById(taskId); |
|||
|
|||
// 组织下发给acs的数据
|
|||
AcsTaskDto acsTaskDto = new AcsTaskDto(); |
|||
acsTaskDto.setExt_task_uuid(taskDao.getTask_id()); |
|||
acsTaskDto.setTask_code(taskDao.getTask_code()); |
|||
acsTaskDto.setStart_device_code(taskDao.getPoint_code1()); |
|||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2()); |
|||
if (taskDao.getPoint_code2().contains("-")) { |
|||
acsTaskDto.setNext_device_code(taskDao.getPoint_code2().replace('-', '_')); |
|||
} |
|||
acsTaskDto.setPriority(taskDao.getPriority()); |
|||
acsTaskDto.setTask_type("1"); |
|||
|
|||
return acsTaskDto; |
|||
} |
|||
|
|||
@Override |
|||
protected void updateStatus(String task_code, TaskStatus status) { |
|||
// 校验任务
|
|||
SchBaseTask taskObj = taskService.getByCode(task_code); |
|||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { |
|||
throw new BadRequestException("该任务已完成!"); |
|||
} |
|||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { |
|||
throw new BadRequestException("该任务已取消!"); |
|||
} |
|||
// 根据传来的类型去对任务进行操作
|
|||
if (status.equals(TaskStatus.EXECUTING)) { |
|||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); |
|||
taskObj.setRemark("执行中"); |
|||
taskService.updateById(taskObj); |
|||
} |
|||
if (status.equals(TaskStatus.FINISHED)) { |
|||
// this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
|||
} |
|||
if (status.equals(TaskStatus.CANCELED)) { |
|||
// this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void forceFinish(String task_code) { |
|||
SchBaseTask taskObj = taskService.getByCode(task_code); |
|||
if (ObjectUtil.isEmpty(taskObj)) { |
|||
throw new BadRequestException("该任务不存在"); |
|||
} |
|||
// this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
|||
} |
|||
|
|||
@Override |
|||
public void cancel(String task_code) { |
|||
SchBaseTask taskObj = taskService.getByCode(task_code); |
|||
if (ObjectUtil.isEmpty(taskObj)) { |
|||
throw new BadRequestException("该任务不存在"); |
|||
} |
|||
// this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
|||
} |
|||
|
|||
@Override |
|||
public void backMes(String task_code) { |
|||
} |
|||
|
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void finishTask(SchBaseTask taskObj) { |
|||
// 任务完成
|
|||
} |
|||
|
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void cancelTask(SchBaseTask taskObj) { |
|||
} |
|||
} |
Loading…
Reference in new issue