From 85e019535b252afac08dc5934be1f956bfb196cb Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 9 Mar 2022 15:51:47 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E5=8A=A0=E4=BA=86=E7=82=B9=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/OperCustomizeOpenFeignClient.java | 11 ++++++- .../ResiCategoryStatsConfigController.java | 11 +++++++ .../IcStatsResiWarnBuildingResultDTO.java | 32 ++++++++++++++++++- .../controller/StatsResiWarnController.java | 17 +++++++--- .../epmet/service/StatsResiWarnService.java | 18 +++++++++-- .../impl/StatsResiWarnServiceImpl.java | 6 ++++ 6 files changed, 86 insertions(+), 9 deletions(-) diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index 133f98ab11..c714bd77e1 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -102,10 +102,19 @@ public interface OperCustomizeOpenFeignClient { Result> getCategoryList(@RequestBody IcResiCategoryStatsConfigDTO dto); - + /** + * 获取居民类别配置表ic_resi_category_stats_config,根据token里的客户id查询,可根据状态筛选:显示:show;隐藏:hidden; + * @param formDTO + * @return + */ @PostMapping("/oper/customize/resicategorystatsconfig/resicategorystatslistshowd") Result> resiCategoryStatsListShowd(@RequestBody IcResiCategoryStatsConfigFormDTO formDTO); + /** + * 查询ic_resi_category_warn_config,返回预警的类别 + * @param customerId + * @return + */ @PostMapping("/oper/customize/resicategorystatsconfig/resicategorywarnlist") Result> resiCategoryWarnList(@RequestParam String customerId); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java index f43e75bf97..3c2004e714 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java @@ -128,6 +128,12 @@ public class ResiCategoryStatsConfigController { return new Result().ok(resiCategoryStatsConfigService.info(formDTO.getId(),tokenDTO.getCustomerId())); } + /** + * 获取居民类别配置表ic_resi_category_stats_config,根据token里的客户id查询,可根据状态筛选:显示:show;隐藏:hidden; + * @param tokenDTO + * @param formDTO + * @return + */ @PostMapping("resicategorystatslistshowd") public Result> resiCategoryStatsListShowd(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){ //获取预警配置列表 @@ -145,6 +151,11 @@ public class ResiCategoryStatsConfigController { return new Result>().ok(ConvertUtils.sourceToTarget(statsConfigEntityList, IcResiCategoryStatsConfigDTO.class)); } + /** + * 查询ic_resi_category_warn_config,返回预警的类别 + * @param customerId + * @return + */ @PostMapping("resicategorywarnlist") public Result> resiCategoryWarnList(@RequestParam String customerId){ //获取预警配置列表 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java index 3d4253f721..f4c317274a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java @@ -20,7 +20,6 @@ package com.epmet.dto.result; import lombok.Data; import java.io.Serializable; -import java.util.Date; import java.util.List; @@ -38,21 +37,52 @@ public class IcStatsResiWarnBuildingResultDTO implements Serializable { /** * 预警配置ID + * ic_resi_category_warn_config.id */ private String configId; + /** + * ic_resi_category_warn_config.label + * 类别名 + */ private String label; + /** + * 排序 + */ private Integer sort; + + /** + * 等级1阈值 + */ private Integer level1; private Integer levelCount1; + + /** + * 等级2阈值 + */ private Integer level2; private Integer levelCount2; + + /** + * 等级3阈值 + */ private Integer level3; private Integer levelCount3; + /** + * 管理平台分类图标 + */ private String managementIcon; + + /** + * 数据平台分类图标 + */ private String dataIcon; + + /** + * 房屋显示分类图标 + */ private String houseShowIcon; private Integer count; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java index 33855a2b2c..3d18050f66 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java @@ -17,19 +17,15 @@ package com.epmet.controller; -import com.epmet.common.token.annotation.Login; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.CategoryCountListFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.form.StatsResiWarnCountFormDTO; import com.epmet.dto.form.StatsResiWarnFormDTO; -import com.epmet.dto.result.CategoryCountListResultDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; -import com.epmet.dto.result.IcStatsResiWarnUserResultDTO; import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import org.springframework.beans.factory.annotation.Autowired; @@ -80,6 +76,12 @@ public class StatsResiWarnController { return new Result>().ok(statsResiWarnService.list2(formDTO)); } + /** + * 可视化分析-人员预警,各类别楼栋数量展示 + * @param tokenDto + * @param formDTO 只有agencyId + * @return + */ @PostMapping("buildingwarnlist") public Result buildingWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedBuilding.class); @@ -89,6 +91,13 @@ public class StatsResiWarnController { return new Result().ok(icStatsResiWarnBuildingResultDTOS); } + + /** + * 可视化分析-人员预警,楼栋列表展示 + * @param tokenDto + * @param formDTO + * @return + */ @PostMapping("userwarnlist") public Result userWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedUser.class); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java index f0c4e5f5f5..7c5477b61b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java @@ -17,12 +17,9 @@ package com.epmet.service; -import com.epmet.dto.form.CategoryCountListFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; -import com.epmet.dto.result.CategoryCountListResultDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; -import com.epmet.dto.result.IcStatsResiWarnUserResultDTO; import java.util.List; import java.util.Map; @@ -35,8 +32,23 @@ import java.util.Map; */ public interface StatsResiWarnService{ + /** + * 可视化分析-人员预警,各类别楼栋数量展示 + * @param customerId + * @param agencyID + * @return + */ List buildingwWarnList(String customerId,String agencyID); + /** + * 可视化分析-人员预警,楼栋列表展示 + * @param customerId + * @param configId + * @param buildingIdList + * @param pageNo + * @param pageSize + * @return + */ Map userWarnList(String customerId, String configId, List buildingIdList, Integer pageNo, Integer pageSize); List list(String customerId,String id, String level); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index c6b33e482b..789b189016 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -50,6 +50,12 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { @Resource private IcResiUserDao icResiUserDao; + /** + * 可视化分析-人员预警,各类别楼栋数量展示 + * @param customerId + * @param agencyID + * @return + */ @Override public List buildingwWarnList(String customerId,String agencyID) { List result = new ArrayList<>(); From dd5f9e18f2d9d51ac15a28034cc2e2289fef2b20 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 10 Mar 2022 09:11:14 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E4=BA=BA=E5=91=98=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/PersonWarnRightListFormDTO.java | 2 ++ .../result/PersonWarnRightListResultDTO.java | 3 +++ .../service/impl/IcResiUserServiceImpl.java | 24 ++++++++++++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonWarnRightListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonWarnRightListFormDTO.java index 977390e31a..9be92d4233 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonWarnRightListFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonWarnRightListFormDTO.java @@ -22,4 +22,6 @@ public class PersonWarnRightListFormDTO implements Serializable { @NotNull(message = "pageSize不能为空",groups = PersonWarnRightListForm.class) private Integer pageSize; + + private String categoryCode; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java index c98b26cbec..a2739c6857 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java @@ -35,6 +35,9 @@ public class PersonWarnRightListResultDTO implements Serializable { */ private List type; + @JsonIgnore + private String sortString; + /** * 所属网格 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index bab73c6909..df7bcd4458 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -1186,8 +1186,19 @@ public class IcResiUserServiceImpl extends BaseServiceImpl configList = configListResult.getData(); - PageInfo> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectResiUsers(configList.stream().map(m -> m.getColumnName()).collect(Collectors.toList()), staffInfo.getAgencyId())); + List configListOrigin = configListResult.getData(); + List configList = new ArrayList<>(); + if (StringUtils.isNotBlank(formDTO.getCategoryCode())){ + for (CustomerCategoryShowAndWarnListResultDTO c : configListOrigin) { + if (c.getColumnName().equals(formDTO.getCategoryCode())){ + configList.add(c); + } + } + }else { + configList = configListOrigin; + } + List finalConfigList = configList; + PageInfo> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectResiUsers(finalConfigList.stream().map(m -> m.getColumnName()).collect(Collectors.toList()), staffInfo.getAgencyId())); List> list = pageInfo.getList(); if (CollectionUtils.isEmpty(list)) { return result; @@ -1200,7 +1211,14 @@ public class IcResiUserServiceImpl extends BaseServiceImpl houseInfos = houseInfosResult.getData(); userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> u.setFamily(h.getAllName()))); - result.setList(userList); + // 类型+网格+家庭 排序 + userList.forEach(u -> { + String types = u.getType().stream().map(String::valueOf).collect(Collectors.joining("、")); + String s = types + u.getGridName() + u.getFamily(); + u.setSortString(s); + }); + List finalResult = userList.stream().sorted(Comparator.comparing(PersonWarnRightListResultDTO.PersonWarnRightList::getSortString)).collect(Collectors.toList()); + result.setList(finalResult); return result; } From 92da5a13d55fb9d9bd1c8ae9df0088a9bc4e3681 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 10 Mar 2022 11:20:01 +0800 Subject: [PATCH 03/13] /epmetuser/statsresiwarn/queryuserwarnnotice --- .../tools/feign/CommonAggFeignClient.java | 12 +++- .../CommonAggFeignClientFallback.java | 13 ++++ .../epmet/commons/tools/redis/RedisKeys.java | 9 +++ .../redis/common/CustomerIcHouseRedis.java | 65 +++++++++++++++++++ .../tools/redis/common/CustomerOrgRedis.java | 5 +- .../redis/common/bean/BuildingInfoCache.java | 44 +++++++++++++ .../controller/GovOrgController.java | 14 ++++ .../dataaggre/dao/govorg/IcBuildingDao.java | 15 +++++ .../service/govorg/GovOrgService.java | 8 +++ .../govorg/impl/GovOrgServiceImpl.java | 21 ++++++ .../resources/mapper/govorg/IcBuildingDao.xml | 24 +++++++ .../dto/form/IcUserWarnNoticeFormDTO.java | 27 ++++++++ .../IcStatsResiWarnBuildingResultDTO.java | 4 ++ .../dto/result/IcUserWarnNoticeResultDTO.java | 23 +++++++ .../controller/StatsResiWarnController.java | 15 +++++ .../com/epmet/dao/IcStatsResiWarnDao.java | 11 ++++ .../epmet/service/StatsResiWarnService.java | 9 +++ .../impl/StatsResiWarnServiceImpl.java | 40 ++++++++++++ .../resources/mapper/IcStatsResiWarnDao.xml | 16 +++++ 19 files changed, 371 insertions(+), 4 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java index 5a03583011..926c96e340 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java @@ -3,6 +3,7 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.Result; @@ -17,7 +18,8 @@ import org.springframework.web.bind.annotation.RequestParam; * @Description * @Author sun */ -@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) +// @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) +@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class,url = "localhost:8114") public interface CommonAggFeignClient { /** @@ -45,4 +47,12 @@ public interface CommonAggFeignClient { */ @PostMapping("/data/aggregator/org/grid") Result getGridInfo(@RequestParam("gridId")String gridId); + + /** + * 查询楼栋信息 + * @param buildingId + * @return + */ + @PostMapping("/data/aggregator/org/querybuildinginfo") + Result queryBuildingInfo(@RequestParam("buildingId")String buildingId); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java index 02f209f4f2..8d6f5f1260 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java @@ -3,6 +3,7 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; @@ -32,4 +33,16 @@ public class CommonAggFeignClientFallback implements CommonAggFeignClient { public Result getGridInfo(String gridId) { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId); } + + /** + * 查询楼栋信息 + * + * @param buildingId + * @return + */ + @Override + public Result queryBuildingInfo(String buildingId) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "queryBuildingInfo", buildingId); + } + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 0798627046..8ba08b9f05 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -539,6 +539,15 @@ public class RedisKeys { return rootPrefix.concat("gov:grid:").concat(gridId); } + /** + * 楼栋信息缓存key + * @param buildingId + * @return + */ + public static String getBuildingInfoKey(String buildingId) { + return rootPrefix.concat("gov:building:").concat(buildingId); + } + /** * @description 调查问卷accessKey * diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java new file mode 100644 index 0000000000..ec0a79f1db --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java @@ -0,0 +1,65 @@ +package com.epmet.commons.tools.redis.common; + +import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.Map; + +/** + * 楼栋 + * 房屋 + * 小区这三个的缓存放这吧 + */ +@Slf4j +@Component +public class CustomerIcHouseRedis { + @Autowired + private RedisUtils redisUtils; + @Autowired + private CommonAggFeignClient commonAggFeignClient; + private static CustomerIcHouseRedis customerIcHouseRedis; + + @PostConstruct + public void init() { + customerIcHouseRedis = this; + customerIcHouseRedis.redisUtils = this.redisUtils; + customerIcHouseRedis.commonAggFeignClient = this.commonAggFeignClient; + } + + + /** + * @Description 获取楼栋信息 + * @param buildingId + * @author yinzuomei + * @date 2022/03/09 + */ + public static BuildingInfoCache getBuildingInfo(String buildingId){ + String key = RedisKeys.getBuildingInfoKey(buildingId); + Map build = customerIcHouseRedis.redisUtils.hGetAll(key); + if (!MapUtils.isEmpty(build)) { + return ConvertUtils.mapToEntity(build, BuildingInfoCache.class); + } + Result buildInfoResult = customerIcHouseRedis.commonAggFeignClient.queryBuildingInfo(buildingId); + if (!buildInfoResult.success()){ + throw new RenException("查询楼栋信息失败..."); + } + if (null == buildInfoResult.getData()){ + return null; + } + Map map = BeanUtil.beanToMap(buildInfoResult.getData(), false, true); + customerIcHouseRedis.redisUtils.hMSet(key, map); + return buildInfoResult.getData(); + } + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index 449a90116a..f624c04bbc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -1,12 +1,12 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; -import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.commons.tools.redis.common.bean.*; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import lombok.extern.slf4j.Slf4j; @@ -33,7 +33,6 @@ public class CustomerOrgRedis { private CommonAggFeignClient commonAggFeignClient; private static CustomerOrgRedis customerOrgRedis; - private static final String ROLE_MAP_KEY = "roleMap"; @PostConstruct public void init() { diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java new file mode 100644 index 0000000000..4cb2416328 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java @@ -0,0 +1,44 @@ +package com.epmet.commons.tools.redis.common.bean; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 楼栋信息缓存 + */ +@Data +public class BuildingInfoCache implements Serializable { + /** + * !!!!!楼栋id + */ + private String buildingId; + + /** + * 楼栋名称 + */ + private String buildingName; + + /** + * 网格id + */ + private String gridId; + + /** + * XXX组织-网格名 + */ + private String gridName; + + /** + * 小区id + */ + private String neighborHoodId; + + /** + * 小区名称 + */ + private String neighborHoodName; + private String agencyId; + + // 后续用到啥再加吧........ +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index c1b2b0e98a..45e29f3599 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; @@ -412,4 +413,17 @@ public class GovOrgController { govOrgService.pcworkRecordListExportSendMsg(formDTO); return new Result(); } + + /** + * 查询楼栋信息 + * @param buildingId + * @return + */ + @PostMapping("/querybuildinginfo") + public Result queryBuildingInfo(@RequestParam("buildingId")String buildingId){ + if(StringUtils.isBlank(buildingId)){ + return new Result<>(); + } + return new Result().ok(govOrgService.queryBuildingInfo(buildingId)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java new file mode 100644 index 0000000000..fbf5d8de14 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java @@ -0,0 +1,15 @@ +package com.epmet.dataaggre.dao.govorg; + +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IcBuildingDao { + + /** + * 查询楼栋信息,返回楼栋明,小区名....简要信息 + * @param buildingId + * @return + */ + BuildingInfoCache selectBuildInfo(String buildingId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 51d938bb2e..53c1f3200c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; @@ -188,4 +189,11 @@ public interface GovOrgService { * @Description 查询组织的直属下级组织下网格活跃度统计--文件导出 **/ void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO); + + /** + * 获取楼栋信息 + * @param buildingId + * @return + */ + BuildingInfoCache queryBuildingInfo(String buildingId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index dc63adc141..9d66d82982 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -17,6 +17,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; @@ -88,6 +90,8 @@ public class GovOrgServiceImpl implements GovOrgService { private DataStatsService dataStatsService; @Autowired private OssFeignClient ossFeignClient; + @Autowired + private IcBuildingDao icBuildingDao; /** * @param staffId @@ -990,5 +994,22 @@ public class GovOrgServiceImpl implements GovOrgService { } } + /** + * 获取楼栋信息 + * + * @param buildingId + * @return + */ + @Override + public BuildingInfoCache queryBuildingInfo(String buildingId) { + BuildingInfoCache infoCache=icBuildingDao.selectBuildInfo(buildingId); + if(null!=infoCache){ + GridInfoCache gridInfoCache= CustomerOrgRedis.getGridInfo(infoCache.getGridId()); + //赋值 XXX-网格名 + infoCache.setGridName(null == gridInfoCache || StringUtils.isBlank(gridInfoCache.getGridNamePath()) ? StrConstant.EPMETY_STR : gridInfoCache.getGridNamePath()); + } + return infoCache; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml new file mode 100644 index 0000000000..342c05e0c8 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java new file mode 100644 index 0000000000..0179217f1d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 人员预警通知入参 + */ +@Data +public class IcUserWarnNoticeFormDTO implements Serializable { + + /** + * + */ + @NotBlank(message = "组织id不能为空",groups = AddGroup.class) + private String agencyId; + /** + * + */ + @NotBlank(message = "客户id不能为空",groups = AddGroup.class) + private String customerId; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java index f4c317274a..ba3c2a9822 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java @@ -84,6 +84,10 @@ public class IcStatsResiWarnBuildingResultDTO implements Serializable { * 房屋显示分类图标 */ private String houseShowIcon; + + /** + * 当前类别,符合预警的共多少栋楼 + */ private Integer count; private List buildingIdList1; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java new file mode 100644 index 0000000000..fb6fde9599 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 人员预警通知返参 + */ +@Data +public class IcUserWarnNoticeResultDTO implements Serializable { + + /** + * 预警配置id + */ + private String configId; + /** + * 预警内容:南宁路社区第二网格亿联小区2号楼失业人员超出预警! + */ + private String noticeContent; + // @JsonIgnore + private String buildingId; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java index 3d18050f66..5f7ea56e4a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java @@ -21,11 +21,14 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.form.StatsResiWarnCountFormDTO; import com.epmet.dto.form.StatsResiWarnFormDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import org.springframework.beans.factory.annotation.Autowired; @@ -128,4 +131,16 @@ public class StatsResiWarnController { return new Result(); } + /** + * 人员预警,通知列表 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("queryuserwarnnotice") + public Result> queryUserWarnNotice(@LoginUser TokenDto tokenDto,@RequestBody IcUserWarnNoticeFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + return new Result>().ok(statsResiWarnService.queryUserWarnNotice(formDTO)); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java index 0a46c4bc06..3e261b041f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.PersonWarnLeftPieDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import com.epmet.dto.result.UserWarnNameListResultDTO; import com.epmet.entity.IcStatsResiWarnEntity; import org.apache.ibatis.annotations.Mapper; @@ -76,4 +77,14 @@ public interface IcStatsResiWarnDao extends BaseDao { List> selectCategoryCountByColumn(@Param("columnNames") List columnNames,@Param("agencyId")String agencyId); + /** + * 获取预警楼栋列表 + * @param customerId + * @param agencyId + * @param configIds + * @return + */ + List queryUserWarnNotice(@Param("customerId") String customerId, + @Param("agencyId") String agencyId, + @Param("configIds") List configIds); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java index 7c5477b61b..babce11f37 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java @@ -17,9 +17,11 @@ package com.epmet.service; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import java.util.List; import java.util.Map; @@ -58,4 +60,11 @@ public interface StatsResiWarnService{ void resiWarn(String customerId); void resiWarnByOne(String customerId,String userId); + + /** + * 人员预警通知列表 + * @param formDTO + * @return + */ + List queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 789b189016..79fbdc4ca3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -3,7 +3,10 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiUserDao; @@ -11,6 +14,7 @@ import com.epmet.dao.IcStatsResiWarnDao; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiCategoryWarnConfigDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; @@ -21,6 +25,7 @@ import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -338,5 +343,40 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { } } + /** + * 人员预警通知列表 + * + * @param formDTO + * @return + */ + @Override + public List queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO) { + //1、feign查询是否有配置的预警分类 + Result> warnResult = operCustomizeOpenFeignClient.resiCategoryWarnList(formDTO.getCustomerId()); + if (!warnResult.success()) { + throw new RenException("预警配置查询失败:" + warnResult.getMsg()); + } + if (CollectionUtils.isEmpty(warnResult.getData())) { + return new ArrayList<>(); + } + //2、符合条件的楼栋 + Map configMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLabel)); + List configIds = warnResult.getData().stream().map(m -> m.getId()).collect(Collectors.toList()); + List list = icStatsResiWarnDao.queryUserWarnNotice(formDTO.getCustomerId(), formDTO.getAgencyId(), configIds); + List resList = new ArrayList<>(); + for (IcUserWarnNoticeResultDTO dto : list) { + //南宁路社区第二网格亿联小区2号楼失业人员超出预警! + BuildingInfoCache infoCache = CustomerIcHouseRedis.getBuildingInfo(dto.getBuildingId()); + if (null == infoCache) { + log.error(String.format("获取楼栋信息为null,buildingId=%s", dto.getBuildingId())); + continue; + } + String categoryName = StringUtils.isBlank(configMap.get(dto.getConfigId())) ? StrConstant.EPMETY_STR : configMap.get(dto.getConfigId()); + dto.setNoticeContent(String.format("%s%s%s%s超出预警!", infoCache.getGridName(), infoCache.getNeighborHoodName(), infoCache.getBuildingName(), categoryName)); + resList.add(dto); + } + return resList; + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml index 572f9d8577..9a82e55133 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml @@ -184,4 +184,20 @@ AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%') + \ No newline at end of file From 1508cf9236132b165a74af5308db702cf6e0e74c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 10 Mar 2022 13:38:33 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/controller/IcFormController.java | 6 ++++++ .../com/epmet/service/impl/IcFormItemServiceImpl.java | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index cce2730c6f..b247addf24 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -102,6 +102,12 @@ public class IcFormController { return new Result>().ok(icFormItemService.queryConditionList(formDto)); } + /** + * 居民信息列表_表头 + * @param tokenDto + * @param formDto + * @return + */ @PostMapping("tableheaders") public Result> queryTableHeaderList(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){ formDto.setCustomerId(tokenDto.getCustomerId()); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index f53226d51c..79fce30efb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -18,8 +18,6 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.dao.IcFormItemDao; @@ -30,12 +28,10 @@ import com.epmet.service.IcFormItemService; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * 表单项 @@ -60,6 +56,11 @@ public class IcFormItemServiceImpl extends BaseServiceImpl queryTableHeaderList(CustomerFormQueryDTO formDto) { List list=new ArrayList<>(); From c616bbc370fe1a0e8495a3fb3ceea9877f1bb519 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 10 Mar 2022 14:28:29 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=96=B0=E5=A2=9Eic=5Fform=5Flist=5Fitem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/IcFormItemServiceImpl.java | 1 + .../V0.0.14__create_ic_form_list_item.sql | 22 +++++++++++++++++++ .../main/resources/mapper/IcFormItemDao.xml | 22 ++++++++++--------- 3 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.14__create_ic_form_list_item.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index 79fce30efb..3a881b52d8 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -69,6 +69,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl result=baseDao.queryTableHeaderList(formDto.getCustomerId(),formDto.getFormCode()); if(!CollectionUtils.isEmpty(result)){ list.addAll(result); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.14__create_ic_form_list_item.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.14__create_ic_form_list_item.sql new file mode 100644 index 0000000000..0a894c8445 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.14__create_ic_form_list_item.sql @@ -0,0 +1,22 @@ +CREATE TABLE `ic_form_list_item` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `FORM_ITEM_ID` varchar(64) NOT NULL COMMENT 'ic_form_item.id', + `FORM_CODE` varchar(64) NOT NULL COMMENT 'ic_form.form_code,举例:resi_base_info', + `SORT` int(11) NOT NULL COMMENT '排序', + `DEL_FLAG` int(10) NOT NULL COMMENT '0未删除,1已删除', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='列表展示项'; + +insert into ic_form_list_item +select UUID(),i.CUSTOMER_ID,i.id,i.FORM_CODE,i.sort, +'0','0','APP_USER',NOW(),'APP_USER',NOW() +from ic_form_item i +where i.DEL_FLAG='0' +and i.LIST_DISPLAY='1' +order by i.sort asc; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index 9af84eaee4..61ad0c8aa0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml @@ -74,18 +74,20 @@ From 5f98ecc2acdb9605c90abfe131ab5185db829117 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 10 Mar 2022 15:24:36 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E9=A1=B9=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V0.0.15__alter_ic_form_list_item_sort.sql | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.15__alter_ic_form_list_item_sort.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.15__alter_ic_form_list_item_sort.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.15__alter_ic_form_list_item_sort.sql new file mode 100644 index 0000000000..6a1201a224 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.15__alter_ic_form_list_item_sort.sql @@ -0,0 +1,26 @@ +update ic_form_list_item set sort='1' where DEL_FLAG='0' and FORM_ITEM_ID like '%1006' ; +update ic_form_list_item set sort='2' where DEL_FLAG='0' and FORM_ITEM_ID like '%1001' ; +update ic_form_list_item set sort='3' where DEL_FLAG='0' and FORM_ITEM_ID like '%1004' ; +update ic_form_list_item set sort='4' where DEL_FLAG='0' and FORM_ITEM_ID like '%1007' ; +update ic_form_list_item set sort='5' where DEL_FLAG='0' and FORM_ITEM_ID like '%1008' ; +update ic_form_list_item set sort='6' where DEL_FLAG='0' and FORM_ITEM_ID like '%1009' ; +update ic_form_list_item set sort='7' where DEL_FLAG='0' and FORM_ITEM_ID like '%1010' ; +update ic_form_list_item set sort='8' where DEL_FLAG='0' and FORM_ITEM_ID like '%1011' ; +update ic_form_list_item set sort='9' where DEL_FLAG='0' and FORM_ITEM_ID like '%1015' ; +update ic_form_list_item set sort='10' where DEL_FLAG='0' and FORM_ITEM_ID like '%1016' ; +update ic_form_list_item set sort='11' where DEL_FLAG='0' and FORM_ITEM_ID like '%1017' ; +update ic_form_list_item set sort='12' where DEL_FLAG='0' and FORM_ITEM_ID like '%1018' ; +update ic_form_list_item set sort='13' where DEL_FLAG='0' and FORM_ITEM_ID like '%1019' ; +update ic_form_list_item set sort='14' where DEL_FLAG='0' and FORM_ITEM_ID like '%1020' ; +update ic_form_list_item set sort='15' where DEL_FLAG='0' and FORM_ITEM_ID like '%1021' ; +update ic_form_list_item set sort='16' where DEL_FLAG='0' and FORM_ITEM_ID like '%1022' ; +update ic_form_list_item set sort='17' where DEL_FLAG='0' and FORM_ITEM_ID like '%1023' ; +update ic_form_list_item set sort='18' where DEL_FLAG='0' and FORM_ITEM_ID like '%1024' ; +update ic_form_list_item set sort='19' where DEL_FLAG='0' and FORM_ITEM_ID like '%1025' ; +update ic_form_list_item set sort='20' where DEL_FLAG='0' and FORM_ITEM_ID like '%1026' ; +update ic_form_list_item set sort='21' where DEL_FLAG='0' and FORM_ITEM_ID like '%1027' ; +update ic_form_list_item set sort='22' where DEL_FLAG='0' and FORM_ITEM_ID like '%1028' ; +update ic_form_list_item set sort='23' where DEL_FLAG='0' and FORM_ITEM_ID like '%1029' ; +update ic_form_list_item set sort='24' where DEL_FLAG='0' and FORM_ITEM_ID like '%1030' ; +update ic_form_list_item set sort='25' where DEL_FLAG='0' and FORM_ITEM_ID like '%1031' ; +update ic_form_list_item set sort='26' where DEL_FLAG='0' and FORM_ITEM_ID like '%10310' ; \ No newline at end of file From c16f1fb805f7584ecdad93c0cf29fdc63c314435 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 11 Mar 2022 14:25:21 +0800 Subject: [PATCH 07/13] feign url --- .../com/epmet/commons/tools/feign/CommonAggFeignClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java index 926c96e340..cb7146138d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java @@ -18,8 +18,8 @@ import org.springframework.web.bind.annotation.RequestParam; * @Description * @Author sun */ -// @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) -@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class,url = "localhost:8114") +@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) +// @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class,url = "localhost:8114") public interface CommonAggFeignClient { /** From 44484685d58215c448ef683688072ade59dfc092 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 14:24:13 +0800 Subject: [PATCH 08/13] warn --- .../java/com/epmet/service/impl/StatsResiWarnServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 79fbdc4ca3..e7507aeefb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -368,7 +368,7 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { //南宁路社区第二网格亿联小区2号楼失业人员超出预警! BuildingInfoCache infoCache = CustomerIcHouseRedis.getBuildingInfo(dto.getBuildingId()); if (null == infoCache) { - log.error(String.format("获取楼栋信息为null,buildingId=%s", dto.getBuildingId())); + log.warn(String.format("获取楼栋信息为null,buildingId=%s", dto.getBuildingId())); continue; } String categoryName = StringUtils.isBlank(configMap.get(dto.getConfigId())) ? StrConstant.EPMETY_STR : configMap.get(dto.getConfigId()); From f5447dc608c623e2fe7045fcf5d76127b69114ea Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 16 Mar 2022 14:08:51 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=96=B0=E5=A2=9E=201.=E5=85=9A=E5=91=98?= =?UTF-8?q?=E9=A3=8E=E9=87=87=20=E6=A8=A1=E6=9D=BF=E4=B8=8B=E8=BD=BD=202.?= =?UTF-8?q?=E7=A4=BE=E5=8C=BA=E8=87=AA=E7=BB=84=E7=BB=87=20=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/FileUtils.java | 58 ++++++++++++++++-- .../epmet-heart/epmet-heart-server/pom.xml | 10 +++ ...IcCommunitySelfOrganizationController.java | 28 +++++++++ .../templates/self_org_import_template.xlsx | Bin 0 -> 9094 bytes .../resi-partymember-server/pom.xml | 10 +++ .../IcPartymemberStyleController.java | 37 ++++++++++- .../templates/party_import_template.xlsx | Bin 0 -> 8824 bytes 7 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java index f309630863..b8a12015bb 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java @@ -1,14 +1,18 @@ package com.epmet.commons.tools.utils; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; + +import java.io.*; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; /** * @author kamui */ +@Slf4j public class FileUtils { /** @@ -62,4 +66,50 @@ public class FileUtils { return createTmpFile(inputStream, name, ext, null); } + /** + * 将classpath文件复制到宿主机 + * @param fileName + * @return + * @throws IOException + */ + public static String copyClassPathResourcesToHostMachine(String fileName, String fileClassPath, String fileHostPath, Class loaderClass) throws IOException { + // 宿主机目录准备 + if (StringUtils.isNotBlank(fileHostPath) && !fileHostPath.endsWith("/")) { + fileHostPath = fileHostPath.concat("/"); + } + + String homeDir = System.getProperty("user.home"); + Path epmetFilesPath = Paths.get(homeDir, "epmet_files", fileHostPath); + if (Files.notExists(epmetFilesPath)) { + Files.createDirectories(epmetFilesPath); + } + + Path templateFilePath = epmetFilesPath.resolve(fileName); + String templateFilePathStr = templateFilePath.toString(); + if (Files.exists(templateFilePath)) { + return templateFilePathStr; + } + + if (StringUtils.isNotBlank(fileClassPath) && !fileClassPath.endsWith("/")) { + fileClassPath = fileClassPath.concat("/"); + } + + // 将项目中的模板拷贝至用户家目录中 + OutputStream os = null; + InputStream is = null; + try { + is = loaderClass.getClassLoader().getResourceAsStream(fileClassPath + fileName); + os = new FileOutputStream(templateFilePathStr); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + if (os != null) { + os.close(); + } + } + return templateFilePathStr; + } + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index b74f583763..7496a794ee 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -122,6 +122,16 @@ true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java index 0c8c8f6dc8..3220da6bdb 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java @@ -45,12 +45,16 @@ import com.epmet.service.IcCommunitySelfOrganizationService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.Map; @@ -181,6 +185,30 @@ public class IcCommunitySelfOrganizationController { return new Result(); } + /** + * 下载社区自组织导入模板 + * @param response + * @throws IOException + */ + @PostMapping("import-template-download") + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=社区自组织导入模板.xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/self_org_import_template.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + /** * @Description 添加社区自组织 * @param tokenDto diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0be67fffe7b8af8d14579e8f4208c3844c0de52d GIT binary patch literal 9094 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 s4?igX#XtYK^2ZGHgYGY{mHe0PZ$4UC9`true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java index 064a85c98f..585756ff48 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java @@ -21,10 +21,12 @@ import com.baomidou.mybatisplus.extension.api.R; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -41,14 +43,21 @@ import com.epmet.resi.partymember.dto.partymember.form.StyleShowListFormDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; +import java.net.URL; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -173,4 +182,28 @@ public class IcPartymemberStyleController { ValidatorUtils.validateEntity(formDTO,StyleShowListFormDTO.AddUserInternalGroup.class); return new Result>().ok(icPartymemberStyleService.showList(formDTO)); } + + /** + * 下载党员风采导入模板 + * @param response + * @throws IOException + */ + @PostMapping("import/template-download") + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + //response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=党员风采导入模板.xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/party_import_template.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..122a98049a01be2a9fc4606dfac87fa43c931313 GIT binary patch literal 8824 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 Date: Wed, 16 Mar 2022 15:29:42 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=201.=E5=85=9A=E5=91=98?= =?UTF-8?q?=E9=A3=8E=E9=87=87=20=E6=A8=A1=E6=9D=BF=E4=B8=8B=E8=BD=BD=202.?= =?UTF-8?q?=E7=A4=BE=E5=8C=BA=E8=87=AA=E7=BB=84=E7=BB=87=20=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...IcCommunitySelfOrganizationController.java | 7 ++++--- .../templates/self_org_import_template.xlsx | Bin 9094 -> 8897 bytes .../IcPartymemberStyleController.java | 10 +++++----- .../templates/party_import_template.xlsx | Bin 8824 -> 0 bytes .../party_style_import_template.xlsx | Bin 0 -> 8657 bytes 5 files changed, 9 insertions(+), 8 deletions(-) delete mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_style_import_template.xlsx diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java index 3220da6bdb..9df5db60c2 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java @@ -56,6 +56,7 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.net.URLEncoder; import java.util.List; import java.util.Map; @@ -190,13 +191,13 @@ public class IcCommunitySelfOrganizationController { * @param response * @throws IOException */ - @PostMapping("import-template-download") + @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST}) public void downloadTemplate(HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); - response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-disposition"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=社区自组织导入模板.xlsx"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("社区自组织导入模板", "UTF-8") + ".xlsx"); InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/self_org_import_template.xlsx"); try { diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx index 0be67fffe7b8af8d14579e8f4208c3844c0de52d..aa0edb41674bd700b187f4f2920101612458ff9f 100644 GIT binary patch delta 4275 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 delta 4479 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 C&0Hq{ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java index 585756ff48..b22de7b1f6 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java @@ -188,15 +188,15 @@ public class IcPartymemberStyleController { * @param response * @throws IOException */ - @PostMapping("import/template-download") + @RequestMapping(value = "import/template-download" ,method = {RequestMethod.GET, RequestMethod.POST}) public void downloadTemplate(HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); - response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-disposition"); - response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - //response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=党员风采导入模板.xlsx"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("党员风采导入模板", "UTF-8") + ".xlsx"); - InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/party_import_template.xlsx"); + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/party_style_import_template.xlsx"); try { ServletOutputStream os = response.getOutputStream(); IOUtils.copy(is, os); diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_import_template.xlsx deleted file mode 100644 index 122a98049a01be2a9fc4606dfac87fa43c931313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8824 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 Date: Wed, 16 Mar 2022 21:09:31 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E5=85=B7=E5=90=8D=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/result/IcUserWarnNoticeResultDTO.java | 4 ++++ .../com/epmet/service/impl/StatsResiWarnServiceImpl.java | 6 +++++- .../src/main/resources/mapper/IcStatsResiWarnDao.xml | 5 +++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java index fb6fde9599..a9a847e6d8 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java @@ -20,4 +20,8 @@ public class IcUserWarnNoticeResultDTO implements Serializable { private String noticeContent; // @JsonIgnore private String buildingId; + /** + * desc:该号楼有多少个符合条件的人 + */ + private Integer count; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index e7507aeefb..26da3f073d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -361,10 +361,14 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { } //2、符合条件的楼栋 Map configMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLabel)); - List configIds = warnResult.getData().stream().map(m -> m.getId()).collect(Collectors.toList()); + List configIds = warnResult.getData().stream().map(IcResiCategoryWarnConfigDTO::getId).collect(Collectors.toList()); List list = icStatsResiWarnDao.queryUserWarnNotice(formDTO.getCustomerId(), formDTO.getAgencyId(), configIds); List resList = new ArrayList<>(); + Map level1ThresholdMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLevel1)); for (IcUserWarnNoticeResultDTO dto : list) { + if (dto.getCount() SELECT ir.BUILDING_ID, - ir.CONFIG_ID + ir.CONFIG_ID, + ir.COUNT FROM ic_stats_resi_warn ir WHERE @@ -200,4 +201,4 @@ ) - \ No newline at end of file + From 46735be430b42a6d1332a21cf391f536352b8e2a Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 09:52:02 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=85=8D=E7=BD=AE=20=E5=88=97=E5=AE=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/result/TableHeaderResultDTO.java | 1 + .../db/migration/V0.0.16__alter_ic_form_list_item_width.sql | 2 ++ .../src/main/resources/mapper/IcFormItemDao.xml | 1 + 3 files changed, 4 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.16__alter_ic_form_list_item_width.sql diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/TableHeaderResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/TableHeaderResultDTO.java index dd39f668e7..fbe06770ad 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/TableHeaderResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/TableHeaderResultDTO.java @@ -17,6 +17,7 @@ public class TableHeaderResultDTO implements Serializable { private String label; private String columnName; private String itemType; + private Integer width; private List options; } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.16__alter_ic_form_list_item_width.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.16__alter_ic_form_list_item_width.sql new file mode 100644 index 0000000000..f5de0a85b9 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.16__alter_ic_form_list_item_width.sql @@ -0,0 +1,2 @@ +ALTER TABLE `epmet_oper_customize`.`ic_form_list_item` + ADD COLUMN `WIDTH` int(3) NULL COMMENT '表头宽度' AFTER `FORM_CODE`; diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index 61ad0c8aa0..4c78e1cc14 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml @@ -75,6 +75,7 @@