feat: 解包下料任务完成操作

This commit is contained in:
2025-07-24 16:40:07 +08:00
parent e58c2ab587
commit 8dfb0a9007
2 changed files with 75 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner; import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@@ -14,7 +15,7 @@ import java.util.List;
* @Date: 2025/7/24 * @Date: 2025/7/24
*/ */
@Slf4j @Slf4j
@Component("RawOutRuleHandle") @Service("rawOutRuleHandle")
public class RawOutRuleHandle extends Decisioner<Structattr, JSONObject> { public class RawOutRuleHandle extends Decisioner<Structattr, JSONObject> {
@Override @Override
public List<Structattr> handler(List<Structattr> list, JSONObject param) { public List<Structattr> handler(List<Structattr> list, JSONObject param) {

View File

@@ -1,16 +1,26 @@
package org.nl.wms.sch_manage.service.util.tasks.jb; package org.nl.wms.sch_manage.service.util.tasks.jb;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil; import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; 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.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService; 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.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.AbstractTask; 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.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 org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -27,6 +37,10 @@ import java.util.List;
public class JbDownAgvTask extends AbstractTask { public class JbDownAgvTask extends AbstractTask {
@Resource @Resource
private ISchBaseTaskService taskService; private ISchBaseTaskService taskService;
@Resource
private IInBillService inBillService;
@Resource
private IOStorInvDisMapper ioStorInvDisMapper;
@Override @Override
public String create(JSONObject param) { public String create(JSONObject param) {
// 改造:多条任务 // 改造:多条任务
@@ -67,17 +81,74 @@ public class JbDownAgvTask extends AbstractTask {
@Override @Override
protected void updateStatus(String task_code, TaskStatus status) { 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<SchBaseTask>()
.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 @Override
public void forceFinish(String task_code) { public void forceFinish(String task_code) {
SchBaseTask taskObj = taskService.getByCode(task_code);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("该任务不存在");
}
this.finishTask(taskObj);
} }
@Override @Override
public void cancel(String task_code) { 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 @Override