fix:代码合并
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
package org.nl;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
|
||||
import com.alicp.jetcache.anno.config.EnableMethodCache;
|
||||
import org.dromara.dynamictp.core.spring.EnableDynamicTp;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
@@ -30,8 +28,6 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
})
|
||||
@ServletComponentScan //https://blog.csdn.net/qq_36850813/article/details/101194250
|
||||
@EnableJpaAuditing(auditorAwareRef = "auditorAware")
|
||||
@EnableMethodCache(basePackages = "org.nl")
|
||||
@EnableCreateCacheAnnotation
|
||||
@MapperScan("org.nl.**.mapper")
|
||||
public class AppRun {
|
||||
|
||||
|
||||
@@ -178,6 +178,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("改切入库"));
|
||||
}
|
||||
whereJson.put("box_no", whereJson.getString("box_no"));
|
||||
|
||||
JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status = '0'").getResultJSONArray(0);
|
||||
if (ObjectUtil.isEmpty(resultJSONArray)) {
|
||||
throw new BadRequestException("未查询到子卷包装信息!");
|
||||
|
||||
@@ -808,9 +808,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
if (CollectionUtils.isEmpty(packagerelationList)) {
|
||||
throw new BadRequestException("无选中子卷信息");
|
||||
}
|
||||
if (packagerelationList.size() > 1) {
|
||||
throw new BadRequestException("暂时只能选择一个子卷");
|
||||
}
|
||||
// if (packagerelationList.size() > 1) {
|
||||
// throw new BadRequestException("暂时只能选择一个子卷");
|
||||
// }
|
||||
//检查是否存在已分配规格的子卷号
|
||||
List<PdmBiSubpackagerelation> isOutBox = packagerelationList.stream().filter(r -> r.getStatus().equals("0")).collect(Collectors.toList());
|
||||
if (isOutBox.size() > 0) {
|
||||
@@ -867,7 +867,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
|
||||
log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
|
||||
//空木箱出库测试
|
||||
//String boxSn = "33333";
|
||||
//String boxSn = "MX240702000166";
|
||||
StopWatch stopWatch1 = new StopWatch();
|
||||
stopWatch1.start();
|
||||
//更新及子卷包装状态已分配规格及木箱规格组
|
||||
@@ -907,16 +907,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
.collect(Collectors.toList());
|
||||
//任务组id
|
||||
String groupId = deviceCode.substring(deviceCode.lastIndexOf("_") + 1);
|
||||
RLock lock = redissonClient.getLock(groupId);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
// RLock lock = redissonClient.getLock(groupId);
|
||||
// boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
// try {
|
||||
// if (tryLock) {
|
||||
List<SchBaseTask> schBaseTaskList = new ArrayList<>();
|
||||
//确定起点,安装装箱组标识加入任务队列
|
||||
djqPoints.forEach(r -> {
|
||||
//校验重复任务
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getVehicle_code, r.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED));
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
|
||||
@@ -938,14 +938,14 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
if (CollectionUtils.isNotEmpty(schBaseTaskList)) {
|
||||
taskQueue.addTasksToQueue(groupId, schBaseTaskList);
|
||||
}
|
||||
} else {
|
||||
log.info("待检区->装箱区任务队列正在创建被锁住。");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
// } else {
|
||||
// log.info("待检区->装箱区任务队列正在创建被锁住。");
|
||||
// }
|
||||
// } finally {
|
||||
// if (tryLock) {
|
||||
// lock.unlock();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -111,7 +111,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, null);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, pointIds);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) {
|
||||
}
|
||||
else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null);
|
||||
}
|
||||
else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, pointIds);
|
||||
} else {
|
||||
return packageinfoivtList;
|
||||
@@ -230,12 +234,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
pointCode = getNewPoint(taskCode, actionType);
|
||||
break;
|
||||
case "3":
|
||||
// 取货完成
|
||||
updatePointStatus(taskCode, actionType);
|
||||
break;
|
||||
case "4":
|
||||
// 放货完成,就是任务完成,不需要执行任何操作,但是取货任务的放货完成,需要改变updateTaskStatus:只更新终点库存;
|
||||
//updatePointStatus(taskCode, pointType);
|
||||
// 取货完成,放货完成
|
||||
updatePointStatus(taskCode, actionType);
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
@@ -486,11 +487,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
* @param actionType 动作类型
|
||||
*/
|
||||
private void updatePointStatus(String taskCode, String actionType) {
|
||||
//执行中的任务
|
||||
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_code, taskCode)
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("否"))
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()));
|
||||
if (baseTask == null) {
|
||||
throw new BadRequestException("任务不存在!");
|
||||
throw new BadRequestException("该任务未执行或不存在!");
|
||||
}
|
||||
//取货任务
|
||||
if (actionType.equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
|
||||
@@ -507,6 +510,22 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
.setSql("ivt_status = '0', container_name = null")
|
||||
.eq("point_code", baseTask.getPoint_code1()));
|
||||
}
|
||||
} else {
|
||||
List<BstIvtPackageinfoivt> ivtList = packageinfoivtService.list(new LambdaQueryWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code2()));
|
||||
if (CollectionUtils.isEmpty(ivtList)) {
|
||||
throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "取货完成的目标点位不存在!");
|
||||
}
|
||||
if (ivtList.get(0).getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) {
|
||||
//增加点位库存
|
||||
bstIvtPackageinfoivtMapper.update(null, new UpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.set("container_name", baseTask.getVehicle_code())
|
||||
.set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))
|
||||
.eq("point_code", baseTask.getPoint_code2()));
|
||||
} else {
|
||||
throw new BadRequestException("该点位已有库存!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
package org.nl.b_lms.sch.task.service;
|
||||
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
|
||||
|
||||
/**
|
||||
* {@code @Description:} 任务表(SchBaseTask)服务接口层
|
||||
@@ -69,10 +67,18 @@ public interface IschBaseTaskService extends IService<SchBaseTask> {
|
||||
|
||||
/**
|
||||
* 查找当前设备有没有送轴的任务
|
||||
*
|
||||
* @param resourceName /
|
||||
* @return /
|
||||
*/
|
||||
List<SchBaseTask> getTaskByPlanQzzNoAndDevice(String resourceName);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*校验相同任务类型
|
||||
*/
|
||||
List<SchBaseTask> getExistTasks(String taskType1, String taskType2, String taskType3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,19 +6,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
/**
|
||||
@@ -133,5 +132,18 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
}
|
||||
|
||||
|
||||
public List<SchBaseTask> getExistTasks(String taskType1, String taskType2, String taskType3) {
|
||||
LambdaQueryWrapper<SchBaseTask> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||
queryWrapper.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"));
|
||||
List<String> taskTypes = new ArrayList<>(Arrays.asList(taskType1, taskType2, taskType3));
|
||||
taskTypes.removeIf(StringUtils::isBlank);
|
||||
if (!taskTypes.isEmpty()) {
|
||||
queryWrapper.in(SchBaseTask::getTask_type, taskTypes);
|
||||
}
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ 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;
|
||||
@@ -52,8 +53,6 @@ public class DjqTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private MzhcwTask mzhcwTask;
|
||||
@Resource
|
||||
private TaskQueueManager taskQueueManager;
|
||||
|
||||
|
||||
@@ -73,7 +72,7 @@ public class DjqTask extends AbstractAcsTask {
|
||||
.task_type(r.getAcs_task_type())
|
||||
.start_device_code(r.getPoint_code1())
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
//.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
@@ -98,15 +97,17 @@ public class DjqTask extends AbstractAcsTask {
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
|
||||
//1.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//2.改变起点点位状态,二次分配,取货完成就改起点库存
|
||||
//1.改变起点点位状态,二次分配,取货完成就改起点库存
|
||||
//packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//3更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//清除首次分配目标点位
|
||||
//2.更新库存记录
|
||||
//管制品重新质检
|
||||
String ivtStatus = StringUtils.isBlank(schBaseTask.getRequest_param()) ? PackageInfoIvtEnum.IVT_STATUS.code("有子卷") : schBaseTask.getRequest_param();
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", ivtStatus).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//4.清除首次分配目标点位
|
||||
schBaseTask.setPoint_code3("");
|
||||
//4.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
|
||||
//5.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
|
||||
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
// //确定起点未下发
|
||||
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
|
||||
|
||||
@@ -53,9 +53,6 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
|
||||
@Resource
|
||||
private SsxDjwTask ssxDjwTask;
|
||||
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
@@ -95,30 +92,30 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
|
||||
//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()));
|
||||
//清除首次分配目标点位
|
||||
schBaseTask.setPoint_code4("");
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
|
||||
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
// //确定终点未下发
|
||||
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
|
||||
// .eq(SchBaseTask::getPoint_code2, "NBJ1002")
|
||||
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
// );
|
||||
// if (CollectionUtils.isNotEmpty(taskList)) {
|
||||
// SchBaseTask task = taskList.get(0);
|
||||
// task.setPoint_code1(schBaseTask.getPoint_code2());
|
||||
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
// taskService.update(task);
|
||||
// //任务下发
|
||||
// ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
|
||||
// }
|
||||
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
|
||||
//1.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//2.更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.更改任务状态为完成
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//4.清除首次分配目标点位
|
||||
schBaseTask.setPoint_code4("");
|
||||
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
|
||||
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
// //确定终点未下发
|
||||
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
|
||||
// .eq(SchBaseTask::getPoint_code2, "NBJ1002")
|
||||
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
// );
|
||||
// if (CollectionUtils.isNotEmpty(taskList)) {
|
||||
// SchBaseTask task = taskList.get(0);
|
||||
// task.setPoint_code1(schBaseTask.getPoint_code2());
|
||||
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
// taskService.update(task);
|
||||
// //任务下发
|
||||
// ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
|
||||
// }
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
|
||||
@@ -48,8 +48,6 @@ public class GzqTask extends AbstractAcsTask {
|
||||
private IschBaseTaskService taskService;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private MzhcwTask mzhcwTask;
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
@@ -99,7 +97,7 @@ public class GzqTask extends AbstractAcsTask {
|
||||
//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()));
|
||||
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> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
// //确定起点未下发
|
||||
|
||||
@@ -53,8 +53,7 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
|
||||
@Resource
|
||||
private SsxDjwTask ssxDjwTask;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@@ -93,7 +93,9 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
//四个点任务与两个点任务类型区分
|
||||
.agv_action_type(r.getVehicle_code2())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.product_area(r.getProduct_area())
|
||||
@@ -127,23 +129,32 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
//createTaskToDjq(schBaseTask);
|
||||
//4.创建空载具到输送线任务,完成后需要创建空载具缓存位->输送线任务
|
||||
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) {
|
||||
//如果是输送线->满轴缓存位任务
|
||||
List<BstIvtPackageinfoivt> kzjPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具"))
|
||||
.orderByDesc(BstIvtPackageinfoivt::getSort_seq));
|
||||
JSONObject toSsxTask = new JSONObject();
|
||||
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
toSsxTask.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具,如果暂时没有空载具,定时任务会不断判断是否有空载具
|
||||
if (CollectionUtils.isNotEmpty(kzjPointList)) {
|
||||
//直接创建搬运空载具任务
|
||||
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
|
||||
//终点为输送线点位
|
||||
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
||||
//校验任务是否存在
|
||||
List<SchBaseTask> existTask = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"),null,null);
|
||||
if (CollectionUtils.isEmpty(existTask)) {
|
||||
//如果是输送线->满轴缓存位任务
|
||||
List<BstIvtPackageinfoivt> kzjPointList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具"))
|
||||
.orderByDesc(BstIvtPackageinfoivt::getSort_seq));
|
||||
JSONObject toSsxTask = new JSONObject();
|
||||
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
toSsxTask.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具,如果暂时没有空载具,定时任务会不断判断是否有空载具
|
||||
if (CollectionUtils.isEmpty(kzjPointList)) {
|
||||
toSsxTask.put("task_status", TaskStatusEnum.SURE_END.getCode());
|
||||
//确定终点为输送线点位
|
||||
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
||||
} else {
|
||||
toSsxTask.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
//直接创建搬运空载具任务
|
||||
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
|
||||
//终点为输送线点位
|
||||
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
||||
}
|
||||
ssxDjwTask.createTask(toSsxTask);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -69,7 +69,7 @@ public class SsxDjwTask extends AbstractAcsTask {
|
||||
.next_device_code(r.getPoint_code2())
|
||||
.start_device_code2(r.getPoint_code3())
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
//.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.agv_action_type(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"))
|
||||
|
||||
@@ -11,7 +11,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.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.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
@@ -51,10 +50,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
public class ZxDjwTask extends AbstractAcsTask {
|
||||
|
||||
@Resource
|
||||
private DjqToKzjhcwTask djqToKzjhcwTask;
|
||||
@Resource
|
||||
private DjqTask djqTask;
|
||||
|
||||
@Resource
|
||||
private BstIvtBoxinfoMapper bstIvtBoxinfoMapper;
|
||||
@Resource
|
||||
@@ -124,17 +120,14 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//3.判断是否最后一个子卷:相同木箱号的子卷包装关系如果生成状态:0,且个数等于1且子卷号等于当前载具号,就是最后一个子卷
|
||||
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
//所有木箱已装箱
|
||||
if (CollectionUtils.isEmpty(packagerelationList)) {
|
||||
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) {
|
||||
//4.更改木箱信息为已装箱:1
|
||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).ne(BstIvtBoxinfo::getIs_packing, "1"));
|
||||
if (bstIvtBoxinfo == null) {
|
||||
throw new BadRequestException("子卷包装关系为已装箱或找该任务的木箱号不存在!");
|
||||
}
|
||||
//4.更改木箱信息为已装箱:1
|
||||
bstIvtBoxinfo.setIs_packing(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo);
|
||||
}
|
||||
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) {
|
||||
//5.最后一个子卷,清除装箱位木箱信息
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
}
|
||||
|
||||
@@ -11,7 +11,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.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.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
@@ -64,9 +63,6 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
@Resource
|
||||
private IpdmBiSubpackagerelationService subpackageRelationService;
|
||||
|
||||
@Resource
|
||||
private IPdmBiSlittingproductionplanService productionPlanService;
|
||||
|
||||
@Resource
|
||||
private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper;
|
||||
@Resource
|
||||
|
||||
@@ -56,6 +56,7 @@ public class AutoExecuteWaitTask {
|
||||
*/
|
||||
@SneakyThrows
|
||||
public void executeWaitTask() {
|
||||
log.info(THIS_CLASS+"-放满与取空桁架定时任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
@@ -80,7 +81,7 @@ public class AutoExecuteWaitTask {
|
||||
if (CollectionUtils.isEmpty(kzjPointList)) {
|
||||
return;
|
||||
}
|
||||
List<SchBaseTask> existTaskList = getExistTasks(taskType, task.getVehicle_code());
|
||||
List<SchBaseTask> existTaskList = taskService.getExistTasks(taskType,null,null);
|
||||
if (existTaskList.size() > 1) {
|
||||
throw new BadRequestException("存在多个子卷号相同的任务!");
|
||||
}
|
||||
@@ -99,7 +100,7 @@ public class AutoExecuteWaitTask {
|
||||
return;
|
||||
}
|
||||
//校验相同是否存在相同子卷号任务
|
||||
List<SchBaseTask> existTaskList = getExistTasks(taskType, task.getVehicle_code());
|
||||
List<SchBaseTask> existTaskList = taskService.getExistTasks(taskType,null,null);
|
||||
//如果有就不创建,没有就创建
|
||||
if (existTaskList.size() > 1) {
|
||||
throw new BadRequestException("存在多个子卷号相同的任务!");
|
||||
@@ -121,15 +122,4 @@ public class AutoExecuteWaitTask {
|
||||
}
|
||||
}
|
||||
|
||||
//校验相同子卷号的任务
|
||||
private List<SchBaseTask> getExistTasks(String taskType, String containerName) {
|
||||
String startTime = LocalDate.now().atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
return taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_type, taskType)
|
||||
.eq(SchBaseTask::getVehicle_code, containerName)
|
||||
.gt(SchBaseTask::getCreate_time, startTime)
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ public class AutoSendDjqToGzq {
|
||||
*/
|
||||
@SneakyThrows
|
||||
public void sendDjqToGzq() {
|
||||
log.info(THIS_CLASS+"-待检区->管制区定时任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
|
||||
@@ -8,6 +8,7 @@ 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.tasks.first_floor_area.DjqTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
@@ -44,6 +45,7 @@ public class AutoSendGzqToDjq {
|
||||
*/
|
||||
@SneakyThrows
|
||||
public void sendGzqToDjq() {
|
||||
log.info(THIS_CLASS+"-管制区->待检区定时任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
@@ -60,6 +62,8 @@ public class AutoSendGzqToDjq {
|
||||
}
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
|
||||
//区分管制品重新检测为合格品
|
||||
task.put("request_param", PackageInfoIvtEnum.IVT_STATUS.code("合格品"));
|
||||
task.put("vehicle_code", gzqPackageinfoivtList.get(0).getContainer_name());
|
||||
task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code());
|
||||
task.put("point_code2", djqPackageinfoivtList.get(0).getPoint_code());
|
||||
|
||||
@@ -62,14 +62,13 @@ public class AutoSendMzToDjq {
|
||||
|
||||
@SneakyThrows
|
||||
public void sendMzqToDjq2() {
|
||||
log.info(THIS_CLASS+"-满轴->待检区定时任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
String pointCode2 = null;
|
||||
JSONObject task = new JSONObject();
|
||||
//满轴有子卷且过滤未完成任务
|
||||
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
if (CollectionUtils.isEmpty(mzqPackageinfoivtList)) {
|
||||
return;
|
||||
}
|
||||
@@ -78,6 +77,8 @@ public class AutoSendMzToDjq {
|
||||
if (CollectionUtils.isEmpty(djqPackageinfoivtList)) {
|
||||
return;
|
||||
}
|
||||
String pointCode2;
|
||||
JSONObject task = new JSONObject();
|
||||
pointCode2 = djqPackageinfoivtList.get(0).getPoint_code();
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("取货二次分配"));
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"));
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
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.tasks.first_floor_area.ZxqTask;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -22,6 +23,9 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class AutoSendToZxq {
|
||||
|
||||
private final String THIS_CLASS = AutoSendToZxq.class.getName();
|
||||
@Resource
|
||||
private RedissonClient redissonClient;
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
@@ -41,7 +45,13 @@ public class AutoSendToZxq {
|
||||
/**
|
||||
* 二次分配任务
|
||||
*/
|
||||
@SneakyThrows
|
||||
public void sendDjqToZxq() {
|
||||
log.info(THIS_CLASS + "-待检区->装箱区定时任务开始执行扫描。");
|
||||
// RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
// boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
// try {
|
||||
// if (tryLock) {
|
||||
//装箱区有空位,去待检区消费合格品子卷
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(
|
||||
PackageInfoIvtEnum.POINT_STATUS.code("装箱区"),
|
||||
@@ -57,6 +67,14 @@ public class AutoSendToZxq {
|
||||
//taskQueueManager.processTasks(ivtList);
|
||||
taskQueue.processTasks(ivtList);
|
||||
}
|
||||
|
||||
// } else {
|
||||
// log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");
|
||||
// }
|
||||
// } finally {
|
||||
// if (tryLock) {
|
||||
// lock.unlock();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ public class AutoSendVehicleToDjq {
|
||||
|
||||
@SneakyThrows
|
||||
public void sendVehicleToDjqOrGzq1() {
|
||||
log.info(THIS_CLASS+"-装箱区->待检区或管制区补空任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
@@ -55,7 +56,7 @@ public class AutoSendVehicleToDjq {
|
||||
return;
|
||||
}
|
||||
//待检区有空位且过滤未完成任务
|
||||
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) {
|
||||
pointCode2 = djqPackageinfoivtList.get(0).getPoint_code();
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
|
||||
|
||||
@@ -47,7 +47,7 @@ public class AutoSendVehicleToKzj {
|
||||
@SneakyThrows
|
||||
public void toKzjHcw() {
|
||||
//存在空载具缓存位无空载具的点位
|
||||
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
if (CollectionUtils.isEmpty(kzjIvtList)) {
|
||||
return;
|
||||
}
|
||||
@@ -80,20 +80,21 @@ public class AutoSendVehicleToKzj {
|
||||
*/
|
||||
@SneakyThrows
|
||||
public void toKzjHcw2() {
|
||||
log.info(THIS_CLASS+"-待检区或管制区->空载具缓存位补空任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
//存在空载具缓存位无空载具的点位
|
||||
String pointCode1 = null;
|
||||
JSONObject task = new JSONObject();
|
||||
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
if (CollectionUtils.isEmpty(kzjIvtList)) {
|
||||
return;
|
||||
}
|
||||
String pointCode1 = null;
|
||||
JSONObject task = new JSONObject();
|
||||
boolean hasEmptyVehicle = true;
|
||||
Optional<BstIvtPackageinfoivt> emptyList = kzjIvtList.stream()
|
||||
.filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空")))
|
||||
.filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")))
|
||||
.findFirst();
|
||||
//判断点位外层是否有空载具
|
||||
if (emptyList.isPresent()) {
|
||||
|
||||
@@ -48,6 +48,7 @@ import static org.nl.wms.util.TaskUtil.getMaxNum;
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class AutoSendZxToDjw {
|
||||
private final String THIS_CLASS = AutoSendZxToDjw.class.getName();
|
||||
|
||||
private final RedissonClient redissonClient;
|
||||
@Resource
|
||||
@@ -112,6 +113,7 @@ public class AutoSendZxToDjw {
|
||||
}
|
||||
//获取与该木箱号匹配的子卷号
|
||||
String containerName = relationList.get(0).getContainer_name();
|
||||
log.info(THIS_CLASS+"-装箱区->装箱对接位任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(containerName);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
|
||||
@@ -62,15 +62,12 @@ public class TaskQueue {
|
||||
|
||||
private void executeTask(SchBaseTask task, String pointCode) {
|
||||
if (task != null) {
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, task.getTask_id())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||
//被取消或删除的任务不再执行
|
||||
//if (CollectionUtils.isEmpty(taskList)) {
|
||||
task.setPoint_code2(pointCode);
|
||||
log.info("待检区->装箱区agv任务编号为:"+task.getTask_code()+",任务状态为:"+task.getTask_status()+"任务开始下发。");
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskService.updateById(task);
|
||||
zxqTask.immediateNotifyAcs(null);
|
||||
//}
|
||||
log.info("待检区->装箱区agv任务编号为:"+task.getTask_code()+",任务状态为:"+task.getTask_status()+"下发完成。");
|
||||
//同步删除子卷包装关系
|
||||
LambdaQueryWrapper<PdmBiSubpackagerelation> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PdmBiSubpackagerelation::getContainer_name, task.getVehicle_code());
|
||||
|
||||
@@ -300,7 +300,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
@Override
|
||||
public void returnIn(JSONObject whereJson) {
|
||||
// 载具表
|
||||
///api/twoPda/vehicle/returnIn
|
||||
//api/twoPda/vehicle/returnIn
|
||||
/*
|
||||
* 查询mes木箱信息,插入木箱信息表
|
||||
*/
|
||||
|
||||
@@ -4,12 +4,11 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONAware;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.log4j.Log4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
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.database.service.IBstIvtBoxinfoService;
|
||||
@@ -18,21 +17,18 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvMapper;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.service.TaskService;
|
||||
import org.nl.wms.ext.mes.service.LmsToMesService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -45,6 +41,7 @@ import java.util.stream.Collectors;
|
||||
* @since 2023-11-10
|
||||
*/
|
||||
@Service
|
||||
@Log4j
|
||||
public class InBussManageServiceImpl implements InBussManageService {
|
||||
|
||||
@Autowired
|
||||
@@ -65,6 +62,10 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
@Autowired
|
||||
private IBstIvtBoxinfoService iBstIvtBoxinfoService;
|
||||
|
||||
@Autowired
|
||||
private LmsToMesService lmsToMesService;
|
||||
|
||||
|
||||
/**
|
||||
* 不需要查询的排集合
|
||||
*/
|
||||
@@ -228,13 +229,15 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
public void inTask(JSONObject jsonObject) {
|
||||
// 子卷包装关系表
|
||||
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
|
||||
|
||||
// 载具扩展属性表
|
||||
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
// 载具表
|
||||
WQLObject vehicleTab = WQLObject.getWQLObject("MD_PB_StorageVehicleInfo");
|
||||
// 处理子卷号
|
||||
String material_barcode = jsonObject.getString("material_barcode");
|
||||
if (ObjectUtil.isEmpty(material_barcode)) {
|
||||
throw new BadRequestException("子卷号不能为空!");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonObject.getString("device_code"))) {
|
||||
throw new BadRequestException("设备号不能为空!");
|
||||
}
|
||||
@@ -252,6 +255,47 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, subList.get(0).getString("package_box_sn"))
|
||||
);
|
||||
String vehicleType;
|
||||
if (boxDao != null) {
|
||||
vehicleType = boxDao.getVehicle_type();
|
||||
} else {
|
||||
//查询mes木箱信息,插入木箱信息表
|
||||
try {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("box_no", subList.get(0).getString("package_box_sn"));
|
||||
lmsToMesService.momGetPackingInfo(jo);
|
||||
} catch (Exception ex) {
|
||||
throw new BadRequestException("MES系统未查询到木箱信息!");
|
||||
}
|
||||
BstIvtBoxinfo boxDao1 = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, subList.get(0).getString("package_box_sn"))
|
||||
);
|
||||
vehicleType = boxDao1.getVehicle_type();
|
||||
}
|
||||
//处理托盘扩展信息
|
||||
JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + jsonObject.getString("vehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonVehicle)) {
|
||||
throw new BadRequestException("载具不存在!");
|
||||
}
|
||||
JSONObject ext_jo = veExtTab.query("storagevehicle_code = '" + jsonVehicle.getString("storagevehicle_code") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(ext_jo)) {
|
||||
JSONObject jsonVeExt = new JSONObject();
|
||||
jsonVeExt.put("storagevehicleext_id", org.nl.common.utils.IdUtil.getLongId());
|
||||
jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id"));
|
||||
jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code"));
|
||||
jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type"));
|
||||
jsonVeExt.put("pcsn", subList.get(0).getString("package_box_sn"));
|
||||
jsonVeExt.put("device_uuid", org.nl.common.utils.IdUtil.getLongId());
|
||||
jsonVeExt.put("update_time", DateUtil.now());
|
||||
veExtTab.insert(jsonVeExt);
|
||||
} else {
|
||||
ext_jo.put("pcsn", subList.get(0).getString("package_box_sn"));
|
||||
ext_jo.put("device_uuid", org.nl.common.utils.IdUtil.getLongId());
|
||||
ext_jo.put("update_time", DateUtil.now());
|
||||
veExtTab.update(ext_jo);
|
||||
}
|
||||
// 主表
|
||||
JSONObject mst = new JSONObject();
|
||||
mst.put("stor_id", IOSEnum.STOR_ID.code("二期"));
|
||||
@@ -261,14 +305,11 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
mst.put("bill_type", jsonObject.getString("bill_type"));
|
||||
mst.put("biz_date", DateUtil.today());
|
||||
mst.put("remark", "");
|
||||
|
||||
// 明细
|
||||
ArrayList<LinkedHashMap> tableData = new ArrayList<>();
|
||||
for (int i = 0; i < subList.size(); i++) {
|
||||
JSONObject json = subList.get(i);
|
||||
|
||||
LinkedHashMap<String, Object> jsonDtl = new LinkedHashMap<>();
|
||||
|
||||
jsonDtl.put("package_box_sn", json.getString("package_box_sn"));
|
||||
jsonDtl.put("thickness", json.getString("thickness"));
|
||||
jsonDtl.put("plan_qty", json.getString("net_weight"));
|
||||
@@ -287,13 +328,11 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
tableData.add(jsonDtl);
|
||||
}
|
||||
mst.put("tableData", tableData);
|
||||
|
||||
// 判断是否已经生成过入库单
|
||||
String package_box_sn = (String) tableData.get(0).get("package_box_sn");
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("package_box_sn",package_box_sn);
|
||||
JSONObject iosMst = stIvtIostorinvMapper.queryBoxMst(param);
|
||||
|
||||
String iostorinv_id;
|
||||
if (ObjectUtil.isNotEmpty(iosMst)) {
|
||||
iostorinv_id = iosMst.getString("iostorinv_id");
|
||||
@@ -325,7 +364,7 @@ public class InBussManageServiceImpl implements InBussManageService {
|
||||
jsonDiv.put("stor_id", IOSEnum.STOR_ID.code("二期"));
|
||||
jsonDiv.put("material_barcode", jsonObject.getString("material_barcode"));
|
||||
jsonDiv.put("vehicle_code", jsonObject.getString("vehicle_code"));
|
||||
jsonDiv.put("vehicle_type", boxDao.getVehicle_type());
|
||||
jsonDiv.put("vehicle_type", vehicleType);
|
||||
iStIvtIostorinvService.divStruct(jsonDiv);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public enum PackageInfoIvtEnum {
|
||||
|
||||
|
||||
//起点终点类型
|
||||
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6")),
|
||||
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务放货", "7")),
|
||||
|
||||
//等待点类型
|
||||
WAIT_POINT_TYPE(MapOf.of("满轴区等待点", "1", "待检区等待点", "2")),
|
||||
|
||||
@@ -3,10 +3,6 @@ package org.nl.system.service.param.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alicp.jetcache.anno.CachePenetrationProtect;
|
||||
import com.alicp.jetcache.anno.CacheType;
|
||||
import com.alicp.jetcache.anno.CacheUpdate;
|
||||
import com.alicp.jetcache.anno.Cached;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -77,7 +73,6 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
@CacheUpdate(name="paramCache-", key="#param.code", value="#param")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(Param param) {
|
||||
Param paramObj = paramMapper.selectById(param.getId());
|
||||
@@ -102,8 +97,6 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
/*@CachePenetrationProtect
|
||||
@Cached(name="paramCache-",key = "#code", expire = 3600, cacheType = CacheType.REMOTE)*/
|
||||
public Param findByCode(String code) {
|
||||
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("code", code);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.ext.acs.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
@@ -27,7 +26,6 @@ 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.TwoBoxExcepTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoExceptionInTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutHeapTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
|
||||
@@ -38,8 +36,8 @@ import org.nl.b_lms.storage_manage.ios.enums.TASKEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*;
|
||||
import org.nl.common.enums.NoticeTypeEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
@@ -71,14 +69,11 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
@@ -1842,7 +1837,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
} else {
|
||||
//如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
List<SchBaseTask> existTaskList = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), containerName);
|
||||
List<SchBaseTask> existTaskList = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"),PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
//如果有就不创建,没有就创建
|
||||
if (CollectionUtils.isEmpty(existTaskList)) {
|
||||
//只确定起点NBJ1002
|
||||
@@ -1850,13 +1845,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
jo2.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
jo2.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
jo2.put("point_code1", "NBJ1002");
|
||||
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
jo2.put("vehicle_code", containerName);
|
||||
jo2.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
jo2.put("is_send", false);
|
||||
mzhcwTask.createTask(jo2);
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
}else{
|
||||
log.info("已存在任务编号为:"+existTaskList.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", "已存在任务编号为:"+existTaskList.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
}
|
||||
result.put("data", containerName);
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", "满轴缓存位暂无空位!");
|
||||
}
|
||||
} else {
|
||||
log.info("二楼到一楼成品子卷到达一楼输送线任务正在创建被锁住。");
|
||||
@@ -1872,19 +1871,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 无空载具下发确定终点的补空桁架任务
|
||||
*/
|
||||
private JSONObject createTask2(String containerName, JSONObject jo) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("data", containerName);
|
||||
//如果空载具缓存位确少空载具,创建输送线->满轴缓存位两个点任务
|
||||
List<SchBaseTask> existTaskList = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
List<SchBaseTask> existTaskList1 = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), containerName);
|
||||
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"),PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
if (CollectionUtils.isEmpty(existTaskList1)) {
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
jo.put("is_send", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
//空载具缓存位缺少空载具,下发一个确定终点的空载具缓存位->输送线任务
|
||||
List<SchBaseTask> existTasks = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
List<SchBaseTask> existTask1 = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), containerName);
|
||||
List<SchBaseTask> existTask1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"),null,null);
|
||||
if (CollectionUtils.isEmpty(existTask1)) {
|
||||
JSONObject jo1 = new JSONObject();
|
||||
//创建确定终点任务
|
||||
@@ -1899,8 +1899,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
} else {
|
||||
log.info("已存在任务编号为:"+existTaskList1.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
result.put("message", "已存在任务编号为:"+existTaskList1.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", "该子卷号:" + containerName + "桁架任务已存在,二楼下一楼存在相同子卷号,请检查!");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1909,8 +1910,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("data", containerName);
|
||||
// 创建前先判断是否有已创建相同任务
|
||||
List<SchBaseTask> existTaskList = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
||||
List<SchBaseTask> existTaskList1 = getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), containerName);
|
||||
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"),PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||
if (CollectionUtils.isEmpty(existTaskList1)) {
|
||||
jo.put("point_code3", pointCode3);
|
||||
//终点为输送线点位
|
||||
@@ -1921,30 +1921,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
} else {
|
||||
log.info("已存在任务编号为:"+existTaskList1.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
result.put("message", "已存在任务编号为:"+existTaskList1.get(0).getTask_code()+"未完成的桁架任务,请检查!");
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", "该子卷号:" + containerName + "桁架任务已存在,二楼下一楼存在相同子卷号,请检查!");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<SchBaseTask> getExistTasks(String taskType) {
|
||||
return taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_type, taskType)
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")));
|
||||
}
|
||||
|
||||
private List<SchBaseTask> getExistTasks(String taskType, String containerName) {
|
||||
String startTime = LocalDate.now().atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
return taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_type, taskType)
|
||||
.eq(SchBaseTask::getVehicle_code, containerName)
|
||||
//.gt(SchBaseTask::getCreate_time, startTime)
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,7 +26,6 @@ public class AcsUtil {
|
||||
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_connect_acs").getValue();
|
||||
JSONObject result = new JSONObject();
|
||||
if (StrUtil.equals("0", isConnect)) {
|
||||
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "下发成功,但未连接ACS!");
|
||||
result.put("data", new JSONObject());
|
||||
@@ -62,7 +61,6 @@ public class AcsUtil {
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
System.out.println(msg);
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
@@ -129,7 +127,6 @@ public class AcsUtil {
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
System.out.println(msg);
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
package org.nl.wms.util;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
public class TaskUtil {
|
||||
|
||||
/**
|
||||
@@ -52,4 +59,5 @@ public class TaskUtil {
|
||||
}
|
||||
return maxNum;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user