|
@@ -1,8 +1,15 @@
|
|
|
package com.bizmatics.service.impl;
|
|
|
|
|
|
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
+import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.bizmatics.common.core.exception.BusinessException;
|
|
|
+import com.bizmatics.common.core.util.BeanMapperUtils;
|
|
|
import com.bizmatics.common.core.util.DateUtils;
|
|
|
+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.RtAnalogDataMapper;
|
|
|
import com.bizmatics.service.RtAnalogDataService;
|
|
@@ -12,13 +19,16 @@ import com.bizmatics.service.UserSiteService;
|
|
|
import com.bizmatics.service.util.Arith;
|
|
|
import com.bizmatics.service.util.SessionLocal;
|
|
|
import com.bizmatics.service.vo.RadCountVO;
|
|
|
+import com.bizmatics.service.vo.HtAnalogData1ExportVO;
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.boot.configurationprocessor.json.JSONArray;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
/**
|
|
@@ -261,13 +271,14 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
Map<String,Object> map8 = new HashMap<>();
|
|
|
Map<String,Object> map9 = new HashMap<>();
|
|
|
HtAnalogData rtAnalogData = (HtAnalogData)rtAnalogDataList.get(i);
|
|
|
- if (days<=24){
|
|
|
- map.put("dataTime",DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
|
|
|
- }else if (days<360&&days>24){
|
|
|
- map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
|
|
|
- }else if (days>=360){
|
|
|
- map.put("dataTime",DateUtils.format(rtAnalogData.getDataTime(),DateUtils.PARSE_PATTERNS[8]));
|
|
|
- }
|
|
|
+// if (days<=24){
|
|
|
+// map.put("dataTime",DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
|
|
|
+// }else if (days<360&&days>24){
|
|
|
+// map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
|
|
|
+// }else if (days>=360){
|
|
|
+// map.put("dataTime",DateUtils.format(rtAnalogData.getDataTime(),DateUtils.PARSE_PATTERNS[8]));
|
|
|
+// }
|
|
|
+ map.put("dataTime",rtAnalogData.getDataTime());
|
|
|
|
|
|
if (ArrayUtils.contains(result,"I")){
|
|
|
map1.put("Ia",rtAnalogData.getIa());
|
|
@@ -343,12 +354,12 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
|
|
|
if (ArrayUtils.contains(result,"I")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("Ia");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("Ib");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("Ic");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("Ia");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("Ib");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("Ic");
|
|
|
}
|
|
|
mapIe1.put("name","A相电流");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -361,24 +372,24 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe3);
|
|
|
}else if (ArrayUtils.contains(result,"P")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("P");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("Q");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("Pa");
|
|
|
- arre4[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre4[i][0]=list4.get(i).get("Pb");
|
|
|
- arre5[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre5[i][0]=list5.get(i).get("Pc");
|
|
|
- arre6[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre6[i][0]=list6.get(i).get("Qa");
|
|
|
- arre7[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre7[i][0]=list7.get(i).get("Qb");
|
|
|
- arre8[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre8[i][0]=list8.get(i).get("Qc");
|
|
|
- arre9[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre9[i][0]=list9.get(i).get("Demand");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("P");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("Q");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("Pa");
|
|
|
+ arre4[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre4[i][1]=list4.get(i).get("Pb");
|
|
|
+ arre5[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre5[i][1]=list5.get(i).get("Pc");
|
|
|
+ arre6[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre6[i][1]=list6.get(i).get("Qa");
|
|
|
+ arre7[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre7[i][1]=list7.get(i).get("Qb");
|
|
|
+ arre8[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre8[i][1]=list8.get(i).get("Qc");
|
|
|
+ arre9[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre9[i][1]=list9.get(i).get("Demand");
|
|
|
}
|
|
|
mapIe1.put("name","总有功功率");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -409,14 +420,14 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe9);
|
|
|
}else if (ArrayUtils.contains(result,"KWh")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("Epn");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("Epp");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("Eqn");
|
|
|
- arre4[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre4[i][0]=list4.get(i).get("Eqp");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("Epn");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("Epp");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("Eqn");
|
|
|
+ arre4[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre4[i][1]=list4.get(i).get("Eqp");
|
|
|
}
|
|
|
mapIe1.put("name","负有功电度");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -432,20 +443,20 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe4);
|
|
|
}else if (ArrayUtils.contains(result,"V")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("Ua");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("Ub");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("Uc");
|
|
|
- arre4[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre4[i][0]=list4.get(i).get("Uab");
|
|
|
- arre5[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre5[i][0]=list5.get(i).get("Ubc");
|
|
|
- arre6[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre6[i][0]=list6.get(i).get("Uca");
|
|
|
- arre7[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre7[i][0]=list7.get(i).get("Ul");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("Ua");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("Ub");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("Uc");
|
|
|
+ arre4[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre4[i][1]=list4.get(i).get("Uab");
|
|
|
+ arre5[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre5[i][1]=list5.get(i).get("Ubc");
|
|
|
+ arre6[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre6[i][1]=list6.get(i).get("Uca");
|
|
|
+ arre7[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre7[i][1]=list7.get(i).get("Ul");
|
|
|
}
|
|
|
mapIe1.put("name","A相电压");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -470,16 +481,16 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe7);
|
|
|
}else if (ArrayUtils.contains(result,"C")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("T1");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("T2");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("T3");
|
|
|
- arre4[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre4[i][0]=list4.get(i).get("T4");
|
|
|
- arre5[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre5[i][0]=list5.get(i).get("DeviceTemp");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("T1");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("T2");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("T3");
|
|
|
+ arre4[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre4[i][1]=list4.get(i).get("T4");
|
|
|
+ arre5[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre5[i][1]=list5.get(i).get("DeviceTemp");
|
|
|
}
|
|
|
mapIe1.put("name","外接温度1");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -498,22 +509,22 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe5);
|
|
|
}else if (ArrayUtils.contains(result,"HZ")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("F");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("F");
|
|
|
}
|
|
|
mapIe1.put("name","频率");
|
|
|
mapIe1.put("arr",arre1);
|
|
|
list.add(mapIe1);
|
|
|
}else if (ArrayUtils.contains(result,"PS")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("COSa");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("COSb");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("COSc");
|
|
|
- arre4[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre4[i][0]=list4.get(i).get("COS");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("COSa");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("COSb");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("COSc");
|
|
|
+ arre4[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre4[i][1]=list4.get(i).get("COS");
|
|
|
}
|
|
|
mapIe1.put("name","A相功率因数");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -529,12 +540,12 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe4);
|
|
|
}else if (ArrayUtils.contains(result,"RMS")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("IHa");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("IHb");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("IHc");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("IHa");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("IHb");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("IHc");
|
|
|
}
|
|
|
mapIe1.put("name","Ia总谐波电流");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -547,20 +558,20 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
list.add(mapIe3);
|
|
|
}else if (ArrayUtils.contains(result,"DDB")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("SignalIntensity");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("SignalIntensity");
|
|
|
}
|
|
|
mapIe1.put("name","设备信号强度");
|
|
|
mapIe1.put("arr",arre1);
|
|
|
list.add(mapIe1);
|
|
|
}else if (ArrayUtils.contains(result,"VT")){
|
|
|
for (int i = 0; i < listdataTime.size(); i++) {
|
|
|
- arre1[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre1[i][0]=list1.get(i).get("Upt");
|
|
|
- arre2[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre2[i][0]=list2.get(i).get("Udt");
|
|
|
- arre3[i][1]=listdataTime.get(i).get("dataTime");
|
|
|
- arre3[i][0]=list3.get(i).get("Ust");
|
|
|
+ arre1[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre1[i][1]=list1.get(i).get("Upt");
|
|
|
+ arre2[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre2[i][1]=list2.get(i).get("Udt");
|
|
|
+ arre3[i][0]=listdataTime.get(i).get("dataTime");
|
|
|
+ arre3[i][1]=list3.get(i).get("Ust");
|
|
|
}
|
|
|
mapIe1.put("name","电压暂升次数");
|
|
|
mapIe1.put("arr",arre1);
|
|
@@ -576,4 +587,58 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String DataReportExport(Integer siteId,Date startTime, Date endTime,String queryType){
|
|
|
+ Integer userId = SessionLocal.getUserId();
|
|
|
+ Workbook workbook = null;
|
|
|
+ File file = null;
|
|
|
+ long diff = endTime.getTime() - startTime.getTime();
|
|
|
+ long days = diff / (1000 * 60 * 60);
|
|
|
+ try {
|
|
|
+ ExportParams params = new ExportParams(null, "数据报表");
|
|
|
+ workbook = ExcelExportUtil.exportBigExcel(params, HtAnalogData1ExportVO.class,
|
|
|
+ (o, i) -> {
|
|
|
+ Page<HtAnalogData> page = new Page<>(i, 30);
|
|
|
+ if (days<=24){
|
|
|
+ page = baseMapper.getDataReportMap1(page,siteId, startTime, endTime);
|
|
|
+ }else if (days<360&&days>24){
|
|
|
+ List<Device> device_list = baseMapper.getDeviceListMap(siteId);
|
|
|
+ page = baseMapper.getDataReportMMap1(page,device_list,startTime, endTime);
|
|
|
+ }else if (days>=360){
|
|
|
+ List<Device> device_list = baseMapper.getDeviceListMap(siteId);
|
|
|
+ page = baseMapper.getDataReportDMap1(page,device_list,startTime, endTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ return new ArrayList<>(BeanMapperUtils.mapList(page.getRecords(), HtAnalogData.class, HtAnalogData1ExportVO.class));
|
|
|
+ },null);
|
|
|
+ if (null != workbook) {
|
|
|
+ file = FileUtils.getFile(GlobalUtils.getTempBaseDir(), String.format("%s-%s.xlsx", "数据报表", System.currentTimeMillis() + ""));
|
|
|
+ FileUtils.createFile(file.getAbsolutePath());
|
|
|
+ FileOutputStream allListingFileOutputStream = new FileOutputStream(file);
|
|
|
+ workbook.write(allListingFileOutputStream);
|
|
|
+ } else {
|
|
|
+ throw new BusinessException("表格数据为空");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("导出文件失败", e);
|
|
|
+ throw new BusinessException("导出文件失败");
|
|
|
+ } finally {
|
|
|
+ if (workbook != null) {
|
|
|
+ try {
|
|
|
+ workbook.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error("===export spec=== 关闭workbook失败", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return file.getName();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|