Bläddra i källkod

添加公有的方法处理数据

yq 4 år sedan
förälder
incheckning
1e89032ae4

+ 3 - 6
fiveep-persistence/src/main/resources/mapper/mysql/AlarmPowerMapper.xml

@@ -94,7 +94,7 @@
         order by rsd.sending_time desc
     </select>
     <select id="list" resultType="com.bizmatics.model.AlarmPower">
-        select *
+        select ap.id,ap.digital_value,ap.sending_time
         from user_site as us
         inner join device as d
         on us.site_id = d.site_id
@@ -110,11 +110,8 @@
             <if test="handlingStatus != null">
                 and ap.handling_status = #{handlingStatus}
             </if>
-            <if test="startTime != null">
-                and ap.soe_time = #{startTime}
-            </if>
-            <if test="endTime != null">
-                and ap.soe_time = #{endTime}
+            <if test="startTime != null and endTime != null">
+                and ap.sending_time between #{startTime} and #{endTime}
             </if>
             <if test="measName != null and measName != ''">
                 and ap.meas_name = #{measName}

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

@@ -107,7 +107,7 @@
                 and us.site_id = #{siteId}
             </if>
             <if test="startTime != null and endTime != null">
-                and rad.dataTime BETWEEN #{startTime},#{endTime}
+                and rad.dataTime BETWEEN #{startTime} and #{endTime}
             </if>
             <if test="endTime != null and startTime != null">
                 and rad.dataTime BETWEEN   #{startTime} and #{endTime}

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

@@ -20,9 +20,12 @@ import com.bizmatics.service.vo.AlarmPowerExportVO;
 import com.bizmatics.service.vo.ApCountVO;
 import com.bizmatics.service.vo.CommonIcoVO;
 import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
+import org.apache.ibatis.annotations.Param;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.unit.DataUnit;
 
 import java.text.SimpleDateFormat;
 import java.time.Duration;
@@ -60,13 +63,14 @@ public class AlarmPowerServiceImpl extends AbstractCrudService<AlarmPowerMapper,
         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++) {
             Date setDays = DateUtils.addDays(endTime, -i);
             Date dayStartTime = DateUtils.getDayStartTime(setDays);
             Date dayEndTime = DateUtils.getDayEndTime(setDays);
-            faultList.add(baseMapper.selectCount(userId, siteId, null, dayStartTime, dayEndTime, null, null));
-            rushList.add(baseMapper.selectCount(userId, siteId, 1, dayStartTime, dayEndTime, null, null));
-            noDisposeList.add(baseMapper.selectCount(userId, siteId, 0, dayStartTime, dayEndTime, null, null));
+            faultList.add(getCount(alarmPowers,null,dayStartTime,dayEndTime,null,null));
+            rushList.add(getCount(alarmPowers,1,dayStartTime,dayEndTime,null,null));
+            noDisposeList.add(getCount(alarmPowers,0,dayStartTime,dayEndTime,null,null));
             dateList.add(DateUtils.getMonth(setDays)+"-"+DateUtils.getDay(setDays));
         }
         List<CommonIcoVO> list = new ArrayList<>();
@@ -170,35 +174,42 @@ public class AlarmPowerServiceImpl extends AbstractCrudService<AlarmPowerMapper,
         List<Object> offDateS = new ArrayList<>();
         List<Object> runStatus = new ArrayList<>();
         List<Object> runDates = new ArrayList<>();
-        Date forEndTime;
-        do {
-            Date dayStartTime = DateUtils.getDayStartTime(startTime);
-            Date dayEndTime = DateUtils.getDayEndTime(startTime);
-            Integer count = baseMapper.selectCount(userId, siteId, null, dayStartTime, dayEndTime, "LoadLive", 1);
-            offCounts.add(count);
-            forEndTime = dayEndTime;
-            offDateS.add(DateUtils.format(endTime,DateUtils.PARSE_PATTERNS[8]));
-        } while (forEndTime.before(endTime));
-
-        List<AlarmPower> loadLive = baseMapper.list(userId, siteId, null, startTime, endTime, "LoadLive", null);
-        loadLive.forEach(alarmPower -> {
-            runStatus.add(alarmPower.getDigitalValue());
-            runDates.add(DateUtils.format(alarmPower.getSendingTime(),DateUtils.PARSE_PATTERNS[5]));
-        });
+        List<AlarmPower> alarmPowers = baseMapper.list(userId, siteId, null, startTime, endTime, "LoadLive", null);
+        if (!CollectionUtils.isEmpty(list)){
+            Date forEndTime;
+            do {
+                Date dayStartTime = DateUtils.getDayStartTime(startTime);
+                Date dayEndTime = DateUtils.getDayEndTime(startTime);
+                offCounts.add(getCount(alarmPowers,null,dayStartTime,dayEndTime,null,null));
+                forEndTime = dayEndTime;
+                offDateS.add(DateUtils.format(endTime,DateUtils.PARSE_PATTERNS[8]));
+            } while (forEndTime.before(endTime));
+
+            alarmPowers.forEach(alarmPower -> {
+                runStatus.add(alarmPower.getDigitalValue());
+                runDates.add(DateUtils.format(alarmPower.getSendingTime(),DateUtils.PARSE_PATTERNS[5]));
+            });
+        }
         list.add(CommonIcoVO.builder().name("offCount").list(offCounts).listDate(offDateS).build());
         list.add(CommonIcoVO.builder().name("runStates").list(runStatus).listDate(runDates).build());
         return list;
     }
 
-//    /**
-//     * 组装数据
-//     */
-//    public void assembleData(){
-//        List<AlarmPower> list = baseMapper.list(userId, siteId, null, dayStartTime, dayEndTime, null, null);
-//        for (:) {
-//
-//        }
-//        list.stream().filter(alarmPower -> alarmPower.getSendingTime())
-//
-//    }
+
+    /**
+     * 汇总
+     * @param list
+     * @param handlingStatus
+     * @param startTime
+     * @param endTime
+     * @param digitalStatus
+     */
+    public Long getCount(List<AlarmPower> list,Integer handlingStatus, Date startTime, Date endTime, Integer digitalStatus,String measName){
+        return list.stream()
+                .filter(alarmPower -> alarmPower.getSendingTime().after(startTime) && alarmPower.getSendingTime().before(endTime))
+                .filter(alarmPower -> Optional.ofNullable(handlingStatus).map(hand -> hand.equals(alarmPower.getHandlingStatus())).orElse(true))
+                .filter(alarmPower -> Optional.ofNullable(digitalStatus).map(dig -> dig.equals(alarmPower.getDigitalValue())).orElse(true))
+                .filter(alarmPower -> Optional.ofNullable(measName).map(means -> means.equals(alarmPower.getMeasName())).orElse(true))
+                .count();
+    }
 }