tangxiaobao
2021-08-18 3cb6ee6e1e4ea8b7cc65033f9420b3ae0029b63c
Merge branch 'txb'
35个文件已修改
2个文件已添加
1396 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java 978 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -50,7 +50,15 @@
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
@@ -29,4 +29,17 @@
    secret: c7ea9aaa7e391a487e8a5b9ba61045d1
    msgDataFormat: JSON
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: applets
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
@@ -48,7 +48,15 @@
            <artifactId>hystrix-javanica</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
@@ -20,7 +20,19 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: appletsbackstage
springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml
@@ -92,7 +92,15 @@
            <scope>compile</scope>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml
@@ -17,3 +17,16 @@
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: auth
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java
New file
@@ -0,0 +1,26 @@
package com.panzhihua.common.model.vos;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 天气信息对象
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-8-17 12:55
 **/
@Data
@ApiModel(value = "天气信息返回体")
public class LiveVO {
    private String adcode;
    private String city;
    private String humidity;
    private String province;
    private String reporttime;
    private String temperature;
    private String weather;
    private String winddirection;
    private String windpower;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java
New file
@@ -0,0 +1,23 @@
package com.panzhihua.common.model.vos;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 天气信息对象
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-8-17 12:55
 **/
@Data
@ApiModel(value = "天气信息返回体")
public class WeatherVO {
    private String count;
    private String info;
    private String infocode;
    private String status;
    private List<LiveVO> lives;
}
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/pom.xml
@@ -48,6 +48,20 @@
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.kmood</groupId>
            <artifactId>officeexport-java</artifactId>
            <version>1.0.1.6-RELEASE</version>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -4,6 +4,7 @@
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//import com.kmood.datahandle.DocumentProducer;
@@ -13,16 +14,24 @@
import com.panzhihua.common.listen.ComMngPopulationServeExcelListen;
import com.panzhihua.common.listen.ComSwRotaExcelListen;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.vos.LiveVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.WeatherVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO;
import com.panzhihua.common.model.vos.shop.ComShopSysConfVO;
import com.panzhihua.common.service.community.CommunityService;
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;
//import freemarker.template.Version;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.Version;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -31,11 +40,13 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import sun.applet.Main;
import sun.misc.BASE64Encoder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.*;
import java.io.File;
@@ -442,73 +453,862 @@
        }
    }
//    @ApiOperation(value = "导出图片测试")
//    @GetMapping("/export/picture")
//    public static void testPictureOutModel () {
//        try {
//            Class<? extends Class> aClass = Main.class.getClass();
//            ClassLoader classLoader = aClass.getClassLoader();
//            if (classLoader == null){
//                classLoader = ClassLoader.getSystemClassLoader();
//            }
//            String ActualModelPath = classLoader.getResource("model/").toURI().getPath();
//            String xmlPath = classLoader.getResource("model").toURI().getPath();
//            String ExportFilePath = classLoader.getResource(".").toURI().getPath() + "/picture.doc";
//
//            HashMap<String, Object> map = new HashMap<>();
//            //读取输出图片
//            URL introUrl = classLoader.getResource("./picture/微信图片_20210805165019.jpg");
////            URL codeUrl = classLoader.getResource("./picture/exportTestPicture-code.png");
////            URL titleUrl = classLoader.getResource("./picture/exportTestPicture-title.png");
//
//            String intro = Base64.getEncoder().encodeToString(FileUtils.readToBytesByFilepath(introUrl.toURI().getPath()));
//            map.put("intro", intro);
////            String code = Base64.getEncoder().encodeToString(FileUtils.readToBytesByFilepath(codeUrl.toURI().getPath()));
////            map.put("code", code);
////            map.put("title", Base64.getEncoder().encodeToString(FileUtils.readToBytesByFilepath(titleUrl.toURI().getPath())));
//            //编译输出
//            DocumentProducer dp = new DocumentProducer(ActualModelPath);
////            String complie = dp.Complie(xmlPath, "picture.xml", true);
//            dp.produce(map, ExportFilePath);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    @ApiOperation(value = "导出图片测试")
//    @PostMapping("/export/picture")
//    public void test(@RequestParam(value = "id") Long id){
//        Long communityId = this.getLoginUserInfo().getCommunityId();
//        Map<String,Object> dataMap = new HashMap<String, Object>();
//        try {
//            ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = JSONObject.parseObject(JSONObject.toJSONString(communityService.detailSafetyWorkRecord(id, communityId).getData()),ComSwSafetyWorkRecordVO.class);
//            //日期
//            dataMap.put("date", new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime()));
//            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("D:/报销信息导出.doc");
//
//            //以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();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
    @ApiOperation(value = "下载安全工作记录报告")
    @PostMapping("/export/safetyWorkRecord")
    public R exportSafetyWorkRecord(@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>();
                    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 {
            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";
                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"));
                        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/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(){
        List<List<String>> list = new ArrayList<List<String>>();
@@ -538,11 +1338,51 @@
        data.add("2021-01-01");
        data.add("张三、李四、王二");
        data.add("138000000、138000000、138000000");
        data.add("王五、王六");
        data.add("138000000、138000000");
        data.add("王五");
        data.add("138000000");
        data.add("示例");
        return data;
    }
    public String getImageStr(String fileName) {
        String imgFile = fileName;
        InputStream in = null;
        byte[] data = null;
        try {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }
    public String downloadPicture(String urlString, String fileName) throws Exception {
        // 构造URL
        URL url = new URL(urlString);
        // 打开连接
        URLConnection con = url.openConnection();
        // 输入流
        InputStream is = con.getInputStream();
        // 1K的数据缓冲
        byte[] bs = new byte[1024];
        // 读取到的数据长度
        int len;
        // 输出的文件流
        String filename = "d:/" + fileName + ".jpg";  //下载路径及下载图片名称
        File file = new File(filename);
        FileOutputStream os = new FileOutputStream(file, true);
        // 开始读取
        while ((len = is.read(bs)) != -1) {
            os.write(bs, 0, len);
        }
        // 完毕,关闭所有链接
        os.close();
        is.close();
        return filename;
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
@@ -20,3 +20,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: communitybackstage
springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml
@@ -40,7 +40,15 @@
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml
@@ -26,3 +26,16 @@
          password: huanghongfa123456
#          basedir: F:\nahan\config-repo\config-repo
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: config
springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml
@@ -25,7 +25,15 @@
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml
@@ -14,3 +14,16 @@
        enable-self-preservation: false  #是否开启自我保护模式
        eviction‐interval‐timer‐in‐ms: 10000 #服务注册表清理间隔(单位毫秒,默认是60*1000)
management:
    endpoints:
        web:
            exposure:
                include: '*'
    endpoint:
        health:
            show-details: always
    metrics:
        tags:
            application: eureka
springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
@@ -48,6 +48,15 @@
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml
@@ -20,3 +20,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: gridapp
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
@@ -48,6 +48,15 @@
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
@@ -20,3 +20,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: gridbackstage
springcloud_k8s_panzhihuazhihuishequ/pom.xml
@@ -185,6 +185,17 @@
                <artifactId>feign-httpclient</artifactId>
                <version>${feign-httpclient.version}</version>
            </dependency>
            <!--添加监控依赖包-->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>1.5.1</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
                <version>2.3.4.RELEASE</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml
@@ -73,6 +73,15 @@
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -649,6 +649,12 @@
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updatePopulationDO(vo,populationDO,labelList);
                    updateList.add(updatePopulationDO);
                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                    BeanUtils.copyProperties(vo,mistake);
                    setMistake(mistake, vo);
                    mistake.setMistake("该实有人口已存在,执行更新,社区id::"+ populationDO.getActId());
                    mistakes.add(mistake);
                }else{
                    //不存在实有人口,则新增
                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO,labelList);
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);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml
@@ -28,3 +28,16 @@
  aesKey: Ryo7M3n8loC5
  sensitive: true
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: community
springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml
@@ -73,6 +73,15 @@
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml
@@ -23,3 +23,16 @@
  aesKey: Ryo7M3n8loC5
  sensitive: true
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: grid
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml
@@ -59,6 +59,15 @@
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml
@@ -16,3 +16,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: partybuilding
springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml
@@ -71,7 +71,15 @@
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-javanica</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml
@@ -16,3 +16,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: user
springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml
@@ -47,6 +47,15 @@
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml
@@ -20,3 +20,16 @@
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: shopbackstage
springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml
@@ -48,6 +48,15 @@
            <artifactId>xxl-job-core</artifactId>
            <version>2.2.0</version>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml
@@ -17,5 +17,17 @@
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: timejob
springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml
@@ -56,6 +56,15 @@
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml
@@ -84,4 +84,19 @@
      - POST:/api/applets/user/pagemicrowish
      - POST:/api/applets/user/pageeasyphoto
      - POST:/api/applets/neighbor/user/page
      - GET:/api/applets/user/listfamily
      - GET:/api/applets/user/listfamily
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  metrics:
    tags:
      application: zuul