CommonController.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. package com.ruoyi.project.common;
  2. import javax.servlet.ServletOutputStream;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.alibaba.fastjson.JSON;
  6. import com.ruoyi.common.utils.export.JxlsTemplateEnum;
  7. import com.ruoyi.common.utils.export.JxlsView;
  8. import com.ruoyi.framework.web.controller.BaseController;
  9. import com.ruoyi.project.sems.domain.*;
  10. import com.ruoyi.project.sems.service.*;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.*;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import com.ruoyi.common.constant.Constants;
  17. import com.ruoyi.common.utils.StringUtils;
  18. import com.ruoyi.common.utils.file.FileUploadUtils;
  19. import com.ruoyi.common.utils.file.FileUtils;
  20. import com.ruoyi.framework.config.RuoYiConfig;
  21. import com.ruoyi.framework.config.ServerConfig;
  22. import com.ruoyi.framework.web.domain.AjaxResult;
  23. import org.springframework.web.servlet.ModelAndView;
  24. import java.io.BufferedInputStream;
  25. import java.io.BufferedOutputStream;
  26. import java.io.IOException;
  27. import java.io.InputStream;
  28. import java.text.ParseException;
  29. import java.util.ArrayList;
  30. import java.util.List;
  31. import java.util.Map;
  32. /**
  33. * 通用请求处理
  34. *
  35. * @author ruoyi
  36. */
  37. @RestController
  38. public class CommonController extends BaseController
  39. {
  40. private static final Logger log = LoggerFactory.getLogger(CommonController.class);
  41. @Autowired
  42. private ServerConfig serverConfig;
  43. @Autowired
  44. private ITSpecdevYlrqService tSpecdevYlrqService;
  45. @Autowired
  46. private ITSpecdevYlgdService tSpecdevYlgdService;
  47. @Autowired
  48. private ITSpecdevGlService tSpecdevGlService;
  49. @Autowired
  50. private ITSpecdevDzsbService tSpecdevDzsbService;
  51. @Autowired
  52. private ITSpecdevDtService tSpecdevDtService;
  53. @Autowired
  54. private ITSpecdevCcService tSpecdevCcService;
  55. /**
  56. * 导入下载模板
  57. */
  58. @RequestMapping("common/template")
  59. @ResponseBody
  60. public void template(String type,HttpServletRequest request, HttpServletResponse response) throws IOException
  61. {
  62. String downloadname = "";
  63. String url = "";
  64. if ( type.equals("alarmmodify") ) {
  65. downloadname = "报警值管理导入模板.xlsx";
  66. url = "static/template/process/alarmmodify.xlsx";
  67. } else if( type.equals("publicdoc") ) {
  68. downloadname = "公共文档管理导入模板.xlsx";
  69. url = "static/template/document/publicdoc.xlsx";
  70. } else if( type.equals("publicdocmenu") ) {
  71. downloadname = "公共文档目录管理导入模板.xlsx";
  72. url = "static/template/document/publicdocmenu.xlsx";
  73. } else if( type.equals("moc") ) {
  74. downloadname = "MOC管理导入模板.xlsx";
  75. url = "static/template/process/moc.xlsx";
  76. } else if( type.equals("accident") ) {
  77. downloadname = "隐患排查导入模板.xlsx";
  78. url = "static/template/production/accident.xlsx";
  79. } else if( type.equals("blind") ) {
  80. downloadname = "盲板清单导入模板.xlsx";
  81. url = "static/template/production/blind.xlsx";
  82. } else if( type.equals("我的机器") ) {
  83. downloadname = "5S管理我的机器导入模板.xlsx";
  84. url = "static/template/production/wsglmachine.xlsx";
  85. } else if( type.equals("我的区域") ) {
  86. downloadname = "5S管理我的区域导入模板.xlsx";
  87. url = "static/template/production/wsglarea.xlsx";
  88. } else if( type.equals("day") ) {
  89. downloadname = "报警统计(昨天)导入模板.xlsx";
  90. url = "static/template/production/alarmstatistics.xlsx";
  91. } else if( type.equals("month") ) {
  92. downloadname = "报警统计(上月)导入模板.xlsx";
  93. url = "static/template/production/alarmstatistics.xlsx";
  94. } else if( type.equals("lbnhjstj") ) {
  95. downloadname = "能耗管理统计导入模板.xlsx";
  96. url = "static/template/production/lbnhjstj.xlsx";
  97. } else if( type.equals("rcaudit") ) {
  98. downloadname = "RC审计助手导入模板.xlsx";
  99. url = "static/template/ehs/rcaudit.xlsx";
  100. } else if( type.equals("rcauditmenu") ) {
  101. downloadname = "RC审计助手目录导入模板.xlsx";
  102. url = "static/template/ehs/rcauditmenu.xlsx";
  103. } else if( type.equals("plantproglistprocedure") ) {
  104. downloadname = "装置程序清单程序总汇导入模板.xlsx";
  105. url = "static/template/document/plantproglistprocedure.xlsx";
  106. } else if( type.equals("plantproglistform") ) {
  107. downloadname = "装置程序清单表格总汇导入模板.xlsx";
  108. url = "static/template/document/plantproglistform.xlsx";
  109. } else if( type.equals("plantproglistguide") ) {
  110. downloadname = "装置程序清单指南总汇导入模板.xlsx";
  111. url = "static/template/document/plantproglistguide.xlsx";
  112. } else if( type.equals("plantproglistbook") ) {
  113. downloadname = "装置程序清单指导书总汇导入模板.xlsx";
  114. url = "static/template/document/plantproglistbook.xlsx";
  115. } else if( type.equals("plantproglistannex") ) {
  116. downloadname = "装置程序清单附件总汇导入模板.xlsx";
  117. url = "static/template/document/plantproglistannex.xlsx";
  118. } else if( type.equals("plantproglistmaterials") ) {
  119. downloadname = "装置程序清单培训材料导入模板.xlsx";
  120. url = "static/template/document/plantproglistmaterials.xlsx";
  121. } else if( type.equals("officesupply") ) {
  122. downloadname = "办公用品管理导入模板.xlsx";
  123. url = "static/template/affair/officesupply.xlsx";
  124. } else if( type.equals("ppe") ) {
  125. downloadname = "PPE发放登记导入模板.xlsx";
  126. url = "static/template/affair/ppe.xlsx";
  127. } else if( type.equals("intercom") ) {
  128. downloadname = "对讲机管理导入模板.xlsx";
  129. url = "static/template/affair/intercom.xlsx";
  130. } else if( type.equals("kkxglcs") ) {
  131. downloadname = "可靠性管理措施导入模板.xlsx";
  132. url = "static/template/reliability/kkxglcs.xlsx";
  133. } else if( type.equals("original") ) {
  134. downloadname = "故障管理初选导入模板.xlsx";
  135. url = "static/template/reliability/original.xlsx";
  136. } else if( type.equals("abnormalreport") ) {
  137. downloadname = "异常报告管理导入模板.xlsx";
  138. url = "static/template/reliability/abnormalreport.xlsx";
  139. } else if( type.equals("assetlist") ) {
  140. downloadname = "资产清单导入模板.xlsx";
  141. url = "static/template/reliability/assetlist.xlsx";
  142. } else if( type.equals("safetyvavle") ) {
  143. downloadname = "安全阀清单导入模板.xlsx";
  144. url = "static/template/reliability/safetyvavle.xlsx";
  145. } else if( type.equals("preventivemaintenance") ) {
  146. downloadname = "预防性维修导入模板.xlsx";
  147. url = "static/template/reliability/preventivemaintenance.xlsx";
  148. } else if( type.equals("pipe") ) {
  149. downloadname = "管线清单导入模板.xlsx";
  150. url = "static/template/cui/pipe.xlsx";
  151. } else if( type.equals("pvessel") ) {
  152. downloadname = "容器清单导入模板.xlsx";
  153. url = "static/template/cui/pvessel.xlsx";
  154. } else if( type.equals("problems") ) {
  155. downloadname = "CUI问题整改跟踪清单导入模板.xlsx";
  156. url = "static/template/cui/problems.xlsx";
  157. } else if( type.equals("eyewasher") ) {
  158. downloadname = "洗眼器导入模板.xlsx";
  159. url = "static/template/ehs/eyewasher.xlsx";
  160. } else if( type.equals("firehose") ) {
  161. downloadname = "消防水带箱导入模板.xlsx";
  162. url = "static/template/ehs/firehose.xlsx";
  163. } else if( type.equals("firehydrant") ) {
  164. downloadname = "消防栓导入模板.xlsx";
  165. url = "static/template/ehs/firehydrant.xlsx";
  166. } else if( type.equals("highpresfire") ) {
  167. downloadname = "高压消防炮导入模板.xlsx";
  168. url = "static/template/ehs/highpresfire.xlsx";
  169. } else if( type.equals("fireextinguisher") ) {
  170. downloadname = "灭火器导入模板.xlsx";
  171. url = "static/template/ehs/fireextinguisher.xlsx";
  172. } else if( type.equals("autosprinkler") ) {
  173. downloadname = "自动喷淋系统导入模板.xlsx";
  174. url = "static/template/ehs/autosprinkler.xlsx";
  175. } else if( type.equals("firestandpipe") ) {
  176. downloadname = "消防竖管导入模板.xlsx";
  177. url = "static/template/ehs/firestandpipe.xlsx";
  178. } else if( type.equals("safetyapproval") ) {
  179. downloadname = "安全批文清单导入模板.xlsx";
  180. url = "static/template/ehs/safetyapproval.xlsx";
  181. } else if( type.equals("fireapproval") ) {
  182. downloadname = "消防批文清单导入模板.xlsx";
  183. url = "static/template/ehs/fireapproval.xlsx";
  184. } else if( type.equals("environapproval") ) {
  185. downloadname = "环保批文清单导入模板.xlsx";
  186. url = "static/template/ehs/environapproval.xlsx";
  187. } else if( type.equals("safetyapprcont") ) {
  188. downloadname = "安全批文主要内容导入模板.xlsx";
  189. url = "static/template/ehs/safetyapprcont.xlsx";
  190. } else if( type.equals("environapprcont") ) {
  191. downloadname = "环保批文主要内容导入模板.xlsx";
  192. url = "static/template/ehs/environapprcont.xlsx";
  193. } else if( type.equals("jobticket") ) {
  194. downloadname = "工作票导入模板.xlsx";
  195. url = "static/template/ehs/jobticket.xlsx";
  196. } else if( type.equals("msds") ) {
  197. downloadname = "MSDS管理导入模板.xlsx";
  198. url = "static/template/ehs/msds.xlsx";
  199. } else if( type.equals("water") ) {
  200. downloadname = "废水风险评估导入模板.xlsx";
  201. url = "static/template/ehs/water.xlsx";
  202. } else if( type.equals("danger") ) {
  203. downloadname = "危险废物清单导入模板.xlsx";
  204. url = "static/template/ehs/danger.xlsx";
  205. } else if( type.equals("dangermonth") ) {
  206. downloadname = "危险废物出入库月报导入模板.xlsx";
  207. url = "static/template/ehs/dangermonth.xlsx";
  208. } else if( type.equals("barrelmonth") ) {
  209. downloadname = "废桶进出库统计日报导入模板.xlsx";
  210. url = "static/template/ehs/barrelmonth.xlsx";
  211. } else if( type.equals("dangerday") ) {
  212. downloadname = "危废出入库统计日报导入模板.xlsx";
  213. url = "static/template/ehs/dangerday.xlsx";
  214. } else if( type.equals("workcertificate") ) {
  215. downloadname = "作业证书一览表导入模板.xlsx";
  216. url = "static/template/training/workcertificate.xlsx";
  217. } else if( type.equals("worklicense") ) {
  218. downloadname = "上岗证一览表导入模板.xlsx";
  219. url = "static/template/training/worklicense.xlsx";
  220. } else if( type.equals("trainingrecords") ) {
  221. downloadname = "培训成绩导入模板.xlsx";
  222. url = "static/template/training/trainingrecords.xlsx";
  223. } else if( type.equals("training") ) {
  224. downloadname = "培训计划执行及跟踪导入模板.xlsx";
  225. url = "static/template/training/training.xlsx";
  226. } else if( type.equals("skillevaluation") ) {
  227. downloadname = "岗位人员技能评估导入模板.xlsx";
  228. url = "static/template/training/skillevaluation.xlsx";
  229. } else if( type.equals("newemployee") ) {
  230. downloadname = "新员工培训导入模板.xlsx";
  231. url = "static/template/training/newemployee.xlsx";
  232. } else if( type.equals("targetlist") ) {
  233. downloadname = "目标录入导入模板.xlsx";
  234. url = "static/template/plant/targetlist.xlsx";
  235. } else if( type.equals("targetreview") ) {
  236. downloadname = "目标回顾导入模板.xlsx";
  237. url = "static/template/plant/targetreview.xlsx";
  238. } else if( type.equals("manageactivity") ) {
  239. downloadname = "管理活动抽查导入模板.xlsx";
  240. url = "static/template/plant/manageactivity.xlsx";
  241. } else if( type.equals("awardrecord") ) {
  242. downloadname = "人员嘉奖记录导入模板.xlsx";
  243. url = "static/template/plant/awardrecord.xlsx";
  244. } else if( type.equals("staffmgr") ) {
  245. downloadname = "人员信息导入模板.xlsx";
  246. url = "static/template/plant/staffmgr.xlsx";
  247. } else if( type.equals("specYlrq") ) {
  248. downloadname = "压力容器导入模板.xlsx";
  249. url = "static/template/sems/specYlrq.xlsx";
  250. } else if( type.equals("specYlgd") ) {
  251. downloadname = "压力管道导入模板.xlsx";
  252. url = "static/template/sems/specYlgd.xlsx";
  253. }else if( type.equals("specGl") ) {
  254. downloadname = "锅炉导入模板.xlsx";
  255. url = "static/template/sems/specGl.xlsx";
  256. }else if( type.equals("specDzsb") ) {
  257. downloadname = "起重机械导入模板.xlsx";
  258. url = "static/template/sems/specDzsb.xlsx";
  259. }else if( type.equals("specCc") ) {
  260. downloadname = "叉车导入模板.xlsx";
  261. url = "static/template/sems/specCc.xlsx";
  262. }else if( type.equals("specDt") ) {
  263. downloadname = "电梯导入模板.xlsx";
  264. url = "static/template/sems/specDt.xlsx";
  265. }else if( type.equals("reportYlrq") ) {
  266. downloadname = "压力容器年检报告批量导入更新模板.xlsx";
  267. url = "static/template/sems/reportYlrq.xlsx";
  268. }
  269. InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);
  270. downloadFile(downloadname, is, request, response);
  271. }
  272. /**
  273. * 通用下载请求
  274. *
  275. * @param fileName 文件名称
  276. * @param delete 是否删除
  277. */
  278. @GetMapping("common/download")
  279. public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
  280. {
  281. try
  282. {
  283. if (!FileUtils.isValidFilename(fileName))
  284. {
  285. throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
  286. }
  287. String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
  288. String filePath = RuoYiConfig.getDownloadPath() + fileName;
  289. response.setCharacterEncoding("utf-8");
  290. response.setContentType("multipart/form-data");
  291. response.setHeader("Content-Disposition",
  292. "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
  293. FileUtils.writeBytes(filePath, response.getOutputStream());
  294. if (delete)
  295. {
  296. FileUtils.deleteFile(filePath);
  297. }
  298. }
  299. catch (Exception e)
  300. {
  301. log.error("下载文件失败", e);
  302. }
  303. }
  304. /**
  305. * 通用上传请求
  306. */
  307. @PostMapping("/common/upload")
  308. public AjaxResult uploadFile(MultipartFile file) throws Exception
  309. {
  310. try
  311. {
  312. // 上传文件路径
  313. String filePath = RuoYiConfig.getUploadPath();
  314. // 上传并返回新文件名称
  315. String fileName = FileUploadUtils.upload(filePath, file);
  316. String url = serverConfig.getUrl() + fileName;
  317. logger.info("url:" + url);
  318. AjaxResult ajax = AjaxResult.success();
  319. ajax.put("fileName", fileName);
  320. ajax.put("url", url);
  321. return ajax;
  322. }
  323. catch (Exception e)
  324. {
  325. return AjaxResult.error(e.getMessage());
  326. }
  327. }
  328. /**
  329. * 本地资源通用下载
  330. */
  331. @GetMapping("/common/download/resource")
  332. public void resourceDownload(String name, HttpServletRequest request, HttpServletResponse response) throws Exception
  333. {
  334. // 本地资源路径
  335. String localPath = RuoYiConfig.getProfile();
  336. // 数据库资源地址
  337. String downloadPath = localPath + StringUtils.substringAfter(name, Constants.RESOURCE_PREFIX);
  338. // 下载名称
  339. String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
  340. response.setCharacterEncoding("utf-8");
  341. response.setContentType("multipart/form-data");
  342. response.setHeader("Content-Disposition",
  343. "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName));
  344. FileUtils.writeBytes(downloadPath, response.getOutputStream());
  345. }
  346. public static void downloadFile(String filename, InputStream is, HttpServletRequest request, HttpServletResponse response) throws IOException {
  347. response.reset();
  348. if (filename.endsWith(".doc") || filename.endsWith(".docx")) {
  349. response.setContentType("application/msword;charset=utf-8");
  350. } else if (filename.endsWith(".xls") || filename.endsWith(".xlsx")) {
  351. response.setContentType("application/vnd.ms-excel;charset=utf-8");
  352. } else {
  353. response.setHeader("content-type", "application/octet-stream");
  354. }
  355. //下载文件的名称
  356. response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("UTF-8"), "iso-8859-1"));
  357. request.setCharacterEncoding("UTF-8");
  358. ServletOutputStream out = null;
  359. BufferedInputStream bis = null;
  360. BufferedOutputStream bos = null;
  361. try {
  362. out = response.getOutputStream();
  363. bis = new BufferedInputStream(is);
  364. bos = new BufferedOutputStream(out);
  365. byte[] buff = new byte[2048];
  366. int bytesRead;
  367. while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  368. bos.write(buff, 0, bytesRead);
  369. }
  370. } catch (IOException e) {
  371. e.printStackTrace();
  372. } finally {
  373. try {
  374. if (bis != null) {
  375. bis.close();
  376. }
  377. if (bos != null) {
  378. bos.close();
  379. }
  380. if (is != null) {
  381. is.close();
  382. }
  383. } catch (IOException e) {
  384. e.printStackTrace();
  385. }
  386. }
  387. }
  388. @RequestMapping("/common/download/exportDevList")
  389. public ModelAndView exportbmy(@RequestParam Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) throws ParseException {
  390. logger.info(JSON.toJSONString(params));
  391. String id = (String) params.get("ids");
  392. int devType = Integer.parseInt((String) params.get("devType"));
  393. String[] ids = id.split(",");
  394. logger.info("ids" + ids);
  395. int downloadType = Integer.parseInt((String) params.get("downloadType"));
  396. logger.info("downloadType" + downloadType);
  397. List<Object> list = new ArrayList<>();
  398. switch (devType) {
  399. case 1:
  400. for (String i : ids
  401. ) {
  402. TSpecdevYlrq ylrqEntity = tSpecdevYlrqService.getById(i);
  403. list.add(ylrqEntity);
  404. }
  405. break;
  406. case 2:
  407. for (String i : ids
  408. ) {
  409. TSpecdevYlgd ylgdEntity = tSpecdevYlgdService.getById(i);
  410. list.add(ylgdEntity);
  411. }
  412. break;
  413. case 3:
  414. for (String i : ids
  415. ) {
  416. TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
  417. list.add(dzsbEntity);
  418. }
  419. break;
  420. case 4:
  421. for (String i : ids
  422. ) {
  423. TSpecdevGl glEntity = tSpecdevGlService.getById(i);
  424. list.add(glEntity);
  425. }
  426. break;
  427. case 5:
  428. for (String i : ids
  429. ) {
  430. TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
  431. list.add(dtEntity);
  432. }
  433. break;
  434. case 6:
  435. for (String i : ids
  436. ) {
  437. TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
  438. list.add(ccEntity);
  439. }
  440. break;
  441. case 7:
  442. // for (String i : ids
  443. // ) {
  444. // TOtherTankEntity tankEntity = tOtherTankService.getById(i);
  445. // list.add(tankEntity);
  446. // }
  447. }
  448. if(devType == 1 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_YLRQ_UPDATE, list)); }
  449. else if(devType == 2 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_YLGD_UPDATE, list)); }
  450. else if(devType == 3 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_DZSB_UPDATE, list)); }
  451. else if(devType == 4 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_GL_UPDATE, list)); }
  452. else if(devType == 5 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_DT_UPDATE, list)); }
  453. else if(devType == 6 && downloadType == 2){ return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_CC_UPDATE, list)); }
  454. return null;
  455. }
  456. }