From 55cd804fa18fa7339c3a384104b25929d256842b Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 24 Jun 2024 15:29:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=86=E5=88=87=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E4=BD=8D=E5=8C=BA=E5=88=86=E5=8C=BA=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/auto/AutoSendAirShaftAgvTask.java | 6 +++- .../tasks/slitter/mapper/SlitterMapper.java | 5 ++-- .../tasks/slitter/mapper/SlitterMapper.xml | 1 + .../service/impl/SlitterServiceImpl.java | 11 ++++---- .../tasks/slitter/util/SlitterTaskUtil.java | 28 +++++++++++++++++++ 5 files changed, 43 insertions(+), 8 deletions(-) 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 f847dbaf3..d9ea066f0 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 @@ -15,6 +15,7 @@ import org.nl.b_lms.sch.tasks.slitter.SendAirShaftAgvTask; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; +import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.modules.common.exception.BadRequestException; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; @@ -84,7 +85,10 @@ public class AutoSendAirShaftAgvTask { } // 如果两个气涨轴编码则表示一组满了 // 查找分切对接没任务的空位 - List emptyPoint = slitterMapper.getEmptyCutPointNotTask(area, deviceCut.getSort_seq()); + List emptyPoint = slitterMapper.getEmptyCutPointNotTask(area, + deviceCut.getSort_seq(), + SlitterTaskUtil.getPointLocationInCutDevice( + SlitterTaskUtil.getNumberByResourceCode(demoPlan.getResource_name()))); if (emptyPoint.size() == 0) { log.warn("找不到对应的位置!"); return; 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 7f9e2c266..21dce6d38 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 @@ -37,9 +37,10 @@ public interface SlitterMapper { * 获取分切机下料位没任务的点位 * @param area 区域 * @param sortSeq 设备序号 - * @return + * @param location 区域 1-5:0 6-10:1 + * @return / */ - List getEmptyCutPointNotTask(String area, BigDecimal sortSeq); + List getEmptyCutPointNotTask(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 f2c289916..040815d30 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 @@ -50,6 +50,7 @@ `bst_ivt_cutpointivt` bcp WHERE bcp.point_type = '3' AND bcp.point_status = '1' AND bcp.is_used = '1' AND bcp.product_area = #{area} + AND bcp.point_location = #{location} AND 0 = ( SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1 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 426e320d2..c84631c4d 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 @@ -46,16 +46,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; +import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.getPointLocationInCutDevice; +import static org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil.getNumberByResourceCode; + /** * @author lyd * @description 服务接口 @@ -393,7 +392,9 @@ public class SlitterServiceImpl implements SlitterService { if (timePlans.size() == 0) { // 如果没有下一组的分切计划,就只做下卷任务(判断下单/下双) // 获取分切对接位没任务的空位置 - List emptyPoints = slitterMapper.getEmptyCutPointNotTask(area, device.getSort_seq()); + List emptyPoints = slitterMapper.getEmptyCutPointNotTask(area, + device.getSort_seq(), + getPointLocationInCutDevice(getNumberByResourceCode(demoPlan.getResource_name()))); if (emptyPoints.size() == 0) { log.error("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java index 9747a45ce..adf830794 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.modules.common.exception.BadRequestException; import java.util.List; import java.util.StringJoiner; @@ -150,4 +151,31 @@ public class SlitterTaskUtil { } } + /** + * 获取设备号 + * @param resourceCode / + * @return / + */ + public static int getNumberByResourceCode(String resourceCode) { + if (ObjectUtil.isEmpty(resourceCode)) { + throw new BadRequestException("输入的设备号编码不能为空!"); + } + String trimStr = resourceCode.trim(); + // 提取最后两位作为字符串 + String lastTwoDigitsString = trimStr.substring(trimStr.length() - 2); + // 将整数再转换回字符串以供返回 + return Integer.parseInt(lastTwoDigitsString); + } + + /** + * 获取上下区域 + * @param num / + * @return / + */ + public static String getPointLocationInCutDevice(int num) { + if (num >= 1 && num <= 5) { + return "0"; + } + return "1"; + } }