From 565f48a477007a428f254c9af6f0d6129affcd5b Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 13 Feb 2023 10:20:41 +0800 Subject: [PATCH 1/6] =?UTF-8?q?add:es=E7=BA=BF=E4=B8=8A=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/config/ESConfig.java | 18 ++++++++++++++++++ .../nl/modules/logging/aspect/LogAspect.java | 10 ++-------- .../logging/service/dto/LogRepositoryDTO.java | 2 +- .../main/resources/config/application-dev.yml | 2 ++ .../main/resources/config/application-prod.yml | 2 ++ .../src/main/resources/logback-spring.xml | 3 ++- 6 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/config/ESConfig.java diff --git a/lms/nladmin-system/src/main/java/org/nl/config/ESConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/ESConfig.java new file mode 100644 index 000000000..1222496c6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/config/ESConfig.java @@ -0,0 +1,18 @@ +package org.nl.config; + +/* + * @author ZZQ + * @Date 2023/2/13 9:58 上午 + */ + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Data +public class ESConfig { + + @Value(("${es.index}")) + private String index; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index bbc2e077b..820221159 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -123,11 +123,8 @@ public class LogAspect { StackTraceElement[] stackTrace = ex.getStackTrace(); if (stackTrace!=null && stackTrace.length>0){ for (StackTraceElement stack : stackTrace) { - x++; - errorStack.append(stack.toString().replaceAll("<",">")).append("
"); - if (x>10){ - break; - } + x++;errorStack.append(stack.toString().replaceAll("<",">")).append("
"); + if (x>10){ break; } } } log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url,errorMsg,params, errorStack.append("】").toString()); @@ -179,7 +176,4 @@ public class LogAspect { return ""; } } - - - } diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogRepositoryDTO.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogRepositoryDTO.java index 63317ba91..5f0ba2659 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogRepositoryDTO.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogRepositoryDTO.java @@ -8,7 +8,7 @@ import org.springframework.data.elasticsearch.annotations.Document; * @author ZZQ * @Date 2023/2/8 4:06 下午 */ -@Document(indexName = "lms_log", type = "lms_log") +@Document(indexName = "#{@ESConfig.index}", type = "lms_log") @Data public class LogRepositoryDTO { diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml index d267e00d8..263ccda44 100644 --- a/lms/nladmin-system/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml @@ -184,3 +184,5 @@ sa-token: loki: url: http://localhost:3100/loki/api/v1 systemName: lms +es: + index: lms_log diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index 6bb7eed6e..5d6d7fc79 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -186,3 +186,5 @@ sa-token: loki: url: http://localhost:3100/loki/api/v1 systemName: lms +es: + index: lms_log_prod diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index c9c78c213..9bdd5c291 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -15,6 +15,7 @@ https://juejin.cn/post/6844903775631572999 value="%black(%contextName-) %X{traceId} %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/> + @@ -50,7 +51,7 @@ https://juejin.cn/post/6844903775631572999 http://10.1.3.90:9200/_bulk - lms_log + ${esIndex} lms_log es-logger es-error-logger From e59cd7fffdab0755ff174540fc68076c78bc6d2c Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Mon, 13 Feb 2023 13:12:59 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/wms/pdm/wql/pdm.xls | Bin 249856 -> 249856 bytes .../wms/sch/manage/AutoQueryDeviceStatus.java | 28 ++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index 88b2e50dedc5cb55dd3a03c09cad3f324f741156..f40b984fc0cb3814eed5d61e19946013e2618859 100644 GIT binary patch delta 15861 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 h#=inM&ia|_!2*Mo~^7A|RlG?XY*nAgtKIjs>Ni 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 ~MGL`VPxdisa? z`(ZiN=^{LRe0{>Q!+pYh{385A2cQ0_)ti8!VUeR1c3}Y@jw2tp47Ck~=8-xd*a0=C zNffyQc14?(s-WpT$o!&(L6e&ulYr-tUoTB=am=>0`f&jnH3=?z_+sCKe5-p_y^Fv{ zvvuSvb#WUFna6b*-}r~vT#ZK2xd>VmS;j&_Vmh1qP(0FlfwP*Ab=qc|7&>Fv{LINP zUUvuo-*qy$JW~2@e4|Wp@C&V;;&AZxWQPZZW#iQ$Q`CkKwf$~>ih6$t)Z4^qFFv>N zeQ5Ks@2|A+t+yHP^`Q9jpDhC)+64Y;gTHqL*4x~(d7AdXrjfeqX)>HF@#zH)wIsV+ zf*#U#mHU9*1%+?;7Ygq#lP};Gow^>l(8kr?Bh&`Jm^7e6P;tNA5a*n0Xx>8jY9H^} zK-X?RAKE}L^524;`}wE_8ZZ7W=yiafFT@?>J=UhW2{#Y&&TCV<3pWq&p~5oka5)_N za`oC&OAh3>!JM=F*3IBhey?jpQo@H@xaxibPbK^=1`7C9ubAe?GM0z#JhVRX>e`Qr zWO-y;s0sc0X8*&#O#8HM`rXH}yp`@s^raGh;K`gpgMS;ZPEBSdg!cfrt1D1iv(;KzfEOt!rf|-<9L_TZS8Zl=DtRk>3CJM#Aa}UTvIS!8axR zsF)9hZRNa+aaSd;AY6KXVZV_-&biDJ5|8j++{+lD09%6JiaWx4b6qA0uc;VscRY&X z!NTyP{7m8_TtCXYWAoQhekBT*9^*SvpF+hkQTe{u8l8^wKk&rW__~Vs{qk^LX-+gIptRe=5_0R4Dsor4!5xq4-KLA6s;Gh_@rE|LQ#2|*K%aP;8VxDh9_X&tno$j*BDj Mx5liq{E|lh2N5O!g#Z8m diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java index d441c92a7..09972e7e5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoQueryDeviceStatus.java @@ -1,6 +1,7 @@ package org.nl.wms.sch.manage; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -13,19 +14,36 @@ import org.springframework.stereotype.Component; @Slf4j @Component @RequiredArgsConstructor -public class AutoQueryDeviceStatus{ +public class AutoQueryDeviceStatus { private final WmsToAcsService wmsToAcsService; + public void run() { //通过ACS接口获取温度 - JSONArray device_rows = WQL.getWO("PDA_02").addParam("flag","15").process().getResultJSONArray(0); + JSONArray device_rows = WQL.getWO("PDA_02").addParam("flag", "15").process().getResultJSONArray(0); JSONObject jo = wmsToAcsService.getPointStatus(device_rows); - WQLObject ivtTab=WQLObject.getWQLObject("st_ivt_hotpointivt"); + WQLObject ivtTab = WQLObject.getWQLObject("st_ivt_hotpointivt"); JSONArray de_rows = jo.getJSONArray("data"); for (int i = 0; i < de_rows.size(); i++) { JSONObject row = de_rows.getJSONObject(i); String device_code = row.getString("device_code"); - JSONObject point_jo = ivtTab.query("point_code = '"+device_code+"'").uniqueResult(0); - point_jo.put("temperature",row.getString("temperature")); + JSONObject point_jo = ivtTab.query("point_code = '" + device_code + "'").uniqueResult(0); + point_jo.put("temperature", row.getString("temperature")); + //获取倒计时,分,秒 + String countdown_house = row.getString("countdown_house"); + String countdown_min = row.getString("countdown_min"); + String countdown_sec = row.getString("countdown_sec"); + + if (StrUtil.isEmpty(countdown_house)) { + countdown_house = "0"; + } + if (StrUtil.isEmpty(countdown_min)) { + countdown_min = "0"; + } + if (StrUtil.isEmpty(countdown_sec)) { + countdown_sec = "0"; + } + String last_time = countdown_house + "小时" + countdown_min + "分钟"; + point_jo.put("last_time", last_time); ivtTab.update(point_jo); } } From 9a2250c314bf6fadce4501eeb7135b2f1965f7dd Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Mon, 13 Feb 2023 17:51:29 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/device_driver/DriverTypeEnum.java | 4 +- .../service/impl/DeviceServiceImpl.java | 46 +- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 38 ++ .../HongXiangConveyorDeviceDriver.java | 3 + .../ItemProtocol.java | 128 +++++ .../SiemensOneFloorAGVConveyorDefination.java | 64 +++ ...iemensOneFloorAGVConveyorDeviceDriver.java | 341 +++++++++++ .../slit_two_manipulator/ItemProtocol.java | 7 + .../SlitTwoManipulatorDeviceDriver.java | 136 ++--- .../acs/ext/wms/rest/WmsToAcsController.java | 2 +- .../java/org/nl/acs/opc/DeviceAppService.java | 5 + .../org/nl/acs/opc/DeviceAppServiceImpl.java | 45 ++ .../org/nl/acs/opc/DeviceManageService.java | 3 + .../nl/acs/opc/DeviceManageServiceImpl.java | 65 +++ .../nl/acs/opc/DeviceOpcProtocolRunable.java | 6 +- .../src/views/acs/device/config.vue | 4 +- .../driver/siemens_onefloor_agv_conveyor.vue | 530 ++++++++++++++++++ 17 files changed, 1293 insertions(+), 134 deletions(-) create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/ItemProtocol.java create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDefination.java create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDeviceDriver.java create mode 100644 acs/nladmin-ui/src/views/acs/device/driver/siemens_onefloor_agv_conveyor.vue diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index d4f54e4a7..edf03089c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -43,7 +43,9 @@ public enum DriverTypeEnum { SIEMENS_CONVEYOR_LABELING(16, "siemens_conveyor_labeling", "西门子-输送机驱动-贴标", "conveyor"), - SIEMENS_CONVEYOR_CKK(17, "siemens_conveyor_ckk", "西门子-输送机驱动-出库口", "conveyor"); + SIEMENS_CONVEYOR_CKK(17, "siemens_conveyor_ckk", "西门子-输送机驱动-出库口", "conveyor"), + + SIEMENS_ONEFLOOR_AGV_CONVEYOR(17, "siemens_onefloor_agv_conveyor", "西门子-1LAGV-输送机驱动", "conveyor"); //驱动索引 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index a50e0ed89..ef7547015 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -20,6 +20,7 @@ import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.*; import org.nl.acs.device.service.dto.*; +import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.DeviceDriverDefination; import org.nl.acs.device_driver.ScannerDeviceDriver; import org.nl.acs.device_driver.basedriver.oven_manipulator.OvenGantryManipulatorDeviceDriver; @@ -32,9 +33,7 @@ import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspect import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_scanner.StandardScannerDeviceDriver; import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; +import org.nl.acs.opc.*; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.RedisUtils; @@ -76,6 +75,7 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial private final DeviceDriverDefinationAppService deviceDriverDefinationAppService; private final DeviceAppService deviceAppService; private final ParamService paramService; + private final DeviceManageService deviceManageService; List storageCells = new ArrayList<>(); private Map storage_address = new HashMap(); @@ -629,27 +629,6 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial } } - -// for(int i=0; i" + door); + } if (mode != last_mode) { //this.setRequireSucess(false); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/ItemProtocol.java new file mode 100644 index 000000000..acef45db6 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/ItemProtocol.java @@ -0,0 +1,128 @@ +package org.nl.acs.device_driver.basedriver.siemens_onefloor_agv_conveyor; + +import cn.hutool.core.util.StrUtil; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Data +public class ItemProtocol { + + //心跳 + public static String item_heartbeat = "heartbeat"; + //工作模式 + public static String item_mode = "mode"; + //光电信号 + public static String item_move = "move"; + //托盘方向 + public static String item_carrier_direction = "carrier_direction"; + //报警 + public static String item_error = "error"; + //任务号 + public static String item_task = "task"; + + //下发命令 + public static String item_to_command = "to_command"; + //下发目标站 + public static String item_to_target = "to_target"; + //下发托盘类型 + public static String item_to_container_type = "to_container_type"; + //下发任务号 + public static String item_to_task = "to_task"; + //困扎次数 + public static String item_to_strap_times = "to_strap_times"; + //木箱长度 + public static String item_to_length = "to_length"; + //木箱宽度 + public static String item_to_weight = "to_weight"; + //木箱高度 + public static String item_to_height = "to_height"; + + + private SiemensOneFloorAGVConveyorDeviceDriver driver; + + public ItemProtocol(SiemensOneFloorAGVConveyorDeviceDriver driver) { + this.driver = driver; + } + + public int getHeartbeat() { + return this.getOpcIntegerValue(item_heartbeat); + } + + public int getMode() { + return this.getOpcIntegerValue(item_mode); + } + + public int getMove() { + return this.getOpcIntegerValue(item_move); + } + + public int getCarrier_direction() { + return this.getOpcIntegerValue(item_carrier_direction); + } + + public int getError() { + return this.getOpcIntegerValue(item_error); + } + + public int getTask() { + return this.getOpcIntegerValue(item_task); + } + + public int getTo_command() { + return this.getOpcIntegerValue(item_to_command); + } + + + Boolean isonline; + + public int getOpcIntegerValue(String protocol) { + Integer value = this.driver.getIntegeregerValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + + public String getOpcStringValue(String protocol) { + String value = this.driver.getStringValue(protocol); + if (StrUtil.isEmpty(value)) { + + } else { + return value; + } + return "0"; + } + + public static List getReadableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_mode, "工作模式", "DB101.B152")); + list.add(new ItemDto(item_move, "光电信号", "DB101.B153")); + list.add(new ItemDto(item_carrier_direction, "托盘方向", "DB101.B154")); + list.add(new ItemDto(item_error, "报警信号", "DB101.B156")); + list.add(new ItemDto(item_task, "任务号", "DB101.D160")); + return list; + } + + public static List getWriteableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_to_command, "下发命令", "DB102.W152")); + return list; + } + + @Override + public String toString() { + return ""; + } + +} + diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDefination.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDefination.java new file mode 100644 index 000000000..4969f9166 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDefination.java @@ -0,0 +1,64 @@ +package org.nl.acs.device_driver.basedriver.siemens_onefloor_agv_conveyor; + +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceType; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; + +/** + * 西门子-输送机驱动 + * + */ +@Service +public class SiemensOneFloorAGVConveyorDefination implements OpcDeviceDriverDefination { + @Override + public String getDriverCode() { + return "siemens_onefloor_agv_conveyor"; + } + + @Override + public String getDriverName() { + return "西门子-1LAGV-输送机驱动"; + } + + @Override + public String getDriverDescription() { + return "西门子-1LAGV-输送机驱动"; + } + + @Override + public DeviceDriver getDriverInstance(Device device) { + return (new SiemensOneFloorAGVConveyorDeviceDriver()).setDevice(device).setDriverDefination(this); + + } + + @Override + public Class getDeviceDriverType() { + return SiemensOneFloorAGVConveyorDeviceDriver.class; + } + + @Override + public List getFitDeviceTypes() { + List types = new LinkedList(); + types.add(DeviceType.station); + return types; + } + + @Override + public List getReadableItemDtos() { + return ItemProtocol.getReadableItemDtos(); + } + + + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } + +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDeviceDriver.java new file mode 100644 index 000000000..72db963e9 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_onefloor_agv_conveyor/SiemensOneFloorAGVConveyorDeviceDriver.java @@ -0,0 +1,341 @@ +package org.nl.acs.device_driver.basedriver.siemens_onefloor_agv_conveyor; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.nl.acs.AcsConfig; +import org.nl.acs.agv.server.NDCAgvService; +import org.nl.acs.device.service.DeviceService; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; +import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.data.ApplyLabelingAndBindingRequest; +import org.nl.acs.ext.wms.data.ApplyLabelingAndBindingResponse; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.instruction.service.dto.Instruction; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.monitor.DeviceStageMonitor; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.route.service.dto.RouteLineDto; +import org.nl.acs.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; +import org.nl.modules.system.service.ParamService; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +import org.openscada.opc.lib.da.Server; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.*; + +/** + * 西门子-1LAGV-输送机驱动 + */ +@Slf4j +@Data +@RequiredArgsConstructor +public class SiemensOneFloorAGVConveyorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + @Autowired + InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class); + @Autowired + DeviceService deviceservice = SpringContextHolder.getBean(DeviceService.class); + @Autowired + RouteLineService routelineserver = SpringContextHolder.getBean(RouteLineService.class); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); + @Autowired + DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class); + @Autowired + RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class); + @Autowired + ParamService paramService = SpringContextHolder.getBean(ParamService.class); + @Autowired + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + @Autowired + NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); + //当前指令 + Instruction inst = null; + + //工作模式 + int mode = 0; + int last_mode = 0; + //光电信号 + int move = 0; + int last_move = 0; + //托盘方向 + int carrier_direction = 0; + int last_carrier_direction = 0; + //报警信号 + int error = 0; + int last_error = 0; + //任务号 + int task = 0; + int last_task = 0; + int agvphase = 0; + String task_code = null; + int to_command = 0; + + int phase = 0; + int index = 0; + Boolean isonline = true; + int hasGoods = 0; + String message = null; + Boolean iserror = false; + + Integer heartbeat_tag; + private Date instruction_require_time = new Date(); + private Date require_apply_labeling_time = new Date(); + private Date require_apply_strangulation_time = new Date(); + private Date require_empty_in_time = new Date(); + private Date require_empty_out_time = new Date(); + + private int instruction_require_time_out = 3000; + //行架机械手申请任务成功标识 + boolean requireSucess = false; + boolean requireApplyLabelingSuccess = false; + boolean requireApplyLaStrangulationSuccess = false; + boolean requireEmptyInSuccess = false; + boolean requireEmptyOutSuccess = false; + boolean requiresShipDeviceUpdate = true; + private int instruction_finished_time_out; + + int branchProtocol = 0; + String inst_message; + String last_inst_message; + + //当前指令 + + //暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域 + int flag; + + String device_code; + + String vehicle_code; + String last_vehicle_code; + + @Override + public Device getDevice() { + return this.device; + } + + + @Override + public void execute() { + try { + device_code = this.getDeviceCode(); + mode = this.itemProtocol.getMode(); + move = this.itemProtocol.getMove(); + carrier_direction = this.itemProtocol.getCarrier_direction(); + error = this.itemProtocol.getError(); + task = this.itemProtocol.getTask(); + to_command = this.itemProtocol.getTo_command(); + + } catch (Exception var17) { + inst_message = var17.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage()); + } + + if (mode == 0) { + this.setIsonline(false); + message = "未联机"; + + } else { + this.setIsonline(true); + this.setIserror(false); + if (error != 0) { + this.setIserror(true); + message = "有报警"; + } + + } + last_mode = mode; + last_move = move; + last_carrier_direction = carrier_direction; + last_error = error; + last_task = task; + } + + + + public void clearWrite() { + + List list = new ArrayList(); + Map map = new HashMap(); + map.put("code", "to_target"); + map.put("value", "0"); + list.add(map); + Map map2 = new HashMap(); + map2.put("code", "to_task"); + map2.put("value", "0"); + list.add(map2); + Map map3 = new HashMap(); + map3.put("code", "to_command"); + map3.put("value", "0"); + list.add(map3); + Map map4 = new HashMap(); + map4.put("code", "to_strap_times"); + map4.put("value", "0"); + list.add(map4); + Map map5 = new HashMap(); + map5.put("code", "to_length"); + map5.put("value", "0"); + list.add(map5); + Map map6 = new HashMap(); + map6.put("code", "to_weight"); + map6.put("value", "0"); + list.add(map6); + Map map7 = new HashMap(); + map7.put("code", "to_height"); + map7.put("value", "0"); + list.add(map7); + this.writing(list); + message = null; + vehicle_code = null; + } + + public boolean exe_business() { + return true; + } + + public synchronized boolean finish_instruction() throws Exception { + instructionService.finish(inst); +// requireSucess = false; + return true; + } + + + protected void thingToNothing() throws Exception { + requireSucess = false; + } + + + public void writing(String param, String value) { + + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + param; + Map itemMap = new HashMap(); + + itemMap.put(to_param, Integer.parseInt(value)); + this.control(itemMap); + logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value); + } + + public void executing(Server server, Map itemMap) { + this.control(itemMap); + } + + public void writing(int command) { + + Map itemMap = new HashMap(); + this.control(itemMap); + + } + + @Override + public JSONObject getDeviceStatusName() { + JSONObject jo = new JSONObject(); + String mode = ""; + String move = ""; + String carrier_direction = ""; + if (this.getMode() == 0) { + mode = "脱机"; + } else if (this.getMode() == 1) { + mode = "单机"; + } else if (this.getMode() == 2) { + mode = "待机"; + } else if (this.getMode() == 3) { + mode = "运行中"; + } else if (this.getMode() == 4) { + mode = "申请捆扎中"; + } else if (this.getMode() == 5) { + mode = "申请贴标中"; + } else if (this.getMode() == 6) { + mode = "申请空盘入库中"; + } else if (this.getMode() == 7) { + mode = "申请空盘出库中"; + } else if (this.getMode() == 8) { + mode = "申请AGV任务中"; + } + + if (this.getMove() == 0) { + move = "无货"; + jo.put("hasGoods", false); + } else if (this.getMove() == 1) { + move = "有货"; + jo.put("hasGoods", true); + } else if (this.getMove() == 2) { + move = "有托盘有货"; + jo.put("hasGoods", true); + } + + if (this.carrier_direction == 1) { + carrier_direction = "正转"; + } else if (this.carrier_direction == 2) { + carrier_direction = "反转"; + } + String requireSucess = "0"; + if (this.requireSucess) { + requireSucess = "1"; + } + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("mode", mode); + jo.put("move", move); + jo.put("carrier_direction", carrier_direction); + jo.put("task", task); + jo.put("last_task", last_task); + jo.put("task_code", task_code); + jo.put("inst_message", this.inst_message); + jo.put("last_inst_message", this.last_inst_message); + jo.put("isOnline", this.getIsonline()); + jo.put("error", this.getError()); + jo.put("isError", this.getIserror()); + jo.put("message", this.getMessage()); + jo.put("is_click", true); + jo.put("requireSucess", requireSucess); + jo.put("driver_type", "siemens_conveyor"); + return jo; + } + + @Override + public void setDeviceStatus(JSONObject data) { + String requestSucess = data.getString("requireSucess"); + if (StrUtil.equals(requestSucess, "0")) { + this.requireSucess = false; + } else if (StrUtil.equals(requestSucess, "1")) { + this.requireSucess = true; + } + } + + public void writing(List list) { + + Map itemMap = new HashMap(); + for (int i = 0; i < list.size(); i++) { + Object ob = list.get(i); + JSONObject json = (JSONObject) JSONObject.toJSON(ob); + if (!StrUtil.isEmpty(json.getString("value"))) { + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + json.getString("code"); + itemMap.put(to_param, json.getString("value")); + } + } + logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap); + this.control(itemMap); + + } + +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/ItemProtocol.java index 2ca2c067a..f566a162d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/ItemProtocol.java @@ -112,6 +112,13 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_task2); } + public int getTo_command1() { + return this.getOpcIntegerValue(item_to_command1); + } + + public int getTo_command2() { + return this.getOpcIntegerValue(item_to_command2); + } //是否有货 public int hasGoods(int move) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 2d5c6014c..810ed1f88 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -91,7 +91,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl int last_task1 = 0; int task2 = 0; int last_task2 = 0; - + int to_command1 = 0; + int to_command2 = 0; Boolean isonline = true; //前工位申请任务请求标记 @@ -155,6 +156,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl type = this.itemProtocol.getType(); task1 = this.itemProtocol.getTask1(); task2 = this.itemProtocol.getTask2(); + to_command1 = this.itemProtocol.getTo_command1(); + to_command2 = this.itemProtocol.getTo_command2(); if (mode != last_mode) { if (mode == 2) { @@ -243,19 +246,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl inst2.setInstruction_status("1"); inst2.setExecute_device_code(this.device_code); instructionService.update(inst2); -// TaskDto taskDto = taskserver.findByCodeFromCache(inst2.getTask_code()); -// if (!ObjectUtil.isEmpty(taskDto)) { -// if (StrUtil.isNotEmpty(taskDto.getExt_task_id())) { -// JSONArray array = new JSONArray(); -// JSONObject map = new JSONObject(); -// map.put("task_id", taskDto.getExt_task_id()); -// map.put("task_status", "1"); -// array.add(map); -// acsToWmsService.feedbackTaskStatusToWms(array); -// } -// } - ; - // this.setNow_steps_type2(1); } } } @@ -270,18 +260,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl inst2.setInstruction_status("1"); inst2.setExecute_device_code(this.device_code); instructionService.update(inst2); -// TaskDto taskDto = taskserver.findByCodeFromCache(inst2.getTask_code()); -// if (!ObjectUtil.isEmpty(taskDto)) { -// if (StrUtil.isNotEmpty(taskDto.getExt_task_id())) { -// JSONArray array = new JSONArray(); -// JSONObject map = new JSONObject(); -// map.put("task_id", taskDto.getExt_task_id()); -// map.put("task_status", "1"); -// array.add(map); -// acsToWmsService.feedbackTaskStatusToWms(array); -// } -// } - ; } } } @@ -302,7 +280,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl int move = siemensConveyorDeviceDriver.getMove(); int mode = siemensConveyorDeviceDriver.getMode(); if (mode == 2 && move == 1) { - this.writing("to_command2", "2"); + if(to_command2 != 2){ + this.writing("to_command2", "2"); + } if (type == 2) { this.setNow_steps_type2(3); } else if (type == 3) { @@ -340,7 +320,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //单任务/或双任务 后工位收到取货完成信号并反馈 if (mode == 3 && action2 == 2 && move2 == 1 && task2 > 0) { - this.writing("to_command2", "3"); + if(to_command2 != 3){ + this.writing("to_command2", "3"); + } if (type == 2) { this.setNow_steps_type2(4); } @@ -367,7 +349,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //单任务/双任务 前工位取货时判断动作信号并反馈 if (mode == 3 && action1 == 1 && move1 == 0 && task1 > 0) { - this.writing("to_command1", "2"); + if(to_command1 != 2){ + this.writing("to_command1", "2"); + } if (type == 1) { this.setNow_steps_type1(3); } else if (type == 3) { @@ -393,7 +377,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //单任务/双任务 前工位取货完成并反馈 if (mode == 3 && action1 == 2 && move1 == 1 && task1 > 0) { - this.writing("to_command1", "3"); + if(to_command1 != 3){ + this.writing("to_command1", "3"); + } if (type == 1) { this.setNow_steps_type1(4); } @@ -421,7 +407,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //单任务/双任务 后工位放货时判断信号并反馈 if (mode == 3 && action2 == 3 && move2 == 1 && task2 > 0) { - this.writing("to_command2", "4"); + if(to_command2 != 4){ + this.writing("to_command2", "4"); + } if (type == 2) { this.setNow_steps_type2(5); } else if (type == 3) { @@ -452,19 +440,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl if (inst2 != null) { if (StrUtil.equals(inst2.getInstruction_status(), "1")) { finish_instruction(inst2); - TaskDto taskDto = taskserver.findByCodeFromCache(inst2.getTask_code()); - if (!ObjectUtil.isEmpty(taskDto)) { - if (StrUtil.isNotEmpty(taskDto.getExt_task_id())) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("task_id", taskDto.getExt_task_id()); - map.put("task_status", "2"); - array.add(map); - acsToWmsService.feedbackTaskStatusToWms(array); - } + if(to_command2 != 5){ + this.writing("to_command2", "5"); } - ; - this.writing("to_command2", "5"); this.setNow_steps_type2(6); this.setNow_steps_type2(0); } @@ -492,7 +470,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //双任务 后工位反馈任务完成 并反馈 if (mode == 3 && action2 == 4 && move2 == 0 && task1 > 0 && task2 > 0 && type == 3) { - this.writing("to_command2", "5"); + if(to_command2 != 5){ + this.writing("to_command2", "5"); + } this.setNow_steps_type3(8); } else { if (this.getNow_steps_type3() == 7) { @@ -538,7 +518,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl int move = siemensConveyorDeviceDriver.getMove(); int mode = siemensConveyorDeviceDriver.getMode(); if (move == 1 && mode == 2) { - this.writing("to_command1", "4"); + if(to_command1 != 4){ + this.writing("to_command1", "4"); + } if (type == 1) { this.setNow_steps_type1(5); } else if (type == 3) { @@ -582,19 +564,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl if (inst1 != null) { if (StrUtil.equals(inst1.getInstruction_status(), "1")) { this.finish_instruction(inst1); - TaskDto taskDto = taskserver.findByCodeFromCache(inst1.getTask_code()); - if (!ObjectUtil.isEmpty(taskDto)) { - if (StrUtil.isNotEmpty(taskDto.getExt_task_id())) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("task_id", taskDto.getExt_task_id()); - map.put("task_status", "2"); - array.add(map); - acsToWmsService.feedbackTaskStatusToWms(array); - } + if(to_command1 != 5){ + this.writing("to_command1", "5"); } - ; - this.writing("to_command1", "5"); this.setNow_steps_type1(6); this.setNow_steps_type1(0); } @@ -628,19 +600,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl if (inst1 != null) { if (StrUtil.equals(inst1.getInstruction_status(), "1")) { this.finish_instruction(inst1); - TaskDto taskDto = taskserver.findByCodeFromCache(inst1.getTask_code()); - if (!ObjectUtil.isEmpty(taskDto)) { - if (StrUtil.isNotEmpty(taskDto.getExt_task_id())) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("task_id", taskDto.getExt_task_id()); - map.put("task_status", "2"); - array.add(map); - acsToWmsService.feedbackTaskStatusToWms(array); - } + if(to_command1 != 5){ + this.writing("to_command1", "5"); } - ; - this.writing("to_command1", "5"); this.setNow_steps_type3(10); this.setNow_steps_type3(0); } @@ -673,16 +635,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } catch (Exception var17) { feedMessage = var17.getMessage(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage()); -// return; } -// if (!this.itemProtocol.getIsonline()) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "信号量同步异常"; -// //未联机 -// } else - if (mode == 0) { + if (mode == 0) { this.setIsonline(false); message = "未联机"; //有报警 @@ -725,11 +680,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl feedMessage = ""; notCreateInstMessage = ""; notCreateTaskMessage = ""; - logServer.deviceExecuteLog(device_code, "", String.valueOf(task1), "move2:" + move2 + ",action2:" + action2 + ",move1:" + move1 + ",action1:" + action1 + ",requireSucess:" + requireSucess); } else { -// if (!requireSucess) { -// remark = remark + "请求标记为true,请检查mode是否由其他值变为2!"; -// } + if (!requireSucess) { String remark = ""; if (mode != 2) { @@ -1140,12 +1092,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl list.add(map6); this.writing(list); logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发前工位任务"); - -// this.writing("to_onset1", start_addr); -// this.writing("to_target1", next_addr); -// this.writing("to_task1", dto.getInstruction_code()); -// this.writing("to_command1", "1"); -// this.writing("to_type", "1"); this.setNow_steps_type1(2); } else if (StrUtil.equals(type, "2")) { Map map1 = new HashMap(); @@ -1175,12 +1121,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl list.add(map6); this.writing(list); logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发后工位任务"); - -// this.writing("to_onset2", start_addr); -// this.writing("to_target2", next_addr); -// this.writing("to_task2", dto.getInstruction_code()); -// this.writing("to_command2", "1"); -// this.writing("to_type", "2"); this.setNow_steps_type2(2); } else if (StrUtil.equals(type, "3")) { String start_device_code2 = dto.getStart_device_code2(); @@ -1230,16 +1170,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl this.writing(list); logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发双工位任务"); - -// this.writing("to_onset1", start_addr2); -// this.writing("to_target1", next_addr2); -// this.writing("to_task1", dto.getInstruction_code()); -// this.writing("to_command1", "1"); -// this.writing("to_onset2", start_addr); -// this.writing("to_target2", next_addr); -// this.writing("to_task2", dto.getInstruction_code()); -// this.writing("to_command2", "1"); -// this.writing("to_type", "3"); this.setNow_steps_type3(2); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 47c5a8807..081be12f0 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -70,7 +70,7 @@ public class WmsToAcsController { } @PostMapping("/querydevice") - @Log(value = "WMS查询设备状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) +// @Log(value = "WMS查询设备状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) @ApiOperation("WMS查询设备状态") @SaIgnore public ResponseEntity queryDevice(@RequestBody String whereJson) throws Exception { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppService.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppService.java index 75887637a..8718992ef 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppService.java @@ -81,4 +81,9 @@ public interface DeviceAppService { */ String findDeviceTypeByCode(String deviceCode); + + void removeDevice(String deviceCode); + + void addDevice(String deviceCode); + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java index 7f1d71030..a415b9148 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java @@ -302,6 +302,51 @@ public class DeviceAppServiceImpl implements DeviceAppService, ApplicationAutoIn return null; } + @Override + public void removeDevice(String deviceCode) { + + Iterator iterator = devices.iterator(); + while (iterator.hasNext()) { + Device device = iterator.next(); + if (StrUtil.equals(device.getDevice_code(), deviceCode)) { + iterator.remove(); + } + } + Iterator iterator2 = code_indexs.iterator(); + while (iterator2.hasNext()) { + String str = iterator2.next(); + if (StrUtil.equals(str, deviceCode)) { + iterator2.remove(); + } + } + + } + + @Override + public void addDevice(String deviceCode) { + List deviceManageDtos = this.deviceManageService.queryAllWithExtra(deviceCode); + int i = 0; + + for (int size = deviceManageDtos.size(); i < size; ++i) { + DeviceManageDto deviceManage = (DeviceManageDto) deviceManageDtos.get(i); + Device device = new Device(); + BeanUtil.copyProperties(deviceManage, device); + this.devices.add(device); + this.code_indexs.add(device.getDevice_code()); + + if (!StrUtil.isEmpty(device.getDriver_code())) { + DeviceDriverDefination defination = this.deviceDriverDefinationAppService.getDeviceDriverDefination(deviceManage.getDriver_code()); + if (defination != null) { + device.setDeviceDriverDefination(defination); + DeviceDriver driver = defination.getDriverInstance(device); + device.setDeviceDriver(driver); + + } + } + + } + } + public List findLaneway() { return this.findDeviceDriver(LinewayDeviceDriver.class); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageService.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageService.java index f95b50ba3..adff13b8d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageService.java @@ -4,4 +4,7 @@ import java.util.List; public interface DeviceManageService { List queryAllWithExtra(); + + List queryAllWithExtra(String device_code); + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageServiceImpl.java index c0f64d9f0..4313f1740 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageServiceImpl.java @@ -78,4 +78,69 @@ public class DeviceManageServiceImpl implements DeviceManageService { return devices; } + + @Override + public List queryAllWithExtra(String device_code) { + JSONArray arr = WQLObject.getWQLObject("acs_device").query("device_code = '" + device_code + " '").getResultJSONArray(0); + + JSONArray extArr = WQLObject.getWQLObject("acs_device_extra").query("device_code = '" + device_code + " '").getResultJSONArray(0); + + List extras = extArr.toJavaList(DeviceExtraManageDto.class); + + WQLObject runpointTab = WQLObject.getWQLObject("acs_device_runpoint"); + + WQLObject opcTab = WQLObject.getWQLObject("acs_opc"); + //OPC_PLC表【acs_opc_plc】 + WQLObject plcTab = WQLObject.getWQLObject("acs_opc_plc"); + List devices = new ArrayList<>(); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + DeviceManageDto device = json.toJavaObject(DeviceManageDto.class); + String opc_server_id = json.getString("opc_server_id"); + String opc_plc_id = json.getString("opc_plc_id"); + if (StrUtil.isNotEmpty(opc_plc_id) && StrUtil.isNotEmpty(opc_server_id)) { + //OPC表【acs_opc】 + JSONObject rb = opcTab.query("is_delete= '0' AND is_active= '1' AND opc_id = '" + opc_server_id + "'").uniqueResult(0); + if(ObjectUtil.isEmpty(rb)){ + System.out.println(device.getDevice_code()); + continue; + } + String opc_code= rb.getString("opc_code"); + device.setOpc_server_code(opc_code); + if(ObjectUtil.isEmpty(plcTab.query("is_delete= '0' AND is_active= '1' AND plc_id = '" + opc_plc_id + "'").uniqueResult(0))) + { + System.out.println(device.getDevice_code()); + continue; + } + String plc_code = plcTab.query("is_delete= '0' AND is_active= '1' AND plc_id = '" + opc_plc_id + "'").uniqueResult(0).getString("plc_code"); + device.setOpc_plc_code(plc_code); + } + devices.add(device); + } + + Iterator it = devices.iterator(); + + while (it.hasNext()) { + DeviceManageDto device = (DeviceManageDto) it.next(); + Iterator var5 = extras.iterator(); + while (var5.hasNext()) { + DeviceExtraManageDto extra = (DeviceExtraManageDto) var5.next(); + if (extra.getDevice_id().equals(device.getDevice_id())) { + device.getExtra().add(extra); + if (StrUtil.equals(extra.getExtra_code(), "station_manager") && StrUtil.equals(extra.getExtra_value().toString(), "true")) { + String has_goods = runpointTab.query("is_delete= '0' AND is_active= '1' AND device_id = '" + extra.getDevice_id() + "'").uniqueResult(0).getString("hasgoods"); + String material_type = runpointTab.query("is_delete= '0' AND is_active= '1' AND device_id = '" + extra.getDevice_id() + "'").uniqueResult(0).getString("material_type"); + String batch = runpointTab.query("is_delete= '0' AND is_active= '1' AND device_id = '" + extra.getDevice_id() + "'").uniqueResult(0).getString("batch"); + String islock = runpointTab.query("is_delete= '0' AND is_active= '1' AND device_id = '" + extra.getDevice_id() + "'").uniqueResult(0).getString("islock"); + device.setMaterial_type(material_type); + device.setHas_goods(Integer.parseInt(has_goods)); + device.setBatch(batch); + device.setIslock(islock); + } + } + } + } + + return devices; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index a609a2d78..db19141d2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -120,8 +120,8 @@ public class DeviceOpcProtocolRunable implements Runnable { try { itemStatus = group.read(true, (Item[]) itemsMap.values().toArray(new Item[0])); } catch (Exception e){ -// System.out.println("数据同步异常:"+itemsMap); - e.printStackTrace(); + System.out.println("数据同步异常:"+ this.getOpcServer().getOpc_code()); + //e.printStackTrace(); } long end = System.currentTimeMillis(); log.trace("{} 开始记时{}", tag, DateUtil.now()); @@ -138,7 +138,7 @@ public class DeviceOpcProtocolRunable implements Runnable { time_out = false; } - if(ObjectUtil.isEmpty(itemStatus)) continue label97; +// if(ObjectUtil.isEmpty(itemStatus)) continue label97; Set items = itemStatus.keySet(); Iterator var18 = items.iterator(); diff --git a/acs/nladmin-ui/src/views/acs/device/config.vue b/acs/nladmin-ui/src/views/acs/device/config.vue index 477cdc6d1..e8da1280c 100644 --- a/acs/nladmin-ui/src/views/acs/device/config.vue +++ b/acs/nladmin-ui/src/views/acs/device/config.vue @@ -95,6 +95,7 @@ import hongxiang_conveyor from '@/views/acs/device/driver/hongxiang_conveyor' import plug_pull_device_site from '@/views/acs/device/driver/plug_pull_device_site' import siemens_conveyor_labeling from '@/views/acs/device/driver/siemens_conveyor_labeling' import siemens_conveyor_ckk from '@/views/acs/device/driver/siemens_conveyor_ckk' +import siemens_onefloor_agv_conveyor from '@/views/acs/device/driver/siemens_onefloor_agv_conveyor' export default { name: 'DeviceConfig', @@ -120,7 +121,8 @@ export default { slit_two_manipulator, plug_pull_device_site, siemens_conveyor_labeling, - siemens_conveyor_ckk + siemens_conveyor_ckk, + siemens_onefloor_agv_conveyor }, dicts: ['device_type'], mixins: [crud], diff --git a/acs/nladmin-ui/src/views/acs/device/driver/siemens_onefloor_agv_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/siemens_onefloor_agv_conveyor.vue new file mode 100644 index 000000000..81c699a1e --- /dev/null +++ b/acs/nladmin-ui/src/views/acs/device/driver/siemens_onefloor_agv_conveyor.vue @@ -0,0 +1,530 @@ + + + + + From 5527d8fa35fe385342741ada41fe1456dca07772 Mon Sep 17 00:00:00 2001 From: ludj Date: Mon, 13 Feb 2023 20:50:05 +0800 Subject: [PATCH 4/6] =?UTF-8?q?pom=E6=96=87=E4=BB=B6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-system/pom.xml | 45 ++-- lms/nladmin-system/pom.xml | 16 -- .../acs/service/impl/AcsToWmsServiceImpl.java | 224 +++++++++--------- .../resources/config/application-prod.yml | 8 +- 4 files changed, 137 insertions(+), 156 deletions(-) diff --git a/acs/nladmin-system/pom.xml b/acs/nladmin-system/pom.xml index e02d8fb42..92dd526a9 100644 --- a/acs/nladmin-system/pom.xml +++ b/acs/nladmin-system/pom.xml @@ -20,7 +20,6 @@ 1.8 1.16 2.9.2 - 1.2.70 1.1.22 2.5.0 1.3.1.Final @@ -34,11 +33,11 @@ - + org.apache.commons @@ -65,21 +64,21 @@ poi-ooxml-schemas 4.1.2 - + + + org.openscada.utgard org.openscada.opc.lib @@ -103,11 +102,11 @@ 1.8.0 - + @@ -116,11 +115,11 @@ - + org.springframework.boot @@ -231,6 +230,12 @@ org.springframework.boot spring-boot-starter-test test + + + objenesis + org.objenesis + + @@ -296,6 +301,10 @@ io.swagger swagger-models + + mapstruct + org.mapstruct + @@ -362,13 +371,6 @@ 2.12.0 - - - com.alibaba - fastjson - ${fastjson.version} - - org.mapstruct @@ -453,6 +455,9 @@ **/*.* + + **/*.java + diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml index 506e552b6..7c5bfd82d 100644 --- a/lms/nladmin-system/pom.xml +++ b/lms/nladmin-system/pom.xml @@ -45,22 +45,6 @@ 6.1.4 - - - - - - - - - - - - - - - - com.internetitem diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index a505051ea..7d5258ad1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -69,7 +69,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { */ @Override public Map receiveTaskStatusAcs(String string) { - log.info("receiveTaskStatusAcs请求参数:--------------------------------------"+string); + log.info("receiveTaskStatusAcs请求参数:--------------------------------------" + string); JSONArray array = JSONArray.parseArray(string); //返回处理失败的任务 JSONArray errArr = new JSONArray(); @@ -484,7 +484,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject deviceApply(JSONObject whereJson) { - log.info("deviceApply请求参数:---------------------------------------------"+whereJson.toString()); + log.info("deviceApply请求参数:---------------------------------------------" + whereJson.toString()); String vehicle_code = whereJson.getString("vehicle_code"); String weight = whereJson.getString("weight"); String type = whereJson.getString("type"); @@ -547,13 +547,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { data.put("box_width", box_width); data.put("box_high", box_high); data.put("bundle_times", 2); - result.put("data",data); + result.put("data", data); } else if (type.equals("3")) { //烘箱出箱任务 String device_code = whereJson.getString("device_code"); JSONObject bake_jo = new JSONObject(); - bake_jo.put("point_code",device_code); - bake_jo.put("option","2"); + bake_jo.put("point_code", device_code); + bake_jo.put("option", "2"); new BakingServiceImpl().ovenInAndOut(bake_jo); } else { throw new BadRequestException("请输入正确的任务类型!"); @@ -563,7 +563,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject process(JSONObject whereJson) { - log.info("process请求参数:---------------------------------------------"+whereJson.toString()); + log.info("process请求参数:---------------------------------------------" + whereJson.toString()); String vehicle_code = whereJson.getString("vehicle_code"); String ext_task_id = whereJson.getString("ext_task_id"); String srcLocation = whereJson.getString("srcLocation"); @@ -630,20 +630,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject shipDeviceUpdate(JSONObject whereJson) { - log.info("shipDeviceUpdate请求参数:---------------------------------------------"+whereJson.toString()); + log.info("shipDeviceUpdate请求参数:---------------------------------------------" + whereJson.toString()); String device_code = whereJson.getString("device_code"); - if (StrUtil.isEmpty(device_code)){ + if (StrUtil.isEmpty(device_code)) { throw new BadRequestException("输入的设备号不能为空!"); } //查询该设备对应的输送线点位 - JSONObject deliver_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_code = '"+device_code+"'").uniqueResult(0); - if (deliver_jo != null){ + JSONObject deliver_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_code = '" + device_code + "'").uniqueResult(0); + if (deliver_jo != null) { String qzzno = deliver_jo.getString("qzzno"); - if (ObjectUtil.isNotEmpty(deliver_jo)){ - deliver_jo.put("point_status","01"); - deliver_jo.put("qzzno",""); - deliver_jo.put("vehicle_code",""); + if (ObjectUtil.isNotEmpty(deliver_jo)) { + deliver_jo.put("point_status", "01"); + deliver_jo.put("qzzno", ""); + deliver_jo.put("vehicle_code", ""); WQLObject.getWQLObject("st_ivt_deliverypointivt").update(deliver_jo); //如果为靠近分切机一端的输送点,判断远离端是否需要进行横移 @@ -657,18 +657,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { .addParam("point_code", device_code) .addParam("product_area", product_area) .addParam("sort_seq", sort_seq) - .addParam("find_type","1") + .addParam("find_type", "1") .addParam("flag", "17").process().uniqueResult(0); if (ObjectUtil.isNotEmpty(right_point) && !right_point.getString("point_status").equals("01")) { //创建载具横移任务 String translate_code1 = right_point.getString("point_code"); String translate_code2 = device_code; JSONObject tran_jo = new JSONObject(); - tran_jo.put("point_code1",translate_code1); - tran_jo.put("point_code2",translate_code2); - tran_jo.put("vehicle_code",right_point.getString("qzzno")); - tran_jo.put("vehicle_code2",right_point.getString("vehicle_code")); - tran_jo.put("task_type","010406"); + tran_jo.put("point_code1", translate_code1); + tran_jo.put("point_code2", translate_code2); + tran_jo.put("vehicle_code", right_point.getString("qzzno")); + tran_jo.put("vehicle_code2", right_point.getString("vehicle_code")); + tran_jo.put("task_type", "010406"); cutConveyorTask.createTask(tran_jo); } } @@ -683,100 +683,98 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public void initialize(JSONObject param) { { - { - int j_size = param.getInteger("j"); // 排 - int k_size = param.getInteger("k"); // 列 - String block = param.getString("layer"); // 块 - JSONObject max_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("sect_code = 'ZC01' order by out_order_seq desc ").uniqueResult(0); - int max_no = 0; - if (ObjectUtil.isNotEmpty(max_jo)) { - max_no = max_jo.getIntValue("out_order_seq"); - } - max_no++; - for (int i = 1; i < 4; i++) { - for (int j = 1; j < j_size; j++) { - for (int k = 1; k < k_size; k++) { - //排 - String row = ""; - if (j < 10) { - row = "0" + j; - } else { - row = j + ""; - } - - //列 - String line = ""; - if (k < 10) { - line = "0" + k; - } else { - line = k + ""; - } - - //块 - String piece = i + block; - - //层 - String layer = "0" + i; - - - JSONObject jo = new JSONObject(); - jo.put("struct_id", IdUtil.getSnowflake(1, 1).nextId()); - jo.put("struct_code", piece + row + "-" + line + "-" + layer); - jo.put("struct_name", piece + "区" + row + "排" + line + "列" + layer + "层"); - jo.put("simple_name", piece + "区" + row + "排" + line + "列" + layer + "层"); - jo.put("sect_id", "1582991348217286656"); - jo.put("sect_code", "ZC01"); - jo.put("sect_name", "主存区"); - jo.put("stor_id", "1582991156504039424"); - jo.put("stor_code", "CP01"); - jo.put("stor_name", "兰州仓库"); - jo.put("stor_type", "03"); - jo.put("is_tempstruct", "0"); - jo.put("row_num", row); - jo.put("col_num", line); - jo.put("layer_num", layer); - jo.put("block_num", piece); - jo.put("in_order_seq", 0); - jo.put("out_order_seq", max_no); - jo.put("in_empty_seq", 0); - jo.put("out_empty_seq", 0); - jo.put("placement_type", "01"); - jo.put("create_id", "1"); - jo.put("create_name", "管理员"); - jo.put("create_time", DateUtil.now()); - jo.put("update_optid", "1"); - jo.put("update_optname", "管理员"); - jo.put("update_time", DateUtil.now()); - jo.put("is_delete", "0"); - jo.put("is_used", "1"); - jo.put("lock_type", "1"); - jo.put("material_height_type", "1"); - WQLObject.getWQLObject("ST_IVT_StructAttr").insert(jo); - max_no++; - //插入点位 - JSONObject structMap = new JSONObject(); - structMap.put("point_id", IdUtil.getSnowflake(1,1).nextId()); - structMap.put("point_code", jo.getString("struct_code")); - structMap.put("point_name", jo.getString("struct_name")); - structMap.put("region_id", "1582991348217286656"); - structMap.put("region_code", jo.getString("sect_code")); - structMap.put("region_name", jo.getString("sect_name")); - structMap.put("point_type", "2"); - structMap.put("point_status", "1"); - structMap.put("lock_type", jo.getString("lock_type")); - structMap.put("block_num", jo.getIntValue("block_num")); - structMap.put("row_num", jo.getIntValue("row_num")); - structMap.put("col_num", jo.getIntValue("col_num")); - structMap.put("layer_num", jo.getIntValue("layer_num")); - structMap.put("source_id", jo.getString("struct_id")); - structMap.put("create_id", "1"); - structMap.put("create_name", "管理员"); - structMap.put("create_time", DateUtil.now()); - structMap.put("update_optid", "1"); - structMap.put("update_optname", "管理员"); - structMap.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("sch_base_point").insert(structMap); + int j_size = param.getInteger("j"); // 排 + int k_size = param.getInteger("k"); // 列 + String block = param.getString("layer"); // 块 + JSONObject max_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("sect_code = 'ZC01' order by out_order_seq desc ").uniqueResult(0); + int max_no = 0; + if (ObjectUtil.isNotEmpty(max_jo)) { + max_no = max_jo.getIntValue("out_order_seq"); + } + max_no++; + for (int i = 1; i < 4; i++) { + for (int j = 1; j < j_size; j++) { + for (int k = 1; k < k_size; k++) { + //排 + String row = ""; + if (j < 10) { + row = "0" + j; + } else { + row = j + ""; } + + //列 + String line = ""; + if (k < 10) { + line = "0" + k; + } else { + line = k + ""; + } + + //块 + String piece = i + block; + + //层 + String layer = "0" + i; + + + JSONObject jo = new JSONObject(); + jo.put("struct_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("struct_code", piece + row + "-" + line + "-" + layer); + jo.put("struct_name", piece + "区" + row + "排" + line + "列" + layer + "层"); + jo.put("simple_name", piece + "区" + row + "排" + line + "列" + layer + "层"); + jo.put("sect_id", "1582991348217286656"); + jo.put("sect_code", "ZC01"); + jo.put("sect_name", "主存区"); + jo.put("stor_id", "1582991156504039424"); + jo.put("stor_code", "CP01"); + jo.put("stor_name", "兰州仓库"); + jo.put("stor_type", "03"); + jo.put("is_tempstruct", "0"); + jo.put("row_num", row); + jo.put("col_num", line); + jo.put("layer_num", layer); + jo.put("block_num", piece); + jo.put("in_order_seq", 0); + jo.put("out_order_seq", max_no); + jo.put("in_empty_seq", 0); + jo.put("out_empty_seq", 0); + jo.put("placement_type", "01"); + jo.put("create_id", "1"); + jo.put("create_name", "管理员"); + jo.put("create_time", DateUtil.now()); + jo.put("update_optid", "1"); + jo.put("update_optname", "管理员"); + jo.put("update_time", DateUtil.now()); + jo.put("is_delete", "0"); + jo.put("is_used", "1"); + jo.put("lock_type", "1"); + jo.put("material_height_type", "1"); + WQLObject.getWQLObject("ST_IVT_StructAttr").insert(jo); + max_no++; + //插入点位 + JSONObject structMap = new JSONObject(); + structMap.put("point_id", IdUtil.getSnowflake(1, 1).nextId()); + structMap.put("point_code", jo.getString("struct_code")); + structMap.put("point_name", jo.getString("struct_name")); + structMap.put("region_id", "1582991348217286656"); + structMap.put("region_code", jo.getString("sect_code")); + structMap.put("region_name", jo.getString("sect_name")); + structMap.put("point_type", "2"); + structMap.put("point_status", "1"); + structMap.put("lock_type", jo.getString("lock_type")); + structMap.put("block_num", jo.getIntValue("block_num")); + structMap.put("row_num", jo.getIntValue("row_num")); + structMap.put("col_num", jo.getIntValue("col_num")); + structMap.put("layer_num", jo.getIntValue("layer_num")); + structMap.put("source_id", jo.getString("struct_id")); + structMap.put("create_id", "1"); + structMap.put("create_name", "管理员"); + structMap.put("create_time", DateUtil.now()); + structMap.put("update_optid", "1"); + structMap.put("update_optname", "管理员"); + structMap.put("update_time", DateUtil.now()); + WQLObject.getWQLObject("sch_base_point").insert(structMap); } } } diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index 5d6d7fc79..fc1a5bd14 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -178,13 +178,7 @@ sa-token: is-log: false jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq # token 前缀 - token-prefix: + token-prefix: Bearer cookie: # 配置 Cookie 作用域:根据二级域名实现sso登入如lms.sso.com;acs.sso.com domain: - -loki: - url: http://localhost:3100/loki/api/v1 - systemName: lms -es: - index: lms_log_prod From 009e325c3296cfd38ff579ff8721a77ba0550583 Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Mon, 13 Feb 2023 22:40:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 20 ++++++++++ .../SiemensConveyorDeviceDriver.java | 39 +++---------------- .../StandardOrdinarySiteDeviceDriver.java | 2 +- .../acs/ext/wms/rest/WmsToAcsController.java | 7 ++++ .../acs/ext/wms/service/WmsToAcsService.java | 8 ++++ .../wms/service/impl/WmsToAcsServiceImpl.java | 39 ++++++++++++++++++- 6 files changed, 79 insertions(+), 36 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 1965d2939..2dcfdb651 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -142,6 +142,26 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } + + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); + if(ObjectUtil.isNotEmpty(this.device.getExtraValue().get("wait")) + && StrUtil.equals("true",this.device.getExtraValue().get("wait").toString())){ + // + if(standardOrdinarySiteDeviceDriver.getOption() == 1 ){ + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + log.info("等待LMS系统进行确认允许取货,设备号{}", device_code); + } + + } + + + standardOrdinarySiteDeviceDriver.setAgvphase(phase); + standardOrdinarySiteDeviceDriver.setIndex(index); + standardOrdinarySiteDeviceDriver.setInst(inst); + } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java index c830c46e2..65933128b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -158,6 +158,9 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme requireEmptyOutSuccess = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记"); } + if(mode == 6){ + requireEmptyInSuccess = false; + } logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } @@ -211,15 +214,12 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme finish_instruction(); logServer.deviceExecuteLog(device_code, "", "", "入库输送线任务开始反馈完成状态,反馈成功,指令号:" + task); } else { -// if (!StrUtil.equals(inst.getExecute_code(), this.device_code)) { -// inst.setExecute_device_code(this.device_code); -// instructionService.update(inst); -// } + + } } } else { -// logServer.deviceExecuteLog(device_code, "", "", "输送线任务开始反馈任务状态,反馈失败,查询不到指令号:" + task); message = "输送线任务反馈状态,查询不到指令号:" + task +"指令已完成"; inst_message = null; } @@ -230,21 +230,11 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage()); } -// if (!this.itemProtocol.getIsonline()) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "信号量同步异常"; -// //未联机 -// } else if (mode == 0) { this.setIsonline(false); message = "未联机"; //有报警 -// } else if (error != 0) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "有报警"; -// //无报警 + } else { this.setIsonline(true); this.setIserror(false); @@ -257,21 +247,6 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme List toInstructions; -// if (mode == 2 && move != 0 && task > 0) { -// //inst_message -// inst = instructionService.findByCodeFromCache(String.valueOf(task)); -// if (inst != null) { -// inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code() + " 载具号:" + inst.getVehicle_code(); -// if (StrUtil.equals(inst.getInstruction_status(), "1") && StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) { -// finish_instruction(); -// } -// if (StrUtil.equals(inst.getInstruction_status(), "0") && StrUtil.equals(this.getDeviceCode(), inst.getStart_device_code())) { -// inst.setInstruction_status("1"); -// instructionService.update(inst); -// } -// } -// } - switch (mode) { case 1: log.debug("设备运转模式:等待工作"); @@ -881,13 +856,11 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme JSONObject jo = JSON.parseObject(str); if (ObjectUtil.isEmpty(jo)) { message = "申请空盘入库接口不通"; - requireEmptyInSuccess = true; } else { if (jo.getInteger("status") == 200) { message = "申请空盘入库成功"; requireEmptyInSuccess = true; } else { - requireEmptyInSuccess = true; message = "申请空盘入库失败," + jo.get("message").toString(); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index 70654b0a2..30c6f1761 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -107,7 +107,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple String message; // 1 上位系统允许进入 2 上位系统允许离开 - int status = 0; + int option = 0; int agvphase = 0; int index = 0; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 081be12f0..b004859c4 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -94,4 +94,11 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.putPlusPullAction(whereJson), HttpStatus.OK); } + @PostMapping("/updateTask") + @Log(value = "WMS更新任务点位状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) + @ApiOperation("WMS更新任务点位状态") + @SaIgnore + public ResponseEntity updateTask(@RequestBody String whereJson){ + return new ResponseEntity<>(wmstoacsService.updateTask(whereJson), HttpStatus.OK); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index a9125cccf..7890352df 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -84,4 +84,12 @@ public interface WmsToAcsService { Map putPlusPullAction(String whereJson); + /** + * 更新任务点位状态 + * + * @param whereJson 条件 + * @return Map + */ + Map updateTask(String whereJson); + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 4f99defa4..c6618e197 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.AcsConfig; import org.nl.acs.common.IDriverService; +import org.nl.acs.common.StandardOrdinarySiteDevice; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.basedriver.cargo_lift_conveyor.CargoLiftConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.empty_vehicle_stacking_position.EmptyVehicleStackingPositionDeviceDriver; @@ -16,6 +17,8 @@ import org.nl.acs.device_driver.basedriver.hongxiang_conveyor.HongXiangStationDe import org.nl.acs.device_driver.basedriver.hongxiang_device.HongXiangConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.plug_pull_device_site.PlugPullDeviceSiteDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_conveyor_control_with_scanner.StandardCoveyorControlWithScannerDeviceDriver; +import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDefination; +import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.ext.wms.data.*; import org.nl.acs.ext.wms.liKuData.Resp; import org.nl.acs.ext.wms.service.AcsToLiKuService; @@ -728,9 +731,41 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { MDC.remove(log_file_type); } - - } + @Override + public Map updateTask(String whereJson) { + JSONArray datas = JSONArray.parseArray(whereJson); + log.info("updateTask--------------:输入参数" + datas.toString()); + JSONObject map = new JSONObject(); + if (datas.size() > 0) { + for (int i = 0; i < datas.size(); i++) { + JSONObject jsonObject = datas.getJSONObject(i); + String device_code = jsonObject.getString("device_code"); + String task_code = jsonObject.getString("task_code"); + //1-允许取放; 2-允许离开 + String option = jsonObject.getString("option"); + StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; + Device device_k = deviceAppService.findDeviceByCode(device_code+"_K"); + Device device_m = deviceAppService.findDeviceByCode(device_code+"_M"); + + if(device_k.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver){ + standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_k.getDeviceDriver(); + standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option)); + } + if(device_m.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver){ + standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_m.getDeviceDriver(); + standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option)); + } + + } + } + JSONObject resultJson = new JSONObject(); + resultJson.put("status", HttpStatus.OK); + resultJson.put("message", "操作成功"); + resultJson.put("data", map); + return resultJson; + } + } From 2c9f95b3c61d5a0b52f000b58a40398ecc56be4c Mon Sep 17 00:00:00 2001 From: ludj Date: Mon, 13 Feb 2023 22:57:53 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/modules/common/utils/StringUtils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java index 269c7f5db..b90121d71 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java @@ -53,7 +53,8 @@ public class StringUtils { private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer .newBuilder() .hideMatcherLoadStats() - .withCache(10000) + .withCache(1) +// .withCache(10000) .withField(UserAgent.AGENT_NAME_VERSION) .build();