zhoushihao
2024-04-18 29ea56cf0546726a83da815ee6721090311f5567
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java
@@ -1,24 +1,13 @@
package com.mes.component;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
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;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
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.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@Slf4j
public class PlcStorageCage extends Thread {
    @Autowired
@@ -26,66 +15,26 @@
    @Autowired
    private BigStorageCageDetailsService bigStorageCageDetailsService;
    @Autowired
    private TemperingGlassInfoService temperingGlassInfoService;
    @Autowired
    private GlassInfoService glassInfoService;
    @Autowired
    private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
    @Autowired
    private BigStorageCageOutTaskService bigStorageCageOutTaskService;
    @Autowired
    private TaskCacheService taskCacheService;
    @Override
    public void run() {
        while (this != null) {
            JSONObject jsonObject = new JSONObject();
            try {
                Thread.sleep(300);
                boolean bigStorageCageFullAlarm=false;
                String plcD01FeedReq = "0";
                String plcD04FeedReq = "0";
                Thread.sleep(500);
                String plcFeedReq = "0";
                String plcFeedGlassid = "111";
                String plcFeedReqLine="0";
                if("1".equals(plcD01FeedReq)){
                    plcFeedReqLine="1";
                }else {
                    //plc任务发送字0
                }
                if("1".equals(plcD04FeedReq)){
                plcFeedReqLine="2";
                }else {
                    //plc任务发送字0
                }
                if (!("0".equals(plcFeedReqLine))) {
                    log.info("1、Plc进片请求时");
                //Plc进片请求时
                if ("1".equals(plcFeedReq)) {
                    BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
                    //传入玻璃id
                    GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid);
                    log.info("2、根据玻璃id获取玻璃信息"+glassInfo);
                    BigStorageCageDetails SlotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
                    if (SlotInfo != null) {
                        int taskType=taskCacheService.judgeTasktype();
                        log.info("3、查询任务表判断当前任务类型为上车等到还是上车启动"+taskType);
                        bigStorageCageFeedTaskService.addFeedTask(SlotInfo,Integer.parseInt(plcFeedReqLine),taskType);
                        log.info("4、添加任务到任务表");
                        //plc任务发送字1
                        bigStorageCageFullAlarm=false;
                    }else{
                        //理片笼爆笼报警
                        bigStorageCageFullAlarm=true;
                    }
                }else{
                    List<BigStorageCageFeedTask> bigStorageCageFeedTaskList=bigStorageCageFeedTaskService.querybigStorageCageFeedTask(1);
                    log.info("5、查询任务表是否有已经完成的进片任务"+bigStorageCageFeedTaskList.size());
                    for (BigStorageCageFeedTask bigStorageCageFeedTask:bigStorageCageFeedTaskList
                         ) {
                        BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails();
                        bigStorageCageDetails.setId(bigStorageCageFeedTask.getId());
                        bigStorageCageDetails.setState(1);
                        bigStorageCageDetailsService.updateById(bigStorageCageDetails);
                        log.info("6、修改理片笼详情玻璃状态");
                        bigStorageCageFeedTaskService.removeById(bigStorageCageFeedTask);
                        log.info("7、删除已经完成的进片任务");
                    BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
                    if (slotInfo != null) {
                        //plc任务发送字
                    }
                }
@@ -93,20 +42,15 @@
                String plcOutReq = "0";
                boolean result = false;
                if ("1".equals(plcOutReq)) {
                    result=bigStorageCageService.outGlass();
                    log.info("8、出片请求时调用出片接口"+result);
                    //获取钢化小片表未出笼信息
                    if (result == true) {
                        //plc任务发送字1
                        //plc任务发送字
                    }
                }else{
                    bigStorageCageOutTaskService.updateOutTask();
                    //plc任务发送字0
                }
                //显示剩余空格子
                //报警信息
                jsonObject.append("bigStorageCageFullAlarm", bigStorageCageFullAlarm);
            } catch (Exception e) {
                e.printStackTrace();
            }