ZengTao
2024-06-05 16c79495b4a88229042b4087e791ff86471bb702
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -8,9 +8,11 @@
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.common.S7object;
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.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -18,6 +20,9 @@
import javax.annotation.Resource;
import java.util.List;
/**
 * @author SNG-015
 */
@Component
@Slf4j
public class PlcStorageCageTask {
@@ -33,11 +38,17 @@
    @Resource
    private BigStorageCageOutTaskService bigStorageCageOutTaskService;
    @Resource
    private TaskCacheService taskCacheService;
    private EdgGlassTaskInfoService edgGlassTaskInfoService;
    @Resource
    private TemperingGlassInfoService temperingGlassInfoService;
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    public static boolean bigStorageCageFullAlarm = false;
    private int line1Time=0;
    private int line2Time=0;
    /**
     * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成)
     * fixedDelay : 上一个调用结束后再次调用的延时
@@ -56,16 +67,18 @@
                plcFeedReqLine = "2";
                plcFeedGlassid=plcParameterObject.getPlcParameter("D04ID1").getValue();
            }
            line1Time+=1;
            line2Time+=1;
            if (!("0".equals(plcFeedReqLine))) {
                log.info("1、Plc进片请求时");
                BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
                GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid);
                log.info("2、根据玻璃id获取玻璃信息" + glassInfo);
                if(bigStorageCageDetailsService.selectGetBoard(glassInfo,plcFeedReqLine)){
                if(bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine)>=0){
                    BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
                    if (slotInfo != null) {
                        int taskType = taskCacheService.judgeTasktype();
                        int taskType = edgGlassTaskInfoService.judgeTasktype(plcFeedReqLine);
                        log.info("3、查询任务表判断当前任务类型为上车等到还是上车启动" + taskType);
                        bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType);
                        log.info("4、添加任务到任务表");
@@ -94,17 +107,39 @@
                    bigStorageCageFeedTaskService.removeById(bigStorageCageFeedTask);
                    log.info("7、删除已经完成的进片任务");
                }
                //启动阈值
                if(line1Time>=300){
                    if("0".equals(plcParameterObject.getPlcParameter("D05Go").getValue())){
                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1);
                    }
                }
                if(line2Time>=300){
                    if("0".equals(plcParameterObject.getPlcParameter("D02Go").getValue())){
                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1);
                    }
                }
            }
            //查询出片表是否有任务未完成的任务
            List<BigStorageCageOutTask> bigStorageCageOutTask=bigStorageCageOutTaskService.querybigStorageCageOutTask(0);
            if(bigStorageCageOutTask.size()==0){
                bigStorageCageService.outGlass();
                boolean result=bigStorageCageService.outGlass();
                log.info("8、没有未完成任务时调用出片接口");
                if (result==false){
                    temperingGlassInfoService.schedulingTask();
                }
            }
            bigStorageCageOutTaskService.updateOutTask();
            log.info("9、根据任务表状态修改钢化小片表任务状态");
            //来不及送时直接走
            String line=Integer.toString(edgGlassTaskInfoService.startTask());
            if(!(line.equals(plcFeedReqLine))){
                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1);
            }else{
                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1);
            }
        } catch (Exception e) {