|
|
@@ -1,23 +1,34 @@
|
|
|
package com.xunmei.deploy.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.hutool.http.server.HttpServerResponse;
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.xunmei.common.core.constant.Constants;
|
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotDailyCheckData;
|
|
|
+import com.xunmei.common.core.domain.iot.vo.DailyCheckReq;
|
|
|
import com.xunmei.common.core.web.page.TableDataInfo;
|
|
|
import com.xunmei.deploy.dao.IotDailyCheckDataMapper;
|
|
|
import com.xunmei.deploy.dto.dailycheck.DailyCheckDataPageDto;
|
|
|
import com.xunmei.deploy.service.IotDailyCheckDataService;
|
|
|
+import com.xunmei.deploy.util.ValueCellWriteHandler;
|
|
|
import com.xunmei.deploy.vo.DailyCheckDataPageVo;
|
|
|
+import com.xunmei.deploy.vo.DailyCheckItemExportVo;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.net.URLEncoder;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -55,7 +66,49 @@ public class IotDailyCheckDataServiceImpl extends ServiceImpl<IotDailyCheckDataM
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void downLoad(String id, HttpServerResponse response) {
|
|
|
+ public void downLoad(String id, HttpServletResponse response) {
|
|
|
+ IotDailyCheckData checkData = getById(id);
|
|
|
+ if (ObjectUtil.isEmpty(checkData)) {
|
|
|
+ throw new RuntimeException("未查询到数据");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<DailyCheckItemExportVo> exportDataList = new ArrayList<>();
|
|
|
+ String data = checkData.getData();
|
|
|
+ DailyCheckReq checkReq = JSON.parseObject(data, DailyCheckReq.class);
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getFsuElectric(),"电器火灾"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getVideoRecordComplete(),"昨日录像丢失"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getFsuFireFight(),"消防报警"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getDisk(),"硬盘状态"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getDiagnose(),"视频质量"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getFsuOther(),"技防环境"));
|
|
|
+ exportDataList.add(new DailyCheckItemExportVo(checkReq.getNet(),"网络状态"));
|
|
|
+ for (DailyCheckItemExportVo exportVo : exportDataList) {
|
|
|
+ exportVo.setTitle("智能巡查每日工作登记簿");
|
|
|
+ exportVo.setTime(LocalDateTimeUtil.format(checkData.getRecordDate(), Constants.HMS_FORMAT));
|
|
|
+ exportVo.setOrgName(checkData.getOrgName());
|
|
|
+ exportVo.setUserName(checkData.getUserName());
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String baseHeaderName = checkData.getFileName();
|
|
|
+ // 设置响应头
|
|
|
+ response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
|
|
|
+ response.setContentType("application/octet-stream;charset=UTF-8");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
+ // String header = baseHeaderName;
|
|
|
+ // 数据导出
|
|
|
+ EasyExcel.write(response.getOutputStream(), DailyCheckItemExportVo.class)
|
|
|
+ .registerWriteHandler(new ValueCellWriteHandler(baseHeaderName))
|
|
|
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
|
|
+ .sheet(baseHeaderName)
|
|
|
+ .doWrite(exportDataList);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ // 重置response
|
|
|
+ response.reset();
|
|
|
+ response.setContentType("application/json");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|