SysReportController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.ruoyi.system.controller;
  2. import com.deepoove.poi.XWPFTemplate;
  3. import com.deepoove.poi.util.PoitlIOUtils;
  4. import com.ruoyi.common.annotation.Log;
  5. import com.ruoyi.common.core.controller.BaseController;
  6. import com.ruoyi.common.core.domain.AjaxResult;
  7. import com.ruoyi.common.core.domain.entity.SysDictData;
  8. import com.ruoyi.common.core.page.TableDataInfo;
  9. import com.ruoyi.common.enums.BusinessType;
  10. import com.ruoyi.common.utils.DateUtils;
  11. import com.ruoyi.common.utils.SecurityUtils;
  12. import com.ruoyi.common.utils.poi.ExcelUtil;
  13. import com.ruoyi.system.domain.SysPlan;
  14. import com.ruoyi.system.domain.SysReport;
  15. import com.ruoyi.system.service.ISysDictDataService;
  16. import com.ruoyi.system.service.ISysPlanService;
  17. import com.ruoyi.system.service.ISysReportService;
  18. import com.ruoyi.system.service.impl.SysDictDataServiceImpl;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.util.ClassUtils;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.io.BufferedOutputStream;
  25. import java.io.FileOutputStream;
  26. import java.io.OutputStream;
  27. import java.text.DateFormat;
  28. import java.util.HashMap;
  29. import java.util.List;
  30. import java.util.Map;
  31. /**
  32. * 【请填写功能名称】Controller
  33. *
  34. * @author ruoyi
  35. * @date 2022-06-20
  36. */
  37. @RestController
  38. @RequestMapping("/system/report")
  39. public class SysReportController extends BaseController
  40. {
  41. @Autowired
  42. private ISysReportService sysReportService;
  43. @Autowired
  44. private ISysPlanService sysPlanService;
  45. @Autowired
  46. private ISysDictDataService sysDictDataService;
  47. /**
  48. * 查询【请填写功能名称】列表
  49. */
  50. @GetMapping("/list")
  51. public TableDataInfo list(SysReport sysReport)
  52. {
  53. startPage();
  54. if(SecurityUtils.isAdmin(SecurityUtils.getUserId())){
  55. }else{
  56. sysReport.setClashId(SecurityUtils.getLoginUser().getDeptId()+"");
  57. }
  58. sysReport.setIsMerge("-1");
  59. List<SysReport> list = sysReportService.selectSysReportList(sysReport);
  60. return getDataTable(list);
  61. }
  62. @GetMapping("/clashList")
  63. public TableDataInfo clashList(SysReport sysReport)
  64. {
  65. List<SysReport> list = sysReportService.selectSysReportList(sysReport);
  66. return getDataTable(list);
  67. }
  68. /**
  69. * 导出【请填写功能名称】列表
  70. */
  71. @Log(title = "施工报备导出", businessType = BusinessType.EXPORT)
  72. @PostMapping("/export")
  73. public void export(HttpServletResponse response, HttpServletRequest request, SysReport sysReport)
  74. {
  75. String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/template/";
  76. String templatePath =path+"report.docx";
  77. List<SysReport> list = sysReportService.selectSysReportList(sysReport);
  78. if(list.size()<1) AjaxResult.error("不存在!");;
  79. list.get(0);
  80. SysPlan plan = sysPlanService.selectSysPlanById(list.get(0).getPlanId());
  81. SysDictData dictData =new SysDictData();dictData.setDictType("content_one");
  82. List<SysDictData> onedatalist = sysDictDataService.selectDictDataList(dictData);
  83. Map<String,String> onemap = new HashMap<>();
  84. for (SysDictData d:onedatalist
  85. ) {
  86. onemap.put(d.getDictValue(),d.getDictLabel());
  87. }
  88. dictData.setDictType("content_two");
  89. List<SysDictData> twodatalist = sysDictDataService.selectDictDataList(dictData);
  90. Map<String,String> twomap = new HashMap<>();
  91. for (SysDictData d:twodatalist
  92. ) {
  93. twomap.put(d.getDictValue(),d.getDictLabel());
  94. }
  95. // ExcelUtil<SysReport> util = new ExcelUtil<SysReport>(SysReport.class);
  96. // util.exportExcel(response, list, "数据");
  97. try{
  98. XWPFTemplate template = XWPFTemplate.compile(templatePath).render(
  99. new HashMap<String, Object>(){{
  100. put("date", DateUtils.parseDateToStr("yyyy年MM月dd日",list.get(0).getCreateTime()));
  101. put("name", plan.getName());
  102. put("length", plan.getBridgeHeightWidth());
  103. put("dengji", plan.getLevel());
  104. 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" )));
  105. put("content",(list.get(0).getContentOne()==null?"":onemap.get( list.get(0).getContentOne())) +(list.get(0).getContentTwo()==null?"":twomap.get( list.get(0).getContentTwo())) );
  106. 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()));
  107. put("danwei", list.get(0).getDept());
  108. put("shuoming", list.get(0).getContentDes());
  109. }});
  110. response.setContentType("application/octet-stream");
  111. response.setHeader("Content-disposition","attachment;filename=\""+"out_template.docx"+"\"");
  112. OutputStream out = response.getOutputStream();
  113. template.write(out);
  114. out.flush();
  115. out.close();
  116. template.close();
  117. }catch (Exception e){
  118. }
  119. }
  120. /**
  121. * 获取【请填写功能名称】详细信息
  122. */
  123. @GetMapping(value = "/{id}")
  124. public AjaxResult getInfo(@PathVariable("id") Long id)
  125. {
  126. return AjaxResult.success(sysReportService.selectSysReportById(id));
  127. }
  128. /**
  129. * 新增【请填写功能名称】
  130. */
  131. @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
  132. @PostMapping
  133. public AjaxResult add(@RequestBody SysReport sysReport)
  134. {
  135. return toAjax(sysReportService.insertSysReport(sysReport));
  136. }
  137. /**
  138. * 修改【请填写功能名称】
  139. */
  140. @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
  141. @PutMapping
  142. public AjaxResult edit(@RequestBody SysReport sysReport)
  143. {
  144. return toAjax(sysReportService.updateSysReport(sysReport));
  145. }
  146. /**
  147. * 删除【请填写功能名称】
  148. */
  149. @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
  150. @DeleteMapping("/{ids}")
  151. public AjaxResult remove(@PathVariable Long[] ids)
  152. {
  153. return toAjax(sysReportService.deleteSysReportByIds(ids));
  154. }
  155. @GetMapping("collisionDetection/{ids}")
  156. public AjaxResult collisionDetection(@PathVariable Long[] ids)
  157. {
  158. return AjaxResult.success(sysReportService.collisionDetection(ids));
  159. }
  160. @GetMapping("mergeQuery/{ids}")
  161. public AjaxResult mergeQuery(@PathVariable Long[] ids)
  162. {
  163. return AjaxResult.success(sysReportService.mergeQuery(ids));
  164. }
  165. @GetMapping("mergeReport/{ids}")
  166. public AjaxResult mergeReport(@PathVariable Long[] ids)
  167. {
  168. try{
  169. return AjaxResult.success(sysReportService.mergeReport(ids));
  170. }catch (Error e){
  171. AjaxResult.error("所选报备无法合并!");
  172. }
  173. return AjaxResult.success();
  174. }
  175. }