lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/CollectEquipmentDataMonthJob.java
@@ -111,7 +111,7 @@ mdcEquipmentStatisticalInfoMonth.setUtilizationRate(mdcEquipmentStatisticalDto.getProcessLong().divide((new BigDecimal("86400").multiply(mdcEquipmentStatisticalDto.getDayNum())), 4, RoundingMode.HALF_UP)); mdcEquipmentStatisticalInfoMonth.setFaultLong(mdcEquipmentStatisticalDto.getFaultLong().intValue()); mdcEquipmentStatisticalInfoMonth.setFaultRate(mdcEquipmentStatisticalDto.getFaultRate()); mdcEquipmentStatisticalInfoMonth.setRemoveFaultRate(mdcEquipmentStatisticalDto.getRemoveFaultRate()); mdcEquipmentStatisticalInfoMonth.setRemoveFaultRate(mdcEquipmentStatisticalDto.getRemoveFaultRate().divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); mdcEquipmentStatisticalInfoMonth.setRemoveFaultRunLong(mdcEquipmentStatisticalDto.getRemoveFaultRunLong().intValue()); } mdcEquipmentStatisticalInfoMonthList.add(mdcEquipmentStatisticalInfoMonth); lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentFaultInfoMapper.java
@@ -16,4 +16,7 @@ public interface MdcEquipmentFaultInfoMapper extends BaseMapper<MdcEquipmentFaultInfo> { List<EquFaultRecord> findFaultRecord(@Param("equipmentIdList") List<String> equipmentIdList, @Param("startTime") String startTime, @Param("endTime") String endTime); String getMaxStaticsData(); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentRunningSectionMapper.java
@@ -81,4 +81,6 @@ List<MdcEquipmentWaitSectionDto> findWaitList(@Param("date") String date); List<EquFaultRecord> findFaultList(@Param("equipmentId") String equipmentId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); MdcEquipmentRunningSection getFirstRecord(); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentFaultInfoMapper.xml
@@ -23,4 +23,8 @@ </foreach> AND t1.report_status != 'ABOLISH' </select> <select id="getMaxStaticsData" resultType="java.lang.String"> SELECT TOP 1 the_date FROM mdc_equipment_fault_info ORDER BY the_date DESC </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentRunningSectionMapper.xml
@@ -207,5 +207,9 @@ AND t1.report_status != 'ABOLISH' </select> <select id="getFirstRecord" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection"> SELECT TOP 1 * FROM mdc_equipment_running_section ORDER BY start_time </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java
@@ -90,4 +90,7 @@ List<Integer> getDataList(String equipmentId, Date date); List<MdcEquipmentWaitSectionDto> findWaitList(String date); MdcEquipmentRunningSection getFirstRecord(); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentFaultInfoServiceImpl.java
@@ -48,12 +48,31 @@ @Override @Transactional(rollbackFor = {Exception.class}) public void runningAllEquFaultStatistical(String dateTime) { String validDate = LocalDate.now().minusDays(1).toString().replaceAll("-", ""); Date initDate = null; if (StringUtils.isNotBlank(dateTime)) { validDate = DateUtils.format(DateUtils.toDate(dateTime, DateUtils.STRDATE), DateUtils.STRDATE); initDate = DateUtils.toDate(dateTime, DateUtils.STRDATE); } else { // 取最后的统计时间 String date = this.baseMapper.getMaxStaticsData(); if (date != null) { initDate = DateUtils.toDate(date, DateUtils.STRDATE); } else { // 初次取值 取最早时间记录 MdcEquipmentRunningSection equipmentRunningSection = mdcEquipmentRunningSectionService.getFirstRecord(); if (equipmentRunningSection != null) { initDate = equipmentRunningSection.getStartTime(); } } } Date endDate = DateUtils.addDays(DateUtils.getNow(), -1); List<String> dateList = DateUtils.getDatesStringList2(initDate, endDate); if (dateList.isEmpty()) { return; } try { this.remove(new LambdaQueryWrapper<MdcEquipmentFaultInfo>().eq(MdcEquipmentFaultInfo::getTheDate, validDate)); this.remove(new LambdaQueryWrapper<MdcEquipmentFaultInfo>().in(MdcEquipmentFaultInfo::getTheDate, dateList)); } catch (Exception e) { log.error("参数格式不对", e); } @@ -63,13 +82,6 @@ return; } Map<String, MdcEquipmentFaultInfo> map = new HashMap<>(); String finalValidDate = validDate; equipmentList.forEach(equipment -> { MdcEquipmentFaultInfo mdcEquipmentFaultInfo = new MdcEquipmentFaultInfo(equipment.getEquipmentid(), finalValidDate); map.put(equipment.getEquipmentid(), mdcEquipmentFaultInfo); }); String planTime = "00:00:00"; MdcSystemParameters mdcSystemParameters = mdcSystemParametersService.getOne(new LambdaQueryWrapper<MdcSystemParameters>().eq(MdcSystemParameters::getCode, "equip_log_statis_time")); if (mdcSystemParameters != null) { @@ -77,6 +89,15 @@ } List<String> equipmentIdList = equipmentList.stream().map(Equipment::getEquipmentid).collect(Collectors.toList()); for (String validDate : dateList) { Map<String, MdcEquipmentFaultInfo> map = new HashMap<>(); String finalValidDate = validDate; equipmentList.forEach(equipment -> { MdcEquipmentFaultInfo mdcEquipmentFaultInfo = new MdcEquipmentFaultInfo(equipment.getEquipmentid(), finalValidDate); map.put(equipment.getEquipmentid(), mdcEquipmentFaultInfo); }); String startTime = DateUtils.format(DateUtils.setTimeForDay(DateUtils.toDate(validDate, DateUtils.STRDATE), planTime), DateUtils.STR_DATE_TIME_SMALL); Date start = DateUtils.toDate(startTime, DateUtils.STR_DATE_TIME_SMALL); String endTime = DateUtils.format(DateUtils.addDays(DateUtils.toDate(startTime, DateUtils.STR_DATE_TIME_SMALL), 1), DateUtils.STR_DATE_TIME_SMALL); @@ -161,6 +182,7 @@ this.saveBatch(new ArrayList<>(map.values())); } } } public static long calculateTotalFaultDuration(List<EquFaultRecord> records, Date startTime, Date endTime) { LocalDateTime start = DateUtils.convertToLocalDateTime(startTime); lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -841,6 +841,11 @@ return this.baseMapper.findWaitList(date); } @Override public MdcEquipmentRunningSection getFirstRecord() { return this.baseMapper.getFirstRecord(); } private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) { Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>(); List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>();