From e95543888fce8eb09d1d7d140158514ae1b93ff5 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 29 七月 2024 13:50:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 20 ++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 11 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 81 +++++++----
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 202 ++++++++++++++++------------
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java | 24 ++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java | 16 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java | 9 +
9 files changed, 242 insertions(+), 127 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 5a0bd8a..2a8f6ea 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
@@ -40,6 +40,7 @@
* 鍑虹墖浠诲姟101
* 浜哄伐涓嬬墖102
* 鍑虹墖涓�103
+ * 璋冨害涓�104
* 鎷胯蛋200
* 鐮存崯201
*/
@@ -48,6 +49,7 @@
public static final Integer GLASS_STATE_OUT = 101;
public static final Integer GLASS_STATE_ARTIFICIAL = 102;
public static final Integer GLASS_STATE_OUT_ING = 103;
+ public static final Integer GLASS_STATE_SCHEDULE_ING = 104;
public static final Integer GLASS_STATE_TAKE = 200;
public static final Integer GLASS_STATE_DAMAGE = 201;
public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103);
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
index c85d6d5..92cbb79 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
@@ -4,12 +4,12 @@
<insert id="saveBatch">
INSERT INTO tempering_glass_info (glass_id, flow_card_id, glass_type, width, height, thickness, filmsid,
ishorizontal, tempering_layout_id,
- tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot ) VALUES
+ tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot, engineer_id) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.glassId}, #{item.flowCardId}, #{item.glassType}, #{item.width}, #{item.height}, #{item.thickness},
#{item.filmsid},#{item.ishorizontal},
#{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.xCoordinate}, #{item.yCoordinate},
- #{item.angle}, #{item.state}, #{item.slot})
+ #{item.angle}, #{item.state}, #{item.slot}, #{item.engineerId})
</foreach>
</insert>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index 3dd6f8f..77c81be 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -1,4 +1,5 @@
package com.mes.bigstorage.controller;
+
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
@@ -6,7 +7,10 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@@ -78,11 +82,11 @@
@ApiOperation("鎸囧畾閽㈠寲")
@PostMapping("/TemperingGlass")
- public Result TemperingGlass(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
- boolean result=bigStorageCageDetailsService.TemperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(),bigStorageCageDetails.getEngineerId());
- if(result==true){
- return Result.build(200,"鎸囧畾閽㈠寲鎴愬姛",1);
- }else {
+ public Result temperingGlass(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+ boolean result = bigStorageCageDetailsService.temperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(), bigStorageCageDetails.getEngineerId());
+ if (result == true) {
+ return Result.build(200, "鎸囧畾閽㈠寲鎴愬姛", 1);
+ } else {
return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
}
}
@@ -90,7 +94,13 @@
@ApiOperation("閽㈠寲鏌ヨ")
@PostMapping("/selectTemperingGlass")
public Result selectTemperingGlass() {
- return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetailsService.selectTemperingGlass());
+ return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetailsService.selectTemperingGlass());
+ }
+
+ @ApiOperation("鏄惁閽㈠寲寮�鍏�")
+ @PostMapping("/temperingSwitch")
+ public Result temperingSwitch(Boolean flag) {
+ return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetailsService.temperingSwitch(flag));
}
}
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 495b06a..5831a80 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
@@ -4,6 +4,7 @@
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.dto.SlotSequenceDTO;
import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -35,4 +36,12 @@
List<SlotSequenceDTO> queryGlassMaxAndMin(@Param(value = "engineerId") String engineerId, @Param(value = "temperingLayoutId") Integer temperingLayoutId);
+
+ /**
+ * 鎸夌収鐜荤拑id鍜岀洰鏍囨牸瀛愭洿鏂扮鍐呯幓鐠冧俊鎭�
+ *
+ * @param glassList
+ * @param state
+ */
+ void updateBySlot(@Param(value = "list") List<UpdateBigStorageCageDTO> glassList, @Param(value = "state") int state);
}
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 cab1f09..23a4613 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
@@ -5,6 +5,7 @@
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.bigstorage.entity.dto.SlotSequenceDTO;
import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
@@ -12,7 +13,7 @@
/**
* <p>
- * 鏈嶅姟绫�
+ * 鏈嶅姟绫�
* </p>
*
* @author zhoush
@@ -26,7 +27,7 @@
void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
- void damageBigStorageCageDetails(String glassId,int status);
+ void damageBigStorageCageDetails(String glassId, int status);
List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId);
@@ -66,7 +67,11 @@
*/
List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId);
- boolean TemperingGlass(String temperingLayoutId, String engineerId);
+ boolean temperingGlass(String temperingLayoutId, String engineerId);
List<Map<String, Object>> selectTemperingGlass();
+
+ void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state);
+
+ String temperingSwitch(Boolean flag);
}
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 8de5698..6761928 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
@@ -3,7 +3,9 @@
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.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
@@ -15,15 +17,19 @@
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
import com.mes.common.config.Const;
+import com.mes.common.utils.RedisUtil;
import com.mes.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.glassinfo.service.GlassInfoService;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -58,7 +64,15 @@
private GlassInfoMapper glassInfoMapper;
@Resource
+ private GlassInfoService glassInfoService;
+
+ @Resource
+ private TemperingGlassInfoService temperingGlassInfoService;
+
+ @Resource
private DamageService damageService;
+ @Resource
+ private RedisUtil redisUtil;
@Value("${mes.minCount}")
private int minCount;
@@ -68,6 +82,10 @@
@Value("${mes.glassGap}")
private Integer glassGap;
+
+ @Value("${mes.sequence.order}")
+ private boolean sequenceOrder;
+
/**
* 鏌ヨ杩�/鍑虹墖浠诲姟
@@ -292,6 +310,7 @@
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
.eq(BigStorageCage::getRemainWidth, slotWidth)
+ .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
.inSql(BigStorageCage::getDeviceId,
"select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId())
.last("limit 1"));
@@ -307,6 +326,7 @@
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getRemainWidth, slotWidth)
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
.notInSql(BigStorageCage::getDeviceId,
"select distinct device_id from big_storage_cage_details where state in (100,102,103)")
.ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
@@ -321,6 +341,7 @@
}
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getRemainWidth, slotWidth)
+ .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
.ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
.orderByAsc(BigStorageCage::getDeviceId)
@@ -350,47 +371,49 @@
}
@Override
- public boolean TemperingGlass(String temperingLayoutId, String engineerId) {
+ public boolean temperingGlass(String temperingLayoutId, String engineerId) {
LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
temperingGlassInfoLambdaQueryWrapper
- .eq(TemperingGlassInfo::getState,Const.TEMPERING_NEW);
- List<TemperingGlassInfo> temperingGlassInfoList=temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+ .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
- if(temperingGlassInfoList.size()==0){
- LambdaQueryWrapper<BigStorageCageDetails> wrapper =new LambdaQueryWrapper<>();
- wrapper.eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
- .eq(BigStorageCageDetails::getEngineerId,engineerId)
- .in(BigStorageCageDetails::getState,Const.GLASS_STATE_IN,Const.GLASS_STATE_ARTIFICIAL);
- List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(wrapper);
-
- for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
- ) {
- TemperingGlassInfo temperingGlassInfo = new TemperingGlassInfo();
- LambdaQueryWrapper<GlassInfo> glassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
- glassInfoLambdaQueryWrapper.eq(GlassInfo::getGlassId, bigStorageCageDetails.getGlassId());
- GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoLambdaQueryWrapper);
-
- BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
- temperingGlassInfo.setAngle((int) glassInfo.getAngle());
- temperingGlassInfo.setState(Const.TEMPERING_NEW);
- temperingGlassInfo.setSlot(bigStorageCageDetails.getSlot());
- temperingGlassInfoMapper.insert(temperingGlassInfo);
+ if (temperingGlassInfoList.size() == 0) {
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ .selectAll(GlassInfo.class)
+ .select("-1 as state")
+ .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+ .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+ .eq(GlassInfo::getTemperingLayoutId, temperingLayoutId)
+ .eq(GlassInfo::getEngineerId, engineerId)
+ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+ if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+ temperingGlassInfoService.saveBatch(temperingGlassInfos);
+ return true;
}
- return true;
- } else {
- return false;
}
-
-
+ return false;
}
+
@Override
- public List<Map<String, Object>> selectTemperingGlass(){
+ public List<Map<String, Object>> selectTemperingGlass() {
QueryWrapper<BigStorageCageDetails> wrapper = new QueryWrapper<>();
wrapper.select("engineer_id,tempering_layout_id,count(*) as count")
- .in("state",Const.GLASS_STATE_IN,Const.GLASS_STATE_ARTIFICIAL)
+ .in("state", Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL)
.groupBy("engineer_id,tempering_layout_id");
List<Map<String, Object>> TemperingGlass = baseMapper.selectMaps(wrapper);
return TemperingGlass;
}
+
+ @Override
+ public void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state) {
+ baseMapper.updateBySlot(glassList, state);
+ }
+
+ @Override
+ public String temperingSwitch(Boolean flag) {
+ redisUtil.setCacheObject("temperingSwitch", flag);
+ return "success";
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java
new file mode 100644
index 0000000..6a1cecc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java
@@ -0,0 +1,16 @@
+package com.mes.bigstoragetask.entity;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/26 9:05
+ * @Description:
+ */
+@Data
+public class UpdateBigStorageCageDTO {
+
+ private String glassId;
+
+ private int targetSlot;
+}
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 6952bac..126fbbd 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
@@ -16,10 +16,12 @@
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.common.S7object;
import com.mes.common.config.Const;
+import com.mes.common.utils.RedisUtil;
import com.mes.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.device.PlcParameterObject;
@@ -64,6 +66,9 @@
private TemperingGlassInfoService temperingGlassInfoService;
@Resource
private DamageService damageService;
+
+ @Resource
+ private RedisUtil redisUtil;
private static final String REQUEST_WORD = "1";
@@ -178,11 +183,6 @@
String d01Id = plcParameterObject.getPlcParameter("D01ID").getValue();
String d04Id = plcParameterObject.getPlcParameter("D04ID").getValue();
log.info("1銆佽幏鍙杁01Id鎵弿ID涓猴細{};鑾峰彇d04Id鎵弿ID涓猴細{};", d01Id, d04Id);
- //涓ゆ潯绾块兘鏈夎繘鍗ц浆绔嬩换鍔★紝鐩存帴缁撴潫
-// if (StringUtils.isNotBlank(d01Id) && StringUtils.isNotBlank(d04Id)) {
-// log.info("涓ゆ潯绾块兘瀛樺湪杩涚墖浠诲姟锛岀粨鏉熶换鍔�");
-// return;
-// }
//鑾峰彇涓ゆ潯绾垮崸杞珛鏄惁鏈夌幓鐠冿紝涓斾换鍔$姸鎬佷负1/2
List<Integer> lineList = bigStorageCageFeedTaskService.querySitToUpGlass();
if (CollectionUtils.isEmpty(lineList)) {
@@ -244,68 +244,73 @@
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
}
- @Scheduled(fixedDelay = 300)
+ @Scheduled(fixedDelay = 5000)
public void plcToHomeEdgOutTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
- String e02State = plcMesObject.getPlcParameter("E02State").getAddress();
+ String e02State = plcMesObject.getPlcParameter("E02State").getValue();
if (REQUEST_WORD.equals(e02State)) {
log.info("鍑虹墖蹇欑锛岀粨鏉熷嚭鐗囦换鍔�");
return;
}
String mesToPLCAddress = plcMesObject.getPlcParameter("MESToPLC").getAddress();
- List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW));
- Assert.isTrue(CollectionUtils.isEmpty(outingList), "鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�");
-
- //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑
- List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
- .selectAll(TemperingGlassInfo.class)
- .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
- .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
- .isNull(BigStorageCageOutTask::getGlassId)
- .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
- if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
- log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
- Date endDate = new Date();
- log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+ List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+ .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW));
+ if (CollectionUtils.isNotEmpty(outingList)) {
+ log.info("鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�");
return;
}
- //鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭
- List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
- if (CollectionUtils.isNotEmpty(artificialList)) {
- computeOutGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
- Date endDate = new Date();
- log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
- }
- //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩 鐜荤拑灏忕墖 鐮存崯琛� 鏁伴噺 鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
- List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
- if (CollectionUtils.isNotEmpty(temperingLayoutDTOList)) {
- //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
- //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫
- for (TemperingLayoutDTO item : temperingLayoutDTOList) {
- List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
- .selectAll(GlassInfo.class)
- .select("-1 as state")
- .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
- .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
- .eq(GlassInfo::getEngineerId, item.getEngineerId())
- .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
- if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
- temperingGlassInfoService.saveBatch(temperingGlassInfos);
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
- Date endDate = new Date();
- log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
+ if (redisUtil.getCacheObject("temperingSwitch")) {
+ //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
+ .selectAll(TemperingGlassInfo.class)
+ .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
+ .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+ .isNull(BigStorageCageOutTask::getGlassId)
+ .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
+ if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+ log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+ computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ Date endDate = new Date();
+ log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+ return;
+ }
+ //鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭
+ List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
+ if (CollectionUtils.isNotEmpty(artificialList)) {
+ computeOutGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
+ Date endDate = new Date();
+ log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+ return;
+ }
+ //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩 鐜荤拑灏忕墖 鐮存崯琛� 鏁伴噺 鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+ List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+ if (CollectionUtils.isNotEmpty(temperingLayoutDTOList)) {
+ //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
+ //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫
+ for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ .selectAll(GlassInfo.class)
+ .select("-1 as state")
+ .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+ .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+ .eq(GlassInfo::getEngineerId, item.getEngineerId())
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+ if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+ temperingGlassInfoService.saveBatch(temperingGlassInfos);
+ computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ Date endDate = new Date();
+ log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+ return;
+ }
}
}
}
- //鏈埌榻� 鎵ц鍐呴儴璋冨害浠诲姟
+ //鎵ц鍐呴儴璋冨害浠诲姟
TemperingLayoutDTO temperingOccupySlot = bigStorageCageDetailsService.queryTemperingOccupySlot();
if (null != temperingOccupySlot) {
List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
@@ -314,12 +319,25 @@
SlotSequenceDTO second = slotSequenceList.get(i + 1);
int slotWidth = carWidth - first.getRemainWidth() - glassGap;
if (first.getMinSequence() == second.getMaxSequence() + 1
- && second.getRemainWidth() > slotWidth) {
+ && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
+
List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN));
- List<BigStorageCageOutTask> outTasks = list.stream().map(e -> new BigStorageCageOutTask(e.getGlassId(), first.getSlot(), second.getSlot(),
- e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1)).collect(Collectors.toList());
- bigStorageCageOutTaskService.saveBatch(outTasks);
+ .eq(BigStorageCageDetails::getSlot, first.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) {
+ outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
+ item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW));
+ }
+ //鏂板璋冨害浠诲姟
+ bigStorageCageOutTaskService.saveBatch(outTasks);
+ //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
+ List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
+ bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
+ .set(BigStorageCageBaseInfo::getSlot, second.getSlot()).eq(BigStorageCageDetails::getGlassId, glassList));
+ }
//鍚憄lc鍐欏叆纭瀛�
int returnData = 0;
@@ -348,14 +366,18 @@
if (CollectionUtils.isNotEmpty(list)) {
log.info("2銆佽幏鍙栨墍鏈夋鍦ㄨ繘鐗囩殑鐜荤拑淇℃伅id:{}", list);
List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
- List<Object> inSuccessGlassIdsObj = bigStorageCageFeedTaskService.listObjs(new LambdaQueryWrapper<BigStorageCageFeedTask>()
- .select(BigStorageCageFeedTask::getGlassId).in(BigStorageCageFeedTask::getGlassId, glassIds)
+ List<BigStorageCageFeedTask> inSuccessGlass = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+ .in(BigStorageCageFeedTask::getGlassId, glassIds)
.in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT));
- List<String> inSuccessGlassIds = inSuccessGlassIdsObj.stream().map(String::valueOf).collect(Collectors.toList());
- if (CollectionUtils.isNotEmpty(inSuccessGlassIds)) {
- log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", inSuccessGlassIds);
- bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
- .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).in(BigStorageCageDetails::getGlassId, inSuccessGlassIds));
+ if (CollectionUtils.isNotEmpty(inSuccessGlass)) {
+ log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", inSuccessGlass);
+ List<String> inSuccessGlassIds = inSuccessGlass.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+ List<UpdateBigStorageCageDTO> storageCageDTOList = inSuccessGlass.stream().map(e -> {
+ UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+ BeanUtils.copyProperties(e, storageCageDTO);
+ return storageCageDTO;
+ }).collect(Collectors.toList());
+ bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlassIds);
//鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
updateSlotRemain(inSuccessGlassIds, Boolean.TRUE);
@@ -379,14 +401,19 @@
if (CollectionUtils.isNotEmpty(list)) {
log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
- List<Object> outSuccessGlassIdsObj = bigStorageCageOutTaskService.listObjs(new LambdaQueryWrapper<BigStorageCageOutTask>()
- .select(BigStorageCageOutTask::getGlassId).in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
- List<String> outSuccessGlassIds = outSuccessGlassIdsObj.stream().map(String::valueOf).collect(Collectors.toList());
- if (CollectionUtils.isNotEmpty(outSuccessGlassIds)) {
- log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlassIdsObj);
- bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
- .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT).in(BigStorageCageDetails::getGlassId, outSuccessGlassIds));
- log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlassIdsObj);
+ List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+ .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
+ if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
+ log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass);
+ List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> {
+ UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+ storageCageDTO.setGlassId(e.getGlassId());
+ storageCageDTO.setTargetSlot(e.getStartSlot());
+ return storageCageDTO;
+ }).collect(Collectors.toList());
+ bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+ List<String> outSuccessGlassIds = outSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+ log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlassIds);
//鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
updateSlotRemain(outSuccessGlassIds, Boolean.FALSE);
log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
@@ -624,6 +651,7 @@
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());
+ log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚", i);
}
int returnData = 0;
int count = 1;
@@ -639,27 +667,36 @@
List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
//鎵撹溅鍓╀綑灏哄
Integer remainWidth = carWidth;
+ int trainNumber = 1;
+ int serialNumber = 1;
int maxX = 0;
for (T e : list) {
- if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) {
- break;
+ int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+ if (bigStorageCageOutTaskList.size() >= outCarMaxSize || maxLength > remainWidth) {
+ remainWidth = carWidth;
+ trainNumber = trainNumber + 1;
+ serialNumber = 1;
+ maxX = 0;
+ continue;
}
- remainWidth = remainWidth - (int) e.getWidth() - glassGap;
+ remainWidth = remainWidth - maxLength - glassGap;
if (isTempering) {
int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
if (maxX + minLength <= xMaxSize) {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
- e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1));
+ e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1));
maxX = Math.max(maxX, e.getXCoordinate());
} else {
- break;
+ remainWidth = carWidth;
+ trainNumber = trainNumber + 1;
+ serialNumber = 1;
+ maxX = 0;
+ continue;
}
-
} else {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
- e.getWidth() * 10, e.getHeight(), 0, 0, 1));
+ e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
}
-
}
Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
@@ -669,9 +706,6 @@
bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
.set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
.in(BigStorageCageDetails::getGlassId, glassIds));
- //鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄(绉昏嚦鍑虹墖浠诲姟瀹屾垚鍚�)
-// updateSlotRemain(list, glassIds);
-
int returnData = 0;
int count = 1;
while (returnData == 0) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index b49e679..24eca61 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -44,13 +44,15 @@
</select>
<select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
- SELECT TEMPERING_LAYOUT_ID,
+ SELECT ENGINEER_ID,
+ TEMPERING_LAYOUT_ID,
COUNT(DISTINCT SLOT) as SLOT_COUNT
FROM BIG_STORAGE_CAGE_DETAILS
WHERE STATE = 100
GROUP BY ENGINEER_ID,
TEMPERING_LAYOUT_ID
- HAVING SLOT_COUNT >= #{count} LIMIT 1
+ HAVING SLOT_COUNT >= #{count}
+ ORDER BY SLOT_COUNT DESC LIMIT 1
</select>
<select id="queryGlassMaxAndMin" resultMap="slotSequenceDTO">
SELECT T.*,
@@ -71,4 +73,18 @@
INNER JOIN BIG_STORAGE_CAGE T1 ON T.SLOT = T1.SLOT
ORDER BY T.MAX_SEQUENCE DESC
</select>
+
+ <update id="updateBySlot">
+ update big_storage_cage_details
+ <set>
+ state = #{state}
+ </set>
+ <where>
+ (glass_id,slot) in (
+ <foreach collection="list" item="item" separator=",">
+ (#{item.glassId}, #{item.targetSlot})
+ </foreach>
+ )
+ </where>
+ </update>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0