From 78d73df2f8e0c6855d65eb1f2c6df08e0f99bab1 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 22 十月 2025 12:45:05 +0800
Subject: [PATCH] 仓储后端接口返回信息国际化处理
---
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java | 207 ++++++++++++++++++++++++++++++++++-----------------
1 files changed, 138 insertions(+), 69 deletions(-)
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 da8eb31..395506a 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
@@ -15,13 +15,14 @@
import com.mes.pp.service.OptimizeProjectService;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.mes.s7.entity.S7Data;
+import com.mes.s7.entity.S7DataSP;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -56,8 +57,13 @@
@Resource
private OptimizeProjectService optimizeProjectService;
- @Autowired(required = false)
- S7Serializer s7Serializer;
+ @Autowired
+ @Qualifier("s7SerializerSP1")
+ private S7Serializer s7SerializerSPOne;
+
+ @Autowired
+ @Qualifier("s7SerializerSP2")
+ private S7Serializer s7SerializerSPTwo;
private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
private static final List<Integer> LOAD_STATION_02 = Arrays.asList(103, 104);
@@ -75,22 +81,22 @@
//2銆�1鍙蜂笂鐗囦綅鏄惁鏈夊師鐗囷紝鍘熺墖灏哄鏄惁鍜屼笂鐗囧緟涓婄墖鐨勫昂瀵镐竴鑷�
//3銆�1鍙锋棤鍘熺墖锛屼笖娌℃湁鏋跺瓙锛�2鍙蜂笂鐗囦綅灏哄鏄惁鍜屽甫涓婄墖灏哄涓�鑷�
//4銆佷笉涓�鑷村彲鑳藉嚭鐜扮幓鐠冪牬鎹熷鑷寸殑涓婁竴鏋跺師鐗囨暟閲忎笉澶�
- @Scheduled(fixedDelay = 5000)
+ @Scheduled(fixedDelay = 2000)
public void opcLoadGlassOne() {
opcLoadGlassChild(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
}
- // @Scheduled(fixedDelay = 5000)
+// @Scheduled(fixedDelay = 5000)
public void opcLoadGlassTwo() {
opcLoadGlassChild(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
}
- @Scheduled(fixedDelay = 5000)
+ @Scheduled(fixedDelay = 2000)
public void opcLoadGlassOneFinish() {
opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
}
- // @Scheduled(fixedDelay = 5000)
+// @Scheduled(fixedDelay = 5000)
public void opcLoadGlassTwoFinish() {
opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
}
@@ -105,7 +111,10 @@
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) {
+ OptimizeProject project = optimizeProjectService.getOne(new LambdaUpdateWrapper<OptimizeProject>()
+ .eq(OptimizeProject::getProjectNo, 200)
+ .eq(OptimizeProject::getState, engineering.getEngineerId()));
+ if (count == 0 && project != null) {
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)
@@ -115,31 +124,44 @@
}
private void opcLoadGlassChild(String tableName, Integer deviceId) {
- S7Data S7DataSP1 = s7Serializer.read(S7Data.class);
+ S7DataSP s7DataSP = new S7DataSP();
+// s7DataSP.setPlcRequest(1);
+// s7DataSP.setMesConfirm(0);
+ if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
+ s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
+ } else {
+ s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
+ }
+ log.info("{}涓婄墖绾匡紝褰撳墠涓婄墖浣嶄俊鎭細{}", deviceId, s7DataSP);
+
+ if (s7DataSP.getPlcRequest() == 0) {
+ if (s7DataSP.getMesSend() != 0) {
+ S7DataSP resetSend = new S7DataSP();
+ resetSend.setMesSend(0);
+ s7SerializerSPOne.write(resetSend);
+ log.info("{}涓婄墖绾匡紝PLC璇锋眰娓呴浂锛孧ES鍚屾娓呴浂mesSend", deviceId);
+ }
+ return;
+ }
+
+ // 褰揚LC璇锋眰鏂颁换鍔★紙plcRequest=1锛変笖鏃犳湭纭姹囨姤锛坢esConfirm=0锛夋椂澶勭悊
+ if (s7DataSP.getPlcRequest() != 1 || s7DataSP.getMesConfirm() != 0) {
+ log.info("{}涓婄墖绾匡紝PLC鏈姹傛柊浠诲姟鎴栧瓨鍦ㄦ湭纭姹囨姤锛岃烦杩囨湰娆″鐞�", deviceId);
+ return;
+ }
+
Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
- .eq(Engineering::getState, Const.ENGINEERING_RUNNING).eq(Engineering::getStationCell, deviceId));
+ .eq(Engineering::getState, Const.ENGINEERING_RUNNING)
+ .eq(Engineering::getStationCell, deviceId));
if (null == engineering) {
log.info("{}涓婄墖绾匡紝娌℃湁宸ョ▼浠诲姟", deviceId);
return;
}
- //浠诲姟鏆傚仠
- LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
- ;
- if ("0".equals(S7DataSP1.getInkageState().toString())) {
-// if (0 == task.getInkageState()) {
- log.info("{}涓婄墖绾匡紝澶勪簬绂荤嚎鐘舵�侊細{}锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId, task.getInkageState());
- return;
- }
- if (S7DataSP1.getTaskRunning().toString().equals(Const.ENGINEERING_RUNNING)) {
-// if (task.getTaskRunning().equals(Const.ENGINEERING_RUNNING)) {
- log.info("{}涓婄墖绾匡紝鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId);
- return;
- }
+
List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId());
log.info("鎸夌収褰撳墠鑾峰彇鍒版鍦ㄩ渶瑕佷笂鐗囩殑鍘熺墖淇℃伅鏈夛細{}", pattenUsageList);
if (CollectionUtils.isEmpty(pattenUsageList)) {
log.info("褰撳墠宸ョ▼闇�瑕佷笂鐗囩殑鍘熺墖淇℃伅涓虹┖锛屼换鍔″凡缁撴潫");
- //todo锛氭槸鍚﹀皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚
return;
}
Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
@@ -150,7 +172,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")
- .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
+ .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
.eq(RawGlassStorageDetails::getDeviceId, deviceId));
if (CollectionUtils.isEmpty(loadStationList)) {
log.info("褰撳墠涓婄墖绾胯矾涓や釜涓婄墖浣嶉兘娌℃湁鍘熺墖淇℃伅锛岀粨鏉熸湰娆′笂鐗囦换鍔★紝绛夊緟浠撳偍璋冨害浠诲姟");
@@ -165,13 +187,26 @@
}
int number = Math.min(twoLoadStation.getRemainQuantity(), usageVOS.size());
//鐢熸垚涓婄墖浠诲姟
+ LoadGlassDeviceTaskHistory task = new LoadGlassDeviceTaskHistory();
task.setTotalCount(number);
- task.setTaskRunning(Const.ENGINEERING_RUNNING);
+ task.setTaskRunning(1);
task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
- task.setSlot(loadStation.get(1));
- loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
+ task.setSlot(loadStation.get(0));
+ task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId());
+ task.setEngineeringId(usageVOS.get(0).getEngineeringId());
saveHistoryTask(task, deviceId);
+
+ S7DataSP s7DataSPWrite = new S7DataSP();
+ s7DataSPWrite.setMesSend(1);
+ s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth());
+ s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+ s7DataSPWrite.setSlot(loadStation.get(1));
+ if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
+ s7SerializerSPOne.write(s7DataSPWrite);
+ } else {
+ s7SerializerSPTwo.write(s7DataSPWrite);
+ }
return;
}
//灏哄涓嶄竴鏍锋垨鑰呭師鐗囨暟閲忓ぇ浜�0
@@ -181,69 +216,103 @@
}
//鐢熸垚涓婄墖浠诲姟
int number = Math.min(oneLoadStation.getRemainQuantity(), usageVOS.size());
+ LoadGlassDeviceTaskHistory task = new LoadGlassDeviceTaskHistory();
task.setTotalCount(number);
- task.setTaskRunning(Const.ENGINEERING_RUNNING);
+ task.setTaskRunning(1);
task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+ task.setRawGlassThickness((int) usageVOS.get(0).getThickness());
task.setSlot(loadStation.get(0));
- loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
+ task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId());
+ task.setEngineeringId(usageVOS.get(0).getEngineeringId());
saveHistoryTask(task, deviceId);
+
+ UpPattenUsage upPattenUsage = upPattenUsageMapper.selectById(usageVOS.get(0).getId());
+ upPattenUsage.setState(101);
+ upPattenUsageMapper.updateById(upPattenUsage);
+
+ S7DataSP s7DataSPWrite = new S7DataSP();
+ s7DataSPWrite.setMesSend(1);
+ s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth());
+ s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+ s7DataSPWrite.setSlot(loadStation.get(0));
+ if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
+ s7SerializerSPOne.write(s7DataSPWrite);
+ } else {
+ s7SerializerSPTwo.write(s7DataSPWrite);
+ }
}
private void opcLoadGlassFinishChid(String tableName, Integer deviceId) {
- S7Data S7DataSP1 = s7Serializer.read(S7Data.class);
- LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
- if (S7DataSP1.getTaskRunning().toString().equals(Const.ENGINEERING_NEW)) {
-// if (task.getTaskRunning().equals(Const.ENGINEERING_NEW)) {
- log.info("鏃犱换鍔�,缁撴潫");
+ S7DataSP s7DataSP = new S7DataSP();
+// s7DataSP.setPlcReport(1);
+// s7DataSP.setMesConfirm(0);
+ if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
+ s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
+ } else {
+ s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
+ }
+ log.info("{}涓婄墖绾匡紝褰撳墠涓婄墖浣嶄俊鎭細{}", deviceId, s7DataSP);
+
+ if (s7DataSP.getPlcReport() == 0) {
+ if (s7DataSP.getMesConfirm() != 0) {
+ S7DataSP resetConfirm = new S7DataSP();
+ resetConfirm.setMesConfirm(0);
+ s7SerializerSPOne.write(resetConfirm);
+ log.info("{}涓婄墖绾匡紝PLC姹囨姤娓呴浂锛孧ES鍚屾娓呴浂mesConfirm", deviceId);
+ }
return;
}
- if (Integer.parseInt(S7DataSP1.getTaskState().toString()) <= 1) {
-// if (task.getTaskState() <= 1) {
- log.info("浠诲姟姝e湪鎵ц,缁撴潫");
+
+ if (s7DataSP.getPlcReport() == 0 || s7DataSP.getMesConfirm() != 0) {
+ log.info("{}涓婄墖绾匡紝鏃燩LC姹囨姤鎴栧凡纭锛岃烦杩囨湰娆″鐞�", deviceId);
return;
}
- //鑾峰彇浠诲姟瀹屾垚鎯呭喌
-// 宸插畬鎴愭暟閲� 鐮存崯鏁伴噺
- Integer finishCount = Integer.parseInt(S7DataSP1.getFinishCount().toString());
- Integer damageCount = Integer.parseInt(S7DataSP1.getDamageCount().toString());
-// Integer finishCount = task.getFinishCount();
-// Integer damageCount = task.getDamageCount();
+ LoadGlassDeviceTaskHistory unconfirmedTask = loadGlassDeviceTaskHistoryService.getOne(
+ new LambdaQueryWrapper<LoadGlassDeviceTaskHistory>()
+ .eq(LoadGlassDeviceTaskHistory::getStation, deviceId)
+ .eq(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_RUNNING)
+ );
+ String upUsageId = unconfirmedTask.getEngineeringId();
+ if (s7DataSP.getPlcReport() == 1) {
+ // 姹囨姤鎴愬姛锛氭洿鏂颁笂鐗囪褰曚负鈥滄垚鍔熲��
+ upPattenUsageMapper.update(null,
+ new LambdaUpdateWrapper<UpPattenUsage>()
+ .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS)
+ .eq(UpPattenUsage::getEngineeringId, upUsageId)
+ .eq(UpPattenUsage::getState, 101)
+ );
+ unconfirmedTask.setTaskState(Const.RAW_GLASS_TASK_SUCCESS);
+ unconfirmedTask.setFinishCount(unconfirmedTask.getFinishCount() + 1);
+ log.info("{}涓婄墖绾匡紝浠诲姟姹囨姤鎴愬姛锛屾洿鏂颁笂鐗囪褰昜{}]涓烘垚鍔�", deviceId, upUsageId);
+ } else if (s7DataSP.getPlcReport() == 2) {
+ // 姹囨姤鐮存崯
+ unconfirmedTask.setTaskState(200);
+ unconfirmedTask.setDamageCount(unconfirmedTask.getDamageCount() + 1);
+ log.warn("{}涓婄墖绾匡紝浠诲姟姹囨姤鐮存崯锛屼笂鐗囪褰昜{}]鏍囪涓虹牬鎹�", deviceId, upUsageId);
+ }
+ unconfirmedTask.setUpdateTime(new Date());
+ loadGlassDeviceTaskHistoryService.updateById(unconfirmedTask);
//鏇存柊褰撳墠鏋跺瓙涓婄殑鍘熺墖鍓╀綑鎯呭喌
rawGlassStorageDetailsService.update(new UpdateWrapper<RawGlassStorageDetails>()
.inSql("slot", "select slot from raw_glass_storage_station where enable_state = 1")
- .eq("slot", task.getSlot())
+// .eq("slot", task.getSlot())
+ .eq("slot", unconfirmedTask.getSlot())
.eq("state", Const.RAW_GLASS_STATE_IN)
- .setSql("remain_quantity = remain_quantity - " + (finishCount + damageCount)));
- //鏇存柊宸ョ▼涓嬬殑鍘熺墖鏁伴噺 todo:sql寰呬紭鍖�
-
- if (finishCount > 0) {
- List<Integer> ids = upPattenUsageMapper.queryFinishByEngineering(deviceId, finishCount);
- upPattenUsageMapper.update(null, new LambdaUpdateWrapper<UpPattenUsage>()
- .in(UpPattenUsage::getId, ids)
- .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
- }
- //浠诲姟琛ㄦ暟鎹儏鍐�
- task.setTaskRunning(0);
- task.setTotalCount(0);
- task.setRawGlassWidth(0);
- task.setRawGlassHeight(0);
- task.setSlot(0);
- loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
- loadGlassDeviceTaskHistoryService.update(new LambdaUpdateWrapper<LoadGlassDeviceTaskHistory>()
- .set(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
- .eq(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
- .eq(LoadGlassDeviceTaskHistory::getStation, deviceId)
- );
+ .setSql("remain_quantity = GREATEST(remain_quantity - 1, 0)"));
+ //姹囨姤瀛楃粰1
+ S7DataSP s7DataSPWrite = new S7DataSP();
+ s7DataSPWrite.setMesConfirm(1);
+ s7SerializerSPOne.write(s7DataSPWrite);
}
- private boolean saveHistoryTask(LoadGlassDeviceTask task, Integer deviceId) {
+ private boolean saveHistoryTask(LoadGlassDeviceTaskHistory task, Integer deviceId) {
LoadGlassDeviceTaskHistory taskHistory = new LoadGlassDeviceTaskHistory();
BeanUtils.copyProperties(task, taskHistory);
taskHistory.setStation(deviceId);
taskHistory.setCreateTime(new Date());
- taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+ taskHistory.setTaskState(Const.RAW_GLASS_TASK_RUNNING);
loadGlassDeviceTaskHistoryService.save(taskHistory);
return Boolean.TRUE;
}
@@ -261,4 +330,4 @@
return flag && details.getRemainQuantity() > 0;
}
-}
+}
\ No newline at end of file
--
Gitblit v1.8.0