From c583e5683bac5d11750be01b8a3c4147e8f16026 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 06 十一月 2024 23:21:53 +0800
Subject: [PATCH] 1、opc订阅服务为阻塞模式,配置需要开启多线程 2、新增订阅回调函数,用于执行任务,完成任务时调用 3、目前测试效果来看,一个定时任务只能有一个订阅任务,可订阅多个节点,当某个节点发生变化时,回调任务仅获取变化节点的信息
---
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 47 insertions(+), 12 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index 2969896..55ba683 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -1,13 +1,17 @@
package com.mes.edgstoragecage.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.edgstoragecage.service.EdgStorageCageService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
@@ -15,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -35,16 +40,27 @@
@Autowired
UpPattenUsageMapper upPattenUsageMapper;
+ @Autowired
+ DamageService damageService;
+
@Override
- public EdgStorageCage selectNearestEmpty(int currentSlot) {
- return this.selectJoinOne(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
+ public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
+ List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCage.class)
.leftJoin(EdgStorageCageDetails.class, on -> on
.eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
.isNull(EdgStorageCageDetails::getSlot)
- .last("order by abs(t.slot - " + currentSlot + ") asc limit 1")
+ .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+ .last("order by abs(t.slot - " + currentSlot + ") asc limit 2")
);
+ if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+ return emptyList.get(0);
+ }
+ if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+ return null;
+ }
+ return emptyList.get(0);
}
/**
@@ -100,12 +116,9 @@
.select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId)
.leftJoin(EdgStorageCageDetails.class, on -> on
.eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+ .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
.eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
);
-// return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
-// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-// .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
-// );
}
/**
@@ -117,9 +130,14 @@
@Override
public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) {
EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId());
- edgItem.setEnableState(edgStorageCage.getEnableState());
- baseMapper.updateById(edgItem);
- return true;
+ if (edgItem != null) {
+ edgItem.setEnableState(edgStorageCage.getEnableState());
+ baseMapper.updateById(edgItem);
+ log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:鎴愬姛", edgStorageCage);
+ return true;
+ }
+ log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:澶辫触", edgStorageCage);
+ return false;
}
/**
@@ -135,10 +153,22 @@
log.info("姝e父" + edgItem);
EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
if (edgItem != null) {
- //绉婚櫎
- EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
+ //绉婚櫎 锛堢牬鎹�,鐩墠涓や釜姒傚康娣峰悎鍦ㄤ竴璧�,寤鸿鎷嗗紑锛�
+ EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(
+ new MPJLambdaWrapper<EdgStorageCageDetails>()
+ .eq(EdgStorageCageDetails::getSlot, edgStorageCageId)
+ .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ );
if (result != null) {
result.setSlot(0);
+ result.setState(201);
+ Damage damage = new Damage();
+ damage.setGlassId(edgStorageCageDetails.getGlassId());
+ damage.setLine(2001);
+ damage.setWorkingProcedure("纾ㄨ竟");
+ damage.setStatus(1);
+ damage.setType(8);
+ damageService.insertDamage(damage);
edgStorageCageDetailsMapper.updateById(result);
}
//娣诲姞
@@ -152,5 +182,10 @@
return true;
}
+ @Override
+ public EdgStorageCage getEdgStorageCageBySize(int deviceId, double width, double height, int slot) {
+ return baseMapper.getEdgStorageCageBySize(deviceId, width, height, slot);
+ }
+
}
--
Gitblit v1.8.0