From 491510f698179cdf30fe0008b59f3cfb3917f77b Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 12 六月 2024 15:09:48 +0800
Subject: [PATCH] 1、卧式理片笼线程改造:初次改造提交 2、fixbug启动异常
---
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml | 6 +-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java | 24 ++++++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 108 +++++++++++++++++++++++++++++++++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 7 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 8 ++
5 files changed, 143 insertions(+), 10 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 dddb642..4532c55 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
@@ -96,6 +96,14 @@
public static final Integer BIG_STORAGE_OUT_SUCCESS = 3;
/**
+ * 鍗ц浆绔嬪嚭鐗囪姹�
+ * 1 涓婅溅绛夊緟
+ * 2 涓婅溅鍚姩
+ */
+ public static final Integer BIG_STORAGE_IN_WAIT = 1;
+ public static final Integer BIG_STORAGE_IN_RUN = 2;
+
+ /**
* 澶х悊鐗囩瀹藉害 鍙� 鐜荤拑闂磋窛
*/
public static final Integer BIG_STORAGE_WIDTH = 5000;
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
index 18c8c2f..152858b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
@@ -2,12 +2,13 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
-
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
/**
* <p>
@@ -27,8 +28,8 @@
/**
* 涓婚敭id
*/
- @ApiModelProperty(value = "涓婚敭id", position = 2)
- @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭id", position = 2)
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
@@ -60,6 +61,21 @@
*/
@ApiModelProperty(value = "绾胯矾", position = 7)
private Integer line;
+ /**
+ * 瀹藉害
+ */
+ @ApiModelProperty(value = "瀹藉害", position = 8)
+ private Integer width;
+ /**
+ * 楂樺害
+ */
+ @ApiModelProperty(value = "楂樺害", position = 8)
+ private Integer height;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 8)
+ private Date createTime;
}
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 63c5dbb..a850be6 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
@@ -2,6 +2,7 @@
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
@@ -13,18 +14,22 @@
import com.mes.common.S7object;
import com.mes.common.config.Const;
import com.mes.device.PlcParameterObject;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
@@ -161,6 +166,46 @@
}
@Scheduled(fixedDelay = 5000)
+ public void plcToHomeEdgScan() {
+ PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+ String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue();
+ String d01ID1 = plcParameterObject.getPlcParameter("D01ID1").getValue();
+ String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue();
+ String d04ID1 = plcParameterObject.getPlcParameter("D04ID1").getValue();
+ log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧d01涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};鑾峰彇鍒扮殑璇锋眰瀛梔04涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};",
+ d01Request, d01ID1, d04Request, d04ID1);
+ if (!"1".equals(d01Request) && !"1".equals(d04Request)) {
+ log.info("涓ゆ潯绾挎湭鏀跺埌杩涚墖浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�");
+ return;
+ }
+ // 0锛氫笉骞查 锛� 1锛氭潯浠舵弧瓒虫儏鍐典笅绔嬪嵆鍙戣溅
+ String d02GoAdress = plcParameterObject.getPlcParameter("D02Go").getAddress();
+ // 0锛氫笉骞查 锛� 1锛氭潯浠舵弧瓒虫儏鍐典笅绔嬪嵆鍙戣溅
+ String d05GoAdress = plcParameterObject.getPlcParameter("D05Go").getAddress();
+ Boolean flag01 = Boolean.FALSE;
+ Boolean flag04 = Boolean.FALSE;
+ //鎸夌収绾胯矾鍙婄幓鐠僫d鑾峰彇鐩搁偦涓ゅ潡鐜荤拑 鍗ц浆绔嬩笂鐨勭幓鐠�
+ if ("1".equals(d01Request)) {
+ flag01 = judgeGlassTypeStatus(d01ID1, Const.A09_OUT_TARGET_POSITION);
+ }
+ if ("1".equals(d04Request)) {
+ flag04 = judgeGlassTypeStatus(d01ID1, Const.A10_OUT_TARGET_POSITION);
+ }
+ if (flag01 && flag04) {
+ //姣旇緝鏈�鏃╀竴鐗囦换鍔$殑鐗堝浘id鍙婄増搴� 姹傚嚭鍗ц浆绔嬬殑绾胯矾
+ Integer startLine = getStartLine();
+ //璁$畻鐩爣鏍煎瓙锛屽彂閫佸惎鍔ㄤ换鍔�
+ computeTargetByLine(startLine, d02GoAdress, d05GoAdress);
+ } else if (flag01 || flag04) {
+ Integer startLine = flag01.equals(Boolean.TRUE) ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+ //璁$畻鐩爣鏍煎瓙锛屽彂閫佸惎鍔ㄤ换鍔�
+ computeTargetByLine(startLine, d02GoAdress, d05GoAdress);
+ } else {
+ log.info("涓ゆ潯绾挎湭鏀跺埌杩涚墖浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�");
+ }
+ }
+
+ @Scheduled(fixedDelay = 5000)
public void plcToHomeEdgFreeCarTask() {
PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
String freeCar = plcParameterObject.getPlcParameter("freeCar").getValue();
@@ -170,7 +215,6 @@
}
String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue();
String d01ID1 = plcParameterObject.getPlcParameter("D01ID1").getValue();
-// 0锛氫笉骞查 锛� 1锛氭潯浠舵弧瓒虫儏鍐典笅绔嬪嵆鍙戣溅
String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue();
String d04ID1 = plcParameterObject.getPlcParameter("D04ID1").getValue();
log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧d01涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};鑾峰彇鍒扮殑璇锋眰瀛梔04涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};",
@@ -216,6 +260,60 @@
}
/**
+ * 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
+ */
+ public Boolean judgeGlassTypeStatus(String glassId, Integer line) {
+ //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠�
+ List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
+ .eq("line", line)
+ .gt("id", "select id from edg_glass_task_info where glass_id = " + glassId)
+ .orderByAsc("id"));
+ Assert.isTrue(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
+ //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
+ Map<String, Object> map = bigStorageCageFeedTaskService.getMap(new QueryWrapper<BigStorageCageFeedTask>()
+ .select("5000 - sum(width + 20) as remainWidth")
+ .eq("line", line).eq("task_state", Const.BIG_STORAGE_IN_UP));
+ Integer remainWidth = Integer.parseInt(map.get("remainWidth") + "");
+ //2銆佽幏鍙栧崸杞珛
+ Integer widthFirst = edgGlassTaskInfoList.get(0).getWidth();
+ if (edgGlassTaskInfoList.size() == 1) {
+ if (remainWidth >= widthFirst) {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst);
+ return Boolean.FALSE;
+ } else {
+ //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
+ return Boolean.TRUE;
+ }
+ }
+ Integer widthSecond = edgGlassTaskInfoList.get(1).getWidth();
+ if (remainWidth >= widthFirst) {
+ if (remainWidth - widthFirst - Const.BIG_STORAGE_GAP >= widthSecond) {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthSecond);
+ } else {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthSecond);
+ }
+ return Boolean.FALSE;
+
+ } else {
+ return Boolean.TRUE;
+ }
+ }
+
+ /**
+ * 娣诲姞浠诲姟淇℃伅
+ */
+ private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width) {
+ BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
+ bigStorageCageFeedTask.setGlassId(glassId);
+ bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_REQUEST_IN);
+ bigStorageCageFeedTask.setLine(line);
+ bigStorageCageFeedTask.setTaskType(taskType);
+ bigStorageCageFeedTask.setWidth(width);
+ bigStorageCageFeedTask.setCreateTime(new Date());
+ return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
+ }
+
+ /**
* 鑾峰彇闇�瑕佸惎鍔ㄧ殑绾胯矾锛氫袱鏉$嚎閮藉彲鍚姩 鑾峰彇绗竴鐗囩幓鐠冪増鍥緄d鏈�灏� 鐗堝簭鏈�澶х殑绾胯矾
*
* @return
@@ -250,9 +348,12 @@
AtomicReference<Integer> temperingFeedSequenceTemp = new AtomicReference<>(0);
AtomicReference<BigStorageDTO> bigStorageDTO = new AtomicReference<>(new BigStorageDTO());
Map<String, GlassInfo> glassInfoMap = glassInfos.stream().collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
+ List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>();
taskList.stream().forEach(e -> {
+ BigStorageCageDetails cageDetails = new BigStorageCageDetails();
//鎸夌収鐗堝浘淇℃伅鑾峰彇杩涚墖绗煎瓙鏍煎瓙鍙�
GlassInfo info = glassInfoMap.get(e.getGlassId());
+ BeanUtils.copyProperties(info, cageDetails);
if (temperingLayoutIdTemp.equals(info.getTemperingLayoutId())
&& temperingFeedSequenceTemp.equals(info.getTemperingFeedSequence() + 1)
&& info.getWidth() <= bigStorageDTO.get().getWidth()) {
@@ -261,11 +362,16 @@
bigStorageDTO.set(bigStorageCageDetailsService.queryTargetSlotByTempering(info));
}
e.setTragetSlot(bigStorageDTO.get().getSlot());
+ cageDetails.setSlot(bigStorageDTO.get().getSlot());
+ cageDetails.setState(Const.GLASS_STATE_IN);
temperingLayoutIdTemp.set(info.getTemperingLayoutId());
temperingFeedSequenceTemp.set(info.getTemperingFeedSequence());
+ bigStorageCageDetailsList.add(cageDetails);
});
//3銆佹洿鏂拌繘鐗囦换鍔¤〃
boolean taskFlag = bigStorageCageFeedTaskService.updateBatchById(taskList);
+ //4銆佸湪璇︽儏琛ㄤ腑鍔犲叆杩涚墖鐜荤拑淇℃伅
+ bigStorageCageDetailsService.saveBatch(bigStorageCageDetailsList);
if (taskFlag) {
String lineAddress = line.equals(Const.A09_OUT_TARGET_POSITION) ? d02GoAdress : d05GoAdress;
S7object.getinstance().plccontrol.writeWord(lineAddress, (short) 1);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index fd6dbd2..7209b1f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,10 +3,13 @@
spring:
profiles:
- active: cz
+ active: dev
application:
name: cacheVerticalGlass
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+ sequence:
+ order: false
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
index 3e1cd7e..0b433b2 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
@@ -12,9 +12,9 @@
salve_hangzhoumes:
url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
- username: sa
- password: beibo.123/
- driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ username: sa
+ password: beibo.123/
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
cloud:
nacos:
discovery:
--
Gitblit v1.8.0