From d0c71a27140d1483d950ebaa6510327635df2365 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期二, 24 十二月 2024 09:48:29 +0800
Subject: [PATCH] 钢化模块新增全部拿走功能
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 258 +++++++++++++++++++++++++++++++++------------------
1 files changed, 167 insertions(+), 91 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index f7f5dac..ce6fdcb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -33,6 +33,7 @@
import com.mes.temperingglass.service.TemperingGlassInfoService;
import com.mes.tools.S7control;
import com.mes.utils.RedisUtil;
+import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -303,7 +304,7 @@
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
}
- @Scheduled(fixedDelay = 10000)
+ @Scheduled(fixedDelay = 5000)
public void plcToHomeEdgOutTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -321,6 +322,7 @@
return;
}
if (redisUtil.getCacheObject("temperingSwitch")) {
+// if(true){
//鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑
List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
.selectAll(TemperingGlassInfo.class)
@@ -383,93 +385,54 @@
if (CollectionUtils.isNotEmpty(temperingOccupySlotList)) {
loop:
for (TemperingLayoutDTO temperingOccupySlot : temperingOccupySlotList) {
- List<GlassInfo> glassInfoList = glassInfoService.list(
+ List<GlassInfo> glassInfos = glassInfoService.list(
new LambdaQueryWrapper<GlassInfo>()
- .eq(GlassInfo::getTemperingLayoutId, temperingOccupySlot.getTemperingLayoutId())
.eq(GlassInfo::getEngineerId, temperingOccupySlot.getEngineerId())
+ .eq(GlassInfo::getTemperingLayoutId, temperingOccupySlot.getTemperingLayoutId())
.notInSql(GlassInfo::getGlassId, "select glass_id from damage where type=8 and engineer_id='"
+ temperingOccupySlot.getEngineerId() + "' and tempering_layout_id = '" + temperingOccupySlot.getTemperingLayoutId() + "'")
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
);
- List<BigStorageCageDetails> glassInfoLists = new ArrayList<>();
- glassInfoList.forEach(glassInfo -> {
- BigStorageCageDetails details = new BigStorageCageDetails();
- BeanUtils.copyProperties(glassInfo, details);
- details.setSlot(1);
- glassInfoLists.add(details);
- });
- List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsService.list(
- new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getEngineerId, temperingOccupySlot.getEngineerId())
- .eq(BigStorageCageDetails::getTemperingLayoutId, temperingOccupySlot.getTemperingLayoutId())
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence)
- );
-// if (glassInfoLists.size() == bigStorageCageDetailsList.size()) {
- computeOutMoreGlassInfo(glassInfoLists, Boolean.TRUE, 2);
- computeOutMoreGlassInfo(bigStorageCageDetailsList, Boolean.TRUE, 3);
- int allTrainNumber = allTask.stream()
- .map(BigStorageCageOutTask::getTrainNumber)
- .collect(Collectors.toSet())
- .size();
- int allTrainSlot = allTask.stream()
- .map(BigStorageCageOutTask::getStartSlot)
- .collect(Collectors.toSet())
- .size();
- int notallTrainNumber = notAllTask.stream()
- .map(BigStorageCageOutTask::getTrainNumber)
- .collect(Collectors.toSet())
- .size();
- int notallTrainSlot = notAllTask.stream()
- .map(BigStorageCageOutTask::getStartSlot)
- .collect(Collectors.toSet())
- .size();
-// if (allTrainNumber < notallTrainNumber || (allTrainNumber == notallTrainNumber && allTrainSlot < notallTrainSlot)) {
- List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
- for (int i = 0; i < slotSequenceList.size() - 1; i++) {
- SlotSequenceDTO first = slotSequenceList.get(i);
- SlotSequenceDTO second = slotSequenceList.get(i + 1);
- int slotWidth = first.getRemainWidth() - glassGap;
- List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getSlot, second.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
- if (CollectionUtils.isNotEmpty(list)) {
- List<BigStorageCageOutTask> outTasks = new ArrayList<>();
- int serialNumber = 1;
- for (BigStorageCageDetails item : list) {
- int maxlength=(int)Math.max(item.getWidth(), item.getHeight());
- if (slotWidth > maxlength) {
- slotWidth = slotWidth - maxlength- glassGap;
- outTasks.add(new BigStorageCageOutTask(item.getGlassId(), second.getSlot(), first.getSlot(),
- item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
- } else {
- outTasks.add(new BigStorageCageOutTask(item.getGlassId(), second.getSlot(), second.getSlot(),
- item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
- }
- }
- List<String> glassList = outTasks.stream()
- .filter(item -> !item.getStartSlot().equals(item.getEndSlot()))
- .map(BigStorageCageOutTask::getGlassId)
- .collect(Collectors.toList());
- if(glassList.size()>0){
- //鏂板璋冨害浠诲姟
- bigStorageCageOutTaskService.saveBatch(outTasks);
- //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
-// List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
+ Map<Integer, List<GlassInfo>> listMap = glassInfos.stream().collect(Collectors.groupingBy(item -> item.getTargetSlot()));
+ for (Map.Entry<Integer, List<GlassInfo>> entry : listMap.entrySet()) {
+ List<GlassInfo> valueList = entry.getValue();
+ List<String> glassIds = valueList.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+ List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsService.list(
+ new LambdaQueryWrapper<BigStorageCageDetails>()
+ .in(BigStorageCageDetails::getGlassId, glassIds)
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence)
+ );
+ //褰撲竴鏍肩幓鐠冮兘鍒伴綈鏃�
+ if (bigStorageCageDetailsList.size() == valueList.size()) {
+ long distinctSlotCount = bigStorageCageDetailsList.stream()
+ .map(BigStorageCageDetails::getSlot)
+ .distinct()
+ .count();
+ //褰撶幓鐠冧笉鍦ㄥ悓涓�鏍兼椂
+ if (distinctSlotCount > 1) {
+ BigStorageCageDetails maxSequenceDetail = bigStorageCageDetailsList.stream()
+ .max(Comparator.comparingInt(BigStorageCageDetails::getTemperingFeedSequence))
+ .orElse(null); // 濡傛灉娌℃湁鍏冪礌锛岃繑鍥� null
+ int maxSlot = maxSequenceDetail.getSlot();
+ int serialNumber = 1;
+ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
+ ) {
+ if (bigStorageCageDetails.getSlot() != maxSlot) {
+ bigStorageCageOutTaskService.save(new BigStorageCageOutTask(bigStorageCageDetails.getGlassId(), bigStorageCageDetails.getSlot(), maxSlot,
+ bigStorageCageDetails.getWidth() * 10, bigStorageCageDetails.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
- .set(BigStorageCageBaseInfo::getSlot, first.getSlot()).in(BigStorageCageDetails::getGlassId, glassList)
- .ne(BigStorageCageDetails::getState,Const.GLASS_STATE_OUT));
-
+ .set(BigStorageCageBaseInfo::getSlot, maxSlot).eq(BigStorageCageDetails::getGlassId, bigStorageCageDetails.getGlassId())
+ .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
//涓ゆ鏇存柊绗煎瓙鐨勫墿浣欏昂瀵革細绗竴娆¢槻姝㈡湁鐜荤拑缁х画杩涜皟搴﹀悗鐨勭瀛愶紝绗簩娆℃洿鏂帮細璁$畻鏍煎瓙鐨勫疄闄呭昂瀵�
// 浠呮洿鏂拌皟搴﹀悗鐨勬牸瀛愪俊鎭細璧峰鏍煎瓙瀹屾垚鍚庢洿鏂帮細闃叉璋冨害鍑虹墖杩囩▼涓湁鏂扮幓鐠冭繘鍏ワ紝
- updateSlotRemainBySlots(Arrays.asList(second.getSlot()));
- break loop;
}
-
}
+ break loop;
}
-// }
-// }
+ }
+ }
}
// //鍚憄lc鍐欏叆纭瀛�
// int returnData = 0;
@@ -620,14 +583,17 @@
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())));
+// .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+ .and(e -> e.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).or()
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN))
+ .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.setWorkingProcedure("閽㈠寲");
damage.setRemark("杩涚鍓嶅崸杞珛");
damage.setStatus(1);
damage.setType(bigStorageCageFeedTask.getTaskState());
@@ -687,6 +653,8 @@
String d05ToMES = plcParameterObject.getPlcParameter("D05Request").getValue();
String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress();
String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
+ String carRequest = plcParameterObject.getPlcParameter("CarRequest").getValue();
+ String carResponse = plcParameterObject.getPlcParameter("CarResponse").getAddress();
if (!REQUEST_WORD.equals(d01ToMES)) {
log.info("鍦板潃锛歿}鍐欏叆0", mesD01Address);
S7object.getinstance().plccontrol.writeWord(mesD01Address, 0);
@@ -703,7 +671,12 @@
log.info("鍦板潃锛歿}鍐欏叆0", mesD05Address);
S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
}
+ if (!REQUEST_WORD.equals(carRequest)) {
+ log.info("鍦板潃锛歿}鍐欏叆0", carResponse);
+ S7object.getinstance().plccontrol.writeWord(carResponse, 0);
+ }
}
+
/**
* 杩涚墖鐘舵�佷慨鏀�
@@ -715,6 +688,7 @@
String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
List<String> glassIds1 = new ArrayList<>();
List<String> glassIds2 = new ArrayList<>();
+ List<String> glassIdsCar = new ArrayList<>();
for (int i = 1; i <= 6; i++) {
String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getValue();
if (StringUtils.isNotEmpty(line1GlassId)) {
@@ -723,6 +697,10 @@
String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getValue();
if (StringUtils.isNotEmpty(line2GlassId)) {
glassIds2.add(line2GlassId);
+ }
+ String carGlassId = plcParameterObject.getPlcParameter("E01ID" + i).getValue();
+ if (StringUtils.isNotEmpty(carGlassId)) {
+ glassIdsCar.add(carGlassId);
}
}
List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list(
@@ -791,12 +769,43 @@
.set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
);
}
+ String carRequest = plcParameterObject.getPlcParameter("CarRequest").getValue();
+ log.info("澶ц溅褰撳墠鐜荤拑id{}", glassIdsCar);
+ log.info("鍗ц浆绔�1鐜荤拑id{}", glassIds1);
+ log.info("鍗ц浆绔�2鐜荤拑id{}", glassIds2);
+ if (CollectionUtils.isNotEmpty(glassIdsCar) && REQUEST_WORD.equals(carRequest)) {
+ List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
+ new LambdaQueryWrapper<BigStorageCageFeedTask>()
+ .in(BigStorageCageFeedTask::getGlassId, glassIdsCar)
+ .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+ .eq(BigStorageCageFeedTask::getTargetSlot, 0)
+ );
+ if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)) {
+ log.info("璁$畻鐩爣鏍煎瓙鍙戦�佷换鍔}", bigStorageCageFeedTasks);
+ computeTargetByLineCar(bigStorageCageFeedTasks.get(0).getLine(), glassIdsCar);
+ } else {
+ log.info("鍐嶆鍙戦�佽繘鐗囦换鍔}", bigStorageCageFeedTasks);
+ List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskService.list(
+ new LambdaQueryWrapper<BigStorageCageFeedTask>()
+ .in(BigStorageCageFeedTask::getGlassId, glassIdsCar)
+ .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+ .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+ );
+ if (CollectionUtils.isNotEmpty(bigStorageCageFeedTaskList)) {
+ sendTaskListToPLCCar(bigStorageCageFeedTaskList);
+ }
+ }
+ }
+
+
}
/**
* 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
*/
public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
+// 棰勬帓鏍煎瓙
+// computeSlot(glassId);
//鍒ゆ柇姝ょ幓鐠冩槸鍦ㄧ鍐呮垨宸茬敓鎴愯繘鐗囦换鍔�
BigStorageCageFeedTask bigStorageCageFeedTask = bigStorageCageFeedTaskService.getOne(
new LambdaQueryWrapper<BigStorageCageFeedTask>()
@@ -915,6 +924,37 @@
return flag;
}
+ public void computeSlot(String glassId) {
+ GlassInfo glassInfo = glassInfoService.getOne(
+ new LambdaQueryWrapper<GlassInfo>()
+ .eq(GlassInfo::getGlassId, glassId)
+ );
+ if (glassInfo.getTargetSlot() == null) {
+ List<GlassInfo> glassInfos = glassInfoService.list(
+ new LambdaQueryWrapper<GlassInfo>()
+ .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+ .eq(GlassInfo::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
+ );
+ List<BigStorageCageDetails> glassInfoLists = new ArrayList<>();
+ glassInfos.forEach(item -> {
+ BigStorageCageDetails details = new BigStorageCageDetails();
+ BeanUtils.copyProperties(item, details);
+ details.setSlot(1);
+ glassInfoLists.add(details);
+ });
+ computeOutMoreGlassInfo(glassInfoLists, Boolean.TRUE, 2);
+ for (BigStorageCageOutTask bigStorageCageOutTask : allTask
+ ) {
+ glassInfoService.update(
+ new LambdaUpdateWrapper<GlassInfo>()
+ .eq(GlassInfo::getGlassId, bigStorageCageOutTask.getGlassId())
+ .set(GlassInfo::getTargetSlot, bigStorageCageOutTask.getTrainNumber())
+ );
+ }
+ }
+ }
+
/**
* 娣诲姞浠诲姟淇℃伅
*/
@@ -931,7 +971,7 @@
damageService.deleteByGlassId(glassId);
Damage damage = new Damage();
damage.setGlassId(glassId);
- damage.setWorkingProcedure("纾ㄨ竟");
+ damage.setWorkingProcedure("閽㈠寲");
damage.setLine(line);
damage.setType(1);
damage.setRemark("杩涘ぇ鐞嗙墖");
@@ -963,10 +1003,20 @@
* 璁$畻浠诲姟琛ㄨ繘鐗囩嚎璺殑鐩爣鏍煎瓙锛屽苟鍚姩浠诲姟
*/
public boolean computeTargetByLine(Integer line) {
+ sendTaskListToPLC(new ArrayList<>(), line);
+ return true;
+ }
+
+ /**
+ * 璁$畻浠诲姟琛ㄨ繘鐗囩嚎璺殑鐩爣鏍煎瓙锛屽苟鍚姩浠诲姟
+ */
+ public boolean computeTargetByLineCar(Integer line, List<String> carGlassId) {
//1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級
List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
.eq(BigStorageCageFeedTask::getLine, line)
- .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
+ .in(BigStorageCageFeedTask::getGlassId, carGlassId)
+ .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or()
+ .eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
.in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL)
.orderByAsc(BigStorageCageFeedTask::getId));
//2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙
@@ -988,7 +1038,7 @@
.collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
for (BigStorageCageFeedTask e : taskList) {
//鏇挎崲鐜荤拑id
-// queryAndChangeGlass(e.getGlassId());
+ queryAndChangeGlass(e.getGlassId());
GlassInfo info = glassInfoService.getOne(
new LambdaQueryWrapper<GlassInfo>()
.eq(GlassInfo::getGlassId, e.getGlassId())
@@ -996,6 +1046,13 @@
// GlassInfo info = glassInfoMap.get(e.getGlassId());
if (info == null) {
continue;
+ }
+ if (info.getTargetSlot() == null) {
+ computeSlot(info.getGlassId());
+ info = glassInfoService.getOne(
+ new LambdaQueryWrapper<GlassInfo>()
+ .eq(GlassInfo::getGlassId, info.getGlassId())
+ );
}
BigStorageCageDetails cageDetails = new BigStorageCageDetails();
BeanUtils.copyProperties(info, cageDetails);
@@ -1016,8 +1073,26 @@
bigStorageCageDetailsService.save(cageDetails);
}
- sendTaskListToPLC(taskList, line);
+ sendTaskListToPLCCar(taskList);
return Boolean.TRUE;
+ }
+
+ private void sendTaskListToPLCCar(List<BigStorageCageFeedTask> taskList) {
+ S7control s7control = S7object.getinstance().plccontrol;
+ PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+ List<String> returnData = new ArrayList<>();
+ for (int i = 1; i <= taskList.size(); i++) {
+ s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
+ s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
+ returnData.add(taskList.get(i - 1).getGlassId());
+ log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
+ }
+ String carRequest = plcMesObject.getPlcParameter("CarRequest").getValue();
+ String CarResponse = plcMesObject.getPlcParameter("CarResponse").getAddress();
+ while (REQUEST_WORD.equals(carRequest)) {
+ s7control.writeWord(CarResponse, 1);
+ carRequest = plcMesObject.getPlcParameter("CarRequest").getValue();
+ }
}
private void sendTaskListToPLC(List<BigStorageCageFeedTask> taskList, Integer line) {
@@ -1028,13 +1103,13 @@
String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getAddress();
String outLine = line.equals(Const.A09_OUT_TARGET_POSITION) ? mesD03Address : mesD05Address;
List<String> returnData = new ArrayList<>();
-
- for (int i = 1; i <= taskList.size(); i++) {
- s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
- s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
- returnData.add(taskList.get(i - 1).getGlassId());
- log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
- }
+ returnData.add("glassid");
+// for (int i = 1; i <= taskList.size(); i++) {
+// s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
+// s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
+// returnData.add(taskList.get(i - 1).getGlassId());
+// log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
+// }
// int returnData = 1;
int count = 1;
@@ -1061,7 +1136,7 @@
returnData = glassIds2;
}
// returnData = s7control.readWord(outLine, 1).get(0);
- log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{},璇诲埌鐨勮姹備负{}", count++, outLine, 2, returnData);
+ log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囧崸杞珛锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{},璇诲埌鐨勮姹備负{}", count++, outLine, 2, returnData);
}
// while (returnData != 0) {
// s7control.writeWord(outLine, 2);
@@ -1240,7 +1315,7 @@
});
}
//杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
- Set<Integer> remainSlotList = slotRemainMap.keySet();
+ List<Integer> remainSlotList = new ArrayList<>(slotRemainMap.keySet());
slotList.removeAll(remainSlotList);
if (CollectionUtils.isNotEmpty(slotList)) {
bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
@@ -1271,6 +1346,7 @@
.eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer())
.eq(GlassInfo::getLayer, glassInfo.getLayer())
.eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+ .eq(GlassInfo::getMarkIcon, glassInfo.getMarkIcon())
.notInSql(GlassInfo::getGlassId, "select distinct glass_id from big_storage_cage_details " +
"where state!=101 and engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight())
.orderByAsc(GlassInfo::getTemperingLayoutId)
--
Gitblit v1.8.0