lius
2023-09-07 0d3e5cefe51ab44f28097839405c1a4c31466650
报警分析走势
已添加3个文件
已修改7个文件
257 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmTrendDto.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcAlarmAnalyzeQueryVo.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java
@@ -8,8 +8,9 @@
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.dto.MdcAlarmTrendDto;
import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -33,11 +34,21 @@
    @AutoLog(value = "报警分析-列表查询")
    @ApiOperation(value = "报警分析-列表查询", notes = "报警分析-列表查询")
    @GetMapping("/alarmList")
    public Result alarmList(DayUtilizationRateContrastQueryVo vo) {
    public Result alarmList(MdcAlarmAnalyzeQueryVo vo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        List<MdcAlarmAnalyzeDto> result = mdcEquipmentAlarmAnalyzeService.alarmList(userId, vo);
        return Result.OK(result);
    }
    @AutoLog(value = "报警分析-走势查询")
    @ApiOperation(value = "报警分析-走势查询", notes = "报警分析-走势查询")
    @GetMapping("/alarmTrend")
    public Result alarmTrend(MdcAlarmAnalyzeQueryVo vo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        MdcAlarmTrendDto result = mdcEquipmentAlarmAnalyzeService.alarmTrend(userId, vo);
        return Result.OK(result);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
/**
 * @author: LiuS
 * @create: 2023-09-07 13:55
 */
@Data
public class MdcAlarmDto {
    private String key;
    /**
     * å‡ºçŽ°æ¬¡æ•°
     */
    private Integer count;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmTrendDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package org.jeecg.modules.mdc.dto;
import lombok.Data;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-09-07 13:47
 */
@Data
public class MdcAlarmTrendDto {
    List<String> dateList;
    List<String> equipmentList;
    List<MdcAlarmDto> dateCountList;
    List<MdcAlarmDto> equipmentCountList;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java
@@ -3,7 +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 org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo;
import java.util.Date;
import java.util.List;
@@ -54,5 +54,15 @@
    /**
     * æŸ¥è¯¢ä¸€æ®µæ—¶é—´å†…的报警数据
     */
    List<MdcEquipmentRunningSection> findAlarmList(@Param("vo") DayUtilizationRateContrastQueryVo vo);
    List<MdcEquipmentRunningSection> findAlarmList(@Param("vo") MdcAlarmAnalyzeQueryVo vo);
    /**
     * æŸ¥è¯¢æ•°é‡
     */
    Integer findAlarmCount(@Param("equipmentId") String equipmentId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("alarmCode") String alarmCode);
    /**
     * æ ¹æ®æ—¥æœŸæŸ¥è¯¢æ•°é‡
     */
    Integer findAlarmCountByDate(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("vo") MdcAlarmAnalyzeQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml
@@ -91,5 +91,38 @@
            start_time
    </select>
    <!--查询数量-->
    <select id="findAlarmCount" resultType="java.lang.Integer">
        SELECT
            COUNT(*)
        FROM
            mdc_equipment_running_section
        <where>
            AND status = '22'
            AND alarm = #{ alarmCode }
            AND (start_time &lt;= #{ vo.endDate } AND end_time &gt;= #{ vo.startDate })
            AND equipment_id = #{ equipmentId }
        </where>
    </select>
    <!--根据日期查询数量-->
    <select id="findAlarmCountByDate" resultType="java.lang.Integer">
        SELECT
            COUNT(*)
        FROM
            mdc_equipment_running_section
        <where>
            AND status = '22'
            AND alarm = #{ vo.alarmCode }
            AND (start_time &lt;= #{ vo.endDate } AND end_time &gt;= #{ vo.startDate })
            <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>
        </where>
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java
@@ -3,7 +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.MdcAlarmAnalyzeQueryVo;
import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo;
import java.util.Date;
@@ -66,5 +66,15 @@
    /**
     * æŸ¥è¯¢æŠ¥è­¦æ•°æ®
     */
    List<MdcEquipmentRunningSection> findAlarmList(DayUtilizationRateContrastQueryVo vo);
    List<MdcEquipmentRunningSection> findAlarmList(MdcAlarmAnalyzeQueryVo vo);
    /**
     * æŸ¥è¯¢æ¬¡æ•°
     */
    Integer findAlarmCount(String equipmentId, String startDate, String endDate, String alarmCode);
    /**
     * æ ¹æ®æ—¥æœŸæŸ¥è¯¢æ¬¡æ•°
     */
    Integer findAlarmCountByDate(String startDate, String endDate, MdcAlarmAnalyzeQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java
@@ -1,7 +1,8 @@
package org.jeecg.modules.mdc.service;
import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto;
import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo;
import org.jeecg.modules.mdc.dto.MdcAlarmTrendDto;
import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo;
import java.util.List;
@@ -17,5 +18,14 @@
     * @param vo
     * @return
     */
    List<MdcAlarmAnalyzeDto> alarmList(String userId, DayUtilizationRateContrastQueryVo vo);
    List<MdcAlarmAnalyzeDto> alarmList(String userId, MdcAlarmAnalyzeQueryVo vo);
    /**
     * åˆ†æž
     *
     * @param userId
     * @param vo
     * @return
     */
    MdcAlarmTrendDto alarmTrend(String userId, MdcAlarmAnalyzeQueryVo vo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java
@@ -1,21 +1,20 @@
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.dto.MdcAlarmDto;
import org.jeecg.modules.mdc.dto.MdcAlarmTrendDto;
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.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.logging.Handler;
/**
 * @author: LiuS
@@ -31,7 +30,7 @@
    private IMdcEquipmentService mdcEquipmentService;
    @Override
    public List<MdcAlarmAnalyzeDto> alarmList(String userId, DayUtilizationRateContrastQueryVo vo) {
    public List<MdcAlarmAnalyzeDto> alarmList(String userId, MdcAlarmAnalyzeQueryVo vo) {
        List<MdcAlarmAnalyzeDto> result = new ArrayList<>();
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
@@ -86,4 +85,67 @@
        }
        return result;
    }
    @Override
    public MdcAlarmTrendDto alarmTrend(String userId, MdcAlarmAnalyzeQueryVo vo) {
        MdcAlarmTrendDto result = new MdcAlarmTrendDto();
        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()) {
            result.setEquipmentList(vo.getEquipmentIdList());
            List<MdcAlarmDto> equipmentCountList = new ArrayList<>();
            String startDate = DateUtils.format(DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00";
            String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00";
            for (String equipmentId : result.getEquipmentList()) {
                MdcAlarmDto mdcAlarmDto = new MdcAlarmDto();
                mdcAlarmDto.setKey(equipmentId);
                Integer count = mdcEquipmentRunningSectionService.findAlarmCount(equipmentId, startDate, endDate, vo.getAlarmCode());
                mdcAlarmDto.setCount(count);
                equipmentCountList.add(mdcAlarmDto);
            }
            result.setEquipmentCountList(equipmentCountList);
        }
        Date start = DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE);
        Date end = DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE);
        List<String> dateList = DateUtils.getDatesStringLists(start, end);
        result.setDateList(dateList);
        List<String> datesStringList = DateUtils.getDatesStringList(start, end);
        List<MdcAlarmDto> dateCountList = new ArrayList<>();
        for (String date : datesStringList) {
            MdcAlarmDto mdcAlarmDto = new MdcAlarmDto();
            mdcAlarmDto.setKey(DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE), DateUtils.STR_MMDD));
            String startDate = DateUtils.format(DateUtils.toDate(date, DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00";
            String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(date, DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00";
            Integer count = mdcEquipmentRunningSectionService.findAlarmCountByDate(startDate, endDate, vo);
            mdcAlarmDto.setCount(count);
            dateCountList.add(mdcAlarmDto);
        }
        result.setDateCountList(dateCountList);
        return result;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -10,7 +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.MdcAlarmAnalyzeQueryVo;
import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -590,10 +590,20 @@
    }
    @Override
    public List<MdcEquipmentRunningSection> findAlarmList(DayUtilizationRateContrastQueryVo vo) {
    public List<MdcEquipmentRunningSection> findAlarmList(MdcAlarmAnalyzeQueryVo vo) {
        return this.baseMapper.findAlarmList(vo);
    }
    @Override
    public Integer findAlarmCount(String equipmentId, String startDate, String endDate, String alarmCode) {
        return this.baseMapper.findAlarmCount(equipmentId, startDate, endDate, alarmCode);
    }
    @Override
    public Integer findAlarmCountByDate(String startDate, String endDate, MdcAlarmAnalyzeQueryVo vo) {
        return this.baseMapper.findAlarmCountByDate(startDate, endDate, vo);
    }
    private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) {
        Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>();
        List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>();
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcAlarmAnalyzeQueryVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package org.jeecg.modules.mdc.vo;
import lombok.Data;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-09-07 11:17
 */
@Data
public class MdcAlarmAnalyzeQueryVo {
    /**
     * æ—¥æœŸ  ->  20220101
     */
    private String startDate;
    /**
     * æ—¥æœŸ  ->  20220101
     */
    private String endDate;
    /**
     * è®¾å¤‡Id
     */
    private String equipmentId;
    /**
     * æ ‘类型    ->  1:车间层级   2:部门层级
     */
    private String typeTree;
    /**
     * å±‚级ID
     */
    private String parentId;
    /**
     * è®¾å¤‡ids
     */
    private List<String> equipmentIdList;
    /**
     * æŠ¥è­¦å·
     */
    private String alarmCode;
}