gao.qiang 1 тиждень тому
батько
коміт
8b1d5651a9

+ 4 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarmMatter.java

@@ -182,6 +182,10 @@ public class MsgAlarmMatter extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private List<String> imageUrls;
 
+    @TableField(exist = false)
+    @Excel(name = "报警图片URL")
+    private String imageUrlStr;
+
     /**
      * 解除人真实姓名
      */

+ 2 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseCameraManagementMapper.java

@@ -33,4 +33,6 @@ public interface BaseCameraManagementMapper extends BaseMapper<BaseCameraManagem
     List<AlarmCountSortVo> alarmCountSort(MsgAlarmVo msgAlarmVo);
 
     List<BaseCameraManagement> cameraManagementList(BaseCameraManagementVo baseCameraManagementVo);
+
+    List<DeviceStateResp> bellDeviceStatePage(DeviceStateResp deviceStateResp);
 }

+ 2 - 0
business-service/src/main/java/com/ozs/service/service/BaseCameraManagementService.java

@@ -53,4 +53,6 @@ public interface BaseCameraManagementService extends IService<BaseCameraManageme
     AjaxResult cameraStateList(BaseCameraManagementVo baseCameraManagementVo);
 
     AjaxResult updateStateAll(Integer state);
+
+    IPage<DeviceStateResp> bellDeviceStatePage(DeviceStateResp deviceStateResp);
 }

+ 13 - 0
business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java

@@ -407,4 +407,17 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
         baseDeviceDynamicManagementMapper.update(baseDeviceDynamicManagement,null);
         return AjaxResult.success();
     }
+
+    @Override
+    public IPage<DeviceStateResp> bellDeviceStatePage(DeviceStateResp deviceStateResp) {
+        int pageNum = Integer.parseInt(deviceStateResp.getPageNum().toString());
+        int pageSize = Integer.parseInt(deviceStateResp.getPageSize().toString());
+        com.github.pagehelper.Page<DeviceStateResp> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> baseCameraManagementMapper.bellDeviceStatePage(deviceStateResp));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<DeviceStateResp> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
+    }
 }

+ 25 - 0
business-service/src/main/java/com/ozs/service/utils/CallbackUtil.java

@@ -1,6 +1,10 @@
 package com.ozs.service.utils;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ozs.service.entity.BaseCameraManagement;
+import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.CameraLogDetailService;
 import com.ozs.service.service.CameraUpdateLogService;
 import com.ozs.service.service.MqLogService;
@@ -24,8 +28,11 @@ public class CallbackUtil {
     CameraLogDetailService cameraLogDetailService;
     @Autowired
     MqLogService mqLogService;
+    @Autowired
+    BaseCameraManagementService baseCameraManagementService;
     private static  CameraLogDetailService cameraLogDetail;
     private static  MqLogService mqLog;
+    private static  BaseCameraManagementService baseCameraManagement;
 
     @PostConstruct
     public void init() {
@@ -40,4 +47,22 @@ public class CallbackUtil {
     public static void  heart(String cameraCode){
         CallbackUtil.mqLog.insetHeartLog(cameraCode);
     }
+
+    public static void updateVersionNum(String model,String cameraCode) {
+        // 找到 "bovai" 的位置
+        int bovaiIndex = model.indexOf("bovai");
+        if (bovaiIndex != -1) {
+            // 截取 "bovai." 之后的版本号
+            String version = model.substring(bovaiIndex + "bovai.".length());
+            log.info("bovai 的位置: " + bovaiIndex);
+            log.info("版本号: " + version);
+            // 创建 LambdaUpdateWrapper 用于构建更新条件
+            LambdaUpdateWrapper<BaseCameraManagement> wrapper = new LambdaUpdateWrapper<>();
+            // 设置更新条件:根据 cameraCode 进行筛选
+            wrapper.eq(BaseCameraManagement::getCameraCode, cameraCode);
+            // 设置要更新的字段:将 versionNum 更新为指定的 version
+            wrapper.set(BaseCameraManagement::getVersionNum, version);
+            baseCameraManagement.update(wrapper);
+        }
+    }
 }

+ 9 - 0
business-service/src/main/java/com/ozs/service/utils/PublishCallback.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.service.entity.CameraUpdateLog;
 import com.ozs.service.service.CameraUpdateLogService;
 import com.ozs.service.service.impl.CameraUpdateLogServiceImpl;
+import net.sf.jsqlparser.Model;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
@@ -54,6 +55,7 @@ public class PublishCallback implements MqttCallback {
         String sign = null;
         String deviceSn = null;
         Integer code = null;
+        String model = null;
         // subscribe后得到的消息会执行到这里面
         logger.info("接收消息主题 : {}", topic);
         logger.info("接收消息内容 : {}", new String(message.getPayload()));
@@ -66,8 +68,15 @@ public class PublishCallback implements MqttCallback {
                     JSONObject object = jsonArray.getJSONObject(i);
                     sign = (String) object.get("sign");
                     deviceSn = (String) object.get("device_sn");
+                    JSONArray model1 = object.putArray("model");
+                    // 检查数组是否为空
+                    if (!model1.isEmpty()) {
+                        // 取出数组的第一个值
+                        model = model1.getString(0);
+                    }
                 }
 //                CallbackUtil.heart(deviceSn);
+                CallbackUtil.updateVersionNum(model,deviceSn);
                 PublishClient.pull(sign, deviceSn);
             } catch (Exception e) {
                 logger.error(e.getMessage());

+ 73 - 0
business-service/src/main/resources/mapper/service/BaseCameraManagementMapper.xml

@@ -315,4 +315,77 @@
         ORDER BY
         a.install_longitude,man.is_disable,msg.is_lock
     </select>
+    <select id="bellDeviceStatePage" resultType="com.ozs.service.entity.vo.DeviceStateResp" parameterType="com.ozs.service.entity.vo.DeviceStateResp">
+        SELECT
+        ca.install_mile AS installMile,
+        ca.measure_point_name AS measurePointName,
+        ra.railway_name AS railwayName,
+        ra.railway_type AS railwayType,
+        de.dept_name AS deptName,
+        CASE
+        line_dir
+        WHEN 1 THEN
+        '上行'
+        WHEN 2 THEN
+        '下行'
+        WHEN 3 THEN
+        '上下行'
+        END AS lineDir,
+        CASE
+        man.is_disable
+        WHEN 1 THEN
+        '正常'
+        WHEN 2 THEN
+        '故障'
+        END AS isDisable,
+        man.electricity,
+        ca.camera_code AS cameraCode,
+        ca.camera_sn AS cameraSn,
+        man.update_time AS updateTime,
+        man.heart_time AS heartTime
+        FROM
+        base_camera_management AS ca
+        LEFT JOIN base_railway_management AS ra ON ca.railway_code = ra.railway_code
+        LEFT JOIN sys_dept AS de ON ca.dept_id = de.dept_id
+        LEFT JOIN base_device_dynamic_management AS man ON ca.camera_code = man.camera_code
+        <where>
+            <if test="railwayCode != null and railwayCode != ''">
+                and ca.railway_code=#{railwayCode}
+            </if>
+            <if test="isDisable != null and isDisable != ''">
+                and man.is_disable=#{isDisable}
+            </if>
+            <if test="electricity != null and electricity != ''">
+                and man.electricity &lt;=#{electricity} and man.electricity &gt;=0
+            </if>
+            <if test="lineDir != null and lineDir != 0">
+                and ca.line_dir =#{lineDir}
+            </if>
+            <if test="railwayType != null and railwayType != 0">
+                and ra.railway_type =#{railwayType}
+            </if>
+            <if test="deptId != null and deptId != 0">
+                and ca.dept_id =#{deptId}
+            </if>
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or ca.create_by=#{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or ca.dept_id=#{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or ca.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+        </where>
+        ORDER BY man.is_disable DESC,
+        man.heart_time DESC
+    </select>
 </mapper>

+ 24 - 1
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -1118,6 +1118,29 @@ public class BaseCameraManagementController extends BaseController {
         return AjaxResult.success(page);
     }
 
+    /**
+     * 首页铃铛进去的页面
+     * @param deviceStateResp
+     * @return
+     */
+    @PostMapping("/bell/deviceState/page")
+    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    public AjaxResult bellDeviceStatePage(@RequestBody DeviceStateResp deviceStateResp) {
+        deviceStateResp = (DeviceStateResp) dataScoreUtil.setDataScore(getUserId(), deviceStateResp);
+        IPage<DeviceStateResp> page = baseCameraManagementService.bellDeviceStatePage(deviceStateResp);
+        page.setTotal(page.getTotal());
+        page.setCurrent(page.getCurrent());
+        page.setPages(page.getPages());
+        if (!ObjectUtils.isEmpty(page) && page.getRecords().size() > 0) {
+            List<DeviceStateResp> dto1 = page.getRecords().stream().map(o -> {
+                String mils = AppendUtils.stringAppend(o.getInstallMile());
+                o.setInstallMileName(mils);
+                return o;
+            }).collect(Collectors.toList());
+            page.setRecords(dto1);
+        }
+        return AjaxResult.success(page);
+    }
 
     /**
      * 导出设备状态页面
@@ -1148,7 +1171,7 @@ public class BaseCameraManagementController extends BaseController {
         List<DeviceStateResp> deviceStateRespList = baseCameraManagementService.deviceStateRespList(deviceStateResp);
         List<DeviceStateResp> isDisable = deviceStateRespList.stream().filter(f -> f.getIsDisable().equals("故障")).collect(Collectors.toList());
         map.put("isDisable", isDisable.size());
-        List<DeviceStateResp> electricity = deviceStateRespList.stream().filter(f -> f.getElectricity() <= 10 && f.getElectricity() != -1).collect(Collectors.toList());
+        List<DeviceStateResp> electricity = deviceStateRespList.stream().filter(f -> f.getElectricity() <= 10 && f.getElectricity() >= 0).collect(Collectors.toList());
         map.put("electricity", electricity.size());
         map.put("count", isDisable.size() + electricity.size());
         map.put("readCount", isDisable.size() + electricity.size());

+ 5 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmMatterController.java

@@ -154,6 +154,11 @@ public class MsgAlarmMatterController extends BaseController {
             if (!StringUtils.isEmptySunhh(o.getRailwayCode())) {
                 queryWrapper.eq(BaseRailwayManagement::getRailwayCode, o.getRailwayCode());
             }
+            List<MsgAlarmExt> list1 = msgAlarmExtService.list(new LambdaQueryWrapper<MsgAlarmExt>().eq(MsgAlarmExt::getAlarmId, o.getAlarmId()));
+            if (!ObjectUtils.isEmpty(list1)) {
+                List<String> collect = list1.stream().map(MsgAlarmExt::getAlarmAttPath).collect(Collectors.toList());
+                o.setImageUrlStr(String.join(",", collect));
+            }
             BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
             if (!StringUtils.isEmptySunhh(baseRailwayManagement) && !StringUtils.isEmptySunhh(baseRailwayManagement.getRailwayName())) {
                 o.setRailwayName(baseRailwayManagement.getRailwayName());