From ff19ec433aed24c28f1bdd17cae70419bfaf7576 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 9 Dec 2025 10:53:19 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E5=89=A9=E4=B8=8B=E4=B8=80=E6=A0=B9?= =?UTF-8?q?=E7=AE=A1=E8=8A=AF=EF=BC=8C=E9=81=BF=E5=85=8D=E7=AB=9E=E4=BA=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SlitterServiceImpl.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index a283d8154..e9c5af6a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -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 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() + .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 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 pointCodes = gxQtyList.stream()