|
@@ -1,19 +1,35 @@
|
|
|
package com.ruoyi.system.controller;
|
|
package com.ruoyi.system.controller;
|
|
|
|
|
|
|
|
|
|
+import com.deepoove.poi.XWPFTemplate;
|
|
|
|
|
+import com.deepoove.poi.util.PoitlIOUtils;
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
import com.ruoyi.common.annotation.Log;
|
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
|
+import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
|
|
|
+import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
|
|
|
+import com.ruoyi.system.domain.SysPlan;
|
|
|
import com.ruoyi.system.domain.SysReport;
|
|
import com.ruoyi.system.domain.SysReport;
|
|
|
|
|
+import com.ruoyi.system.service.ISysDictDataService;
|
|
|
|
|
+import com.ruoyi.system.service.ISysPlanService;
|
|
|
import com.ruoyi.system.service.ISysReportService;
|
|
import com.ruoyi.system.service.ISysReportService;
|
|
|
|
|
+import com.ruoyi.system.service.impl.SysDictDataServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.util.ClassUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+import java.io.BufferedOutputStream;
|
|
|
|
|
+import java.io.FileOutputStream;
|
|
|
|
|
+import java.io.OutputStream;
|
|
|
|
|
+import java.text.DateFormat;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 【请填写功能名称】Controller
|
|
* 【请填写功能名称】Controller
|
|
@@ -27,6 +43,11 @@ public class SysReportController extends BaseController
|
|
|
{
|
|
{
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ISysReportService sysReportService;
|
|
private ISysReportService sysReportService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysPlanService sysPlanService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysDictDataService sysDictDataService;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 查询【请填写功能名称】列表
|
|
* 查询【请填写功能名称】列表
|
|
@@ -59,13 +80,65 @@ public class SysReportController extends BaseController
|
|
|
* 导出【请填写功能名称】列表
|
|
* 导出【请填写功能名称】列表
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
- @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
|
|
|
|
|
|
|
+ @Log(title = "施工报备导出", businessType = BusinessType.EXPORT)
|
|
|
@PostMapping("/export")
|
|
@PostMapping("/export")
|
|
|
- public void export(HttpServletResponse response, SysReport sysReport)
|
|
|
|
|
|
|
+ public void export(HttpServletResponse response, HttpServletRequest request, SysReport sysReport)
|
|
|
{
|
|
{
|
|
|
|
|
+
|
|
|
|
|
+ String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/template/";
|
|
|
|
|
+ String templatePath =path+"report.docx";
|
|
|
|
|
+
|
|
|
List<SysReport> list = sysReportService.selectSysReportList(sysReport);
|
|
List<SysReport> list = sysReportService.selectSysReportList(sysReport);
|
|
|
- ExcelUtil<SysReport> util = new ExcelUtil<SysReport>(SysReport.class);
|
|
|
|
|
- util.exportExcel(response, list, "数据");
|
|
|
|
|
|
|
+ if(list.size()<1) AjaxResult.error("不存在!");;
|
|
|
|
|
+ list.get(0);
|
|
|
|
|
+ SysPlan plan = sysPlanService.selectSysPlanById(list.get(0).getPlanId());
|
|
|
|
|
+ SysDictData dictData =new SysDictData();dictData.setDictType("content_one");
|
|
|
|
|
+ List<SysDictData> onedatalist = sysDictDataService.selectDictDataList(dictData);
|
|
|
|
|
+ Map<String,String> onemap = new HashMap<>();
|
|
|
|
|
+ for (SysDictData d:onedatalist
|
|
|
|
|
+ ) {
|
|
|
|
|
+ onemap.put(d.getDictValue(),d.getDictLabel());
|
|
|
|
|
+ }
|
|
|
|
|
+ dictData.setDictType("content_two");
|
|
|
|
|
+ List<SysDictData> twodatalist = sysDictDataService.selectDictDataList(dictData);
|
|
|
|
|
+ Map<String,String> twomap = new HashMap<>();
|
|
|
|
|
+ for (SysDictData d:twodatalist
|
|
|
|
|
+ ) {
|
|
|
|
|
+ twomap.put(d.getDictValue(),d.getDictLabel());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// ExcelUtil<SysReport> util = new ExcelUtil<SysReport>(SysReport.class);
|
|
|
|
|
+// util.exportExcel(response, list, "数据");
|
|
|
|
|
+ try{
|
|
|
|
|
+ XWPFTemplate template = XWPFTemplate.compile(templatePath).render(
|
|
|
|
|
+ new HashMap<String, Object>(){{
|
|
|
|
|
+ put("date", DateUtils.parseDateToStr("yyyy年MM月dd日",list.get(0).getCreateTime()));
|
|
|
|
|
+ put("name", plan.getName());
|
|
|
|
|
+ put("length", plan.getBridgeHeightWidth());
|
|
|
|
|
+ put("dengji", plan.getLevel());
|
|
|
|
|
+ put("luduan", list.get(0).getSection()+("K"+ (list.get(0).getStartKm()==null?list.get(0).getStartKm():"0" )+"+"+(list.get(0).getStartHectometer()==null?list.get(0).getStartHectometer():"000" )+" ~ K"+ (list.get(0).getEndKm()==null?list.get(0).getEndKm():"0")+"+"+(list.get(0).getEndHectometer()==null?list.get(0).getEndHectometer():"000" )));
|
|
|
|
|
+ put("content",(list.get(0).getContentOne()==null?"":onemap.get( list.get(0).getContentOne())) +(list.get(0).getContentTwo()==null?"":twomap.get( list.get(0).getContentTwo())) );
|
|
|
|
|
+ put("daterange", DateUtils.parseDateToStr("yyyy年MM月dd日hh:mm:ss",list.get(0).getStartTime())+" 至 "+DateUtils.parseDateToStr("yyyy年MM月dd日hh:mm:ss",list.get(0).getEndTime()));
|
|
|
|
|
+ put("danwei", list.get(0).getDept());
|
|
|
|
|
+ put("shuoming", list.get(0).getContentDes());
|
|
|
|
|
+ }});
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ response.setContentType("application/octet-stream");
|
|
|
|
|
+ response.setHeader("Content-disposition","attachment;filename=\""+"out_template.docx"+"\"");
|
|
|
|
|
+
|
|
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
|
|
+
|
|
|
|
|
+ template.write(out);
|
|
|
|
|
+ out.flush();
|
|
|
|
|
+ out.close();
|
|
|
|
|
+ template.close();
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|