吉安感知网项目-后端
rain
2026-01-16 7bf05b3448140adabf70794f683c7f352a29d83b
反无大屏设备相关优化
3 files modified
84 ■■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwDeviceConfigController.java 41 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/service/IFwDeviceConfigService.java 9 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/service/impl/FwDeviceConfigServiceImpl.java 34 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/controller/FwDeviceConfigController.java
@@ -21,6 +21,7 @@
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
@@ -41,6 +42,7 @@
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@@ -65,7 +67,7 @@
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入deviceId")
    public R<FwDeviceConfigVO> detail(@ApiParam(value = "设备id", required = true) @RequestParam Long deviceId) {
    public R detail(@ApiParam(value = "设备id", required = true) @RequestParam Long deviceId) {
        if (deviceId == null) {
            return R.fail("设备id不能为空");
        }
@@ -74,10 +76,11 @@
            detail = fwDeviceConfigService.selectLatestVersionByDeviceId(deviceId);
        }
        if (detail == null) {
            return R.fail("数据不存在");
            return R.data("");
        }
        return R.data(FwDeviceConfigWrapper.build().entityVO(detail));
    }
    /**
     * 设备配置表 分页
     */
@@ -127,7 +130,7 @@
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入fwDeviceConfig")
    public R submit(@Valid @RequestBody FwDeviceConfigEntity fwDeviceConfig) {
        return saveOrUpdateConfig(fwDeviceConfig);
        return fwDeviceConfigService.saveOrUpdateConfig(fwDeviceConfig);
    }
    /**
@@ -155,38 +158,6 @@
        queryWrapper.lambda().eq(FwDeviceConfigEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
        List<FwDeviceConfigExcel> list = fwDeviceConfigService.exportFwDeviceConfig(queryWrapper);
        ExcelUtil.export(response, "设备配置表数据" + DateUtil.time(), "设备配置表数据表", list, FwDeviceConfigExcel.class);
    }
    private R saveOrUpdateConfig(FwDeviceConfigEntity fwDeviceConfig) {
        if (fwDeviceConfig == null || fwDeviceConfig.getDeviceId() == null) {
            return R.fail("设备id不能为空");
        }
        Long deviceId = fwDeviceConfig.getDeviceId();
        FwDeviceConfigEntity existing = null;
        if (fwDeviceConfig.getId() != null) {
            existing = fwDeviceConfigService.getById(fwDeviceConfig.getId());
            if (existing == null) {
                return R.fail("数据不存在");
            }
        }
        if (existing == null) {
            Integer maxVersion = fwDeviceConfigService.selectMaxConfigVersion(deviceId);
            fwDeviceConfig.setConfigVersion(maxVersion == null ? 1 : maxVersion + 1);
            fwDeviceConfig.setIsLatest((byte) 1);
            fwDeviceConfigService.resetLatestByDeviceId(deviceId, null);
            return R.status(fwDeviceConfigService.save(fwDeviceConfig));
        }
        if (fwDeviceConfig.getConfigVersion() == null) {
            fwDeviceConfig.setConfigVersion(existing.getConfigVersion());
        }
        if (fwDeviceConfig.getIsLatest() == null) {
            fwDeviceConfig.setIsLatest(existing.getIsLatest());
        }
        if (fwDeviceConfig.getIsLatest() != null && fwDeviceConfig.getIsLatest() == 1) {
            fwDeviceConfigService.resetLatestByDeviceId(deviceId, fwDeviceConfig.getId());
        }
        return R.status(fwDeviceConfigService.updateById(fwDeviceConfig));
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/service/IFwDeviceConfigService.java
@@ -22,6 +22,7 @@
import org.sxkj.fw.detection.excel.FwDeviceConfigExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import java.util.List;
/**
@@ -73,6 +74,14 @@
     */
    int resetLatestByDeviceId(Long deviceId, Long excludeId);
    /**
     * 新增或修改设备配置
     *
     * @param fwDeviceConfig
     * @return
     */
    R saveOrUpdateConfig(FwDeviceConfigEntity fwDeviceConfig);
    /**
     * 导出数据
drone-service/drone-fw/src/main/java/org/sxkj/fw/detection/service/impl/FwDeviceConfigServiceImpl.java
@@ -25,6 +25,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import java.util.List;
/**
@@ -61,6 +62,39 @@
        return baseMapper.resetLatestByDeviceId(deviceId, excludeId);
    }
    @Override
    public R saveOrUpdateConfig(FwDeviceConfigEntity fwDeviceConfig) {
        if (fwDeviceConfig == null || fwDeviceConfig.getDeviceId() == null) {
            return R.fail("设备id不能为空");
        }
        Long deviceId = fwDeviceConfig.getDeviceId();
        FwDeviceConfigEntity existing = null;
        if (fwDeviceConfig.getId() != null) {
            existing = this.getById(fwDeviceConfig.getId());
            if (existing == null) {
                return R.fail("数据不存在");
            }
        }
        if (existing == null) {
            Integer maxVersion = this.selectMaxConfigVersion(deviceId);
            fwDeviceConfig.setConfigVersion(maxVersion == null ? 1 : maxVersion + 1);
            fwDeviceConfig.setIsLatest((byte) 1);
            this.resetLatestByDeviceId(deviceId, null);
            return R.status(this.save(fwDeviceConfig));
        }
        if (fwDeviceConfig.getConfigVersion() == null) {
            fwDeviceConfig.setConfigVersion(existing.getConfigVersion());
        }
        if (fwDeviceConfig.getIsLatest() == null) {
            fwDeviceConfig.setIsLatest(existing.getIsLatest());
        }
        if (fwDeviceConfig.getIsLatest() != null && fwDeviceConfig.getIsLatest() == 1) {
            this.resetLatestByDeviceId(deviceId, fwDeviceConfig.getId());
        }
        return R.status(this.updateById(fwDeviceConfig));
    }
    @Override
    public List<FwDeviceConfigExcel> exportFwDeviceConfig(Wrapper<FwDeviceConfigEntity> queryWrapper) {