|
@@ -1,53 +1,63 @@
|
|
|
package com.ruoyi.web.controller.zhdd;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
+import cn.afterturn.easypoi.word.WordExportUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.ruoyi.common.annotation.Log;
|
|
|
+import com.ruoyi.common.annotation.RepeatSubmit;
|
|
|
+import com.ruoyi.common.core.controller.BaseController;
|
|
|
+import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
+import com.ruoyi.common.core.validate.AddGroup;
|
|
|
+import com.ruoyi.common.core.validate.EditGroup;
|
|
|
+import com.ruoyi.common.core.validate.QueryGroup;
|
|
|
+import com.ruoyi.common.enums.BusinessType;
|
|
|
+import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
|
+import com.ruoyi.system.service.ISysDictDataService;
|
|
|
import com.ruoyi.zhdd.domain.Incident;
|
|
|
import com.ruoyi.zhdd.domain.IncidentProcess;
|
|
|
-import com.ruoyi.zhdd.domain.IncidentTask;
|
|
|
+import com.ruoyi.zhdd.domain.IncidentTaskCommand;
|
|
|
import com.ruoyi.zhdd.domain.IncidentTaskPerson;
|
|
|
import com.ruoyi.zhdd.domain.Plan;
|
|
|
-import com.ruoyi.zhdd.domain.bo.IncidentTaskBo;
|
|
|
+import com.ruoyi.zhdd.domain.bo.IncidentBo;
|
|
|
import com.ruoyi.zhdd.domain.bo.IncidentTasksBo;
|
|
|
+import com.ruoyi.zhdd.domain.vo.IncidentTaskCommandVo;
|
|
|
+import com.ruoyi.zhdd.domain.vo.IncidentTaskVo;
|
|
|
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
|
|
|
import com.ruoyi.zhdd.domain.vo.PlanVo;
|
|
|
-import com.ruoyi.zhdd.domain.vo.ResourceVo;
|
|
|
import com.ruoyi.zhdd.service.IIncidentProcessService;
|
|
|
+import com.ruoyi.zhdd.service.IIncidentService;
|
|
|
+import com.ruoyi.zhdd.service.IIncidentTaskCommandService;
|
|
|
import com.ruoyi.zhdd.service.IIncidentTaskPersonService;
|
|
|
import com.ruoyi.zhdd.service.IIncidentTaskService;
|
|
|
import com.ruoyi.zhdd.service.IPlanService;
|
|
|
import com.ruoyi.zhdd.service.IPlanTaskService;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-import javax.validation.constraints.*;
|
|
|
-
|
|
|
-import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
-import com.ruoyi.common.annotation.RepeatSubmit;
|
|
|
-import com.ruoyi.common.annotation.Log;
|
|
|
-import com.ruoyi.common.core.controller.BaseController;
|
|
|
-import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
-import com.ruoyi.common.core.validate.AddGroup;
|
|
|
-import com.ruoyi.common.core.validate.EditGroup;
|
|
|
-import com.ruoyi.common.core.validate.QueryGroup;
|
|
|
-import com.ruoyi.common.enums.BusinessType;
|
|
|
-import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
|
-import com.ruoyi.zhdd.domain.vo.IncidentVo;
|
|
|
-import com.ruoyi.zhdd.domain.bo.IncidentBo;
|
|
|
-import com.ruoyi.zhdd.service.IIncidentService;
|
|
|
-import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
-import io.swagger.annotations.Api;
|
|
|
-import io.swagger.annotations.ApiOperation;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import javax.validation.constraints.NotEmpty;
|
|
|
+import javax.validation.constraints.NotNull;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.io.OutputStream;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 事件基础Controller
|
|
@@ -68,12 +78,16 @@ public class IncidentController extends BaseController {
|
|
|
|
|
|
private final IIncidentTaskPersonService incidentTaskPersonService;
|
|
|
|
|
|
+ private final IIncidentTaskCommandService incidentTaskCommandService;
|
|
|
+
|
|
|
private final IIncidentProcessService iIncidentProcessService;
|
|
|
|
|
|
private final IPlanTaskService planTaskService;
|
|
|
|
|
|
private final IPlanService planService;
|
|
|
|
|
|
+ private final ISysDictDataService sysDictDataService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询事件基础列表
|
|
|
*/
|
|
@@ -187,5 +201,81 @@ public class IncidentController extends BaseController {
|
|
|
return AjaxResult.success(result);
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation("应急方案导出")
|
|
|
+// @Log(title = "应急方案导出", businessType = BusinessType.EXPORT)
|
|
|
+ @GetMapping("/download")
|
|
|
+ public void download(@RequestParam String id, HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ // 查询处置方案
|
|
|
+ IncidentTaskVo incidentTaskVo = incidentTaskService.queryById(id);
|
|
|
+ if (incidentTaskVo != null) {
|
|
|
+ map.put("taskName", incidentTaskVo.getTaskName());
|
|
|
+
|
|
|
+ // 查询事件详情
|
|
|
+ IncidentVo incidentVo = iIncidentService.queryById(incidentTaskVo.getIncidentId());
|
|
|
+ if (incidentVo != null) {
|
|
|
+ map.put("name", incidentVo.getName());
|
|
|
+ if (ObjectUtil.isNotEmpty(incidentVo.getType())) {
|
|
|
+ map.put("type", sysDictDataService.selectDictLabel("zhdd_plan_type", Convert.toStr(incidentVo.getType())));
|
|
|
+ } else {
|
|
|
+ map.put("type", "-");
|
|
|
+ }
|
|
|
+ map.put("createTime", DateUtil.formatDateTime(incidentVo.getCreateTime()));
|
|
|
+ map.put("addr", incidentVo.getAddr());
|
|
|
+ if (StrUtil.isNotBlank(incidentVo.getSource())) {
|
|
|
+ map.put("source", sysDictDataService.selectDictLabel("zhdd_incident_source", incidentVo.getSource()));
|
|
|
+ } else {
|
|
|
+ map.put("source", "-");
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(incidentVo.getLevel())) {
|
|
|
+ map.put("level", sysDictDataService.selectDictLabel("zhdd_incident_level", Convert.toStr(incidentVo.getLevel())));
|
|
|
+ } else {
|
|
|
+ map.put("level", "-");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 查询方案人员
|
|
|
+ map.put("incidentPerson", incidentTaskPersonService.listVo(Wrappers.<IncidentTaskPerson>lambdaQuery().eq(IncidentTaskPerson::getIncidentTaskId, id)));
|
|
|
+ // 查询方案指令
|
|
|
+ List<IncidentTaskCommandVo> incidentTaskCommandVos = incidentTaskCommandService.listVo(Wrappers.<IncidentTaskCommand>lambdaQuery().eq(IncidentTaskCommand::getIncidentTaskId, id));
|
|
|
+ for (int i = 0; i < incidentTaskCommandVos.size(); i++) {
|
|
|
+ incidentTaskCommandVos.get(i).setIndex(i + 1);
|
|
|
+ }
|
|
|
+ map.put("incidentCommand", incidentTaskCommandVos);
|
|
|
+ // 查询处置过程
|
|
|
+ List<IncidentProcess> incidentProcess = iIncidentProcessService.list(Wrappers.<IncidentProcess>lambdaQuery()
|
|
|
+ .eq(IncidentProcess::getIncidentId, incidentTaskVo.getIncidentId()).orderByDesc(IncidentProcess::getCreateTime));
|
|
|
+ if (incidentProcess != null && incidentProcess.size() > 0) {
|
|
|
+ IncidentProcess processData = incidentProcess.get(0);
|
|
|
+ map.put("process", DateUtil.formatDateTime(processData.getCreateTime()) + ":" + processData.getDes());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String fileName = "plan_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".docx";
|
|
|
+ try {
|
|
|
+ XWPFDocument doc = WordExportUtil.exportWord07(
|
|
|
+ "word/incidentTask.docx", map);
|
|
|
+ FileOutputStream fos = new FileOutputStream(ExcelUtil.getAbsoluteFile(fileName));
|
|
|
+ doc.write(fos);
|
|
|
+ // 设置强制下载不打开
|
|
|
+ response.setContentType("application/force-download");
|
|
|
+ // 设置文件名
|
|
|
+ response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
+ doc.write(out);
|
|
|
+ out.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ delFileWord(ExcelUtil.getAbsoluteFile(fileName));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除零时生成的文件
|
|
|
+ */
|
|
|
+ public static void delFileWord(String filePath) {
|
|
|
+ File file = new File(filePath);
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|