Kaynağa Gözat

相机版本管理 相机列表、版本升级

sunhh 2 yıl önce
ebeveyn
işleme
a6a55ebfa8

+ 19 - 0
business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java

@@ -111,6 +111,25 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     private String taskId;
 
+    /**
+     * 版本ID
+     */
+    private Long versionId;
+
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 上一版本号
+     */
+    private String lastVersionNum;
 
     /**
      * 监控相机安装里程位置字符串形式

+ 7 - 0
business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraVersionVo.java

@@ -2,11 +2,13 @@ package com.ozs.service.entity.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
 import com.ozs.common.vo.PageVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Author : sunhh
@@ -19,6 +21,11 @@ public class BaseCameraVersionVo {
     @ApiModelProperty("页大小")
     private Long pageSize;
 
+    /**
+     * 相机编码
+     */
+    private List<String> cameraCodeList;
+
     /**
      * 主键ID
      */

+ 3 - 1
business-service/src/main/java/com/ozs/service/service/BaseCameraVersionService.java

@@ -13,5 +13,7 @@ import com.ozs.service.entity.vo.BaseCameraVersionVo;
 public interface BaseCameraVersionService extends IService<BaseCameraVersion> {
     AjaxResult cameraVersionAdd(BaseCameraVersion baseCameraVersion, String userId);
 
-    IPage<BaseCameraVersionVo> cameraVersionList(BaseCameraVersionVo baseCameraVersionVo);
+    com.github.pagehelper.Page<BaseCameraVersion> cameraVersionList(BaseCameraVersionVo baseCameraVersionVo);
+
+    AjaxResult cameraVersionUpgrade(BaseCameraVersionVo baseCameraVersion, String userId);
 }

+ 53 - 17
business-service/src/main/java/com/ozs/service/service/impl/BaseCameraVersionServiceImpl.java

@@ -7,14 +7,22 @@ import com.github.pagehelper.PageHelper;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
+import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraVersion;
+import com.ozs.service.entity.CameraUpdateLog;
 import com.ozs.service.entity.vo.BaseCameraVersionVo;
+import com.ozs.service.mapper.BaseCameraManagementMapper;
 import com.ozs.service.mapper.BaseCameraVersionMapper;
+import com.ozs.service.mapper.CameraUpdateLogMapper;
 import com.ozs.service.service.BaseCameraVersionService;
+import com.ozs.service.utils.PublishClient;
+import com.ozs.service.utils.SubscribeClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -28,6 +36,10 @@ public class BaseCameraVersionServiceImpl extends ServiceImpl<BaseCameraVersionM
 
     @Autowired
     private BaseCameraVersionMapper baseCameraVersionMapper;
+    @Autowired
+    private CameraUpdateLogMapper cameraUpdateLogMapper;
+    @Resource
+    private BaseCameraManagementMapper baseCameraManagementMapper;
 
     @Override
     public AjaxResult cameraVersionAdd(BaseCameraVersion baseCameraVersion, String userId) {
@@ -53,7 +65,7 @@ public class BaseCameraVersionServiceImpl extends ServiceImpl<BaseCameraVersionM
     }
 
     @Override
-    public IPage<BaseCameraVersionVo> cameraVersionList(BaseCameraVersionVo baseCameraVersionVo) {
+    public com.github.pagehelper.Page<BaseCameraVersion> cameraVersionList(BaseCameraVersionVo baseCameraVersionVo) {
         LambdaQueryWrapper<BaseCameraVersion> wrapper = new LambdaQueryWrapper<>();
         if (!StringUtils.isEmptySunhh(baseCameraVersionVo) && !StringUtils.isEmptySunhh(baseCameraVersionVo.getVersionNum())) {
             wrapper.eq(BaseCameraVersion::getVersionNum, baseCameraVersionVo.getVersionNum());
@@ -68,21 +80,45 @@ public class BaseCameraVersionServiceImpl extends ServiceImpl<BaseCameraVersionM
         int pageSize = Integer.parseInt(baseCameraVersionVo.getPageSize().toString());
         com.github.pagehelper.Page<BaseCameraVersion> page = PageHelper.startPage(pageNum, pageSize)
                 .doSelectPage(() -> baseCameraVersionMapper.selectList(wrapper));
-        com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseCameraVersionVo> pageR =
-                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
-//        if (!ObjectUtils.isEmpty(page) && page.getResult().size() > 0) {
-//            List<BaseCameraVersionVo> dto1 = page.getResult().stream().map(o -> {
-//                BaseCameraVersionVo baseCameraVersionVo1 = new BaseCameraVersionVo();
-//                BeanUtils.copyProperties(o, baseCameraVersionVo1);
-//                // 升级类型 1:算法升级,2:硬件升级,3:算法及硬件升级
-//                String upgradeTypeName = dictDataService.selectDictLabel("upgrade_type", o.getUpgradeType());
-//                if (!StringUtils.isEmptySunhh(upgradeTypeName)) {
-//                    baseCameraVersionVo1.setUpgradeTypename(upgradeTypeName);
-//                }
-//                return baseCameraVersionVo1;
-//            }).collect(Collectors.toList());
-//            pageR.setRecords(dto1);
-//        }
-        return pageR;
+        return page;
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult cameraVersionUpgrade(BaseCameraVersionVo baseCameraVersionVo, String userId) {
+        BaseCameraVersion baseCameraVersion = baseCameraVersionMapper.selectById(baseCameraVersionVo.getId());
+        if (StringUtils.isEmptySunhh(baseCameraVersion)) {
+            return AjaxResult.error("当前版本ID不存在!");
+        }
+        BeanUtils.copyProperties(baseCameraVersion, baseCameraVersionVo);
+        for (String cameraCode : baseCameraVersionVo.getCameraCodeList()) {
+            LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<>();
+            if (!StringUtils.isEmptySunhh(cameraCode)) {
+                wrapper.eq(BaseCameraManagement::getCameraCode, cameraCode);
+            }
+            BaseCameraManagement baseCameraManagement = baseCameraManagementMapper.selectOne(wrapper);
+            if (StringUtils.isEmptySunhh(baseCameraManagement)) {
+                return AjaxResult.error("相机编码:" + cameraCode + "不存在!");
+            }
+            String lastVersionNum = baseCameraManagement.getLastVersionNum();
+            baseCameraManagement.setVersionId(baseCameraVersion.getId());
+            baseCameraManagement.setVersionNum(baseCameraVersion.getVersionNum());
+            baseCameraManagement.setVersionName(baseCameraVersion.getVersionName());
+            baseCameraManagement.setLastVersionNum(lastVersionNum);
+            baseCameraManagementMapper.updateById(baseCameraManagement);
+
+            CameraUpdateLog cameraUpdateLog = new CameraUpdateLog();
+            cameraUpdateLog.setCameraCode(cameraCode);
+            cameraUpdateLog.setVersionNum(baseCameraVersion.getVersionNum());
+            cameraUpdateLog.setVersionName(baseCameraVersion.getVersionName());
+            cameraUpdateLog.setUpgradeType(baseCameraVersion.getUpgradeType());
+            cameraUpdateLog.setCreateBy(userId);
+            cameraUpdateLog.setCreateTime(new Date());
+            int insert = cameraUpdateLogMapper.insert(cameraUpdateLog);
+        }
+        // baseCameraVersionVo
+        PublishClient.updateDeviceSn("update_DEVICESN");
+        new SubscribeClient("update", "update").start();
+        return AjaxResult.success();
     }
 }

+ 28 - 9
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraVersionController.java

@@ -41,6 +41,23 @@ public class BaseCameraVersionController extends BaseController {
     @Autowired
     private ISysDictDataService dictDataService;
 
+    /**
+     * 相机版本管理 版本升级
+     *
+     * @param baseCameraVersion
+     * @return
+     */
+    @ApiOperation(value = "相机版本管理 版本升级")
+    @PostMapping("/cameraVersionUpgrade")
+    @Log(title = "相机版本管理", businessType = BusinessType.INSERT)
+    public AjaxResult cameraVersionUpgrade(@RequestBody BaseCameraVersionVo baseCameraVersion) {
+        if (StringUtils.isEmptySunhh(baseCameraVersion) || StringUtils.isEmptySunhh(baseCameraVersion.getId())
+                || StringUtils.isEmptySunhh(baseCameraVersion.getCameraCodeList())) {
+            return AjaxResult.error("相机版本id, 相机编码列表 不能为空!");
+        }
+        return baseCameraVersionService.cameraVersionUpgrade(baseCameraVersion, getUserId());
+    }
+
     /**
      * 相机列表
      *
@@ -65,19 +82,21 @@ public class BaseCameraVersionController extends BaseController {
     @PostMapping("/cameraVersionList")
     @Log(title = "相机版本管理", businessType = BusinessType.SELECT)
     public AjaxResult cameraVersionList(@RequestBody BaseCameraVersionVo baseCameraVersionVo) {
-        IPage<BaseCameraVersionVo> page = baseCameraVersionService.cameraVersionList(baseCameraVersionVo);
-        if (!ObjectUtils.isEmpty(page) && page.getRecords().size() > 0) {
-            List<BaseCameraVersionVo> dto1 = page.getRecords().stream().map(o -> {
-//                BaseCameraVersionVo baseCameraVersionVo1 = new BaseCameraVersionVo();
-//                BeanUtils.copyProperties(o, baseCameraVersionVo1);
+        com.github.pagehelper.Page<BaseCameraVersion> page = baseCameraVersionService.cameraVersionList(baseCameraVersionVo);
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseCameraVersionVo> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(baseCameraVersionVo.getPageNum(), baseCameraVersionVo.getPageSize());
+        if (!ObjectUtils.isEmpty(page) && page.getResult().size() > 0) {
+            List<BaseCameraVersionVo> dto1 = page.getResult().stream().map(o -> {
+                BaseCameraVersionVo baseCameraVersionVo1 = new BaseCameraVersionVo();
+                BeanUtils.copyProperties(o, baseCameraVersionVo1);
                 // 升级类型 1:算法升级,2:硬件升级,3:算法及硬件升级
                 String upgradeTypeName = dictDataService.selectDictLabel("upgrade_type", o.getUpgradeType());
                 if (!StringUtils.isEmptySunhh(upgradeTypeName)) {
-                    o.setUpgradeTypename(upgradeTypeName);
+                    baseCameraVersionVo1.setUpgradeTypename(upgradeTypeName);
                 }
-                return o;
+                return baseCameraVersionVo1;
             }).collect(Collectors.toList());
-//            pageR.setRecords(dto1);
+            pageR.setRecords(dto1);
         }
         return AjaxResult.success(page);
     }
@@ -90,7 +109,7 @@ public class BaseCameraVersionController extends BaseController {
      */
     @ApiOperation(value = "相机版本管理 新增")
     @PostMapping("/cameraVersionAdd")
-    @Log(title = "机车信息管理", businessType = BusinessType.INSERT)
+    @Log(title = "相机版本管理", businessType = BusinessType.INSERT)
     public AjaxResult cameraVersionAdd(@RequestBody BaseCameraVersion baseCameraVersion) {
         if (StringUtils.isEmptySunhh(baseCameraVersion) || StringUtils.isEmptySunhh(baseCameraVersion.getVersionNum())
                 || StringUtils.isEmptySunhh(baseCameraVersion.getVersionName())

+ 3 - 6
hazard-admin/src/main/java/com/ozs/web/controller/mqtt/MqttController.java

@@ -1,6 +1,5 @@
 package com.ozs.web.controller.mqtt;
 
-
 import com.ozs.common.annotation.Log;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
@@ -13,7 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-
 /**
  * @author Administrator
  */
@@ -22,21 +20,20 @@ import org.springframework.web.bind.annotation.RestController;
 @Slf4j
 public class MqttController {
 
-
     @ApiOperation(value = "设备心跳")
     @GetMapping("/deviceHeartbeat")
     @Log(title = "MQTT", businessType = BusinessType.SELECT)
     public AjaxResult selectCameraAll() {
-        new SubscribeClient("heart","heart").start();
+        new SubscribeClient("heart", "heart").start();
         return AjaxResult.success();
     }
 
     @ApiOperation(value = "更新固件和算法")
     @GetMapping("/updateDeviceSn")
     @Log(title = "MQTT", businessType = BusinessType.UPDATE)
-    public AjaxResult updateDeviceSn(){
+    public AjaxResult updateDeviceSn() {
         PublishClient.updateDeviceSn("update_DEVICESN");
-        new SubscribeClient("update","update").start();
+        new SubscribeClient("update", "update").start();
         return AjaxResult.success();
     }
 }