From d1183097c44917e45f76e92e6fe35b4e9a297b5d Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Thu, 19 Jun 2025 20:18:54 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E7=A9=BF=E6=8B=94?= =?UTF-8?q?=E8=BD=B4=E5=AE=9A=E6=97=B6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/auto/AutoCallAirShaftTask.java | 143 +++++++----------- 1 file changed, 52 insertions(+), 91 deletions(-) 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 3d48f6c..7cc754e 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 @@ -159,15 +159,13 @@ public class AutoCallAirShaftTask extends Prun { List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2", cutpointivt.getProduct_area(), "0"); if(emptyPoints.size() == 0){ - if(emptyPoints.size() == 0){ - log.warn("气涨轴[{}]排队中,暂时无空闲拔轴机构!", qzzNo); - bcutpointivtService.update(new UpdateWrapper() - .eq("ivt_id",cutpointivt.getIvt_id()) - .set("remark","排队中,暂时无空闲拔轴机构!") - .set("update_time",DateUtil.now())); - //跳过当前子卷任务 - continue; - } + log.warn("气涨轴[{}]排队中,暂时无空闲拔轴机构!", qzzNo); + bcutpointivtService.update(new UpdateWrapper() + .eq("ivt_id",cutpointivt.getIvt_id()) + .set("remark","排队中,暂时无空闲拔轴机构!") + .set("update_time",DateUtil.now())); + //跳过当前子卷任务 + continue; } List collect = list.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList()); JSONObject param = new JSONObject(); @@ -217,7 +215,7 @@ public class AutoCallAirShaftTask extends Prun { .findFirst() .orElse(null); //没有可以接续的套轴计划,直接下发拔轴任务即可 - if (planDto == null) { + if (ObjectUtil.isEmpty(planDto)) { log.warn("当前拔轴任务无可接续的套轴计划:{}", cutpointivt); if(!this.havaEmptyShaft(emptyPoints.get(0),plan,max_qzz_num)) { log.warn("气涨轴[{}]排队中,暂时无空闲气胀轴空位放空轴!", qzzNo); @@ -316,24 +314,22 @@ public class AutoCallAirShaftTask extends Prun { String qzz_generation = planDto.getQzz_generation(); String product_area = ""; if (StrUtil.equals(qzz_generation, "4")){ - product_area = "A"; + product_area = "A1"; }else if (StrUtil.equals(qzz_generation, "5")){ - product_area = "B"; + product_area = "B1"; } //再次查询空的拔轴机构点位,优先查同区的拔轴设备 List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2", product_area, "0"); if(emptyPoints.size() == 0){ - if(emptyPoints.size() == 0){ - log.warn("分切计划{}排队中,暂时无空闲拔轴机构!", planDto.getWorkorder_id()); - slittingproductionplanService.update(new UpdateWrapper() - .eq("workorder_id",planDto.getWorkorder_id()) - .set("remark","排队中,暂时无空闲拔轴机构!") - .set("update_time",DateUtil.now())); - //跳过当前计划 - continue; - } + log.warn("分切计划{}排队中,暂时无空闲拔轴机构!", planDto.getWorkorder_id()); + slittingproductionplanService.update(new UpdateWrapper() + .eq("workorder_id",planDto.getWorkorder_id()) + .set("remark","排队中,暂时无空闲拔轴机构!") + .set("update_time",DateUtil.now())); + //跳过当前计划 + continue; } //判断是否有对应尺寸的气胀轴,无跳过 if(!this.havaEnoughShaft(planDto, emptyPoints.get(0))){ @@ -474,56 +470,43 @@ public class AutoCallAirShaftTask extends Prun { String product_area = empty.getProduct_area(); //获取气胀轴缓存架最大缓存数量 Integer max_num = Integer.valueOf(max_qzz_num.getValue()); - - // 查询拔轴设备旁边缓存架点位是否存在 - List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), product_area); - if (shafttubeivts.size() == 0) { - log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴缓存位"); - return false; - } - // 对应尺寸的气涨轴库 - BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - //判断是否存在残留的脏数据 - String planStr = shafttubeivt.getPlan(); - if(ObjectUtil.isNotEmpty(planStr) && StrUtil.equals(planStr, "1")){ - log.error("气胀轴库" + shafttubeivt.getPoint_code() + "预分配字段plan异常,需要确认并初始化!"); - return false; - } - // 判断气胀轴是否有轴 - JSONArray device_rows = new JSONArray(); - JSONObject device_obj = new JSONObject(); - device_rows.add(device_obj); - device_obj.put("device_code", shafttubeivt.getPoint_code()); - device_obj.put("product_area", product_area); - JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); - if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { - log.error("获取气胀轴库信息失败"); - return false; - } - JSONObject data2 = pointStatus.getJSONArray("data").getJSONObject(0); - //若缓存架数量已经满了 - if (data2.getInteger("qty") >= max_num) { - log.warn("气胀轴库【" + shafttubeivt.getPoint_code() + "】没有气胀轴空位。"); - // 根据尺寸和代数和车间区域,查询气涨轴暂存架是否有空位 - List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCacheEmpty2(qzzSize,qzzGeneration,product_area); - if (qzzCache.size() <= 0) { - log.warn("气胀轴暂存架没空位,无法分配拔轴任务"); + // 根据尺寸和代数和车间区域,查询气涨轴暂存架是否有空位 + List qzzCache = bstIvtShafttubeivtService.getNotTaskShaftCacheEmpty2(qzzSize,qzzGeneration,product_area); + if (qzzCache.size() > 0) { + return true; + }else{ + // 查询拔轴设备旁边缓存架点位是否存在 + List shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize ,empty.getPoint_code(), product_area); + if (shafttubeivts.size() == 0) { + log.error("气胀轴库找不到[" + qzzSize + "]规格的气涨轴缓存位"); + return false; + } + // 对应尺寸的气涨轴库 + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + //判断是否存在残留的脏数据 + String planStr = shafttubeivt.getPlan(); + if(ObjectUtil.isNotEmpty(planStr) && StrUtil.equals(planStr, "1")){ + log.error("气胀轴库" + shafttubeivt.getPoint_code() + "预分配字段plan异常,需要确认并初始化!"); + return false; + } + // 判断气胀轴是否有轴 + JSONArray device_rows = new JSONArray(); + JSONObject device_obj = new JSONObject(); + device_rows.add(device_obj); + device_obj.put("device_code", shafttubeivt.getPoint_code()); + device_obj.put("product_area", product_area); + JSONObject pointStatus = wmsToAcsService.getPointStatus(device_rows); + if (ObjectUtil.isEmpty(pointStatus) || ObjectUtil.isEmpty(pointStatus.getJSONArray("data"))) { + log.error("获取气胀轴库信息失败"); + return false; + } + JSONObject data2 = pointStatus.getJSONArray("data").getJSONObject(0); + //若缓存架数量已经满了 + if (data2.getInteger("qty") >= max_num) { + log.warn("气胀轴库【" + shafttubeivt.getPoint_code() + "】没有气胀轴空位。"); return false; } - // 预扣除暂存架库存 - BstIvtShafttubeivt waitUsedPoint = qzzCache.get(0); - waitUsedPoint.setPlan("1"); - waitUsedPoint.setUpdate_time(DateUtil.now()); - bstIvtShafttubeivtService.updateById(waitUsedPoint); - log.info("暂存架空位被预分配 - {}", waitUsedPoint); - }else{ - // 预扣除缓存架库存 - shafttubeivt.setPlan("1"); - shafttubeivt.setUpdate_time(DateUtil.now()); - bstIvtShafttubeivtService.updateById(shafttubeivt); - log.info("缓存架空位被预分配 - {}", shafttubeivt); } - return true; } @@ -794,35 +777,13 @@ public class AutoCallAirShaftTask extends Prun { if (cuts.size() > 0) { return true; } - // 判断穿拔轴机是否存在正在套轴的,存在也不继续。 - List shafts = bstIvtShafttubeivtService.getOtherCBJData(empty.getPoint_code(), empty.getPoint_location()); - if (shafts.size() > 0) { - BstIvtShafttubeivt shafttubeivt = shafts.get(0); - String containerCode = ObjectUtil.isNotEmpty(shafttubeivt.getContainer_name1()) - ? shafttubeivt.getContainer_name1() : shafttubeivt.getContainer_name2(); - // 获取这个子卷号的分切计划 - PdmBiSlittingproductionplan byContainerName = slittingproductionplanService.getByContainerName(containerCode); - if (ObjectUtil.isNotEmpty(byContainerName)) { - String parent = "1".equals(byContainerName.getOrder_type()) - ? byContainerName.getParent_container_name() - : byContainerName.getRestruct_container_name(); - if (byContainerName.getResource_name().equals(dto.getResource_name())) { - // 如果是同设备同母卷、同组,证明是一根轴上的,故允许套轴 - if (parent.equals(dto.getParent_container_name()) - && byContainerName.getSplit_group().equals(dto.getSplit_group())) { - return true; - } - return false; - } - } - } // 校验是否在拔轴暂存位、分切对接位有相同设备的分切计划信息。 // 有就返回false, 没有就返回true List cuts2 = bcutpointivtService.getReallyQzzSameDevice(dto.getResource_name()); if (cuts2.size() == 0) { return true; } - List stringList = cuts2.stream().map(BstIvtCutpointivt::getPoint_code).collect(Collectors.toList()); + //List stringList = cuts2.stream().map(BstIvtCutpointivt::getPoint_code).collect(Collectors.toList()); } log.info("检查有同母卷不允许套轴:{}", dto); // 有就返回true