zhoushihao
2025-10-15 9d961999ca32c97c31174179dd7bc763c245d7f6
1、 最终方案:新增db地址,mes将玻璃信息写入地址
2个文件已修改
45 ■■■■ 已修改文件
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassQueueInfoMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -174,6 +174,12 @@
            log.info("当前大车无进片玻璃,结束进片任务");
            return;
        }
        //玻璃状态存在卧转立上结束
        List<BigStorageCageTask> unTaskList = inTaskList.stream().filter(e -> e.getTaskState() < 1).collect(Collectors.toList());
        if (CollectionUtil.isNotEmpty(unTaskList)) {
            log.info("存在未上车的玻璃信息,玻璃:{}", unTaskList);
            return;
        }
        log.info("获取任务的玻璃id:{}", glassIdList);
        Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
        for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
@@ -856,11 +862,37 @@
    @Scheduled(fixedDelay = 1000)
    public void inCarTask() {
        //读取协议数据
        S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
        //汇报字为1 启动字为1是  清除所有任务信息
        //启动字和汇报字是否均为0
        S7DataZKDLPOne s7DataZKDLPOne = s7SerializerZKDLPOne.read(S7DataZKDLPOne.class);
        log.info("进片任务读取s7DataZKDLPOne:{}", s7DataZKDLPOne);
        Boolean inkageEntity = s7DataZKDLPOne.getMesControl();
        if (!inkageEntity) {
            log.info("当前为非联机状态,结束进片任务");
            return;
        }
        if (StringUtils.isNotBlank(s7DataZKDLPOne.getId1())) {
            //汇报字为1 启动字为1是  清除所有任务信息
            if (s7DataZKDLPOne.getId1().equals(s7DataZKDLPOne.getId1())) {
                //todo:清空任务
                s7DataZKDLPOne.setFrom1(0);
                s7DataZKDLPOne.getId1();
            }
            log.info("存在任务,结束");
            return;
        }
        Integer requestEntity = s7DataZKDLPOne.getRequestMes();
        if (1 != requestEntity) {
            log.info("当前未收到进片请求,结束进片任务");
            return;
        }
        //有请求信号
        List<String> glassIdList = hollowGlassQueueInfoService.queryNeedInCarGlass();
        if (CollectionUtil.isEmpty(glassIdList)) {
            return;
        }
        int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
                .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT));
        if (count > 0) {
            return;
        }
        List<HollowBigStorageCageDetails> list = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
@@ -870,7 +902,11 @@
        if (CollectionUtil.isEmpty(list)) {
            return;
        }
        HollowBigStorageCageDetails details = list.get(0);
        //todo:生成进进片大车任务
        hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                .set(HollowBigStorageCageDetails::getState, Const.RAW_GLASS_STATE_OUT)
                .eq(HollowBigStorageCageDetails::getGlassId, details.getGlassId()));
    }
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassQueueInfoMapper.xml
@@ -9,7 +9,7 @@
                   LEAST(width, height)                                             AS height,
                   relation_id,
                   ROW_NUMBER() OVER ( PARTITION BY cell ORDER BY hollow_sequence ) AS rn
            FROM `hollow_glass_queue_info`
            FROM hollow_glass_queue_info
            WHERE state = - 1
        ),
             glass_id_temp AS (SELECT * FROM queue_temp WHERE rn = 1),
@@ -19,6 +19,5 @@
                           WHERE t1.state = 1)
        SELECT glass_id
        FROM task_temp
        WHERE height > 2500
    </select>
</mapper>