From 40da97e5a37b703473aa9d55faafb1f46950b223 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 19 Feb 2025 14:01:07 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E5=88=86=E5=88=87=E6=9A=82=E5=AD=98<>?= =?UTF-8?q?=E5=86=85=E5=8C=85=E9=97=B4=E4=BB=BB=E5=8A=A1=E8=BF=87=E6=BB=A4?= =?UTF-8?q?071=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/BstIvtCutpointivtMapper.xml | 4 +- .../slitter/auto/AutoSendAirShaftAgvTask.java | 7 ++- .../tasks/slitter/mapper/SlitterMapper.java | 9 ++++ .../tasks/slitter/mapper/SlitterMapper.xml | 36 ++++++++++++++ .../service/impl/SlitterServiceImpl.java | 47 +++++++++++-------- 5 files changed, 82 insertions(+), 21 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 593a5bc74..9fa813429 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -147,7 +147,9 @@ FROM sch_base_task t WHERE t.task_status '07' AND t.is_delete = '0' - AND (t.point_code1 = bic.point_code OR t.point_code2 = bic.point_code) + AND (t.point_code1 = bic.point_code OR t.point_code2 = bic.point_code + OR t.point_code1 = bic.truss_point_code1 oR t.point_code2 = bic.truss_point_code1 + OR t.point_code1 = bic.truss_point_code2 oR t.point_code2 = bic.truss_point_code2) ) AND 0 = (SELECT COUNT(*) FROM sch_base_task t diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index 9bc015e9b..ba7e68b03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -116,7 +116,12 @@ public class AutoSendAirShaftAgvTask { // 如果两个气涨轴编码则表示一组满了 // 查找分切对接没任务的空位 // hint: B1、B2、B3、B4分切区分两个桁架位置 (B1,B3: 1-6为上。B2,B4是1-5为上区域) - List emptyPoint = slitterMapper.getEmptyCutPointNotTask(area, +// List emptyPoint = slitterMapper.getEmptyCutPointNotTask(area, +// deviceCut.getSort_seq(), +// SlitterTaskUtil.getPointLocationInCutDevice( +// SlitterTaskUtil.getNumberByResourceCode(demoPlan.getResource_name()), +// area)); + List emptyPoint = slitterMapper.nbjGetEmptyCutPointNotTask(area, deviceCut.getSort_seq(), SlitterTaskUtil.getPointLocationInCutDevice( SlitterTaskUtil.getNumberByResourceCode(demoPlan.getResource_name()), diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index 7f0cd1953..7b99c9dfd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -50,4 +50,13 @@ public interface SlitterMapper { List getReadyShaftPoint(String extCode); List getAreaFullVolumeByArea(List areas); + + /** + * 内包间获取分切机下料位没任务的点位,过滤071任务 + * @param area + * @param sortSeq + * @param location + * @return + */ + List nbjGetEmptyCutPointNotTask(String area, BigDecimal sortSeq, String location); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 7f8d7e2f5..a1ee9462e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -100,4 +100,40 @@ )) ORDER BY bct.point_type DESC + 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 066b03c91..d497d3553 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 @@ -391,29 +391,30 @@ public class SlitterServiceImpl implements SlitterService { @Override public JSONObject acsSendShaftToCache(JSONObject param) { log.info("ACS申请送气涨轴到气涨轴暂存位的输入参数为:{}", param); + String lock = "lock"; JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); String qzzSize = param.getString("size"); - // 判断是否有未完成的任务 - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code1, deviceCode) - .lt(SchBaseTask::getTask_status, "07")); - if (list.size() > 0) { - throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); - } - BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); - // 临时存放气涨轴尺寸 - startPoint.setQzz_size(qzzSize); - // 获取空位 - List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); - if (shafttubeivts.size() == 0) { - throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); - } - BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - RLock lockPoint = redissonClient.getLock(shafttubeivt.getPoint_code()); + RLock lockPoint = redissonClient.getLock(lock + qzzSize); boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); try { if (tryLockPoint) { + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } + BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); + // 临时存放气涨轴尺寸 + startPoint.setQzz_size(qzzSize); + // 获取空位 + List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); + if (shafttubeivts.size() == 0) { + throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); // 创建任务 param.put("point_code1", deviceCode); param.put("point_code2", shafttubeivt.getPoint_code()); @@ -1400,7 +1401,7 @@ public class SlitterServiceImpl implements SlitterService { String upQzzno = deviceCode.getUp_qzzno(); String downQzzno = deviceCode.getDown_qzzno(); if (ObjectUtil.isNotEmpty(upQzzno)) { - List byQzzNo = slittingproductionplanService.getByQzzNoByStatus(upQzzno, "05"); + List byQzzNo = slittingproductionplanService.getByQzzNoByNoStatus(upQzzno); if (byQzzNo.size() == 0) { msg = "上轴对应的数据不存在!"; } else { @@ -1409,12 +1410,16 @@ public class SlitterServiceImpl implements SlitterService { .map(PdmBiSlittingproductionplan::getContainer_name) .collect(Collectors.joining(",")); data.put("up", collect); + PdmBiSlittingproductionplan dplan = byQzzNo.get(0); + if (!dplan.getStatus().equals("05")) { + msg = "上轴的计划不是入站完成!"; + } } } else { msg = "上轴无子卷信息!"; } if (ObjectUtil.isNotEmpty(downQzzno)) { - List byQzzNo = slittingproductionplanService.getByQzzNoByStatus(downQzzno, "05"); + List byQzzNo = slittingproductionplanService.getByQzzNoByNoStatus(downQzzno); if (byQzzNo.size() == 0) { msg = msg + "下轴对应的数据不存在!"; } else { @@ -1423,6 +1428,10 @@ public class SlitterServiceImpl implements SlitterService { .map(PdmBiSlittingproductionplan::getContainer_name) .collect(Collectors.joining(",")); data.put("down", collect); + PdmBiSlittingproductionplan dplan = byQzzNo.get(0); + if (!dplan.getStatus().equals("05")) { + msg = "下轴的计划不是入站完成!"; + } } } else { msg = msg + "下轴无子卷信息!";