From 49c0f63ac42e7d71500e68824e28305e4f21e0dd Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 25 Dec 2025 10:56:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=A1=E5=88=92=E5=8D=95=E5=8F=8C?= =?UTF-8?q?=E8=BD=B4=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../slitter/SendNBJExceptionPointTask.java | 2 + .../tasks/slitter/SlitterDownTrussTask.java | 2 + .../tasks/slitter/TrussSendAirShaftTask.java | 2 + .../slitter/auto/AutoCallAirShaftTask.java | 22 ++++++++- .../service/impl/SlitterServiceImpl.java | 5 ++ .../tasks/slitter/util/SlitterTaskUtil.java | 46 +++++++++++++++++++ 6 files changed, 78 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java index 707bcfe81..f0ef249d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendNBJExceptionPointTask.java @@ -54,6 +54,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); String agv_system_type = "2"; for (SchBaseTask task : taskList) { + JSONObject object = JSONObject.parseObject(task.getRequest_param()); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(task.getTask_id()) .task_code(task.getTask_code()) @@ -66,6 +67,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask { .agv_system_type(agv_system_type) .priority(task.getPriority()) .remark(task.getRemark()) + .interaction_json(object) .product_area(task.getProduct_area()) .build(); resultList.add(dto); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 35b1b100a..975641435 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -250,6 +250,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask { } } task.setUpdate_time(DateUtil.now()); + task.setUpdate_optid(SecurityUtils.getCurrentUserId()); + task.setUpdate_optname(SecurityUtils.getCurrentUsername()); taskService.updateById(task); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java index 9b6c48569..09db27da3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java @@ -60,6 +60,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); String agv_system_type = "2"; for (SchBaseTask task : taskList) { + JSONObject object = JSONObject.parseObject(task.getRequest_param()); AcsTaskDto dto = AcsTaskDto.builder() .ext_task_id(task.getTask_id()) .task_code(task.getTask_code()) @@ -72,6 +73,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { .agv_system_type(agv_system_type) .priority(task.getPriority()) .remark(task.getRemark()) + .interaction_json(object) .product_area(task.getProduct_area()) .build(); resultList.add(dto); 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 0d73c702e..6aae55d93 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 @@ -380,9 +380,19 @@ public class AutoCallAirShaftTask extends Prun { skipTheSameTubePlans(needPlans); return; } + SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); + if (!SlitterTaskUtil.singleShaftCheck(param, oldPlans.size())) { + log.warn("气涨轴[{}]对应的分切计划存在异常!", oldQzzNo); + bcutpointivtService.update(new UpdateWrapper() + .eq("ivt_id", startPoint.getIvt_id()) + .set("is_used", "0") + .set("remark", "气胀轴" + oldQzzNo + "对应的分切计划存在异常,无效点位自动禁用") + .set("update_time", DateUtil.now())); + stepErrorInfo.add("气胀轴" + oldQzzNo + "对应的分切计划存在异常,无效点位[" + startPoint.getPoint_code() + "]自动禁用。"); + return; + } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize, "0"); - SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); // 套管数量 param.put("casingCount", needPlans.size()); // 拔管数量 @@ -1076,6 +1086,16 @@ public class AutoCallAirShaftTask extends Prun { param.put("casingCount", 0); // 拔管数量 param.put("pullCount", list.size()); + if (!SlitterTaskUtil.singleShaftCheck(param, list.size())) { + log.warn("气涨轴[{}]对应的分切计划存在异常!", qzzNo); + bcutpointivtService.update(new UpdateWrapper() + .eq("ivt_id", cutpointivt.getIvt_id()) + .set("is_used", "0") + .set("remark", "气胀轴" + qzzNo + "对应的分切计划存在异常,无效点位自动禁用") + .set("update_time", DateUtil.now())); + stepErrorInfo.add("气胀轴" + qzzNo + "对应的分切计划存在异常,无效点位[" + cutpointivt.getPoint_code() + "]自动禁用。"); + return; + } // hint: 当前分切计划的气涨轴尺寸 param.put("qzz_size", plan.getQzz_size()); param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>穿拔轴位")); 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 76c12bd84..0f75eca14 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 @@ -425,6 +425,7 @@ public class SlitterServiceImpl implements SlitterService { exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); exParam.put("acs_task_type", "6"); exParam.put("containers", collect); + exParam.put("qzz_size", startPoint.getQzz_size()); sendNBJExceptionPointTask.createTask(exParam); res.put("status", HttpStatus.HTTP_OK); res.put("message", "创建送至异常处理位!"); @@ -445,6 +446,7 @@ public class SlitterServiceImpl implements SlitterService { exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务")); exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); exParam.put("acs_task_type", "6"); + exParam.put("qzz_size", startPoint.getQzz_size()); exParam.put("containers", collect); sendNBJExceptionPointTask.createTask(exParam); res.put("status", HttpStatus.HTTP_OK); @@ -464,6 +466,7 @@ public class SlitterServiceImpl implements SlitterService { exParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); exParam.put("acs_task_type", "6"); exParam.put("containers", collect); + exParam.put("qzz_size", startPoint.getQzz_size()); sendNBJExceptionPointTask.createTask(exParam); res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); @@ -528,6 +531,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); taskParam.put("task_type", "010814"); taskParam.put("containers", collect); + taskParam.put("qzz_size", demoPlan.getQzz_size()); taskParam.put("task_status", TaskStatusEnum.SURE_START.getCode()); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); taskParam.put("immediateNotifyAcs", "0"); @@ -544,6 +548,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : ""); taskParam.put("task_type", "010814"); taskParam.put("containers", collect); + taskParam.put("qzz_size", demoPlan.getQzz_size()); taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); taskParam.put("immediateNotifyAcs", "1"); trussSendAirShaftTask.createTask(taskParam); 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 fba8d6d24..b637c30a4 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 @@ -139,6 +139,7 @@ public class SlitterTaskUtil { System.out.println(isNumeric("3000")); System.out.println(isNumeric("3000.32")); System.out.println(isNumeric("-3000.32")); + boolean b = checkComplete("1", "2", null); } /** @@ -658,4 +659,49 @@ public class SlitterTaskUtil { return s.matches("-?\\d+(\\.\\d+)?"); } + /** + * 单根轴的数据判断:根据指定的尺寸类型,校验左侧或右侧电流数据是否完整。 + * 当 size 为 1 时,只需一侧数据完整即返回 true; + * 当 size 为 2 时,要求左右两侧数据均完整才返回 true。 + * + * @param param 包含相关字段的 JSON 对象,必须包含以下键: + * "currentLeft", "currentLeftSize", "currentLeftSpec", + * "currentRight", "currentRightSize", "currentRightSpec" + * @param size 校验模式大小,决定校验逻辑: + * - 1:表示任一轴(左或右)数据完整即可(逻辑或) + * - 2:表示左右两轴数据都必须完整(逻辑与) + * @return 符合校验规则时返回 true,否则返回 false + */ + public static boolean singleShaftCheck(JSONObject param, int size) { + String currentLeft = param.getString("currentLeft"); + String currentLeftSize = param.getString("currentLeftSize"); + String currentLeftSpec = param.getString("currentLeftSpec"); + String currentRight = param.getString("currentRight"); + String currentRightSize = param.getString("currentRightSize"); + String currentRightSpec = param.getString("currentRightSpec"); + + // 根据 size 值执行不同的校验策略:1 表示任一轴有效即可,2 表示双轴均需有效 + switch (size) { + case 1: + return checkComplete(currentLeft, currentLeftSpec, currentLeftSize) + || checkComplete(currentRight, currentRightSpec, currentRightSize); + case 2: + return checkComplete(currentLeft, currentLeftSpec, currentLeftSize) + && checkComplete(currentRight, currentRightSpec, currentRightSize); + } + return false; + } + + + public static boolean checkComplete(String... checks) { + if (checks == null) { + return false; + } + for (String check : checks) { + if (ObjectUtil.isEmpty(check)) { + return false; + } + } + return true; + } }