From b3fd4ee6e9d4ae51cde28be8ae705e19af5ef9e4 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期五, 26 七月 2024 09:50:08 +0800 Subject: [PATCH] 大理片笼:进出笼状态修改按照玻璃id和笼内格子位置 --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 14 +++++++ hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 7 ++- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 31 +++++++++------ hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 37 +++++++++++------- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java | 18 +++++++++ hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java | 9 ++++ 6 files changed, 88 insertions(+), 28 deletions(-) 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..b6e2506 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); @@ -69,4 +70,6 @@ boolean TemperingGlass(String temperingLayoutId, String engineerId); List<Map<String, Object>> selectTemperingGlass(); + + void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state); } 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..d944ad0 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 @@ -15,6 +15,7 @@ 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; @@ -292,6 +293,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 +309,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 +324,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) @@ -353,15 +357,15 @@ 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); + 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 ) { @@ -380,17 +384,20 @@ } else { 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); + } } 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..bad8ddb --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java @@ -0,0 +1,18 @@ +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; + + private Integer startSlot; +} 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..c942166 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,6 +16,7 @@ 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; @@ -348,14 +349,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(inSuccessGlass, storageCageDTO); + return storageCageDTO; + }).collect(Collectors.toList()); + bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN); log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlassIds); //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵� updateSlotRemain(inSuccessGlassIds, Boolean.TRUE); @@ -379,14 +384,18 @@ 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>() + List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(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); + if (CollectionUtils.isNotEmpty(outSuccessGlass)) { + log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass); + List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> { + UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO(); + BeanUtils.copyProperties(outSuccessGlass, storageCageDTO); + 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銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�"); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml index b49e679..bdfff25 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml @@ -71,4 +71,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