From 61c3972edb1e1dd02b7bb96adf1bb1b0c5ed9811 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 8 May 2025 15:21:27 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E5=A5=97=E8=BD=B4=E4=BC=98=E5=85=88?= =?UTF-8?q?=E6=89=98=E7=9B=98=E4=B8=8A=E7=9A=84=E7=AE=A1=E8=8A=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IMdPbPapervehicleService.java | 7 +++ .../dao/mapper/MdPbPapervehicleMapper.java | 2 + .../dao/mapper/MdPbPapervehicleMapper.xml | 12 ++++- .../impl/MdPbPapervehicleServiceImpl.java | 5 ++ .../slitter/auto/AutoCallAirShaftTask.java | 47 +++++++++++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java index 99a967e97..017d1ea72 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java @@ -56,4 +56,11 @@ public interface IMdPbPapervehicleService extends IService { List getGxPoints(String pointLocation, List tubes); Integer checkHaveTaskByPoints(List pointCodes); + + /** + * 获取对接位的所有管芯信息 + * @param location + * @return + */ + List getAllTubesByPoint(String location); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java index cb67157ec..695d7ec11 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java @@ -19,4 +19,6 @@ public interface MdPbPapervehicleMapper extends BaseMapper { List getGxPoints(String pointLocation, List tubes); Integer checkHaveTaskByPoints(List pointCodes); + + List getAllTubesByPoint(String location); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml index 005e3bd53..99a8c5987 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml @@ -32,7 +32,7 @@ #{code} AND mp.qty > 0 - AND bs.point_location = '0' + AND bs.point_location = #{pointLocation} GROUP BY bs.point_code, bs.point_type + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java index 72575f9f6..c7ef3784e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java @@ -96,4 +96,9 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl getAllTubesByPoint(String location) { + return mdPbPapervehicleMapper.getAllTubesByPoint(location); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 4fb08f474..56967fb2a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -1,5 +1,6 @@ package org.nl.b_lms.sch.tasks.slitter.auto; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; @@ -90,6 +91,8 @@ public class AutoCallAirShaftTask { private ISysParamService paramService; @Autowired private RedisUtils redisUtils; + @Autowired + private IMdPbPapervehicleService papervehicleService; public final static String PARAM_CODE_PLAN_AREA = "PARAM_CODE_PLAN_AREA"; public final static String IS_ONLY_PULLING = "IS_ONLY_PULLING"; @@ -157,6 +160,43 @@ public class AutoCallAirShaftTask { makePullShaft(empty, specification); return; } + // 过滤相比当前时间大于1小时 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime cutoffTime = LocalDateTime.now().minusHours(1); + List filteredList = planAll.stream() + .filter(p -> { + try { + LocalDateTime startTime = LocalDateTime.parse(p.getStart_time(), formatter); + return startTime.isBefore(cutoffTime); + } catch (Exception e) { + return false; + } + }) + .collect(Collectors.toList()); + List filterCheckPlans = null; + if (filteredList.size() > 0) { + log.info("过滤时间之后的数据:{}", filteredList); + // 获取当前三个位置的所有管芯信息 + List papers = papervehicleService.getAllTubesByPoint(location); + if (CollectionUtil.isNotEmpty(papers)) { + List tubeCodes = papers.stream() + .map(MdPbPapervehicle::getMaterial_code) + .distinct() + .collect(Collectors.toList()); + // 获取所有dto中的分切计划信息 + List parents = filteredList.stream() + .map(SlitterPlanDistinctDto::getParent_container_name) + .distinct() + .collect(Collectors.toList()); + List checkPlans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getParent_container_name, parents) + .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO) + .eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES)); + filterCheckPlans = checkPlans.stream() + .filter(p -> tubeCodes.contains("1".equals(p.getPaper_tube_or_FRP()) ? p.getPaper_tube_material() : p.getFRP_material())) + .collect(Collectors.toList()); + } + } log.info("获取过滤后的分切计划数据:{}", JSON.toJSONString(plans)); // 查看套轴对接位是否满了 // todo: 这里需要注意不要去校验071的任务,不然提前释放货位没意义。 @@ -237,6 +277,10 @@ public class AutoCallAirShaftTask { .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO) .eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES)); } + // 如果过滤出来的需要套轴的信息,则直接获取 + if (CollectionUtil.isNotEmpty(filterCheckPlans)) { + needPlans = filterCheckPlans; + } log.info("通过dto获取的分切计划:{}", needPlans); // 获取其中一条 PdmBiSlittingproductionplan needPlan = needPlans.get(0); @@ -361,6 +405,9 @@ public class AutoCallAirShaftTask { * @return */ public boolean havaEmptyShaft(SlitterPlanDistinctDto planD, BstIvtShafttubeivt empty) { + if (true) { + return true; + } String qzzSize = planD.getQzz_size(); String qzzGeneration = planD.getQzz_generation(); String location = empty.getPoint_location();