opt:优化业务逻辑。
This commit is contained in:
@@ -35,6 +35,7 @@ public class PdmBiSubpackagerelation extends Model<PdmBiSubpackagerelation> {
|
||||
/**
|
||||
* 子卷包装标识
|
||||
*/
|
||||
@TableId(value = "workorder_id", type = IdType.NONE)
|
||||
private Long workorder_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class BstIvtPackageinfoivt extends Model<BstIvtPackageinfoivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ public class SchBasePoint extends Model<SchBasePoint> {
|
||||
/**
|
||||
* 点位标识
|
||||
*/
|
||||
@TableId
|
||||
@TableId(value = "point_id", type = IdType.NONE)
|
||||
private Long point_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtCoolpointivt extends Model<StIvtCoolpointivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtCoolregionio extends Model<StIvtCoolregionio> {
|
||||
/**
|
||||
* 出入单标识
|
||||
*/
|
||||
@TableId(value = "iostorinv_id", type = IdType.NONE)
|
||||
private Long iostorinv_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtDeliverypointivt extends Model<StIvtDeliverypointivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtEmptytubeivt extends Model<StIvtEmptytubeivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtEmptyvehiclerecord extends Model<StIvtEmptyvehiclerecord> {
|
||||
/**
|
||||
* 记录标识
|
||||
*/
|
||||
@TableId(value = "record_uuid", type = IdType.NONE)
|
||||
private Long record_uuid;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtHotpointivt extends Model<StIvtHotpointivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ public class StIvtSbpointivt extends Model<StIvtSbpointivt> {
|
||||
/**
|
||||
* 点位标识
|
||||
*/
|
||||
@TableId(value = "point_id", type = IdType.NONE)
|
||||
private Long point_id;
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class StIvtShaftivt extends Model<StIvtShaftivt> {
|
||||
/**
|
||||
* 库存记录标识
|
||||
*/
|
||||
@TableId(value = "ivt_id", type = IdType.NONE)
|
||||
private Long ivt_id;
|
||||
|
||||
|
||||
|
||||
@@ -10,14 +10,13 @@ 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.region.dao.SchBaseRegion;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.dto.SchBaseTaskVO;
|
||||
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;
|
||||
@@ -27,7 +26,6 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -46,6 +44,8 @@ public class DjqTask extends AbstractAcsTask {
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private OutBoxManageService outBoxManageService;
|
||||
|
||||
@Resource
|
||||
private MzhcwTask mzhcwTask;
|
||||
@@ -104,6 +104,10 @@ public class DjqTask extends AbstractAcsTask {
|
||||
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.根据子卷包装关系查询木箱号,调刘先源的空木箱出库服务创建出库任务
|
||||
//device_code:终点,box_length: 长,box_width: 宽,box_high: 高,num: 子卷数
|
||||
// JSONObject boxInfo = new JSONObject();
|
||||
// boxInfo.put("device_code", schBaseTask.getPoint_code2());
|
||||
// outBoxManageService.outBox(boxInfo);
|
||||
//5.查询是否有未下发的输送线->满轴位任务,有就下发
|
||||
List<SchBaseTask> notIssueTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//确定起点
|
||||
@@ -132,8 +136,9 @@ public class DjqTask extends AbstractAcsTask {
|
||||
jo.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
zxqTask.createTask(jo);
|
||||
}
|
||||
//todo 装箱区没有点位
|
||||
|
||||
else{
|
||||
throw new BadRequestException("装箱区暂无空余库位!");
|
||||
}
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
@@ -179,7 +184,7 @@ public class DjqTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -195,14 +200,12 @@ public class DjqTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void forceFinish(String taskId) {
|
||||
|
||||
SchBaseRegion ss =new SchBaseRegion();
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_id, taskId), false);
|
||||
if (schBaseTask == null) {
|
||||
|
||||
@@ -9,7 +9,6 @@ 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;
|
||||
@@ -153,7 +152,7 @@ public class GzqTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -169,7 +168,7 @@ public class GzqTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ 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.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;
|
||||
@@ -170,7 +169,7 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -186,7 +185,7 @@ public class KzjhcwTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -190,7 +190,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
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())
|
||||
@@ -199,7 +199,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
));
|
||||
//没有正在搬运空载具过来的任务,创建搬运空载具任务
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
//查询待检区库位有空载具的
|
||||
//查询待检区或管制区有空载具的
|
||||
List<BstIvtPackageinfoivt> djqOrGzqPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
||||
@@ -226,7 +226,6 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||
kzjhcwTask.createTask(toKzjhcwTask);
|
||||
}
|
||||
//todo 待检区和管制区都无空载具情况
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -274,7 +273,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -290,7 +289,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,7 +9,6 @@ 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;
|
||||
@@ -164,7 +163,7 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -180,7 +179,7 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,14 +9,15 @@ 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.lang3.StringUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||
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.dto.SchBaseTaskVO;
|
||||
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;
|
||||
@@ -26,9 +27,11 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 6 目标装箱对接位, 装箱区 -> 装箱对接位,桁架任务
|
||||
@@ -40,12 +43,17 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class ZxDjwTask extends AbstractAcsTask {
|
||||
|
||||
|
||||
@Resource
|
||||
private ZxqTask zxqTask;
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private OutBoxManageService outBoxManageService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private IPdmBiSlittingproductionplanService productionPlanService;
|
||||
|
||||
private final String THIS_CLASS = ZxDjwTask.class.getName();
|
||||
|
||||
@Override
|
||||
@@ -81,7 +89,7 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("满轴缓存位 -> 管制区更新接口任务号为空!");
|
||||
}
|
||||
@@ -90,17 +98,36 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
|
||||
.eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
|
||||
if (containerInfo == null) {
|
||||
throw new BadRequestException("找不到子卷信息!");
|
||||
} else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
|
||||
throw new BadRequestException("子卷号不能为空!");
|
||||
}
|
||||
//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.创建空木箱出库任务
|
||||
//device_code:终点,box_length: 长,box_width: 宽,box_high: 高,num: 子卷数
|
||||
JSONObject boxInfo = new JSONObject();
|
||||
boxInfo.put("device_code", schBaseTask.getPoint_code2());
|
||||
outBoxManageService.outBox(boxInfo);
|
||||
//3.创建搬运空载具任务,放空(装箱区->待检区)
|
||||
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());
|
||||
JSONObject toDjqOrGzqTask = new JSONObject();
|
||||
toDjqOrGzqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(装箱区->待检区)"));
|
||||
toDjqOrGzqTask.put("point_code1", schBaseTask.getPoint_code1());
|
||||
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
||||
//优先送到待检区
|
||||
toDjqOrGzqTask.put("point_code2", djqPointList.get(0).getPoint_code());
|
||||
} else {
|
||||
toDjqOrGzqTask.put("point_code2", djqOrGzqPointList.get(0).getPoint_code());
|
||||
}
|
||||
toDjqOrGzqTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||
zxqTask.createTask(toDjqOrGzqTask);
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
@@ -146,7 +173,7 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -162,7 +189,7 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ 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.lang3.StringUtils;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
@@ -42,17 +43,20 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class ZxqTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
|
||||
@Resource
|
||||
private ZxDjwTask zxDjwTask;
|
||||
|
||||
@Resource
|
||||
private DjqTask djqTask;
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private IpdmBiSubpackagerelationService subpackageRelationService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IPdmBiSlittingproductionplanService productionPlanService;
|
||||
private final String THIS_CLASS = ZxqTask.class.getName();
|
||||
|
||||
@Override
|
||||
@@ -88,7 +92,7 @@ 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( SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("待检区 -> 装箱区更新接口任务号为空!");
|
||||
}
|
||||
@@ -97,6 +101,13 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
|
||||
.eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
|
||||
if (containerInfo == null) {
|
||||
throw new BadRequestException("找不到子卷信息!");
|
||||
} else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
|
||||
throw new BadRequestException("子卷号不能为空!");
|
||||
}
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//2.改变起点点位状态
|
||||
@@ -140,6 +151,7 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
Assert.notNull(form, "请求参数不能为空");
|
||||
@@ -170,7 +182,7 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
.point_code4(form.getString("point_code4"))
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(this.getClass().getName())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
@@ -186,7 +198,7 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
if (isSend) {
|
||||
this.immediateNotifyAcs(null);
|
||||
}
|
||||
return task.getTask_id().toString();
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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.sch.tasks.first_floor_area.KzjhcwTask;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AutoSendEmptyVehicle {
|
||||
|
||||
@Resource
|
||||
private KzjhcwTask kzjhcwTask;
|
||||
|
||||
|
||||
@Resource
|
||||
private IschBaseTaskService taskService;
|
||||
|
||||
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
public void run() {
|
||||
this.sendKzjHcwEmptyVehicle();
|
||||
}
|
||||
|
||||
void sendKzjHcwEmptyVehicle() {
|
||||
//查询空载具缓存位是否有空载具
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
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());
|
||||
//如果空载具缓存位都为空,则去搬运空载具
|
||||
if (CollectionUtils.isEmpty(kzjPointList)) {
|
||||
//空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建
|
||||
//没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。
|
||||
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 查找正在搬运到待检区的任务,假设只有一个
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//执行中
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.and(
|
||||
r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList)
|
||||
));
|
||||
//没有正在搬运空载具过来的任务,创建搬运空载具任务
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
//查询待检区或管制区有空载具的
|
||||
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()
|
||||
.filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status()))
|
||||
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq))
|
||||
.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_code2", kzjPoint.get(0).getPoint_code());
|
||||
//todo 载具号
|
||||
toKzjhcwTask.put("vehicle_code", "containerInfo.getContainer_name()");
|
||||
kzjhcwTask.createTask(toKzjhcwTask);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public enum PackageInfoIvtEnum {
|
||||
|
||||
//任务类型
|
||||
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)",
|
||||
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709")),
|
||||
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")),
|
||||
|
||||
//ACS任务类型
|
||||
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),
|
||||
|
||||
Reference in New Issue
Block a user