| | |
| | | import com.panzhihua.common.service.partybuilding.PartyBuildingService; |
| | | import com.panzhihua.common.utlis.HttpUtils; |
| | | import com.panzhihua.common.utlis.SFTPUtil; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler; |
| | | //import freemarker.template.Configuration; |
| | | //import freemarker.template.Template; |
| | |
| | | |
| | | @ApiOperation(value = "下载安全工作记录报告") |
| | | @PostMapping("/export/safetyWorkRecord") |
| | | public R exportSafetyWorkRecord(@RequestParam(value = "id") Long id){ |
| | | public R exportSafetyWorkRecord(@RequestBody List<Long> ids){ |
| | | Long communityId = this.getLoginUserInfo().getCommunityId(); |
| | | Map<String,Object> dataMap = new HashMap<String, Object>(); |
| | | ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = JSONObject.parseObject(JSONObject.toJSONString(communityService.detailSafetyWorkRecord(id, communityId).getData()),ComSwSafetyWorkRecordVO.class); |
| | | //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址 |
| | | String name = "安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"; |
| | | List<String> downLoadUrl = new ArrayList<>(); |
| | | try { |
| | | for (Long id : ids){ |
| | | SFTPUtil sftp = new SFTPUtil(userName, password, host, port); |
| | | sftp.login(); |
| | | Map<String,Object> dataMap = new HashMap<String, Object>(); |
| | | ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = JSONObject.parseObject(JSONObject.toJSONString(communityService.detailSafetyWorkRecord(id, communityId).getData()),ComSwSafetyWorkRecordVO.class); |
| | | //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址 |
| | | String ftpUrl = "/mnt/data/web/excel/"; |
| | | String name = "安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"; |
| | | boolean existDir = sftp.isExistDir(ftpUrl + name); |
| | | if (!existDir) { |
| | | String property = System.getProperty("user.dir"); |
| | | String fileName = property + File.separator + name; |
| | | // 这里 需要指定写用哪个class去写 |
| | | ExcelWriter excelWriter = null; |
| | | InputStream inputStream = null; |
| | | try { |
| | | //日期 |
| | | dataMap.put("date", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime())); |
| | | //巡查类型 |
| | | dataMap.put("patrolType", comSwSafetyWorkRecordVO.getPatrolType()); |
| | | //社区名称 |
| | | dataMap.put("communityName", comSwSafetyWorkRecordVO.getCommunityName()); |
| | | //地址 |
| | | dataMap.put("address", comSwSafetyWorkRecordVO.getAddress()); |
| | | //记录内容 |
| | | dataMap.put("recordContent", comSwSafetyWorkRecordVO.getRecordContent()); |
| | | //发现记录 |
| | | dataMap.put("findRecord", comSwSafetyWorkRecordVO.getFindRecord()); |
| | | //记录照片 |
| | | List<String> photo = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getRecordPhoto())) { |
| | | photo = Arrays.asList(comSwSafetyWorkRecordVO.getRecordPhoto().split(",")); |
| | | } |
| | | if (photo.size() != 0 && null != photo) { |
| | | if (photo.size() == 1){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 1) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 2){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 2) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 3){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 3) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 4){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 4) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 5){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 5) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 6){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 6) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 7){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 7) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 8){ |
| | | for (int i = 0; i < 9; i++){ |
| | | if (i < 8) { |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | }else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 9){ |
| | | for (int i = 0; i < 9; i++){ |
| | | downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwSafetyWorkRecordVO.getId() + "_" + i + ".jpg")); |
| | | } |
| | | } |
| | | }else{ |
| | | for (int i = 0; i < 9; i++){ |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | //备注 |
| | | dataMap.put("remark", comSwSafetyWorkRecordVO.getRemark()); |
| | | //巡查时间 |
| | | dataMap.put("patrolTime", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime())); |
| | | //工作人员 |
| | | dataMap.put("personName", comSwSafetyWorkRecordVO.getPersonName()); |
| | | //填报人员 |
| | | dataMap.put("createName", comSwSafetyWorkRecordVO.getCreateName()); |
| | | //填报时间 |
| | | dataMap.put("createAt", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getCreateAt())); |
| | | //获取请求url |
| | | String url = Constants.G_D_WEATHER_URL; |
| | | //获取请求参数 |
| | | String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400"; |
| | | String result = HttpUtils.sendGet(url,param); |
| | | R r = R.ok(JSON.parseObject(result)); |
| | | WeatherVO weatherVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class);if (null != weatherVO) { |
| | | LiveVO liveVO = weatherVO.getLives().get(0); |
| | | //城市 |
| | | dataMap.put("city", liveVO.getCity()); |
| | | //天气 |
| | | dataMap.put("weather", liveVO.getWeather()); |
| | | //温度 |
| | | dataMap.put("temperature", liveVO.getTemperature()); |
| | | //风向 |
| | | dataMap.put("winddirection", liveVO.getWinddirection()); |
| | | //风力 |
| | | dataMap.put("windpower", liveVO.getWindpower()); |
| | | } |
| | | Configuration configuration = new Configuration(new Version("2.3.0")); |
| | | |
| | | configuration.setDefaultEncoding("utf-8"); |
| | | /** |
| | | * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 |
| | | * 指定ftl文件所在目录的路径,而不是ftl文件的路径 |
| | | */ |
| | | //指定路径的第一种方式(根据某个类的相对路径指定) |
| | | // configuration.setClassForTemplateLoading(this.getClass(), ""); |
| | | |
| | | //指定路径的第二种方式,我的路径是C:/a.ftl |
| | | configuration.setDirectoryForTemplateLoading(new File("c:/")); |
| | | |
| | | //输出文档路径及名称 |
| | | // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"); |
| | | File file = new File(fileName); |
| | | |
| | | //以utf-8的编码读取ftl文件 |
| | | Template template = configuration.getTemplate("安全工作记录.ftl", "utf-8"); |
| | | Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"), 10240); |
| | | template.process(dataMap, out); |
| | | out.close(); |
| | | inputStream = new FileInputStream(file); |
| | | sftp.uploadMore(ftpUrl, name, inputStream); |
| | | sftp.logout(); |
| | | inputStream.close(); |
| | | String absolutePath = file.getAbsolutePath(); |
| | | boolean delete = file.delete(); |
| | | log.info("删除excel【{}】结果【{}】", absolutePath, delete); |
| | | } finally { |
| | | // 千万别忘记finish 会帮忙关闭流 |
| | | if (inputStream != null) { |
| | | inputStream.close(); |
| | | } |
| | | } |
| | | } |
| | | downLoadUrl.add(excelUrl + name); |
| | | } |
| | | return R.ok(downLoadUrl); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("文件传输失败【{}】", e.getMessage()); |
| | | } |
| | | return R.fail(); |
| | | } |
| | | |
| | | @ApiOperation(value = "下载巡查记录报告") |
| | | @PostMapping("/export/patrolRecord") |
| | | public R exportPatrolRecord(@RequestBody List<Long> ids){ |
| | | Long communityId = this.getLoginUserInfo().getCommunityId(); |
| | | List<String> downLoadUrl = new ArrayList<>(); |
| | | try { |
| | | //日期 |
| | | dataMap.put("date", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime())); |
| | | //巡查类型 |
| | | dataMap.put("patrolType", comSwSafetyWorkRecordVO.getPatrolType()); |
| | | //社区名称 |
| | | dataMap.put("communityName", comSwSafetyWorkRecordVO.getCommunityName()); |
| | | //地址 |
| | | dataMap.put("address", comSwSafetyWorkRecordVO.getAddress()); |
| | | //记录内容 |
| | | dataMap.put("recordContent", comSwSafetyWorkRecordVO.getRecordContent()); |
| | | //发现记录 |
| | | dataMap.put("findRecord", comSwSafetyWorkRecordVO.getFindRecord()); |
| | | //记录照片 |
| | | String[] photo = comSwSafetyWorkRecordVO.getRecordPhoto().split(","); |
| | | for (int i = 0; i < photo.length; i++){ |
| | | downloadPicture(photo[i], comSwSafetyWorkRecordVO.getId() + "_" + i); |
| | | } |
| | | if (photo.length == 0 || null == photo){ |
| | | dataMap.put("imgStr1", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr2", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr3", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr4", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr5", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 1){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr3", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr4", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr5", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 2){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr4", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr5", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 3){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr5", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 4){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 5){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", photo[4]); |
| | | dataMap.put("imgStr6", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 6){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", photo[4]); |
| | | dataMap.put("imgStr6", photo[5]); |
| | | dataMap.put("imgStr7", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 7){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", photo[4]); |
| | | dataMap.put("imgStr6", photo[5]); |
| | | dataMap.put("imgStr7", photo[6]); |
| | | dataMap.put("imgStr8", getImageStr("/mnt/data/web/blank.jpg")); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 8){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", photo[4]); |
| | | dataMap.put("imgStr6", photo[5]); |
| | | dataMap.put("imgStr7", photo[6]); |
| | | dataMap.put("imgStr8", photo[7]); |
| | | dataMap.put("imgStr9", getImageStr("/mnt/data/web/blank.jpg")); |
| | | } |
| | | if (photo.length == 9){ |
| | | dataMap.put("imgStr1", photo[0]); |
| | | dataMap.put("imgStr2", photo[1]); |
| | | dataMap.put("imgStr3", photo[2]); |
| | | dataMap.put("imgStr4", photo[3]); |
| | | dataMap.put("imgStr5", photo[4]); |
| | | dataMap.put("imgStr6", photo[5]); |
| | | dataMap.put("imgStr7", photo[6]); |
| | | dataMap.put("imgStr8", photo[7]); |
| | | dataMap.put("imgStr9", photo[8]); |
| | | } |
| | | //备注 |
| | | dataMap.put("remark", comSwSafetyWorkRecordVO.getRemark()); |
| | | //巡查时间 |
| | | dataMap.put("patrolTime", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime())); |
| | | //工作人员 |
| | | dataMap.put("personName", comSwSafetyWorkRecordVO.getPersonName()); |
| | | //填报人员 |
| | | dataMap.put("createName", comSwSafetyWorkRecordVO.getCreateName()); |
| | | //填报时间 |
| | | dataMap.put("createAt", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getCreateAt())); |
| | | //获取请求url |
| | | String url = Constants.G_D_WEATHER_URL; |
| | | //获取请求参数 |
| | | String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400"; |
| | | String result = HttpUtils.sendGet(url,param); |
| | | R r = R.ok(JSON.parseObject(result)); |
| | | WeatherVO weatherVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class);if (null != weatherVO) { |
| | | LiveVO liveVO = weatherVO.getLives().get(0); |
| | | //城市 |
| | | dataMap.put("city", liveVO.getCity()); |
| | | //天气 |
| | | dataMap.put("weather", liveVO.getWeather()); |
| | | //温度 |
| | | dataMap.put("temperature", liveVO.getTemperature()); |
| | | //风向 |
| | | dataMap.put("winddirection", liveVO.getWinddirection()); |
| | | //风力 |
| | | dataMap.put("windpower", liveVO.getWindpower()); |
| | | } |
| | | Configuration configuration = new Configuration(new Version("2.3.0")); |
| | | for (Long id : ids) { |
| | | SFTPUtil sftp = new SFTPUtil(userName, password, host, port); |
| | | sftp.login(); |
| | | Map<String, Object> dataMap = new HashMap<String, Object>(); |
| | | ComSwPatrolRecordVO comSwPatrolRecordVO = JSONObject.parseObject(JSONObject.toJSONString(communityService.detailPatrolRecord(id).getData()), ComSwPatrolRecordVO.class); |
| | | //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址 |
| | | String ftpUrl = "/mnt/data/web/excel/"; |
| | | String name = "巡查记录_" + comSwPatrolRecordVO.getId() + ".doc"; |
| | | |
| | | configuration.setDefaultEncoding("utf-8"); |
| | | /** |
| | | * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 |
| | | * 指定ftl文件所在目录的路径,而不是ftl文件的路径 |
| | | */ |
| | | //指定路径的第一种方式(根据某个类的相对路径指定) |
| | | // configuration.setClassForTemplateLoading(this.getClass(), ""); |
| | | boolean existDir = sftp.isExistDir(ftpUrl + name); |
| | | if (!existDir) { |
| | | String property = System.getProperty("user.dir"); |
| | | String fileName = property + File.separator + name; |
| | | // 这里 需要指定写用哪个class去写 |
| | | ExcelWriter excelWriter = null; |
| | | InputStream inputStream = null; |
| | | try { |
| | | //日期 |
| | | dataMap.put("date", new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getPatrolTime())); |
| | | //巡查类型 |
| | | dataMap.put("patrolType", comSwPatrolRecordVO.getPatrolType()); |
| | | //社区名称 |
| | | // dataMap.put("communityName", comSwPatrolRecordVO.getCommunityName()); |
| | | //地址 |
| | | dataMap.put("address", comSwPatrolRecordVO.getAddress()); |
| | | //记录内容 |
| | | dataMap.put("recordContent", comSwPatrolRecordVO.getRecordContent()); |
| | | //发现记录 |
| | | dataMap.put("findRecord", comSwPatrolRecordVO.getFindRecord()); |
| | | //记录照片 |
| | | List<String> photo = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getRecordPhoto())) { |
| | | photo = Arrays.asList(comSwPatrolRecordVO.getRecordPhoto().split(",")); |
| | | } |
| | | if (photo.size() != 0 && null != photo) { |
| | | if (photo.size() == 1) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 1) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 2) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 2) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 3) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 3) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 4) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 4) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 5) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 5) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 6) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 6) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 7) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 7) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 8) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 8) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 9) { |
| | | for (int i = 0; i < 9; i++) { |
| | | downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwPatrolRecordVO.getId() + "_" + i + ".jpg")); |
| | | } |
| | | } |
| | | } else { |
| | | for (int i = 0; i < 9; i++) { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | //备注 |
| | | dataMap.put("remark", comSwPatrolRecordVO.getRemark()); |
| | | //巡查时间 |
| | | // dataMap.put("patrolTime", new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getPatrolTime())); |
| | | //工作人员 |
| | | // dataMap.put("personName", comSwPatrolRecordVO.getPersonName()); |
| | | //巡查人员 |
| | | dataMap.put("personName", comSwPatrolRecordVO.getPersonName()); |
| | | //接班时间 |
| | | dataMap.put("successionTime", new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getSuccessionTime())); |
| | | //接班人员 |
| | | dataMap.put("successionPerson", comSwPatrolRecordVO.getSuccessionPerson()); |
| | | //填报人员 |
| | | dataMap.put("createName", comSwPatrolRecordVO.getCreateName()); |
| | | //填报时间 |
| | | dataMap.put("createAt", new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getCreateAt())); |
| | | //获取请求url |
| | | String url = Constants.G_D_WEATHER_URL; |
| | | //获取请求参数 |
| | | String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400"; |
| | | String result = HttpUtils.sendGet(url, param); |
| | | R r = R.ok(JSON.parseObject(result)); |
| | | WeatherVO weatherVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class); |
| | | if (null != weatherVO) { |
| | | LiveVO liveVO = weatherVO.getLives().get(0); |
| | | //城市 |
| | | dataMap.put("city", liveVO.getCity()); |
| | | //天气 |
| | | dataMap.put("weather", liveVO.getWeather()); |
| | | //温度 |
| | | dataMap.put("temperature", liveVO.getTemperature()); |
| | | //风向 |
| | | dataMap.put("winddirection", liveVO.getWinddirection()); |
| | | //风力 |
| | | dataMap.put("windpower", liveVO.getWindpower()); |
| | | } |
| | | Configuration configuration = new Configuration(new Version("2.3.0")); |
| | | |
| | | //指定路径的第二种方式,我的路径是C:/a.ftl |
| | | configuration.setDirectoryForTemplateLoading(new File("mnt/data/web/")); |
| | | configuration.setDefaultEncoding("utf-8"); |
| | | /** |
| | | * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 |
| | | * 指定ftl文件所在目录的路径,而不是ftl文件的路径 |
| | | */ |
| | | //指定路径的第一种方式(根据某个类的相对路径指定) |
| | | // configuration.setClassForTemplateLoading(this.getClass(), ""); |
| | | |
| | | //输出文档路径及名称 |
| | | File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"); |
| | | //指定路径的第二种方式,我的路径是C:/a.ftl |
| | | configuration.setDirectoryForTemplateLoading(new File("c:/")); |
| | | |
| | | //以utf-8的编码读取ftl文件 |
| | | Template template = configuration.getTemplate("安全工作记录.ftl", "utf-8"); |
| | | Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 10240); |
| | | template.process(dataMap, out); |
| | | out.close(); |
| | | return R.ok(excelUrl + name); |
| | | //输出文档路径及名称 |
| | | // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"); |
| | | File file = new File(fileName); |
| | | |
| | | //以utf-8的编码读取ftl文件 |
| | | Template template = configuration.getTemplate("巡查记录.ftl", "utf-8"); |
| | | Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"), 10240); |
| | | template.process(dataMap, out); |
| | | out.close(); |
| | | inputStream = new FileInputStream(file); |
| | | sftp.uploadMore(ftpUrl, name, inputStream); |
| | | sftp.logout(); |
| | | inputStream.close(); |
| | | String absolutePath = file.getAbsolutePath(); |
| | | boolean delete = file.delete(); |
| | | log.info("删除excel【{}】结果【{}】", absolutePath, delete); |
| | | } finally { |
| | | // 千万别忘记finish 会帮忙关闭流 |
| | | if (inputStream != null) { |
| | | inputStream.close(); |
| | | } |
| | | } |
| | | } |
| | | downLoadUrl.add(excelUrl + name); |
| | | } |
| | | return R.ok(downLoadUrl); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("文件传输失败【{}】", e.getMessage()); |
| | | return R.fail(); |
| | | } |
| | | return R.fail(); |
| | | } |
| | | |
| | | @ApiOperation(value = "下载隐患报告") |
| | | @PostMapping("/export/DangerReport") |
| | | public R exportDangerReport(@RequestBody List<Long> ids){ |
| | | Long communityId = this.getLoginUserInfo().getCommunityId(); |
| | | List<String> downLoadUrl = new ArrayList<>(); |
| | | try { |
| | | for (Long id : ids) { |
| | | SFTPUtil sftp = new SFTPUtil(userName, password, host, port); |
| | | sftp.login(); |
| | | Map<String, Object> dataMap = new HashMap<String, Object>(); |
| | | ComSwDangerReportVO comSwDangerReportVO = JSONObject.parseObject(JSONObject.toJSONString(communityService.detailDangerReport(id).getData()), ComSwDangerReportVO.class); |
| | | //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址 |
| | | String ftpUrl = "/mnt/data/web/excel/"; |
| | | String name = "隐患报告_" + comSwDangerReportVO.getId() + ".doc"; |
| | | |
| | | boolean existDir = sftp.isExistDir(ftpUrl + name); |
| | | if (!existDir) { |
| | | String property = System.getProperty("user.dir"); |
| | | String fileName = property + File.separator + name; |
| | | // 这里 需要指定写用哪个class去写 |
| | | ExcelWriter excelWriter = null; |
| | | InputStream inputStream = null; |
| | | try { |
| | | //日期 |
| | | dataMap.put("date", comSwDangerReportVO.getCheckTime()); |
| | | //巡查类型 |
| | | dataMap.put("patrolType", comSwDangerReportVO.getPatrolType()); |
| | | //地址 |
| | | dataMap.put("address", comSwDangerReportVO.getAddress()); |
| | | //隐患名称 |
| | | dataMap.put("dangerName", comSwDangerReportVO.getDangerName()); |
| | | //排查时间 |
| | | dataMap.put("checkTime", comSwDangerReportVO.getCheckTime()); |
| | | //排查人员 |
| | | dataMap.put("ppersonName", comSwDangerReportVO.getPPersonName()); |
| | | //填报人员 |
| | | dataMap.put("createName", comSwDangerReportVO.getCreateName()); |
| | | //填报时间 |
| | | dataMap.put("createAt", new SimpleDateFormat("yyyy-MM-dd").format(comSwDangerReportVO.getCreateAt())); |
| | | //隐患编号 |
| | | dataMap.put("dangerNo", comSwDangerReportVO.getDangerNo()); |
| | | //主体部门、单位或个人全称 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getUnitName())) { |
| | | dataMap.put("unitName", comSwDangerReportVO.getUnitName()); |
| | | }else { |
| | | dataMap.put("unitName", ""); |
| | | } |
| | | //隐患简述 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getDagerDescription())) { |
| | | dataMap.put("dagerDescription", comSwDangerReportVO.getDagerDescription()); |
| | | }else { |
| | | dataMap.put("dagerDescription", ""); |
| | | } |
| | | //已采取的措施 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getTakeSteps())) { |
| | | dataMap.put("takeSteps", comSwDangerReportVO.getTakeSteps()); |
| | | }else { |
| | | dataMap.put("takeSteps", ""); |
| | | } |
| | | //措施照片 |
| | | List<String> stepsPhoto = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getStepsPhoto())) { |
| | | stepsPhoto = Arrays.asList(comSwDangerReportVO.getStepsPhoto().split(",")); |
| | | } |
| | | if (stepsPhoto.size() != 0 && null != stepsPhoto) { |
| | | if (stepsPhoto.size() == 1) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 1) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 1) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 2) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 2) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 2) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 3) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 3) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 3) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 4) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 4) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 4) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 5) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 5) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 5) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 6) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 6) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 6) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 7) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 7) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 7) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 8) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 8) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 8) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (stepsPhoto.size() == 9) { |
| | | for (int i = 0; i < 9; i++) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | downloadPicture(stepsPhoto.get(i), comSwDangerReportVO.getId() + "_steps_" + i); |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/" + comSwDangerReportVO.getId() + "_steps_" + i + ".jpg")); |
| | | } |
| | | } |
| | | } else { |
| | | for (int i = 0; i < 9; i++) { |
| | | dataMap.put("imgStr" + (i + 1), getImageStr("d:/blank.jpg")); |
| | | } |
| | | for (int i = 0; i < 9; i++) { |
| | | dataMap.put("imgStr" + (i + 19), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | //社区处理建议 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getCommunitySuggestion())) { |
| | | dataMap.put("communitySuggestion", comSwDangerReportVO.getCommunitySuggestion()); |
| | | }else { |
| | | dataMap.put("communitySuggestion", ""); |
| | | } |
| | | //街道安全管理人员建议 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getStreetSuggestion())) { |
| | | dataMap.put("streetSuggestion", comSwDangerReportVO.getStreetSuggestion()); |
| | | }else { |
| | | dataMap.put("streetSuggestion", ""); |
| | | } |
| | | //领导意见 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getLeaderSuggestion())) { |
| | | dataMap.put("leaderSuggestion", comSwDangerReportVO.getLeaderSuggestion()); |
| | | }else { |
| | | dataMap.put("leaderSuggestion", ""); |
| | | } |
| | | //承办记录 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getUndertakeRecord())) { |
| | | dataMap.put("undertakeRecord", comSwDangerReportVO.getUndertakeRecord()); |
| | | }else { |
| | | dataMap.put("undertakeRecord", ""); |
| | | } |
| | | //巡查记录 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getRecordContent())) { |
| | | dataMap.put("recordContent", comSwDangerReportVO.getRecordContent()); |
| | | }else { |
| | | dataMap.put("recordContent", ""); |
| | | } |
| | | //发现记录 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getFindRecord())) { |
| | | dataMap.put("findRecord", comSwDangerReportVO.getFindRecord()); |
| | | }else { |
| | | dataMap.put("findRecord", ""); |
| | | } |
| | | //记录照片 |
| | | List<String> photo = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getRecordPhoto())) { |
| | | photo = Arrays.asList(comSwDangerReportVO.getRecordPhoto().split(",")); |
| | | } |
| | | if (photo.size() != 0 && null != photo) { |
| | | if (photo.size() == 1) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 1) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 2) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 2) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 3) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 3) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 4) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 4) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 5) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 5) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 6) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 6) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 7) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 7) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 8) { |
| | | for (int i = 0; i < 9; i++) { |
| | | if (i < 8) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } else { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | } |
| | | if (photo.size() == 9) { |
| | | for (int i = 0; i < 9; i++) { |
| | | downloadPicture(photo.get(i), comSwDangerReportVO.getId() + "_find_" + i); |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg")); |
| | | } |
| | | } |
| | | } else { |
| | | for (int i = 0; i < 9; i++) { |
| | | dataMap.put("imgStr" + (i + 10), getImageStr("d:/blank.jpg")); |
| | | } |
| | | } |
| | | //备注 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getRemark())) { |
| | | dataMap.put("remark", comSwDangerReportVO.getRemark()); |
| | | }else { |
| | | dataMap.put("remark", ""); |
| | | } |
| | | //整改时间 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyTime())) { |
| | | dataMap.put("rectifyTime", comSwDangerReportVO.getRectifyTime()); |
| | | }else { |
| | | dataMap.put("rectifyTime", ""); |
| | | } |
| | | //整改人员 |
| | | if (StringUtils.isNotEmpty(comSwDangerReportVO.getDPersonName())) { |
| | | dataMap.put("dpersonName", comSwDangerReportVO.getDPersonName()); |
| | | }else { |
| | | dataMap.put("dpersonName", ""); |
| | | } |
| | | |
| | | //获取请求url |
| | | String url = Constants.G_D_WEATHER_URL; |
| | | //获取请求参数 |
| | | String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400"; |
| | | String result = HttpUtils.sendGet(url, param); |
| | | R r = R.ok(JSON.parseObject(result)); |
| | | WeatherVO weatherVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class); |
| | | if (null != weatherVO) { |
| | | LiveVO liveVO = weatherVO.getLives().get(0); |
| | | //城市 |
| | | dataMap.put("city", liveVO.getCity()); |
| | | //天气 |
| | | dataMap.put("weather", liveVO.getWeather()); |
| | | //温度 |
| | | dataMap.put("temperature", liveVO.getTemperature()); |
| | | //风向 |
| | | dataMap.put("winddirection", liveVO.getWinddirection()); |
| | | //风力 |
| | | dataMap.put("windpower", liveVO.getWindpower()); |
| | | } |
| | | Configuration configuration = new Configuration(new Version("2.3.0")); |
| | | |
| | | configuration.setDefaultEncoding("utf-8"); |
| | | /** |
| | | * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 |
| | | * 指定ftl文件所在目录的路径,而不是ftl文件的路径 |
| | | */ |
| | | //指定路径的第一种方式(根据某个类的相对路径指定) |
| | | // configuration.setClassForTemplateLoading(this.getClass(), ""); |
| | | |
| | | //指定路径的第二种方式,我的路径是C:/a.ftl |
| | | configuration.setDirectoryForTemplateLoading(new File("c:/")); |
| | | |
| | | //输出文档路径及名称 |
| | | // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc"); |
| | | File file = new File(fileName); |
| | | |
| | | //以utf-8的编码读取ftl文件 |
| | | Template template = configuration.getTemplate("隐患报告.ftl", "utf-8"); |
| | | Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"), 10240); |
| | | template.process(dataMap, out); |
| | | out.close(); |
| | | inputStream = new FileInputStream(file); |
| | | sftp.uploadMore(ftpUrl, name, inputStream); |
| | | sftp.logout(); |
| | | inputStream.close(); |
| | | String absolutePath = file.getAbsolutePath(); |
| | | boolean delete = file.delete(); |
| | | log.info("删除excel【{}】结果【{}】", absolutePath, delete); |
| | | } finally { |
| | | // 千万别忘记finish 会帮忙关闭流 |
| | | if (inputStream != null) { |
| | | inputStream.close(); |
| | | } |
| | | } |
| | | } |
| | | downLoadUrl.add(excelUrl + name); |
| | | } |
| | | return R.ok(downLoadUrl); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("文件传输失败【{}】", e.getMessage()); |
| | | } |
| | | return R.fail(); |
| | | } |
| | | |
| | | private List<List<String>> headDataFilling(){ |