Quellcode durchsuchen

Merge branch 'master' into feature-fiveep-2021-7-12

jichaobo vor 4 Jahren
Ursprung
Commit
d546818bc2

+ 3 - 3
fiveep-controller/src/main/java/com/bizmatics/controller/web/AlarmPowerController.java

@@ -46,16 +46,16 @@ public class AlarmPowerController {
 
     /**
      * 告警趋势图
-     * @param days 天数
+     * @param startTime 天数
      * @param endTime 结束时间
      * @param siteId 站点id
      * @return
      */
     @GetMapping("/trendIco")
-    public ApiResult<List<CommonIcoVO>> selectByDate(@RequestParam Integer days,
+    public ApiResult<List<CommonIcoVO>> selectByDate(@RequestParam Date startTime,
                                                      @RequestParam Date endTime,
                                                      @RequestParam(required = false) Integer siteId){
-        return ApiResult.success(alarmPowerService.selectByDate(days,endTime,siteId));
+        return ApiResult.success(alarmPowerService.selectByDate(startTime,endTime,siteId));
     }
 
 

+ 5 - 0
fiveep-model/src/main/java/com/bizmatics/model/Device.java

@@ -73,4 +73,9 @@ public class Device implements Serializable {
 
     private Integer deviceStatus;
 
+    /**
+     * 站点里面字段信息
+     */
+    private String installedCapacity;
+
 }

+ 4 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/RtAnalogDataMapper.java

@@ -34,6 +34,10 @@ public interface RtAnalogDataMapper extends CrudMapper<RtAnalogData> {
                         @Param("siteId") Integer siteId);
 
 
+
+    List<RtAnalogData> list(@Param("userId") Integer userId);
+
+
     Map<String,Object> getOneMap(@Param("siteId")Integer siteId);
 
     List<HtAnalogData> getDataReportMap(@Param("siteId")Integer siteId, @Param("startTime") Date startTime, @Param("endTime")Date endTime);

+ 2 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/SiteMapper.java

@@ -3,6 +3,7 @@ package com.bizmatics.persistence.mapper;
 import com.bizmatics.model.Site;
 import com.bizmatics.common.mvc.base.CrudMapper;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -14,6 +15,7 @@ import java.util.List;
  * @author ya
  * @since 2021-07-07
  */
+@Repository
 public interface SiteMapper extends CrudMapper<Site> {
 
 

+ 4 - 1
fiveep-persistence/src/main/resources/mapper/mysql/DeviceMapper.xml

@@ -43,12 +43,15 @@
         </where>
     </select>
     <select id="list" resultType="com.bizmatics.model.Device">
-        select d.id,d.device_code,d.device_name,d.site_id,d.device_address,d.device_type,d.install_time,ds.device_status as deviceStatus
+        select d.id,d.device_code,d.device_name,d.site_id,d.device_address,d.device_type,d.install_time,ds.device_status as deviceStatus,
+        s.installed_capacity as installedCapacity
         from user_site as us
         inner join device_status as ds
         on us.site_id = ds.site_id
         inner join device as d
         on us.site_id = d.site_Id
+        inner join site as s
+        on s.id = us.site_id
         <where>
             <if test="userId != null and userId != 0">
                 and us.user_id = #{userId}

+ 15 - 0
fiveep-persistence/src/main/resources/mapper/mysql/RtAnalogDataMapper.xml

@@ -741,6 +741,21 @@
         ORDER BY
         t.dataTime
     </select>
+    <select id="list" resultType="com.bizmatics.model.RtAnalogData">
+        select deviceName,P
+        from user_site as us
+        inner join device as d
+        on us.site_id = d.site_id
+        inner join rt_analog_data as rad
+        on d.device_code = rad.deviceName
+        <where>
+            and d.enable=1
+            <if test="userId != null and userId != 0">
+                and us.user_id = #{userId}
+            </if>
+        </where>
+
+    </select>
 
 
 </mapper>

+ 1 - 1
fiveep-service/src/main/java/com/bizmatics/service/AlarmPowerService.java

@@ -30,7 +30,7 @@ public interface AlarmPowerService extends CrudService<AlarmPower> {
      * 告警趋势图
      * @return
      */
-    List<CommonIcoVO> selectByDate(Integer days,Date endTime,Integer siteId);
+    List<CommonIcoVO> selectByDate(Date startTime,Date endTime,Integer siteId);
 
     /**
      * list

+ 3 - 3
fiveep-service/src/main/java/com/bizmatics/service/impl/AlarmPowerServiceImpl.java

@@ -53,14 +53,14 @@ public class AlarmPowerServiceImpl extends AbstractCrudService<AlarmPowerMapper,
     }
 
     @Override
-    public List<CommonIcoVO> selectByDate(Integer days,Date endTime,Integer siteId) {
+    public List<CommonIcoVO> selectByDate(Date startTime,Date endTime,Integer siteId) {
         List<Object> faultList = new ArrayList<>();
         List<Object> rushList = new ArrayList<>();
         List<Object> noDisposeList = new ArrayList<>();
         List<Object> dateList = new ArrayList<>();
         Integer userId = SessionLocal.getUserId();
-        List<AlarmPower> alarmPowers = baseMapper.list(userId, siteId, null, DateUtils.addDays(endTime, -days), endTime, null, null);
-        for (int i = 0; i < days; i++) {
+        List<AlarmPower> alarmPowers = baseMapper.list(userId, siteId, null, startTime, endTime, null, null);
+        for (int i = 0; i < DateUtils.getDistanceDayOfTwoDate(startTime,endTime); i++) {
             Date setDays = DateUtils.addDays(endTime, -i);
             Date dayStartTime = DateUtils.getDayStartTime(setDays);
             Date dayEndTime = DateUtils.getDayEndTime(setDays);

+ 2 - 1
fiveep-service/src/main/java/com/bizmatics/service/impl/DeviceServiceImpl.java

@@ -40,7 +40,8 @@ public class DeviceServiceImpl extends AbstractCrudService<DeviceMapper, Device>
                 .selectCount(userId,null,DeviceStatusCode.DEVICE.getValue(),startTime,endTime,null));
         deviceCountVo.setFaultCount(baseMapper
                 .selectCount(userId,null,DeviceStatusCode.FAULT.getValue(),startTime,endTime,null));
-
+        deviceCountVo.setCount(baseMapper
+                .selectCount(userId,null,null,startTime,endTime,null));
         return deviceCountVo;
     }
 

+ 29 - 22
fiveep-service/src/main/java/com/bizmatics/service/impl/RtAnalogDataServiceImpl.java

@@ -13,7 +13,9 @@ import com.bizmatics.common.core.util.FileUtils;
 import com.bizmatics.common.core.util.StringUtils;
 import com.bizmatics.common.spring.util.GlobalUtils;
 import com.bizmatics.model.*;
+import com.bizmatics.persistence.mapper.DeviceMapper;
 import com.bizmatics.persistence.mapper.RtAnalogDataMapper;
+import com.bizmatics.persistence.mapper.SiteMapper;
 import com.bizmatics.service.RtAnalogDataService;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.service.SiteService;
@@ -34,6 +36,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -49,36 +52,40 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
     @Autowired
     private UserSiteService userSiteService;
     @Autowired
-    private SiteService siteService;
+    private DeviceMapper deviceMapper;
 
 
     @Override
     public RadCountVO selectCount() {
         Integer userId = SessionLocal.getUserId();
-        List<UserSite> userSites = userSiteService.list(Wrappers.lambdaQuery(UserSite.class).eq(UserSite::getUserId, userId));
         AtomicReference<Integer> heavyLoad = new AtomicReference<>(0);
         AtomicReference<Integer> easyLoad = new AtomicReference<>(0);
         AtomicReference<Integer> norMalLoad = new AtomicReference<>(0);
-        userSites.forEach(userSite -> {
-            Site site = siteService.getOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, userSite.getId()));
-            Double aDouble = baseMapper.selectTotalLoad(userId, site.getId());
-            String installedCapacity = site.getInstalledCapacity();
-            double installedCapacityDouble = 0.00;
-            if (StringUtils.isNotBlank(installedCapacity)){
-                installedCapacityDouble =  Double.parseDouble(installedCapacity);
-                if (installedCapacityDouble > 0){
-                    Arith.div(aDouble,installedCapacityDouble);
-                }
-            }
-            if (installedCapacityDouble < 0.4){
-                easyLoad.getAndSet(easyLoad.get() + 1);
-            }else if (installedCapacityDouble >= 0.4 && installedCapacityDouble <= 0.8){
-                norMalLoad.getAndSet(norMalLoad.get() + 1);
-            }else {
-                heavyLoad.getAndSet(heavyLoad.get() + 1);
-            }
-        });
-        int count = userSites.size();
+        List<Device> deviceList = deviceMapper.list(userId, null, null, null, null, null);
+        List<RtAnalogData> list = baseMapper.list(userId);
+        for (Device device:deviceList) {
+            list.stream()
+                    .filter(rtAnalogData -> device.getDeviceCode().equals(rtAnalogData.getDeviceName())).findAny()
+                    .ifPresent(rtAnalogData -> {
+                        String installedCapacity = device.getInstalledCapacity();
+                        double installedCapacityDouble = 0.00;
+                        if (StringUtils.isNotBlank(installedCapacity)){
+                            installedCapacityDouble =  Double.parseDouble(installedCapacity);
+                            if (installedCapacityDouble > 0){
+                                installedCapacityDouble = Arith.div(rtAnalogData.getP(),installedCapacityDouble);
+                            }
+                        }
+                        if (installedCapacityDouble < 0.4){
+                            easyLoad.getAndSet(easyLoad.get() + 1);
+                        }else if (installedCapacityDouble >= 0.4 && installedCapacityDouble <= 0.8){
+                            norMalLoad.getAndSet(norMalLoad.get() + 1);
+                        }else {
+                            heavyLoad.getAndSet(heavyLoad.get() + 1);
+                        }
+                    });
+
+        }
+        int count = deviceList.size();
         RadCountVO radCountVO = new RadCountVO();
         radCountVO.setHeavyLoad(Arith.div(heavyLoad.get(),count));
         radCountVO.setEasyLoad(Arith.div(easyLoad.get(),count));