From 47c19d0819ed29c9e87f914ce8109128a15a70e8 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 09 一月 2025 16:13:08 +0800
Subject: [PATCH] 1、大理片笼详情表新增旋转角度字段 2、原片仓储+上片联调,解决调试过程中的异常情况 3、上片新增定时任务用于扫描正在执行中的工程是否全部上片完成,及完成后的处理
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java | 11 ++++-
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 6 ++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java | 3 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java | 46 ++++++++++++----------
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 6 +-
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java | 26 ++++++++++++-
hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml | 0
7 files changed, 67 insertions(+), 31 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 ea0cda4..26f373f 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
@@ -232,11 +232,13 @@
/**
* 鍘熺墖浠撳偍浠诲姟鐘舵��
- * 鏂板缓0
- * 宸插畬鎴�1
+ * 鏂板缓 0
+ * 杩愯涓� 1
+ * 宸插畬鎴�2
*/
public static final Integer ENGINEERING_NEW = 0;
public static final Integer ENGINEERING_RUNNING = 1;
+ public static final Integer ENGINEERING_SUCCESS = 2;
/**
* 鍘熺墖浠撳偍浠诲姟绫诲瀷
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index d370c64..11e0d09 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -177,9 +177,9 @@
.createTime(new Date()).build();
rawGlassStorageTaskService.save(task);
List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
- list.add(generateReadWriteEntity("PLC.CC.startSlot", startSlot));
- list.add(generateReadWriteEntity("PLC.CC.endSlot", endSlot));
+ list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+ list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+ list.add(generateReadWriteEntity("CC.CC.endSlot", endSlot));
miloService.writeToOpcWord(list);
return Boolean.TRUE;
}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
similarity index 100%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
rename to hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
index da3d47e..1f49bde 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -68,6 +68,9 @@
@ApiModelProperty(value = "鍘氬害", position = 11)
private double thickness;
+ @ApiModelProperty(value = "鏃嬭浆瑙掑害", position = 12)
+ private Integer angle;
+
/**
* x鍧愭爣
*/
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index 2b7be5c..640cf2f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -231,6 +231,7 @@
cageDetails.setState(Const.GLASS_STATE_NEW);
cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
cageDetails.setSequence(bigStorageDTO.getSlotSequence());
+ cageDetails.setAngle((int) info.getAngle());
cageDetails.setGap(glassGap);
cageDetails.setFilmsId(info.getFilmsid());
cageDetails.setId(null);
@@ -255,6 +256,7 @@
cageDetails.setDeviceId(0);
cageDetails.setSequence(0);
cageDetails.setGap(glassGap);
+ cageDetails.setAngle((int) info.getAngle());
cageDetails.setFilmsId(info.getFilmsid());
cageDetails.setId(null);
bigStorageCageDetailsService.save(cageDetails);
@@ -690,9 +692,12 @@
*/
private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfoByVirtualSlot(List<T> list, String tableName, int targetSlot, int state, int taskType) {
//浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
- List<String> glassIdList = bigStorageGlassRelationInfoService.queryNeedOutGlassId(
- list.get(0).getEngineerId(), list.get(0).getTemperingLayoutId(), list.get(0).getTemperingFeedSequence());
- List<T> outGlassList = list.stream().filter(e -> glassIdList.contains(e.getGlassId())).collect(Collectors.toList());
+ List<T> outGlassList = list;
+ if (!THROUGH_SLOT.equals(list.get(0).getSlot())) {
+ List<String> glassIdList = bigStorageGlassRelationInfoService.queryNeedOutGlassId(
+ list.get(0).getEngineerId(), list.get(0).getTemperingLayoutId(), list.get(0).getTemperingFeedSequence());
+ outGlassList = list.stream().filter(e -> glassIdList.contains(e.getGlassId())).collect(Collectors.toList());
+ }
Assert.isFalse(CollectionUtil.isEmpty(outGlassList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", outGlassList.size());
List<BigStorageCageTask> bigStorageCageTaskList = outGlassList.stream()
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
index f2d1129..d4ba068 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -71,22 +71,22 @@
@Scheduled(fixedDelay = 1000)
public void rawStorageTask() throws Exception {
- ReadWriteEntity requestWord = miloService.readFromOpcUa("PLC.CC.request");
- ReadWriteEntity confireWord = miloService.readFromOpcUa("PLC.CC.confirmation");
- ReadWriteEntity reportWord = miloService.readFromOpcUa("PLC.CC.reportWord");
- ReadWriteEntity taskWord = miloService.readFromOpcUa("PLC.CC.taskWord");
+ ReadWriteEntity requestWord = miloService.readFromOpcUa("CC.CC.request");
+ ReadWriteEntity confireWord = miloService.readFromOpcUa("CC.CC.confirmation");
+ ReadWriteEntity reportWord = miloService.readFromOpcUa("CC.CC.reportWord");
+ ReadWriteEntity taskWord = miloService.readFromOpcUa("CC.CC.taskWord");
String requestValue = requestWord.getValue() + "";
if ("0".equals(requestValue)) {
if ("1".equals(confireWord.getValue() + "") && "0".equals(reportWord.getValue() + "")) {
List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("PLC.CC.confirmation", 0));
+ list.add(generateReadWriteEntity("CC.CC.confirmation", 0));
miloService.writeToOpcWord(list);
}
if ("1".equals(taskWord.getValue() + "")) {
List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("PLC.CC.taskWord", 0));
- list.add(generateReadWriteEntity("PLC.CC.startSlot", 0));
- list.add(generateReadWriteEntity("PLC.CC.endSlot", 0));
+ list.add(generateReadWriteEntity("CC.CC.taskWord", 0));
+ list.add(generateReadWriteEntity("CC.CC.startSlot", 0));
+ list.add(generateReadWriteEntity("CC.CC.endSlot", 0));
miloService.writeToOpcWord(list);
}
return;
@@ -122,7 +122,7 @@
@Scheduled(fixedDelay = 1000)
public void rawStorageInCar() throws Exception {
- ReadWriteEntity entity = miloService.readFromOpcUa("PLC.CC.inCar");
+ ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.inCar");
String value = entity.getValue() + "";
if (!"1".equals(value)) {
log.info("澶ц溅涓婃病鏈夋灦瀛�");
@@ -142,7 +142,7 @@
@Scheduled(fixedDelay = 1000)
public void rawStorageFinish() throws Exception {
- ReadWriteEntity entity = miloService.readFromOpcUa("PLC.CC.reportWord");
+ ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.reportWord");
String value = entity.getValue() + "";
if ("0".equals(value)) {
log.info("褰撳墠浠诲姟鏈眹鎶ワ紝缁撴潫鏈浠诲姟");
@@ -207,7 +207,7 @@
}
List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("PLC.CC.confirmation", 1));
+ list.add(generateReadWriteEntity("CC.CC.confirmation", 1));
miloService.writeToOpcWord(list);
}
@@ -266,10 +266,10 @@
rawGlassStorageDetailsService.generateTask(startSlot, lefting, startSlot, rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
// List<ReadWriteEntity> list = new ArrayList<>();
-// list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
-// list.add(generateReadWriteEntity("PLC.CC.taskSending", 1));
-// list.add(generateReadWriteEntity("PLC.CC.startSlot", startSlot));
-// list.add(generateReadWriteEntity("PLC.CC.endSlot", lefting));
+// list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+// list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+// list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+// list.add(generateReadWriteEntity("CC.CC.endSlot", lefting));
// miloService.writeToOpcWord(list);
//淇敼鍑虹墖浠诲姟鐘舵��
@@ -300,10 +300,10 @@
rawGlassStorageDetailsService.generateTask(details.getSlot(), details.getShelf(), details.getShelf(),
details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
// List<ReadWriteEntity> list = new ArrayList<>();
-// list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
-// list.add(generateReadWriteEntity("PLC.CC.taskSending", 1));
-// list.add(generateReadWriteEntity("PLC.CC.startSlot", details.getSlot()));
-// list.add(generateReadWriteEntity("PLC.CC.endSlot", details.getShelf()));
+// list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+// list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+// list.add(generateReadWriteEntity("CC.CC.startSlot", details.getSlot()));
+// list.add(generateReadWriteEntity("CC.CC.endSlot", details.getShelf()));
// miloService.writeToOpcWord(list);
//鐢熸垚宸ヤ綅浠诲姟锛屽皢鍚婅浣嶇殑鐜荤拑鐘舵�佹敼浣嶈繘绗间腑
//淇敼鍚婅浣嶇殑鍘熺墖鐘舵�佷负103 鍑虹墖涓�
@@ -390,11 +390,15 @@
log.info("2鍙蜂笂鐗囦綅鐜荤拑灏哄涓嶄竴鑷达紝1鍙蜂笂鐗囦綅鐢熸垚璋冨害浠诲姟");
//鎸夌収灏哄鍙婃暟閲忚幏鍙栨暟閲忔渶鎺ヨ繎鐨勬牸瀛愪俊鎭�
RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+ if(null == rawDetails){
+ log.info("浠撳簱鍐呮棤闇�瑕佷笂鏋剁殑鐜荤拑");
+ return Boolean.FALSE;
+ }
rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
//缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101 鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
.eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
- .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
+ .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
return Boolean.TRUE;
}
} else {
@@ -404,7 +408,7 @@
rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
.eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
- .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
+ .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
return Boolean.TRUE;
}
} else {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
index 6782761..80ea1bf 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -10,6 +10,8 @@
import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
import com.mes.opctask.service.LoadGlassDeviceTaskHistoryService;
import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
import com.mes.uppattenusage.entity.UpPattenUsage;
@@ -48,6 +50,8 @@
private LoadGlassDeviceTaskHistoryService loadGlassDeviceTaskHistoryService;
@Resource
private UpPattenUsageMapper upPattenUsageMapper;
+ @Resource
+ private OptimizeProjectService optimizeProjectService;
private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
private static final List<Integer> LOAD_STATION_02 = Arrays.asList(103, 104);
@@ -58,7 +62,6 @@
private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
private static final String LOAD_GLASS_DEVICE_TWO_TASK = "load_glass_device_two_task";
-
//璁惧id 涓婄墖浣嶄俊鎭� 浠诲姟琛ㄤ笉涓�鑷� 鍘嗗彶浠诲姟琛ㄥ叕鐢ㄤ竴寮� 鏂板浠诲姟/浠诲姟缁撴潫锛屽悗浼氬湪鍘嗗彶琛ㄤ腑鏂板涓�鏉¤褰曞苟鍦ㄧ粨鏉熷悗鏇存柊浠诲姟 涓�涓换鍔″嵆鍙�
//瀹氭椂浠诲姟鎵弿涓婄墖浣嶆湁娌℃湁鍘熺墖
@@ -84,6 +87,25 @@
@Scheduled(fixedDelay = 300)
public void opcLoadGlassTwoFinish() {
opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
+ }
+
+ /**
+ * 瀹氭椂浠诲姟鎵爜宸插畬鎴愪笂鐗囩殑宸ョ▼锛屽皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚锛屽悓姝p琛ㄧ殑宸ョ▼琛紝鐘舵�佹敼涓�300
+ */
+ @Scheduled(fixedDelay = 3000)
+ public void updateEngineerState() {
+ log.info("淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�");
+ List<Engineering> engineerings = engineeringMapper.selectList(new LambdaQueryWrapper<Engineering>().eq(Engineering::getState, Const.ENGINEERING_RUNNING));
+ for (Engineering engineering : engineerings) {
+ Integer count = upPattenUsageMapper.selectCount(new LambdaQueryWrapper<UpPattenUsage>()
+ .eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId()).ne(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
+ if (count == 0) {
+ engineeringMapper.update(null, new LambdaUpdateWrapper<Engineering>().set(Engineering::getState, Const.ENGINEERING_SUCCESS)
+ .eq(Engineering::getEngineerId, engineering.getEngineerId()));
+ optimizeProjectService.update(null, new LambdaUpdateWrapper<OptimizeProject>().set(OptimizeProject::getState, 300)
+ .eq(OptimizeProject::getProjectNo, engineering.getEngineerId()));
+ }
+ }
}
private void opcLoadGlassChild(String tableName, Integer deviceId) {
@@ -118,7 +140,7 @@
List<Integer> loadStation = LOAD_GLASS_DEVICE_ONE_TASK.equals(tableName) ? LOAD_STATION_01 : LOAD_STATION_02;
List<RawGlassStorageDetails> loadStationList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
.inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
- .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+ .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
.eq(RawGlassStorageDetails::getDeviceId, deviceId));
if (CollectionUtils.isEmpty(loadStationList)) {
log.info("褰撳墠涓婄墖绾胯矾涓や釜涓婄墖浣嶉兘娌℃湁鍘熺墖淇℃伅锛岀粨鏉熸湰娆′笂鐗囦换鍔★紝绛夊緟浠撳偍璋冨害浠诲姟");
--
Gitblit v1.8.0