From a851a0eb0b9c5a8a5e9e4b038fbd1f0bf5f58bbc Mon Sep 17 00:00:00 2001 From: wuyouming666 <2265557248@qq.com> Date: 星期五, 21 六月 2024 16:12:08 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml | 15 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java | 16 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java | 8 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java | 6 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java | 9 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java | 4 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java | 3 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java | 8 hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json | 66 +++- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java | 6 hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml | 16 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java | 15 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java | 11 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java | 2 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 282 ++++++++++++--------- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java | 24 - hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json | 34 -- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 46 +- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java | 20 + hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 35 + hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java | 32 ++ hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 5 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java | 5 /dev/null | 18 - hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java | 5 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml | 14 + hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java | 35 +- hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 15 28 files changed, 458 insertions(+), 297 deletions(-) diff --git a/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json index 5838dac..1b538cf 100644 --- a/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json +++ b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json @@ -1,6 +1,6 @@ { - "plcAddressBegin":"DB.0", - "plcAddressLenght":"72", + "plcAddressBegin":"DB14.0", + "plcAddressLenght":"84", "dataType":"word", "parameteInfor":[ { @@ -19,7 +19,7 @@ }, { "codeId": "D04Request", - "addressIndex":"8", + "addressIndex":"34", "addressLenght":"2", "ratio":"1", "unit":"" @@ -27,28 +27,62 @@ { "codeId": "D04ID1", "addressIndex":"10", - "addressLenght":"6", + "addressLenght":"36", "ratio":"1", "unit":"" }, { - "codeId": "D02Go", - "addressIndex":"20", + "codeId": "E01Status", + "addressIndex":"2", + "addressLenght":"68", + "ratio":"1", + "unit":"" + }, + { + "codeId": "E02Status", + "addressIndex":"2", + "addressLenght":"70", + "ratio":"1", + "unit":"" + }, + { + "codeId": "MaxTaskNo", + "addressIndex":"2", + "addressLenght":"72", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02MaxWidth", + "addressIndex":"2", + "addressLenght":"74", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D05MaxWidth", + "addressIndex":"2", + "addressLenght":"76", + "ratio":"1", + "unit":"" + }, + { + "codeId": "GlassGap", + "addressIndex":"2", + "addressLenght":"78", + "ratio":"1", + "unit":"" + }, + { + "codeId": "D02SitState", + "addressIndex":"80", "addressLenght":"2", "ratio":"1", "unit":"" }, { - "codeId": "D05Go", - "addressIndex":"22", - "addressLenght":"2", - "ratio":"1", - "unit":"" - } - , - { - "codeId": "DeviceStatus", - "addressIndex":"70", + "codeId": "D05SitState", + "addressIndex":"82", "addressLenght":"2", "ratio":"1", "unit":"" diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java new file mode 100644 index 0000000..c427061 --- /dev/null +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java @@ -0,0 +1,32 @@ +package com.mes.base.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author : zhoush + * @Date: 2024/6/21 9:40 + * @Description: + */ +@Data +public class BigStorageCageBaseInfo { + + /** + * 鐜荤拑id + */ + @ApiModelProperty(value = "鐜荤拑id") + private String glassId; + + /** + * 瀹� + */ + @ApiModelProperty(value = "瀹�") + private Double width; + + /** + * 鏍煎瓙鍙� + */ + @ApiModelProperty(value = "鐜荤拑id") + private Integer slot; + +} 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 d1589ea..b18d95d 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 @@ -18,8 +18,8 @@ * 纾ㄨ竟娓呮礂鍓� */ /** - * A09鍑虹墖鐩爣浣嶇疆2001 - * A10鍑虹墖鐩爣浣嶇疆2002 + * A09鍑虹墖鐩爣浣嶇疆 d02鍗ц浆绔� 閽㈠寲鍑虹墖 2001 + * A10鍑虹墖鐩爣浣嶇疆 d05鍗ц浆绔� 浜哄伐鍑虹墖 2002 */ public static final Integer A09_OUT_TARGET_POSITION = 2001; public static final Integer A10_OUT_TARGET_POSITION = 2002; @@ -73,8 +73,8 @@ * 0 澶х悊鐗囩鏃犺姹� * 1 澶х悊鐗囩杩涚墖璇锋眰 */ - public static final Integer BIG_STORAGE_REQUEST = 0; - public static final Integer BIG_STORAGE_REQUEST_IN = 1; + public static final String BIG_STORAGE_REQUEST = "0"; + public static final String BIG_STORAGE_REQUEST_IN = "1"; /** * 澶х悊鐗囩璇︽儏鐘舵�� @@ -101,6 +101,7 @@ public static final Integer BIG_STORAGE_IN_UP = 2; public static final Integer BIG_STORAGE_IN_CAR = 3; public static final Integer BIG_STORAGE_IN_SLOT = 4; + public static final List<Integer> BIG_STORAGE_IN_UP_ALL = Arrays.asList(1, 2); /** * 鍗ц浆绔嬪嚭鐗囪姹� * 1 浠诲姟鐢熸垚 @@ -118,12 +119,6 @@ */ 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; - public static final Integer BIG_STORAGE_GAP = 20; /** * 閽㈠寲灏忕墖琛� diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java index 4688c38..bdfb970 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java @@ -2,16 +2,15 @@ import com.github.yulichang.base.MPJBaseMapper; import com.mes.glassinfo.entity.GlassInfo; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> - * Mapper 鎺ュ彛 + * Mapper 鎺ュ彛 * </p> * * @author wu * @since 2024-04-29 */ -public interface GlassInfoMapper extends BaseMapper<GlassInfo>, MPJBaseMapper<GlassInfo> { +public interface GlassInfoMapper extends MPJBaseMapper<GlassInfo> { } diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java index ac47c7b..2ebf5a8 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.mes.base.entity.BigStorageCageBaseInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,88 +16,92 @@ * </p> * * @author zhoush - * @since 2024-04-07 + * @since 2024-03-27 */ +@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>") @Data @EqualsAndHashCode(callSuper = false) -public class TemperingGlassInfo implements Serializable { +public class TemperingGlassInfo extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 閽㈠寲灏忕墖淇℃伅琛╥d */ + @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2) @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 娴佺▼鍗� */ - private String flowcardId; + @ApiModelProperty(value = "娴佺▼鍗�", position = 4) + private String flowCardId; /** * 娴佺▼鍗$幓鐠冪被鍨� */ + @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5) private Integer glassType; - - /** - * 瀹� - */ - private Double width; /** * 楂� */ + @ApiModelProperty(value = "楂�", position = 7) private Double height; /** * 鍘氬害 */ + @ApiModelProperty(value = "鍘氬害", position = 8) private Double thickness; /** * 鑶滅郴 */ - private Integer filmsid; + @ApiModelProperty(value = "鑶滅郴", position = 9) + private String filmsid; /** * 閽㈠寲鏄惁鎺ュ彈妯斁 */ + @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10) private Integer ishorizontal; /** * 閽㈠寲鐗堝浘id */ + @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 11) private Integer temperingLayoutId; /** * 閽㈠寲鐗堝浘鐗囧簭 */ + @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 12) private Integer temperingFeedSequence; /** * x鍧愭爣 */ + @ApiModelProperty(value = "x鍧愭爣", position = 13) private Integer xCoordinate; /** * y鍧愭爣 */ + @ApiModelProperty(value = "y鍧愭爣", position = 14) private Integer yCoordinate; /** * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級 */ + @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15) private Integer angle; /** * 鐘舵�� */ + @ApiModelProperty(value = "鐘舵��", position = 16) private Integer state; - /** - * 鏍煎瓙鍙� - */ - private Integer slot; - } diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java index dc41a61..65122ab 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java @@ -3,6 +3,9 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.github.yulichang.base.MPJBaseMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -15,4 +18,6 @@ @DS("salve_hangzhoumes") public interface TemperingGlassInfoMapper extends MPJBaseMapper<TemperingGlassInfo> { + boolean saveBatch(@Param(value = "list") List<TemperingGlassInfo> list); + } diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml new file mode 100644 index 0000000..c85d6d5 --- /dev/null +++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml @@ -0,0 +1,16 @@ +<?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.temperingglass.mapper.TemperingGlassInfoMapper"> + <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 + <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}) + </foreach> + </insert> + +</mapper> \ No newline at end of file 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 490bbbf..635f2df 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 @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.mes.base.entity.BigStorageCageBaseInfo; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import io.swagger.annotations.Api; @@ -23,15 +24,15 @@ @Api(description = "澶х悊鐗囩璇︽儏") @Data @EqualsAndHashCode(callSuper = false) -public class BigStorageCageDetails implements Serializable { +public class BigStorageCageDetails extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 澶х悊鐗囩璇︽儏琛╥d */ - @ApiModelProperty(value = "澶х悊鐗囩璇︽儏琛╥d", position = 2) - @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "澶х悊鐗囩璇︽儏琛╥d", position = 2) + @TableId(value = "id", type = IdType.AUTO) private Long id; /** @@ -40,17 +41,6 @@ @ApiModelProperty(value = "璁惧id", position = 3) private Integer deviceId; - /** - * 鏍呮牸鍙� - */ - @ApiModelProperty(value = "鏍呮牸鍙�", position = 4) - private Integer slot; - - /** - * 鐜荤拑id - */ - @ApiModelProperty(value = "鐜荤拑id", position = 5) - private String glassId; /** * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭 @@ -69,12 +59,6 @@ */ @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 8) private Integer glassType; - - /** - * 瀹� - */ - @ApiModelProperty(value = "瀹�", position = 9) - private Double width; /** * 楂� diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java index 24ab69c..a2df9ab 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java @@ -9,6 +9,17 @@ */ @Data public class BigStorageDTO { + /** + * 鏍煎瓙鍙� + */ private Integer slot; + /** + * 鍓╀綑瀹藉害 + */ private Integer width; + + /** + * 鐜荤拑鏁伴噺 + */ + private Integer glassCount; } 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 2dcf338..c3a9c9c 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 @@ -26,7 +26,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -55,6 +54,18 @@ @Value("${mes.minCount}") private int minCount; + + @Value("${mes.carWidth}") + private Integer carWidth; + + @Value("${mes.slotWidth}") + private Integer slotWidth; + + @Value("${mes.carMaxSize}") + private Integer carMaxSize; + + @Value("${mes.galssGap}") + private Integer galssGap; /** * 鏌ヨ杩�/鍑虹墖浠诲姟 @@ -125,7 +136,7 @@ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { if (bigStorageCageDetails.getBigStorageCageFeedTask().getTaskState() == 0) { - carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap(); + carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + galssGap; } } return carWidth; @@ -175,7 +186,7 @@ BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); bigStorageCageDetails.setState(0); - bigStorageCageDetails.setGap(Const.BIG_STORAGE_GAP); + bigStorageCageDetails.setGap(galssGap); return bigStorageCageDetails; } @@ -210,21 +221,25 @@ public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) { BigStorageDTO bigStorageDTO = null; MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class) - .selectAsClass(BigStorageCage.class, BigStorageDTO.class) + .selectAll(BigStorageCage.class) .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) + .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth()) .last("limit 1"); if (glassInfo.getTemperingLayoutId() == 0) { wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight()); } else { wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1); } - bigStorageDTO = bigStorageCageService.selectJoinOne(BigStorageDTO.class, wrapper); - if (null != bigStorageDTO) { + BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper); + if (null != bigStorageCage) { + bigStorageDTO = new BigStorageDTO(); + bigStorageDTO.setWidth(bigStorageCage.getRemainWidth()); + bigStorageDTO.setSlot(bigStorageCage.getSlot()); return bigStorageDTO; } - BigStorageCage bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) + bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() + .eq(BigStorageCage::getRemainWidth, slotWidth) .inSql(BigStorageCage::getDeviceId, "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId()) .last("limit 1")); @@ -235,15 +250,13 @@ return bigStorageDTO; } bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) + .eq(BigStorageCage::getRemainWidth, slotWidth) .last("limit 1")); Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�"); bigStorageDTO = new BigStorageDTO(); bigStorageDTO.setWidth(bigStorageCage.getRemainWidth()); bigStorageDTO.setSlot(bigStorageCage.getSlot()); return bigStorageDTO; - - } @Override 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 3ee5490..b439101 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 @@ -27,7 +27,7 @@ public BigStorageCageOutTask() { } - public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, Integer trainNumber, Integer serialNumber, Integer taskState) { + public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, Integer width, Integer trainNumber, Integer serialNumber, Integer taskState) { this.glassId = glassId; this.startSlot = startSlot; this.endSlot = endSlot; diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java index 66fcbc2..ec83651 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java @@ -2,8 +2,10 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mes.bigstorage.entity.BigStorageDTO; import com.github.yulichang.base.MPJBaseMapper; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,5 +20,7 @@ @DS("salve_hangzhoumes") public interface BigStorageCageFeedTaskMapper extends MPJBaseMapper<BigStorageCageFeedTask> { - List<String> querySitToUpGlass(); + List<Integer> querySitToUpGlass(); + + BigStorageDTO querySitToUpRemainWidth(@Param(value = "line") Integer line); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java index 710ddfa..5fa29d3 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java @@ -1,9 +1,11 @@ package com.mes.bigstoragetask.mapper; import com.baomidou.dynamic.datasource.annotation.DS; -import com.github.yulichang.base.MPJBaseMapper; -import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mes.bigstoragetask.entity.BigStorageCageOutTask; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -14,6 +16,7 @@ * @since 2024-04-16 */ @DS("salve_hangzhoumes") -public interface BigStorageCageOutTaskMapper extends MPJBaseMapper<BigStorageCageOutTask> { +public interface BigStorageCageOutTaskMapper extends BaseMapper<BigStorageCageOutTask> { + boolean saveBatch(@Param(value = "list") List<BigStorageCageOutTask> list); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java index d2d3afc..40e1827 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.github.yulichang.base.MPJBaseService; import com.mes.bigstorage.entity.BigStorageCageDetails; +import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import java.util.List; @@ -24,5 +25,10 @@ /** * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴� */ - List<String> querySitToUpGlass(); + BigStorageDTO querySitToUpRemainWidth(Integer line); + + /** + * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴� + */ + List<Integer> querySitToUpGlass(); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java index 2c9a9e2..8987889 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java @@ -1,7 +1,7 @@ package com.mes.bigstoragetask.service; -import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.baomidou.mybatisplus.extension.service.IService; +import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import java.util.List; @@ -19,5 +19,7 @@ void updateOutTask(); + boolean saveBatch(List<BigStorageCageOutTask> list); + void deleteOutTask(String glassId); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java index 716c92a..03110f0 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCageDetails; +import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; @@ -39,7 +40,12 @@ } @Override - public List<String> querySitToUpGlass() { + public BigStorageDTO querySitToUpRemainWidth(Integer line) { + return baseMapper.querySitToUpRemainWidth(line); + } + + @Override + public List<Integer> querySitToUpGlass() { return baseMapper.querySitToUpGlass(); } } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java index 32938c2..54f9a88 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java @@ -1,13 +1,12 @@ package com.mes.bigstoragetask.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper; import com.mes.bigstoragetask.service.BigStorageCageOutTaskService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; import lombok.extern.slf4j.Slf4j; @@ -35,14 +34,19 @@ @Resource BigStorageCageDetailsMapper bigStorageCageDetailsMapper; + @Override + public boolean saveBatch(List<BigStorageCageOutTask> list) { + return baseMapper.saveBatch(list); + } + /** * 鏌ヨ浠诲姟淇℃伅 */ @Override - public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState){ - log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細"+taskState); - LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper=new LambdaQueryWrapper<>(); - getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState,taskState); + public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) { + log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細" + taskState); + LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper = new LambdaQueryWrapper<>(); + getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState); return baseMapper.selectList(getOutTaskWrapper); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java deleted file mode 100644 index 1eaae48..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.mes.glassinfo.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 鍓嶇鎺у埗鍣� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@RestController -@RequestMapping("/glassInfo") -public class GlassInfoController { - -} - diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java deleted file mode 100644 index f2595d8..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mes.glassinfo.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.mes.glassinfo.entity.GlassInfo; - -/** - * <p> - * Mapper 鎺ュ彛 - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -public interface GlassInfoMapper extends BaseMapper<GlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java deleted file mode 100644 index 981b2b7..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mes.glassinfo.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.mes.glassinfo.entity.GlassInfo; - -/** - * <p> - * 鏈嶅姟绫� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -public interface GlassInfoService extends IService<GlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java deleted file mode 100644 index a30866a..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mes.glassinfo.service.impl; - -import com.mes.glassinfo.entity.GlassInfo; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.mes.glassinfo.mapper.GlassInfoMapper; -import com.mes.glassinfo.service.GlassInfoService; -import org.springframework.stereotype.Service; - -/** - * <p> - * 鏈嶅姟瀹炵幇绫� - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@Service -public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService { - -} 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 3e689cb..aebf46d 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,13 +2,18 @@ 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.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.base.entity.BigStorageCageBaseInfo; +import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.entity.BigStorageDTO; import com.mes.bigstorage.entity.dto.SlotSequenceDTO; 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; @@ -30,10 +35,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -43,6 +45,8 @@ @Slf4j public class PlcStorageCageTask { + @Resource + private BigStorageCageService bigStorageCageService; @Resource private BigStorageCageDetailsService bigStorageCageDetailsService; @Resource @@ -61,29 +65,45 @@ @Value("${mes.sequence.order}") private boolean sequenceOrder; + @Value("${mes.carWidth}") + private Integer carWidth; + @Value("${mes.slotWidth}") private Integer slotWidth; + + @Value("${mes.carMaxSize}") + private Integer carMaxSize; + + @Value("${mes.galssGap}") + private Integer galssGap; @Scheduled(fixedDelay = 5000) public void plcToHomeEdgScan() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); + String d02SitState = plcParameterObject.getPlcParameter("D02SitState").getValue(); String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); + String d05SitState = plcParameterObject.getPlcParameter("D05SitState").getValue(); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧d01涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};鑾峰彇鍒扮殑璇锋眰瀛梔04涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{};", d01Request, d01Id, d04Request, d04Id); if (!REQUEST_WORD.equals(d01Request) && !REQUEST_WORD.equals(d04Request)) { log.info("涓ゆ潯绾挎湭鏀跺埌杩涚墖浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�"); return; } + if (REQUEST_WORD.equals(d02SitState) && REQUEST_WORD.equals(d05SitState)) { + log.info("涓ゆ潯绾垮崸杞珛鍧囧湪鎵ц浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�"); + return; + } Boolean flag01 = Boolean.FALSE; Boolean flag04 = Boolean.FALSE; //鎸夌収绾胯矾鍙婄幓鐠僫d鑾峰彇鐩搁偦涓ゅ潡鐜荤拑 鍗ц浆绔嬩笂鐨勭幓鐠� - if (REQUEST_WORD.equals(d01Request)) { + if (REQUEST_WORD.equals(d01Request) && !REQUEST_WORD.equals(d02SitState)) { flag01 = judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION); } - if (REQUEST_WORD.equals(d04Request)) { + if (REQUEST_WORD.equals(d04Request) && !REQUEST_WORD.equals(d05SitState)) { flag04 = judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION); } if (flag01 && flag04) { @@ -103,9 +123,9 @@ @Scheduled(fixedDelay = 5000) public void plcToHomeEdgFreeCarTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; - String freeCar = plcParameterObject.getPlcParameter("freeCar").getValue(); - if (REQUEST_WORD.equals(freeCar)) { - log.info("澶ц溅闈炵┖闂�"); + String e01Status = plcParameterObject.getPlcParameter("E01Status").getValue(); + if (REQUEST_WORD.equals(e01Status)) { + log.info("杩涚墖澶ц溅闈炵┖闂�"); return; } String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); @@ -116,23 +136,23 @@ d01Request, d01Id, d04Request, d04Id); //涓ゆ潯绾块兘鏈夎繘鍗ц浆绔嬩换鍔★紝鐩存帴缁撴潫 if (Const.BIG_STORAGE_REQUEST_IN.equals(d01Request) - && Const.BIG_STORAGE_REQUEST_IN.equals(d04Request) - && StringUtils.isNotBlank(d01Id) - && StringUtils.isNotBlank(d04Id)) { + && Const.BIG_STORAGE_REQUEST_IN.equals(d04Request)) { log.info("涓ゆ潯绾块兘瀛樺湪杩涚墖浠诲姟锛岀粨鏉熶换鍔�"); return; } //鑾峰彇涓ゆ潯绾垮崸杞珛鏄惁鏈夌幓鐠冿紝涓斾换鍔$姸鎬侀兘涓�2 - List<String> lineList = bigStorageCageFeedTaskService.querySitToUpGlass(); + List<Integer> lineList = bigStorageCageFeedTaskService.querySitToUpGlass(); if (CollectionUtils.isEmpty(lineList)) { log.info("涓ゆ潯绾垮崸杞珛涓虹┖鎴栬�呮湁杩涚墖浠诲姟鏈畬鎴愶紝缁撴潫浠诲姟"); return; } - String line1 = lineList.get(0); - String flagLine = line1.equals(Const.A09_OUT_TARGET_POSITION) ? d01Id : d04Id; + Integer lineFirst = lineList.get(0); + String lineGlassId = lineFirst.equals(Const.A09_OUT_TARGET_POSITION) ? d01Id : d04Id; if (lineList.size() == 1) { //璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔� - computeTargetByLine(Integer.parseInt(flagLine)); + if (StringUtils.isEmpty(lineGlassId)) { + computeTargetByLine(lineFirst); + } return; } if (StringUtils.isBlank(d01Id) && StringUtils.isBlank(d04Id)) { @@ -149,70 +169,44 @@ @Scheduled(fixedDelay = 5000) public void plcToHomeEdgOutTask() { - //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 - List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); + + 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.list(new LambdaQueryWrapper<TemperingGlassInfo>() + 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("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟"); - //鎵撹溅鍓╀綑灏哄 - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (TemperingGlassInfo e : temperingGlassInfoList) { - if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { - break; - } - remainWidth = remainWidth - 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); + computeOutGlassInfo(temperingGlassInfoList); return; } - //todo:鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭 - //绗煎唴鏄惁鏈変汉宸ヤ笅鐗囩幓鐠� 鏃� 缁撴潫 + //鏄惁鏈変汉宸ヤ笅鐗囦换鍔� 鏈夌洿鎺ュ嚭 List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth)); - if (CollectionUtils.isEmpty(artificialList)) { - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (BigStorageCageDetails e : artificialList) { - if (remainWidth < e.getWidth().intValue()) { - break; - } - bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), 0, 0, 0, 1)); - remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; - } - bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + if (CollectionUtils.isNotEmpty(artificialList)) { + computeOutGlassInfo(temperingGlassInfoList); return; } - //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩 鐜荤拑灏忕墖 鐮存崯琛� 鏁伴噺 鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈 TemperingLayoutDTO temperingLayoutDTO = bigStorageCageDetailsService.temperingIsAll(); if (null != temperingLayoutDTO) { //鐜荤拑鍒伴綈 //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫 - List<BigStorageCageDetails> bigStorageCageDetails = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() - .eq(BigStorageCageDetails::getTemperingLayoutId, temperingLayoutDTO.getTemperingLayoutId()) - .eq(BigStorageCageDetails::getEngineerId, temperingLayoutDTO.getEngineerId())); - List<TemperingGlassInfo> temperingGlassInfos = bigStorageCageDetails.stream().map(e -> { - TemperingGlassInfo info = new TemperingGlassInfo(); - BeanUtils.copyProperties(e, info); - return info; - }).collect(Collectors.toList()); + 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, temperingLayoutDTO.getTemperingLayoutId()) + .eq(GlassInfo::getEngineerId, temperingLayoutDTO.getEngineerId())); temperingGlassInfoService.saveBatch(temperingGlassInfos); - - //澶ц溅鍓╀綑灏哄 - Integer remainWidth = Const.BIG_STORAGE_WIDTH; - for (TemperingGlassInfo e : temperingGlassInfoList) { - if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { - break; - } - remainWidth = remainWidth - 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); + computeOutGlassInfo(temperingGlassInfoList); return; } //鏈埌榻� 鎵ц鍐呴儴璋冨害浠诲姟 @@ -222,12 +216,13 @@ for (int i = 0; i < slotSequenceList.size() - 1; i++) { SlotSequenceDTO first = slotSequenceList.get(i); SlotSequenceDTO second = slotSequenceList.get(i + 1); + int slotWidth = carWidth - first.getRemainWidth() - galssGap; if (first.getMinSequence() == second.getMaxSequence() + 1 - && second.getRemainWidth() > Const.BIG_STORAGE_WIDTH - first.getRemainWidth() - Const.BIG_STORAGE_GAP) { + && second.getRemainWidth() > slotWidth) { 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(), - 0, 0, 1)).collect(Collectors.toList()); + slotWidth, 0, 0, 1)).collect(Collectors.toList()); bigStorageCageOutTaskService.saveBatch(outTasks); return; } @@ -247,25 +242,41 @@ .orderByAsc(EdgGlassTaskInfo::getTime)); Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触"); //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害 - Map<String, Object> map = bigStorageCageFeedTaskService.getMap(new QueryWrapper<BigStorageCageFeedTask>() - .select("cast(" + Const.BIG_STORAGE_WIDTH + " - sum(width + " + Const.BIG_STORAGE_GAP + ") as INT) as remainWidth") - .eq("line", line).eq("task_state", Const.BIG_STORAGE_IN_UP)); - Integer remainWidth = null == map ? Const.BIG_STORAGE_WIDTH : Integer.parseInt(map.get("remainWidth") + ""); + BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line); + Integer remainWidth; + Integer glassCount; + if (0 == sitToUpRemainWidth.getGlassCount()) { + remainWidth = carWidth; + glassCount = 0; + } else { + remainWidth = sitToUpRemainWidth.getWidth(); + glassCount = sitToUpRemainWidth.getGlassCount(); + } //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; + if (glassCount <= 5) { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + return Boolean.FALSE; + } else { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + return Boolean.TRUE; + } } } else { 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); - return Boolean.FALSE; + if (remainWidth - widthFirst - galssGap >= widthSecond) { + if (glassCount <= carMaxSize - 1) { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + return Boolean.FALSE; + } else { + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + return Boolean.TRUE; + } } else { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthSecond); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); } } } @@ -279,7 +290,7 @@ 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.setTaskState(Const.BIG_STORAGE_IN_NEW); bigStorageCageFeedTask.setLine(line); bigStorageCageFeedTask.setTaskType(taskType); bigStorageCageFeedTask.setWidth(width); @@ -313,20 +324,12 @@ //1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級 List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine, line) - .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) + .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL) .orderByAsc(BigStorageCageFeedTask::getId)); //2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙 List<String> glassIds = taskList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList()); List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds)); - - List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); - List<BigStorageCageDetails> temperingList = computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.TRUE); - List<BigStorageCageDetails> noTemperingList = computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.FALSE); - bigStorageCageDetailsList.addAll(temperingList); - bigStorageCageDetailsList.addAll(noTemperingList); - //4銆佸湪璇︽儏琛ㄤ腑鍔犲叆杩涚墖鐜荤拑淇℃伅 - bigStorageCageDetailsService.saveBatch(bigStorageCageDetailsList); - return Boolean.TRUE; + return computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.TRUE) && computeIsTemperingTargetByLine(glassInfos, taskList, Boolean.FALSE); } /** @@ -336,22 +339,10 @@ * @param taskList 褰撴潯绾垮崸杞珛鎵�鏈変换鍔� * @param isTempering true 閽㈠寲 false 涓嶉挗鍖� */ - private List<BigStorageCageDetails> computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList, Boolean isTempering) { - Map<String, GlassInfo> glassInfoMap; - if (isTempering) { - glassInfoMap = glassInfos.stream().filter(e -> e.getTemperingLayoutId() != 0) - .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); - } else { - glassInfoMap = glassInfos.stream().filter(e -> e.getTemperingLayoutId() == 0) - .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); - } - - //璁剧疆涓存椂鍙橀噺鎺ュ彈鐗堝浘id锛岀増搴忋�佹牸瀛愬彿鍙婂墿浣欏搴� - Integer temperingLayoutIdTemp = 0; - Integer temperingFeedSequenceTemp = 0; - BigStorageDTO bigStorageDTO = new BigStorageDTO(); - - List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>(); + private boolean computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList, Boolean isTempering) { + //1銆佸皢鐜荤拑淇℃伅闆嗗悎杞负glassid涓簁ey鐨刴ap + Map<String, GlassInfo> glassInfoMap = glassInfos.stream() + .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p)); for (BigStorageCageFeedTask e : taskList) { GlassInfo info = glassInfoMap.get(e.getGlassId()); if (info == null) { @@ -359,26 +350,77 @@ } BigStorageCageDetails cageDetails = new BigStorageCageDetails(); BeanUtils.copyProperties(info, cageDetails); - if (temperingLayoutIdTemp.equals(info.getTemperingLayoutId()) - && temperingFeedSequenceTemp.equals(info.getTemperingFeedSequence() + 1) - && info.getWidth() <= bigStorageDTO.getWidth()) { - bigStorageDTO.setWidth(bigStorageDTO.getWidth() - info.getWidth().intValue() - Const.BIG_STORAGE_GAP); - } else { - bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info); - } - - cageDetails.setSlot(bigStorageDTO.getSlot()); - cageDetails.setState(Const.GLASS_STATE_IN); - + //2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭� + BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info); + //3銆佹洿鏂板ぇ鐞嗙墖绗艰〃鍓╀綑瀹藉害 + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth()) + .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot())); + //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛� 閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴� e.setTargetSlot(bigStorageDTO.getSlot()); e.setTaskType(Const.BIG_STORAGE_IN_RUN); - - temperingLayoutIdTemp = info.getTemperingLayoutId(); - temperingFeedSequenceTemp = info.getTemperingFeedSequence(); - //3銆佹洿鏂拌繘鐗囦换鍔¤〃 閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴� bigStorageCageFeedTaskService.updateById(e); - bigStorageCageDetailsList.add(cageDetails); + + //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛� + cageDetails.setSlot(bigStorageDTO.getSlot()); + cageDetails.setState(Const.GLASS_STATE_IN); + bigStorageCageDetailsService.save(cageDetails); } - return bigStorageCageDetailsList; + return Boolean.TRUE; + } + + private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list) { + //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 + List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); + //鎵撹溅鍓╀綑灏哄 + Integer remainWidth = carWidth; + for (T e : list) { + if (bigStorageCageOutTaskList.size() > carMaxSize || e.getWidth() > remainWidth) { + break; + } + remainWidth = remainWidth - e.getWidth().intValue() - galssGap; + bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.A09_OUT_TARGET_POSITION, + e.getWidth().intValue(), 0, 0, 1)); + } + Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟"); + log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size()); + bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); + log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds); + bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() + .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT) + .in(BigStorageCageDetails::getGlassId, glassIds)); + //鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄 + updateSlotRemain(list, glassIds); + return Boolean.TRUE; + } + + /** + * 鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄 + * + * @param list + * @param taskGlassIds + * @param <T> + */ + public <T extends BigStorageCageBaseInfo> void updateSlotRemain(List<T> list, List<String> taskGlassIds) { + //鑾峰彇闇�瑕佸嚭鍘伙紙鍖呮嫭寰呭嚭鍘荤殑锛夌殑鎵�鏈夌幓鐠冩牸瀛愬彿 + List<Integer> slotList = list.stream().map(T::getSlot).distinct().collect(Collectors.toList()); + //鑾峰彇寰呭嚭鍘荤殑鐜荤拑淇℃伅锛堢瓑涓嬭溅鍑哄幓鐨勭幓鐠冿級 + Map<Integer, Double> slotRemainMap = list.stream().filter(e -> !taskGlassIds.contains(e.getGlassId())) + .collect(Collectors.groupingBy(T::getSlot, Collectors.summingDouble(item -> item.getWidth() + galssGap))); + if (CollectionUtils.isNotEmpty(slotRemainMap)) { + //鎸夌収鏍煎瓙鍙锋洿鏂板墿浣欏昂瀵� + slotRemainMap.forEach((e, v) -> { + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth - v) + .eq(BigStorageCage::getSlot, e)); + }); + } + Set<Integer> remainSlotList = slotRemainMap.keySet(); + slotList.removeAll(remainSlotList); + if (CollectionUtils.isNotEmpty(slotList)) { + bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth) + .in(BigStorageCage::getSlot, slotList)); + } + + } } \ No newline at end of file diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java deleted file mode 100644 index 40878b5..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.mes.temperingglass.entity; - -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; - -/** - * <p> - * - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>") -@Data -@EqualsAndHashCode(callSuper = false) -public class TemperingGlassInfo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 閽㈠寲灏忕墖淇℃伅琛╥d - */ - @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2) - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - /** - * 鐜荤拑id - */ - @ApiModelProperty(value = "鐜荤拑id", position = 3) - private String glassId; - - /** - * 娴佺▼鍗� - */ - @ApiModelProperty(value = "娴佺▼鍗�", position = 4) - private String flowcardId; - - /** - * 娴佺▼鍗$幓鐠冪被鍨� - */ - @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5) - private Integer glassType; - - /** - * 瀹� - */ - @ApiModelProperty(value = "瀹�", position = 6) - private Double width; - - /** - * 楂� - */ - @ApiModelProperty(value = "楂�", position = 7) - private Double height; - - /** - * 鍘氬害 - */ - @ApiModelProperty(value = "鍘氬害", position = 8) - private Double thickness; - - /** - * 鑶滅郴 - */ - @ApiModelProperty(value = "鑶滅郴", position = 9) - private Integer filmsid; - - /** - * 閽㈠寲鏄惁鎺ュ彈妯斁 - */ - @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10) - private Integer ishorizontal; - - /** - * 閽㈠寲鐗堝浘id - */ - @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 11) - private Integer temperingLayoutId; - - /** - * 閽㈠寲鐗堝浘鐗囧簭 - */ - @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 12) - private Integer temperingFeedSequence; - - /** - * x鍧愭爣 - */ - @ApiModelProperty(value = "x鍧愭爣", position = 13) - private Integer xCoordinate; - - /** - * y鍧愭爣 - */ - @ApiModelProperty(value = "y鍧愭爣", position = 14) - private Integer yCoordinate; - - /** - * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級 - */ - @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15) - private Integer angle; - - /** - * 鐘舵�� - */ - @ApiModelProperty(value = "鐘舵��", position = 16) - private Integer state; - - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java deleted file mode 100644 index bb591f5..0000000 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mes.temperingglass.mapper; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.mes.temperingglass.entity.TemperingGlassInfo; - -/** - * <p> - * Mapper 鎺ュ彛 - * </p> - * - * @author zhoush - * @since 2024-03-27 - */ -@DS("salve_hangzhoumes") -public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> { - -} diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java index 5f1a325..ab5372d 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java @@ -1,6 +1,6 @@ package com.mes.temperingglass.service; -import com.baomidou.mybatisplus.extension.service.IService; +import com.github.yulichang.base.MPJBaseService; import com.mes.temperingglass.entity.TemperingGlassInfo; import java.util.List; @@ -13,9 +13,11 @@ * @author zhoush * @since 2024-03-27 */ -public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> { +public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> { public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList); + boolean saveBatch(List<TemperingGlassInfo> list); + void schedulingTask(); } diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java index 5f802b5..82d885e 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -11,7 +10,6 @@ import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; -import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; import com.mes.temperingglass.service.TemperingGlassInfoService; @@ -53,23 +51,28 @@ temperingGlassInfo.setState(-1); baseMapper.updateById(temperingGlassInfo); log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); - BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask(); + BigStorageCageOutTask bigStorageCageOutTask = new BigStorageCageOutTask(); bigStorageCageOutTask.setId(temperingGlassInfo.getId()); - }else{ + } else { break; } } } + @Override + public boolean saveBatch(List<TemperingGlassInfo> list) { + return baseMapper.saveBatch(list); + } + //璋冨害 @Override - public void schedulingTask(){ + public void schedulingTask() { QueryWrapper<BigStorageCageDetails> detailsWrapper1 = Wrappers.query(); detailsWrapper1.select("tempering_layout_id", "count(distinct slot)") .groupBy("tempering_layout_id"); List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(detailsWrapper1); - boolean key=false; + boolean key = false; for (Map<String, Object> row : temperingLayoutIdList) { for (Map.Entry<String, Object> entry : row.entrySet()) { String temperingId = entry.getKey(); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json index c5f3c41..1b538cf 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json @@ -1,6 +1,6 @@ { "plcAddressBegin":"DB14.0", - "plcAddressLenght":"72", + "plcAddressLenght":"84", "dataType":"word", "parameteInfor":[ { @@ -74,43 +74,15 @@ "unit":"" }, { - "codeId": "D02Go", + "codeId": "D02SitState", "addressIndex":"80", "addressLenght":"2", "ratio":"1", "unit":"" }, { - "codeId": "D05Go", + "codeId": "D05SitState", "addressIndex":"82", - "addressLenght":"2", - "ratio":"1", - "unit":"" - }, - { - "codeId": "D02Route", - "addressIndex":"84", - "addressLenght":"2", - "ratio":"1", - "unit":"" - }, - { - "codeId": "D05Route", - "addressIndex":"86", - "addressLenght":"2", - "ratio":"1", - "unit":"" - }, - { - "codeId": "F02Route", - "addressIndex":"88", - "addressLenght":"2", - "ratio":"1", - "unit":"" - }, - { - "codeId": "F07Route", - "addressIndex":"890", "addressLenght":"2", "ratio":"1", "unit":"" diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml index 2a8d5ea..7f3890a 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml @@ -14,4 +14,7 @@ sequence: order: false minCount: 5 - slotWidth: 5000 \ No newline at end of file + carWidth: 5000 #澶ц溅瀹藉害 + slotWidth: 5000 #澶ц溅瀹藉害 + carMaxSize: 6 #澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲� + galssGap: 20 #鐜荤拑闂磋窛 \ No newline at end of file diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml index c016951..f104fc3 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml @@ -19,30 +19,28 @@ </resultMap> <select id="temperingIsAll" resultMap="temperingLayoutDTO"> - SELECT T.ENGINEER_ID, - T.TEMPERING_LAYOUT_ID, - COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT - FROM - GLASS_INFO T - LEFT JOIN DAMAGE T1 - ON T.ENGINEER_ID = T1.ENGINEER_ID - AND T.GLASS_ID = T1.GLASS_ID - LEFT JOIN BIG_STORAGE_CAGE_DETAILS T2 ON T.ENGINEER_ID = T2.ENGINEER_ID - AND T.GLASS_ID = T2.GLASS_ID - WHERE - T1.GLASS_ID IS NULL - AND T2.GLASS_ID IS NULL - AND ( T.ENGINEER_ID - , T.TEMPERING_LAYOUT_ID ) IN ( SELECT DISTINCT ENGINEER_ID - , TEMPERING_LAYOUT_ID FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE = 100 ) - GROUP BY - T.ENGINEER_ID, - T.TEMPERING_LAYOUT_ID - HAVING - COUNT = 0 - ORDER BY - T.TEMPERING_LAYOUT_ID - LIMIT 1 + SELECT T2.* + FROM ( + SELECT T.ENGINEER_ID, + T.TEMPERING_LAYOUT_ID, + COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT + FROM + GLASS_INFO T + LEFT JOIN DAMAGE T1 + ON T.ENGINEER_ID = T1.ENGINEER_ID + AND T.GLASS_ID = T1.GLASS_ID + WHERE + T1.GLASS_ID IS NULL + GROUP BY + T.ENGINEER_ID, + T.TEMPERING_LAYOUT_ID + ) T2 + INNER JOIN (SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(TEMPERING_FEED_SEQUENCE) AS COUNT + FROM BIG_STORAGE_CAGE_DETAILS + WHERE STATE = 100 + GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID + AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID + AND T2.COUNT = T3.COUNT LIMIT 1 </select> <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO"> diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml index 1ef2f3f..072185f 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml @@ -2,7 +2,12 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper"> - <select id="querySitToUpGlass" resultType="java.lang.String"> + <resultMap id="bigStorageDTO" type="com.mes.bigstorage.entity.BigStorageDTO"> + <result column="REMAIN_WIDTH" property="width"/> + <result column="GLASS_COUNT" property="glassCount"/> + </resultMap> + + <select id="querySitToUpGlass" resultType="java.lang.Integer"> select t.line from ( select line, @@ -10,9 +15,17 @@ SUM(case task_state when 2 then 1 else 0 end) as real_count from big_storage_cage_feed_task where task_state in (1, 2) + and target_slot is null group by line ) t where t.total_count = t.real_count </select> + <select id="querySitToUpRemainWidth" resultMap="bigStorageDTO"> + SELECT cast(5000 - sum(width + 20) as INT) as REMAIN_WIDTH, + count(glass_id) as GLASS_COUNT + FROM big_storage_cage_feed_task + WHERE line = #{line} + AND task_state in (1, 2) + </select> </mapper> diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml new file mode 100644 index 0000000..338e5e1 --- /dev/null +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml @@ -0,0 +1,14 @@ +<?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.bigstoragetask.mapper.BigStorageCageOutTaskMapper"> + + <insert id="saveBatch"> + INSERT INTO big_storage_cage_out_task ( glass_id, start_slot, end_slot, train_number, serial_number, task_state + ) + values + <foreach collection="list" item="item" separator=","> + (#{item.glassId}, #{item.startSlot}, #{item.endSlot}, #{item.trainNumber}, #{item.serialNumber}, + #{item.taskState}) + </foreach> + </insert> +</mapper> 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 bf29067..94991b1 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java @@ -38,27 +38,39 @@ } @Test + public void plcToHomeEdgOutTask() { + plcStorageCageTask.plcToHomeEdgOutTask(); + } + + @Test + public void plcToHomeEdgFreeCarTask() { + plcStorageCageTask.plcToHomeEdgFreeCarTask(); + } + + @Test + public void plcStorageCageTask() { + plcStorageCageTask.plcToHomeEdgScan(); + + } + + @Test public void computeTargetByLine() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.computeTargetByLine(2001); } @Test public void judgeGlassTypeStatus() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION); } @Test public void getStartLine() { -// log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}",bigStorageCageService.querybigStorageCageDetail()); Integer startLine = plcStorageCageTask.getStartLine(); log.info("---------{}", startLine); } @Test public void selectBigStorageCageUsage() { -// bigStorageCageService.querybigStorageCageDetail(1); log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}", bigStorageCageService.selectBigStorageCageUsage()); } diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java index ada2a7b..e7bdf13 100644 --- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java +++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -67,7 +66,7 @@ List<OptimizeUpPattenUsage> upPattenUsageList = null; if (engineeringId != null) { upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>() - .select("t.project_no,t.glass_type,b.realwidth as width,b.realheight as height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id") + .select("t.project_no,t.glass_type,b.o_width as width,b.o_height as height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id") .leftJoin("optimize_layout b on t.project_no=b.project_no") .eq("b.project_no", engineeringId)); } -- Gitblit v1.8.0