zhoushihao
2024-06-12 644cec71acf678cbfb0a6075d2466063eb9bb1ec
1、大理片笼大车空闲扫描
2、配置文件新增常州
3、删除无用压缩包
2 文件已复制
15个文件已修改
3 文件已重命名
2个文件已添加
3个文件已删除
417 ■■■■ 已修改文件
hangzhoumesParent.zip 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent.zip
Binary files differ
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -56,4 +56,49 @@
    public static final Integer EDG_GLASS_START = 1;
    public static final Integer EDG_GLASS_SUCCESS = 2;
    /**
     * 磨边任务玻璃状态
     * 1单机自动状态
     * 2联机自动状态
     * 3手动状态
     */
    public static final Integer BIG_STORAGE_STAND_ALONE = 1;
    public static final Integer BIG_STORAGE_ONLINE = 2;
    public static final Integer BIG_STORAGE_MT = 3;
    /**
     * 大理片笼请求
     * 0 大理片笼无请求
     * 1 大理片笼进片请求
     */
    public static final Integer BIG_STORAGE_REQUEST = 0;
    public static final Integer BIG_STORAGE_REQUEST_IN = 1;
    /**
     * 卧转立进片请求
     * 1 任务生成
     * 2 卧转立进片完成
     * 3 大车进片完成
     * 4 大理片笼进片完成
     */
    public static final Integer BIG_STORAGE_IN_NEW = 1;
    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;
    /**
     * 卧转立出片请求
     * 1 任务生成
     * 2 玻璃进大车完成
     * 3 大车出片完成
     */
    public static final Integer BIG_STORAGE_OUT_NEW = 1;
    public static final Integer BIG_STORAGE_OUT_CAR = 2;
    public static final Integer BIG_STORAGE_OUT_SUCCESS = 3;
    /**
     * 大理片笼宽度 及 玻璃间距
     */
    public static final Integer BIG_STORAGE_WIDTH = 5000;
    public static final Integer BIG_STORAGE_GAP = 20;
}
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml
copy from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml copy to hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml
File was copied from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml
@@ -5,12 +5,17 @@
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        hangzhoumes:
          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        pp:
          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
          username: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        salve_hangzhoumes:
          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
          username: sa
          password: beibo.123/
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
@@ -18,6 +23,8 @@
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: cacheGlass
  redis:
    database: 0
    host: 127.0.0.1
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml
@@ -4,33 +4,18 @@
      primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
#        hangzhoumes:
#          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
#          username: root
#          password: beibo.123/
#          driver-class-name: com.mysql.cj.jdbc.Driver
#        pp:
#          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
#          username: root
#          password: beibo.123/
#          driver-class-name: com.mysql.cj.jdbc.Driver
#        salve_hangzhoumes:
#          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
#          username: sa
#          password: beibo.123/
#          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        hangzhoumes:
          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        pp:
          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
          username: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        salve_hangzhoumes:
          url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
          username: sa
          password: beibo.123/
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-loc.yml
File was deleted
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: dev
    active: cz
  application:
    name: cacheGlass
mybatis-plus:
@@ -17,3 +17,4 @@
  secondLength: 2500
  sequence:
    order: false
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java
New file
@@ -0,0 +1,14 @@
package com.mes.bigstorage.entity;
import lombok.Data;
/**
 * @Author : zhoush
 * @Date: 2024/6/11 16:45
 * @Description:
 */
@Data
public class BigStorageDTO {
    private Integer slot;
    private Integer width;
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
@@ -30,4 +32,11 @@
    void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
    void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
    /**
     * 按照版图信息获取进片笼子信息
     *
     * @param glassInfo
     */
    BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo);
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -1,9 +1,8 @@
package com.mes.bigstorage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
@@ -17,7 +16,7 @@
 * @author zhoush
 * @since 2024-03-27
 */
public interface BigStorageCageService extends IService<BigStorageCage> {
public interface BigStorageCageService extends MPJBaseService<BigStorageCage> {
    void updateRemainWidth(int slot);
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -1,8 +1,12 @@
package com.mes.bigstorage.service.impl;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
@@ -10,6 +14,7 @@
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
import com.mes.common.config.Const;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
import com.mes.temperingglass.entity.TemperingGlassInfo;
@@ -206,4 +211,46 @@
            temperingGlassInfoMapper.insert(temperingGlassInfo1);
        }
    }
    @Override
    public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
//        MPJLambdaWrapper<BigStorageDTO> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
//                .selectAll(BigStorageDTO.class)
//                .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
//                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
//                .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1)
//                .last("limit 1");
        BigStorageDTO bigStorageDTO = null;
        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
                .selectAll(BigStorageDTO.class)
                .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
                .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1)
                .last("limit 1");
        bigStorageDTO = bigStorageCageService.selectJoinOne(BigStorageDTO.class, wrapper);
        if (null != bigStorageDTO) {
            return bigStorageDTO;
        }
        BigStorageCage bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
                .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH)
                .inSql(BigStorageCage::getDeviceId,
                        "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId())
                .last("limit 1"));
        if (null != bigStorageCage) {
            bigStorageDTO = new BigStorageDTO();
            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
            bigStorageDTO.setSlot(bigStorageCage.getSlot());
            return bigStorageDTO;
        }
        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
                .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH)
                .last("limit 1"));
        Assert.isTrue(null == bigStorageCage, "没有空余的笼子存放玻璃");
        bigStorageDTO = new BigStorageDTO();
        bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
        bigStorageDTO.setSlot(bigStorageCage.getSlot());
        return bigStorageDTO;
    }
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java
@@ -1,8 +1,10 @@
package com.mes.bigstoragetask.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import java.util.List;
/**
 * <p>
@@ -15,4 +17,5 @@
@DS("salve_hangzhoumes")
public interface BigStorageCageFeedTaskMapper extends BaseMapper<BigStorageCageFeedTask> {
    List<String> querySitToUpGlass();
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java
@@ -1,9 +1,8 @@
package com.mes.bigstoragetask.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import java.util.List;
@@ -20,4 +19,9 @@
    void addFeedTask(BigStorageCageDetails slotInfo, Integer plcFeedReqLine, int taskType);
    List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState);
    /**
     * 查询卧转立玻璃是否进片完成
     */
    List<String> querySitToUpGlass();
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java
@@ -1,16 +1,13 @@
package com.mes.bigstoragetask.service.impl;
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.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.bytebuddy.matcher.FilterableList;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@@ -41,4 +38,9 @@
        getFeedTaskWrapper.eq(BigStorageCageFeedTask::getTaskState,taskState);
        return baseMapper.selectList(getFeedTaskWrapper);
    }
    @Override
    public List<String> querySitToUpGlass() {
        return baseMapper.querySitToUpGlass();
    }
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -1,5 +1,9 @@
package com.mes.job;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.BigStorageDTO;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
@@ -7,18 +11,24 @@
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.device.PlcParameterObject;
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.edgstoragetask.service.TaskCacheService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
 * @author SNG-015
@@ -42,7 +52,8 @@
    @Resource
    private TemperingGlassInfoService temperingGlassInfoService;
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Value("${mes.sequence.order}")
    private boolean sequenceOrder;
    public static boolean bigStorageCageFullAlarm = false;
@@ -55,6 +66,8 @@
     */
    @Scheduled(fixedDelay = 5000)
    public void plcStorageCageTask() throws InterruptedException {
        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
        try {
            String plcFeedGlassid = "";
@@ -147,4 +160,116 @@
        }
    }
    @Scheduled(fixedDelay = 5000)
    public void plcToHomeEdgFreeCarTask() {
        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
        String freeCar = plcParameterObject.getPlcParameter("freeCar").getValue();
        if ("1".equals(freeCar)) {
            log.info("大车非空闲");
            return;
        }
        String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue();
        String d01ID1 = plcParameterObject.getPlcParameter("D01ID1").getValue();
//        0:不干预 ; 1:条件满足情况下立即发车
        String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue();
        String d04ID1 = plcParameterObject.getPlcParameter("D04ID1").getValue();
        log.info("1、获取到的请求字d01为:{},获取到的扫描ID为:{};获取到的请求字d04为:{},获取到的扫描ID为:{};",
                d01Request, d01ID1, d04Request, d04ID1);
        //两条线都有进卧转立任务,直接结束
        if (Const.BIG_STORAGE_REQUEST_IN.equals(d01Request)
                && Const.BIG_STORAGE_REQUEST_IN.equals(d04Request)
                && StringUtils.isNotBlank(d01ID1)
                && StringUtils.isNotBlank(d04ID1)) {
            log.info("两条线都存在进片任务,结束任务");
            return;
        }
        //获取两条线卧转立是否有玻璃,且任务状态都为2
        List<String> lineList = bigStorageCageFeedTaskService.querySitToUpGlass();
        if (CollectionUtils.isEmpty(lineList)) {
            log.info("两条线卧转立为空或者有进片任务未完成,结束任务");
            return;
        }
//        0:不干预 ; 1:条件满足情况下立即发车
        String d02GoAdress = plcParameterObject.getPlcParameter("D02Go").getAddress();
        //        0:不干预 ; 1:条件满足情况下立即发车
        String d05GoAdress = plcParameterObject.getPlcParameter("D05Go").getAddress();
        String line1 = lineList.get(0);
        String flagLine = line1.equals(Const.A09_OUT_TARGET_POSITION) ? d01ID1 : d04ID1;
        if (lineList.size() == 1) {
            //发送
            if (StringUtils.isNotBlank(flagLine)) {
                return;
            }
            //计算任务表进片格子 发送进片任务
            computeTargetByLine(Integer.parseInt(flagLine), d02GoAdress, d05GoAdress);
        }
        if (StringUtils.isBlank(d01ID1) && StringUtils.isBlank(d04ID1)) {
            //比较最早一片任务的版图id及版序 求出卧转立的线路
            Integer line = getStartLine();
            //计算任务表进片格子 发送进片任务
            computeTargetByLine(line, d02GoAdress, d05GoAdress);
            return;
        }
        int outLine = StringUtils.isBlank(d01ID1) ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
        //计算任务表进片格子 发送进片任务
        computeTargetByLine(outLine, d02GoAdress, d05GoAdress);
    }
    /**
     * 获取需要启动的线路:两条线都可启动 获取第一片玻璃版图id最小 版序最大的线路
     *
     * @return
     */
    private Integer getStartLine() {
        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
                .inSql(BigStorageCageFeedTask::getId, "select min(id) from big_storage_cage_feed_task where task_state = 2 group by line"));
        Assert.isTrue(CollectionUtils.isEmpty(taskList), "卧转立两条线都没有玻璃进片任务");
        Map<String, Integer> taskMap = taskList.stream().collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId,
                BigStorageCageFeedTask::getLine));
        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
                .in(GlassInfo::getGlassId, taskMap.keySet())
                .orderByAsc(GlassInfo::getTemperingLayoutId)
                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
                .last("limit 1"));
        return taskMap.get(glassInfo.getGlassId());
    }
    /**
     * 计算任务表进片线路的目标格子,并启动任务
     */
    private boolean computeTargetByLine(Integer line, String d02GoAdress, String d05GoAdress) {
        //1、获取任务表中的所有玻璃(指定线路且已经进卧转立完成)
        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
                .eq(BigStorageCageFeedTask::getLine, line)
                .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
                .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));
        AtomicReference<Integer> temperingLayoutIdTemp = new AtomicReference<>(0);
        AtomicReference<Integer> temperingFeedSequenceTemp = new AtomicReference<>(0);
        AtomicReference<BigStorageDTO> bigStorageDTO = new AtomicReference<>(new BigStorageDTO());
        Map<String, GlassInfo> glassInfoMap = glassInfos.stream().collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
        taskList.stream().forEach(e -> {
            //按照版图信息获取进片笼子格子号
            GlassInfo info = glassInfoMap.get(e.getGlassId());
            if (temperingLayoutIdTemp.equals(info.getTemperingLayoutId())
                    && temperingFeedSequenceTemp.equals(info.getTemperingFeedSequence() + 1)
                    && info.getWidth() <= bigStorageDTO.get().getWidth()) {
                bigStorageDTO.get().setWidth(bigStorageDTO.get().getWidth() - info.getWidth().intValue() - Const.BIG_STORAGE_GAP);
            } else {
                bigStorageDTO.set(bigStorageCageDetailsService.queryTargetSlotByTempering(info));
            }
            e.setTragetSlot(bigStorageDTO.get().getSlot());
            temperingLayoutIdTemp.set(info.getTemperingLayoutId());
            temperingFeedSequenceTemp.set(info.getTemperingFeedSequence());
        });
        //3、更新进片任务表
        boolean taskFlag = bigStorageCageFeedTaskService.updateBatchById(taskList);
        if (taskFlag) {
            String lineAddress = line.equals(Const.A09_OUT_TARGET_POSITION) ? d02GoAdress : d05GoAdress;
            S7object.getinstance().plccontrol.writeWord(lineAddress, (short) 1);
        }
        return taskFlag;
    }
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml
copy from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml copy to hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml
File was copied from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml
@@ -5,12 +5,12 @@
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        hangzhoumes:
          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        salve_hangzhoumes:
          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
          username: sa
          password: beibo.123/
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: prod
    active: cz
  application:
    name: cacheVerticalGlass
mybatis-plus:
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
New file
@@ -0,0 +1,18 @@
<?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.BigStorageCageFeedTaskMapper">
    <select id="querySitToUpGlass" resultType="java.lang.String">
        select t.line
        from (
                 select line,
                        COUNT(glass_id)                               as total_count,
                        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)
                 group by line
             ) t
        where t.total_count = t.real_count
    </select>
</mapper>
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml
File was renamed from hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-loc.yml
@@ -5,14 +5,14 @@
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        hangzhoumes:
          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        pp:
          url: jdbc:mysql://192.168.56.10:3306/pp?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
  cloud:
    nacos:
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -2,10 +2,10 @@
  port: 8083
spring:
  profiles:
    active: prod
    active: cz
  application:
    name: loadGlass
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
File was renamed from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
@@ -5,13 +5,13 @@
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        hangzhoumes:
          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        salve_hangzhoumes:
            url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
            username: sa
            password: beibo.123/
            driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -2,7 +2,7 @@
  port: 8084
spring:
  profiles:
    active: prod
    active: cz
  application:
    name: temperingGlass
mybatis-plus:
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
File was renamed from hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-loc.yml
@@ -5,12 +5,12 @@
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
      datasource:
        hangzhoumes:
          url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8
          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
          username: root
          password: root
          password: beibo.123/
          driver-class-name: com.mysql.cj.jdbc.Driver
        salve_hangzhoumes:
          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
          username: sa
          password: beibo.123/
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-loc.yml
File was deleted
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
spring:
  profiles:
    active: prod
    active: cz
  application:
    name: unLoadGlass