From aec08e3c84590f50f5673a24ce9367f82bdb872c Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期四, 07 九月 2023 10:53:26 +0800 Subject: [PATCH] 报警号分析列表 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java | 6 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmAnalyzeDto.java | 30 +++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 6 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml | 20 +++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java | 21 +++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java | 89 ++++++++++++++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java | 43 ++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java | 6 + 8 files changed, 221 insertions(+), 0 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentAlarmAnalyzeController.java new file mode 100644 index 0000000..ee6b397 --- /dev/null +++ b/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); + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmAnalyzeDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcAlarmAnalyzeDto.java new file mode 100644 index 0000000..1672690 --- /dev/null +++ b/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; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java index 8ef1f7c..c99aa79 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java +++ b/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); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml index 7d4294e..ad4fba3 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml +++ b/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 <= #{ vo.endDate } AND end_time >= #{ vo.startDate }) + AND status = '22' + </where> + ORDER BY + start_time + </select> + </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java index 1174bb4..1eed2ff 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java +++ b/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); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/MdcEquipmentAlarmAnalyzeService.java new file mode 100644 index 0000000..b3d2f39 --- /dev/null +++ b/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); +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java new file mode 100644 index 0000000..5c4e534 --- /dev/null +++ b/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; + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java index 7e33d94..c140bd4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java +++ b/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<>(); -- Gitblit v1.9.3