From 804c7c54dad7d5b44c0366a455bd11583efdcc32 Mon Sep 17 00:00:00 2001 From: yanps Date: Fri, 16 Aug 2024 13:23:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:sorting=E5=91=BC=E5=8F=AB=E8=BD=BD=E5=85=B7?= =?UTF-8?q?=E5=8F=8A=E6=97=B6=E4=BF=AE=E6=94=B9=E8=B4=A7=E6=9E=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81,opc=E4=BF=A1=E5=8F=B7=E8=AF=BB=E5=8F=96=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-system/nlsso-server/pom.xml | 6 + .../agv/ndcone/AgvNdcOneDeviceDriver.java | 2 +- .../basedriver/plc_to_agv/ItemProtocol.java | 34 +- .../nl/acs/opc/DeviceOpcProtocolRunable.java | 20 +- .../acs/opc/DeviceOpcSynchronizeAutoRun.java | 351 ++++-------------- .../main/java/org/nl/acs/opc/OpcEntity.java | 2 + .../system/service/lucene/LuceneService.java | 1 - .../lucene/impl/LuceneServiceImpl.java | 162 +++++--- .../acs/service/impl/AcsToWmsServiceImpl.java | 33 +- .../impl/ConnectorToWmsServiceImpl.java | 6 +- .../service/impl/SortingServiceImpl.java | 10 +- .../sch/task_manage/task/ConnectorUtil.java | 3 +- .../task/tasks/connector/FTGTask.java | 1 + .../task/tasks/sorting/SortingCMTTask.java | 3 + .../task/tasks/sorting/SortingCNTTask.java | 3 + .../resources/log/ConnectorAndSorting.xml | 34 ++ .../src/main/resources/logback-spring.xml | 1 + 17 files changed, 292 insertions(+), 380 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorAndSorting.xml diff --git a/acs/nladmin-system/nlsso-server/pom.xml b/acs/nladmin-system/nlsso-server/pom.xml index d17bd49..f6fabd4 100644 --- a/acs/nladmin-system/nlsso-server/pom.xml +++ b/acs/nladmin-system/nlsso-server/pom.xml @@ -45,6 +45,12 @@ pom + + org.dromara.dynamictp + dynamic-tp-spring-boot-starter-adapter-webserver + 1.1.6 + + org.apache.lucene diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index ae13392..2e9f7c1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -328,7 +328,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (ObjectUtil.isNotEmpty(extraValue.get("ignore_release_check")) && "true".equals(extraValue.get("ignore_release_check"))) { data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0); } else { - data = feedBackStatus(data, index, 2, inst, task, 1, false); + data = feedBackStatus(data, index, 3, inst, task, 1, false); } } catch (Exception e) { log.info("到达放货点反馈AGV状态失败:{}", e.getMessage()); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/ItemProtocol.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/ItemProtocol.java index 7772e10..968d8a1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/ItemProtocol.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/ItemProtocol.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.basedriver.plc_to_agv; +import cn.hutool.core.util.ObjectUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; @@ -24,6 +25,8 @@ public class ItemProtocol { private PlcToAgvDeviceDriver driver; + static Object msg; + public ItemProtocol(PlcToAgvDeviceDriver driver) { this.driver = driver; } @@ -57,6 +60,7 @@ public class ItemProtocol { Boolean isonline; public int getOpcIntegerValue(String protocol) { + getExends(); Integer value = this.driver.getIntegeregerValue(protocol); if (value == null) { // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); @@ -69,22 +73,36 @@ public class ItemProtocol { } + public void getExends(){ + Object upper_lower_levels = this.driver.getExtraValue().get("upper_lower_levels"); + if(ObjectUtil.isNotEmpty(upper_lower_levels)){ + msg = upper_lower_levels; + } + } + + public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_AGVSetInLowerAllowed, "下层允许上料", "DB600.B0")); - list.add(new ItemDto(item_AGVSetOutLowerAllowed, "下层允许下料", "DB600.B2")); - list.add(new ItemDto(item_AGVSetInUpperAllowed, "上层允许上料", "DB600.B3")); - list.add(new ItemDto(item_AGVSetOutUpperAllowed, "上层允许下料", "DB600.B4")); + if(ObjectUtil.isNotEmpty(msg) && "1".equals(msg)){ + list.add(new ItemDto(item_AGVSetInUpperAllowed, "上层允许上料", "DB600.B3")); + list.add(new ItemDto(item_AGVSetOutUpperAllowed, "上层允许下料", "DB600.B4")); + }else if(ObjectUtil.isNotEmpty(msg) && "2".equals(msg)){ + list.add(new ItemDto(item_AGVSetInLowerAllowed, "下层允许上料", "DB600.B0")); + list.add(new ItemDto(item_AGVSetOutLowerAllowed, "下层允许下料", "DB600.B2")); + } list.add(new ItemDto(item_AGVEnable, "agv动作使能", "DB600.D6")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_AGVSetInReqLower, "下层上料请求", "DB600.B0")); - list.add(new ItemDto(item_AGVSetOutReqLower, "下层下料请求", "DB600.B2")); - list.add(new ItemDto(item_AGVSetInReqUpper, "上层上料请求", "DB600.B3")); - list.add(new ItemDto(item_AGVSetOutReqUpper, "上层下料请求", "DB600.B4")); + if(ObjectUtil.isNotEmpty(msg) && "1".equals(msg)){ + list.add(new ItemDto(item_AGVSetInReqUpper, "上层上料请求", "DB600.B3")); + list.add(new ItemDto(item_AGVSetOutReqUpper, "上层下料请求", "DB600.B4")); + }else if(ObjectUtil.isNotEmpty(msg) && "2".equals(msg)){ + list.add(new ItemDto(item_AGVSetInReqLower, "下层上料请求", "DB600.B0")); + list.add(new ItemDto(item_AGVSetOutReqLower, "下层下料请求", "DB600.B2")); + } list.add(new ItemDto(item_AGVInOP, "在工位内", "DB600.D6")); return list; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index d6ba183..5b8d2cd 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -149,7 +149,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC if (log.isWarnEnabled()) { tag = Thread.currentThread().getName(); if (this.OpcServer != null) { - tag = tag + this.getOpcGroupID(); + tag = tag + "," + this.getOpcGroupID(); } } @@ -189,6 +189,8 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC Object value = OpcUtl.getValue(item, itemState); if (value != null) { valueAllNotNull = true; + } else { + log.info("item:{},velue为空,value:{}", item.getId(), value); } String itemId = item.getId(); @@ -201,7 +203,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC if (!UnifiedDataAppService.isEquals(value, his)) { OpcItemDto itemDto = this.getItem(itemId); if (true) { - this.logItemChanged(itemId, accessor_value, value, itemDto); +// this.logItemChanged(itemId, accessor_value, value, itemDto); } if(!ObjectUtil.isEmpty(value) || "".equals(value)){ accessor_value.setValue(itemId, value); @@ -225,13 +227,10 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC } if (!valueAllNotNull) { - int random = (new Random()).nextInt(10) + 1; - random *= 1000; if (this.all_null < 3) { if (log.isWarnEnabled()) { - log.warn("{} 所有内容都为空, all_null:{} ,暂定{}s", tag, all_null,3); + log.warn("OPC数据源: {} 所有内容都为空,检查网络, all_null:{} ,暂定{}s", tag, all_null,3); } - ThreadUtl.sleep( 3000); break start; } else if (this.all_null < 6) { @@ -253,9 +252,10 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC log.warn("{} 所有内容都为空, all_null:{} ,暂定{}ms", tag, all_null, 5000); } ThreadUtl.sleep((long) (5000)); + break start; } - ++this.all_null; +// ++this.all_null; } else { this.all_null = 0; } @@ -415,7 +415,8 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC Object obj = accessor_value.getValue(relate); sb.append("key:" + relate + "value:" + obj + ";"); } - if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption")) { + if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption") + && !itemDto.getItem_code().endsWith("x") && !itemDto.getItem_code().endsWith("y")) { // 存在上次点位值为null情况 则不记录日志 if(!(his instanceof Float) && !(value instanceof Float)){ LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(),4, itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), @@ -428,7 +429,8 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC } } } else { - if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption")) { + if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption") + && !itemDto.getItem_code().endsWith("x") && !itemDto.getItem_code().endsWith("y")) { if(!(his instanceof Float) && !(value instanceof Float)){ LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(),4, itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), String.valueOf(his), String.valueOf(value)); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcSynchronizeAutoRun.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcSynchronizeAutoRun.java index 26fde22..69ee0c4 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcSynchronizeAutoRun.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcSynchronizeAutoRun.java @@ -1,316 +1,109 @@ package org.nl.acs.opc; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.util.NamedThreadFactory; -import org.nl.acs.AcsConfig; +import cn.hutool.core.util.ObjectUtil; +import org.dromara.dynamictp.core.support.ThreadPoolBuilder; import org.nl.acs.auto.run.AbstractAutoRunnable; import org.nl.acs.opc.service.dto.OpcServerManageDto; -import org.nl.acs.udw.UnifiedDataAccessor; -import org.nl.acs.udw.UnifiedDataAccessorFactory; -import org.nl.acs.udw.UnifiedDataAppService; -import org.nl.common.enums.LogTypeEnum; -import org.nl.config.SpringContextHolder; -import org.nl.system.service.lucene.dto.LuceneLogDto; -import org.nl.system.service.param.ISysParamService; -import org.openscada.opc.lib.da.Group; -import org.openscada.opc.lib.da.Item; -import org.openscada.opc.lib.da.ItemState; +import org.nl.config.thread.TheadFactoryName; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.*; -import java.util.Map.Entry; -import java.util.concurrent.*; -import java.util.regex.Pattern; +import javax.annotation.Resource; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import static org.dromara.dynamictp.common.em.QueueTypeEnum.MEMORY_SAFE_LINKED_BLOCKING_QUEUE; /** * OPC设备同步启动 + * @author 20220102CG\noblelift */ @Component -@Slf4j public class DeviceOpcSynchronizeAutoRun extends AbstractAutoRunnable { - static boolean isRun = true; + + public static boolean isRun = false; + ExecutorService executorService = ThreadPoolBuilder.newBuilder() + .threadPoolName("deviceOpc_thread") + .threadFactory("deviceOpc_thread") + .corePoolSize(80) + .maximumPoolSize(100) + .keepAliveTime(40) + .timeUnit(TimeUnit.SECONDS) + .workQueue(MEMORY_SAFE_LINKED_BLOCKING_QUEUE.getName(), 2000) + .buildDynamic(); + @Autowired private DeviceAppService deviceAppService; @Autowired private OpcServerManageService opcServerManageService; -// @Autowired -// LuceneExecuteLogService lucene; - - static ExecutorService executorService; - public static Map opcServersConfig; - public static Map itemCodeOpcItemDtoMapping = new ConcurrentHashMap(); - - static boolean canRefreshOpcEntity = true; - private long lastRefreshOpcEntityTime; - static UnifiedDataAccessor udw; - private static Map canReadOpcValues; - private static volatile Map opcCodeOpcEntityMapping; - - public DeviceOpcSynchronizeAutoRun() { - this.lastRefreshOpcEntityTime = 0L; - } + @Override public String getCode() { return DeviceOpcSynchronizeAutoRun.class.getSimpleName(); } + @Override public String getName() { return "opc设备同步器"; } - static Group getGroup(String opcCode) throws Exception { - OpcServerService opcServerService = SpringContextHolder.getBean(OpcServerService.class); - return opcServerService.getServer(opcCode); - } - - static void submitTimeLimitTask(Runnable runnable, String opcCode) { - CompletableFuture future = CompletableFuture.runAsync(runnable, executorService); - -// try { -// future.get(10L, TimeUnit.SECONDS); -// } catch (InterruptedException var9) { -// Thread.currentThread().interrupt(); -// } catch (ExecutionException var10) { -// var10.printStackTrace(); -// } catch (TimeoutException var11) { -// itemCodeOpcItemDtoMapping.keySet().forEach((key) -> { -// udw.setValue(key, (Object) null); -// }); -// canReadOpcValues = new ConcurrentHashMap<>(); -// System.out.println("opc设备同步器 任务执行超时,取消任务..."); -// future.cancel(true); -// } finally { -// canRefreshOpcEntity = true; -// if (opcCode != null) { -// canReadOpcValues.put(opcCode, true); -// } -// -// } - } - - private ExecutorService createThreadPool() { - ThreadPoolExecutor executor = new ThreadPoolExecutor(32, 32, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), new NamedThreadFactory("opc-sync")); - executor.allowCoreThreadTimeOut(true); - return executor; - } - - public void autoRun() { - OpcStartTag.is_run = true; - opcServersConfig = this.opcServerManageService.queryAllServerMap(); - executorService = this.createThreadPool(); - opcCodeOpcEntityMapping = new ConcurrentHashMap(); - itemCodeOpcItemDtoMapping.keySet().forEach((key) -> { - udw.setValue(key, (Object) null); - }); - canRefreshOpcEntity = true; - canReadOpcValues.clear(); - - while (true) { - this.refreshOpcEntity(); - Iterator var1 = opcServersConfig.keySet().iterator(); - - while (var1.hasNext()) { - String opcCode = (String) var1.next(); - submitTimeLimitTask(() -> { - boolean in = false; - try { - if (canReadOpcValues.computeIfAbsent(opcCode, (key) -> true)) { - in = true; - canReadOpcValues.put(opcCode, false); - this.readOpcValues(opcCode); - } - } catch (Exception var3) { - var3.printStackTrace(); - } finally { - canRefreshOpcEntity = true; - if (opcCode != null && in) { - canReadOpcValues.put(opcCode, true); - } - } - }, opcCode); - } - - ThreadUtl.sleep((long) OpcConfig.synchronized_millisecond); - } - } - - private void readOpcValues(String opcCode) throws Exception { - synchronized (opcCode.intern()) { - OpcEntity opcEntity = (OpcEntity) opcCodeOpcEntityMapping.get(opcCode); - if (opcEntity != null) { - if (opcEntity.getItems().size() != 0) { - long begin = System.currentTimeMillis(); - if (log.isTraceEnabled()) { - log.trace("opc {} 开始计时{}", opcCode, begin); - } - - new HashMap(); - - Map itemStatus; - try { - itemStatus = opcEntity.readAll(); - } catch (Exception var15) { - itemStatus = opcEntity.readDividually(); - } - - long end = System.currentTimeMillis(); - long duration = end - begin; - if (log.isTraceEnabled()) { - log.trace("opc {} 读取耗时:{}", opcCode, duration); - } - - if (duration > 1000L) { - log.warn("opc {} 读取超时 : {}", opcCode, duration); - } - -// boolean allNull = itemStatus.entrySet().stream().map((map) -> { -// return OpcUtl.getValue((Item)map.getKey(), (ItemState)map.getValue()); -// }).allMatch(Objects::isNull); -// if (allNull) { -// opcEntity.getItems().clear(); -// } - - UnifiedDataAccessor udw = opcEntity.getUdw(); - - - Set items = itemStatus.keySet(); - Iterator var18 = items.iterator(); - - while (var18.hasNext()) { - Item item = (Item) var18.next(); - ItemState itemState = (ItemState) itemStatus.get(item); - Object nowValue = OpcUtl.getValue(item, itemState); - String itemId = item.getId(); - Object historyValue = udw.getValue(itemId); - if (!ObjectUtl.isEquals(itemState.getQuality(), QualityTypeValue.OPC_QUALITY_GOOD) && historyValue != null) { - log.warn("opc 值不健康 item: {}, 状态: {}", itemId, itemState.getQuality()); - } - if (!UnifiedDataAppService.isEquals(nowValue, historyValue)) { - OpcItemDto itemDto = (OpcItemDto) itemCodeOpcItemDtoMapping.get(itemId); - if (true) { - this.logItemChanged(itemId, udw, nowValue, itemDto); - } - udw.setValue(itemId, nowValue); - } - - } - + @Override + public void autoRun() throws Exception { + { + //Thread.sleep(10000L); + isRun = true; + + Map servers = this.opcServerManageService.queryAllServerMap(); + Map>> pros; + do { + Thread.sleep(1000L); + pros = this.deviceAppService.findAllFormatProtocolFromDriver(); + } while (ObjectUtil.isEmpty(pros)); + Set keys = pros.keySet(); + Iterator var4 = keys.iterator(); + //代码执行一次 + while (var4.hasNext()) { + String key = (String) var4.next(); + List> list = (List) pros.get(key); + OpcServerManageDto opcServer = (OpcServerManageDto) servers.get(key); + Iterator var8 = list.iterator(); + while (var8.hasNext()) { + List groupProtols = (List) var8.next(); + DeviceOpcProtocolRunable runable = new DeviceOpcProtocolRunable(); + runable.setProtocols(groupProtols); + runable.setOpcServer(opcServer); + this.executorService.submit(runable); } } - } - } - - private void refreshOpcEntity() { - if (canRefreshOpcEntity) { - canRefreshOpcEntity = false; - long now = System.currentTimeMillis(); - if (now - this.lastRefreshOpcEntityTime >= 20000L) { - this.lastRefreshOpcEntityTime = now; - submitTimeLimitTask(() -> { - try { - Map>> protocol = this.deviceAppService.findAllFormatProtocolFromDriver(); - Iterator var2 = protocol.entrySet().iterator(); - while (var2.hasNext()) { - Entry>> stringListEntry = (Entry) var2.next(); - String opcCode = (String) stringListEntry.getKey(); - List> opcItemDtos = (List) stringListEntry.getValue(); - ((OpcEntity) opcCodeOpcEntityMapping.computeIfAbsent(opcCode, OpcEntity::new)).reload(opcItemDtos); - } - } catch (Exception var6) { - var6.printStackTrace(); - } finally { - canRefreshOpcEntity = true; - } + // 同步无光电设备信号 + //Map>> pros1 = this.deviceAppService.findAllFormatProtocolFromDriver(); + //List opcDrivers = this.deviceAppService.findDeviceDriver(DeviceDriver.class); - }, (String) null); + while (true) { + Thread.sleep(3000L); } } } - private void logMessage(String errorMessage) { - try { -// issueLogger.setResource(OpcConfig.resource_code, OpcConfig.resource_name).setError(StringUtl.getString(100), "设备同步通信异常").log(errorMessage, new Object[0]); -// businessLogger.setResource(OpcConfig.resource_code, OpcConfig.resource_name).setError(StringUtl.getString(100), "设备同步通信异常").log(errorMessage, new Object[0]); - } catch (Exception var5) { - var5.printStackTrace(); - } - - } - + @Override public void after() { - OpcStartTag.is_run = false; - opcCodeOpcEntityMapping.values().forEach((opcEntity) -> { - opcEntity.cleanUdwCache(); - OpcServerService opcServerService = SpringContextHolder.getBean(OpcServerService.class); - opcServerService.cleanGroups(opcEntity.getOpcCode()); - }); - opcCodeOpcEntityMapping = new ConcurrentHashMap(); - itemCodeOpcItemDtoMapping = new ConcurrentHashMap(); - executorService.shutdownNow(); - } - - private void logItemChanged(String itemId, UnifiedDataAccessor accessor_value, Object value, OpcItemDto itemDto) { - ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); - Object his = accessor_value.getValue(itemId); - List relate_items = itemDto.getRelate_items(); - if (relate_items != null && !relate_items.isEmpty()) { - StringBuilder sb = new StringBuilder(); - Iterator var8 = relate_items.iterator(); - - while (var8.hasNext()) { - String relate = (String) var8.next(); - Object obj = accessor_value.getValue(relate); - sb.append("key:" + relate + "value: " + obj + ";"); - } - if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption")) { - // 存在上次点位值为null情况 则不记录日志 - if(!(his instanceof Float) && !(value instanceof Float)){ - LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(),4, itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(his), String.valueOf(value)); - luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); - String logLevel = paramService.findByCode(AcsConfig.LOGLEVEL).getValue(); - if(StrUtil.isNotEmpty(logLevel) && isNumeric(logLevel) && (luceneLogDto.getLog_level() >= Integer.parseInt(logLevel))){ - log.info("{}", JSON.toJSONString(luceneLogDto)); - } - } - } - } else { - -// if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption")) { -// if(!(his instanceof Float) && !(value instanceof Float)){ -// LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), -// String.valueOf(his), String.valueOf(value)); -// luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); -// log.info("{}", JSON.toJSONString(luceneLogDto)); -// } -// } - - if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time") && !itemDto.getItem_code().endsWith("consumption")) { - if(!(his instanceof Float) && !(value instanceof Float)){ - LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(),4, itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(his), String.valueOf(value)); - luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); - String logLevel = paramService.findByCode(AcsConfig.LOGLEVEL).getValue(); - if(StrUtil.isNotEmpty(logLevel) && isNumeric(logLevel) && (luceneLogDto.getLog_level() >= Integer.parseInt(logLevel))){ - log.info("{}", JSON.toJSONString(luceneLogDto)); - } - } - } - - } - } - - static { - udw = UnifiedDataAccessorFactory.getAccessor(OpcConfig.udw_opc_value_key); - canReadOpcValues = new ConcurrentHashMap(); - opcCodeOpcEntityMapping = new ConcurrentHashMap(); - } - - public static boolean isNumeric(String str) { - return Pattern.compile("^[0-9]+$").matcher(str).matches(); + isRun = false; + this.executorService.shutdownNow(); + this.executorService = ThreadPoolBuilder.newBuilder() + .threadPoolName("deviceOpc_thread") + .threadFactory("deviceOpc_thread") + .corePoolSize(80) + .maximumPoolSize(100) + .keepAliveTime(40) + .timeUnit(TimeUnit.SECONDS) + .workQueue(MEMORY_SAFE_LINKED_BLOCKING_QUEUE.getName(), 2000) + .buildDynamic(); } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcEntity.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcEntity.java index b291a56..f885490 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcEntity.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcEntity.java @@ -1,3 +1,4 @@ +/* package org.nl.acs.opc; import org.nl.acs.opc.DeviceOpcSynchronizeAutoRun; @@ -178,3 +179,4 @@ public class OpcEntity { return this.opcCode; } } +*/ diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java index ce75a3e..df3b89e 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/LuceneService.java @@ -11,7 +11,6 @@ public interface LuceneService { * 获取labels和values树 * @return */ -// JSONArray getLabelsValues(); /** * 获取数据分页 diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java index 5ca7cc5..92350d4 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java @@ -1,18 +1,28 @@ package org.nl.system.service.lucene.impl; -import cn.hutool.core.util.CharsetUtil; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONArray; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.config.lucene.Searcher; +import org.apache.lucene.document.Document; +import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.*; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.BytesRef; import org.nl.system.service.lucene.LuceneService; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import java.util.Map; +import java.nio.file.Paths; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; @Service @@ -20,66 +30,108 @@ import java.util.Map; @Slf4j public class LuceneServiceImpl implements LuceneService { -// @Value("${loki.url}") -// private String lokiUrl; - -// @Value("${loki.systemName}") -// private String systemName; - //日志索引目录 - @Value("${lucene.index.path}") - private String luceneUrl; - /** - * 获取labels和values树 - * - * @return - */ -// @Override -// public JSONArray getLabelsValues() { -// JSONArray result = new JSONArray(); -// // 获取所有标签 -// String labelString = HttpUtil.get(lokiUrl + "/labels", CharsetUtil.CHARSET_UTF_8); -// JSONObject parse = (JSONObject) JSONObject.parse(labelString); -// JSONArray labels = parse.getJSONArray("data"); -// for (int i=0; i getAll(Map whereJson, Pageable page) { - JSONObject jo = new JSONObject(); + //获取要查询的路径,也就是索引所在的位置 try { - JSONObject jsonObject = (JSONObject) Searcher.search(luceneUrl, "", whereJson); - JSONArray array = jsonObject.getJSONArray("content"); - int totalElements = Integer.parseInt(jsonObject.get("totalElements").toString()); - jo.put("content", array); - jo.put("totalElements", totalElements); + Resource resource = new ClassPathResource("config/application.yml"); + YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + yamlPropertiesFactoryBean.setResources(resource); + Properties properties = yamlPropertiesFactoryBean.getObject(); + // 获取配置值 + String luceneDir = properties.getProperty("lucene.index.path"); + FSDirectory directory = FSDirectory.open(Paths.get(luceneDir)); + DirectoryReader open = DirectoryReader.open(directory); + IndexSearcher searcher = new IndexSearcher(open); + // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数: + int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数 + int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码 + + BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); + //时间范围查询 + String startDate = (String) whereJson.get("begin_time"); + String endDate = (String) whereJson.get("end_time"); + + if (startDate == null){ + Calendar calendar=Calendar.getInstance(); + calendar.set(1970, 0, 1); + startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + }else{ + startDate = getDate(startDate); + } + if (endDate == null){ + endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + } else { + endDate = getDate(endDate); + } + TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); + booleanQueryBuilder.add(termRangeQuery, BooleanClause.Occur.MUST); + if (whereJson.get("device_code") != null){ + Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("method") != null){ + Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("status_code") != null){ + Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("requestparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("responseparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("blurry") != null) { + WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); + booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); + } + + TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG,true)), 20000, 0); + searcher.search(booleanQueryBuilder.build(), collector); + TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize); + int totalSize = collector.getTotalHits(); + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + + List list = new ArrayList<>(); + for (ScoreDoc scoreDoc : scoreDocs) { + Document doc = open.document(scoreDoc.doc); + JSONObject object = new JSONObject(); + object.put("content",doc.get("fieldContent")); + object.put("device_code",doc.get("device_code")); + object.put("logTime",doc.get("logTime")); + object.put("method",doc.get("method")); + object.put("status_code",doc.get("status_code")); + object.put("requestparam",doc.get("requestparam")); + object.put("responseparam",doc.get("responseparam")); + if(doc.get("fieldContent") != null) { + list.add(object); + } + } + open.close(); + directory.close(); + JSONObject jo = new JSONObject(); + jo.put("content", list); + jo.put("totalElements", totalSize); + return jo; } catch (Exception e) { log.error("索引查询为空", e); throw new NullPointerException("索引查询为空"); } + } - return jo; + public static String getDate(String timeString) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 + Date date = sdf.parse(timeString); + timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 + return timeString; } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 32da9ff..39e9b71 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -384,27 +384,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { */ private void releaseComplete(SchBaseTask schBaseTask, String status, String is_connector, String taskType, boolean is_empty) { //TODO:空料容放货完成反馈给Connector - if (!is_empty) { - finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code2()); - } else { - finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code1()); - if ("1".equals(is_connector)) { + if ("1".equals(is_connector)) { + if (!is_empty) { + finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code2()); + } else { + finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code1()); JSONObject json = new JSONObject(); json.put("vehicle_code", schBaseTask.getVehicle_code()); json.put("status", status); json.put("device_code", schBaseTask.getPoint_code2()); json.put("task_code", schBaseTask.getTask_code()); AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json); - - } - if ("2".equals(is_connector)) { - JSONObject json = new JSONObject(); - json.put("vehicle_code", schBaseTask.getVehicle_code()); - json.put("status", status); - json.put("device_code", schBaseTask.getPoint_code2()); - json.put("task_code", schBaseTask.getTask_code()); - AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json); } + } else if ("2".equals(is_connector)) { + JSONObject json = new JSONObject(); + json.put("vehicle_code", schBaseTask.getVehicle_code()); + json.put("status", status); + json.put("device_code", schBaseTask.getPoint_code2()); + json.put("task_code", schBaseTask.getTask_code()); + AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json); } } @@ -509,13 +507,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { boolean flag = true; AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json); if (acsResponse.getStatus() != 200 || StringUtils.isNotEmpty(acsResponse.getErrMsg())) { - throw new BadRequestException("申请失败,"+ acsResponse.getErrMsg()); + throw new BadRequestException("申请失败," + acsResponse.getErrMsg()); } } } /** * 申请放货 + * * @param schBaseTask * @param status * @param is_connector @@ -531,9 +530,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { boolean flag = true; AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json); if (acsResponse.getStatus() != 200 || StringUtils.isNotEmpty(acsResponse.getErrMsg())) { - throw new BadRequestException("申请失败,"+ acsResponse.getErrMsg()); + throw new BadRequestException("申请失败," + acsResponse.getErrMsg()); } - }else if("1".equals(is_connector)){ + } else if ("1".equals(is_connector)) { JSONObject json = new JSONObject(); json.put("vehicle_code", schBaseTask.getVehicle_code()); json.put("status", status); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java index 8058657..12f3361 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java @@ -96,11 +96,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { param.put("task_code", task_code); param.put("remark", remark); param.put("ext_data", data); - try{ - connectorTask.apply(param); - }catch (Exception e){ - return MapOf.of("status", 400,"msg", e.getMessage()); - } + connectorTask.apply(param); schBasePoint.setIs_lock(true); schBasePointService.updateById(schBasePoint); map1.put("task_code", task_code); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java index 3b74329..83b6cfb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.gson.Gson; +import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.region.RegionEnum; import org.nl.config.IdUtil; import org.nl.config.MapOf; @@ -38,6 +39,7 @@ import java.util.Map; /** * @author LENOVO */ +@Slf4j @Service public class SortingServiceImpl implements SortingService { @@ -51,6 +53,7 @@ public class SortingServiceImpl implements SortingService { @Override public Map createAgvTask(JSONObject jsonObject) { + log.info("sorting下发agv任务:{}",jsonObject); try { Assert.noNullElements(new Object[]{jsonObject,jsonObject.getString("pointCode"),jsonObject.getString("vehicle_code") ,jsonObject.getString("task_type"),jsonObject.getString("is_empty")},"请求参数不能为空"); @@ -85,20 +88,19 @@ public class SortingServiceImpl implements SortingService { AbstractTask connectorTask = taskFactory.getTask("CNTTask"); if(SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)){ taskParam.put("config_code","SortingCNTTask"); + connectorTask.apply(taskParam); //TODO:叫料 }else if(SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)){ taskParam.put("config_code","SortingCMTTask"); + connectorTask.apply(taskParam); //TODO:将空托盘放到线边库 }else if(SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)){ taskParam.put("config_code","SortingSNTTask"); + connectorTask.apply(taskParam); //TODO:将满料放到线边库 }else if(SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)){ taskParam.put("config_code","SortingSMTTask"); - } - try{ connectorTask.apply(taskParam); - }catch (Exception e){ - return MapOf.of("status", 400,"msg", e.getMessage()); } return MapOf.of("status", 200,"msg", "sucess"); }catch (Exception ex){ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java index cbeea54..e5545e1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java @@ -122,7 +122,7 @@ public class ConnectorUtil { return AcsResponse.requestRefuse("未连接ACS!"); } String url = connectorUrl + api; - log.info("下发acs任务的参数为:{}", JSON.toJSONString(object)); + log.info("反馈sortingAGV状态:{},url:{}", JSON.toJSONString(object),url); AcsResponse resultForAcs; try { String resultMsg = HttpRequest.post(url) @@ -130,6 +130,7 @@ public class ConnectorUtil { .execute().body(); result = JSONObject.parseObject(resultMsg); resultForAcs = JSONObject.toJavaObject(result, AcsResponse.class); + log.info("反馈sortingAGV状态的响应:{}", JSON.toJSONString(resultMsg)); } catch (Exception e) { String msg = e.getMessage(); //网络不通 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java index f5be582..8d4f939 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java @@ -71,6 +71,7 @@ public class FTGTask extends AbstractTask { // 设置终点并修改创建成功状态 task.setPoint_code1(schBasePoint.getPoint_code()); task.setVehicle_type(schBasePoint.getCan_vehicle_type()); + task.setVehicle_code(schBasePoint.getVehicle_code()); task.setRemark(""); task.setTask_status(TaskStatus.CREATED.getCode()); taskService.updateById(task); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java index e508342..7dc8267 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.GoodsEnum; import org.nl.common.enums.region.RegionEnum; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; @@ -25,6 +26,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; import org.nl.wms.util.PointUtils; @@ -98,6 +100,7 @@ public class SortingCMTTask extends AbstractTask { pointService.update(new UpdateWrapper() .set("ing_task_code",task.getTask_code()) .set("is_lock",true) + .set("point_status", GoodsEnum.OUT_OF_STOCK.getValue()) .eq("point_code",structPoint.getPoint_code())); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java index c0ef175..8c982f1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java @@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.GoodsEnum; import org.nl.common.enums.VehicleEnum; import org.nl.common.enums.region.RegionEnum; +import org.nl.common.enums.wms.PointStatusEnum; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.acs.service.dto.to.BaseResponse; @@ -69,6 +71,7 @@ public class SortingCNTTask extends AbstractTask { pointService.update(new UpdateWrapper() .set("ing_task_code",task.getTask_code()) .set("is_lock",true) + .set("point_status", GoodsEnum.OUT_OF_STOCK.getValue()) .eq("point_code",basePoint.getPoint_code())); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorAndSorting.xml b/lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorAndSorting.xml new file mode 100644 index 0000000..f55568f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/resources/log/ConnectorAndSorting.xml @@ -0,0 +1,34 @@ + + + + + + + + + + ${LOG_HOME}/connectorOrSorting/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index 3923d3b..a45f2a7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -18,6 +18,7 @@ +