From ea2fdc85d876c680e042034d1cbb7c1ca030b5b7 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期日, 12 十月 2025 11:14:25 +0800
Subject: [PATCH] 1、中空任务队列显示bug修复,缺片详情破损后再查询条件添加
---
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java | 643 +++++++++++++++++++++++++++++----------------------------
1 files changed, 329 insertions(+), 314 deletions(-)
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index b574802..67c49d1 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -10,6 +10,8 @@
import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
+import com.mes.alarm.entity.ProductAlarmInfo;
+import com.mes.alarm.service.ProductAlarmInfoService;
import com.mes.base.entity.HollowBigStorageCageBaseInfo;
import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
@@ -101,8 +103,21 @@
@Qualifier("CMJ1ModbusTcp")
ModbusTcp CMJ1ModbusTcp;
+ @Resource
+ private ProductAlarmInfoService productAlarmInfoService;
+
private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
+
+ private static final List<Integer> ONE_LINE_FIRST = Arrays.asList(930, 931, 932);
+ private static final List<Integer> TWO_LINE_FIRST = Arrays.asList(931, 930, 932);
+
+
+ private static final String ALARM_MODULE = "涓┖";
+ private static final String ALARM_TYPE = "涓┖澶х悊鐗�";
+ private static final String ALARM_CODE_SIZE = "sizeSame";
+ private static final String ALARM_CODE_ID = "idSame";
+
/**
* 鐩撮�氭牸瀛�
*/
@@ -112,67 +127,46 @@
@Resource
private RedisUtil redisUtil;
-// @Value("${mes.slotWidth}")
-// private Integer slotWidth;
-//
-// @Value("${mes.glassGap}")
-// private Integer glassGap;
-//
-// @Value("${mes.carWidth}")
-// private Integer carWidth;
-//
-// @Value("${mes.outCarMaxSize}")
-// private Integer outCarMaxSize;
-//
-// @Value("${mes.slotMaxHeight}")
-// private Integer slotMaxHeight;
-// @Value("${mes.slotMaxthickness}")
-// private Integer slotMaxthickness;
-
@Scheduled(fixedDelay = 1000)
- public void inBigStorageTask() throws Exception {
+ public void inBigStorageTask() {
+ List<ProductAlarmInfo> alarmInfos = productAlarmInfoService.list(new LambdaQueryWrapper<ProductAlarmInfo>()
+ .eq(ProductAlarmInfo::getState, Const.LOAD_RAW_GLASS_NEW)
+ .eq(ProductAlarmInfo::getAlarmModule, ALARM_MODULE)
+ .eq(ProductAlarmInfo::getAlarmType, ALARM_TYPE));
+ if (CollectionUtil.isNotEmpty(alarmInfos)) {
+ log.info("鐣岄潰鎶ヨ锛岀瓑寰呬汉宸ュ共棰勫鐞�");
+ return;
+ }
S7DataZKDLPOne s7DataZKDLPOne = s7SerializerZKDLPOne.read(S7DataZKDLPOne.class);
log.info("杩涚墖浠诲姟璇诲彇s7DataZKDLPOne:{}", s7DataZKDLPOne);
-// ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
-// if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
Boolean inkageEntity = s7DataZKDLPOne.getMesControl();
- if (true != inkageEntity) {
+ if (!inkageEntity) {
log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
return;
}
-// ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes");
-// if (!"1".equals(requestEntity.getValue() + "")) {
- String requestEntity = s7DataZKDLPOne.getRequestMes().toString();
- if (!"1".equals(requestEntity)) {
+ Integer requestEntity = s7DataZKDLPOne.getRequestMes();
+ if (1 != requestEntity) {
log.info("褰撳墠鏈敹鍒拌繘鐗囪姹傦紝缁撴潫杩涚墖浠诲姟");
return;
}
-// ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply");
-// if ("1".equals(mesReplyEntity.getValue() + "")) {
- String mesReplyEntity = s7DataZKDLPOne.getMesReply().toString();
- if ("1".equals(mesReplyEntity)) {
+ Integer mesReplyEntity = s7DataZKDLPOne.getMesReply();
+ if (1 == mesReplyEntity) {
log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熻繘鐗囦换鍔�");
return;
}
List<BigStorageCageTask> inTaskList = new ArrayList();
-// ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1");
- String fromOpcUa = s7DataZKDLPOne.getFrom1().toString();
+ Integer from = s7DataZKDLPOne.getFrom1();
List<String> glassIdList = new ArrayList<>();
List<String> requestWords = s7DataZKDLPOne.getIds();
for (int i = 1; i <= 6; i++) {
-// ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
String requestWord = requestWords.get(i - 1);
-// if (null != requestWord.getValue()) {
if (null != requestWord && !requestWord.isEmpty()) {
BigStorageCageTask task = new BigStorageCageTask();
-// task.setGlassId(requestWord.getValue() + "");
- task.setGlassId(requestWord.toString());
-// task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
- task.setStartSlot(Integer.parseInt(fromOpcUa));
+ task.setGlassId(requestWord);
+ task.setStartSlot(from);
inTaskList.add(task);
-// glassIdList.add(requestWord.getValue() + "");
- glassIdList.add(requestWord.toString());
+ glassIdList.add(requestWord);
continue;
}
}
@@ -185,8 +179,14 @@
for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
if (entry.getValue() > 1) {
log.info("杩涚墖鐜荤拑{}瀛樺湪鐩稿悓锛岀粨鏉熸湰娆′换鍔�", entry.getKey());
+ ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+ alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+ alarmInfo.setAlarmModule(ALARM_MODULE);
+ alarmInfo.setAlarmType(ALARM_TYPE);
+ alarmInfo.setAlarmCode(ALARM_CODE_ID);
+ alarmInfo.setAlarmMessage(entry.getKey());
+ productAlarmInfoService.save(alarmInfo);
//鍚憄lc鍙戦�佹姤璀�:鍚屼竴杞﹁繘鐗囩幓鐠冨瓨鍦ㄧ浉鍚�
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 2));
s7DataZKDLPOne = new S7DataZKDLPOne();
s7DataZKDLPOne.setAlramSignal(2);
s7SerializerZKDLPOne.write(s7DataZKDLPOne);
@@ -198,7 +198,16 @@
if (CollectionUtil.isNotEmpty(detailsList)) {
log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
//鍚憄lc鍙戦�佹姤璀�:鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 4));
+ List<String> sameGlassIds = detailsList.stream()
+ .map(HollowBigStorageCageDetails::getGlassId)
+ .collect(Collectors.toList());
+ ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+ alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+ alarmInfo.setAlarmModule(ALARM_MODULE);
+ alarmInfo.setAlarmType(ALARM_TYPE);
+ alarmInfo.setAlarmCode(ALARM_CODE_ID);
+ alarmInfo.setAlarmMessage(sameGlassIds.toString());
+ productAlarmInfoService.save(alarmInfo);
s7DataZKDLPOne = new S7DataZKDLPOne();
s7DataZKDLPOne.setAlramSignal(4);
s7SerializerZKDLPOne.write(s7DataZKDLPOne);
@@ -209,7 +218,6 @@
if (glassInfoList.size() != inTaskList.size()) {
log.info("杩涚墖浠诲姟鏁伴噺{}涓庣幓鐠冩暟閲弡}涓嶅尮閰嶏紝缁撴潫鏈杩涚墖", inTaskList.size(), glassInfoList.size());
//鍚憄lc鍙戦�佹姤璀�:杩涚墖浠诲姟鏁伴噺涓庣郴缁熸煡璇㈠埌鐨勭幓鐠冩暟閲忎笉鍖归厤
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 8));
s7DataZKDLPOne = new S7DataZKDLPOne();
s7DataZKDLPOne.setAlramSignal(8);
s7SerializerZKDLPOne.write(s7DataZKDLPOne);
@@ -217,21 +225,23 @@
}
Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+ Integer slotMaxThickness = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_MAX_THICKNESS);
//鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
- for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
- int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
- .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
- .le(HollowBigStorageCage::getMinThickness, entry.getKey())
- .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
- if (count < entry.getValue()) {
- log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
- //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 16));
- s7DataZKDLPOne = new S7DataZKDLPOne();
- s7DataZKDLPOne.setAlramSignal(16);
- s7SerializerZKDLPOne.write(s7DataZKDLPOne);
- return;
+ if (glassInfoList.get(0).getThickness() < slotMaxThickness) {
+ for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+ int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
+ .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+ .le(HollowBigStorageCage::getMinThickness, entry.getKey())
+ .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
+ if (count < entry.getValue()) {
+ log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+ //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
+ s7DataZKDLPOne = new S7DataZKDLPOne();
+ s7DataZKDLPOne.setAlramSignal(16);
+ s7SerializerZKDLPOne.write(s7DataZKDLPOne);
+ return;
+ }
}
}
//瓒呭ぇ灏哄
@@ -244,7 +254,6 @@
if (count > 0) {
log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
//鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 64));
s7DataZKDLPOne = new S7DataZKDLPOne();
s7DataZKDLPOne.setAlramSignal(64);
s7SerializerZKDLPOne.write(s7DataZKDLPOne);
@@ -267,52 +276,49 @@
List<HollowBigStorageCageHistoryTask> historyTasks = new ArrayList<>();
Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
- try {
- if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxthickness) {
- for (BigStorageCageTask task : inTaskList) {
- GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
- HollowBigStorageDTO bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(),
+
+ log.info("寮�濮嬭绠楃洰鏍囨牸瀛�,鐜荤拑id鏈夛細{}", inTaskList);
+ if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxthickness) {
+ for (BigStorageCageTask task : inTaskList) {
+ GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+ HollowBigStorageDTO bigStorageDTO = null;
+ try {
+ bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(), info.getGlassType(),
info.getWidth(), info.getHeight(), info.getTotalLayer(), info.getLayer());
-// 涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
- hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
- .set(HollowBigStorageCage::getRemainWidth, bigStorageDTO.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
- .eq(HollowBigStorageCage::getSlot, bigStorageDTO.getSlot()));
- task.setTargetSlot(bigStorageDTO.getSlot());
- task.setGlassId(info.getGlassId());
-// bigStorageCageTaskService.updateTaskMessage(BIG_STORAGE_CAGE_IN_TWO_TASK, task);
- //瀛樻斁鍘嗗彶浠诲姟
- HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
- BeanUtils.copyProperties(task, historyTask);
- historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
- historyTask.setGlassCount(glassInfoList.size());
- historyTask.setTaskState(Const.ENGINEERING_NEW);
- historyTasks.add(historyTask);
- //瀛樻斁璇︽儏鏁版嵁
- HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
- BeanUtils.copyProperties(bigStorageDTO, cageDetails);
- BeanUtils.copyProperties(info, cageDetails);
- cageDetails.setState(Const.GLASS_STATE_NEW);
- cageDetails.setSequence(bigStorageDTO.getSlotSequence());
- cageDetails.setGap(glassGap);
- cageDetails.setId(null);
- hollowBigStorageCageDetailsService.save(cageDetails);
+ } catch (Exception exception) {
+ log.info("杩涚墖浠诲姟鎵ц涓彂鐢熷紓甯革細{}", exception);
+ //淇濆瓨鏁呴殰淇℃伅
+ ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+ alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+ alarmInfo.setAlarmModule(ALARM_MODULE);
+ alarmInfo.setAlarmType(ALARM_TYPE);
+ alarmInfo.setAlarmCode(ALARM_CODE_SIZE);
+ alarmInfo.setAlarmMessage(info.getGlassId());
+ productAlarmInfoService.save(alarmInfo);
+ //閲嶇疆璇︽儏琛ㄦ暟鎹�
+ hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+ .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_TAKE)
+ .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+ //閲嶇疆涓┖鍏崇郴琛ㄦ暟鎹�
hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
- .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
- .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
- .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
- .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
- .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
- .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId())
- .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer())
- .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot())
- .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence())
- .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence())
+ .set(HollowGlassRelationInfo::getGlassId, null)
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+ .set(HollowGlassRelationInfo::getEngineerId, null)
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+ .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
);
+ //灏嗘牸瀛愬昂瀵告仮澶�
+ hollowBigStorageCageService.resetCage();
+ return;
}
- } else {
- BigStorageCageTask task = inTaskList.get(0);
- task.setTargetSlot(THROUGH_SLOT);
-// bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_two_task", task);
+
+// 涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+ hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+ .set(HollowBigStorageCage::getRemainWidth, bigStorageDTO.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+ .eq(HollowBigStorageCage::getSlot, bigStorageDTO.getSlot()));
+ task.setTargetSlot(bigStorageDTO.getSlot());
+ task.setGlassId(info.getGlassId());
//瀛樻斁鍘嗗彶浠诲姟
HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
BeanUtils.copyProperties(task, historyTask);
@@ -320,39 +326,55 @@
historyTask.setGlassCount(glassInfoList.size());
historyTask.setTaskState(Const.ENGINEERING_NEW);
historyTasks.add(historyTask);
- GlassInfo info = glassInfoList.get(0);
+ //瀛樻斁璇︽儏鏁版嵁
HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+ BeanUtils.copyProperties(bigStorageDTO, cageDetails);
BeanUtils.copyProperties(info, cageDetails);
- cageDetails.setSlot(THROUGH_SLOT);
cageDetails.setState(Const.GLASS_STATE_NEW);
- cageDetails.setDeviceId(0);
- cageDetails.setSequence(0);
- cageDetails.setHollowSequence(0);
+ cageDetails.setSequence(bigStorageDTO.getSlotSequence());
cageDetails.setGap(glassGap);
- cageDetails.setFilmsId(info.getFilmsid());
cageDetails.setId(null);
hollowBigStorageCageDetailsService.save(cageDetails);
+ hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+ .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
+ .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+ .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId())
+ .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer())
+ .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot())
+ .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence())
+ .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence())
+ );
}
- } catch (Exception exception) {
- log.info("杩涚墖浠诲姟鎵ц涓彂鐢熷紓甯革細{}", exception);
- hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
- .set(HollowGlassRelationInfo::getGlassId, null)
- .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
- .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
- .set(HollowGlassRelationInfo::getEngineerId, null)
- .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
- .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
- );
+ } else {
+ BigStorageCageTask task = inTaskList.get(0);
+ task.setTargetSlot(THROUGH_SLOT);
+ //瀛樻斁鍘嗗彶浠诲姟
+ HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
+ BeanUtils.copyProperties(task, historyTask);
+ historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
+ historyTask.setGlassCount(glassInfoList.size());
+ historyTask.setTaskState(Const.ENGINEERING_NEW);
+ historyTasks.add(historyTask);
+ GlassInfo info = glassInfoList.get(0);
+ HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setSlot(THROUGH_SLOT);
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setDeviceId(0);
+ cageDetails.setSequence(0);
+ cageDetails.setHollowSequence(0);
+ cageDetails.setGap(glassGap);
+ cageDetails.setFilmsId(info.getFilmsid());
+ cageDetails.setId(null);
+ hollowBigStorageCageDetailsService.save(cageDetails);
}
+
//鍘嗗彶鏁版嵁鍏ュ簱
hollowBigStorageCageHistoryTaskService.saveBatch(historyTasks);
//鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
-// List<ReadWriteEntity> list = new ArrayList<>();
-// for (int i = 1; i <= inTaskList.size(); i++) {
-// list.add(generateReadWriteEntity("DLP2A.DLP2A.TO" + i, inTaskList.get(i - 1).getTargetSlot()));
-// }
-// list.add(generateReadWriteEntity("DLP2A.DLP2A.MesReply", 1));
-// miloService.writeToOpcWord(list);
s7DataZKDLPOne = new S7DataZKDLPOne();
for (int i = 0; i < inTaskList.size() && i < 6; i++) {
Integer value = inTaskList.get(i).getTargetSlot();
@@ -387,73 +409,81 @@
public void outBigStorageTask() throws Exception {
Date startDate = new Date();
S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
- log.info("杩涚墖浠诲姟璇诲彇s7DataZKDLPTwo:{}", s7DataZKDLPTwo);
-// ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
-// if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+ log.info("鍑虹墖浠诲姟璇诲彇s7DataZKDLPTwo:{}", s7DataZKDLPTwo);
Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
- if (true != inkageEntity) {
+ if (!inkageEntity) {
log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
return;
}
-// ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes");
-// if (!"1".equals(requestEntity.getValue() + "")) {
- String requestEntity = s7DataZKDLPTwo.getRequestMes().toString();
- if (!"1".equals(requestEntity)) {
+ Integer requestEntity = s7DataZKDLPTwo.getRequestMes();
+ if (1 != requestEntity) {
log.info("褰撳墠鏈敹鍒板嚭鐗囪姹傦紝缁撴潫鍑虹墖浠诲姟");
return;
}
//鑾峰彇鍑虹墖浠诲姟琛�
-// List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
-
List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataZKDLPTwo);
-
if (CollectionUtil.isNotEmpty(outTaskList)) {
log.info("鏈夋鍦ㄦ墽琛岀殑鍑虹墖浠诲姟锛岀粨鏉熸湰娆″嚭鐗囦换鍔�");
return;
}
-
- //鑾峰彇绌洪棽涓旈鍙栦换鍔$殑鏁版嵁淇℃伅锛屾病鏈変换鍔$洿鎺ヨ蛋鐜荤拑璋冨害
+ //鑾峰彇鎵�鏈夌┖闂茬殑绾胯矾淇℃伅
HashMap<Integer, Boolean> map = new HashMap<>();
+ //鑾峰彇绌洪棽涓旈鍙栦换鍔$殑鏁版嵁淇℃伅锛屾病鏈変换鍔$洿鎺ヨ蛋鐜荤拑璋冨害
try {
- Boolean oneEntity = CMJ1ModbusTcp.readUInt16(42027 - 40001) != 0;
- map.put(930, oneEntity);
+ if (CMJ1ModbusTcp.checkConnected()) {
+ Boolean oneState = CMJ1ModbusTcp.readUInt16(42027 - 40001) != 0;
+ map.put(930, oneState);
+ } else {
+ map.put(930, Boolean.FALSE);
+ }
} catch (Exception e) {
//nothing
log.info("涓�绾跨┖闂茬姸鎬佽幏鍙栧紓甯�");
}
try {
S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class);
+ log.info("涓┖棰濆璇诲彇{}", s7DataZKExtra);
map.put(931, s7DataZKExtra.getIsFree());
map.put(932, s7DataZKExtra.getIsFree03());
} catch (Exception e) {
//nothing
log.info("浜�/涓夌嚎绾跨┖闂茬姸鎬佽幏鍙栧紓甯�");
}
+ List<Integer> resultList = new ArrayList<>();
+ if (redisUtil.getCacheObject("priorityHollowSwitch")) {
+ resultList = TWO_LINE_FIRST;
+ } else {
+ resultList = ONE_LINE_FIRST;
+ }
+
HollowGlassOutRelationInfo hollowGlassOutRelationInfo = null;
int cell = -1;
- for (int i = 930; i <= 932; i++) {
+ for (Integer i : resultList) {
if (null == hollowGlassOutRelationInfo) {
Boolean entity = map.get(i);
cell = i;
-// if (null != entity.getValue() && ("1".equals(entity.getValue() + "") || Boolean.parseBoolean(entity.getValue() + ""))) {
if (null != entity && entity) {
hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
.getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
.eq(HollowGlassOutRelationInfo::getCell, cell)
.eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+ .orderByAsc(HollowGlassOutRelationInfo::getId)
+ .last("limit 1")
);
}
} else {
break;
}
}
- for (int i = 930; i <= 932; i++) {
+ for (Integer i : resultList) {
if (null == hollowGlassOutRelationInfo) {
cell = i;
hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
.getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
.eq(HollowGlassOutRelationInfo::getCell, cell)
.eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+ .orderByAsc(HollowGlassOutRelationInfo::getId)
+ .last("limit 1")
);
} else {
break;
@@ -466,7 +496,7 @@
// 鑾峰彇褰撳墠涓┖浠诲姟鏈畬鎴愬嚭鐗囩殑鐜荤拑淇℃伅
List<HollowGlassQueueInfo> unFinishHollowQueueList = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
.eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassOutRelationInfo.getFlowCardId())
- .eq(HollowGlassQueueInfo::getCell, cell)
+ .eq(HollowGlassQueueInfo::getCell, hollowGlassOutRelationInfo.getCell())
.eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
.orderByAsc(HollowGlassQueueInfo::getHollowSequence));
if (CollectionUtil.isNotEmpty(unFinishHollowQueueList)) {
@@ -484,7 +514,6 @@
.set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS));
}
}
-// redisUtil.setCacheObject("dispatchHollowSwitch",true);
//鏄惁瀛樺湪闇�瑕佸唴閮ㄨ皟搴︾殑鏍煎瓙:鎵ц鍐呴儴璋冨害浠诲姟
if (redisUtil.getCacheObject("dispatchHollowSwitch")) {
//todo:鑾峰彇绗煎唴鍗曟牸宸茬粡鍒伴綈鐨勭幓鐠冩牸瀛愪俊鎭�
@@ -527,8 +556,6 @@
@Scheduled(fixedDelay = 1000)
public void finishInBigStorageTask() throws Exception {
S7DataZKDLPOne s7DataZKDLPOne = s7SerializerZKDLPOne.read(S7DataZKDLPOne.class);
-// ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
-// if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
Boolean inkageEntity = s7DataZKDLPOne.getMesControl();
if (true != inkageEntity) {
log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚杩涚墖浠诲姟");
@@ -537,55 +564,49 @@
//鑾峰彇杩涚墖浠诲姟琛�
List<BigStorageCageTask> inTaskList = new ArrayList();
List<String> glassIdList = new ArrayList<>();
-// ReadWriteEntity toWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO1");
-// if ("0".equals(toWord.getValue() + "")) {
String toWord = s7DataZKDLPOne.getTo1().toString();
if ("0".equals(toWord)) {
log.info("瀹屾垚浠诲姟宸叉墽琛岋紝缁撴潫鏈瀹屾垚杩涚墖浠诲姟");
return;
}
for (int i = 1; i <= 6; i++) {
-// ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
-// ReadWriteEntity statetWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i);
-// ReadWriteEntity toOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i);
-// ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM" + i);
String requestWord = "";
String statetWord = "";
String toOpcUa = "";
String fromOpcUa = "";
switch (i) {
case 1:
- requestWord = s7DataZKDLPOne.getId1().toString();
+ requestWord = s7DataZKDLPOne.getId1();
statetWord = s7DataZKDLPOne.getState1().toString();
toOpcUa = s7DataZKDLPOne.getTo1().toString();
fromOpcUa = s7DataZKDLPOne.getFrom1().toString();
break;
case 2:
- requestWord = s7DataZKDLPOne.getId2().toString();
+ requestWord = s7DataZKDLPOne.getId2();
statetWord = s7DataZKDLPOne.getState2().toString();
toOpcUa = s7DataZKDLPOne.getTo2().toString();
fromOpcUa = s7DataZKDLPOne.getFrom2().toString();
break;
case 3:
- requestWord = s7DataZKDLPOne.getId3().toString();
+ requestWord = s7DataZKDLPOne.getId3();
statetWord = s7DataZKDLPOne.getState3().toString();
toOpcUa = s7DataZKDLPOne.getTo3().toString();
fromOpcUa = s7DataZKDLPOne.getFrom3().toString();
break;
case 4:
- requestWord = s7DataZKDLPOne.getId4().toString();
+ requestWord = s7DataZKDLPOne.getId4();
statetWord = s7DataZKDLPOne.getState4().toString();
toOpcUa = s7DataZKDLPOne.getTo4().toString();
fromOpcUa = s7DataZKDLPOne.getFrom4().toString();
break;
case 5:
- requestWord = s7DataZKDLPOne.getId5().toString();
+ requestWord = s7DataZKDLPOne.getId5();
statetWord = s7DataZKDLPOne.getState5().toString();
toOpcUa = s7DataZKDLPOne.getTo5().toString();
fromOpcUa = s7DataZKDLPOne.getFrom5().toString();
break;
case 6:
- requestWord = s7DataZKDLPOne.getId6().toString();
+ requestWord = s7DataZKDLPOne.getId6();
statetWord = s7DataZKDLPOne.getState6().toString();
toOpcUa = s7DataZKDLPOne.getTo6().toString();
fromOpcUa = s7DataZKDLPOne.getFrom6().toString();
@@ -595,16 +616,11 @@
// if (null != requestWord.getValue()) {
if (null != requestWord && !requestWord.isEmpty()) {
BigStorageCageTask task = new BigStorageCageTask();
-// task.setGlassId(requestWord.getValue() + "");
-// task.setTargetSlot(Integer.parseInt(toOpcUa.getValue() + ""));
-// task.setTaskState(Integer.parseInt(statetWord.getValue() + ""));
-// task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
task.setGlassId(requestWord);
task.setTargetSlot(Integer.parseInt(toOpcUa));
task.setTaskState(Integer.parseInt(statetWord));
task.setStartSlot(Integer.parseInt(fromOpcUa));
inTaskList.add(task);
-// glassIdList.add(requestWord.getValue() + "");
glassIdList.add(requestWord);
continue;
}
@@ -681,13 +697,6 @@
}
//娓呯┖鍚姩鐘舵��
//鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
- //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
-// List<ReadWriteEntity> list = new ArrayList<>();
-// for (int i = 1; i <= 6; i++) {
-// list.add(generateReadWriteEntity("DLP2A.DLP2A.TO" + i, 0));
-// }
-// list.add(generateReadWriteEntity("DLP2A.DLP2A.MesReply", 0));
-// miloService.writeToOpcWord(list);
s7DataZKDLPOne = new S7DataZKDLPOne();
s7DataZKDLPOne.setTo1(0);
s7DataZKDLPOne.setTo2(0);
@@ -703,142 +712,144 @@
@Scheduled(fixedDelay = 1000)
public void finishOutBigStorageTask() throws Exception {
- S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
-// ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
-// if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
- Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
- if (true != inkageEntity) {
- log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
- return;
- }
- //鑾峰彇鍑虹墖浠诲姟琛�
-// List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
- List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataZKDLPTwo);
- if (CollectionUtil.isEmpty(outTaskList)) {
- log.info("褰撳墠澶ц溅鏃犲嚭鐗囩幓鐠冿紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
- return;
- }
- List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
- if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
- log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
- return;
- }
- Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
- int taskType = 0;
- if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
- taskType = Const.BIG_STORAGE_AFTER_OUT;
- } else {
- taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
- }
- //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
-// 閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
- Integer finalTaskType = taskType;
- taskMap.forEach((e1, v) -> {
- if (e1 == 2) {
- //杩涚墖瀹屾垚
- log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
- List<Integer> outSuccessGlassSlot = new ArrayList<>();
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
- } else {
- List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
- List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
- outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
- outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
- }
- List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
- UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
- storageCageDTO.setGlassId(e.getGlassId());
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- storageCageDTO.setTargetSlot(e.getStartSlot());
- } else {
- storageCageDTO.setTargetSlot(e.getTargetSlot());
- }
- return storageCageDTO;
- }).collect(Collectors.toList());
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
- } else {
- hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
- //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
- List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
- hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
- }
- log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
- updateSlotRemainBySlots(outSuccessGlassSlot);
- } else if (e1 == 3) {
- //鐮存崯澶勭悊
- dealDamageOutTask(v);
- } else {
- //娓呯┖鐞嗙墖绗肩┖鏁版嵁
- noDealOutTask(v);
- }
- });
-
- for (BigStorageCageTask item : outTaskList) {
- //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
- hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
- .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
- .eq(HollowBigStorageCageHistoryTask::getTaskType, taskType)
- .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
- //鏇存柊涓┖灏忕墖琛�
- Integer taskState = item.getTaskState();
- if (taskState == 2) {
- hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
- .set(HollowGlassQueueInfo::getState, Const.TEMPERING_OUT).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
- } else if (taskState == 3) {
-// temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
- hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
- .set(HollowGlassQueueInfo::getState, Const.TEMPERING_DAMAGE).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
-
- } else {
-// 绌烘墽琛�
- }
- }
try {
- //鏇存柊鏁伴噺
- //鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
- .eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
- .orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
- List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
- .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
- .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
-// .eq(HollowGlassQueueInfo::getIsPair, 1)
- .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
- );
- if (CollectionUtil.isEmpty(list)) {
-// 浠诲姟鏇存柊涓哄凡瀹屾垚
- hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
- .eq("cell", hollowGlassQueueInfo.getCell())
- .setSql("pair_quantity = total_pair_quantity")
- .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
- );
+ S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
+ Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
+ if (true != inkageEntity) {
+ log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+ return;
+ }
+ //鑾峰彇鍑虹墖浠诲姟琛�
+ List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataZKDLPTwo);
+ if (CollectionUtil.isEmpty(outTaskList)) {
+ log.info("褰撳墠澶ц溅鏃犲嚭鐗囩幓鐠冿紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+ return;
+ }
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囧畬鎴愪换鍔�:{}", outTaskList);
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囨眹鎶ユ儏鍐�:{}", s7DataZKDLPTwo);
+ List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+ if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+ log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+ return;
+ }
+ Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+ int taskType = 0;
+ if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
+ taskType = Const.BIG_STORAGE_AFTER_OUT;
+ } else {
+ taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
+ }
+ //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+// 閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+ Integer finalTaskType = taskType;
+ taskMap.forEach((e1, v) -> {
+ if (e1 == 2) {
+ //杩涚墖瀹屾垚
+ log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+ List<Integer> outSuccessGlassSlot = new ArrayList<>();
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+ } else {
+ List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+ List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+ outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
+ outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
+ }
+ List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+ UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
+ storageCageDTO.setGlassId(e.getGlassId());
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ storageCageDTO.setTargetSlot(e.getStartSlot());
+ } else {
+ storageCageDTO.setTargetSlot(e.getTargetSlot());
+ }
+ return storageCageDTO;
+ }).collect(Collectors.toList());
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+ } else {
+ hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+ //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+ List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
+ hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
+ }
+ log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+ updateSlotRemainBySlots(outSuccessGlassSlot);
+ } else if (e1 == 3) {
+ //鐮存崯澶勭悊
+ dealDamageOutTask(v);
} else {
-// 璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
- int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
- hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
- .eq("cell", hollowGlassQueueInfo.getCell())
- .setSql("pair_quantity = total_pair_quantity -" + remainCount)
- );
+ //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+ noDealOutTask(v);
+ }
+ });
+
+ for (BigStorageCageTask item : outTaskList) {
+ //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+ hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
+ .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
+ .eq(HollowBigStorageCageHistoryTask::getTaskType, taskType)
+ .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+ //鏇存柊涓┖灏忕墖琛�
+ Integer taskState = item.getTaskState();
+ if (taskState == 2) {
+ hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+ .set(HollowGlassQueueInfo::getState, Const.TEMPERING_OUT).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+ } else if (taskState == 3) {
+// temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+ hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+ .set(HollowGlassQueueInfo::getState, Const.TEMPERING_DAMAGE).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+
+ } else {
+// 绌烘墽琛�
}
}
- } catch (Exception e) {
- log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
- }
+ try {
+ //鏇存柊鏁伴噺
+ //鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+ .eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
+ .orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
+ List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+ .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
+ .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
+// .eq(HollowGlassQueueInfo::getIsPair, 1)
+ .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+ );
+ if (CollectionUtil.isEmpty(list)) {
+// 浠诲姟鏇存柊涓哄凡瀹屾垚
+ hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
+ .setSql("pair_quantity = total_pair_quantity")
+ .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
+ );
+ } else {
+// 璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
+ int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
+ hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
+ .setSql("pair_quantity = total_pair_quantity -" + remainCount)
+ );
+ }
+ }
+ } catch (Exception e) {
+ log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
+ }
// 閲嶇疆浠诲姟琛ㄦ暟鎹�
-// bigStorageCageTaskService.updateOutTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
- resetOutTask();
- //娓呯┖鍚姩鐘舵��
- //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2B.DLP2B.MesReply", 0));
- s7DataZKDLPTwo = new S7DataZKDLPTwo();
- s7DataZKDLPTwo.setMesReply(0);
- s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
+ resetOutTask();
+ //娓呯┖鍚姩鐘舵��
+ //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+ s7DataZKDLPTwo = new S7DataZKDLPTwo();
+ s7DataZKDLPTwo.setMesReply(0);
+ s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
+ } catch (Exception e) {
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囨眹鎶ヤ换鍔″紓甯革細{}", e);
+ }
+
}
private void dealDamageInTask(List<BigStorageCageTask> damageTaskList) {
@@ -918,7 +929,7 @@
List<String> glassList = noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
.set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+ .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
.in(HollowBigStorageCageDetails::getGlassId, glassList));
} else {
@@ -927,7 +938,7 @@
hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
.set(HollowBigStorageCageDetails::getSlot, item.getStartSlot())
.set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+ .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
.eq(HollowBigStorageCageDetails::getGlassId, item.getGlassId()));
}
}
@@ -1037,10 +1048,19 @@
}
baseInfoList = resultList;
} else {
- //澶т簬鎬诲眰鏁板厛鍙杢otalLyaer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
+ //澶т簬鎬诲眰鏁板厛鍙杢otalLayer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
int remainCount = templist.size() % totalLayer;
if (targetSlot == 930) {
- baseInfoList = templist.subList(0, totalLayer);
+ int tempSequence = templist.get(0).getHollowSequence();
+ List<T> resultList = new ArrayList<>();
+ for (int i = 0; i < templist.size(); i++) {
+ if (tempSequence == list.get(i).getHollowSequence()) {
+ resultList.add(templist.get(i));
+ } else {
+ break;
+ }
+ }
+ baseInfoList = resultList;
} else {
baseInfoList = templist.subList(0, templist.size() - remainCount);
}
@@ -1051,16 +1071,12 @@
int glassCount = baseInfoList.size();
List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
//鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
-// for (T t : baseInfoList) {
-// bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
-// }
-// while (bigStorageCageTaskList.size() < 6) {
-// bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
-// }
+ for (T t : baseInfoList) {
+ bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
+ }
//娓呯┖浠诲姟琛ㄦ暟鎹�
resetOutTask();
-// bigStorageCageTaskService.removeAll(tableName);
-// bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
+ log.info("鐢熸垚鍑虹墖浠诲姟鏁版嵁{}", bigStorageCageTaskList);
S7DataZKDLPTwo s7DataZKDLPTwo = new S7DataZKDLPTwo();
for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) {
String glassId = bigStorageCageTaskList.get(i).getGlassId();
@@ -1102,6 +1118,9 @@
}
}
s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
+ log.info("鍑虹墖浠诲姟鍐欏叆鏁版嵁{}", s7DataZKDLPTwo);
+ S7DataZKDLPTwo s7DataZKDLPTwo1 = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
+ log.info("鍐欏叆鍑虹墖浠诲姟鍚庤鍙栨暟鎹畕}", s7DataZKDLPTwo1);
List<HollowBigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
HollowBigStorageCageHistoryTask history = new HollowBigStorageCageHistoryTask();
BeanUtils.copyProperties(e, history);
@@ -1109,16 +1128,15 @@
history.setTaskType(taskType);
return history;
}).collect(Collectors.toList());
+ log.info("鍘嗗彶浠诲姟淇濆瓨{}", historyList);
hollowBigStorageCageHistoryTaskService.saveBatch(historyList);
log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
.set(HollowBigStorageCageDetails::getState, state)
.set(Const.BIG_STORAGE_AFTER_DISPATCH.equals(taskType), HollowBigStorageCageDetails::getSlot, targetSlot)
- .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+ .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
.in(HollowBigStorageCageDetails::getGlassId, glassIds));
try {
-
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP2B.DLP2B.MesReply", 1));
s7DataZKDLPTwo = new S7DataZKDLPTwo();
s7DataZKDLPTwo.setMesReply(1);
s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
@@ -1138,9 +1156,6 @@
Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
//瀛樺湪 灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
-// List<HollowBigStorageCage> hollowBigStorageCageList = hollowBigStorageCageService.list(new LambdaQueryWrapper<HollowBigStorageCage>()
-// .lt(HollowBigStorageCage::getRemainWidth, 0).in(HollowBigStorageCage::getSlot, slotList));
-// List<Integer> resultSlotList = hollowBigStorageCageList.stream().map(HollowBigStorageCage::getSlot).collect(Collectors.toList());
slotRemainMap = inSlotGlassList.stream()
.collect(Collectors.groupingBy(HollowBigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
slotRemainMap.forEach((e, v) -> {
--
Gitblit v1.8.0