From e3307d42a20a6f6305cb55b559a0065db3cebc75 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 20 十一月 2024 08:41:14 +0800
Subject: [PATCH] 1、大理片笼历史任务功能开发 2、大理片笼任务表4张、历史任务表一张脚本 3、大理片笼进片任务功能开发 4、解决卧理生产中遇到的bug
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java | 52 ++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java | 33 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java | 8
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java | 20 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java | 21 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java | 16
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java | 21 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java | 10
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml | 3
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java | 16
/dev/null | 33 -
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/ywChangelog.sql | 151 +++++--
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java | 501 ++++++++++++++------------
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java | 170 ++++----
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageInTaskMapper.xml | 12
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 14
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java | 49 +
20 files changed, 710 insertions(+), 430 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index b08642c..ff07133 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -85,7 +85,7 @@
public static final Integer EDG_GLASS_SUCCESS = 2;
/**
- * 纾ㄨ竟浠诲姟鐜荤拑鐘舵��
+ * 澶х悊鐗囩鐘舵��
* 1鍗曟満鑷姩鐘舵��
* 2鑱旀満鑷姩鐘舵��
* 3鎵嬪姩鐘舵��
@@ -95,6 +95,18 @@
public static final Integer BIG_STORAGE_MT = 3;
/**
+ * 澶х悊鐗囩浠诲姟绫诲瀷
+ * 1銆侀挗鍖栧墠杩涚墖
+ * 2銆侀挗鍖栧墠鍑虹墖
+ * 3銆侀挗鍖栧悗杩涚墖
+ * 4銆侀挗鍖栧悗鍑虹墖
+ */
+ public static final Integer BIG_STORAGE_BEFORE_IN = 1;
+ public static final Integer BIG_STORAGE_BEFORE_OUT = 2;
+ public static final Integer BIG_STORAGE_AFTER_IN = 3;
+ public static final Integer BIG_STORAGE_AFTER_OUT = 4;
+
+ /**
* 澶х悊鐗囩璇锋眰
* 0 澶х悊鐗囩鏃犺姹�
* 1 澶х悊鐗囩杩涚墖璇锋眰
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
index c7ddd26..8dd8e31 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
@@ -13,5 +13,5 @@
*/
public interface EdgStorageCageDetailsMapper extends MPJBaseMapper<EdgStorageCageDetails> {
- EdgStorageCageDetails queryEdgStorageDetailsBySize(double width, double height);
+ EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index d8be128..43d2024 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -9,7 +9,7 @@
/**
* <p>
- * 鏈嶅姟绫�
+ * 鏈嶅姟绫�
* </p>
*
* @author zhoush
@@ -21,18 +21,22 @@
/**
* 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
+ *
* @return
*/
List<Map<String, Object>> selectCutTerritory();
/**
* 鑾峰彇 宸ョ▼涓嬬殑褰撳墠鐗堝浘
+ *
* @param current
* @return
*/
List<List<Map<String, Object>>> selectCurrentCutTerritory(String current);
+
/**
* 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
+ *
* @param current
* @return
*/
@@ -40,6 +44,7 @@
/**
* 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨� 姝ゅ昂瀵哥幓鐠� 濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+ *
* @param glassId
* @param threshold
* @return
@@ -82,9 +87,10 @@
/**
* 鎸夌収灏哄
*
+ * @param deviceId
* @param width
* @param height
* @return
*/
- EdgStorageCageDetails queryEdgStorageDetailsBySize(double width, double height);
+ EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index 08b79ea..a401280 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -525,7 +525,7 @@
}
@Override
- public EdgStorageCageDetails queryEdgStorageDetailsBySize(double width, double height) {
- return baseMapper.queryEdgStorageDetailsBySize(width, height);
+ public EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height) {
+ return baseMapper.queryEdgStorageDetailsBySize(deviceId, currentSlot, width, height);
}
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index e57b73d..f2aac7c 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -64,7 +64,7 @@
@Scheduled(fixedDelay = Long.MAX_VALUE)
public void startTwoOpcTask() throws Exception {
- miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL2.edg_storage_device_two_task[1].task_state"), cacheGlassStartCallback);
+ miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL2.edg_storage_device_two_task[1].task_state", "PLC.WL2.plc_task_tate"), cacheGlassStartCallback);
}
@Scheduled(fixedDelay = 1000)
@@ -97,7 +97,7 @@
}
String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence();
List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("PLC.MB" + cell + ".mesControl", true));
+// list.add(generateReadWriteEntity("PLC.MB" + cell + ".mesControl", true));
list.add(generateReadWriteEntity("PLC.MB" + cell + ".glassId", Integer.parseInt(toEndingId)));
list.add(generateReadWriteEntity("PLC.MB" + cell + ".toEdingId", Integer.parseInt(toEndingId)));
list.add(generateReadWriteEntity("PLC.MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
index deaedf2..0322df3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
@@ -63,10 +63,23 @@
@Value("${mes.cellLength}")
private int cellLength;
+ private Date startDate;
+
@Override
public void onSubscribe(String identifier, Object value) {
+ if (identifier.equals("PLC.WL2.plc_task_tate")) {
+ startDate = new Date();
+ log.info("鏈浠诲姟鑾峰彇plc鐨勫�间负{}锛屾椂闂达細{}锛屽叡鑰楁椂锛歿}ms", value, startDate);
+ return;
+ }
+ if (!identifier.equals("PLC.WL2.plc_task_tate")) {
+ Date endDate = new Date();
+ log.info("鏈浠诲姟link鍚庣殑鍊间负{},鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", value, endDate, endDate.getTime() - startDate.getTime());
+ startDate = null;
+ }
log.info("褰撳墠姝e湪鎵ц鐨勪换鍔′负{}", value);
String tableName = identifier.contains("edg_storage_device_one_task") ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
+ int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
try {
if (task == null) {
@@ -80,14 +93,14 @@
} else if (request == 1) {
//杩涚墖浠诲姟
log.info("杩涚墖浠诲姟锛氳繘鐗囩幓鐠僫d涓猴細{}", task.getGlassIdIn());
- intoTask(task, tableName);
+ intoTask(task, tableName, device);
} else if (request == 2) {
//鍑虹墖浠诲姟
- outTask(task, tableName);
+ outTask(task, tableName, device);
} else if (request == 3) {
//鐩撮�氫换鍔�
- if (!outTask(task, tableName)) {
- intoTask(task, tableName);
+ if (!outTask(task, tableName, device)) {
+ intoTask(task, tableName, device);
}
} else if (request == 4) {
log.info("灏嗗惎鍔ㄥ瓙鏀逛负0");
@@ -104,7 +117,7 @@
}
}
- private boolean intoTask(EdgStorageDeviceTask task, String tableName) {
+ private boolean intoTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
//鑾峰彇鐜荤拑鐨勫熀鏈俊鎭�
GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
if (null == glassInfo) {
@@ -112,11 +125,12 @@
return Boolean.FALSE;
}
//鑾峰彇褰撳墠杩涚墖鐜荤拑id鍜岃繘鐗囨牸瀛� 鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛�
- EdgStorageCage edgStorageCage = edgStorageCageService.getEdgStorageCageBySize(1, glassInfo.getWidth(), glassInfo.getHeight(), task.getCurrentCell());
+ EdgStorageCage edgStorageCage = edgStorageCageService.getEdgStorageCageBySize(deviceId, glassInfo.getWidth(), glassInfo.getHeight(), task.getCurrentCell());
if (edgStorageCage == null) {
log.info("鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛愭湭鎵惧埌锛屾牸瀛恑d:{}", task.getCurrentCell());
// SELECT * from edg_storage_cage where device_id = 1 and remain_width > 1000 order by abs(slot - 10)
- List<EdgStorageCage> storageCageList = edgStorageCageService.list(new LambdaQueryWrapper<EdgStorageCage>().eq(EdgStorageCage::getDeviceId, 1)
+ List<EdgStorageCage> storageCageList = edgStorageCageService.list(new LambdaQueryWrapper<EdgStorageCage>()
+ .eq(EdgStorageCage::getDeviceId, deviceId)
.eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
.ge(EdgStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())).last("order by abs(slot - " + task.getCurrentCell() + ")"));
// //鐩撮�氫换鍔�
@@ -145,7 +159,7 @@
return Boolean.TRUE;
}
- private boolean outTask(EdgStorageDeviceTask task, String tableName) {
+ private boolean outTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
EdgStorageCageDetails edgStorageCageDetails = null;
//绗煎唴鏄増鍥剧浉宸槸鍚﹁秴杩囬槇鍊�
boolean flag = queryMaxMinDiff(threshold);
@@ -153,6 +167,7 @@
EdgStorageCageDetails minEdgDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
.inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .eq(EdgStorageCageDetails::getDeviceId, deviceId)
.orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
.orderBy(Boolean.TRUE, Boolean.TRUE, EdgStorageCageDetails::getTemperingFeedSequence)
.last("limit 1"));
@@ -160,6 +175,7 @@
edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
.eq(EdgStorageCageDetails::getWidth, minEdgDetails.getWidth())
.eq(EdgStorageCageDetails::getHeight, minEdgDetails.getHeight())
+ .eq(EdgStorageCageDetails::getDeviceId, deviceId)
.inSql(EdgStorageCageDetails::getId, "select min(id) from edg_storage_cage_details where state = 100 group by slot ")
.last("order by abs(slot - " + task.getCurrentCell() + ") asc limit 1")
);
@@ -177,6 +193,7 @@
if (null == edgStorageCageDetails) {
edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .eq(EdgStorageCageDetails::getDeviceId, deviceId)
.eq(EdgStorageCageDetails::getSlot, minEdgDetails.getSlot())
.orderByAsc(EdgStorageCageDetails::getId)
.last("limit 1")
@@ -193,7 +210,7 @@
if (null != edgeData) {
GlassInfo glassOutInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, edgeData.getGlassIdOut()));
//绗煎唴鐨勭幓鐠冪殑灏哄鏄惁鍜屼笂涓�娆′换鍔′竴鑷�
- edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(glassOutInfo.getWidth(), glassOutInfo.getHeight());
+ edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), glassOutInfo.getWidth(), glassOutInfo.getHeight());
if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
.eq(GlassInfo::getGlassId, task.getGlassIdIn())
@@ -207,7 +224,7 @@
}
}
if (null == edgStorageCageDetails) {
- edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(0, 0);
+ edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), 0, 0);
}
if (edgStorageCageDetails == null && StringUtils.isNotBlank(task.getGlassIdIn())) {
//鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
@@ -223,6 +240,9 @@
int taskType = Const.GLASS_CACHE_TYPE_OUT;
String glassId = edgStorageCageDetails.getGlassId();
if (glassId.equals(task.getGlassIdIn())) {
+ if (3 != task.getTaskState()) {
+ return Boolean.FALSE;
+ }
log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
//鐜荤拑淇℃伅鏇挎崲
String glassIdChange = queryAndChangeGlass(glassId);
@@ -231,13 +251,15 @@
GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
BeanUtils.copyProperties(one, edgStorageCageDetails);
}
- EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>().eq(EdgStorageCage::getDeviceId, 1)
+ EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
+ .eq(EdgStorageCage::getDeviceId, deviceId)
.eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
- .ge(EdgStorageCage::getRemainWidth, cellLength).last("order by abs(slot - " + task.getCurrentCell() + ")")
- .last("limit 1"));
+ .ge(EdgStorageCage::getRemainWidth, cellLength)
+ .last("order by abs(slot - " + task.getCurrentCell() + ") limit 1"));
Assert.isTrue(null != storageCage, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", storageCage);
edgStorageCageDetails.setSlot(storageCage.getSlot());
+ edgStorageCageDetails.setDeviceId(storageCage.getDeviceId());
edgStorageCageDetails.setState(Const.GLASS_STATE_OUT);
edgStorageCageDetailsService.save(edgStorageCageDetails);
taskType = Const.GLASS_CACHE_TYPE_THROUGH;
@@ -246,6 +268,7 @@
if (!edgStorageCageDetails.getSlot().equals(task.getCurrentCell())) {
EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .eq(EdgStorageCageDetails::getDeviceId, deviceId)
.eq(EdgStorageCageDetails::getSlot, task.getCurrentCell()).eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
.eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight()).eq(EdgStorageCageDetails::getThickness, edgStorageCageDetails.getThickness())
.orderByAsc(EdgStorageCageDetails::getId).last("limit 1")
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
index 3ef3805..aae437f 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
@@ -29,6 +29,7 @@
select slot, min(id) as id, count(*) as glass_count
from edg_storage_cage_details
where state = 100
+ and device_id = #{deviceId}
group by slot
),
size_max_temp as (
@@ -50,7 +51,7 @@
and t.height = #{height}
</if>
</where>
- order by total_count desc, glass_count, abs(t.slot - 10)
+ order by total_count desc, glass_count, abs(t.slot - #{currentSlot})
)
select *
from slot_temp limit 1
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/mapper/BigStorageCageInTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/mapper/BigStorageCageInTaskMapper.java
deleted file mode 100644
index 5bca250..0000000
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/mapper/BigStorageCageInTaskMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.mes.bigstoragecageIntask.mapper;
-
-import com.mes.bigstoragecageIntask.entity.BigStorageCageInTask;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * (BigStorageCageInOneTask)琛ㄦ暟鎹簱璁块棶灞�
- *
- * @author makejava
- * @since 2024-11-08 21:40:15
- */
-public interface BigStorageCageInTaskMapper {
-
- List<BigStorageCageInTask> queryTaskMessage(String tableName);
-
- boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") BigStorageCageInTask bigStorageCageInTask);
-
-
-}
-
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/BigStorageCageInTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/BigStorageCageInTaskService.java
deleted file mode 100644
index cd2657c..0000000
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/BigStorageCageInTaskService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.bigstoragecageIntask.service;
-
-import com.mes.bigstoragecageIntask.entity.BigStorageCageInTask;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * (BigStorageCageInOneTask)琛ㄦ湇鍔℃帴鍙�
- *
- * @author makejava
- * @since 2024-11-08 21:40:20
- */
-public interface BigStorageCageInTaskService {
-
-
- List<BigStorageCageInTask> queryTaskMessage(String tableName);
-
- boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") BigStorageCageInTask bigStorageCageInTask);
-}
-
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/impl/BigStorageCageInTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/impl/BigStorageCageInTaskServiceImpl.java
deleted file mode 100644
index 736672d..0000000
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/service/impl/BigStorageCageInTaskServiceImpl.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.mes.bigstoragecageIntask.service.impl;
-
-import com.mes.bigstoragecageIntask.entity.BigStorageCageInTask;
-import com.mes.bigstoragecageIntask.mapper.BigStorageCageInTaskMapper;
-import com.mes.bigstoragecageIntask.service.BigStorageCageInTaskService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * (BigStorageCageInOneTask)琛ㄦ湇鍔″疄鐜扮被
- *
- * @author makejava
- * @since 2024-11-08 21:40:23
- */
-@Service
-public class BigStorageCageInTaskServiceImpl implements BigStorageCageInTaskService {
-
- @Resource
- BigStorageCageInTaskMapper bigStorageCageInTaskMapper;
-
- @Override
- public List<BigStorageCageInTask> queryTaskMessage(String tableName) {
- return bigStorageCageInTaskMapper.queryTaskMessage(tableName);
- }
-
- @Override
- public boolean updateTaskMessage(String tableName, BigStorageCageInTask bigStorageCageInTask) {
- return bigStorageCageInTaskMapper.updateTaskMessage(tableName, bigStorageCageInTask);
- }
-}
-
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java
new file mode 100644
index 0000000..65d011e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java
@@ -0,0 +1,52 @@
+package com.mes.bigstoragecagetask.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:49
+ */
+@Data
+public class BigStorageCageHistoryTask {
+
+ private Integer id;
+ /**
+ * 鐜荤拑id
+ */
+ private String glassId;
+ /**
+ * 璧峰鏍煎瓙
+ */
+ private Integer startSlot;
+ /**
+ * 鐩爣鏍煎瓙
+ */
+ private Integer targetSlot;
+ /**
+ * 浠诲姟鐘舵��
+ */
+ private Integer taskState;
+ /**
+ * 鐜荤拑鏁伴噺
+ */
+ private Integer glassCount;
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ private Integer taskType;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date createTime;
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ private Date updateTime;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/entity/BigStorageCageInTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java
similarity index 67%
rename from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/entity/BigStorageCageInTask.java
rename to hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java
index 76b2923..2844143 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecageIntask/entity/BigStorageCageInTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java
@@ -1,4 +1,4 @@
-package com.mes.bigstoragecageIntask.entity;
+package com.mes.bigstoragecagetask.entity;
import lombok.Data;
@@ -9,11 +9,7 @@
* @since 2024-11-08 21:40:17
*/
@Data
-public class BigStorageCageInTask {
- /**
- * 浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚
- */
- private Integer taskRunning;
+public class BigStorageCageTask {
/**
* 鐜荤拑id
*/
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java
new file mode 100644
index 0000000..72c7848
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java
@@ -0,0 +1,16 @@
+package com.mes.bigstoragecagetask.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:47
+ */
+public interface BigStorageCageHistoryTaskMapper extends BaseMapper<BigStorageCageHistoryTask> {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java
new file mode 100644
index 0000000..fc6ad18
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java
@@ -0,0 +1,21 @@
+package com.mes.bigstoragecagetask.mapper;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:15
+ */
+public interface BigStorageCageTaskMapper {
+
+ List<BigStorageCageTask> queryTaskMessage(String tableName);
+
+ boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") BigStorageCageTask bigStorageCageInTask);
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java
new file mode 100644
index 0000000..10d25f1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java
@@ -0,0 +1,16 @@
+package com.mes.bigstoragecagetask.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:53
+ */
+public interface BigStorageCageHistoryTaskService extends IService<BigStorageCageHistoryTask> {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java
new file mode 100644
index 0000000..046b8ce
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java
@@ -0,0 +1,21 @@
+package com.mes.bigstoragecagetask.service;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:20
+ */
+public interface BigStorageCageTaskService {
+
+
+ List<BigStorageCageTask> queryTaskMessage(String tableName);
+
+ boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") BigStorageCageTask bigStorageCageInTask);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java
new file mode 100644
index 0000000..b050fe9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.bigstoragecagetask.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.mapper.BigStorageCageHistoryTaskMapper;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:56
+ */
+@Service
+public class BigStorageCageHistoryTaskServiceImpl extends ServiceImpl<BigStorageCageHistoryTaskMapper, BigStorageCageHistoryTask> implements BigStorageCageHistoryTaskService {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java
new file mode 100644
index 0000000..7545ce9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java
@@ -0,0 +1,33 @@
+package com.mes.bigstoragecagetask.service.impl;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:23
+ */
+@Service
+public class BigStorageCageTaskServiceImpl implements BigStorageCageTaskService {
+
+ @Resource
+ BigStorageCageTaskMapper bigStorageCageInTaskMapper;
+
+ @Override
+ public List<BigStorageCageTask> queryTaskMessage(String tableName) {
+ return bigStorageCageInTaskMapper.queryTaskMessage(tableName);
+ }
+
+ @Override
+ public boolean updateTaskMessage(String tableName, BigStorageCageTask bigStorageCageTask) {
+ return bigStorageCageInTaskMapper.updateTaskMessage(tableName, bigStorageCageTask);
+ }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
index 2284d1e..6ac731b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
@@ -3,37 +3,32 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
-import com.mes.bigstoragecageIntask.entity.BigStorageCageInTask;
-import com.mes.bigstoragecageIntask.service.BigStorageCageInTaskService;
-import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
-import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
-import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
-import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.common.config.Const;
-import com.mes.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
-import com.mes.tools.service.BigStorageBaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -45,10 +40,6 @@
@Resource
private BigStorageCageDetailsService bigStorageCageDetailsService;
@Resource
- private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
- @Resource
- private BigStorageCageOutTaskService bigStorageCageOutTaskService;
- @Resource
private TemperingGlassInfoService temperingGlassInfoService;
@Resource
private DamageService damageService;
@@ -57,49 +48,43 @@
private GlassInfoService glassInfoService;
@Resource
private BigStorageCageService bigStorageCageService;
+ @Resource
+ private BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService;
+ @Resource
+ private BigStorageCageTaskService bigStorageCageTaskService;
- @Resource
- private BigStorageBaseService baseService;
- @Resource
- private BigStorageCageInTaskService bigStorageBaseInTaskService;
+ @Autowired(required = false)
+ MiloService miloService;
+
+ @Value("${mes.slotWidth}")
+ private Integer slotWidth;
@Value("${mes.glassGap}")
private Integer glassGap;
-// @Resource
-// private BigStorageCage bigStorageBaseInTaskService;
-
-// @Autowired(required = false)
-// MiloService miloService;
-//
-// @Resource(name = "bigStorageStartCallback")
-// SubscriptionCallback bigStorageStartCallback;
-
-
-// @Scheduled(fixedDelay = Long.MAX_VALUE)
-// public void startOpcTask() throws Exception {
-// //璁惧涓�浜岀殑杩涚墖璇锋眰
-// miloService.subscriptionFromOpcUa(Arrays.asList("my.device01.x1", "my.device02.x1"), bigStorageStartCallback);
-// }
-
-// @Scheduled(fixedDelay = Long.MAX_VALUE)
-// public void outOpcTask() throws Exception {
-// //璁惧1鐨勫嚭鐗囪姹�
-// miloService.subscriptionFromOpcUa(Arrays.asList("my.device03.x1"), bigStorageStartCallback);
-// }
-
-
- @Scheduled(fixedDelay = 200)
- public void inBigStorageTask() {
- //todo:鑾峰彇杩涚墖浠诲姟琛�
- List<BigStorageCageInTask> inTaskList = bigStorageBaseInTaskService.queryTaskMessage("big_storage_cage_in_one_task");
- if (CollectionUtils.isEmpty(inTaskList)) {
- log.info("褰撳墠澶ц溅鏃犺繘鐗囦换鍔★紝缁撴潫鏈湴瀹氭椂浠诲姟");
+ @Scheduled(fixedDelay = 1000)
+ public void inBigStorageTask() throws Exception {
+ ReadWriteEntity inkageEntity = miloService.readFromOpcUa("PLC.DPL1.inkageState");
+ if (!"1".equals(inkageEntity.getValue())) {
+ log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+ return;
}
- List<String> glassIdList = inTaskList.stream().map(BigStorageCageInTask::getGlassId).collect(Collectors.toList());
- Map<String, List<BigStorageCageInTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageInTask::getGlassId));
+ ReadWriteEntity requestEntity = miloService.readFromOpcUa("PLC.DPL1.plcInGlassRequest");
+ if (!"1".equals(requestEntity.getValue())) {
+ log.info("褰撳墠鏈敹鍒拌繘鐗囪姹傦紝缁撴潫杩涚墖浠诲姟");
+ return;
+ }
+ //鑾峰彇杩涚墖浠诲姟琛�
+ List<BigStorageCageTask> inTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_in_one_task");
+ if (CollectionUtils.isEmpty(inTaskList)) {
+ log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫杩涚墖浠诲姟");
+ }
+ List<String> glassIdList = inTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+ log.info("鑾峰彇浠诲姟鐨勭幓鐠僫d锛歿}", glassIdList);
+ Map<String, List<BigStorageCageTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getGlassId));
List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
- //todo:璁$畻鐩爣鏍煎瓙
+ //璁$畻鐩爣鏍煎瓙
+ List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
for (GlassInfo info : glassInfoList) {
//鑾峰彇鐩爣鏍煎瓙淇℃伅
BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
@@ -107,198 +92,256 @@
bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>()
.set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
.eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
- BigStorageCageInTask task = taskMap.get(info.getGlassId()).get(0);
+ BigStorageCageTask task = taskMap.get(info.getGlassId()).get(0);
task.setTargetSlot(bigStorageDTO.getSlot());
task.setGlassId(info.getGlassId());
- task.setTaskRunning(Const.BIG_STORAGE_TASK_RUNNING);
- bigStorageBaseInTaskService.updateTaskMessage("", task);
- //todo:瀛樻斁鍘嗗彶浠诲姟
- }
+ bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task);
+ //瀛樻斁鍘嗗彶浠诲姟
+ BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+ BeanUtils.copyProperties(task, historyTask);
+ historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
+ historyTask.setGlassCount(glassInfoList.size());
+ historyTask.setTaskState(Const.ENGINEERING_NEW);
+ BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setSlot(bigStorageDTO.getSlot());
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+ cageDetails.setGap(glassGap);
+ bigStorageCageDetailsService.save(cageDetails);
+ }
+ //鍘嗗彶鏁版嵁鍏ュ簱
+ bigStorageCageHistoryTaskService.saveBatch(historyTasks);
+ //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+ miloService.writeToOpcWord(generateReadWriteEntity("PLC.DPL1.taskRunning", 1));
}
-
- @Scheduled(fixedDelay = 300)
- public void updateInGlassStateTask() {
- Date startDate = new Date();
- log.info("1銆佸ぇ鐞嗙墖绗艰繘鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
- //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
- List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
- .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
- if (CollectionUtils.isNotEmpty(list)) {
- log.info("2銆佽幏鍙栨墍鏈夋鍦ㄨ繘鐗囩殑鐜荤拑淇℃伅id:{}", list);
- List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
- List<BigStorageCageFeedTask> inSuccessGlass = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
- .in(BigStorageCageFeedTask::getGlassId, glassIds)
- .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT));
- if (CollectionUtils.isNotEmpty(inSuccessGlass)) {
- log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", inSuccessGlass);
- List<Integer> inSuccessGlassSlot = inSuccessGlass.stream().map(BigStorageCageFeedTask::getTargetSlot).collect(Collectors.toList());
- List<UpdateBigStorageCageDTO> storageCageDTOList = inSuccessGlass.stream().map(e -> {
+ @Scheduled(fixedDelay = 1000)
+ public void finishBigStorageTask() throws Exception {
+ ReadWriteEntity inkageEntity = miloService.readFromOpcUa("PLC.DPL1.inkageState");
+ if (!"1".equals(inkageEntity.getValue())) {
+ log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+ return;
+ }
+ //鑾峰彇杩涚墖浠诲姟琛�
+ List<BigStorageCageTask> inTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_in_one_task");
+ if (CollectionUtils.isEmpty(inTaskList)) {
+ log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+ }
+ List<BigStorageCageTask> unFinishTaskList = inTaskList.stream().filter(e -> e.getTaskState() <= 1).collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(unFinishTaskList)) {
+ log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+ return;
+ }
+ Map<Integer, List<BigStorageCageTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+ //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+ taskMap.forEach((e1, v) -> {
+ List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+ if (e1 == 2) {
+ //杩涚墖瀹屾垚
+ log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+ List<Integer> inSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+ List<UpdateBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
BeanUtils.copyProperties(e, storageCageDTO);
return storageCageDTO;
}).collect(Collectors.toList());
bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
- log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlass);
- //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
- baseService.updateSlotRemainBySlots(inSuccessGlassSlot);
- log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+ log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+ updateSlotRemainBySlots(inSuccessGlassSlot);
+ } else if (e1 == 3) {
+ //鐮存崯澶勭悊
+ } else {
+ //娓呯┖鐞嗙墖绗肩┖鏁版嵁
}
-
- }
- Date endDate = new Date();
- log.info("end:澶х悊鐗囩杩涚墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
+ });
+ //todo:鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+ //todo:閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+ //todo:鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+ //todo:娓呯┖浠诲姟琛ㄦ暟鎹�
+ //todo:娓呯┖鍚姩鐘舵��
}
- @Scheduled(fixedDelay = 300)
- public void updateOutGlassStateTask() {
- Date startDate = new Date();
- log.info("1銆佸ぇ鐞嗙墖绗煎嚭鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
- //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
- List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
- .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING));
- if (CollectionUtils.isNotEmpty(list)) {
- log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
- List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
- List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
- .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
- if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
- for (BigStorageCageOutTask bigStorageCageOutTask : outSuccessGlass
- ) {
- if (bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)) {
- temperingGlassInfoService.update(
- new LambdaUpdateWrapper<TemperingGlassInfo>()
- .set(TemperingGlassInfo::getState, Const.TEMPERING_END)
- .eq(TemperingGlassInfo::getGlassId, bigStorageCageOutTask.getGlassId())
- );
- }
- }
- log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass);
- List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> {
- UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
- storageCageDTO.setGlassId(e.getGlassId());
- storageCageDTO.setTargetSlot(e.getStartSlot());
- return storageCageDTO;
- }).collect(Collectors.toList());
- bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
- List<Integer> outSuccessSlotList = outSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).collect(Collectors.toList());
- log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlass);
- //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
- baseService.updateSlotRemainBySlots(outSuccessSlotList);
- log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
- }
- }
- Date endDate = new Date();
- log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
+//
+// @Scheduled(fixedDelay = 300)
+// public void updateOutGlassStateTask() {
+// Date startDate = new Date();
+// log.info("1銆佸ぇ鐞嗙墖绗煎嚭鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+// //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+// List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+// .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING));
+// if (CollectionUtils.isNotEmpty(list)) {
+// log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+// List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+// List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+// .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
+// if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
+// for (BigStorageCageOutTask bigStorageCageOutTask : outSuccessGlass
+// ) {
+// if (bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)) {
+// temperingGlassInfoService.update(
+// new LambdaUpdateWrapper<TemperingGlassInfo>()
+// .set(TemperingGlassInfo::getState, Const.TEMPERING_END)
+// .eq(TemperingGlassInfo::getGlassId, bigStorageCageOutTask.getGlassId())
+// );
+// }
+// }
+// log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass);
+// List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> {
+// UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+// storageCageDTO.setGlassId(e.getGlassId());
+// storageCageDTO.setTargetSlot(e.getStartSlot());
+// return storageCageDTO;
+// }).collect(Collectors.toList());
+// bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+// List<Integer> outSuccessSlotList = outSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).collect(Collectors.toList());
+// log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlass);
+// //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+// baseService.updateSlotRemainBySlots(outSuccessSlotList);
+// log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+// }
+// }
+// Date endDate = new Date();
+// log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+// return;
+//
+// }
+//
+// @Scheduled(fixedDelay = 300)
+// public void updateScheduleGlassStateTask() {
+// Date startDate = new Date();
+// log.info("1銆佸ぇ鐞嗙墖绗艰皟搴﹀畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+// //鍥犱负澶х悊鐗囩鍜岃皟搴︿换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+// List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+// .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING));
+// if (CollectionUtils.isNotEmpty(list)) {
+// log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+// List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+// List<BigStorageCageOutTask> scheduleSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+// .in(BigStorageCageOutTask::getGlassId, glassIds).eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS)
+// .notIn(BigStorageCageOutTask::getEndSlot, Const.TEMPERING_OUT_TARGET_POSITION, Const.ARTIFICIAL_OUT_TARGET_POSITION));
+// if (CollectionUtils.isNotEmpty(scheduleSuccessGlass)) {
+// log.info("3銆佽幏鍙栬皟搴﹀凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", scheduleSuccessGlass);
+// List<UpdateBigStorageCageDTO> storageCageDTOList = scheduleSuccessGlass.stream().map(e -> {
+// UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+// storageCageDTO.setGlassId(e.getGlassId());
+// storageCageDTO.setTargetSlot(e.getEndSlot());
+// return storageCageDTO;
+// }).collect(Collectors.toList());
+// bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+// List<String> scheduleSuccessGlassIds = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+// log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", scheduleSuccessGlassIds);
+// //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+// List<Integer> slotList = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).distinct().collect(Collectors.toList());
+// slotList.addAll(scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getEndSlot).distinct().collect(Collectors.toList()));
+// baseService.updateSlotRemainBySlots(slotList);
+// log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+// }
+// }
+// Date endDate = new Date();
+// log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+// return;
+//
+// }
+//
+// /**
+// * 澶勭悊鐮存崯琛ㄤ换鍔�
+// */
+// @Scheduled(fixedDelay = 300)
+// public void dealDamageTask() {
+// Date startDate = new Date();
+// log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+// //鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+// List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+// .in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+// if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) {
+// log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
+// bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+// //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
+// bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+// .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
+// //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+// List<Integer> slotList = new ArrayList<>();
+// for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
+// Damage damage = new Damage();
+// damage.setGlassId(bigStorageCageFeedTask.getGlassId());
+// damage.setLine(bigStorageCageFeedTask.getLine());
+// damage.setWorkingProcedure("纾ㄨ竟");
+// damage.setRemark("杩涚鍓嶅崸杞珛");
+// damage.setStatus(1);
+// damage.setType(bigStorageCageFeedTask.getTaskState());
+// damageService.insertDamage(damage);
+// slotList.add(bigStorageCageFeedTask.getTargetSlot());
+// }
+// //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+// baseService.updateSlotRemainBySlots(slotList);
+// log.info("杩涚墖浠诲姟鎵ц瀹屾垚");
+// }
+// //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+// List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+// .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+// if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
+// log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
+// bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+// List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+// //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
+// temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
+// //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佸垹闄�
+// bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
+// //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+// List<Integer> slotList = new ArrayList<>();
+// for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
+// Damage damage = new Damage();
+// damage.setGlassId(bigStorageCageOutTask.getGlassId());
+// damage.setLine(bigStorageCageOutTask.getEndSlot());
+// damage.setWorkingProcedure("閽㈠寲");
+// damage.setRemark("鍑虹墖鍚庡崸杞珛");
+// damage.setStatus(1);
+// damage.setType(bigStorageCageOutTask.getTaskState());
+// damageService.insertDamage(damage);
+// slotList.add(bigStorageCageOutTask.getStartSlot());
+// }
+// //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+// baseService.updateSlotRemainBySlots(slotList);
+// log.info("鍑虹墖浠诲姟鎵ц瀹屾垚");
+// }
+// Date endDate = new Date();
+// log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+// return;
+// }
+ public void updateSlotRemainBySlots(List<Integer> slotList) {
+ //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+ List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+ .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+ Map<Integer, Double> slotRemainMap = new HashMap<>();
+ //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+ if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
+ //瀛樺湪 灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+ slotRemainMap = inSlotGlassList.stream()
+ .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+ slotRemainMap.forEach((e, v) -> {
+ double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+ bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
+ .eq(BigStorageCage::getSlot, e));
+ });
+ }
+ //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+ Set<Integer> remainSlotList = slotRemainMap.keySet();
+ slotList.removeAll(remainSlotList);
+ if (CollectionUtils.isNotEmpty(slotList)) {
+ bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+ .in(BigStorageCage::getSlot, slotList));
+ }
}
- @Scheduled(fixedDelay = 300)
- public void updateScheduleGlassStateTask() {
- Date startDate = new Date();
- log.info("1銆佸ぇ鐞嗙墖绗艰皟搴﹀畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
- //鍥犱负澶х悊鐗囩鍜岃皟搴︿换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
- List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
- .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING));
- if (CollectionUtils.isNotEmpty(list)) {
- log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
- List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
- List<BigStorageCageOutTask> scheduleSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
- .in(BigStorageCageOutTask::getGlassId, glassIds).eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS)
- .notIn(BigStorageCageOutTask::getEndSlot, Const.TEMPERING_OUT_TARGET_POSITION, Const.ARTIFICIAL_OUT_TARGET_POSITION));
- if (CollectionUtils.isNotEmpty(scheduleSuccessGlass)) {
- log.info("3銆佽幏鍙栬皟搴﹀凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", scheduleSuccessGlass);
- List<UpdateBigStorageCageDTO> storageCageDTOList = scheduleSuccessGlass.stream().map(e -> {
- UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
- storageCageDTO.setGlassId(e.getGlassId());
- storageCageDTO.setTargetSlot(e.getEndSlot());
- return storageCageDTO;
- }).collect(Collectors.toList());
- bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
- List<String> scheduleSuccessGlassIds = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
- log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", scheduleSuccessGlassIds);
- //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
- List<Integer> slotList = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).distinct().collect(Collectors.toList());
- slotList.addAll(scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getEndSlot).distinct().collect(Collectors.toList()));
- baseService.updateSlotRemainBySlots(slotList);
- log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
- }
- }
- Date endDate = new Date();
- log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
-
+ private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+ return ReadWriteEntity.builder()
+ .identifier(identifier)
+ //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+ .value(value)
+ .build();
}
-
- /**
- * 澶勭悊鐮存崯琛ㄤ换鍔�
- */
- @Scheduled(fixedDelay = 300)
- public void dealDamageTask() {
- Date startDate = new Date();
- log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
- //鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
- List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
- .in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
- if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) {
- log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
- bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
- //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
- bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
- //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
- List<Integer> slotList = new ArrayList<>();
- for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
- Damage damage = new Damage();
- damage.setGlassId(bigStorageCageFeedTask.getGlassId());
- damage.setLine(bigStorageCageFeedTask.getLine());
- damage.setWorkingProcedure("纾ㄨ竟");
- damage.setRemark("杩涚鍓嶅崸杞珛");
- damage.setStatus(1);
- damage.setType(bigStorageCageFeedTask.getTaskState());
- damageService.insertDamage(damage);
- slotList.add(bigStorageCageFeedTask.getTargetSlot());
- }
- //鏇存柊鏍煎瓙鍓╀綑瀹藉害
- baseService.updateSlotRemainBySlots(slotList);
- log.info("杩涚墖浠诲姟鎵ц瀹屾垚");
- }
- //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
- List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
- .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
- if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
- log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
- bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
- List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
- //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
- temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
- //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佸垹闄�
- bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
- //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
- List<Integer> slotList = new ArrayList<>();
- for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
- Damage damage = new Damage();
- damage.setGlassId(bigStorageCageOutTask.getGlassId());
- damage.setLine(bigStorageCageOutTask.getEndSlot());
- damage.setWorkingProcedure("閽㈠寲");
- damage.setRemark("鍑虹墖鍚庡崸杞珛");
- damage.setStatus(1);
- damage.setType(bigStorageCageOutTask.getTaskState());
- damageService.insertDamage(damage);
- slotList.add(bigStorageCageOutTask.getStartSlot());
- }
- //鏇存柊鏍煎瓙鍓╀綑瀹藉害
- baseService.updateSlotRemainBySlots(slotList);
- log.info("鍑虹墖浠诲姟鎵ц瀹屾垚");
- }
- Date endDate = new Date();
- log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
- }
-
-
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
index 4b275c5..b7e267c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
@@ -5,7 +5,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
@@ -449,88 +448,88 @@
@Override
public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
- BigStorageDTO bigStorageDTO = null;
- MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
- .selectAll(BigStorageCage.class)
- .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
- .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
- .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
- .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
- .last("limit 1");
- if (glassInfo.getTemperingLayoutId() == 0) {
- wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
- .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
-// wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
- } else {
- wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
- }
- BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
- if (null != bigStorageCage) {
- log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getRemainWidth, slotWidth)
-// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .inSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
- .last("limit 1"));
- if (null != bigStorageCage) {
- log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
-
- //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
- List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
- List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
- List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
- new LambdaQueryWrapper<BigStorageCageDetails>()
- .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
- .select(BigStorageCageDetails::getEngineerId)
- .groupBy(BigStorageCageDetails::getEngineerId)
- .between(BigStorageCageDetails::getDeviceId, 1, 5)
- );
- List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
- new LambdaQueryWrapper<BigStorageCageDetails>()
- .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
- .select(BigStorageCageDetails::getEngineerId)
- .groupBy(BigStorageCageDetails::getEngineerId)
- .between(BigStorageCageDetails::getDeviceId, 6, 8)
- );
- if (engineerCount1.size() > engineerCount2.size()) {
- deviceUsedList.removeIf(device -> device < 6);
- } else {
- deviceUsedList.removeIf(device -> device > 5);
- }
- if (CollectionUtils.isEmpty(deviceUsedList)) {
- deviceUsedList = deviceUseds;
- }
- for (Integer item : deviceUsedList) {
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getDeviceId, item)
- .last("limit 1"));
- if (null != bigStorageCage) {
- log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
- }
+// BigStorageDTO bigStorageDTO = null;
+// MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
+// .selectAll(BigStorageCage.class)
+// .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+// .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
+// .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+// .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
+// .last("limit 1");
+// if (glassInfo.getTemperingLayoutId() == 0) {
+// wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
+// .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
+//// wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
+// } else {
+// wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
+// }
+// BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
+// if (null != bigStorageCage) {
+// log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+// bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .eq(BigStorageCage::getRemainWidth, slotWidth)
+//// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+// .inSql(BigStorageCage::getDeviceId,
+// "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+// .last("limit 1"));
+// if (null != bigStorageCage) {
+// log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+//
+// //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+// List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+// List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+// List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
+// new LambdaQueryWrapper<BigStorageCageDetails>()
+// .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+// .select(BigStorageCageDetails::getEngineerId)
+// .groupBy(BigStorageCageDetails::getEngineerId)
+// .between(BigStorageCageDetails::getDeviceId, 1, 5)
+// );
+// List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
+// new LambdaQueryWrapper<BigStorageCageDetails>()
+// .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+// .select(BigStorageCageDetails::getEngineerId)
+// .groupBy(BigStorageCageDetails::getEngineerId)
+// .between(BigStorageCageDetails::getDeviceId, 6, 8)
+// );
+// if (engineerCount1.size() > engineerCount2.size()) {
+// deviceUsedList.removeIf(device -> device < 6);
+// } else {
+// deviceUsedList.removeIf(device -> device > 5);
+// }
+// if (CollectionUtils.isEmpty(deviceUsedList)) {
+// deviceUsedList = deviceUseds;
+// }
+// for (Integer item : deviceUsedList) {
+// bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+// .eq(BigStorageCage::getRemainWidth, slotWidth)
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .eq(BigStorageCage::getDeviceId, item)
+// .last("limit 1"));
+// if (null != bigStorageCage) {
+// log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+// }
//鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
// List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
@@ -549,8 +548,9 @@
// return bigStorageDTO;
// }
// }
- Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
- return bigStorageDTO;
+// Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+// return bigStorageDTO;
+ return null;
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageInTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageInTaskMapper.xml
index a66770d..425afb7 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageInTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageInTaskMapper.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.mes.bigstoragecageIntask.mapper.BigStorageCageInTaskMapper">
+<mapper namespace="com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper">
- <resultMap id="baseMap" type="com.mes.bigstoragecageIntask.entity.BigStorageCageInTask">
- <id column="task_running" property="taskRunning"/>
+ <resultMap id="baseMap" type="com.mes.bigstoragecagetask.entity.BigStorageCageTask">
<result column="glass_id" property="glassId"/>
<result column="start_slot" property="startSlot"/>
<result column="target_slot" property="targetSlot"/>
@@ -17,12 +16,11 @@
or glass_id != ''
</select>
+
<update id="updateTaskMessage">
UPDATE ${tableName}
- SET task_running = #{task.taskRunning},
- glass_id = #{task.glassId},
- start_slot = #{task.startSlot},
- target_slot = #{task.targetSlot}
+ SET start_slot = #{task.startSlot}
+ where glass_id = #{task.glassId}
</update>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/ywChangelog.sql b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/ywChangelog.sql
index 03146ea..9832dd6 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/ywChangelog.sql
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/ywChangelog.sql
@@ -174,50 +174,49 @@
-- changeset zsh:20241112001
-- preconditions onFail:CONTINUE onError:CONTINUE
--- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_in_history_task' and table_schema = 'hangzhoumes';
-CREATE TABLE big_storage_cage_in_history_task
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_history_task' and table_schema = 'hangzhoumes';
+CREATE TABLE big_storage_cage_history_task
(
- id BIGINT NOT NULL AUTO_INCREMENT COMMENT '鍘嗗彶浠诲姟id',
- task_running INT DEFAULT '0' COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚',
- glass_id VARCHAR(32) COMMENT '鐜荤拑id',
- start_slot INT DEFAULT '0' COMMENT '璧峰鏍煎瓙',
- target_slot INT DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
- task_state INT DEFAULT NULL COMMENT '浠诲姟鐘舵�� ',
- create_time TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
- task_type TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
- update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
- PRIMARY KEY (id) USING BTREE
+ id int NOT NULL AUTO_INCREMENT,
+ glass_id varchar(32) DEFAULT NULL COMMENT '鐜荤拑id',
+ start_slot int DEFAULT '0' COMMENT '璧峰鏍煎瓙',
+ target_slot int DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
+ task_state int DEFAULT NULL COMMENT '浠诲姟鐘舵�� ',
+ glass_count int DEFAULT NULL COMMENT '鐜荤拑鏁伴噺',
+ task_type int DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+ create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+ update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+ PRIMARY KEY (id)
);
--- rollback DROP TABLE big_storage_cage_in_history_task;
+-- rollback DROP TABLE big_storage_cage_history_task;
-- changeset zsh:20241112002
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_in_one_task' and table_schema = 'hangzhoumes';
CREATE TABLE big_storage_cage_in_one_task
(
- task_running INT DEFAULT '0' COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚',
- glass_id VARCHAR(32) COMMENT '鐜荤拑id',
- start_slot INT DEFAULT '0' COMMENT '璧峰鏍煎瓙',
- target_slot INT DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
- task_state INT DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
-);
+ glass_id varchar(32) DEFAULT NULL COMMENT '鐜荤拑id',
+ start_slot int DEFAULT '0' COMMENT '璧峰鏍煎瓙',
+ target_slot int DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
+ task_state int DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+)
-- rollback DROP TABLE big_storage_cage_in_one_task;
-- changeset zsh:20241112003
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_in_one_task;
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_one_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
-- changeset zsh:20241112004
@@ -225,26 +224,82 @@
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_in_two_task' and table_schema = 'hangzhoumes';
CREATE TABLE big_storage_cage_in_two_task
(
- task_running INT DEFAULT '0' COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚',
- glass_id VARCHAR(32) COMMENT '鐜荤拑id',
- start_slot INT DEFAULT '0' COMMENT '璧峰鏍煎瓙',
- target_slot INT DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
- task_state INT DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+ glass_id VARCHAR(32) COMMENT '鐜荤拑id',
+ start_slot INT DEFAULT '0' COMMENT '璧峰鏍煎瓙',
+ target_slot INT DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
+ task_state INT DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
);
-- rollback DROP TABLE big_storage_cage_in_two_task;
+
-- changeset zsh:20241112005
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_in_two_task;
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
-INSERT INTO big_storage_cage_in_two_task(task_running, glass_id, start_slot, target_slot, task_state)
-VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+
+-- changeset zsh:20241113001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_out_one_task' and table_schema = 'hangzhoumes';
+CREATE TABLE big_storage_cage_out_one_task
+(
+ glass_id varchar(32) DEFAULT NULL COMMENT '鐜荤拑id',
+ start_slot int DEFAULT '0' COMMENT '璧峰鏍煎瓙',
+ target_slot int DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
+ task_state int DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+)
+-- rollback DROP TABLE big_storage_cage_out_one_task;
+
+-- changeset zsh:20241113002
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_out_one_task;
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+
+
+-- changeset zsh:20241113003
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_out_two_task' and table_schema = 'hangzhoumes';
+CREATE TABLE big_storage_cage_out_two_task
+(
+ glass_id VARCHAR(32) COMMENT '鐜荤拑id',
+ start_slot INT DEFAULT '0' COMMENT '璧峰鏍煎瓙',
+ target_slot INT DEFAULT '0' COMMENT '鐩爣鏍煎瓙',
+ task_state INT DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+);
+-- rollback DROP TABLE big_storage_cage_out_two_task;
+-- changeset zsh:20241113004
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_out_two_task;
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task(glass_id, start_slot, target_slot, task_state)
+VALUES (NULL, 0, 0, 0);
--
Gitblit v1.8.0