opt: 剩下一根管芯,避免竞争

This commit is contained in:
2025-12-09 10:53:19 +08:00
parent ab8da8ab84
commit ff19ec433a

View File

@@ -155,6 +155,8 @@ public class SlitterServiceImpl implements SlitterService {
private TrussCallShaftManuallyTask trussCallShaftManuallyTask;
@Autowired
private StockAreaInOutTask stockAreaInOutTask;
@Autowired
private IBstIvtShafttubeivtService bstIvtShafttubeivtService;
@Override
public JSONObject acsRequestShaftLoadTube(JSONObject param) {
@@ -203,12 +205,42 @@ public class SlitterServiceImpl implements SlitterService {
if ("1".equals(autoSendEmpty.getValue()) && gxQtyList.size() == 0) {
con.put("is_bushing", SlitterConstant.TO_SHAFT_INFO_97);
} else {
// 管芯桁架对接位
List<GxQtyDto> hasNeedPoint = gxQtyList.stream()
.filter(gx -> "1".equals(gx.getPoint_type()) && gx.getQty() >= tubes.size())
.collect(Collectors.toList());
if (hasNeedPoint.size() > 0) {
// 1、判断点位类型有没有=1且数量大于等于所需数
con.put("is_bushing", SlitterConstant.SLITTER_YES);
// - 判断管芯类型与另一台机构的类型是否一样,如果剩下一根管芯且相同,则直送轴
try {
int sum = hasNeedPoint.stream()
.filter(p -> ObjectUtil.isNotEmpty(p.getQty()))
.mapToInt(GxQtyDto::getQty)
.sum();
if (sum == 1) {
BstIvtShafttubeivt one = bstIvtShafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.ne(BstIvtShafttubeivt::getPoint_code, point.getPoint_code())
.eq(BstIvtShafttubeivt::getPoint_location, point.getPoint_location())
.eq(BstIvtShafttubeivt::getPoint_type, point.getPoint_type())
.eq(BstIvtShafttubeivt::getIs_used, "1"));
if (ObjectUtil.isNotEmpty(one)) {
List<String> tubes2 = Stream.of(one.getTube_code1(), one.getTube_code2())
.filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toList());
if ((ObjectUtil.isNotEmpty(one.getTube_code1()) && tubes2.contains(point.getTube_code1()))
|| (ObjectUtil.isNotEmpty(one.getTube_code2()) && tubes2.contains(point.getTube_code2()))) {
log.info("剩下一根管芯,避免竞争,只送空轴!");
stepTipLogs.add("剩下一根管芯,避免竞争,只送空轴!");
redisUtils.set("ERROR" + deviceCode, stepTipLogs);
con.put("is_bushing", SlitterConstant.TO_SHAFT_INFO_97);
}
}
}
} catch (Exception e) {
stepTipLogs.add("判断管芯类型与另一台机构的类型是否一样出错,请检查!");
redisUtils.set("ERROR" + deviceCode, stepTipLogs);
}
} else {
// 2、判断点位有没有任务010807->point3, 010808->point1
List<String> pointCodes = gxQtyList.stream()