ZengTao
2025-09-11 924ce82faeec6d896fcdc360b279215e84b69fb9
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -20,8 +20,11 @@
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.edgstoragecage.service.EdgStorageCageService;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.mapper.EngineeringMapper;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.largenscreen.entity.PieChartVO;
import com.mes.taskcache.entity.TaskCache;
import com.mes.taskcache.service.TaskCacheService;
import com.mes.tools.WebSocketServer;
@@ -64,6 +67,9 @@
    WebSocketServer webServerService;
    @Autowired
    DamageService damageService;
    @Autowired
    EngineeringMapper engineeringMapper;
    @Value("${mes.threshold}")
    private int threshold;
@@ -121,11 +127,11 @@
        }
//        taskRequestTypeValue = "2";
//        out08Glassstate = "1";
//        out08Glassstate = "0";
//        out10Glassstate = "1";
//        currentSlot = "1";
//        confirmationWrodValue = "0";
//        glassIdeValue = "P25021704|75|12";
//        glassIdeValue = "";
        log.info("1、获取到的请求字为:{},获取到的扫描ID为:{},获取到的确认字为:{},获取到的出片状态分别为:A09:{}、A10:{},当前格子号为:{}",
                taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot);
@@ -147,6 +153,20 @@
        if (!result) {
            log.info("此玻璃id已经进过");
            return;
        }
        if (StringUtils.isNotBlank(glassIdeValue)) {
            GlassInfo glassInfo = glassInfoService.getOne(
                    new LambdaQueryWrapper<GlassInfo>()
                            .eq(GlassInfo::getGlassId, glassIdeValue)
            );
            Engineering engineering = engineeringMapper.selectOne(
                    new LambdaQueryWrapper<Engineering>()
                            .eq(Engineering::getEngineerId, glassInfo.getEngineerId())
            );
            if (engineering.getState() == 2) {
                log.info("此订单已禁止生产");
                return;
            }
        }
        if ("1".equals(taskRequestTypeValue) && result) {
            log.info("2、进片请求,且确认字为0,执行进片任务,扫码重复ID验证【有重复=false,无重复=true】:{}", result);
@@ -399,13 +419,18 @@
                    new LambdaQueryWrapper<GlassInfo>()
                            .eq(GlassInfo::getGlassId, glassId)
            );
            if(glassInfos!=null){
                if (Math.max(glassInfos.getWidth(), glassInfos.getHeight()) > Integer.parseInt(firstLength) && out08Glassstate == 1) {
                    endcell = Const.A09_OUT_TARGET_POSITION;
            if (glassInfos != null) {
                if (Math.max(glassInfos.getWidth(), glassInfos.getHeight()) > Integer.parseInt(firstLength)) {
                    if (out08Glassstate == 1) {
                        endcell = Const.A09_OUT_TARGET_POSITION;
                    } else {
                        log.info("当前玻璃只能走大线,但大线未空闲玻璃信息:{}", glassInfos);
                        return Boolean.FALSE;
                    }
                } else {
                    endcell = computerLineByState(out08Glassstate, out10Glassstate);
                }
            }else{
            } else {
                endcell = computerLineByState(out08Glassstate, out10Glassstate);
            }
            if (out08Glassstate == 1 && out10Glassstate == 1) {
@@ -925,18 +950,17 @@
        }
    }
    @Scheduled(fixedDelay = 500)
    @Scheduled(fixedDelay = 3000)
    public void CacheGlassTasks() {
        JSONObject jsonObject = new JSONObject();
        List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
        jsonObject.append("currentCutTerritory", currentCutTerritorys);
        //log.info("本次识别版图{},++++{}",engineerId,currentCutTerritorys);
        //卧室缓存笼内信息
        List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages();
        jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos);
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass");
        if (sendwServer != null) {
            JSONObject jsonObject = new JSONObject();
            List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
            jsonObject.append("currentCutTerritory", currentCutTerritorys);
            //log.info("本次识别版图{},++++{}",engineerId,currentCutTerritorys);
            //卧室缓存笼内信息
            List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages();
            jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos);
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
@@ -952,7 +976,7 @@
        }
    }
    @Scheduled(fixedDelay = 500)
    @Scheduled(fixedDelay = 3000)
    public void cacheGlassIsRun() {
        JSONObject jsonObject = new JSONObject();
        //正在进行的任务
@@ -970,7 +994,7 @@
        }
    }
    @Scheduled(fixedDelay = 500)
    @Scheduled(fixedDelay = 3000)
    public void CacheGlassTaskss() {
        JSONObject jsonObject = new JSONObject();
        //log.info("本次识别版图{},++++{}",engineerId,currentCutTerritorys);
@@ -994,4 +1018,27 @@
            }
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void largenScreen() {
        JSONObject jsonObject = new JSONObject();
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
        if (sendwServer != null) {
            List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart();
            jsonObject.append("pieChartVOS", pieChartVOS);
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("largenScreen is closed");
                }
            }
        }
    }
}