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 <= #{ vo.endDate } AND end_time >= #{ 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 <= #{ vo.endDate } AND end_time >= #{ 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; }