fix: 修复呼叫AGV失败但是最终还是出了气胀轴绑定了信息BUG
This commit is contained in:
@@ -44,8 +44,6 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Comparator;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -235,14 +233,18 @@ public class AutoCallAirShaftTask {
|
||||
log.info("查找到满足到对应尺寸的点位-{}", qzzPoint);
|
||||
if (qzzPoint.size() == 0) {
|
||||
//若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可
|
||||
// 要先判断AGV任务,才能去呼叫出轴
|
||||
if (!toCallAgvMovePaperTube(needPlans, location, empty)) {
|
||||
log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code());
|
||||
return;
|
||||
}
|
||||
// 调用ACS滚条气涨轴下来
|
||||
if (!toAcsOutShaft(qzzSize,location, empty)) {
|
||||
log.error("穿拔轴{}不进行套轴,跳过!", empty.getPoint_code());
|
||||
log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code());
|
||||
return;
|
||||
}
|
||||
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
|
||||
saveCutPlanMessage(empty, needPlans, qzzSize);
|
||||
toCallAgvMovePaperTube(needPlans, location, empty);
|
||||
return;
|
||||
}
|
||||
// 查找一条没任务的点位
|
||||
@@ -313,8 +315,11 @@ public class AutoCallAirShaftTask {
|
||||
// 拔管数量
|
||||
param.put("pullCount", oldPlans.size());
|
||||
param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList()));
|
||||
if (!toCallAgvMovePaperTube(needPlans, location, empty)) {
|
||||
log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code());
|
||||
return;
|
||||
}
|
||||
trussCallAirShaftTask.createTask(param);
|
||||
toCallAgvMovePaperTube(needPlans, location, empty);
|
||||
// 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴)
|
||||
needPlans.forEach(p -> {
|
||||
p.setIs_paper_ok("2");
|
||||
@@ -350,7 +355,7 @@ public class AutoCallAirShaftTask {
|
||||
* @param needPlans 所需要套轴的分切计划
|
||||
* @param location 位置
|
||||
*/
|
||||
public void toCallAgvMovePaperTube(List<PdmBiSlittingproductionplan> needPlans, String location, BstIvtShafttubeivt empty) {
|
||||
public Boolean toCallAgvMovePaperTube(List<PdmBiSlittingproductionplan> needPlans, String location, BstIvtShafttubeivt empty) {
|
||||
// 最多两根
|
||||
List<String> tubes = needPlans.stream().map(plan -> {
|
||||
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
|
||||
@@ -383,7 +388,7 @@ public class AutoCallAirShaftTask {
|
||||
}
|
||||
// 说明三个位置中有包含此纸管的数据。
|
||||
if (sum >= tubes.size() + otherDeviceTubeSize) {
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
// 如果不够,就计算还缺多少个
|
||||
int needTemp = tubes.size() + otherDeviceTubeSize - sum;
|
||||
@@ -406,7 +411,7 @@ public class AutoCallAirShaftTask {
|
||||
noticeService.createNotice("备货区找不到[" + tubes.get(0) + "]的纸管信息",
|
||||
"点位[" + empty.getPoint_name() + "]无法从备货区找到纸管信息",
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
// 找到就创建AGV搬运任务
|
||||
// 筛选3个位置中数量最少的搬走, 如果是空位,直接搬运过来
|
||||
@@ -426,7 +431,7 @@ public class AutoCallAirShaftTask {
|
||||
.eq(MdPbPapervehicle::getVehicle_code, needPoint.getVehicle_code()));
|
||||
doSavePaperInfos(paperList, param);
|
||||
stockAreaCallTubeTask.createTask(param);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
// 查找一个没有任务的空位
|
||||
List<BstIvtStockingivt> list = stockingivtService.getEmptyPointNotTask(location, "0");
|
||||
@@ -434,7 +439,7 @@ public class AutoCallAirShaftTask {
|
||||
noticeService.createNotice("备货区找不到空位置搬运",
|
||||
"点位[" + empty.getPoint_name() + "]无法从备货区找到空位",
|
||||
NoticeTypeEnum.EXCEPTION.getCode());
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
BstIvtStockingivt endPoint = list.get(0);
|
||||
// 创建任务 -> HINT: 在此任务完成之后会调用搬回来的任务,因此任务中要记录需要搬运的点位放在任务请求参数中。
|
||||
@@ -447,6 +452,7 @@ public class AutoCallAirShaftTask {
|
||||
param.put("task_type", SlitterEnum.TASK_TYPE.code("备货区送载具"));
|
||||
param.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
stockAreaSendVehicleTask.createTask(param);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -904,6 +904,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
.eq("qty", "0");
|
||||
boolean remove = papervehicleService.remove(deleteWrapper);
|
||||
}
|
||||
// todo: 如果qty=0,创建AGV送空任务,(新的task_type)、后期优化可以新增诺宝取货完成提前释放货位,任务状态变成071
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user