diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java index 7f0f493..a6858ba 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java @@ -102,7 +102,7 @@ public class PlanInfoServiceImpl implements IPlanInfoService { bo.setStatus("正常"); bo.setIoCompany("杭州聚光"); bo.setMonitorCompany("宁波国研"); - bo.setIoPerson("吴昊"); + bo.setIoPerson("张静"); String area = stationInfoService.getAreaByStationName(stationName); bo.setArea(area); // 模拟生成计划编号 diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationFaultInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationFaultInfoServiceImpl.java index f41a8ed..2fe4486 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationFaultInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationFaultInfoServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.demo.domain.StationParamChange; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.StationFaultInfoBo; import org.dromara.demo.domain.vo.StationFaultInfoVo; @@ -15,9 +16,13 @@ import org.dromara.demo.domain.StationFaultInfo; import org.dromara.demo.mapper.StationFaultInfoMapper; import org.dromara.demo.service.IStationFaultInfoService; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.concurrent.TimeUnit; /** * airService业务层处理 @@ -53,9 +58,54 @@ public class StationFaultInfoServiceImpl implements IStationFaultInfoService { public TableDataInfo queryPageList(StationFaultInfoBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List records = result.getRecords(); + for (StationFaultInfoVo record :records) { + Date faultStartDate = record.getFaultStartDate(); + Date faultEndDate = record.getFaultEndDate(); + Date ioResponseDate = record.getIoResponseDate(); + + + if (faultStartDate != null && ioResponseDate != null) { + String duration = getTimeDifference(faultStartDate, ioResponseDate); + record.setResponseDuration(duration); + } + if (faultStartDate != null && faultEndDate != null) { + String duration = getTimeDifference(faultStartDate, faultEndDate); + record.setFaultDuration(duration); + } + + } + result.setRecords(records); return TableDataInfo.build(result); } + /** + * 获取目标时间与当前时间的时间差 + * + * @param startDate + * @param endDate + * @return 时间差 + */ + private String getTimeDifference(Date startDate, Date endDate) { + LocalDateTime start = startDate.toInstant() + .atZone(java.time.ZoneId.systemDefault()) + .toLocalDateTime(); + + + LocalDateTime end = endDate.toInstant() + .atZone(java.time.ZoneId.systemDefault()) + .toLocalDateTime(); + + + Duration duration = Duration.between(start, end); + + long days = duration.toDays(); + long hours = TimeUnit.SECONDS.toHours(duration.getSeconds()) % 24; + long minutes = TimeUnit.SECONDS.toMinutes(duration.getSeconds()) % 60; + + return String.format("%d天%d小时%d分钟", days, hours, minutes); + } + /** * 查询符合条件的air列表 * @@ -81,6 +131,8 @@ public class StationFaultInfoServiceImpl implements IStationFaultInfoService { lqw.eq(StringUtils.isNotBlank(bo.getMonitorPerson()), StationFaultInfo::getMonitorPerson, bo.getMonitorPerson()); lqw.eq(StringUtils.isNotBlank(bo.getMonitorCompany()), StationFaultInfo::getMonitorCompany, bo.getMonitorCompany()); lqw.eq(StringUtils.isNotBlank(bo.getIoCompany()), StationFaultInfo::getIoCompany, bo.getIoCompany()); + lqw.orderByDesc(StationFaultInfo::getUpdateTime); + return lqw; } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationParamChangeServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationParamChangeServiceImpl.java index 6f95274..19fb239 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationParamChangeServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationParamChangeServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.demo.domain.ZeroAdjustmentAnalysis; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.StationParamChangeBo; import org.dromara.demo.domain.vo.StationParamChangeVo; @@ -78,6 +79,7 @@ public class StationParamChangeServiceImpl implements IStationParamChangeService lqw.eq(StringUtils.isNotBlank(bo.getMonitorPerson()), StationParamChange::getMonitorPerson, bo.getMonitorPerson()); lqw.eq(StringUtils.isNotBlank(bo.getMonitorCompany()), StationParamChange::getMonitorCompany, bo.getMonitorCompany()); lqw.eq(StringUtils.isNotBlank(bo.getIoCompany()), StationParamChange::getIoCompany, bo.getIoCompany()); + lqw.orderByDesc(StationParamChange::getUpdateTime); return lqw; } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WebSiteNetDataAnalysisServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WebSiteNetDataAnalysisServiceImpl.java index 2ea1136..2a9464d 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WebSiteNetDataAnalysisServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WebSiteNetDataAnalysisServiceImpl.java @@ -79,6 +79,7 @@ public class WebSiteNetDataAnalysisServiceImpl implements IWebSiteNetDataAnalysi lqw.eq(bo.getPlanIncome() != null, WebSiteNetDataAnalysis::getPlanIncome, bo.getPlanIncome()); lqw.eq(bo.getActualIncome() != null, WebSiteNetDataAnalysis::getActualIncome, bo.getActualIncome()); lqw.eq(bo.getLastTime() != null, WebSiteNetDataAnalysis::getLastTime, bo.getLastTime()); + lqw.orderByDesc(WebSiteNetDataAnalysis::getUpdateTime); return lqw; } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java index da6d2ab..f3090d8 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java @@ -89,6 +89,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { lqw.eq(StringUtils.isNotBlank(bo.getArea()), WorkOrderInfo::getArea, bo.getArea()); lqw.eq(StringUtils.isNotBlank(bo.getMonitorType()), WorkOrderInfo::getMonitorType, bo.getMonitorType()); lqw.eq(StringUtils.isNotBlank(bo.getMonitorPerson()), WorkOrderInfo::getMonitorPerson, bo.getMonitorPerson()); + lqw.orderByDesc(WorkOrderInfo::getUpdateTime); return lqw; } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ZeroAdjustmentAnalysisServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ZeroAdjustmentAnalysisServiceImpl.java index f9aa967..8bb9a23 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ZeroAdjustmentAnalysisServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ZeroAdjustmentAnalysisServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.demo.service.impl; +import io.micrometer.core.instrument.util.TimeUtils; +import jakarta.annotation.Resource; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.demo.service.IStationInfoService; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.ZeroAdjustmentAnalysisBo; import org.dromara.demo.domain.vo.ZeroAdjustmentAnalysisVo; @@ -15,9 +18,13 @@ import org.dromara.demo.domain.ZeroAdjustmentAnalysis; import org.dromara.demo.mapper.ZeroAdjustmentAnalysisMapper; import org.dromara.demo.service.IZeroAdjustmentAnalysisService; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.concurrent.TimeUnit; /** * 校零校准分析Service业务层处理 @@ -31,6 +38,8 @@ public class ZeroAdjustmentAnalysisServiceImpl implements IZeroAdjustmentAnalysi private final ZeroAdjustmentAnalysisMapper baseMapper; + @Resource + private IStationInfoService stationInfoService; /** * 查询校零校准分析 * @@ -53,6 +62,20 @@ public class ZeroAdjustmentAnalysisServiceImpl implements IZeroAdjustmentAnalysi public TableDataInfo queryPageList(ZeroAdjustmentAnalysisBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List records = result.getRecords(); + for (ZeroAdjustmentAnalysisVo record : records) { + // 获取目标时间 + Date toZeroDate = record.getToZeroDate(); + if (toZeroDate == null) { + throw new IllegalArgumentException("目标时间不能为空"); + } + + // 动态生成 duration + String duration = getTimeDifference(toZeroDate); + // 如:"2701天20小时53分钟" + record.setDuration(duration); + } + result.setRecords(records); return TableDataInfo.build(result); } @@ -83,6 +106,7 @@ public class ZeroAdjustmentAnalysisServiceImpl implements IZeroAdjustmentAnalysi lqw.eq(StringUtils.isNotBlank(bo.getMonitorPerson()), ZeroAdjustmentAnalysis::getMonitorPerson, bo.getMonitorPerson()); lqw.eq(StringUtils.isNotBlank(bo.getMonitorCompany()), ZeroAdjustmentAnalysis::getMonitorCompany, bo.getMonitorCompany()); lqw.eq(StringUtils.isNotBlank(bo.getInsider()), ZeroAdjustmentAnalysis::getInsider, bo.getInsider()); + lqw.orderByDesc(ZeroAdjustmentAnalysis::getUpdateTime); return lqw; } @@ -94,6 +118,20 @@ public class ZeroAdjustmentAnalysisServiceImpl implements IZeroAdjustmentAnalysi */ @Override public Boolean insertByBo(ZeroAdjustmentAnalysisBo bo) { + String station = bo.getStation(); + String area = stationInfoService.getAreaByStationName(station); + bo.setArea(area); + // 获取目标时间 + Date toZeroDate = bo.getToZeroDate(); + if (toZeroDate == null) { + throw new IllegalArgumentException("目标时间不能为空"); + } + + // 动态生成 duration + String duration = getTimeDifference(toZeroDate); + // 如:"2701天20小时53分钟" + bo.setDuration(duration); + bo.setInsider("张志虎"); ZeroAdjustmentAnalysis add = MapstructUtils.convert(bo, ZeroAdjustmentAnalysis.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -103,6 +141,25 @@ public class ZeroAdjustmentAnalysisServiceImpl implements IZeroAdjustmentAnalysi return flag; } + private String getTimeDifference(Date toDate) { + LocalDateTime start = toDate.toInstant() + .atZone(java.time.ZoneId.systemDefault()) + .toLocalDateTime(); + + LocalDateTime end = LocalDateTime.now(); + + Duration duration = Duration.between(start, end); + + long days = duration.toDays(); + long hours = TimeUnit.SECONDS.toHours(duration.getSeconds()) % 24; + long minutes = TimeUnit.SECONDS.toMinutes(duration.getSeconds()) % 60; + + return String.format("%d天%d小时%d分钟", days, hours, minutes); + } + + + + /** * 修改校零校准分析 *