From 185cad8bf516ce2fc4e262116e64ca892a8e45dc Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 21 Nov 2025 15:12:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:1=E3=80=81=E6=96=B0=E5=A2=9E=E6=95=85?= =?UTF-8?q?=E9=9A=9C=E8=AE=BE=E5=A4=87=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=9B2=E3=80=81=E6=B5=85=E8=B4=A7=E4=BD=8D=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=85=B7=E4=BD=93=E4=BD=8D=E7=BD=AE=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=EF=BC=9B3=E3=80=81B1=E5=88=86=E9=85=8D=E5=86=B7=E5=8D=B4?= =?UTF-8?q?=E5=8C=BA=E7=82=B9=E4=BD=8D=E5=A2=9E=E5=8A=A0=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdm/error/service/DeviceFaultService.java | 16 +++ .../service/impl/DeviceFaultServiceImpl.java | 46 +++++++ .../screen/contorller/FaultController.java | 3 +- .../org/nl/b_lms/pdm/screen/model/Fault.java | 35 ----- .../nl/b_lms/pdm/screen/model/ScreenTask.java | 53 ------- .../b_lms/pdm/screen/see/SseBroadcaster.java | 5 +- .../see/aop/TaskUpdateBroadcastAspect.java | 12 +- .../b_lms/pdm/screen/store/InMemoryStore.java | 26 ++-- .../PdmBiSubpackagerelationServiceImpl.java | 4 +- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 16 +++ .../sch/tasks/first_floor_area/DjqTask.java | 2 +- .../first_floor_area/DjqToKzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 2 +- .../first_floor_area/GzqToKzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 2 +- .../first_floor_area/SendDjqKzjTask.java | 2 +- .../first_floor_area/SendGzqKzjTask.java | 2 +- .../tasks/first_floor_area/ShiftingTask.java | 2 +- .../tasks/first_floor_area/SsxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxqTask.java | 2 +- .../org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql | 32 +++++ .../util/impl/InBoxManageServiceImpl.java | 26 +++- .../config/thread/AsyncTaskExecutePool.java | 1 + .../master/rest/FaultDeviceController.java | 7 +- .../master/service/FaultDeviceService.java | 6 + .../service/impl/FaultDeviceServiceImpl.java | 80 ++++++++++- .../nl/wms/pda/mps/rest/BakingController.java | 4 +- .../nl/wms/pda/mps/service/BakingService.java | 2 +- .../mps/service/impl/BakingServiceImpl.java | 129 ++++++++++-------- .../wms/sch/manage/AutoIntoHotCacheTask.java | 2 +- .../wms/agvrush/error/bstIvtShafttubeivt.js | 35 +++++ .../src/views/wms/agvrush/error/index.vue | 125 +++++++++++++++++ 33 files changed, 497 insertions(+), 190 deletions(-) delete mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java delete mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java create mode 100644 lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js create mode 100644 lms/nladmin-ui/src/views/wms/agvrush/error/index.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java index 222c2f17c..cc7fb3754 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/DeviceFaultService.java @@ -1,9 +1,25 @@ package org.nl.b_lms.pdm.error.service; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.common.domain.query.PageQuery; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + @Service public interface DeviceFaultService extends IService { + + IPage queryAll(Map whereJson, PageQuery pageable); + + void download(Map map, HttpServletResponse response) throws IOException; + + + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java index 5e3aeb073..040eaf5ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/error/service/impl/DeviceFaultServiceImpl.java @@ -1,11 +1,57 @@ package org.nl.b_lms.pdm.error.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.error.model.mapper.DeviceFaultMapper; import org.nl.b_lms.pdm.error.service.DeviceFaultService; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.utils.FileUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + @Service public class DeviceFaultServiceImpl extends ServiceImpl implements DeviceFaultService { + + @Autowired + private DeviceFaultMapper deviceFaultMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(whereJson.get("device_code")), DeviceFault::getDeviceCode, whereJson.get("device_code")); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + deviceFaultMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void download(Map whereJson, HttpServletResponse response) throws IOException { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(whereJson.get("device_code")), DeviceFault::getDeviceCode, whereJson.get("device_code")); + List deviceFaults = deviceFaultMapper.selectList(lam); + List> list = new ArrayList<>(); + deviceFaults.forEach(deviceFault -> { + Map map = new LinkedHashMap<>(); + map.put("设备编码", deviceFault.getDeviceCode()); + map.put("设备名称", deviceFault.getDeviceName()); + map.put("故障编码", deviceFault.getErrorCode()); + map.put("故障描述", deviceFault.getErrorMessage()); + map.put("开始时间", deviceFault.getStartTime()); + map.put("持续时长(S)", deviceFault.getDuration()); + list.add(map); + }); + FileUtil.downloadExcel(list, response); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java index 8b3f7c268..9e89de386 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/contorller/FaultController.java @@ -2,6 +2,7 @@ package org.nl.b_lms.pdm.screen.contorller; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONArray; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.http.MediaType; @@ -23,7 +24,7 @@ public class FaultController { @GetMapping @SaIgnore - public JSONArray getFaults(@RequestParam(required = false) Integer limit) { + public List getFaults(@RequestParam(required = false) Integer limit) throws InterruptedException { return store.findFaults(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java deleted file mode 100644 index ece8e37df..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/Fault.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.nl.b_lms.pdm.screen.model; - -public class Fault { - private Long id; - - private String deviceId; - - private String deviceType; - - private String faultContent; - - private Long occurTs; - private String severity; // info/warn/error - - public Fault() {} - - public Fault(Long id, String deviceId, String deviceType, String faultContent, Long occurTs, String severity) { - this.id = id; this.deviceId = deviceId; this.deviceType = deviceType; this.faultContent = faultContent; - this.occurTs = occurTs; this.severity = severity; - } - - public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - public String getDeviceId() { return deviceId; } - public void setDeviceId(String deviceId) { this.deviceId = deviceId; } - public String getDeviceType() { return deviceType; } - public void setDeviceType(String deviceType) { this.deviceType = deviceType; } - public String getFaultContent() { return faultContent; } - public void setFaultContent(String faultContent) { this.faultContent = faultContent; } - public Long getOccurTs() { return occurTs; } - public void setOccurTs(Long occurTs) { this.occurTs = occurTs; } - public String getSeverity() { return severity; } - public void setSeverity(String severity) { this.severity = severity; } -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java deleted file mode 100644 index 25d587262..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/model/ScreenTask.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.nl.b_lms.pdm.screen.model; - - -public class ScreenTask { - private Long id; - - private String name; - - private String type; // AGV搬运/堆垛机操作 - - private String status; // pending, running, completed, failed, paused - private String priority; // high/medium/low - private Integer progress; // 0-100 - private String startLocation; - private String endLocation; - private String creator; - - private Long createTs; // epoch millis - private String description; - - public ScreenTask() {} - - public ScreenTask(Long id, String name, String type, String status, String priority, Integer progress, - String startLocation, String endLocation, String creator, Long createTs, String description) { - this.id = id; this.name = name; this.type = type; this.status = status; this.priority = priority; - this.progress = progress; this.startLocation = startLocation; this.endLocation = endLocation; - this.creator = creator; this.createTs = createTs; this.description = description; - } - - public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - public String getName() { return name; } - public void setName(String name) { this.name = name; } - public String getType() { return type; } - public void setType(String type) { this.type = type; } - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } - public String getPriority() { return priority; } - public void setPriority(String priority) { this.priority = priority; } - public Integer getProgress() { return progress; } - public void setProgress(Integer progress) { this.progress = progress; } - public String getStartLocation() { return startLocation; } - public void setStartLocation(String startLocation) { this.startLocation = startLocation; } - public String getEndLocation() { return endLocation; } - public void setEndLocation(String endLocation) { this.endLocation = endLocation; } - public String getCreator() { return creator; } - public void setCreator(String creator) { this.creator = creator; } - public Long getCreateTs() { return createTs; } - public void setCreateTs(Long createTs) { this.createTs = createTs; } - public String getDescription() { return description; } - public void setDescription(String description) { this.description = description; } -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java index 801c47460..791805e73 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/SseBroadcaster.java @@ -1,6 +1,7 @@ package org.nl.b_lms.pdm.screen.see; import com.alibaba.fastjson.JSONArray; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.pdm.screen.store.InMemoryStore; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.springframework.stereotype.Component; @@ -42,7 +43,7 @@ public class SseBroadcaster { } public void pushFaultsSnapshot() { - JSONArray snapshot = store.findFaults(); + List snapshot = store.findFaults(); pushFaults(snapshot); } @@ -57,7 +58,7 @@ public class SseBroadcaster { } } - public void pushFaults(JSONArray faults) { + public void pushFaults(List faults) { if (faultEmitters.isEmpty()) return; for (SseEmitter emitter : faultEmitters) { try { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java index ccf95c83f..6ac193868 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/see/aop/TaskUpdateBroadcastAspect.java @@ -5,10 +5,14 @@ import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.reflect.MethodSignature; import org.nl.b_lms.pdm.screen.see.SseBroadcaster; +import org.nl.config.thread.AsyncTaskExecutePool; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; +import java.util.concurrent.Executor; import java.util.concurrent.locks.ReentrantLock; /** @@ -22,6 +26,10 @@ import java.util.concurrent.locks.ReentrantLock; public class TaskUpdateBroadcastAspect { private final SseBroadcaster broadcaster; + @Autowired + @Qualifier("pushExecutor") + private Executor pushExecutor; + // 非阻塞并发保护:同一时刻仅允许一次推送执行,其他并发调用直接跳过 private final ReentrantLock pushLock = new ReentrantLock(); @@ -71,10 +79,10 @@ public class TaskUpdateBroadcastAspect { if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { @Override - public void afterCommit() { doPushGuarded.run(); } + public void afterCommit() { pushExecutor.execute(doPushGuarded); } }); } else { - doPushGuarded.run(); + pushExecutor.execute(doPushGuarded); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java index 90beea427..9f757b4e0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/screen/store/InMemoryStore.java @@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.basedata.master.service.FaultDeviceService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -24,6 +26,9 @@ public class InMemoryStore { @Autowired private IschBaseTaskService ischBaseTaskService; + @Autowired + private FaultDeviceService faultDeviceService; + public List findTasks() { List targetType = Arrays.asList( "010702", "010703", "010704", "010706", "010710", "010712", "010714", "010715", @@ -48,25 +53,10 @@ public class InMemoryStore { } - public JSONArray findFaults() { + public List findFaults() { JSONArray blk_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'BLK' AND is_crux = '1' AND region_code IN ('RK','NBJ','DDJ')").getResultJSONArray(0); - List blkList = new ArrayList<>(); - for (int i = 0; i < blk_rows.size(); i++) { - JSONObject row = blk_rows.getJSONObject(i); - blkList.add(row.getString("device_code")); - } - - WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); - JSONObject result2; - try { - result2 = bean.getDeviceErrorInfo(blkList, "BLK"); - } catch (Exception e) { - result2 = new JSONObject(); - log.info(e.getMessage()); - } - // 调用acs接口获取设备 - JSONArray blk_data = result2.getJSONArray("data"); - return ObjectUtil.isNotEmpty(blk_data) ? blk_data : new JSONArray(); + List faults = faultDeviceService.filterErrorDevice(blk_rows); + return ObjectUtil.isNotEmpty(faults) ? faults : new ArrayList<>(); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 51252c02d..08dde1994 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -460,9 +460,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl addTask() { /* @@ -141,9 +147,19 @@ public class TwoOutTask extends AbstractAcsTask { JSONObject jsonObject = WQL.getWO("OUT_TASK01").addParamMap(json) .process().uniqueResult(0); + json.put("flag", "3"); + JSONObject strJson = WQL.getWO("OUT_TASK01").addParamMap(json) + .process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonObject)) { result.add(jsonObject); } else { + if (strJson.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库锁"))){ + JSONObject update_jo = new JSONObject(); + update_jo.put("remark","下发深货位任务时,浅货位存在出库锁却不存在任务,暂时不下发!"); + WQLObject.getWQLObject("SCH_BASE_Task").update(update_jo,"task_id = '" + json.getString("task_id") + "'"); + continue; + } json.put("zdepth",IOSEnum.IS_NOTANDYES.code("是")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index c63989043..aa3376e7e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -47,7 +47,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class DjqTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java index 52150968a..33d331f12 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java @@ -45,7 +45,7 @@ import java.util.stream.Collectors; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class DjqToKzjhcwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 2ce71ab1d..c718742d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class GzqTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index eef8170f6..0bd4ab75c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class GzqToKzjhcwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index ade0cd17d..ef6da0659 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -51,7 +51,7 @@ import java.util.stream.Stream; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class MzhcwTask extends AbstractAcsTask { private final String THIS_CLASS = MzhcwTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java index c6b2aea33..413847189 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SendDjqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 3895f61fa..b7a674def 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -40,7 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SendGzqKzjTask extends AbstractAcsTask { @Resource private IschBaseTaskService taskService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java index 716df8208..d45bd8fe7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ShiftingTask.java @@ -40,7 +40,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ShiftingTask extends AbstractAcsTask { private final String THIS_CLASS = ShiftingTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 54fb00b8b..48fe8d512 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -41,7 +41,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class SsxDjwTask extends AbstractAcsTask { private final String THIS_CLASS = SsxDjwTask.class.getName(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 7ff3f0b29..d92e00867 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -52,7 +52,7 @@ import java.util.concurrent.TimeUnit; */ @Service() @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ZxDjwTask extends AbstractAcsTask { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 3a6f6ba79..65353147a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -50,7 +50,7 @@ import java.util.List; @Service() @RequiredArgsConstructor @Slf4j -@PushSseSnapshot(faults = false) +@PushSseSnapshot public class ZxqTask extends AbstractAcsTask { @Resource diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql index d54b7afe2..9a8063138 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql @@ -102,3 +102,35 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + attr.lock_type, + attr.struct_code + FROM + st_ivt_structattr + WHERE + + and attr.sect_code = 'BZC01' + and attr.zdepth = '1' + + OPTION 输入.row_num <> "" + attr.row_num = 输入.row_num + ENDOPTION + + OPTION 输入.col_num <> "" + attr.col_num = 输入.col_num + ENDOPTION + + OPTION 输入.layer_num <> "" + attr.layer_num = 输入.layer_num + ENDOPTION + + OPTION 输入.block_num <> "" + attr.block_num = 输入.block_num + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 63d983679..f3d9ed127 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.TwoExceptionInTask; import org.nl.b_lms.sch.tasks.TwoInBoxTask; import org.nl.b_lms.sch.tasks.TwoInBoxTrussTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; @@ -145,7 +146,30 @@ public class InBoxManageServiceImpl implements InBoxManageService { } String pcsn = vehicle_ext.getString("pcsn"); if (ObjectUtil.isNotEmpty(pcsn)){ - throw new BadRequestException("托盘【"+whereJson.getString("vehicle_code")+"】已经绑定了木箱【"+pcsn+"】,请进行核实!"); + //更新子卷入库备注信息 + JSONObject jsonTaskParam = new JSONObject(); + //创建异常任务去异常入库口 + //入库口 + jsonTaskParam.put("point_code1", whereJson.getString("device_code")); + //异常位 + jsonTaskParam.put("point_code2", "RK1003"); + jsonTaskParam.put("vehicle_code", boxNo); + jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code")); + JSONObject request_param = new JSONObject(); + if (whereJson.getString("vehicle_code").startsWith("A")) { + request_param.put("containerType", "2"); + } else if (whereJson.getString("vehicle_code").startsWith("B")) { + request_param.put("containerType", "1"); + } else { + throw new BadRequestException("托盘号有误,无法找到对应的托盘类型!"); + } + + jsonTaskParam.put("request_param", request_param); + TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class); + bean.createTask(jsonTaskParam); + bean.immediateNotifyAcs(null); + return; + //throw new BadRequestException("托盘【"+whereJson.getString("vehicle_code")+"】已经绑定了木箱【"+pcsn+"】,请进行核实!"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java index 9eb668558..287fdb41b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java @@ -45,6 +45,7 @@ public class AsyncTaskExecutePool implements AsyncConfigurer { } @Override + @Bean("pushExecutor") public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //核心线程池大小 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java index 11344afe0..fc7ca41d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/FaultDeviceController.java @@ -76,10 +76,15 @@ public class FaultDeviceController { @GetMapping("/getAllerrorDevice") @Log("查询所有设备故障") - public ResponseEntity getAllerrorDevice(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(faultDeviceService.getAllerrorDevice(whereJson, page), HttpStatus.OK); } + @GetMapping("/getErrorDeviceInfo") + @Log("查询所有设备故障") + public ResponseEntity getErrorDeviceInfo(@RequestBody JSONObject jsonObject) { + return new ResponseEntity<>(faultDeviceService.getErrorDeviceInfo(jsonObject), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java index 70ac7ff75..6ca83b162 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/FaultDeviceService.java @@ -1,6 +1,8 @@ package org.nl.wms.basedata.master.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.b_lms.pdm.error.model.DeviceFault; import org.nl.wms.basedata.master.service.dto.CustomerbaseDto; import org.springframework.data.domain.Pageable; @@ -91,4 +93,8 @@ public interface FaultDeviceService { * @return Map */ Map getAllerrorDevice(Map whereJson, Pageable page); + + List getErrorDeviceInfo(JSONObject whereJson); + + List filterErrorDevice(JSONArray rows); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java index b2e9b545e..0164aa894 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/FaultDeviceServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.wms.basedata.master.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; +import org.nl.b_lms.pdm.error.model.DeviceFault; +import org.nl.b_lms.pdm.error.service.FaultManager; import org.nl.common.utils.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -24,14 +26,14 @@ import org.nl.wms.basedata.master.service.FaultDeviceService; import org.nl.wms.basedata.master.service.dto.CustomerbaseDto; import org.nl.wms.basedata.st.service.UserDeviceService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.swing.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * @author liuxy @@ -43,6 +45,9 @@ import java.util.Map; @Slf4j public class FaultDeviceServiceImpl implements FaultDeviceService { + @Autowired + private FaultManager faultManager; + @Override public Map queryAll(Map whereJson, Pageable page) { String fault_code = MapUtil.getStr(whereJson, "fault_code"); @@ -348,7 +353,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { b1List.add(row.getString("device_code")); } - JSONObject result = bean.getDeviceErrorInfo(b1List,"B1"); + JSONObject result = bean.getDeviceErrorInfo(b1List, "B1"); // 调用acs接口获取设备 JSONArray b1_data = result.getJSONArray("data"); @@ -359,7 +364,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { blkList.add(row.getString("device_code")); } - JSONObject result2 = bean.getDeviceErrorInfo(blkList,"BLK"); + JSONObject result2 = bean.getDeviceErrorInfo(blkList, "BLK"); // 调用acs接口获取设备 JSONArray blk_data = result2.getJSONArray("data"); @@ -389,7 +394,7 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { } } //查询内包间套轴对接位的异常 - if (inArea.contains("CBJ") && (StrUtil.isEmpty(region_code) || region_code.equals("CBJ")) ) { + if (inArea.contains("CBJ") && (StrUtil.isEmpty(region_code) || region_code.equals("CBJ"))) { IBstIvtCutpointivtService bean2 = SpringContextHolder.getBean(IBstIvtCutpointivtService.class); List list = bean2.list(new LambdaQueryWrapper() .eq(BstIvtCutpointivt::getPoint_type, "1") @@ -411,4 +416,67 @@ public class FaultDeviceServiceImpl implements FaultDeviceService { json.put("content", data); return json; } + + @Override + public List getErrorDeviceInfo(JSONObject whereJson) { + WmsToAcsServiceImpl bean = SpringContextHolder.getBean(WmsToAcsServiceImpl.class); + //查询当前人员对应的设备是多少 + JSONArray b1_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'B1' AND is_crux = '1'").getResultJSONArray(0); + List b1List = new ArrayList<>(); + for (int i = 0; i < b1_rows.size(); i++) { + JSONObject row = b1_rows.getJSONObject(i); + b1List.add(row.getString("device_code")); + } + + JSONObject result = bean.getDeviceErrorInfo(b1List, "B1"); + // 调用acs接口获取设备 + JSONArray b1_data = result.getJSONArray("data"); + + JSONArray blk_rows = WQLObject.getWQLObject("em_bi_monitordevice").query("product_area = 'BLK' AND is_crux = '1'").getResultJSONArray(0); + List blkList = new ArrayList<>(); + for (int i = 0; i < blk_rows.size(); i++) { + JSONObject row = blk_rows.getJSONObject(i); + blkList.add(row.getString("device_code")); + } + + JSONObject result2 = bean.getDeviceErrorInfo(blkList, "BLK"); + // 调用acs接口获取设备 + JSONArray blk_data = result2.getJSONArray("data"); + b1_data.addAll(blk_data); + + + List deviceFaultList = new ArrayList<>(); + for (int i = 0; i < b1_data.size(); i++) { + JSONObject row = b1_data.getJSONObject(i); + DeviceFault deviceFault = new DeviceFault(); + deviceFault.setDeviceCode(row.getString("device_code")); + deviceFault.setDeviceName(row.getString("device_name")); + deviceFault.setErrorCode(row.getString("error_code")); + deviceFault.setErrorMessage(row.getString("error_message")); + deviceFaultList.add(deviceFault); + } + for (int i = 0; i < blk_data.size(); i++) { + JSONObject row = blk_data.getJSONObject(i); + DeviceFault deviceFault = new DeviceFault(); + deviceFault.setDeviceCode(row.getString("device_code")); + deviceFault.setDeviceName(row.getString("device_name")); + deviceFault.setErrorCode(row.getString("error_code")); + deviceFault.setErrorMessage(row.getString("error_message")); + deviceFaultList.add(deviceFault); + } + return deviceFaultList; + } + + public List filterErrorDevice(JSONArray rows) { + ConcurrentHashMap memory = faultManager.memory; + List list = new ArrayList<>(); + Set memKeys = new HashSet<>(memory.keySet()); + for (int i = 0; i < rows.size(); i++) { + JSONObject jsonObject = rows.getJSONObject(i); + if (memKeys.contains(jsonObject.getString("device_code"))) { + list.add(memory.get(jsonObject.getString("device_code"))); + } + } + return list; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java index d308bb8e4..ae9f1b9ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/BakingController.java @@ -3,6 +3,7 @@ package org.nl.wms.pda.mps.rest; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.modules.logging.annotation.Log; import org.nl.wms.pda.mps.service.BakingService; @@ -26,7 +27,8 @@ public class BakingController { @PostMapping("/ovenInAndOut") @Log("烘箱出入") -@SaIgnore + @SaIgnore + @SneakyThrows public ResponseEntity queryRawFoil(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(bakingService.ovenInAndOut(whereJson), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java index 178c71d3e..dbe8bf161 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/BakingService.java @@ -10,7 +10,7 @@ public interface BakingService { * @param whereJson / * @return JSONObject */ - JSONObject ovenInAndOut(JSONObject whereJson); + JSONObject ovenInAndOut(JSONObject whereJson) throws InterruptedException; /** * 入冷却 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index 599493715..fe7e39ccf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -27,10 +27,14 @@ import org.nl.wms.sch.tasks.CutConveyorTask; import org.nl.wms.sch.tasks.InCoolIvtTask; import org.nl.wms.sch.tasks.InHotTask; import org.nl.wms.sch.tasks.OutHotTask; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.concurrent.TimeUnit; + @Service @RequiredArgsConstructor @Slf4j @@ -39,6 +43,9 @@ public class BakingServiceImpl implements BakingService { @Autowired private RedisUtils redisUtils; + @Autowired + private RedissonClient redissonClient; + /* * 业务流程: * 入烤箱: @@ -56,7 +63,7 @@ public class BakingServiceImpl implements BakingService { */ @Override @Transactional(rollbackFor = Exception.class) - public JSONObject ovenInAndOut(JSONObject whereJson) { + public JSONObject ovenInAndOut(JSONObject whereJson) throws InterruptedException { String option = whereJson.getString("option"); // 1-入箱 2-出箱 @@ -413,62 +420,74 @@ public class BakingServiceImpl implements BakingService { //判断区域是否属于B1,B1的出烘箱流程出到对应的半成品区 if ("B1".equals(product_area)) { - JSONObject jsonRaw = rawTab.query("container_name = '" + jsonHotIvt.getString("container_name") + "' and is_delete = '0'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonRaw)) { - throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getString("container_name") + "对应的生箔工单!"); - } - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonMater)) { - throw new BadRequestException("物料基础信息中无此物料!"); - } + RLock lock = redissonClient.getLock("AutoIntoHotCacheTask"); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + JSONObject jsonRaw = rawTab.query("container_name = '" + jsonHotIvt.getString("container_name") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonRaw)) { + throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getString("container_name") + "对应的生箔工单!"); + } + JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonMater)) { + throw new BadRequestException("物料基础信息中无此物料!"); + } - //查询当前点位为空且没有任务的桁架内缓存点 - JSONObject cache_param = new JSONObject(); - cache_param.put("flag", "4"); - cache_param.put("point_location", jsonHotIvt.getString("point_location")); - cache_param.put("product_area", jsonHotIvt.getString("product_area")); - JSONObject cache_jo = WQL.getWO("PDA_COOLIN").addParamMap(cache_param).process().uniqueResult(0); - if (ObjectUtil.isEmpty(cache_jo)) { - throw new BadRequestException("桁架范围内没有可用的空点位,请检查库存!"); + //查询当前点位为空且没有任务的桁架内缓存点 + JSONObject cache_param = new JSONObject(); + cache_param.put("flag", "4"); + cache_param.put("point_location", jsonHotIvt.getString("point_location")); + cache_param.put("product_area", jsonHotIvt.getString("product_area")); + JSONObject cache_jo = WQL.getWO("PDA_COOLIN").addParamMap(cache_param).process().uniqueResult(0); + if (ObjectUtil.isEmpty(cache_jo)) { + throw new BadRequestException("桁架范围内没有可用的空点位,请检查库存!"); + } + + // 3.创建任务 + JSONObject param = new JSONObject(); + param.put("point_code1", point_code1); + param.put("point_code2", cache_jo.getString("point_code")); + param.put("material_code", jsonHotIvt.getString("container_name")); + param.put("product_area", jsonHotIvt.getString("product_area")); + OutHotTask outHotTask = new OutHotTask(); + String task_id = outHotTask.createTask(param); + + //查询该母卷对应最近的一条入烘箱记录 + JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); + + JSONObject hotParam = new JSONObject(); + hotParam.put("container_name", jsonRaw.getString("container_name")); + hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); + hotParam.put("material_id", jsonMater.getString("material_id")); + hotParam.put("qty", jsonRaw.get("qty")); + hotParam.put("io_type", "1"); + hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("task_id", task_id); + hotParam.put("start_point_code", point_code1); + hotParam.put("end_point_code", cache_jo.getString("point_code")); + boolean exists = redisUtils.hHasKey(point_code1, "temperature"); + String point_temperature = ""; + if (exists) { + point_temperature = (String) redisUtils.hget(point_code1, "temperature"); + } else { + throw new BadRequestException("当前操作点位设备:" + point_code1 + ",无法获取温度,请稍后再试!"); + } + hotParam.put("temperature", point_temperature); + + if (ObjectUtil.isEmpty(last_hot_mst)) { + hotParam.put("oven_time", "480"); + } else { + hotParam.put("oven_time", last_hot_mst.getString("oven_time")); + } + this.createHotIoMst(hotParam); + } else { + throw new BadRequestException("当前其他任务正在分配冷却站点,为避免重复分配请稍后再试!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } } - - // 3.创建任务 - JSONObject param = new JSONObject(); - param.put("point_code1", point_code1); - param.put("point_code2", cache_jo.getString("point_code")); - param.put("material_code", jsonHotIvt.getString("container_name")); - param.put("product_area", jsonHotIvt.getString("product_area")); - OutHotTask outHotTask = new OutHotTask(); - String task_id = outHotTask.createTask(param); - - //查询该母卷对应最近的一条入烘箱记录 - JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); - - JSONObject hotParam = new JSONObject(); - hotParam.put("container_name", jsonRaw.getString("container_name")); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("qty")); - hotParam.put("io_type", "1"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); - hotParam.put("task_id", task_id); - hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", cache_jo.getString("point_code")); - boolean exists = redisUtils.hHasKey(point_code1, "temperature"); - String point_temperature = ""; - if (exists) { - point_temperature = (String) redisUtils.hget(point_code1, "temperature"); - } else { - throw new BadRequestException("当前操作点位设备:" + point_code1 + ",无法获取温度,请稍后再试!"); - } - hotParam.put("temperature", point_temperature); - - if (ObjectUtil.isEmpty(last_hot_mst)) { - hotParam.put("oven_time", "480"); - } else { - hotParam.put("oven_time", last_hot_mst.getString("oven_time")); - } - this.createHotIoMst(hotParam); } else { // 出烘箱,创建桁架任务到对接位 if (!in_area_id.contains(product_area)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java index d41b80875..145c7344a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoIntoHotCacheTask.java @@ -39,7 +39,7 @@ public class AutoIntoHotCacheTask { @SneakyThrows public void run() { log.info("定时对B1入暂存...."); - RLock lock = redissonClient.getLock(THIS_CLASS); + RLock lock = redissonClient.getLock("AutoIntoHotCacheTask"); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { diff --git a/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js b/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js new file mode 100644 index 000000000..eddb9d529 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/agvrush/error/bstIvtShafttubeivt.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bstIvtShafttubeivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bstIvtShafttubeivt/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bstIvtShafttubeivt', + method: 'put', + data + }) +} + +export function setHaveShaft(data) { + return request({ + url: 'api/bstIvtShafttubeivt/setHaveShaft', + method: 'post', + data + }) +} + +export default { add, edit, del, setHaveShaft } diff --git a/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue b/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue new file mode 100644 index 000000000..d50d21d0a --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/agvrush/error/index.vue @@ -0,0 +1,125 @@ + + + + +