diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core
- - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha
+ com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha
+ com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha
+ com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml index 41cd226..46bf97b 100644 --- a/casic-alarm/pom.xml +++ b/casic-alarm/pom.xml @@ -101,11 +101,7 @@ net.sf.ehcache ehcache-core - - org.apache.poi - ooxml-schemas - 1.1 - + org.codehaus.groovy @@ -113,7 +109,6 @@ true - diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 9cc0b08..cb9709b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -1,33 +1,34 @@ package com.casic.missiles.modular.alarm.controller; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.EhcacheConstant; -import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.alarm.model.AlarmRecordExpDto; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; -import com.casic.missiles.modular.alarm.service.ISysDictService; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.modular.system.model.AlarmRecords; import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.modular.system.util.ExportExcelUtil; import com.casic.missiles.modular.system.warpper.AlarmRecordWarpper; -import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.common.constant.factory.PageFactory; -import org.json.JSONException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import org.hswebframework.expands.office.excel.ExcelIO; - import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -41,9 +42,9 @@ * @Date 2019-05-17 10:49:02 */ @Controller +@Slf4j @RequestMapping("/alarm") -public class AlarmRecordsController extends BaseController { - +public class AlarmRecordsController extends ExportExcelUtil { @Autowired private IAlarmRecordsService alarmRecordsService; @@ -54,13 +55,13 @@ @Value("${smartcity.office.maxRowsExcel}") - private int maxRowsExcel; + private int maxRowsExcel; @Value("${smartcity.config.config-path}") private String templatePath; @Value("${smartcity.adminRoleName}") - private String sAdmin; + private String sAdmin; @Value("${smartcity.opRoleName}") - private String sOperator; + private String sOperator; /** * 获取分页列表 @@ -72,88 +73,61 @@ String keywords = httpServletRequest.getParameter("keywords"); String beginTime = httpServletRequest.getParameter("beginTime"); String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); + String statusStr = httpServletRequest.getParameter("status"); String alarmTypeStr = httpServletRequest.getParameter("alarmType"); String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); String areaId = httpServletRequest.getParameter("areaId"); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> retList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr, areaId, dataScope); + List> retList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); retList.forEach(alarmObj -> { alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString())); }); - - new AlarmRecordWarpper(retList).warp(); page.setRecords(retList); - return ResponseData.success(super.packForBT(page)); } @RequestMapping(value = "/export") - public void exportAlarm(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException { - - String keywords = httpServletRequest.getParameter("keywords"); - String beginTime = httpServletRequest.getParameter("beginTime"); - String endTime = httpServletRequest.getParameter("endTime"); - String statusStr = httpServletRequest.getParameter("status"); - String alarmTypeStr = httpServletRequest.getParameter("alarmType"); - String alarmContentStr = httpServletRequest.getParameter("alarmContentType"); - String areaId = httpServletRequest.getParameter("areaId"); + @ResponseBody + public void exportAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String statusStr, + @RequestParam(value = "alarmType", required = false) String alarmTypeStr, + @RequestParam(value = "alarmContentType", required = false) String alarmContentStr, + @RequestParam(value = "areaId", required = false) String areaId) throws IOException { if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); - Page> page = new PageFactory>().defaultPage("alarmTime",false); + Page> page = new PageFactory>().defaultPage("alarmTime", false); page.setLimit(maxRowsExcel); page.setSize(maxRowsExcel); page.setOffset(0); page.setSearchCount(false); - DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); if (!currentUser.getRoleTips().contains(sAdmin) && !currentUser.getRoleTips().contains(sOperator)) { alarmTypeStr = "1"; } - List> alarmExpList = alarmRecordsService.alarmList(page,keywords,beginTime,endTime,statusStr,alarmTypeStr,alarmContentStr,areaId, dataScope); + + List> alarmExpList = alarmRecordsService.alarmList(page, keywords, beginTime, endTime, statusStr, alarmTypeStr, alarmContentStr, areaId, dataScope); new AlarmRecordWarpper(alarmExpList).warp(); + Map areaFullNameMap = deviceService.getAreaFullName(); alarmExpList.forEach(alarmObj -> { - alarmObj.put("areaFullName", deviceService.getAreaFullNameById(alarmObj.get("area").toString()) + "/" + alarmObj.get("position")); + alarmObj.put("areaFullName", areaFullNameMap.get(String.valueOf(alarmObj.get("area"))) + "/" + alarmObj.get("position")); alarmObj.put("alarmTypeName", EhcacheConstant.retBean().getAlarmTypeNameByCodeNum(alarmObj.get("alarmType").toString())); }); - FileInputStream fileInputStream = null; - if (ToolUtil.isEmpty(alarmExpList)) { - fileInputStream = new FileInputStream(templatePath+"/alarmRecEmpty.xlsx"); - } else { - fileInputStream = new FileInputStream(templatePath+"/alarmRecTemplate.xlsx"); - } - try { - httpServletResponse.setContentType("application/octet-stream"); - httpServletResponse.addHeader("Content-Disposition", " attachment;filename="+"alarmRecord.xlsx" ); - - Map var = new HashMap<>(); - var.put("标题","报警一览表"); - var.put("list",alarmExpList); - ExcelIO.writeTemplate(fileInputStream,httpServletResponse.getOutputStream(),var); - - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - httpServletResponse.getOutputStream().flush(); - httpServletResponse.getOutputStream().close(); - fileInputStream.close(); - }; - + List alarmRecordExpDtoList = MapToExcelModel(alarmExpList); + super.exportExcel(AlarmRecordExpDto.class, alarmRecordExpDtoList, DeviceExportEnum.WELLDATA_EXPORT.getFileName()); } /** @@ -161,15 +135,15 @@ */ @RequestMapping(value = "/cancelAlarm") @ResponseBody - public Object cancelAlarm(@RequestParam(value = "id",required = true) int id, //jobId - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object cancelAlarm(@RequestParam(value = "id", required = true) int id, //jobId + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(id,jobStatus,handleMessage,currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(id, jobStatus, handleMessage, currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -179,12 +153,12 @@ */ @RequestMapping(value = "/cancelAlarmById") @ResponseBody - public Object cancelAlarmById(@RequestParam(value = "alarmId",required = true) long alarmId){ + public Object cancelAlarmById(@RequestParam(value = "alarmId", required = true) long alarmId) { ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - boolean isCancel = alarmRecordsService.cancelAlarm(alarmId,"4","手动消警",currentUser.getId()); - if(isCancel){ + boolean isCancel = alarmRecordsService.cancelAlarm(alarmId, "4", "手动消警", currentUser.getId()); + if (isCancel) { return ResponseData.success(); - }else { + } else { return ResponseData.error("failure"); } } @@ -195,22 +169,22 @@ @RequestMapping(value = "/batchCancel") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancel(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "jobStatus",required = true) String jobStatus, - @RequestParam(value = "handleMessage",required = true)String handleMessage){ - Map retMap = new HashMap<>(); + public Object batchCancel(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "jobStatus", required = true) String jobStatus, + @RequestParam(value = "handleMessage", required = true) String handleMessage) { + Map retMap = new HashMap<>(); //根据查询条件查询alarm_record记录 DataScope dataScope = iCommonPermissionService.getCurrUserDataScope(); ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); - List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope,keywords,alarmType,alarmContent,beginTime,endTime,""); + List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, ""); //根据jobId调用closeJob for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getJobId(),jobStatus,handleMessage,currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getJobId(), jobStatus, handleMessage, currentUser.getId()); } return ResponseData.success(); } @@ -221,13 +195,13 @@ @RequestMapping(value = "/batchCancelAlarm") @ResponseBody @Transactional(rollbackFor = Exception.class) - public Object batchCancelAlarm(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = "alarmType",required = false) String alarmType, - @RequestParam(value = "alarmContent",required = false) String alarmContent, - @RequestParam(value = "beginTime",required = false) String beginTime, - @RequestParam(value = "endTime",required = false) String endTime, - @RequestParam(value = "areaId",required = false) String areaId){ - Map retMap = new HashMap<>(); + public Object batchCancelAlarm(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = "alarmType", required = false) String alarmType, + @RequestParam(value = "alarmContent", required = false) String alarmContent, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "areaId", required = false) String areaId) { + Map retMap = new HashMap<>(); if (areaId.indexOf("00") > 0) areaId = areaId.substring(0, areaId.indexOf("00")); //根据查询条件查询alarm_record记录 @@ -235,9 +209,26 @@ ShiroUser currentUser = iCommonPermissionService.getCurrLoginUser(); List alarmRecords = alarmRecordsService.alarmListNoPage(dataScope, keywords, alarmType, alarmContent, beginTime, endTime, areaId); for (AlarmRecords alarmRecord : alarmRecords) { - alarmRecordsService.cancelAlarm(alarmRecord.getId(),"4","手动消警",currentUser.getId()); + alarmRecordsService.cancelAlarm(alarmRecord.getId(), "4", "手动消警", currentUser.getId()); } return ResponseData.success(); } + private List MapToExcelModel(List> alarmExpList) { + List alarmRecordExpDtoList = new ArrayList<>(); + alarmExpList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + AlarmRecordExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .areaFullName(alarmExpMap.containsKey("areaFullName") && !ObjectUtils.isEmpty(alarmExpMap.get("areaFullName")) ? String.valueOf(alarmExpMap.get("areaFullName")) : "") + .alarmTime(alarmExpMap.containsKey("alarmTime") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTime")) ? String.valueOf(alarmExpMap.get("alarmTime")) : "") + .alarmTypeName(alarmExpMap.containsKey("alarmTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmTypeName")) ? String.valueOf(alarmExpMap.get("alarmTypeName")) : "") + .alarmContentName(alarmExpMap.containsKey("alarmContentName") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmContentName")) ? String.valueOf(alarmExpMap.get("alarmContentName")) : "") + .alarmValue(alarmExpMap.containsKey("alarmValue") && !ObjectUtils.isEmpty(alarmExpMap.get("alarmValue")) ? String.valueOf(alarmExpMap.get("alarmValue")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java new file mode 100644 index 0000000..078bab4 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/model/AlarmRecordExpDto.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.alarm.model; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@Builder +public class AlarmRecordExpDto { + private Long id; + @ExcelProperty("点位编号") + private String wellCode; + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("详细地址") + private String areaFullName; + @ExcelProperty("告警时间") + private String alarmTime; + @ExcelProperty("告警类型") + private String alarmTypeName; + @ExcelProperty("告警原因") + private String alarmContentName; + @ExcelProperty("告警数值") + private String alarmValue; + private String deviceId; + private String status; + private String alarmType; + private String alarmLevel; + private String alarmMessage; + private String jobStatus; + private String jobId; + private String deptid; + private String area; + private String position; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 8d9d258..48c6acf 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -11,7 +11,7 @@ /** *

- * 服务类 + * 服务类 *

* * @author casic123 @@ -19,17 +19,19 @@ */ public interface IAlarmRecordsService extends IService { - List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); + List> alarmList(Page> page, String keywords, String beginTime, String endTime, String status, String alarmType, String alarmContent, String areaId, DataScope dataScope); - List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent,String beginTime, String endTime, String areaId); + List alarmListNoPage(DataScope dataScope, String keywords, String alarmType, String alarmContent, String beginTime, String endTime, String areaId); - boolean cancelAlarm(long id,String jobStatus, String handleMessage, long personId); + boolean cancelAlarm(long id, String jobStatus, String handleMessage, long personId); boolean cancelAlarmById(long id); Integer insertAlarmRecord(AlarmRecords alarmRec); - String isOldAlarmRecord(String devCode,String MsgContent); + Boolean cancelAlarmByDevcode(String devcode); - Integer updateOldAlarmRecord(String devCode,String MsgContent); + String isOldAlarmRecord(String devCode, String MsgContent); + + Integer updateOldAlarmRecord(String devCode, String MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index b3e6fed..1521a95 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -64,6 +64,10 @@ return this.baseMapper.insert(alarmRec); } + public Boolean cancelAlarmByDevcode(String devcode) { + return this.baseMapper.cancelAlarmByDevcode(devcode)&this.baseMapper.completeJob(devcode); + } + public String isOldAlarmRecord(String devCode, String MsgContent) { return this.baseMapper.isOldAlarmRecord(devCode, MsgContent); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java index 668188e..c902e38 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataReceiver.java @@ -117,9 +117,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值报警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值报警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -142,10 +142,10 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用气量超阈值预警"); - alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecord.setAlarmMessage("日用气量超阈值预警"); + String jobId = alarmRecordsService.isOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(gasFlowAddr, "日用气量超阈值预警"); alarmRecord.setAlarmMessage(jobId); } else { AlarmJob alarmJob = alarmJobService.saveData(gasFlowAddr, wellDto.getWellCode(), "SLCX", "1"); @@ -154,6 +154,8 @@ alarmRecordsService.insertAlarmRecord(alarmRecord); // 向前端推送报警 } + }else { + alarmRecordsService.cancelAlarmByDevcode(gasFlowAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java index 11cf4e9..e8013d4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterMeterDataReceiver.java @@ -144,9 +144,9 @@ alarmRecord.setAlarmTime(Calendar.getInstance().getTime()); alarmRecord.setStatus("1"); alarmRecord.setAlarmMessage("日用水量超阈值预警"); - String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + String jobId=alarmRecordsService.isOldAlarmRecord(meterAddr, "日用水量超阈值预警"); if (!StringUtils.isEmpty(jobId)) { - alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值报警"); + alarmRecordsService.updateOldAlarmRecord(meterAddr, "日用水量超阈值预警"); alarmRecord.setJobId(Long.valueOf(jobId)); } else { AlarmJob alarmJob = alarmJobService.saveData(meterAddr, wellDto.getWellCode(), "QLCX", "1"); @@ -154,6 +154,8 @@ } alarmRecordsService.insertAlarmRecord(alarmRecord); } + }else { + alarmRecordsService.cancelAlarmByDevcode(meterAddr); } } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java index f6387c2..94edb03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -454,7 +454,6 @@ } mapList.add(map); } - return ResponseData.success(mapList); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java index 8096ba2..4c78acd 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/AlarmRecordsMapper.java @@ -27,10 +27,11 @@ boolean cancelJob(@Param("id") long id, @Param("jobStatus") String jobStatus, @Param("handleMessage") String handleMessage, @Param("personId") long personId); - boolean cancelAlarmById(@Param("id") long id); - boolean cancelAlarmByNewRecord(@Param("devcode") String devcode, @Param("alarmType") String alarmType); + boolean cancelAlarmByDevcode(@Param("devcode") String devcode); + + boolean completeJob(@Param("devcode") String devcode); String isOldAlarmRecord(@Param("devcode") String devcode, @Param("MsgContent") String MsgContent); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml index 40d303a..0242c20 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/AlarmRecordsMapper.xml @@ -137,14 +137,6 @@ WHERE ar.ID = #{id} - - UPDATE alarm_records ar - - ar.status = 0 - - WHERE ar.devcode = #{devcode} and ar.alarm_type = #{alarmType} - - + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha
+ com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + + SELECT JOB_ID AS "jobId" FROM alarm_records @@ -162,4 +154,18 @@ AND STATUS='1' + + + UPDATE alarm_records + SET STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='1' + + + + UPDATE alarm_job + SET JOB_STATUS='3' + WHERE DEVCODE = #{devcode} + AND STATUS='0' + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index cf4204f..a326579 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -7,24 +7,35 @@ import java.util.Map; public interface IStatisticsService { - List> wellStaticsByDept(DataScope dataScope); - List> wellStaticsByType(DataScope dataScope); - List> deviceStaticsByType(DataScope dataScope); - List> deviceStaticsByDept(DataScope dataScope,String deviceType); - Map deviceStaticsByStatus(DataScope dataScope); - List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException; - List> alarmsByDay(String beginTime,String endTime,DataScope dataScope); - List> countByDayFirst(String startTime,String endTime,String areaIds); - List> alarmCountByDay(String startTime,String endTime); - Map alarmBySecondArea(String startTime,String endTime,String areaIds); - String countByFirstArea(String startTime,String endTime,String areaIds); + List> wellStaticsByDept(DataScope dataScope); + + List> wellStaticsByType(DataScope dataScope); + + List> deviceStaticsByType(DataScope dataScope); + + List> deviceStaticsByDept(DataScope dataScope, String deviceType); + + Map deviceStaticsByStatus(DataScope dataScope); + + List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; + + List> alarmsByDay(String beginTime, String endTime, DataScope dataScope); + + List> countByDayFirst(String startTime, String endTime, String areaIds); + + List> alarmCountByDay(String startTime, String endTime); + + Map alarmBySecondArea(String startTime, String endTime, String areaIds); + + String countByFirstArea(String startTime, String endTime, String areaIds); /** * 查询各二级分区燃气报警数量-气体泄漏监测仪-设备类型为4 - * @param areaId 区域主键 + * + * @param areaId 区域主键 * @param startTime 开始时间 - * @param endTime 结束时间 + * @param endTime 结束时间 * @return */ - List> gasAlarmBySecondArea(String areaId, String startTime, String endTime,String deviceType); + List> gasAlarmBySecondArea(String areaId, String startTime, String endTime, String deviceType); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java new file mode 100644 index 0000000..8af0549 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/ExportExcelUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.system.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Slf4j +public class ExportExcelUtil extends BaseController { + + protected void exportExcel(Class cls, List dataList, String sheetName) throws IOException { + HttpServletResponse response = this.getHttpServletResponse(); + try { + this.setExResponse(response); + EasyExcel.write(response.getOutputStream(), cls).autoCloseStream(Boolean.FALSE).sheet(StringUtils.isNotEmpty(sheetName) ? sheetName : "数据").doWrite(dataList); + } catch (Exception var6) { + log.error("文件导出失败", var6); + this.setCatchResponse(response, var6.getMessage()); + } + } + + private void setCatchResponse(HttpServletResponse response, String msg) throws IOException { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().println(JSON.toJSONString(ResponseData.error("下载文件失败" + msg))); + } + + private void setExResponse(HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("文件下载", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + fileName + ".xlsx"); + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java index 3c4807a..f47836c 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/warpper/AlarmRecordWarpper.java @@ -13,7 +13,6 @@ public AlarmRecordWarpper(Object list) { super(list); } @Override public void warpTheMap(Map map) { - // 设置闸井相关字段 String wellCode = map.get("wellCode").toString(); Map wellInfoMap = EhcacheConstant.retBean().getWellInfoViaCode(wellCode); @@ -74,6 +73,5 @@ String jobStatusStr = map.get("jobStatus").toString(); map.put("jobStatusName",EhcacheConstant.retBean().getJobStatusNameByCodeNum(jobStatusStr)); } - } } diff --git a/casic-device/pom.xml b/casic-device/pom.xml index 8f02469..02269f6 100644 --- a/casic-device/pom.xml +++ b/casic-device/pom.xml @@ -27,6 +27,7 @@ casic-export-support 1.0.0.alpha + com.casic casic-admin-support @@ -104,6 +105,12 @@ + com.alibaba + easyexcel + 3.0.0-beta3 + + + org.apache.httpcomponents httpclient diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index cd7890e..34987f6 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -224,7 +224,6 @@ res.addAll(list); //获取导出文件header super.exportExcel(DeviceExportHeadersEnum.DEVICE_EXPORT, res); - } /** diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java index 4409712..dd78530 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/GasFlowDataController.java @@ -72,6 +72,8 @@ //查询数据权限 使用默认DEPTID 字段 DataScope dataScope = permissionService.getCurrUserDataScope(); List list = deviceService.selectDataScopePage(dataScope, page, "15", "", beginTime, endTime, keywords, "", areaId); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "16", "", beginTime, endTime, keywords, "", areaId)); + list.addAll(deviceService.selectDataScopePage(dataScope, page, "17", "", beginTime, endTime, keywords, "", areaId)); String date = sdf.format(new Date()); List> viewList = new ArrayList<>(); list.forEach(deviceDto -> { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java index 84bf3c9..aab3e5e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataController.java @@ -1,7 +1,10 @@ package com.casic.missiles.modular.system.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.config.DeviceServerProperties; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; import com.casic.missiles.modular.system.enums.DeviceExportEnum; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; @@ -14,19 +17,26 @@ import com.casic.missiles.modular.system.service.IDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController +@Slf4j @Api(value = "数据管理", description = "数据查询相关接口提供") public class WellDataController extends ExportController { private static final Logger logger = LoggerFactory.getLogger(DeviceController.class); @@ -92,24 +102,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("液位数据导出") - @GetMapping(value = "/liquiddata/export") - @Permission - public void liquidDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { - - Page page = new PageFactory().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - //查询数据权限 使用默认DEPTID 字段 - DataScope dataScope = permissionService.getCurrUserDataScope(); - List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); - - list.forEach(deviceDto -> { - deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); - }); - super.exportExcel(DeviceExportEnum.LIQUIDDATA_EXPORT, list, response); - } @ApiOperation("燃气数据查询") @GetMapping(value = "/gasdata/list") @@ -136,7 +128,7 @@ @ApiOperation("管盯数据导出") @GetMapping(value = "/tubedata/export") - //@Permission + @ResponseBody public void tubeDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ Page> page = new PageFactory>().defaultPage(); page.setCurrent(1); @@ -148,19 +140,6 @@ super.exportExcel(DeviceExportEnum.TUBEDATA_EXPORT, mapList, response); } - @ApiOperation("燃气数据导出") - @GetMapping(value = "/gasdata/export") - //@Permission - public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectGasDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.GASDATA_EXPORT, mapList, response); - } @ApiOperation("有害气体数据查询") @GetMapping(value = "/harmfuldata/list") @@ -181,7 +160,6 @@ page.setCurrent(1); page.setSearchCount(false); page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); List> mapList = deviceService.selectHarmfulDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); super.exportExcel(DeviceExportEnum.HARMFULDATA_EXPORT, mapList, response); @@ -302,20 +280,6 @@ return ResponseData.success(super.packForBT(page)); } - @ApiOperation("噪声记录仪数据导出") - @GetMapping(value = "/noisedata/export") - //@Permission - public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException{ - Page> page = new PageFactory>().defaultPage(); - page.setCurrent(1); - page.setSearchCount(false); - page.setSize(Integer.MAX_VALUE); - DataScope dataScope = permissionService.getCurrUserDataScope(); - List> mapList = deviceService.selectNoiseDataScopePage(dataScope,page,deptid,beginTime,endTime,keywords); - super.exportExcel(DeviceExportEnum.NOISEDATA_EXPORT, mapList, response); - } - - @ApiOperation("根据权属单位统计报警次数") @GetMapping(value = "/statics/alarmsByDept") @Permission @@ -364,7 +328,6 @@ } } } - super.exportExcel(DeviceExportEnum.LIQUIDGASDATA_EXPORT, mapList, response); } @@ -377,4 +340,5 @@ return ResponseData.success(mapList); } + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java new file mode 100644 index 0000000..b839ab1 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/controller/WellDataExportController.java @@ -0,0 +1,126 @@ +package com.casic.missiles.modular.system.controller; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.dto.DeviceMonitorDataDto; +import com.casic.missiles.modular.system.dto.Excel.GasDataExpDto; +import com.casic.missiles.modular.system.dto.Excel.NoiseDataExpDto; +import com.casic.missiles.modular.system.enums.DeviceExportEnum; +import com.casic.missiles.modular.system.service.IDeviceService; +import com.casic.missiles.util.ExportExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Controller +@Slf4j +@Api(value = "数据导出", description = "数据查询相关接口提供") +public class WellDataExportController extends ExportExcelUtil { + + @Autowired + private IDeviceService deviceService; + @Autowired + private ICommonPermissionService permissionService; + + @ApiOperation("液体数据导出") + @RequestMapping(value = "/liquiddata/export") + @ResponseBody + public void liquidDataExport(String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page page = new PageFactory().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + //查询数据权限 使用默认DEPTID 字段 + DataScope dataScope = permissionService.getCurrUserDataScope(); + List list = deviceService.selectLiquidDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + list.forEach(deviceDto -> { + deviceDto.setDeptName(permissionService.getDeptName(deviceDto.getDeptid())); + }); + super.exportExcel(DeviceMonitorDataDto.class, list, DeviceExportEnum.LIQUIDDATA_EXPORT.getFileName()); + } + + + @ApiOperation("燃气数据导出") + @GetMapping(value = "/gasdata/export") + @ResponseBody + public void gasDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectGasDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List gasDataExpDtoList = gasMapToExcelModel(mapList); + super.exportExcel(GasDataExpDto.class, gasDataExpDtoList, DeviceExportEnum.GASDATA_EXPORT.getFileName()); + } + + private List gasMapToExcelModel(List> gasMapList) { + List alarmRecordExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + alarmRecordExpDtoList.add( + GasDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .strength(alarmExpMap.containsKey("strength") && !ObjectUtils.isEmpty(alarmExpMap.get("strength")) ? String.valueOf(alarmExpMap.get("strength")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return alarmRecordExpDtoList; + } + + @ApiOperation("噪声记录仪数据导出") + @GetMapping(value = "/noisedata/export") + //@Permission + public void noiseDataExport(HttpServletResponse response, String keywords, String deptid, String beginTime, String endTime) throws IOException { + Page> page = new PageFactory>().defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DataScope dataScope = permissionService.getCurrUserDataScope(); + List> mapList = deviceService.selectNoiseDataScopePage(dataScope, page, deptid, beginTime, endTime, keywords); + List noiseDataExpDtoList = noiseMapToExcelModel(mapList); + super.exportExcel(NoiseDataExpDto.class,noiseDataExpDtoList,DeviceExportEnum.NOISEDATA_EXPORT.getFileName()); + } + + private List noiseMapToExcelModel(List> gasMapList) { + List noiseDataExpDtoList = new ArrayList<>(); + gasMapList.stream().forEach( + alarmExpMap -> { + noiseDataExpDtoList.add( + NoiseDataExpDto.builder().wellCode(alarmExpMap.containsKey("wellCode") && !ObjectUtils.isEmpty(alarmExpMap.get("wellCode")) ? String.valueOf(alarmExpMap.get("wellCode")) : "") + .devcode(alarmExpMap.containsKey("devcode") && !ObjectUtils.isEmpty(alarmExpMap.get("devcode")) ? String.valueOf(alarmExpMap.get("devcode")) : "") + .deviceTypeName(alarmExpMap.containsKey("deviceTypeName") && !ObjectUtils.isEmpty(alarmExpMap.get("deviceTypeName")) ? String.valueOf(alarmExpMap.get("deviceTypeName")) : "") + .deptName(alarmExpMap.containsKey("deptName") && !ObjectUtils.isEmpty(alarmExpMap.get("deptName")) ? String.valueOf(alarmExpMap.get("deptName")) : "") + .descn(alarmExpMap.containsKey("descn") && !ObjectUtils.isEmpty(alarmExpMap.get("descn")) ? String.valueOf(alarmExpMap.get("descn")) : "") + .frequency(alarmExpMap.containsKey("frequency") && !ObjectUtils.isEmpty(alarmExpMap.get("frequency")) ? String.valueOf(alarmExpMap.get("frequency")) : "") + .ddata(alarmExpMap.containsKey("ddata") && !ObjectUtils.isEmpty(alarmExpMap.get("ddata")) ? String.valueOf(alarmExpMap.get("ddata")) : "") + .cell(alarmExpMap.containsKey("cell") && !ObjectUtils.isEmpty(alarmExpMap.get("cell")) ? String.valueOf(alarmExpMap.get("cell")) : "") + .uptime(alarmExpMap.containsKey("uptime") && !ObjectUtils.isEmpty(alarmExpMap.get("uptime")) ? String.valueOf(alarmExpMap.get("uptime")) : "") + .logtime(alarmExpMap.containsKey("logtime") && !ObjectUtils.isEmpty(alarmExpMap.get("logtime")) ? String.valueOf(alarmExpMap.get("logtime")) : "") + .build() + ); + }); + return noiseDataExpDtoList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 2fb90f8..30a7720 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -32,6 +32,8 @@ String getAreaPId(@Param("id") String id); + List> getAllArea(); + DeviceConcentratorDto selectDeviceConcentorByCode(@Param("concenCode") String concenCode); List selectWellDataScopePage(@Param("dataScope") DataScope dataScope, @Param("page") Page page, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index 658c8a0..8564bba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -67,6 +67,11 @@ WHERE a.id = #{id} + + +