From 2b5c36b4830adf4227f248d4e10bdb90b1e5f3d8 Mon Sep 17 00:00:00 2001
From: liulin <lin.liu@88.com>
Date: 星期四, 17 七月 2025 08:42:39 +0800
Subject: [PATCH] 添加首页大屏数据统计

---
 src/main/java/com/fengdu/gas/service/FacilityRunTimeService.java |  266 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 266 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/fengdu/gas/service/FacilityRunTimeService.java b/src/main/java/com/fengdu/gas/service/FacilityRunTimeService.java
new file mode 100644
index 0000000..73a2c6e
--- /dev/null
+++ b/src/main/java/com/fengdu/gas/service/FacilityRunTimeService.java
@@ -0,0 +1,266 @@
+/**
+#                                                    __----~~~~~~~~~~~------___
+#                                   .  .   ~~//====......          __--~ ~~
+#                   -.            \_|//     |||\\  ~~~~~~::::... /~
+#                ___-==_       _-~o~  \/    |||  \\            _/~~-
+#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
+#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
+#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
+# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
+# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
+#          '         ~-|      /|    |-~\~~       __--~~
+#                      |-~~-_/ |    |   ~\_   _-~            /\
+#                           /  \     \__   \/~                \__
+#                       _--~ _/ | .-~~____--~-/                  ~~==.
+#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
+#                                 -_     ~\      ~~---l__i__i__i--~~_/
+#                                 _-~-__   ~)  \--______________--~~
+#                               //.-~~~-~_--~- |-------~~~~~~~~
+#                                      //.-~~~--\
+#                  神兽保佑
+#                  永无BUG!
+*/
+package com.fengdu.gas.service;
+
+import com.fengdu.gas.common.*;
+import com.fengdu.gas.common.enums.*;
+import com.fengdu.gas.common.model.Tuple;
+import com.fengdu.gas.common.util.*;
+import com.fengdu.gas.entity.response.facility.FacilityPointCount;
+import org.apache.commons.lang3.BooleanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.*;
+import java.util.stream.Collectors;
+import com.fengdu.gas.repository.impl.FacilityRunTimeMapperImpl;
+import com.fengdu.gas.repository.po.FacilityRunTimePO;
+import com.fengdu.gas.entity.request.facilityruntime.ReqCreateFacilityRunTime;
+import com.fengdu.gas.entity.request.facilityruntime.ReqModifyFacilityRunTime;
+import com.fengdu.gas.entity.search.SearchFacilityRunTime;
+import com.fengdu.gas.repository.vo.FacilityRunTimeVO;
+import com.fengdu.gas.service.convert.FacilityRunTimeConvert;
+
+/**
+ * 设备运行时长
+ * @author zr
+ */
+@Service
+public class FacilityRunTimeService extends BaseService {
+    @Autowired
+    private FacilityRunTimeMapperImpl mapper;
+
+    public ExecutedResult<Long> create(ReqCreateFacilityRunTime request) {
+        // 转换po
+        FacilityRunTimePO item = FacilityRunTimeConvert.INSTANCE.toCreate(request);
+        // 设置状态
+        //item.setStatus(EState.NORMAL.getValue());
+        // 设置记录创建时间
+        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
+        // 是否删除(逻辑删除)初始值
+        item.setIsDelete(EYesOrNo.NO.getValue());
+
+        int rowCount = mapper.insert(item);
+        if (rowCount != 1) {
+            return ExecutedResult.failed("创建[设备运行时长]失败。");
+        }
+        return ExecutedResult.success(item.getId());
+    }
+
+    public ExecutedResult<String> modify(ReqModifyFacilityRunTime request) {
+        // 验证记录是否存在
+        ExecutedResult<FacilityRunTimePO> checkExists = this.check4Id(request.getId());
+        if (checkExists.isFailed()) {
+            return ExecutedResult.failed(checkExists.getMsg());
+        }
+        // 转换po
+        FacilityRunTimePO item = FacilityRunTimeConvert.INSTANCE.toModify(request);
+
+        int rowCount = mapper.updateById(item);
+        if (rowCount != 1) {
+            return ExecutedResult.failed("编辑[设备运行时长]失败。");
+        }
+        return ExecutedResult.success();
+    }
+
+    public ExecutedResult<FacilityRunTimeVO> get(Long id) {
+        FacilityRunTimeVO result = new FacilityRunTimeVO();
+
+        FacilityRunTimePO find = mapper.get(id);
+        if (null != find) {
+            // 转换vo
+            result = FacilityRunTimeConvert.INSTANCE.toVo(find);
+        }
+        return ExecutedResult.success(result);
+    }
+    public ExecutedResult<List<FacilityRunTimeVO>> getFacilityRunTime(){
+        List<FacilityRunTimeVO> result=new ArrayList<>();
+        List<FacilityRunTimePO> timePOS = mapper.selectByDataTime();
+        List<FacilityRunTimePO> dataTime = mapper.getDataTime();
+        if(ListUtil.isNotNullOrEmpty(dataTime)){
+            result=CopierUtil.mapTo(dataTime,FacilityRunTimeVO.class);
+            for(FacilityRunTimeVO timeVO:result){
+                List<FacilityRunTimePO> poList = timePOS.stream().filter(item -> item.getFacilityId().equals(timeVO.getFacilityId())).collect(Collectors.toList());
+                int sum = poList.stream().mapToInt(FacilityRunTimePO::getRunTime).sum();
+                int hours = sum / 60;
+                int minutes = sum % 60;
+                timeVO.setSumTimeString(hours+"时"+minutes+"分");
+                if(timeVO.getRunTime()>0){
+                    int i = timeVO.getRunTime() / 60;
+                    int i1 = timeVO.getRunTime() % 60;
+                    timeVO.setRunTimeString(i+"时"+i1+"分");
+                }
+
+            }
+        }
+        return ExecutedResult.success(result);
+    }
+//    public ExecutedResult<String> stop(Long id) {
+//        // 验证记录是否存在
+//        ExecutedResult<FacilityRunTimePO> checkExists = this.check4Id(id);
+//        if (checkExists.isFailed()) {
+//            return ExecutedResult.failed(checkExists.getMsg());
+//        }
+//        FacilityRunTimePO item = new FacilityRunTimePO();
+//        item.setId(id);
+//        item.setStatus(EState.DISABLED.getValue());
+//
+//        int rowCount = mapper.updateById(item);
+//        if (rowCount != 1) {
+//           return ExecutedResult.failed("停用[设备运行时长]失败。");
+//       }
+//       return ExecutedResult.success();
+//   }
+//
+//    public ExecutedResult<String> enable(Long id) {
+//        // 验证记录是否存在
+//        ExecutedResult<FacilityRunTimePO> checkExists = this.check4Id(id);
+//        if (checkExists.isFailed()) {
+//            return ExecutedResult.failed(checkExists.getMsg());
+//        }
+//        FacilityRunTimePO item = new FacilityRunTimePO();
+//        item.setId(id);
+//        item.setStatus(EState.NORMAL.getValue());
+//
+//        int rowCount = mapper.updateById(item);
+//        if (rowCount != 1) {
+//            return ExecutedResult.failed("启用[设备运行时长]失败。");
+//        }
+//        return ExecutedResult.success();
+//    }
+//
+//    public ExecutedResult<String> setSort(ReqSetSort request) {
+//        // 验证记录是否存在
+//        ExecutedResult<FacilityRunTimePO> checkExists = this.check4Id(request.getId());
+//        if (checkExists.isFailed()) {
+//            return ExecutedResult.failed(checkExists.getMsg());
+//        }
+//        FacilityRunTimePO item = new FacilityRunTimePO();
+//        item.setId(request.getId());
+//        item.setSort(request.getSort());
+//
+//        int rowCount = mapper.updateById(item);
+//        if (rowCount != 1) {
+//            return ExecutedResult.failed("设置[设备运行时长]排序值失败。");
+//        }
+//        return ExecutedResult.success();
+//    }
+//
+//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
+//        // id列表
+//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
+//        // 验证记录是否存在
+//        ExecutedResult<List<FacilityRunTimePO>> checkExists = this.check4Id(listId);
+//        if (checkExists.isFailed()) {
+//            return ExecutedResult.failed(checkExists.getMsg());
+//        }
+//
+//        List<FacilityRunTimePO> listUpdate = request.getList().stream()
+//                .map(c -> {
+//                    FacilityRunTimePO item = new FacilityRunTimePO();
+//                    item.setId(c.getId());
+//                    item.setSort(c.getSort());
+//                    return item;
+//                })
+//                .collect(Collectors.toList());
+//        Boolean result = mapper.modifyList(listUpdate);
+//        if (result) {
+//            return ExecutedResult.success();
+//        }
+//        return ExecutedResult.failed("[设备运行时长]设置排序值失败");
+//    }
+//
+//    public ExecutedResult<String> remove(Long id) {
+//        Boolean result = mapper.deleteLogic(id);
+//        if (BooleanUtils.isFalse(result)) {
+//            return ExecutedResult.failed("删除[设备运行时长]失败。");
+//        }
+//        return ExecutedResult.success();
+//    }
+//
+//    public ExecutedResult<String> removeList(List<Long> ids) {
+//        Boolean result = mapper.deleteLogic(ids);
+//        if (BooleanUtils.isFalse(result)) {
+//            return ExecutedResult.failed("删除[设备运行时长]失败。");
+//        }
+//        return ExecutedResult.success();
+//    }
+
+    public ExecutedResult<List<FacilityRunTimeVO>> getList(List<Long> listId) {
+        List<FacilityRunTimeVO> result = new ArrayList<>();
+
+        List<FacilityRunTimePO> list = mapper.getList(listId);
+        if (ListUtil.isNotNullOrEmpty(list)) {
+            // 转换vo
+            result = FacilityRunTimeConvert.INSTANCE.toVo(list);
+        }
+        return ExecutedResult.success(result);
+    }
+
+    public ExecutedResult<PagerResult<FacilityRunTimeVO>> search(SearchFacilityRunTime search) {
+        // 处理创建时间范围-查询参数
+        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
+        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
+            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
+        }
+        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
+            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
+        }
+
+        PagerResult<FacilityRunTimePO> pageList = mapper.search(search);
+        List<FacilityRunTimeVO> listVo = new ArrayList<>();
+        List<FacilityRunTimePO> list = pageList.getList();
+        if (ListUtil.isNotNullOrEmpty(list)) {
+            pageList.setLastId(list.get(list.size() - 1).getId());
+            // 转换vo
+            listVo = FacilityRunTimeConvert.INSTANCE.toVo(list);
+        }
+        PagerResult<FacilityRunTimeVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
+        result.setLastId(pageList.getLastId());
+        return ExecutedResult.success(result);
+    }
+
+    protected ExecutedResult<FacilityRunTimePO> check4Id(Long id) {
+        FacilityRunTimePO exists = mapper.get(id);
+        if (Objects.isNull(exists)) {
+            return ExecutedResult.failed("[设备运行时长]不存在:" + id);
+        }
+        return ExecutedResult.success(exists);
+    }
+    protected ExecutedResult<List<FacilityRunTimePO>> check4Id(List<Long> listId) {
+        // 从数据库查找设备运行时长
+        List<FacilityRunTimePO> list = mapper.getList(listId);
+        if (ListUtil.isNullOrEmpty(list)) {
+            return ExecutedResult.failed("[设备运行时长]不存在." + listId);
+        }
+        // 数据库找到的id列表
+        List<Long> listIdFind = list.stream().map(FacilityRunTimePO::getId).collect(Collectors.toList());
+        // 数量不一致
+        if (listId.size() != listIdFind.size()) {
+            // 筛选数据库不存在的设备运行时长
+            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
+            if (ListUtil.isNullOrEmpty(list)) {
+                return ExecutedResult.failed("[设备运行时长]不存在." + listIdNotFound);
+            }
+        }
+        return ExecutedResult.success(list);
+    }}

--
Gitblit v1.9.3