From bfb9838df15c903a7bc7187293c94e404260d668 Mon Sep 17 00:00:00 2001 From: psh Date: Mon, 6 Nov 2023 08:42:37 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9C=BA=E6=A2=B0=E6=89=8B=E5=86=99=E5=85=A5?= =?UTF-8?q?=E7=94=A8=E6=96=B0=E7=9A=84=E9=87=8D=E8=BD=BD=E5=86=99=E5=85=A5?= =?UTF-8?q?=202.=E5=A4=9A=E5=8E=8B=E6=9C=BA=E8=AF=B7=E6=B1=82=E5=8F=AB?= =?UTF-8?q?=E6=96=99=E6=8C=89=E5=8E=8B=E6=9C=BA=E9=A1=BA=E5=BA=8F=E6=89=A7?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HfGantryManipulatorDeviceDriver.java | 32 ++++++++++++------- .../callMaterial/YljCallMaterialTask.java | 22 +++++++++++++ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/hongfeng/hf_manipulator/HfGantryManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/hongfeng/hf_manipulator/HfGantryManipulatorDeviceDriver.java index 83c1c77..1fc960b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/hongfeng/hf_manipulator/HfGantryManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/hongfeng/hf_manipulator/HfGantryManipulatorDeviceDriver.java @@ -169,7 +169,9 @@ public class HfGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp hfStationDeviceDriver = (HfStationDeviceDriver) device.getDeviceDriver(); if (hfStationDeviceDriver.getMove() == 1) { logServer.deviceInfo("反馈电气信号", this.getDevice_code(), "机械手取货时,开始反馈电气信号"); - this.writing("to_command", "2"); + Map map = new LinkedHashMap<>(); + map.put("to_command", "2"); + this.writing(map); } else { logServer.deviceInfo("反馈电气信号", this.getDevice_code(), "机械手取货时,取货位不满足有货条件"); } @@ -183,11 +185,13 @@ public class HfGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp Instruction instructionDto = instructionService.findByCodeFromCache(String.valueOf(task)); instructionService.cancel(instructionDto.getInstruction_id()); taskserver.cancel(instructionDto.getTask_id()); - this.writing("to_onset", "0"); - this.writing("to_target", "0"); - this.writing("to_task", "0"); - this.writing("to_barcode", "0"); - this.writing("to_command", "4"); + Map map = new LinkedHashMap<>(); + map.put("to_onset", "0"); + map.put("to_target", "0"); + map.put("to_task", "0"); + map.put("to_barcode", "0"); + map.put("to_command", "4"); + this.writing(map); } //申请放货 @@ -201,7 +205,9 @@ public class HfGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp int move = hfStationDeviceDriver.getMove(); if (move == 0) { logServer.deviceInfo("反馈电气信号", this.getDevice_code(), "机械手放货时,开始反馈电气信号"); - this.writing("to_command", "3"); + Map map = new LinkedHashMap<>(); + map.put("to_command", "3"); + this.writing(map); } else { logServer.deviceInfo("反馈电气信号", this.getDevice_code(), "机械手放货时,放货位不满足无货条件"); } @@ -236,11 +242,13 @@ public class HfGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp // } // } logServer.deviceInfo("反馈电气信号", this.getDevice_code(), "机械手任务完成,开始反馈电气信号"); - this.writing("to_onset", "0"); - this.writing("to_target", "0"); - this.writing("to_task", "0"); - this.writing("to_barcode", "0"); - this.writing("to_command", "0"); + Map map = new LinkedHashMap<>(); + map.put("to_onset", "0"); + map.put("to_target", "0"); + map.put("to_task", "0"); + map.put("to_barcode", "0"); + map.put("to_command", "0"); + this.writing(map); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YljCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YljCallMaterialTask.java index e524c8b..8c080a3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YljCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YljCallMaterialTask.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -41,6 +42,9 @@ public class YljCallMaterialTask extends AbstractAcsTask { private final String THIS_CLASS = YljCallMaterialTask.class.getName(); + private LinkedHashSet set=new LinkedHashSet<>(); + + @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject task, String status) { @@ -230,6 +234,8 @@ public class YljCallMaterialTask extends AbstractAcsTask { String create_mode = whereJson.getString("create_mode"); String is_auto_issue = whereJson.getString("is_auto_issue"); + set.add(point_code2); + //生产工单表【PDM_BD_WorkOrder】 WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); //任务表【SCH_BASE_Task】 @@ -261,6 +267,12 @@ public class YljCallMaterialTask extends AbstractAcsTask { JSONObject workOrderObj = workOrderTab.query("device_code = '" + workDevice + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除"); + //当前请求设备非优先级最高的设备或请求列表大于1非第二优先级生产任务(防止发了请求后面又不叫了) + if(!point_code2.equals(set.toArray()[0])|| + (set.size()>1&&!point_code2.equals(set.toArray()[1]))){ + throw new BadRequestException("当前设备"+point_code2+"非最先生产任务!"); + } + SchTaskDto dto = SchTaskDto.builder() .task_id(IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) @@ -282,6 +294,8 @@ public class YljCallMaterialTask extends AbstractAcsTask { JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); + set.remove(point_code2); + //创建好立即下发 this.immediateNotifyAcs(); return String.valueOf(dto.getTask_id()); @@ -342,4 +356,12 @@ public class YljCallMaterialTask extends AbstractAcsTask { throw new BadRequestException("任务已删除或者已完成!"); } } + + public LinkedHashSet getSet() { + return set; + } + + public void setSet(LinkedHashSet set) { + this.set = set; + } }