opt:优化业务逻辑
This commit is contained in:
@@ -277,6 +277,11 @@ public class SchBaseTask extends Model<SchBaseTask> {
|
||||
private String vehicle_code2;
|
||||
|
||||
|
||||
/**
|
||||
* 是否立即下发
|
||||
*/
|
||||
private String is_send;
|
||||
|
||||
/**
|
||||
* 获取主键值
|
||||
*
|
||||
|
||||
@@ -0,0 +1,228 @@
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 4 目标待检区, 满轴缓存位 -> 待检区,agv任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
*/
|
||||
@Service()
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class DjqTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
@Resource
|
||||
private MzhcwTask mzhcwTask;
|
||||
@Resource
|
||||
private ZxqTask zxqTask;
|
||||
|
||||
private final String THIS_CLASS = DjqTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getHandle_class, THIS_CLASS)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, 0)
|
||||
);
|
||||
taskList.forEach(r -> {
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(r.getTask_id().toString())
|
||||
.task_code(r.getTask_code())
|
||||
.task_type(r.getAcs_task_type())
|
||||
.start_device_code(r.getPoint_code1())
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 待检区更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//todo 3.手持确认包装关系,生产包装关系表数据
|
||||
//todo 4.根据子卷包装关系查询木箱号,调刘先源的空木箱出库服务创建出库任务
|
||||
//5.查询是否有未下发的输送线->满轴位任务,有就下发
|
||||
List<SchBaseTask> notIssueTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//确定起点
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()));
|
||||
if (CollectionUtils.isNotEmpty(notIssueTaskList)) {
|
||||
JSONObject jo = (JSONObject) JSONObject.toJSON(notIssueTaskList.get(0));
|
||||
jo.put("point_code2", schBaseTask.getPoint_code1());
|
||||
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
jo.put("is_send", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
}
|
||||
//6.创建子卷搬运到装箱区任务
|
||||
List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
||||
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
//装箱区有点位,就下发
|
||||
if (CollectionUtils.isNotEmpty(zxqPointList)) {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
|
||||
jo.put("point_code1", schBaseTask.getPoint_code2());
|
||||
jo.put("point_code2", zxqPointList.get(0).getPoint_code());
|
||||
jo.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
zxqTask.createTask(jo);
|
||||
}
|
||||
//todo 装箱区没有点位
|
||||
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
String task_type = form.getString("task_type");
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
}
|
||||
String point_code2 = form.getString("point_code2");
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
json.put("point_code4", point_code4);
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 待检区强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 4 目标管制区, 满轴缓存位 -> 管制区,agv任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
*/
|
||||
@Service()
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class GzqTask extends AbstractAcsTask {
|
||||
|
||||
private final String THIS_CLASS = GzqTask.class.getName();
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private MzhcwTask mzhcwTask;
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getHandle_class, THIS_CLASS)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, 0)
|
||||
);
|
||||
taskList.forEach(r -> {
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(r.getTask_id().toString())
|
||||
.task_code(r.getTask_code())
|
||||
.task_type(r.getAcs_task_type())
|
||||
.start_device_code(r.getPoint_code1())
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 管制区更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.查询是否有未下发的输送线->满轴位任务,有就下发
|
||||
List<SchBaseTask> notIssueTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//确定起点
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()));
|
||||
if (CollectionUtils.isNotEmpty(notIssueTaskList)) {
|
||||
JSONObject jo = (JSONObject) JSONObject.toJSON(notIssueTaskList.get(0));
|
||||
jo.put("point_code2", schBaseTask.getPoint_code1());
|
||||
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
jo.put("is_send", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
String task_type = form.getString("task_type");
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
}
|
||||
String point_code2 = form.getString("point_code2");
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
json.put("point_code4", point_code4);
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 管制区强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -15,6 +16,7 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -22,6 +24,7 @@ import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -29,7 +32,7 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 空载具缓存位到待检区或管制区补空载具桁架任务
|
||||
* 3 目标空载具缓存位, 待检区或管制区 -> 空载具缓存位 , 补空载具, agv任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
@@ -72,7 +75,10 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
@@ -80,21 +86,21 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false);
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区到空载具缓存位搬运空载具桁架任务更新接口任务号为空!");
|
||||
throw new BadRequestException("待检区或管制区 -> 空载具缓存位更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
@@ -108,17 +114,12 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
//待检区和管控区点位
|
||||
List<BstIvtPackageinfoivt> djqPointList = bstIvtPackageinfoivtList.stream().filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status())
|
||||
|| PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())).collect(Collectors.toList());
|
||||
//空载具缓冲区点位
|
||||
List<BstIvtPackageinfoivt> kzjhcqPointList = bstIvtPackageinfoivtList.stream().filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())).collect(Collectors.toList());
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
//确定起点和终点未下发
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
//确定起点未下发
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
|
||||
.and(r ->
|
||||
r.in(SchBaseTask::getPoint_code1, djqPointList)
|
||||
)
|
||||
.and(r ->
|
||||
r.in(SchBaseTask::getPoint_code2, kzjhcqPointList)
|
||||
)
|
||||
);
|
||||
taskList.forEach(r -> {
|
||||
//任务下发
|
||||
@@ -126,6 +127,18 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
);
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -135,6 +148,10 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
@@ -143,25 +160,14 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
@@ -170,13 +176,13 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
@@ -184,11 +190,30 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区或管制区 -> 空载具缓存位强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区或管制区 -> 空载具缓存位取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -17,14 +18,20 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.impl.StIvtIostorinvdisServiceImpl;
|
||||
import org.nl.common.enums.ContainerLevelEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -34,8 +41,9 @@ import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
||||
/**
|
||||
* 输送线到满轴缓存位桁架任务
|
||||
* 1 目标满轴缓存位, 输送线点位 -> 满轴缓存位,桁架任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
@@ -87,7 +95,10 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
//.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
@@ -95,31 +106,33 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false);
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号为空!");
|
||||
throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!");
|
||||
}
|
||||
// 执行中
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
// 完成
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.acs传子卷信息,去分切计划表查找定级数据,桁架任务完成根据子卷定级创建AGV任务将满轴搬运至质检区或管制区
|
||||
if (StringUtils.isBlank(taskObj.getString("container_name"))) {
|
||||
//3.查询子卷信息,去分切计划表查找定级数据,桁架任务完成根据子卷定级创建AGV任务将满轴搬运至质检区或管制区
|
||||
if (StringUtils.isBlank(schBaseTask.getVehicle_code())) {
|
||||
throw new BadRequestException("子卷号不能为空!");
|
||||
}
|
||||
PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
|
||||
.eq(PdmBiSlittingproductionplan::getContainer_name, taskObj.getString("container_name")));
|
||||
.eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
|
||||
if (containerInfo == null) {
|
||||
throw new BadRequestException("找不到子卷信息!");
|
||||
}
|
||||
@@ -151,7 +164,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
} else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
|
||||
List<BstIvtPackageinfoivt> gkqPointList = bstIvtPackageinfoivtList.stream()
|
||||
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())
|
||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(gkqPointList)) {
|
||||
throw new BadRequestException("管控区暂无空余库位!");
|
||||
}
|
||||
@@ -163,11 +176,11 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
//4.创建空载具到输送线任务
|
||||
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
|
||||
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
|
||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||
JSONObject toSsxTask = new JSONObject();
|
||||
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
toSsxTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||
//判断是否有空载具
|
||||
//判断空载具缓存位是否有空载具库存,有就叫agv去任一一个位置搬空载具
|
||||
if (CollectionUtils.isNotEmpty(kzjPointList)) {
|
||||
//直接创建搬运空载具任务
|
||||
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
|
||||
@@ -175,12 +188,12 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
||||
ssxDjwTask.createTask(toSsxTask);
|
||||
} else {
|
||||
//空载具位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建
|
||||
//空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建
|
||||
//没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。
|
||||
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")));
|
||||
//todo 查找正在搬运到待检区的任务,假设只有一个,如果有多个车则更改
|
||||
//todo 查找正在搬运到待检区的任务,假设只有一个
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//执行中
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
@@ -190,10 +203,11 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
//没有正在搬运空载具过来的任务,创建搬运空载具任务
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
//查询待检区库位有空载具的
|
||||
List<BstIvtPackageinfoivt> djqPointList = packageinfoivtService
|
||||
List<BstIvtPackageinfoivt> djqOrGzqPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
List<BstIvtPackageinfoivt> djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList());
|
||||
//待检区库位有空载具
|
||||
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
||||
List<BstIvtPackageinfoivt> kzjPoint = packageinfoivtList.stream()
|
||||
@@ -202,8 +216,15 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
.collect(Collectors.toList());
|
||||
//创建搬运空载具任务
|
||||
JSONObject toKzjhcwTask = new JSONObject();
|
||||
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
||||
//优先去待检区取空载具
|
||||
toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code());
|
||||
} else {
|
||||
|
||||
toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code());
|
||||
}
|
||||
toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)"));
|
||||
toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code());
|
||||
//送到到任意空载具缓存位
|
||||
toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code());
|
||||
toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||
kzjhcwTask.createTask(toKzjhcwTask);
|
||||
@@ -212,6 +233,18 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
// 更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -221,6 +254,10 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
@@ -229,27 +266,14 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
@@ -258,13 +282,13 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
@@ -272,11 +296,32 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("输送线点位 -> 满轴缓存位强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -14,6 +15,7 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -21,12 +23,14 @@ import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 空载具缓存位到输送线桁架任务
|
||||
* 2 目标输送线点位, 空载具缓存位 -> 输送线,桁架任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
@@ -70,7 +74,10 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
//.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
@@ -78,20 +85,19 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("空载具缓存位到输送线桁架任务任务更新接口任务号为空!");
|
||||
throw new BadRequestException("空载具缓存位 -> 输送线更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
@@ -114,16 +120,31 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
kzjhcwTask.createTask(toKzjhcwTask);
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
|
||||
String task_type = form.getString("task_type");
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
@@ -132,25 +153,14 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
@@ -159,13 +169,13 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
@@ -173,11 +183,30 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false) ;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("空载具缓存位 -> 输送线强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false) ;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -9,12 +10,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -22,30 +24,29 @@ import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 满轴缓存位到待检区agv搬运任务
|
||||
* 6 目标装箱对接位, 装箱区 -> 装箱对接位,桁架任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
* @since 2024-02-01
|
||||
*/
|
||||
@Service()
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class DjqTask extends AbstractAcsTask {
|
||||
public class ZxDjwTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
|
||||
private OutBoxManageService outBoxManageService;
|
||||
@Resource
|
||||
private ZxqTask zxqTask;
|
||||
|
||||
private final String THIS_CLASS = DjqTask.class.getName();
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
private final String THIS_CLASS = ZxDjwTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
@@ -67,7 +68,10 @@ public class DjqTask extends AbstractAcsTask {
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
//.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
@@ -75,46 +79,45 @@ public class DjqTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false);
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区到空载具缓存位搬运空载具桁架任务更新接口任务号为空!");
|
||||
throw new BadRequestException("满轴缓存位 -> 管制区更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name",null).eq("point_code",schBaseTask.getPoint_code1()));
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name",schBaseTask.getVehicle_code()).eq("point_code",schBaseTask.getPoint_code2()));
|
||||
//todo 3.手持确认包装关系,生产包装关系表数据
|
||||
//todo 4.根据子卷包装关系查询木箱号,调刘先源的空木箱出库服务创建出库任务
|
||||
//5.创建子卷搬运到装箱区任务
|
||||
List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
||||
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
if(CollectionUtils.isNotEmpty(zxqPointList))
|
||||
{
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
|
||||
jo.put("point_code1", schBaseTask.getPoint_code2());
|
||||
jo.put("point_code2", zxqPointList.get(0).getPoint_code());
|
||||
jo.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
zxqTask.createTask(jo);
|
||||
}
|
||||
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.创建空木箱出库任务
|
||||
//device_code:终点,box_length: 长,box_width: 宽,box_high: 高,num: 子卷数
|
||||
JSONObject boxInfo = new JSONObject();
|
||||
boxInfo.put("device_code", schBaseTask.getPoint_code2());
|
||||
outBoxManageService.outBox(boxInfo);
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
@@ -122,6 +125,10 @@ public class DjqTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
@@ -130,25 +137,14 @@ public class DjqTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
@@ -157,25 +153,45 @@ public class DjqTask extends AbstractAcsTask {
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("装箱区 -> 装箱对接位强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -16,6 +17,7 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -23,6 +25,7 @@ import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -30,7 +33,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 待检区到装箱区搬运任务
|
||||
* 5 目标装箱区,待检区 -> 装箱区 ,agv任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-02-01
|
||||
@@ -72,7 +75,10 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼叉车系统"))
|
||||
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
|
||||
//.dtl_type(r.getDtl_type())
|
||||
//.params(r.getParams())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
@@ -80,28 +86,27 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code1")), SchBaseTask::getTask_code, taskObj.getString("task_code1")), false);
|
||||
.eq(StringUtils.isNotBlank(taskObj.getString("task_code")), SchBaseTask::getTask_code, taskObj.getString("task_code")), false);
|
||||
;
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区到空载具缓存位搬运空载具桁架任务更新接口任务号为空!");
|
||||
throw new BadRequestException("待检区 -> 装箱区更新接口任务号为空!");
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskService.update(schBaseTask);
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//todo 3.刘先源的空木箱出库任务完成状态更新时,判断装箱区是否存在木箱号对应的子卷,如果存在,就创建搬运任务
|
||||
//4.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱位,否,什么都不做
|
||||
//4.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位,否,什么都不做
|
||||
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService
|
||||
.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
|
||||
if (pdmBiSubpackagerelation != null) {
|
||||
@@ -121,6 +126,18 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
//更新任务表删除字段
|
||||
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
}
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
|
||||
}
|
||||
|
||||
@@ -131,6 +148,10 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
@@ -139,25 +160,14 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
String point_code3 = form.getString("point_code3");
|
||||
String point_code4 = form.getString("point_code4");
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("priority", "1");
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
@@ -166,25 +176,46 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("task_status", StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"));
|
||||
boolean isSend = !StrUtil.isNotBlank(form.getString("is_send")) || BooleanUtil.toBoolean(form.getString("is_send"));
|
||||
json.put("is_send", isSend);
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区 -> 装箱区强制完成接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(StringUtils.isNotBlank(task_id), SchBaseTask::getTask_id, task_id), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!");
|
||||
}
|
||||
schBaseTask.setTask_status(IOSEnum.ACS_RESULT.code("取消"));
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTask.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||
taskService.update(schBaseTask);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 满轴缓存位到管制区agv搬运任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-01-24
|
||||
*/
|
||||
@Service()
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class GzqTask extends AbstractAcsTask {
|
||||
|
||||
private final String THIS_CLASS = GzqTask.class.getName();
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getHandle_class, THIS_CLASS)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, 0)
|
||||
);
|
||||
taskList.forEach(r -> {
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(r.getTask_id().toString())
|
||||
.task_code(r.getTask_code())
|
||||
.task_type(r.getAcs_task_type())
|
||||
.start_device_code(r.getPoint_code1())
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
String task_type = form.getString("task_type");
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
}
|
||||
String point_code2 = form.getString("point_code2");
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
json.put("point_code4", point_code4);
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
package org.nl.b_lms.sch.tasks.packingArea;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 装箱区到装装箱对接位搬运任务
|
||||
*
|
||||
* @author gbx
|
||||
* @since 2024-02-01
|
||||
*/
|
||||
@Service()
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class ZxDjwTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
private final String THIS_CLASS = ZxDjwTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getHandle_class, THIS_CLASS)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, 0)
|
||||
);
|
||||
taskList.forEach(r -> {
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(r.getTask_id().toString())
|
||||
.task_code(r.getTask_code())
|
||||
.task_type(r.getAcs_task_type())
|
||||
.start_device_code(r.getPoint_code1())
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
.agv_system_type("2")
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
String task_type = form.getString("task_type");
|
||||
if (StrUtil.isBlank(task_type)) {
|
||||
throw new BadRequestException("业务类型不能为空");
|
||||
}
|
||||
String point_code1 = form.getString("point_code1");
|
||||
if (StrUtil.isBlank(point_code1)) {
|
||||
throw new BadRequestException("起点不能为空");
|
||||
}
|
||||
String point_code2 = form.getString("point_code2");
|
||||
if (StrUtil.isBlank(point_code2)) {
|
||||
throw new BadRequestException("下一点不能为空");
|
||||
}
|
||||
String point_code3 = form.getString("point_code3");
|
||||
|
||||
String point_code4 = form.getString("point_code4");
|
||||
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
if (StrUtil.isBlank(vehicle_code)) {
|
||||
throw new BadRequestException("载具号不能为空");
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
String task_status = form.getString("task_status");
|
||||
if (StrUtil.isEmpty(task_status)) {
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
} else {
|
||||
json.put("task_status", task_status);
|
||||
}
|
||||
json.put("point_code1", point_code1);
|
||||
json.put("point_code2", point_code2);
|
||||
json.put("point_code3", point_code3);
|
||||
json.put("point_code4", point_code4);
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", "1");
|
||||
json.put("acs_task_type", "9");
|
||||
json.put("response_param", form.getString("truss_type"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
taskService.save(json.toJavaObject(SchBaseTask.class));
|
||||
//如果目标点位没有空位先创建不下发
|
||||
if (form.getBoolean("isSend")) {
|
||||
this.immediateNotifyAcs(json.getString("task_id"));
|
||||
}
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -20,13 +20,28 @@ public enum PackageInfoIvtEnum {
|
||||
//点位类型
|
||||
POINT_STATUS(MapOf.of("满轴缓存位", "1", "空载具缓存位", "2", "待检区", "3", "管制区", "4", "装箱区", "5", "装箱位", "6")),
|
||||
|
||||
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)", "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709")),
|
||||
//任务类型
|
||||
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)",
|
||||
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709")),
|
||||
|
||||
//ACS任务类型
|
||||
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),
|
||||
|
||||
//ACS系统类型
|
||||
AGV_SYSTEM_TYPE(MapOf.of("1楼叉车系统", "1", "2楼1区域AGV系统", "2", "2楼2区域AGV系统", "3")),
|
||||
|
||||
//桁架任务类型
|
||||
TRUSS_TYPE(MapOf.of("点对点任务", "1", "下卷拔轴任务", "6", "换轴任务", "7","放轴任务", "8")),
|
||||
|
||||
//是否
|
||||
IS_USED(MapOf.of("启用", "1", "未启用", "0")),
|
||||
|
||||
//位置
|
||||
POINT_LOCATION(MapOf.of("上", "0", "下", "1")),
|
||||
|
||||
//库存状态
|
||||
IVT_STATUS(MapOf.of("空", "0", "1", "空载具", "2", "有子卷"));
|
||||
|
||||
private Map<String, String> code;
|
||||
|
||||
public String code(String desc) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.ext.acs.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
@@ -7,7 +8,6 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.google.common.collect.Interner;
|
||||
import com.google.common.collect.Interners;
|
||||
@@ -17,18 +17,12 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
||||
import org.nl.b_lms.sch.point.service.impl.BstIvtPackageinfoivtServiceImpl;
|
||||
import org.nl.b_lms.sch.point.service.impl.SchBasePointServiceImpl;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.task.service.impl.SchBaseTaskServiceImpl;
|
||||
import org.nl.b_lms.sch.tasks.TwoEmpExcepTask;
|
||||
import org.nl.b_lms.sch.tasks.packingArea.MzhcwTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InVehicleManageService;
|
||||
@@ -1719,19 +1713,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
*/
|
||||
@Override
|
||||
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
||||
log.info("sendProductToFirstFloor--------------------------:" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
String task_code1 = whereJson.getString("task_code1");
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(StringUtils.isNotBlank(task_code1), SchBaseTask::getTask_code, task_code1));
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号为空!");
|
||||
}
|
||||
// JSONObject whereJson 应该传子卷信息,子卷等级,载具号,任务号,车间号
|
||||
// JSONObject whereJson 应该传子卷号,设备号,车间号
|
||||
// 先查询满轴缓存位是否有可用库位,有创建搬运任务
|
||||
// 任务完成创建空载具补充到输送线桁架任务,子卷搬运至待检区或或管制区agv任务
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
// 这个情况是有agv任务在搬去待检区或管制区的路上,还没有更新任务状态;需要查询是否有这种任务,等这个任务更新完后,
|
||||
// 再补发之前创建的输送线到满轴缓存位任务;
|
||||
log.info("sendProductToFirstFloor--------------------------:" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号或子卷号参数为空!");
|
||||
|
||||
}
|
||||
//1.查询满轴缓存位是否有空位
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
@@ -1739,40 +1732,52 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
JSONObject jo = new JSONObject();
|
||||
//todo 添加任务类型
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
//一楼到输送线任务的目标点为当前位置,为起点
|
||||
jo.put("point_code1", schBaseTask.getPoint_code2());
|
||||
//任意一个满轴缓存位为终点
|
||||
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code());
|
||||
//获取子卷号
|
||||
jo.put("vehicle_code", whereJson.getString("container_name1"));
|
||||
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
//todo 获取子卷号,子卷号就是载具号?
|
||||
jo.put("vehicle_code", whereJson.getString("material_barcode"));
|
||||
//2.创建输送线->满轴位桁架任务,
|
||||
String point_code1 = whereJson.getString("device_code");
|
||||
jo.put("point_code1", point_code1);
|
||||
if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) {
|
||||
jo.put("isSend", true);
|
||||
//任意一个满轴缓存位为终点
|
||||
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code());
|
||||
jo.put("is_send", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
} else {
|
||||
//满轴缓存位点位
|
||||
//3.满轴缓存位点位,查找正在搬运到待检区的任务
|
||||
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")));
|
||||
//todo 查找正在搬运到待检区的任务,假设只有一个,现场其实有多个车正在搬运过去
|
||||
//todo 查找正在起点为满轴缓存位点位,且执行中搬运到待检区或管制区的任务,如果有一个或多个,现场其实有多个车正在搬运过去
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//执行中
|
||||
.nested(
|
||||
r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))
|
||||
.or().eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")))
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.and(
|
||||
r -> r.in(SchBaseTask::getPoint_code1, packageinfoivtList)
|
||||
));
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
//4.满轴缓存位无空闲库位,且无执行中搬运到待检区或管制区的任务,则报错!
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,满轴缓存位暂无空闲库位!");
|
||||
}
|
||||
// 5.如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
// 创建前先判断是否有已创建相同任务
|
||||
List<SchBaseTask> existTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//是否存在已创建的目标点相同的未下发的任务
|
||||
.eq(SchBaseTask::getPoint_code2, taskList.get(0).getPoint_code1())
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()));
|
||||
.eq(SchBaseTask::getPoint_code1, point_code1)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()));
|
||||
//6.如果有就不创建,没有就创建
|
||||
// 等这边空出来点位,也就是满轴位->待检区或管制区任务完成后,再补发;
|
||||
if (CollectionUtils.isEmpty(existTaskList)) {
|
||||
jo.put("point_code2", taskList.get(0).getPoint_code1());
|
||||
jo.put("isSend", false);
|
||||
//暂时只确定起点,正在搬运的满轴位->待检区的点位,暂不作为终点
|
||||
//jo.put("point_code2", taskList.get(0).getPoint_code1());
|
||||
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
jo.put("is_send", false);
|
||||
mzhcwTask.createTask(jo);
|
||||
}
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
@@ -1822,7 +1827,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) {
|
||||
|
||||
// 2-空盘入库
|
||||
whereJson.put("vehicle_type",whereJson.getString("container_type"));
|
||||
whereJson.put("vehicle_type", whereJson.getString("container_type"));
|
||||
inVehicleManageService.inVehicle(whereJson);
|
||||
|
||||
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘出库"))) {
|
||||
@@ -1832,7 +1837,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
throw new BadRequestException("载具类型不能为空!");
|
||||
}
|
||||
|
||||
whereJson.put("vehicle_type",whereJson.getString("container_type"));
|
||||
whereJson.put("vehicle_type", whereJson.getString("container_type"));
|
||||
outVehicleManageService.outVehicle(whereJson);
|
||||
|
||||
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("异常处理位"))) {
|
||||
|
||||
@@ -14,10 +14,9 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.ProcessTask;
|
||||
import org.nl.b_lms.sch.tasks.packingArea.DjqTask;
|
||||
import org.nl.b_lms.sch.tasks.packingArea.GzqTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.GzqTask;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -1574,9 +1573,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
|
||||
log.info("sendTargetHouse输入参数为:-------------------" + param.toString());
|
||||
JSONObject resultParam = new JSONObject();
|
||||
try {
|
||||
String containerName = param.getString("ContainerName");
|
||||
String containerName = param.getString("sconds");
|
||||
String TargetHouse = param.getString("TargetHouse");
|
||||
|
||||
if (StringUtils.isBlank(containerName)) {
|
||||
throw new BadRequestException("传入的母卷号不能为空!");
|
||||
}
|
||||
|
||||
@@ -110,7 +110,6 @@ public abstract class AbstractAcsTask {
|
||||
public JSONObject immediateNotifyAcs(String task_id) {
|
||||
List<AcsTaskDto> taskList = this.schedule();
|
||||
if (ObjectUtil.isNotEmpty(taskList)) {
|
||||
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList));
|
||||
return AcsUtil.notifyAcs("api/wms/task", arr);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.sch.manage;
|
||||
|
||||
public enum TaskStatusEnum {
|
||||
|
||||
CREATED("01", "生成"),
|
||||
SURE_START("02", "确定起点"),
|
||||
SURE_END("03", "确定终点"),
|
||||
|
||||
Reference in New Issue
Block a user