yangjingjing před 5 roky
rodič
revize
931e6eca83
16 změnil soubory, kde provedl 254 přidání a 15 odebrání
  1. 33 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/AlarmEventController.java
  2. 30 1
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/DeviceInfoController.java
  3. 24 4
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/DeviceThresholdController.java
  4. 12 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/AlarmEventMapper.java
  5. 19 1
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/DeviceInfoMapper.java
  6. 2 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/DeviceThresholdMapper.java
  7. 2 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IAlarmEventService.java
  8. 5 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IDeviceInfoService.java
  9. 4 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IDeviceThresholdService.java
  10. 10 2
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/AlarmEventServiceImpl.java
  11. 13 1
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/DeviceInfoServiceImpl.java
  12. 13 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/DeviceThresholdServiceImpl.java
  13. 19 0
      febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/vo/AlarmEventVO.java
  14. 41 5
      febs-server/gbd-demp-info/src/main/resources/mapper/AlarmEventMapper.xml
  15. 17 0
      febs-server/gbd-demp-info/src/main/resources/mapper/DeviceInfoMapper.xml
  16. 10 1
      febs-server/gbd-demp-info/src/main/resources/mapper/DeviceThresholdMapper.xml

+ 33 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/AlarmEventController.java

@@ -65,6 +65,39 @@ public class AlarmEventController {
             return new FebsResponse().code(HttpStatus.FORBIDDEN);
     }
 
+    /**
+     * 获取异常事件
+     *
+     * @param request
+     * @param ids        公司名称
+     * @param deviceName 设备名称
+     * @return
+     */
+    @GetMapping("/getDeviceInfoAndAlarmEvent")
+    @PreAuthorize("hasAuthority('alarmEvent:view')")
+    public FebsResponse getDeviceInfoAndAlarmEvent(@RequestHeader(value = "thirdPartyToken") String thirdPartyToken, QueryRequest request, String id, String deviceName) {
+        String[] ids = new String[0];
+        if (!"".equals(id) && id != null) {
+            if (id.contains(",")) {
+                ids = id.split(",");
+            } else
+                ids = new String[]{id};
+        }
+        ThirdPartyUser u = ThirdPartyUtils.getThirdPartyUserInfo(thirdPartyToken);
+        Map<String, Object> dataTable = null;
+        if (u.getUserId() != null) {
+            if (u.getEnterpriseId() != null) {//企业
+                ids = new String[]{u.getEnterpriseId()};
+                dataTable = FebsUtil.getDataTable(this.alarmEventService.getDeviceInfoAndAlarmEvent(request, ids, deviceName, u.getPossession()));
+            } else if (u.getPossession() != null) {//功能区
+                dataTable = FebsUtil.getDataTable(this.alarmEventService.getDeviceInfoAndAlarmEvent(request, ids, deviceName, u.getPossession()));
+            } else //监管人员
+                dataTable = FebsUtil.getDataTable(this.alarmEventService.getDeviceInfoAndAlarmEvent(request, ids, deviceName, u.getPossession()));
+            return new FebsResponse().data(dataTable);
+        } else
+            return new FebsResponse().code(HttpStatus.FORBIDDEN);
+    }
+
     /**
      * 异常事件处理
      *

+ 30 - 1
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/DeviceInfoController.java

@@ -142,6 +142,25 @@ public class DeviceInfoController {
         }
     }
 
+
+    /**
+     * 解锁编辑状态
+     *
+     * @param id
+     * @throws FebsException
+     */
+    @RequestMapping("/unlockEdit")
+    @PreAuthorize("hasAuthority('deviceInfo:update')")
+    public void unlockEdit(String id) throws FebsException {
+        try {
+            this.deviceInfoService.unlockEdit(id);
+        } catch (Exception e) {
+            String message = "设置失败";
+            log.error(message, e);
+            throw new FebsException(message);
+        }
+    }
+
     /**
      * 2 .监测企业点位信息
      *
@@ -212,7 +231,6 @@ public class DeviceInfoController {
         ThirdPartyUser u = ThirdPartyUtils.getThirdPartyUserInfo(token);
         if (u.getUserId() != null) {
             try {
-                deviceInfo.setEditable(1);
                 this.deviceInfoService.updateDeviceInfo(deviceInfo);
                 return new FebsResponse().code(HttpStatus.OK);
             } catch (Exception e) {
@@ -235,5 +253,16 @@ public class DeviceInfoController {
         return new FebsResponse().data(this.deviceInfoService.getAllDeviceInfo());
     }
 
+    /**
+     * 获取公司信息
+     *
+     * @return
+     */
+    @RequestMapping("/getCompanys")
+    public FebsResponse getCompanys(@RequestHeader(value = "thirdPartyToken") String thirdPartyToken) {
+        ThirdPartyUser u = ThirdPartyUtils.getThirdPartyUserInfo(thirdPartyToken);
+        return new FebsResponse().data(this.deviceInfoService.getCompanys(u.getPossession()));
+    }
+
 
 }

+ 24 - 4
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/controller/DeviceThresholdController.java

@@ -113,6 +113,24 @@ public class DeviceThresholdController {
         }
     }
 
+    /**
+     * 解除编辑
+     *
+     * @param deviceThreshold
+     * @throws FebsException
+     */
+    @RequestMapping("/unlockEdit")
+    @PreAuthorize("hasAuthority('deviceThreshold:update')")
+    public void unlockEdit(String deviceId, String sensorId) throws FebsException {
+        try {
+            this.deviceThresholdService.unlockEdit(deviceId, sensorId);
+        } catch (Exception e) {
+            String message = "失败";
+            log.error(message, e);
+            throw new FebsException(message);
+        }
+    }
+
 
     /***
      * 获取阈值信息接口,需要传sensorId
@@ -136,19 +154,20 @@ public class DeviceThresholdController {
      * @throws FebsException
      */
     @RequestMapping("/addDeviceThreshold")
-    public void createDeviceThreshold(String token, @RequestParam String deviceThresholds) throws FebsException {
+    public FebsResponse createDeviceThreshold(String token, @RequestParam String deviceThresholds) throws FebsException {
         ThirdPartyUser u = ThirdPartyUtils.getThirdPartyUserInfo(token);
         if (u.getUserId() != null) {
             try {
                 List<DeviceThreshold> dts = JSONObject.parseArray(deviceThresholds, DeviceThreshold.class);
                 this.deviceThresholdService.createDeviceThreshold(dts);
+                return new FebsResponse().code(HttpStatus.OK);
             } catch (Exception e) {
                 String message = "新增DeviceThreshold失败";
                 log.error(message, e);
                 throw new FebsException(message);
             }
         } else
-            throw new FebsException("无权限");
+            return new FebsResponse().code(HttpStatus.FORBIDDEN);
     }
 
 
@@ -159,18 +178,19 @@ public class DeviceThresholdController {
      * @throws FebsException
      */
     @RequestMapping("/updateDeviceThreshold")
-    public void modifyDeviceThreshold(String token, DeviceThreshold deviceThreshold) throws FebsException {
+    public FebsResponse modifyDeviceThreshold(String token, DeviceThreshold deviceThreshold) throws FebsException {
         ThirdPartyUser u = ThirdPartyUtils.getThirdPartyUserInfo(token);
         if (u.getUserId() != null) {
             try {
                 this.deviceThresholdService.updateDeviceThreshold(deviceThreshold);
+                return new FebsResponse().code(HttpStatus.OK);
             } catch (Exception e) {
                 String message = "修改DeviceThreshold失败";
                 log.error(message, e);
                 throw new FebsException(message);
             }
         } else
-            throw new FebsException("无权限");
+            return new FebsResponse().code(HttpStatus.FORBIDDEN);
     }
 
 }

+ 12 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/AlarmEventMapper.java

@@ -20,6 +20,18 @@ public interface AlarmEventMapper extends BaseMapper<AlarmEvent> {
 
     <T> IPage<AlarmEventVO> getAlarmEvent(Page<T> page, @Param("companyName") String companyName, @Param("deviceName") String deviceName, @Param("possession") String possession);
 
+    /**
+     * 用于监测数据管理页面
+     *
+     * @param page
+     * @param ids        企业id数组
+     * @param deviceName
+     * @param possession
+     * @param <T>
+     * @return
+     */
+    <T> IPage<AlarmEventVO> getDeviceInfoAndAlarmEvent(Page<T> page, @Param("ids") String[] ids, @Param("deviceName") String deviceName, @Param("possession") String possession);
+
     int finishEvent(@Param("id") Long id, @Param("reason") String reason);
 
     /**

+ 19 - 1
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/DeviceInfoMapper.java

@@ -9,6 +9,7 @@ import com.gbd.demp.info.vo.DeviceEventVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 设备信息表 Mapper
@@ -30,16 +31,33 @@ public interface DeviceInfoMapper extends BaseMapper<DeviceInfo> {
      */
     int setWorkTime(@Param("from") String from, @Param("to") String to, @Param("id") String id);
 
+    /**
+     * 解除编辑锁定状态
+     *
+     * @param id 设备编号
+     * @return
+     */
+    int unlockEdit(@Param("id") String id);
+
 
     /**
      * 查询所有   2.	监测企业点位
+     *
      * @return
      */
     List<DeviceInfo> findAll();
 
     /**
-     *  3.监测图层点击详情
+     * 3.监测图层点击详情
      */
     List<DeviceEventVO> getMonitorLayerClickMap(@Param("companyId") String companyId, @Param("alarmId") String alarmId, @Param("deviceId") String deviceid);
 
+    /**
+     * 根据功能区获取企业名称
+     * @param possession
+     * @return
+     */
+    List<Map<String, String>> getCompanys(@Param("possession") String possession);
+
+
 }

+ 2 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/mapper/DeviceThresholdMapper.java

@@ -35,6 +35,8 @@ public interface DeviceThresholdMapper extends BaseMapper<DeviceThreshold> {
      */
     int updateDeviceThresholds(@Param("deviceThreshold") DeviceThreshold deviceThreshold);
 
+    int unlockEdit(@Param("deviceId") String deviceId, @Param("sensorId") String sensorId);
+
     /**
      * 查询阈值是否存在
      *

+ 2 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IAlarmEventService.java

@@ -26,6 +26,8 @@ public interface IAlarmEventService extends IService<AlarmEvent> {
      */
     IPage<AlarmEventVO> findAlarmEvents(QueryRequest request, String companyName, String deviceName,String possession);
 
+    IPage<AlarmEventVO> getDeviceInfoAndAlarmEvent(QueryRequest request, String[] ids, String deviceName, String possession);
+
     /**
      * 查询(所有)
      *

+ 5 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IDeviceInfoService.java

@@ -59,6 +59,9 @@ public interface IDeviceInfoService extends IService<DeviceInfo> {
     @Transactional(rollbackFor = Exception.class)
     void setWorkTime(String from, String to, String id);
 
+    @Transactional(rollbackFor = Exception.class)
+    void unlockEdit(String id);
+
     /**
      *查询
      * @return
@@ -72,4 +75,6 @@ public interface IDeviceInfoService extends IService<DeviceInfo> {
     List<DeviceEventRespone> getMonitorLayerClickMap(String companyid, String alarmid, String deviceid);
 
     List<DeviceInfo> getAllDeviceInfo();
+
+    List<Map<String, String>> getCompanys(String possession);
 }

+ 4 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/IDeviceThresholdService.java

@@ -5,6 +5,7 @@ import com.gbd.demp.info.entity.DeviceThreshold;
 import cc.mrbird.febs.common.core.entity.QueryRequest;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -46,6 +47,9 @@ public interface IDeviceThresholdService extends IService<DeviceThreshold> {
      */
     void updateDeviceThreshold(DeviceThreshold deviceThreshold);
 
+    @Transactional(rollbackFor = Exception.class)
+    void unlockEdit(String deviceId, String sensorId);
+
     /**
      * 删除
      *

+ 10 - 2
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/AlarmEventServiceImpl.java

@@ -32,11 +32,19 @@ public class AlarmEventServiceImpl extends ServiceImpl<AlarmEventMapper, AlarmEv
     private final AlarmEventMapper alarmEventMapper;
 
     @Override
-    public IPage<AlarmEventVO> findAlarmEvents(QueryRequest request, String companyName, String deviceName,String possession) {
+    public IPage<AlarmEventVO> findAlarmEvents(QueryRequest request, String companyName, String deviceName, String possession) {
         // TODO 设置查询条件
         Page<AlarmEventVO> page = new Page<>(request.getPageNum(), request.getPageSize());
         SortUtil.handlePageSort(request, page, "alarm_time", FebsConstant.ORDER_DESC, false);
-        return this.baseMapper.getAlarmEvent(page, companyName, deviceName,possession);
+        return this.baseMapper.getAlarmEvent(page, companyName, deviceName, possession);
+    }
+
+    @Override
+    public IPage<AlarmEventVO> getDeviceInfoAndAlarmEvent(QueryRequest request, String[] ids, String deviceName, String possession) {
+        // TODO 设置查询条件
+        Page<AlarmEventVO> page = new Page<>(request.getPageNum(), request.getPageSize());
+        SortUtil.handlePageSort(request, page, "id", FebsConstant.ORDER_DESC, false);
+        return this.baseMapper.getDeviceInfoAndAlarmEvent(page, ids, deviceName, possession);
     }
 
     @Override

+ 13 - 1
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/DeviceInfoServiceImpl.java

@@ -68,6 +68,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateDeviceInfo(DeviceInfo deviceInfo) {
+        deviceInfo.setEditable(0);//只允许修改一次
         this.saveOrUpdate(deviceInfo);
     }
 
@@ -93,6 +94,13 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void unlockEdit(String id) {
+        this.baseMapper.unlockEdit(id);
+    }
+
+
     /**
      * 查询  2.	监测企业点位信息
      *
@@ -199,10 +207,14 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     }
 
 
-
     @Override
     public List<DeviceInfo> getAllDeviceInfo() {
         return baseMapper.findAll();
     }
 
+    @Override
+    public List<Map<String, String>> getCompanys(String possession) {
+        return baseMapper.getCompanys(possession);
+    }
+
 }

+ 13 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/service/impl/DeviceThresholdServiceImpl.java

@@ -65,6 +65,19 @@ public class DeviceThresholdServiceImpl extends ServiceImpl<DeviceThresholdMappe
         this.saveOrUpdate(deviceThreshold);
     }
 
+
+    /**
+     * 解锁编辑
+     *
+     * @param deviceId
+     * @param sensorId
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void unlockEdit(String deviceId, String sensorId) {
+        this.baseMapper.unlockEdit(deviceId, sensorId);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteDeviceThreshold(String[] ids_) {

+ 19 - 0
febs-server/gbd-demp-info/src/main/java/com/gbd/demp/info/vo/AlarmEventVO.java

@@ -37,6 +37,25 @@ public class AlarmEventVO {
      */
     private String sensorName;
 
+    /**
+     * 传感器单位
+     */
+    private String sensorUnit;
+
+    /**
+     * 数值
+     */
+    private String dataValue;
+
+    /**
+     * 上报时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reportTime;
+
+    private double lowValue;
+    private double highValue;
+
 
     /**
      * 告警级别

+ 41 - 5
febs-server/gbd-demp-info/src/main/resources/mapper/AlarmEventMapper.xml

@@ -20,6 +20,11 @@
         <result column="device_name" jdbcType="VARCHAR" property="deviceName"/>
         <result column="sensor_id" jdbcType="VARCHAR" property="sensorId"/>
         <result column="sensor_name" jdbcType="VARCHAR" property="sensorName"/>
+        <result column="sensor_unit" jdbcType="VARCHAR" property="sensorUnit"/>
+        <result column="data_value" jdbcType="DOUBLE" property="dataValue"/>
+        <result column="report_time" jdbcType="TIMESTAMP" property="reportTime"/>
+        <result column="low_value" jdbcType="DOUBLE" property="lowValue"/>
+        <result column="high_value" jdbcType="DOUBLE" property="highValue"/>
         <result column="alarm_level" jdbcType="VARCHAR" property="alarmLevel"/>
         <result column="alarm_time" jdbcType="TIMESTAMP" property="alarmTime"/>
         <result column="event_status" jdbcType="INTEGER" property="eventStatus"/>
@@ -63,15 +68,46 @@
 
 
     <update id="finishEvent">
-        update t_alarm_event set event_status=1,finish_time=now(),reason=#{reason} where id=#{id}
+        update t_alarm_event
+        set event_status=1,
+            finish_time=now(),
+            reason=#{reason}
+        where id = #{id}
     </update>
 
     <update id="setOutliers">
-        update t_history_data set status=#{status}
-        where
-        device_id=#{deviceId} and sensor_id=#{sensorId}
-        and report_time <![CDATA[ >= ]]> #{start} and report_time <![CDATA[ <= ]]> #{end}
+        update t_history_data
+        set status=#{status}
+        where device_id = #{deviceId}
+          and sensor_id = #{sensorId}
+          and report_time <![CDATA[ >= ]]> #{start}
+          and report_time <![CDATA[ <= ]]> #{end}
     </update>
 
 
+    <select id="getDeviceInfoAndAlarmEvent" resultMap="alarmEventVO">
+        SELECT t5.id,t1.device_id, t1.device_name,
+        t1.company_name,t2.sensor_id,t2.sensor_name,t3.data_value,t2.sensor_unit,t3.report_time,t4.low_value,t4.high_value,t5.alarm_time,t5.alarm_level,t5.reason
+        FROM t_device_info t1
+        left join t_sensor_info t2 on t1.device_id=t2.device_id
+        left join t_live_data t3 on t2.device_id=t3.device_id and t2.sensor_id=t3.sensor_id
+        left join t_device_threshold t4 on t3.device_id=t4.device_id and t3.sensor_id=t4.sensor_id and t4.code=0
+        left join (select id,device_id,sensor_id,alarm_level,alarm_time,event_status,finish_time,isReport,reason from
+        t_alarm_event order by alarm_time desc limit 1) t5 on t4.device_id=t5.device_id and t4.sensor_id=t5.sensor_id
+        where 1=1
+        <if test="ids !=null and ids.length > 0">
+            AND t1.company_id in
+            <foreach collection="ids" item="item" open="(" separator="," close=")" index="index">
+                #{item}
+            </foreach>
+        </if>
+        <if test="deviceName != null and deviceName != ''">
+            AND t1.device_name like CONCAT('%', #{deviceName}, '%')
+        </if>
+        <if test="possession != null and possession != ''">
+            AND t1.possession = #{possession}
+        </if>
+    </select>
+
+
 </mapper>

+ 17 - 0
febs-server/gbd-demp-info/src/main/resources/mapper/DeviceInfoMapper.xml

@@ -188,4 +188,21 @@
     </select>
 
 
+    <update id="unlockEdit">
+        update t_device_info
+        set editable=1
+        where device_id = #{id}
+    </update>
+
+
+    <select id="getCompanys" resultType="java.util.HashMap">
+        SELECT company_id value,company_name label FROM t_device_info
+        where 1=1
+        <if test="possession != null and possession != ''">
+            AND possession = #{possession}
+        </if>
+        group by company_id,company_name
+    </select>
+
+
 </mapper>

+ 10 - 1
febs-server/gbd-demp-info/src/main/resources/mapper/DeviceThresholdMapper.xml

@@ -63,7 +63,8 @@
     <update id="updateDeviceThresholds">
         update t_device_threshold
         set low_value=#{deviceThreshold.lowValue},
-            high_value=#{deviceThreshold.highValue}
+            high_value=#{deviceThreshold.highValue},
+            editable=0
         where device_id = #{deviceThreshold.deviceId}
           and sensor_id = #{deviceThreshold.sensorId}
           and code = #{deviceThreshold.code}
@@ -77,4 +78,12 @@
           and code = #{deviceThreshold.code}
     </select>
 
+    <update id="unlockEdit">
+        update t_device_threshold
+        set editable=1
+        where device_id = #{deviceId}
+          and sensor_id = #{sensorId}
+    </update>
+
+
 </mapper>