tangxiaobao
2021-08-18 36ee894df717bb53775ddad19dc15c89bb5ff7ef
下载安全工作记录报告
3个文件已修改
1033 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java 1024 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
@@ -26,7 +26,7 @@
    /**
     * 安全工作记录id
     */
    @ApiModelProperty("巡查记录id")
    @ApiModelProperty("安全工作记录id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -24,6 +24,7 @@
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;
@@ -454,196 +455,859 @@
    @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(){
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
@@ -96,6 +96,8 @@
            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
        }
        BeanUtils.copyProperties(swSafetyWorkRecordDO, comSwSafetyWorkRecordVO);
        //组装巡查类型
        if(StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPatrolType())){
            StringBuilder sb = new StringBuilder();
@@ -143,6 +145,7 @@
    @Override
    public R detailSafetyWorkRecordByPrId(Long patrolRecordId, Long communityId) {
        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
        if (null != comSwPatrolRecordReportDO) {
@@ -150,9 +153,9 @@
            if (null == comSwSafetyWorkRecordDO) {
                return R.fail("该安全工作记录不存在");
            }
            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
            BeanUtils.copyProperties(comSwSafetyWorkRecordDO, comSwSafetyWorkRecordVO);
        }
        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
        //所属社区名称
        comSwSafetyWorkRecordVO.setCommunityName(comActDAO.selectById(communityId).getName());
        return R.ok(comSwSafetyWorkRecordVO);