ZengTao
2025-03-28 f68d3c71819feb59e7a227a5d992b059b900916c
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -57,28 +57,28 @@
    @Autowired
    private RedisUtil redisUtil;
    @Scheduled(fixedDelay = 2000)
    @Scheduled(fixedDelay = 3000)
    public void sendDownWorkstations() {
        log.info("发送工位玻璃信息");
        JSONObject jsonObject = new JSONObject();
        List<DownWorkstation> data = downWorkstationService.list();
        List<DownGlassTask> downGlassTasks = downGlassTaskService.list(
                new LambdaQueryWrapper<DownGlassTask>()
                        .eq(DownGlassTask::getEndCell, 7)
                        .eq(DownGlassTask::getTaskType, 3)
                        .lt(DownGlassTask::getTaskStatus, 3)
        );
        DownWorkstation downWorkstation = new DownWorkstation();
        downWorkstation.setWorkstationId(7);
        downWorkstation.setEnableState(1);
        downWorkstation.setRacksNumber(downGlassTasks.size());
        downWorkstation.setTotalQuantity(downGlassTasks.size());
        data.add(downWorkstation);
        jsonObject.append("params", data);
        log.info(jsonObject.toString());
        JSONObject jsonObject = new JSONObject();
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
        if (sendwServer != null) {
            log.info("发送工位玻璃信息");
            List<DownWorkstation> data = downWorkstationService.list();
            List<DownGlassTask> downGlassTasks = downGlassTaskService.list(
                    new LambdaQueryWrapper<DownGlassTask>()
                            .eq(DownGlassTask::getEndCell, 7)
                            .eq(DownGlassTask::getTaskType, 3)
                            .lt(DownGlassTask::getTaskStatus, 3)
            );
            DownWorkstation downWorkstation = new DownWorkstation();
            downWorkstation.setWorkstationId(7);
            downWorkstation.setEnableState(1);
            downWorkstation.setRacksNumber(downGlassTasks.size());
            downWorkstation.setTotalQuantity(downGlassTasks.size());
            data.add(downWorkstation);
            jsonObject.append("params", data);
            log.info(jsonObject.toString());
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null && webserver.session.isOpen()) {
                    log.info("已发送");
@@ -88,15 +88,16 @@
        }
    }
    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 3000)
    public void sendGlassInfoData() {
        log.info("发送工位显示图信息1");
        JSONObject jsonObject2 = new JSONObject();
        List<Map<String, Object>> glassinfodata = downWorkstationService.getTotalGlassDimensionsByWorkstation(1, 3);
        jsonObject2.append("glassinfo", glassinfodata);
        log.info(jsonObject2.toString());
        ArrayList<WebSocketServer> sendwServer2 = WebSocketServer.sessionMap.get("unloadglass2");
        if (sendwServer2 != null) {
            log.info("发送工位显示图信息1");
            JSONObject jsonObject2 = new JSONObject();
            List<Map<String, Object>> glassinfodata = downWorkstationService.getTotalGlassDimensionsByWorkstation(1, 3);
            jsonObject2.append("glassinfo", glassinfodata);
            log.info(jsonObject2.toString());
            for (WebSocketServer webserver : sendwServer2) {
                if (webserver != null && webserver.session.isOpen()) {
                    webserver.sendMessage(jsonObject2.toString());
@@ -105,15 +106,14 @@
        }
    }
    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 3000)
    public void sendGlassInfoData2() {
        log.info("发送工位显示图信息2");
        JSONObject jsonObject3 = new JSONObject();
        List<Map<String, Object>> glassinfodata2 = downWorkstationService.getTotalGlassDimensionsByWorkstation(4, 6);
        jsonObject3.append("glassinfo2", glassinfodata2);
        log.info(jsonObject3.toString());
        ArrayList<WebSocketServer> sendwServer3 = WebSocketServer.sessionMap.get("unloadglass3");
        if (sendwServer3 != null) {
            log.info("发送工位显示图信息2");
            JSONObject jsonObject3 = new JSONObject();
            List<Map<String, Object>> glassinfodata2 = downWorkstationService.getTotalGlassDimensionsByWorkstation(4, 6);
            jsonObject3.append("glassinfo2", glassinfodata2);
            for (WebSocketServer webserver : sendwServer3) {
                if (webserver != null && webserver.session.isOpen()) {
                    webserver.sendMessage(jsonObject3.toString());
@@ -122,7 +122,7 @@
        }
    }
    @Scheduled(fixedDelay = 2000)
    @Scheduled(fixedDelay = 3000)
    public void sendDownStorageCages() {
        log.info("发送缓存玻璃信息");
        JSONObject jsonObject4 = new JSONObject();
@@ -139,56 +139,57 @@
        }
    }
    @Scheduled(fixedDelay = 2000)
    @Scheduled(fixedDelay = 3000)
    public void sendDownGlassInfo() {
        DownGlassInfoRequest request = redisUtil.getCacheObject("downGlassRequest");
        if (null == request) {
            request = new DownGlassInfoRequest();
        }
        if (request.getBeginDate() == null) {
            request.setBeginDate(DateUtil.getBeginDate());
            request.setEndDate(DateUtil.getEndDate());
        }
        log.info("发送当前正在执行工程已落架的玻璃信息");
        LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>()
                .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate())
                .eq(StringUtils.isNotBlank(request.getEngineerId()), DownGlassInfo::getEngineerId, request.getEngineerId());
        if (null == request.getWorkStationId() || 0 == request.getWorkStationId()) {
            wrapper.in(DownGlassInfo::getWorkStationId, Const.WORK_STATION_ALL);
        } else {
            wrapper.eq(DownGlassInfo::getWorkStationId, request.getWorkStationId());
        }
        List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(wrapper);
//        Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
        List<Object> engineerIdListTemp = downGlassInfoService.listObjs(new QueryWrapper<DownGlassInfo>().select("distinct engineer_id"));
        List<String> engineerIdList = engineerIdListTemp.stream().map(String::valueOf).collect(Collectors.toList());
        JSONObject jsonObject4 = new JSONObject();
        jsonObject4.append("downGlassInfos", downGlassInfos);
        jsonObject4.append("engineerIdList", engineerIdList);
        //打印开关
        boolean autoPrint = false;
        if (redisUtil.getCacheObject("autoPrint") == null) {
            redisUtil.setCacheObject("autoPrint", false);
        } else {
            autoPrint = redisUtil.getCacheObject("autoPrint");
        }
        jsonObject4.append("autoPrint", autoPrint);
        //人工下片位置最后一片
        DownGlassTask takeGlass = downGlassTaskService.getOne(
                new QueryWrapper<DownGlassTask>()
                        .select("Top 1 *")
                        .eq("end_cell", Const.G13_WORK_STATION)
                        .eq("task_type", 3)
                        .lt("task_status", Const.UNLOAD_GLASS_DOWN)
                        .orderByAsc("id")
        );
        if (takeGlass != null) {
            jsonObject4.append("takeGlass", takeGlass);
        }
        ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("unloadglass");
        if (sendwServer4 != null) {
            DownGlassInfoRequest request = redisUtil.getCacheObject("downGlassRequest");
            if (null == request) {
                request = new DownGlassInfoRequest();
            }
            if (request.getBeginDate() == null) {
                request.setBeginDate(DateUtil.getBeginDate());
                request.setEndDate(DateUtil.getEndDate());
            }
            log.info("发送当前正在执行工程已落架的玻璃信息");
            LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>()
                    .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate())
                    .eq(StringUtils.isNotBlank(request.getEngineerId()), DownGlassInfo::getEngineerId, request.getEngineerId());
            if (null == request.getWorkStationId() || 0 == request.getWorkStationId()) {
                wrapper.in(DownGlassInfo::getWorkStationId, Const.WORK_STATION_ALL);
            } else {
                wrapper.eq(DownGlassInfo::getWorkStationId, request.getWorkStationId());
            }
            List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(wrapper);
//        Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
            List<Object> engineerIdListTemp = downGlassInfoService.listObjs(new QueryWrapper<DownGlassInfo>().select("distinct engineer_id"));
            List<String> engineerIdList = engineerIdListTemp.stream().map(String::valueOf).collect(Collectors.toList());
            JSONObject jsonObject4 = new JSONObject();
            jsonObject4.append("downGlassInfos", downGlassInfos);
            jsonObject4.append("engineerIdList", engineerIdList);
            //打印开关
            boolean autoPrint = false;
            if (redisUtil.getCacheObject("autoPrint") == null) {
                redisUtil.setCacheObject("autoPrint", false);
            } else {
                autoPrint = redisUtil.getCacheObject("autoPrint");
            }
            jsonObject4.append("autoPrint", autoPrint);
            //人工下片位置最后一片
            DownGlassTask takeGlass = downGlassTaskService.getOne(
                    new QueryWrapper<DownGlassTask>()
                            .select("Top 1 *")
                            .eq("end_cell", Const.G13_WORK_STATION)
                            .eq("task_type", 3)
                            .lt("task_status", Const.UNLOAD_GLASS_DOWN)
                            .orderByAsc("id")
            );
            if (takeGlass != null) {
                jsonObject4.append("takeGlass", takeGlass);
            }
            for (WebSocketServer webserver : sendwServer4) {
                if (webserver != null && webserver.session.isOpen()) {
                    webserver.sendMessage(jsonObject4.toString());
@@ -199,14 +200,14 @@
    @Scheduled(fixedDelay = 1000)
    public void isRun() {
        JSONObject jsonObject = new JSONObject();
        //正在进行的任务
        List<DownWorkstation> downWorkstation = downWorkstationService.getoneDownWorkstations(1, 6);
        jsonObject.append("downWorkstation", downWorkstation);
        List<DownGlassTask> downGlassTask = downGlassTaskService.selectOutTaskCache();
        jsonObject.append("downGlassTask", downGlassTask);
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unLoadGlassIsRun");
        if (sendwServer != null) {
            JSONObject jsonObject = new JSONObject();
            //正在进行的任务
            List<DownWorkstation> downWorkstation = downWorkstationService.getoneDownWorkstations(1, 6);
            jsonObject.append("downWorkstation", downWorkstation);
            List<DownGlassTask> downGlassTask = downGlassTaskService.selectOutTaskCache();
            jsonObject.append("downGlassTask", downGlassTask);
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
@@ -222,8 +223,9 @@
        log.info("扫描任务已启动");
        while (true) {
            JSONObject jsonObject = new JSONObject();
            try (Socket socket = new Socket(scanIp, scanPort);
                 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
            try (Socket socket = new Socket(scanIp, scanPort)) {
                socket.setSoTimeout(1000);
                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                // 接收服务器响应
                log.info("等待扫码中......");
                String glassId = in.readLine();