|
@@ -1,19 +1,45 @@
|
|
|
package org.jeecg.modules.history.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import org.apache.poi.ss.usermodel.Cell;
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
+import org.apache.shiro.SecurityUtils;
|
|
|
+import org.jeecg.common.system.query.QueryGenerator;
|
|
|
+import org.jeecg.common.system.vo.LoginUser;
|
|
|
+import org.jeecg.common.util.oConvertUtils;
|
|
|
import org.jeecg.modules.detail.dto.InterlockDetailQueryDTO;
|
|
|
import org.jeecg.modules.history.dto.InterlockHistoryQueryDTO;
|
|
|
import org.jeecg.modules.history.entity.InterlockDetailHistory;
|
|
|
+import org.jeecg.modules.history.entity.InterlockSummaryHistory;
|
|
|
import org.jeecg.modules.history.mapper.InterlockDetailHistoryMapper;
|
|
|
import org.jeecg.modules.history.mapper.InterlockSummaryHistoryMapper;
|
|
|
import org.jeecg.modules.history.service.IInterlockDetailHistoryService;
|
|
|
import org.jeecg.modules.history.vo.InterlockDetailHistoryQueryVO;
|
|
|
import org.jeecg.modules.history.vo.InterlockSummaryHistoryVO;
|
|
|
+import org.jeecg.modules.summary.entity.InterlockSummary;
|
|
|
+import org.jeecg.modules.summary.mapper.InterlockSummaryMapper;
|
|
|
+import org.jeecg.modules.summary.vo.InterlockSummaryVO;
|
|
|
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
|
|
+import org.jeecgframework.poi.excel.entity.ExportParams;
|
|
|
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.web.servlet.ModelAndView;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @Description: 联锁详细信息历史数据表
|
|
@@ -27,6 +53,12 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
|
|
|
@Autowired
|
|
|
@SuppressWarnings("all")
|
|
|
private InterlockDetailHistoryMapper interlockDetailHistoryMapper;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private InterlockSummaryHistoryMapper summaryHistoryMapper;
|
|
|
+
|
|
|
+ @Value("${jeecg.path.upload}")
|
|
|
+ private String upLoadPath;
|
|
|
|
|
|
/**
|
|
|
* 联锁历史数据详细信息-分页查询
|
|
@@ -42,4 +74,85 @@ public class InterlockDetailHistoryServiceImpl extends ServiceImpl<InterlockDeta
|
|
|
return interlockDetailHistoryMapper.getPage(page, dto);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 联锁历史数据——各种逻辑状态分页查询——用于手动导出
|
|
|
+ */
|
|
|
+ public List<InterlockSummaryHistoryVO> getForExport(InterlockHistoryQueryDTO dto){
|
|
|
+ return interlockDetailHistoryMapper.getForExport(dto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导出excel
|
|
|
+ */
|
|
|
+ public ModelAndView exportXls1(InterlockHistoryQueryDTO dto, Class<InterlockSummaryHistoryVO> clazz, String title) {
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+
|
|
|
+ //按装置、系统分sheet
|
|
|
+ if(dto.getInterlockSystemId()!=null && !"".equals(dto.getInterlockSystemId())){
|
|
|
+ //一个系统
|
|
|
+ List<InterlockSummaryHistoryVO> exportList = interlockDetailHistoryMapper.getForExport(dto);
|
|
|
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
|
|
+ mv.addObject(NormalExcelConstants.FILE_NAME, title);//此处设置的filename无效 ,前端会重更新设置一下
|
|
|
+ mv.addObject(NormalExcelConstants.CLASS, clazz);
|
|
|
+ ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
|
|
|
+ exportParams.setImageBasePath(upLoadPath);
|
|
|
+ mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
|
|
+ mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ return mv;
|
|
|
+ }else if(dto.getInterlockApparatusId()!=null && !"".equals(dto.getInterlockApparatusId())){
|
|
|
+ //一个装置,多个系统
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+
|
|
|
+ InterlockHistoryQueryDTO dto1 = new InterlockHistoryQueryDTO();
|
|
|
+ dto1.setInterlockApparatusId(dto.getInterlockApparatusId());//装置id
|
|
|
+ List<InterlockSummaryHistory> summaryList = summaryHistoryMapper.getDistinctZZXTSummaryList(dto1);
|
|
|
+
|
|
|
+ int i = 1;
|
|
|
+ for (InterlockSummaryHistory summaryHistory : summaryList){
|
|
|
+ dto.setInterlockSystemId(summaryHistory.getInterlockSystemId());//系统id
|
|
|
+ List<InterlockSummaryHistoryVO> exportList = interlockDetailHistoryMapper.getForExport(dto);
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put(NormalExcelConstants.CLASS, InterlockSummaryHistoryVO.class);
|
|
|
+ map.put(NormalExcelConstants.PARAMS, new ExportParams(summaryHistory.getInterlockApparatusId()+ "-"+summaryHistory.getInterlockSystemId() , "第"+ i+ "页"));
|
|
|
+ map.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ list.add(map);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
|
|
+ mv.addObject(NormalExcelConstants.FILE_NAME, title);//此处设置的filename无效 ,前端会重更新设置一下
|
|
|
+ mv.addObject(NormalExcelConstants.MAP_LIST, list);
|
|
|
+ return mv;
|
|
|
+ }else {
|
|
|
+ //多个装置,多个系统
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+
|
|
|
+ List<InterlockSummaryHistory> summaryList = summaryHistoryMapper.getDistinctZZXTSummaryList(new InterlockHistoryQueryDTO());
|
|
|
+
|
|
|
+ int i = 1;
|
|
|
+ for (InterlockSummaryHistory summaryHistory : summaryList){
|
|
|
+ dto.setInterlockSystemId(summaryHistory.getInterlockSystemId());//系统id
|
|
|
+ List<InterlockSummaryHistoryVO> exportList = interlockDetailHistoryMapper.getForExport(dto);
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put(NormalExcelConstants.CLASS, InterlockSummaryHistoryVO.class);
|
|
|
+ map.put(NormalExcelConstants.PARAMS, new ExportParams(summaryHistory.getInterlockApparatusId()+ "-"+summaryHistory.getInterlockSystemId() , "第"+ i+ "页"));
|
|
|
+ map.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ list.add(map);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
|
|
+ mv.addObject(NormalExcelConstants.FILE_NAME, title);//此处设置的filename无效 ,前端会重更新设置一下
|
|
|
+ mv.addObject(NormalExcelConstants.MAP_LIST, list);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|