zhoushihao
2024-08-07 c946aad16d82e7c91c770be7dfc8ae1bb9102d7e
1、下片工位是否已落满
2、向plc发送警报信息
8个文件已修改
83 ■■■■■ 已修改文件
JsonFile/PlcdownGlass.json 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JsonFile/PlcdownGlass.json
@@ -1,6 +1,6 @@
{
    "plcAddressBegin": "DB11.0",
    "plcAddressLenght": "92",
    "plcAddressLenght": "94",
    "dataType": "word",
    "parameteInfor": [
@@ -138,6 +138,11 @@
            "codeId": "task_type",
            "addressIndex": "90",
            "addressLenght": "2"
        },
        {
            "codeId": "alarm_signal",
            "addressIndex": "92",
            "addressLenght": "2"
        }
    ]
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -4,6 +4,7 @@
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -15,7 +16,7 @@
    @Autowired
    DownGlassInfoService downGlassInfoService;
    @RequestMapping("/selectDownGlassInfo")
    @PostMapping("/selectDownGlassInfo")
    public Result<String> setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
        return Result.success(downGlassInfoService.setDownGlassInfoRequest(request));
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
import java.util.List;
@@ -50,5 +51,16 @@
     */
    boolean generateOutGlassTask(String glassId);
    /**
     * 设置架子定时任务查询条件
     *
     * @param request
     * @return
     */
    String setDownGlassInfoRequest(DownGlassInfoRequest request);
    /**
     * 查询架子上绑定流程卡的玻璃是否到齐
     */
    List<DownWorkstation> queryWorkStationIsFull();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,5 +1,6 @@
package com.mes.downglassinfo.service.impl;
import cn.smallbun.screw.core.util.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,14 +13,18 @@
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.job.DownLoadCacheGlassTask;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
@@ -29,6 +34,10 @@
    @Autowired
    DownStorageCageDetailsService downStorageCageDetailsService;
    @Autowired
    DownWorkstationService downWorkstationService;
    @Autowired
    RedisUtil redisUtil;
@@ -104,4 +113,28 @@
        }
        return "success";
    }
    @Override
    public List<DownWorkstation> queryWorkStationIsFull() {
        //查询可以落架的玻璃信息且已绑定流程卡的工位信息
        List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getEnableState, Const.SLOT_ON)
                .isNotNull(DownWorkstation::getFlowCardId).ne(DownWorkstation::getFlowCardId, ""));
        List<DownWorkstation> workstationFull = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(list)) {
            //都有玻璃的工位信息(包括绑定流程卡)
            List<Integer> workstationList = list.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
            //按照符合条件的工位获取未落架的流程卡玻璃,如果返回为空,则表明所有都已落架完成
            List<DownGlassInfoDTO> downGlassInfoDTOList = queryWorkStationIsIn(workstationList, Boolean.FALSE);
            //获取工位上的未满的流程卡及层数
            List<String> flowCardIdList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
            //可以落架的玻璃信息且已绑定流程卡的所有的工位 - 玻璃未满流程卡及层数的工位  =  已满工位
            workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
            //是否需要将已满的工位置为不可落架
            List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
            downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
                    .in(DownWorkstation::getWorkstationId, workstationIds));
        }
        return workstationFull;
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -120,6 +120,13 @@
        return Result.build(200, "更换成功", isSucess);
    }
    @ApiOperation("关闭工位已满警报")
    @PostMapping("/closeAlarmSignal")
    @ResponseBody
    public Result<String> closeAlarmSignal() {
        return Result.build(200, "更换成功", downWorkstationService.closeAlarmSignal());
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -77,4 +77,6 @@
     * @returnq 启用禁用
     */
    boolean updateDownWorkstationstate(DownWorkstation downWorkstation);
    String closeAlarmSignal();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -4,8 +4,10 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.query.MPJQueryWrapper;
import com.mes.common.S7object;
import com.mes.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
import com.mes.downglassinfo.service.DownGlassInfoService;
@@ -209,5 +211,12 @@
        }
    }
    @Override
    public String closeAlarmSignal() {
        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("alarm_signal").getAddress(), 0);
        return "success";
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -126,6 +126,16 @@
        }
    }
    @Scheduled(fixedDelay = 300)
    public void plcShelfFull() {
        List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull();
        if (CollectionUtils.isNotEmpty(list)) {
            S7control s7control = S7object.getinstance().plccontrol;
            PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
            s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 1);
        }
    }
    public void inTo(String glassId, String requestWord, String currentSlot) {
        log.info("1、按照玻璃id:{}获取玻璃小片信息,当前格子为:{}", glassId, currentSlot);
        //添加进片任务  查找空格