lius
2023-09-07 aec08e3c84590f50f5673a24ce9367f82bdb872c
报警号分析列表
已添加4个文件
已修改4个文件
221 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmAnalyzeDto.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package org.jeecg.modules.mdc.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto;
import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-09-06 17:15
 */
@Slf4j
@Api(tags = "报警分析")
@RestController
@RequestMapping("/mdc/alarmAnalyze")
public class MdcEquipmentAlarmAnalyzeController {
    @Resource
    private MdcEquipmentAlarmAnalyzeService mdcEquipmentAlarmAnalyzeService;
    @AutoLog(value = "报警分析-列表查询")
    @ApiOperation(value = "报警分析-列表查询", notes = "报警分析-列表查询")
    @GetMapping("/alarmList")
    public Result alarmList(DayUtilizationRateContrastQueryVo vo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        List<MdcAlarmAnalyzeDto> result = mdcEquipmentAlarmAnalyzeService.alarmList(userId, vo);
        return Result.OK(result);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmAnalyzeDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author: LiuS
 * @create: 2023-09-06 17:25
 */
@Data
public class MdcAlarmAnalyzeDto {
    /**
     * æŠ¥è­¦å·
     */
    private String alarmCode;
    /**
     * å‡ºçŽ°æ¬¡æ•°
     */
    private Integer count;
    /**
     * åˆè®¡æŒç»­æ—¶é—´ï¼ˆç§’)
     */
    private BigDecimal timeCount;
    /**
     * æŠ¥è­¦ä¿¡æ¯
     */
    private String alarmContent;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import java.util.Date;
import java.util.List;
@@ -49,4 +50,9 @@
     * è®¡ç®—一段时间内的故障数据
     */
    List<MdcEquipmentRunningSection> listEquipmentRunningSectionError(@Param("equipmentId") String equipmentid, @Param("startLong") long start, @Param("endLong") long end);
    /**
     * æŸ¥è¯¢ä¸€æ®µæ—¶é—´å†…的报警数据
     */
    List<MdcEquipmentRunningSection> findAlarmList(@Param("vo") DayUtilizationRateContrastQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml
@@ -71,5 +71,25 @@
            start_time
    </select>
    <!--查询一段时间内的报警数据-->
    <select id="findAlarmList" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection">
        SELECT
            *
        FROM
            mdc_equipment_running_section
        <where>
            <if test="vo.equipmentIdList != null and vo.equipmentIdList.size() > 0 ">
                AND equipment_id IN
                <foreach collection="vo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
                    #{ id }
                </foreach>
            </if>
            AND (start_time &lt;= #{ vo.endDate } AND end_time &gt;= #{ vo.startDate })
            AND status = '22'
        </where>
        ORDER BY
            start_time
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.dto.MdcEquipmentRunningSectionDto;
import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo;
import java.util.Date;
@@ -61,4 +62,9 @@
     * æŸ¥è¯¢æ‘¸ä¸ªè®¾å¤‡ä¸€æ®µæ—¶é—´å†…的故障数据
     */
    List<MdcEquipmentRunningSection> listEquipmentRunningSectionError(String equipmentid, long start, long end);
    /**
     * æŸ¥è¯¢æŠ¥è­¦æ•°æ®
     */
    List<MdcEquipmentRunningSection> findAlarmList(DayUtilizationRateContrastQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package org.jeecg.modules.mdc.service;
import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-09-06 17:29
 */
public interface MdcEquipmentAlarmAnalyzeService {
    /**
     * åˆ—表
     *
     * @param userId
     * @param vo
     * @return
     */
    List<MdcAlarmAnalyzeDto> alarmList(String userId, DayUtilizationRateContrastQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package org.jeecg.modules.mdc.service.impl;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto;
import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.logging.Handler;
/**
 * @author: LiuS
 * @create: 2023-09-06 17:31
 */
@Service
public class MdcEquipmentAlarmAnalyzeServiceImpl implements MdcEquipmentAlarmAnalyzeService {
    @Resource
    private IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService;
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Override
    public List<MdcAlarmAnalyzeDto> alarmList(String userId, DayUtilizationRateContrastQueryVo vo) {
        List<MdcAlarmAnalyzeDto> result = new ArrayList<>();
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
            if ("2".equals(vo.getTypeTree())) {
                // éƒ¨é—¨å±‚级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
            } else {
                // äº§çº¿å±‚级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
            }
        } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
            // å•台设备信息
            vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
        } else {
            // æŸ¥è¯¢ç”¨æˆ·æ‹¥æœ‰çš„æ‰€æœ‰è®¾å¤‡ä¿¡æ¯
            if ("2".equals(vo.getTypeTree())) {
                // éƒ¨é—¨å±‚级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                // äº§çº¿å±‚级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
            vo.setEquipmentIdList(equipmentIds);
        }
        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
            return result;
        } else {
            vo.setStartDate(DateUtils.format(DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00");
            vo.setEndDate(DateUtils.format(DateUtils.addDays(DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00");
            // æŸ¥è¯¢
            List<MdcEquipmentRunningSection> mdcEquipmentRunningSections = mdcEquipmentRunningSectionService.findAlarmList(vo);
            Map<String, MdcAlarmAnalyzeDto> map = new HashMap<>();
            for (MdcEquipmentRunningSection mdcEquipmentRunningSection : mdcEquipmentRunningSections) {
                if (map.containsKey(mdcEquipmentRunningSection.getAlarm())) {
                    MdcAlarmAnalyzeDto mdcAlarmAnalyzeDto = map.get(mdcEquipmentRunningSection.getAlarm());
                    mdcAlarmAnalyzeDto.setCount(mdcAlarmAnalyzeDto.getCount() + 1);
                    mdcAlarmAnalyzeDto.setTimeCount(mdcAlarmAnalyzeDto.getTimeCount().add(new BigDecimal(mdcEquipmentRunningSection.getDuration())));
                    map.put(mdcEquipmentRunningSection.getAlarm(), mdcAlarmAnalyzeDto);
                } else {
                    MdcAlarmAnalyzeDto mdcAlarmAnalyzeDto = new MdcAlarmAnalyzeDto();
                    mdcAlarmAnalyzeDto.setAlarmCode(mdcEquipmentRunningSection.getAlarm());
                    mdcAlarmAnalyzeDto.setCount(1);
                    mdcAlarmAnalyzeDto.setTimeCount(new BigDecimal(mdcEquipmentRunningSection.getDuration()));
                    map.put(mdcEquipmentRunningSection.getAlarm(), mdcAlarmAnalyzeDto);
                }
            }
            if (!map.isEmpty()) {
                result = new ArrayList<>(map.values());
            }
        }
        return result;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -10,6 +10,7 @@
import org.jeecg.modules.mdc.service.*;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.util.TimeFieldUtils;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -588,6 +589,11 @@
        return this.baseMapper.listEquipmentRunningSectionError(equipmentid, start, end);
    }
    @Override
    public List<MdcEquipmentRunningSection> findAlarmList(DayUtilizationRateContrastQueryVo vo) {
        return this.baseMapper.findAlarmList(vo);
    }
    private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) {
        Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>();
        List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>();