2021与蓝度共同重构项目,服务端
LHN
2022-10-17 dfe3eb2327962d2cace6ca85acd1dea629033886
changes
已修改5个文件
已添加1个文件
118 ■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/RemoteUpgradeProgress.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/AirEquipmentNongGeng.java
@@ -1,13 +1,12 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
/**
 * 
@@ -28,7 +27,7 @@
    private String mac;
    /**
     * è®¾å¤‡ç±»åž‹  AirNongGengEnums
     * è®¾å¤‡ç±»åž‹  0常规型气象站  1辐射型气象站  2大气污染物气象站
     */
    private String type;
dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java
@@ -74,6 +74,7 @@
    AIR_QUERYVERSION("查询软硬件版本"),
    AIR_REBOOT("软重启"),
    AIR_DATA_UPDATE("手动更新大气数据"),
    AIR_SET_TYPE("设置农耕设备类型"),
    BANNER_ADD("添加微信logo"),
    BANNER_UPDATE("编辑微信logo"),
    BANNER_DETAIL("获取微信logo详情"),
@@ -232,10 +233,7 @@
    C3_REFUND("充电桩退款"),
    CHARGE_UPDATE("编辑费率"),
    ORDER_LIST("订单列表"),
    CHARGE_LIST("获取费率")
    ;
    CHARGE_LIST("获取费率");
    private final String code;
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentNongGengController.java
@@ -6,6 +6,7 @@
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.AirEquipmentNongGengService;
import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
@@ -75,10 +76,13 @@
     *
     * @return
     */
    public ResponseVO<Object> setAirEquipmentType() {
    @PostMapping("/setType")
    public ResponseVO<Object> setAirEquipmentType(@RequestBody AirEquipmentNongGeng param) {
        //参数使用枚举传值
        //TODO
        return ResponseUtil.success(null);
        if (!permissionConfig.check(MenuEnum.AIR_SET_TYPE.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        return ResponseUtil.success(airEquipmentNongGengService.setAirEquipmentType(param));
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java
@@ -1,5 +1,6 @@
package com.sandu.ximon.admin.controller;
import com.alibaba.fastjson.JSON;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.util.ResponseUtil;
@@ -9,13 +10,14 @@
import com.sandu.ximon.admin.param.RemotePrarm;
import com.sandu.ximon.admin.param.RemoteUpdateParam;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.service.RemoteUpdateService;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.vo.RemoteUpgradeProgress;
import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import static com.sandu.ximon.admin.manager.iot.rrpc.enums.RemoteUpdateTypeEnum.MQTT_MAIN;
/**
 * å›ºä»¶å‡çº§Controller
@@ -115,6 +117,10 @@
        //启动远程升级命令
        boolean startRemoteUpdateFlag = remoteUpdateService.StartRemoteUpdate(orderType, remotePrarm.getMac(), remotePrarm.getHardwareVersion()
                , remotePrarm.getSoftwareVersion(), remotePrarm.getUpdateFlag());
        //存入升级进度
        RemoteUpgradeProgress progress = new RemoteUpgradeProgress();
        RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
        if (startRemoteUpdateFlag) {
            //服务器下发升级文件信息
            //"C:\\Users\\Administrator\\Desktop\\test\\MQTT-过滤大气版本1-09-20220310.bin"
@@ -122,14 +128,21 @@
            if (remoteFileDto != null) {
                System.out.println(remoteFileDto.getList().size());
                progress.setTotalProgress(remoteFileDto.getList().size() + 1);
                for (int i = 0; i < remoteFileDto.getList().size(); i++) {
                    //升级包数据
                    remoteUpdateService.UpdateData(orderType, remotePrarm.getMac(), i, remoteFileDto.getList().get(i));
                    progress.setCurrentProgress(i + 1);
                    if (i != remoteFileDto.getList().size()) {
                        RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
                    }
                }
                //服务器下发查询漏包帧
                boolean searchLoseDataFlag = remoteUpdateService.SearchLoseData(orderType, remotePrarm.getMac(), remoteFileDto, 0);
                if (searchLoseDataFlag) {
                    //无漏包情况  æ›´æ–°æœ€åŽè¿›åº¦ä¸º100%  å¦åˆ™æœ€é«˜å¡åœ¨99%
                    RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
                    //服务器下发结束升级帧
                    boolean finishUpdateFlag = remoteUpdateService.FinishUpdate(orderType, remotePrarm.getMac());
                    UpdateFlag = finishUpdateFlag;
@@ -137,6 +150,7 @@
            }
        }
        RedisUtils.getBean().delete(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac());
        if (UpdateFlag) {
            return ResponseUtil.success("升级成功!");
        } else {
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentNongGengService.java
@@ -7,12 +7,7 @@
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartBeatTimeReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereOperationReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereQueryVersionReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AtmosphereQueryHeartBeatTimeReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AtmosphereQueryVersionReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AtmosphereRebootReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AtmosphereSetHeartBeatTimeReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
@@ -23,11 +18,11 @@
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.utils.StringUtil;
import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo;
import com.sandu.ximon.dao.domain.AirEquipment;
import com.sandu.ximon.dao.domain.AirEquipmentNongGeng;
import com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -74,11 +69,11 @@
            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        }
        List<AirEquipmentNongGengBo> airEquipmentBos;
//        if (SecurityUtils.getClientId() == null) {
//            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, null);
//        } else {
//            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId());
//        }
        if (SecurityUtils.getClientId() == null) {
            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, null);
        } else {
            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId());
        }
        if (SecurityUtils.getClientId() == null) {
            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, null);
@@ -94,15 +89,15 @@
     * å¤§æ°”设备列表(农耕,用于首页数据统计)
     */
    public List<AirEquipmentNongGengBo> listAirEquipmentOnHome() {
//        List<AirEquipmentNongGengBo> airEquipmentBos;
//        if (SecurityUtils.getClientId() == null) {
//            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, null);
//        } else {
//            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, SecurityUtils.getUserId());
//        }
        List<AirEquipmentNongGengBo> airEquipmentBos;
        if (SecurityUtils.getClientId() == null) {
            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, null);
        } else {
            airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, SecurityUtils.getUserId());
        }
//        return airEquipmentBos;
        return null;
        return airEquipmentBos;
//        return null;
    }
    /**
@@ -185,4 +180,28 @@
            throw new BusinessException("数据校验异常!");
        }
    }
    /**
     * è®¾ç½®ç±»åž‹
     *
     * @param param
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public boolean setAirEquipmentType(AirEquipmentNongGeng param) {
        if (param.getType() == null || param.getId() == null || param.getType().isEmpty()) {
            throw new BusinessException("设备id或类型不能为空");
        }
        if (!"0".equals(param.getType()) && !"1".equals(param.getType()) && !"2".equals(param.getType())) {
            throw new BusinessException("设备类型不正确");
        }
        AirEquipmentNongGeng byId = getById(param.getId());
        if (byId == null) {
            throw new BusinessException("设备id错误或设备不存在!");
        }
        byId.setType(param.getType());
        return updateById(byId);
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/RemoteUpgradeProgress.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.sandu.ximon.admin.vo;
import lombok.Data;
/**
 * è¿œç¨‹å‡çº§   å‡çº§è¿›åº¦
 */
@Data
public class RemoteUpgradeProgress {
    /**
     * å½“前进度
     */
    private int currentProgress = 0;
    /**
     * æ€»è¿›åº¦
     */
    private int totalProgress = 0;
}