From 8dfb0a90074e86f163e65dd778a11f6cfd8295c3 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 24 Jul 2025 16:40:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=A3=E5=8C=85=E4=B8=8B=E6=96=99?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../decisioner/impl/diy/RawOutRuleHandle.java | 3 +- .../service/util/tasks/jb/JbDownAgvTask.java | 75 ++++++++++++++++++- 2 files changed, 75 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/diy/RawOutRuleHandle.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/diy/RawOutRuleHandle.java index 205feef..5f70a55 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/diy/RawOutRuleHandle.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/diy/RawOutRuleHandle.java @@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.util.List; @@ -14,7 +15,7 @@ import java.util.List; * @Date: 2025/7/24 */ @Slf4j -@Component("RawOutRuleHandle") +@Service("rawOutRuleHandle") public class RawOutRuleHandle extends Decisioner { @Override public List handler(List list, JSONObject param) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/jb/JbDownAgvTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/jb/JbDownAgvTask.java index 60b1a7b..2f1ac5e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/jb/JbDownAgvTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/jb/JbDownAgvTask.java @@ -1,16 +1,26 @@ package org.nl.wms.sch_manage.service.util.tasks.jb; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; +import org.nl.wms.pm_manage.service.dao.PdmBdWorkorder; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBaseTaskService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; 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.warehouse_manage.enums.IOSEnum; +import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService; +import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis; +import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper; +import org.nl.wms.warehouse_manage.service.dao.GroupPlate; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -27,6 +37,10 @@ import java.util.List; public class JbDownAgvTask extends AbstractTask { @Resource private ISchBaseTaskService taskService; + @Resource + private IInBillService inBillService; + @Resource + private IOStorInvDisMapper ioStorInvDisMapper; @Override public String create(JSONObject param) { // 改造:多条任务 @@ -67,17 +81,74 @@ public class JbDownAgvTask extends AbstractTask { @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); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj); + } + } + private void cancelTask(SchBaseTask taskObj) { + // 取消任务 + taskService.update(new LambdaUpdateWrapper() + .set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode()) + .set(SchBaseTask::getRemark, "已取消") + .eq(SchBaseTask::getTask_id, taskObj.getTask_id()) + ); + //分配表清除任务 + ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class) + .set(IOStorInvDis::getTask_id,null) + .set(IOStorInvDis::getPoint_code,null) + .set(IOStorInvDis::getIs_issued,0) + .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成")) + .eq(IOStorInvDis::getTask_id,taskObj.getTask_id()) + ); + } + + private void finishTask(SchBaseTask taskObj) { + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("已完成"); + taskService.updateById(taskObj); + if ("3".equals(taskObj.getTask_group_seq().toString())) { + inBillService.taskFinish(taskObj); + } } @Override public void forceFinish(String task_code) { - + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj); } @Override public void cancel(String task_code) { - + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) { + throw new BadRequestException("任务状态必须为生成才能取消任务"); + } + this.cancelTask(taskObj); } @Override