diff --git a/pom.xml b/pom.xml
index c316737..0850eca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,7 @@
1.4
0.9.0
3.2.0
+ 3.2.1
@@ -115,7 +116,12 @@
commons-fileupload
${commons.fileupload.version}
-
+
+
+ com.alibaba
+ easyexcel
+ ${easyexcel.version}
+
@@ -140,12 +146,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java
index 97113e8..e0e3c74 100644
--- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java
+++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalAlarmController.java
@@ -101,7 +101,7 @@ public class TerminalAlarmController extends BaseController {
@ApiOperation(value = "当日报警统计", notes = "当日报警统计", httpMethod = "POST")
@ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
@RequestMapping("/getTodayAlarmStatistics")
- @Log(title = "七天报警统计", type = "查询")
+ @Log(title = "当日报警统计", type = "查询")
public ResponseReult getTodayAlarmStatistics(@Validated WeekAlarmVo vo) {
ServiceBody serviceBody = terminalAlarmService.getTodayAlarmStatistics(vo);
if (serviceBody.getCode() == ServiceStatus.SUCCESS) {
diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java
index dc1babf..9e867a0 100644
--- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java
+++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java
@@ -5,7 +5,9 @@ import com.shxy.xymanager_common.base.BaseController;
import com.shxy.xymanager_common.base.ResponseReult;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.bean.ServiceStatus;
+import com.shxy.xymanager_common.excelbean.TerminalListExcelModel;
import com.shxy.xymanager_common.model.*;
+import com.shxy.xymanager_common.util.EasyExcelUtil;
import com.shxy.xymanager_common.util.xinyin.HeaderUtil;
import com.shxy.xymanager_common.vo.*;
import com.shxy.xymanager_service.service.TerminalService;
@@ -19,6 +21,10 @@ import org.springframework.http.HttpHeaders;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
@Api(value = "设备接口", tags = "设备接口相关")
@RestController
@@ -41,6 +47,15 @@ public class TerminalController extends BaseController {
}
}
+ @ApiOperation(value = "导出设备列表Excel", notes = "导出设备列表Excel", httpMethod = "POST")
+ @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
+ @RequestMapping("/getTerminalListExcel")
+ @Log(title = "获取设备列表", type = "查询")
+ public void getTerminalListExcel(HttpServletResponse response) throws IOException {
+ ServiceBody> serviceBody = terminalService.getTerminalListExcel(null);
+ EasyExcelUtil.createExcel(response,"设备表",serviceBody.getData(), TerminalListExcelModel.class);
+ }
+
@ApiOperation(value = "获取绘制图标", notes = "绘制坐标保存接口", httpMethod = "POST")
@ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
@RequestMapping("/getCoordinate")
diff --git a/xymanager_common/pom.xml b/xymanager_common/pom.xml
index 496dca5..98e772f 100644
--- a/xymanager_common/pom.xml
+++ b/xymanager_common/pom.xml
@@ -127,6 +127,12 @@
org.springframework.boot
spring-boot-starter-validation
+
+
+ com.alibaba
+ easyexcel
+
+
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndPositionDto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndPositionDto.java
new file mode 100644
index 0000000..3b2b77c
--- /dev/null
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/dto/TerminalsAndPositionDto.java
@@ -0,0 +1,25 @@
+package com.shxy.xymanager_common.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+import java.util.Date;
+
+@Data
+public class TerminalsAndPositionDto implements Serializable {
+ private Integer id;
+
+ private Integer towerId;
+
+ private String cmdId;
+
+ private Double latitude;
+
+ private Double longitude;
+
+ private Integer radius;
+
+ private static final long serialVersionUID = 1L;
+
+}
\ No newline at end of file
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalPositions.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalPositions.java
index fd59256..99be6d5 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalPositions.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalPositions.java
@@ -10,7 +10,7 @@ public class TerminalPositions implements Serializable {
private Byte coordinateType;
- private Short radius;
+ private Integer radius;
private Double latitude;
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalListExcelModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalListExcelModel.java
new file mode 100644
index 0000000..8797e3e
--- /dev/null
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/excelbean/TerminalListExcelModel.java
@@ -0,0 +1,53 @@
+package com.shxy.xymanager_common.excelbean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 设备信息列表
+ */
+@Data
+@ApiModel(value = "设备列表excel", description = "设备列表excel")
+public class TerminalListExcelModel implements Serializable {
+
+
+
+ @ColumnWidth(20)
+ @ExcelProperty("线路名称")
+ @ApiModelProperty(value = "线路名称", example = "123456")
+ private String lineName;
+
+ @ColumnWidth(20)
+ @ExcelProperty("杆塔名称")
+ @ApiModelProperty(value = "杆塔名称", example = "123456")
+ private String towerName;
+
+ @ColumnWidth(20)
+ @ExcelProperty("设备编号")
+ @ApiModelProperty(value = "设备编号", example = "123456")
+ private String cmdId;
+
+ @ColumnWidth(20)
+ @ExcelProperty("纬度")
+ @ApiModelProperty(value = "纬度", example = "21321")
+ private Double latitude;
+
+ @ColumnWidth(20)
+ @ExcelProperty("经度")
+ @ApiModelProperty(value = "经度", example = "213")
+ private Double longitude;
+
+ @ColumnWidth(20)
+ @ExcelProperty("半径")
+ @ApiModelProperty(value = "经度", example = "123456")
+ private Integer radius;
+
+}
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/EasyExcelUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/EasyExcelUtil.java
new file mode 100644
index 0000000..b9166c9
--- /dev/null
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/EasyExcelUtil.java
@@ -0,0 +1,220 @@
+package com.shxy.xymanager_common.util;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
+import com.alibaba.excel.write.handler.RowWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+public class EasyExcelUtil implements RowWriteHandler {
+
+ private int mergeRowIndex;//从哪一行开始合并
+ private int[] mergeColumnIndex;//excel合并的列
+ private int[] signNum;//合并的唯一标识
+ private int total;//总行数
+ private int lastRow;
+ private int firstCol;
+ private int lastCol;
+ private int firstRow;
+ private int mergeCount = 1;
+
+ private EasyExcelUtil(){}
+
+ private EasyExcelUtil(int mergeRowIndex, int[] mergeColumnIndex, int[] signNum, int total) {
+ this.mergeRowIndex = mergeRowIndex;
+ this.mergeColumnIndex = mergeColumnIndex;
+ this.signNum = signNum;
+ this.total = total;
+ }
+
+ /**
+ * 导出excel
+ * @param response
+ * @param fileName 文件名称
+ * @param exportList 导出数据
+ * @param clazz 导出实体bean class对象
+ * @param
+ * @throws IOException
+ */
+ public static void createExcel(HttpServletResponse response, String fileName, List exportList,
+ Class clazz)
+ throws IOException {
+ createExcel(response,fileName,exportList,clazz,null);
+ }
+
+ /**
+ * 导出excel
+ * @param response
+ * @param fileName 文件名称
+ * @param exportList 导出数据
+ * @param clazz 导出实体bean class对象
+ * @param cellMerge 单元格合并规则
+ * @param
+ * @throws IOException
+ */
+ public static void createExcel(HttpServletResponse response, String fileName, List exportList,
+ Class clazz, CellMerge cellMerge)
+ throws IOException {
+ // 设置下载信息
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
+
+ //定义ExcelWriterSheetBuilder
+ ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel
+ .write(response.getOutputStream(), clazz)
+ .sheet(fileName);
+
+ //合并单元格
+ if (cellMerge != null) {
+ // 从那一行开始合并
+ int mergeRowIndex = 1;
+ EasyExcelUtil
+ excelMergeRowByRowStrategy = new EasyExcelUtil(mergeRowIndex, cellMerge.getMergeColumIndex(),
+ cellMerge.getMergeRuleColumIndex(), exportList.size());
+ excelWriterSheetBuilder.registerWriteHandler(excelMergeRowByRowStrategy);
+ }
+
+ //设置头样式
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ //设置内容格式
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+ new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ //设计内容居中
+ contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ //设置内容自动换行
+ contentWriteCellStyle.setWrapped(true);
+ excelWriterSheetBuilder.registerWriteHandler(horizontalCellStyleStrategy);
+
+ //调用doWrite方法
+ excelWriterSheetBuilder.doWrite(exportList);
+ }
+
+ @Override
+ public void beforeRowCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Integer integer, Integer integer1, Boolean aBoolean) {
+
+ }
+
+ @Override
+ public void afterRowCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer integer, Boolean aBoolean) {
+
+ }
+
+ @Override
+ public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row,
+ Integer relativeRowIndex, Boolean isHead) {
+ //当前行
+ int curRowIndex = row.getRowNum();
+ //每一行的最大列数
+ short lastCellNum = row.getLastCellNum();
+
+ if (curRowIndex == 1) {
+ //赋初值 第一行
+ firstRow = curRowIndex;
+ }
+ //开始合并位置
+ if (curRowIndex > mergeRowIndex && !row.getCell(0).getStringCellValue().equals("")) {
+ for (int i = 0; i < lastCellNum; i++) {
+ if (i == mergeColumnIndex[i]) {
+ //当前行号 当前行对象 合并的标识位
+ mergeWithPrevAnyRow(writeSheetHolder.getSheet(), curRowIndex, row, signNum);
+ break;//已经进入到合并单元格操作里面了,执行一次就行
+ }
+ }
+ }
+ }
+
+ public void mergeWithPrevAnyRow(Sheet sheet, int curRowIndex, Row row, int[] signNum) {
+ Row preRow = row.getSheet().getRow(curRowIndex - 1);
+ List rowDataList = new ArrayList<>();
+ List preDataList = new ArrayList<>();
+
+ for (int i : signNum) {
+ Object currentData =
+ row.getCell(i).getCellTypeEnum() == CellType.STRING ? row.getCell(i).getStringCellValue() :
+ row.getCell(i).getNumericCellValue();
+ Object preData =
+ preRow.getCell(i).getCellTypeEnum() == CellType.STRING ? preRow.getCell(i).getStringCellValue() :
+ preRow.getCell(i).getNumericCellValue();
+ rowDataList.add(String.valueOf(currentData));
+ preDataList.add(String.valueOf(preData));
+ }
+
+ String rowDataStr = String.join(",", rowDataList);
+ String preDataStr = String.join(",", preDataList);
+
+ //判断是否合并单元格
+ boolean curEqualsPre = rowDataStr.equals(preDataStr);
+ //判断前一个和后一个相同 并且 标识位相同
+ if (curEqualsPre) {
+ lastRow = curRowIndex;
+ mergeCount++;
+ }
+ //excel过程中合并
+ if (!curEqualsPre && mergeCount > 1) {
+ mergeSheet(firstRow, lastRow, mergeColumnIndex, sheet);
+ mergeCount = 1;
+ }
+
+ //excel结尾处合并
+ if (mergeCount > 1 && total == curRowIndex) {
+ mergeSheet(firstRow, lastRow, mergeColumnIndex, sheet);
+ mergeCount = 1;
+ }
+
+ if (!curEqualsPre) {
+ firstRow = curRowIndex;
+ }
+
+ }
+
+ private void mergeSheet(int firstRow, int lastRow, int[] mergeColumnIndex, Sheet sheet) {
+ for (int colNum : mergeColumnIndex) {
+ firstCol = colNum;
+ lastCol = colNum;
+ CellRangeAddress cellRangeAddress = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
+ sheet.addMergedRegion(cellRangeAddress);
+ }
+ }
+
+ /**
+ * 单元格合并类
+ */
+ @Data
+ @AllArgsConstructor
+ @NoArgsConstructor
+ public class CellMerge {
+ private int[] mergeColumIndex;
+ private int[] mergeRuleColumIndex;
+ }
+
+ /**
+ * 设置单元格合并规则
+ * @param mergeColumIndex
+ * @param mergeRuleColumIndex
+ * @return
+ */
+ public static CellMerge setCellMerge(int[] mergeColumIndex,int[] mergeRuleColumIndex){
+ EasyExcelUtil excelUtil = new EasyExcelUtil();
+ CellMerge cellMerge = excelUtil.new CellMerge();
+ cellMerge.setMergeColumIndex(mergeColumIndex);
+ cellMerge.setMergeRuleColumIndex(mergeRuleColumIndex);
+ return cellMerge;
+ }
+}
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/LastTowerVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/LastTowerVo.java
index 07098a2..d13948c 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/LastTowerVo.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/LastTowerVo.java
@@ -5,12 +5,15 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "最新杆塔请求", description = "最新杆塔请求")
public class LastTowerVo {
@ApiModelProperty(value = "编号", example = "电压编号 线路编号")
private Integer id;
+
+ @NotNull(message = "查询类型不能缺少")
@ApiModelProperty(value = "查询类型", example = "1--电压 2--线路 ")
private Integer type;
diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java
index 77c9e47..98029ee 100644
--- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java
+++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalsDao.java
@@ -2,6 +2,7 @@ package com.shxy.xymanager_dao.dao;
import com.shxy.xymanager_common.dto.ChannelAndTermDto;
import com.shxy.xymanager_common.dto.TerminalInfoDto;
+import com.shxy.xymanager_common.dto.TerminalsAndPositionDto;
import com.shxy.xymanager_common.dto.TerminalsAndStatusDto;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_common.vo.RelateTerminalListRuleIdVo;
@@ -16,6 +17,8 @@ public interface TerminalsDao {
List selectAll(@Param("status") Integer status);
+ List selectTermAndPosition(@Param("status") Integer status);
+
Terminals selectById(@Param("id") Integer id, @Param("status") Integer status);
List selectTermAndStatusList(@Param("status") Integer status, @Param("dyid") Integer dyid, @Param("lineid") Integer lineid, @Param("towerid") Integer towerid, @Param("search") String search);
diff --git a/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml
index 7080ac4..ed6390d 100644
--- a/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/TerminalImgAlarmsDao.xml
@@ -118,7 +118,7 @@
count(*) as num,
b.label as label,
b.name as name,
- b.en_name as en_name,
+ b.en_name as en_name
from
terminal_img_alarms a left join terminal_img_alarm_details b on a.id = b.alarm_id
where a.alarm_time between #{starttime} and #{endtime}
diff --git a/xymanager_dao/src/main/resources/mappers/TerminalPositionsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalPositionsDao.xml
index e6f8442..4ddb877 100644
--- a/xymanager_dao/src/main/resources/mappers/TerminalPositionsDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/TerminalPositionsDao.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml
index 43a1db3..dd72617 100644
--- a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml
@@ -55,6 +55,15 @@
+
+
+
+
+
+
+
+
+
id, line_id,tower_id,cmdid, org_id, equip_name, display_name, model, essential_info_version, has_pan,
bs_manufacturer, bs_production_date, bs_identifier, latitude, longitude, create_time,
@@ -220,6 +229,20 @@
+
+
insert into terminals
diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java
index 526fb0c..df6acb2 100644
--- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java
+++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/interaction/JwtInterceptor.java
@@ -43,37 +43,37 @@ public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 忽略带JwtIgnore注解的请求, 不做后续token认证校验
-// if (handler instanceof HandlerMethod) {
-// HandlerMethod handlerMethod = (HandlerMethod) handler;
-// JwtIgnore jwtIgnore = handlerMethod.getMethodAnnotation(JwtIgnore.class);
-// if (jwtIgnore != null) {
-// return true;
-// }
-// }
-// if (HttpMethod.GET.name().equals(request.getMethod())) {
-// response.setStatus(HttpServletResponse.SC_OK);
-// return true;
-// }
-// // 获取请求头信息authorization信息
-// final String sessionId = request.getHeader("sessionId");
-// if (StrUtil.isBlank(sessionId)) {
-// log.info("sessionId为空登录过期");
-// Asserts.fail(401, "登录过期");
-// } else {
-// SysUserSession user = sysUserService.selectUserById(sessionId);
-// if (user != null) {
-// BigInteger expireTime = user.getExpireTime();
-//
-// long currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime());
-// if ((currentTime - expireTime.longValue()) > time.longValue()) {
-// user.setExpireTime(BigInteger.valueOf(currentTime).add(time));
-// sysUserService.updateUserSession(user);
-// }
-// } else {
-// log.info("sessionId为空登录过期");
-// Asserts.fail(401, "登录过期");
-// }
-// }
+ if (handler instanceof HandlerMethod) {
+ HandlerMethod handlerMethod = (HandlerMethod) handler;
+ JwtIgnore jwtIgnore = handlerMethod.getMethodAnnotation(JwtIgnore.class);
+ if (jwtIgnore != null) {
+ return true;
+ }
+ }
+ if (HttpMethod.GET.name().equals(request.getMethod())) {
+ response.setStatus(HttpServletResponse.SC_OK);
+ return true;
+ }
+ // 获取请求头信息authorization信息
+ final String sessionId = request.getHeader("sessionId");
+ if (StrUtil.isBlank(sessionId)) {
+ log.info("sessionId为空登录过期");
+ Asserts.fail(401, "登录过期");
+ } else {
+ SysUserSession user = sysUserService.selectUserById(sessionId);
+ if (user != null) {
+ BigInteger expireTime = user.getExpireTime();
+
+ long currentTime = MyDateUtils.TimeMillSecond2Second(new DateTime());
+ if ((currentTime - expireTime.longValue()) > time.longValue()) {
+ user.setExpireTime(BigInteger.valueOf(currentTime).add(time));
+ sysUserService.updateUserSession(user);
+ }
+ } else {
+ log.info("sessionId为空登录过期");
+ Asserts.fail(401, "登录过期");
+ }
+ }
return true;
}
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
index 956d2b2..1bd7b7f 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
@@ -174,5 +174,4 @@ public class DyLevelServiceImpl implements DyLevelService {
return Asserts.success(model);
}
-
}
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalAlarmServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalAlarmServiceImpl.java
index fef13df..a38ae96 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalAlarmServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalAlarmServiceImpl.java
@@ -1,5 +1,6 @@
package com.shxy.xymanager_service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil;
@@ -376,15 +377,27 @@ public class TerminalAlarmServiceImpl implements TerminalAlarmService {
long startTime = MyDateUtils.TimeMillSecond2Second(begin);
long endTime = MyDateUtils.TimeMillSecond2Second(end);
List groupAlarmTypes = terminalImgAlarmsDao.groupAlarmsDetails(labellist, BigInteger.valueOf(startTime), BigInteger.valueOf(endTime));
+ HashMap typeHashMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(groupAlarmTypes)) {
for (GroupAlarmType item : groupAlarmTypes) {
- TerminalTodayAlarmStatisticsModel.TodayAlarmItem todayAlarmItem = new TerminalTodayAlarmStatisticsModel.TodayAlarmItem();
+ typeHashMap.put(item.getLabel(), item);
+ }
+ }
+ alarmParamMap.forEach((key, value) -> {
+ Integer label = value.getLabel();
+ GroupAlarmType item = typeHashMap.get(label);
+ TerminalTodayAlarmStatisticsModel.TodayAlarmItem todayAlarmItem = new TerminalTodayAlarmStatisticsModel.TodayAlarmItem();
+ if (BeanUtil.isEmpty(item)) {
+ todayAlarmItem.setNum(BigInteger.valueOf(0));
+ todayAlarmItem.setEnname(value.getName());
+ todayAlarmItem.setLabel(label);
+ } else {
todayAlarmItem.setNum(item.getNum());
todayAlarmItem.setEnname(item.getEnname());
todayAlarmItem.setLabel(item.getLabel());
- list.add(todayAlarmItem);
}
- }
+ list.add(todayAlarmItem);
+ });
model.setList(list);
return Asserts.success(model);
}
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java
index 3a70265..63a9a31 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java
@@ -15,6 +15,7 @@ import com.shxy.xymanager_common.entity.TerminalStatus;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_common.enums.CommonStatus;
import com.shxy.xymanager_common.enums.GloableParamsType;
+import com.shxy.xymanager_common.excelbean.TerminalListExcelModel;
import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.model.*;
import com.shxy.xymanager_common.page.PageUtils;
@@ -545,5 +546,29 @@ public class TerminalServiceImpl implements TerminalService {
return Asserts.success(model);
}
+ @Override
+ public ServiceBody> getTerminalListExcel(TerminalSelectVo vo) {
+ Map towerMap = cacheService.getTowerMap();
+ List list = new ArrayList<>();
+ List dtos = terminalsDao.selectTermAndPosition(null);
+ for (TerminalsAndPositionDto item : dtos) {
+ TerminalListExcelModel bean = new TerminalListExcelModel();
+ bean.setCmdId(item.getCmdId());
+ if (towerMap != null) {
+ Integer towerid = item.getTowerId();
+ TowerDto towerDto = towerMap.get(towerid);
+ if (towerDto != null) {
+ bean.setLineName(towerDto.getLineName());
+ bean.setTowerName(towerDto.getName());
+ }
+ }
+ bean.setLatitude(item.getLatitude());
+ bean.setLongitude(item.getLongitude());
+ bean.setRadius(item.getRadius());
+ list.add(bean);
+ }
+ return Asserts.success(list);
+ }
+
}
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java
index 12cc27d..4a84356 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java
@@ -1,9 +1,12 @@
package com.shxy.xymanager_service.service;
import com.shxy.xymanager_common.bean.ServiceBody;
+import com.shxy.xymanager_common.excelbean.TerminalListExcelModel;
import com.shxy.xymanager_common.model.*;
import com.shxy.xymanager_common.vo.*;
+import java.util.List;
+
/**
* 设备接口
*
@@ -112,4 +115,11 @@ public interface TerminalService {
* @return
*/
ServiceBody getTermStatistics();
+
+ /**
+ * 导出设备列表的Excel
+ * @param vo
+ * @return
+ */
+ ServiceBody> getTerminalListExcel(TerminalSelectVo vo);
}