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..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 @@ -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; @@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam; * @Author sun */ @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 e09d7c1615..7bc68a4842 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-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/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 13e5507083..00997c59cd 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; @@ -91,6 +93,8 @@ public class GovOrgServiceImpl implements GovOrgService { private OssFeignClient ossFeignClient; @Autowired private EvaluationIndexService evaluationIndexService; + @Autowired + private IcBuildingDao icBuildingDao; /** * @param staffId @@ -997,5 +1001,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-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..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 @@ -45,13 +45,18 @@ 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.net.URLEncoder; import java.util.List; import java.util.Map; @@ -181,6 +186,30 @@ public class IcCommunitySelfOrganizationController { return new Result(); } + /** + * 下载社区自组织导入模板 + * @param response + * @throws IOException + */ + @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.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + 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 { + 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 0000000000..aa0edb4167 Binary files /dev/null and b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx differ 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-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/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/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-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..3afb6df67e 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<>(); @@ -68,6 +69,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl result=baseDao.queryTableHeaderList(formDto.getCustomerId(),formDto.getFormCode()); if(!CollectionUtils.isEmpty(result)){ list.addAll(result); @@ -79,6 +81,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl()); + categoryName.setWidth(120); list.add(categoryName); TableHeaderResultDTO houseType=new TableHeaderResultDTO(); @@ -86,6 +89,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl()); list.add(houseType); return list; 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/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 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 9af84eaee4..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 @@ -74,18 +74,21 @@ diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index bae2ec09fb..a15e120b72 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -120,6 +120,16 @@ 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..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 @@ -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 + */ + @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.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("党员风采导入模板", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/party_style_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_style_import_template.xlsx b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_style_import_template.xlsx new file mode 100644 index 0000000000..a69a6f683e Binary files /dev/null and b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_style_import_template.xlsx differ 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/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/IcStatsResiWarnBuildingResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java index 3d4253f721..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 @@ -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,22 +37,57 @@ 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; 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..a9a847e6d8 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java @@ -0,0 +1,27 @@ +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; + /** + * desc:该号楼有多少个符合条件的人 + */ + private Integer count; +} 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/controller/StatsResiWarnController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java index 33855a2b2c..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 @@ -17,19 +17,18 @@ 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.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.CategoryCountListResultDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; -import com.epmet.dto.result.IcStatsResiWarnUserResultDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import org.springframework.beans.factory.annotation.Autowired; @@ -80,6 +79,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 +94,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); @@ -119,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 f0c4e5f5f5..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,12 +17,11 @@ package com.epmet.service; -import com.epmet.dto.form.CategoryCountListFormDTO; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; 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 com.epmet.dto.result.IcUserWarnNoticeResultDTO; import java.util.List; import java.util.Map; @@ -35,8 +34,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); @@ -46,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/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 4bf946ea43..341932bd52 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 @@ -1183,8 +1183,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; @@ -1197,7 +1208,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; } 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..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 @@ -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; @@ -50,6 +55,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<>(); @@ -332,5 +343,44 @@ 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(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() - \ No newline at end of file + +