From 303ae4174c4aa9bbe0565cc7a25ceb876b6979a5 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 13 六月 2024 17:03:50 +0800
Subject: [PATCH] 大理片笼出片逻辑优化
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 17 +++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 3 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java | 5 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java | 23 +++++--
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 6 ++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 34 +++++++++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java | 20 ++++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java | 7 ++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java | 7 +
9 files changed, 112 insertions(+), 10 deletions(-)
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 0acc5f2..c0084df 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
@@ -12,7 +12,6 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
-import java.util.List;
/**
* <p>
@@ -116,6 +115,12 @@
private Integer gap;
/**
+ * 宸ョ▼鍙�
+ */
+ @ApiModelProperty(value = "宸ョ▼鍙�")
+ private String engineerId;
+
+ /**
* 杩涚墖浠诲姟
*/
@ApiModelProperty(value = "杩涚墖浠诲姟", position = 16)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java
new file mode 100644
index 0000000..7e11c34
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java
@@ -0,0 +1,20 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/13 15:51
+ * @Description:
+ */
+@Data
+public class TemperingLayoutDTO {
+ /**
+ * 閽㈠寲鐗堝浘id
+ */
+ private Integer temperingLayoutId;
+ /**
+ * 褰撳墠鐗堝浘鏁伴噺
+ */
+ private Integer count;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
index 3b9bb40..93a5953 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -1,9 +1,10 @@
package com.mes.bigstorage.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
-import feign.Param;
+import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+
+import java.util.List;
/**
@@ -16,4 +17,6 @@
*/
public interface BigStorageCageDetailsMapper extends MPJBaseMapper<BigStorageCageDetails> {
+ List<TemperingLayoutDTO> listAllTemperingCount();
+
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
index 64b7ecb..dc64d64 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
+import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
@@ -39,4 +40,6 @@
* @param glassInfo
*/
BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo);
+
+ List<TemperingLayoutDTO> listAllTemperingCount();
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index ebaec10..bda4125 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -7,6 +7,7 @@
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
+import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
@@ -253,4 +254,9 @@
}
+
+ @Override
+ public List<TemperingLayoutDTO> listAllTemperingCount() {
+ return baseMapper.listAllTemperingCount();
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
index a9959d5..3ee5490 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
@@ -2,16 +2,16 @@
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;
+
/**
* <p>
- *
+ *
* </p>
*
* @author zhoush
@@ -24,11 +24,23 @@
private static final long serialVersionUID = 1L;
+ public BigStorageCageOutTask() {
+ }
+
+ public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, Integer trainNumber, Integer serialNumber, Integer taskState) {
+ this.glassId = glassId;
+ this.startSlot = startSlot;
+ this.endSlot = endSlot;
+ this.trainNumber = trainNumber;
+ this.serialNumber = serialNumber;
+ this.taskState = taskState;
+ }
+
/**
* 涓婚敭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;
/**
@@ -66,6 +78,5 @@
*/
@ApiModelProperty(value = "浠诲姟鐘舵��", position = 8)
private Integer taskState;
-
}
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 02228b4..3e13554 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
@@ -3,11 +3,14 @@
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
+import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.common.S7object;
@@ -17,6 +20,7 @@
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@@ -24,7 +28,6 @@
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;
@@ -260,7 +263,36 @@
@Scheduled(fixedDelay = 5000)
public void plcToHomeEdgOutTask() {
+ //todo:鏄惁鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+ .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+ .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
+ //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧
+ List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+ log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+ //鎵撹溅鍓╀綑灏哄
+ AtomicReference<Integer> remainWidth = new AtomicReference<>(Const.BIG_STORAGE_WIDTH);
+ temperingGlassInfoList.stream().forEach(e -> {
+ if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth.get()) {
+ return;
+ }
+ remainWidth.set(remainWidth.get() - e.getWidth().intValue() - Const.BIG_STORAGE_GAP);
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getState(), Const.A09_OUT_TARGET_POSITION,
+ 0, 0, 1));
+ });
+ bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+ return;
+ }
+ //todo:鑾峰彇鐘舵�佸瓧 閽㈠寲浼樺厛 or 浜哄伐涓嬬墖浼樺厛
+ if (true) {
+ //todo:閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩 鐜荤拑灏忕墖 鐮存崯琛� 鏁伴噺 鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+ //todo: 鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫
+ //todo: 鏈埌榻� 鎵ц鍐呴儴璋冨害浠诲姟 缁撴潫
+ }
+ //todo:绗煎唴鏄惁鏈変汉宸ヤ笅鐗囩幓鐠� 鏈夌洿鎺ュ嚭 鏃� 缁撴潫
+ List<TemperingLayoutDTO> list = bigStorageCageDetailsService.listAllTemperingCount();
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..9d6527c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageCageDetailsMapper">
+
+ <resultMap id="temperingLayoutDTO" type="com.mes.bigstorage.entity.dto.TemperingLayoutDTO">
+ <result column="tempering_layout_id" property="temperingLayoutId"/>
+ <result column="count" property="count"/>
+ </resultMap>
+ <select id="listAllTemperingCount" resultMap="temperingLayoutDTO">
+ select tempering_layout_id,
+ count(tempering_layout_id) as count
+ from big_storage_cage_details
+ where state = 100
+ group by tempering_layout_id
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
index ae11d30..3dacdba 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -33,6 +33,11 @@
}
@Test
+ public void outGlass() {
+ log.info("瀹屾暣璺緞锛歿}", bigStorageCageService.outGlass());
+ }
+
+ @Test
public void computeTargetByLine() {
// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail());
plcStorageCageTask.computeTargetByLine(2001, "", "");
--
Gitblit v1.8.0