From 3cb6ee6e1e4ea8b7cc65033f9420b3ae0029b63c Mon Sep 17 00:00:00 2001 From: tangxiaobao <303826152@qq.com> Date: 星期三, 18 八月 2021 18:53:24 +0800 Subject: [PATCH] Merge branch 'txb' --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/pom.xml | 11 springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml | 14 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java | 7 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml | 12 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java | 978 +++++++++++++++++++++++++++++++++++++-- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java | 23 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml | 13 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml | 12 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml | 17 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java | 26 + springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java | 6 springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml | 9 springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml | 10 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml | 13 springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml | 13 37 files changed, 1,317 insertions(+), 79 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml index 2e9b141..c565b22 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml index fb95e97..4784daa 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml +++ b/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 diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml index f6ee856..7adbc20 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml index a28ca88..8281d29 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml +++ b/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 diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml index cc4bcee..a5fd080 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml index 8f29cff..de1c248 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java new file mode 100644 index 0000000..70e0643 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java @@ -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; +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java new file mode 100644 index 0000000..9750f89 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java @@ -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; +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java index 79b82fa..7c8defc 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java +++ b/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; diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml index ff49bba..6477a5e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java index 3f4f901..8992b53 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java +++ b/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; + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml index b721eb2..d661da4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml index 099068c..5e6df14 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml index 93afcd5..f2c7e59 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml index c6bb15c..9c9f8b3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml index e24b601..d0495ed 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml index 1e99969..f0b125f 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml index 93a8387..0c315f2 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml index 5650d52..44d1176 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml index f13b433..fb45df8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/pom.xml index 3bc2707..63d76d4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml index c7df5fb..5dafd06 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java index 17ba050..60f59a4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java +++ b/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); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java index 2595388..fe9a859 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java +++ b/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); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml index f5c3342..4fb0fc1 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml index d0c8ca2..37afa2c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml index 28648a6..38ecc3c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml index c9fe17c..d15e21d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml index 355e0d4..fd3279c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml index 3eeffde..857c67d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml index 8820a34..7e3de73 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml index c671e1d..11562b5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml index bb7fc05..093e51a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml index 827bc33..8583bb5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml index 8e2542b..f987477 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml +++ b/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 diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml index 931c0ad..98232ec 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml +++ b/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> diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml index 563c4d2..300ecf7 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml +++ b/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 \ No newline at end of file + - GET:/api/applets/user/listfamily + + +management: + endpoints: + web: + exposure: + include: '*' + + endpoint: + health: + show-details: always + + metrics: + tags: + application: zuul \ No newline at end of file -- Gitblit v1.7.1