zhoushihao
2024-07-24 c1b6a6157b8cd13192f9a9f5a819150504d08701
Merge remote-tracking branch 'origin/master'

# Conflicts:
# hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
5个文件已修改
72 ■■■■■ 已修改文件
UI-Project/src/utils/WebSocketService.js 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/WebSocketService.js
@@ -1,7 +1,7 @@
// WebSocketService.js
let socket = null;
let messages = '';
export const initializeWebSocket = (socketUrl, messageHandler) => {
    if (typeof WebSocket === "undefined") {
      console.log("Your browser does not support WebSocket");
@@ -18,13 +18,24 @@
      if (!msg.data) {
        return;
      }
      const obj = JSON.parse(msg.data);
      messages += msg.data;
      const isLastChunk = msg.data.endsWith('<END>');
      //是否为最后一块消息
      if(isLastChunk) {
        messages= messages.replace('<END>', '');
        const obj = JSON.parse(messages);
      // 调用消息处理函数,将数据传递给 Vue 组件
      if (messageHandler) {
        messageHandler(obj);
      }
        messages='';
      }
    };
  
    return socket;
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -43,8 +43,6 @@
    public void onOpen(Session session, @PathParam("username") String username) {
        this.username = username;
        this.session = session;
        this.session.setMaxTextMessageBufferSize(12*1024*1024);
        this.session.setMaxBinaryMessageBufferSize(12*1024*1024);
        List<WebSocketServer> webSocketServers = sessionMap.get(username);
        if (webSocketServers == null) {
            ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
@@ -98,7 +96,7 @@
     *
     * @param message 客户端发送过来的消息
     */
    @OnMessage(maxMessageSize = 5242880)
    @OnMessage
    public void onMessage(String message, Session session, @PathParam("username") String username) {
        log.info("服务端收到用户username={}的消息:{}", username, message);
        JSONObject obj = JSONUtil.parseObj(message);
@@ -121,9 +119,27 @@
    public void sendMessage(String message) {
        try {
            // log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message);
            this.session.getBasicRemote().sendText(message);
            if(this.session.isOpen()){
                int maxChunkSize = 50000; // 定义最大的分块大小
                int length = message.length();
                int chunks = (int) Math.ceil((double) length / maxChunkSize);
                //分块发送消息
                for (int i = 0; i < chunks; i++) {
                    int startIndex = i * maxChunkSize;
                    int endIndex = Math.min(startIndex + maxChunkSize, length);
                    String chunk = message.substring(startIndex, endIndex);
                    // 判断是否是最后一块消息
                    boolean isLastChunk = (i == chunks - 1);
                    if(isLastChunk==true){
                        chunk+="<END>";
                    }
                    // 发送分块消息,并传递是否是最后一块消息的标识
                    this.session.getBasicRemote().sendText(chunk);
                }
            }
        } catch (Exception e) {
            log.error("服务端发送消息给客户端失败", e);
            log.error("发送消息给客户端失败:{}", e.getMessage(), e);
        }
    }
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -83,7 +83,7 @@
        if(result==true){
            return Result.build(200,"指定钢化成功",1);
        }else {
            return Result.build(200, "已存在钢化任务", 1);
            return Result.build(200, "已存在钢化任务,请等待钢化完成再指定钢化", 1);
        }
    }
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -353,15 +353,15 @@
    public boolean TemperingGlass(String temperingLayoutId, String engineerId) {
        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
        temperingGlassInfoLambdaQueryWrapper
                .eq(TemperingGlassInfo::getTemperingLayoutId, temperingLayoutId)
                .eq(TemperingGlassInfo::getEngineerId, engineerId);
        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
        if (temperingGlassInfoList.size() == 0) {
            LambdaQueryWrapper<BigStorageCageDetails> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(BigStorageCageDetails::getTemperingLayoutId, temperingLayoutId)
                    .eq(BigStorageCageDetails::getEngineerId, engineerId)
                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL);
            List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(wrapper);
                .eq(TemperingGlassInfo::getState,Const.TEMPERING_NEW);
        List<TemperingGlassInfo> temperingGlassInfoList=temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
        if(temperingGlassInfoList.size()==0){
            LambdaQueryWrapper<BigStorageCageDetails> wrapper =new LambdaQueryWrapper<>();
            wrapper.eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
                    .eq(BigStorageCageDetails::getEngineerId,engineerId)
                    .in(BigStorageCageDetails::getState,Const.GLASS_STATE_IN,Const.GLASS_STATE_ARTIFICIAL);
            List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(wrapper);
            for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
            ) {
@@ -385,7 +385,7 @@
    }
    @Override
    public List<Map<String, Object>> selectTemperingGlass() {
    public List<Map<String, Object>> selectTemperingGlass(){
        QueryWrapper<BigStorageCageDetails> wrapper = new QueryWrapper<>();
        wrapper.select("engineer_id,tempering_layout_id,count(*) as count")
                .groupBy("engineer_id,tempering_layout_id");
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -33,14 +33,13 @@
    private TemperingGlassInfoService temperingGlassInfoService;
    private JSONObject jsonObject = new JSONObject();
    private JSONObject jsonObject1 = new JSONObject();
    public void queryDataSource1() throws InterruptedException {
        List<Double> carPostion=new ArrayList<>();
        carPostion.add(0.25);
        carPostion.add(0.5);
        jsonObject.append("carPostion",carPostion);
        //界面展示笼子信息
        jsonObject1.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
        jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
        //进片任务数据
        List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
@@ -72,7 +71,6 @@
    @Scheduled(fixedDelay = 1000)
    public void plcStorageCageTask() throws InterruptedException {
        jsonObject = new JSONObject();
        jsonObject1 = new JSONObject();
        try {
            //查询使用数据源1查询数据
            queryDataSource1();
@@ -84,7 +82,6 @@
                for (WebSocketServer webserver : sendwServer) {
                    if (webserver != null) {
                        webserver.sendMessage(jsonObject.toString());
                        webserver.sendMessage(jsonObject1.toString());
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
                            // // 将最后一个消息转换为整数类型的列表