Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-cloud into wxz_thirdtest

dev
wangxianzhang 3 years ago
parent
commit
32320418d3
  1. 10
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java
  2. 13
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java
  3. 9
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  4. 65
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java
  5. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java
  6. 44
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java
  7. 58
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/FileUtils.java
  8. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  9. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java
  10. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  11. 21
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  12. 24
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml
  13. 10
      epmet-module/epmet-heart/epmet-heart-server/pom.xml
  14. 29
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java
  15. BIN
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx
  16. 1
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/TableHeaderResultDTO.java
  17. 11
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  18. 6
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java
  19. 11
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java
  20. 14
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  21. 22
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.14__create_ic_form_list_item.sql
  22. 26
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.15__alter_ic_form_list_item_sort.sql
  23. 2
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.16__alter_ic_form_list_item_width.sql
  24. 23
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  25. 10
      epmet-module/resi-partymember/resi-partymember-server/pom.xml
  26. 37
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java
  27. BIN
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_style_import_template.xlsx
  28. 27
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java
  29. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonWarnRightListFormDTO.java
  30. 36
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java
  31. 27
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java
  32. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java
  33. 32
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java
  34. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
  35. 27
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java
  36. 24
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  37. 50
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java
  38. 17
      epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

10
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.constant.ServiceConstant;
import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; 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.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.CustomerStaffInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam;
* @Author sun * @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 { public interface CommonAggFeignClient {
/** /**
@ -45,4 +47,12 @@ public interface CommonAggFeignClient {
*/ */
@PostMapping("/data/aggregator/org/grid") @PostMapping("/data/aggregator/org/grid")
Result<GridInfoCache> getGridInfo(@RequestParam("gridId")String gridId); Result<GridInfoCache> getGridInfo(@RequestParam("gridId")String gridId);
/**
* 查询楼栋信息
* @param buildingId
* @return
*/
@PostMapping("/data/aggregator/org/querybuildinginfo")
Result<BuildingInfoCache> queryBuildingInfo(@RequestParam("buildingId")String buildingId);
} }

13
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.constant.ServiceConstant;
import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.feign.CommonAggFeignClient;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; 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.CustomerStaffInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.ModuleUtils;
@ -32,4 +33,16 @@ public class CommonAggFeignClientFallback implements CommonAggFeignClient {
public Result<GridInfoCache> getGridInfo(String gridId) { public Result<GridInfoCache> getGridInfo(String gridId) {
return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId); return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId);
} }
/**
* 查询楼栋信息
*
* @param buildingId
* @return
*/
@Override
public Result<BuildingInfoCache> queryBuildingInfo(String buildingId) {
return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "queryBuildingInfo", buildingId);
}
} }

9
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); 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 * @description 调查问卷accessKey
* *

65
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<String, Object> build = customerIcHouseRedis.redisUtils.hGetAll(key);
if (!MapUtils.isEmpty(build)) {
return ConvertUtils.mapToEntity(build, BuildingInfoCache.class);
}
Result<BuildingInfoCache> buildInfoResult = customerIcHouseRedis.commonAggFeignClient.queryBuildingInfo(buildingId);
if (!buildInfoResult.success()){
throw new RenException("查询楼栋信息失败...");
}
if (null == buildInfoResult.getData()){
return null;
}
Map<String, Object> map = BeanUtil.beanToMap(buildInfoResult.getData(), false, true);
customerIcHouseRedis.redisUtils.hMSet(key, map);
return buildInfoResult.getData();
}
}

5
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; package com.epmet.commons.tools.redis.common;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.feign.CommonAggFeignClient;
import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils; 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.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -33,7 +33,6 @@ public class CustomerOrgRedis {
private CommonAggFeignClient commonAggFeignClient; private CommonAggFeignClient commonAggFeignClient;
private static CustomerOrgRedis customerOrgRedis; private static CustomerOrgRedis customerOrgRedis;
private static final String ROLE_MAP_KEY = "roleMap";
@PostConstruct @PostConstruct
public void init() { public void init() {

44
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;
// 后续用到啥再加吧........
}

58
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; package com.epmet.commons.tools.utils;
import java.io.File; import lombok.extern.slf4j.Slf4j;
import java.io.FileOutputStream; import org.apache.commons.io.IOUtils;
import java.io.IOException; import org.apache.commons.lang3.StringUtils;
import java.io.InputStream;
import java.io.*;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/** /**
* @author kamui * @author kamui
*/ */
@Slf4j
public class FileUtils { public class FileUtils {
/** /**
@ -62,4 +66,50 @@ public class FileUtils {
return createTmpFile(inputStream, name, ext, null); 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;
}
} }

14
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.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; 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.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
@ -412,4 +413,17 @@ public class GovOrgController {
govOrgService.pcworkRecordListExportSendMsg(formDTO); govOrgService.pcworkRecordListExportSendMsg(formDTO);
return new Result(); return new Result();
} }
/**
* 查询楼栋信息
* @param buildingId
* @return
*/
@PostMapping("/querybuildinginfo")
public Result<BuildingInfoCache> queryBuildingInfo(@RequestParam("buildingId")String buildingId){
if(StringUtils.isBlank(buildingId)){
return new Result<>();
}
return new Result<BuildingInfoCache>().ok(govOrgService.queryBuildingInfo(buildingId));
}
} }

15
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);
}

8
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; 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.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO;
@ -188,4 +189,11 @@ public interface GovOrgService {
* @Description 查询组织的直属下级组织下网格活跃度统计--文件导出 * @Description 查询组织的直属下级组织下网格活跃度统计--文件导出
**/ **/
void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO); void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO);
/**
* 获取楼栋信息
* @param buildingId
* @return
*/
BuildingInfoCache queryBuildingInfo(String buildingId);
} }

21
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.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; 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.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.security.dto.TokenDto;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
@ -91,6 +93,8 @@ public class GovOrgServiceImpl implements GovOrgService {
private OssFeignClient ossFeignClient; private OssFeignClient ossFeignClient;
@Autowired @Autowired
private EvaluationIndexService evaluationIndexService; private EvaluationIndexService evaluationIndexService;
@Autowired
private IcBuildingDao icBuildingDao;
/** /**
* @param staffId * @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;
}
} }

24
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.govorg.IcBuildingDao">
<select id="selectBuildInfo" parameterType="java.lang.String" resultType="com.epmet.commons.tools.redis.common.bean.BuildingInfoCache">
SELECT
ib.id as buildingId,
ib.BUILDING_NAME as buildingName,
ib.NEIGHBOR_HOOD_ID as neighborHoodId,
ih.NEIGHBOR_HOOD_NAME as neighborHoodName,
ih.GRID_ID as gridId,
ih.AGENCY_ID as agencyId
FROM
ic_building ib
INNER JOIN ic_neighbor_hood ih ON ( ib.NEIGHBOR_HOOD_ID = ih.id )
WHERE
ib.id = #{buildingId}
AND ib.DEL_FLAG = '0'
AND ih.DEL_FLAG = '0'
</select>
</mapper>

10
epmet-module/epmet-heart/epmet-heart-server/pom.xml

@ -122,6 +122,16 @@
<skipTests>true</skipTests> <skipTests>true</skipTests>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins> </plugins>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources> <resources>

29
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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -181,6 +186,30 @@ public class IcCommunitySelfOrganizationController {
return new Result(); 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 添加社区自组织 * @Description 添加社区自组织
* @param tokenDto * @param tokenDto

BIN
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx

Binary file not shown.

1
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 label;
private String columnName; private String columnName;
private String itemType; private String itemType;
private Integer width;
private List<OptionDTO> options; private List<OptionDTO> options;
} }

11
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -102,10 +102,19 @@ public interface OperCustomizeOpenFeignClient {
Result<List<IcResiCategoryStatsConfigDTO>> getCategoryList(@RequestBody IcResiCategoryStatsConfigDTO dto); Result<List<IcResiCategoryStatsConfigDTO>> getCategoryList(@RequestBody IcResiCategoryStatsConfigDTO dto);
/**
* 获取居民类别配置表ic_resi_category_stats_config根据token里的客户id查询可根据状态筛选显示show隐藏hidden
* @param formDTO
* @return
*/
@PostMapping("/oper/customize/resicategorystatsconfig/resicategorystatslistshowd") @PostMapping("/oper/customize/resicategorystatsconfig/resicategorystatslistshowd")
Result<List<IcResiCategoryStatsConfigDTO>> resiCategoryStatsListShowd(@RequestBody IcResiCategoryStatsConfigFormDTO formDTO); Result<List<IcResiCategoryStatsConfigDTO>> resiCategoryStatsListShowd(@RequestBody IcResiCategoryStatsConfigFormDTO formDTO);
/**
* 查询ic_resi_category_warn_config,返回预警的类别
* @param customerId
* @return
*/
@PostMapping("/oper/customize/resicategorystatsconfig/resicategorywarnlist") @PostMapping("/oper/customize/resicategorystatsconfig/resicategorywarnlist")
Result<List<IcResiCategoryWarnConfigDTO>> resiCategoryWarnList(@RequestParam String customerId); Result<List<IcResiCategoryWarnConfigDTO>> resiCategoryWarnList(@RequestParam String customerId);

6
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<List<ConditionResultDTO>>().ok(icFormItemService.queryConditionList(formDto)); return new Result<List<ConditionResultDTO>>().ok(icFormItemService.queryConditionList(formDto));
} }
/**
* 居民信息列表_表头
* @param tokenDto
* @param formDto
* @return
*/
@PostMapping("tableheaders") @PostMapping("tableheaders")
public Result<List<TableHeaderResultDTO>> queryTableHeaderList(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){ public Result<List<TableHeaderResultDTO>> queryTableHeaderList(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){
formDto.setCustomerId(tokenDto.getCustomerId()); formDto.setCustomerId(tokenDto.getCustomerId());

11
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<IcResiCategoryStatsConfigResultDTO>().ok(resiCategoryStatsConfigService.info(formDTO.getId(),tokenDTO.getCustomerId())); return new Result<IcResiCategoryStatsConfigResultDTO>().ok(resiCategoryStatsConfigService.info(formDTO.getId(),tokenDTO.getCustomerId()));
} }
/**
* 获取居民类别配置表ic_resi_category_stats_config根据token里的客户id查询可根据状态筛选显示show隐藏hidden
* @param tokenDTO
* @param formDTO
* @return
*/
@PostMapping("resicategorystatslistshowd") @PostMapping("resicategorystatslistshowd")
public Result<List<IcResiCategoryStatsConfigDTO>> resiCategoryStatsListShowd(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){ public Result<List<IcResiCategoryStatsConfigDTO>> resiCategoryStatsListShowd(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){
//获取预警配置列表 //获取预警配置列表
@ -145,6 +151,11 @@ public class ResiCategoryStatsConfigController {
return new Result<List<IcResiCategoryStatsConfigDTO>>().ok(ConvertUtils.sourceToTarget(statsConfigEntityList, IcResiCategoryStatsConfigDTO.class)); return new Result<List<IcResiCategoryStatsConfigDTO>>().ok(ConvertUtils.sourceToTarget(statsConfigEntityList, IcResiCategoryStatsConfigDTO.class));
} }
/**
* 查询ic_resi_category_warn_config,返回预警的类别
* @param customerId
* @return
*/
@PostMapping("resicategorywarnlist") @PostMapping("resicategorywarnlist")
public Result<List<IcResiCategoryWarnConfigDTO>> resiCategoryWarnList(@RequestParam String customerId){ public Result<List<IcResiCategoryWarnConfigDTO>> resiCategoryWarnList(@RequestParam String customerId){
//获取预警配置列表 //获取预警配置列表

14
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; package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.dao.IcFormItemDao; import com.epmet.dao.IcFormItemDao;
@ -30,12 +28,10 @@ import com.epmet.service.IcFormItemService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; 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.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
/** /**
* 表单项 * 表单项
@ -60,6 +56,11 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return list; return list;
} }
/**
* 居民信息列表_表头
* @param formDto
* @return
*/
@Override @Override
public List<TableHeaderResultDTO> queryTableHeaderList(CustomerFormQueryDTO formDto) { public List<TableHeaderResultDTO> queryTableHeaderList(CustomerFormQueryDTO formDto) {
List<TableHeaderResultDTO> list=new ArrayList<>(); List<TableHeaderResultDTO> list=new ArrayList<>();
@ -68,6 +69,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
//list.add(new TableHeaderResultDTO("楼栋","BUILD_NAME","input")); //list.add(new TableHeaderResultDTO("楼栋","BUILD_NAME","input"));
//list.add(new TableHeaderResultDTO("单元","UNIT_NAME","input")); //list.add(new TableHeaderResultDTO("单元","UNIT_NAME","input"));
//list.add(new TableHeaderResultDTO("所在家庭","HOME_NAME","input")); //list.add(new TableHeaderResultDTO("所在家庭","HOME_NAME","input"));
//改为查询ic_form_list_item
List<TableHeaderResultDTO> result=baseDao.queryTableHeaderList(formDto.getCustomerId(),formDto.getFormCode()); List<TableHeaderResultDTO> result=baseDao.queryTableHeaderList(formDto.getCustomerId(),formDto.getFormCode());
if(!CollectionUtils.isEmpty(result)){ if(!CollectionUtils.isEmpty(result)){
list.addAll(result); list.addAll(result);
@ -79,6 +81,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
categoryName.setColumnName("CATEGORY_NAME"); categoryName.setColumnName("CATEGORY_NAME");
categoryName.setLabel("居民需求"); categoryName.setLabel("居民需求");
categoryName.setOptions(new ArrayList<>()); categoryName.setOptions(new ArrayList<>());
categoryName.setWidth(120);
list.add(categoryName); list.add(categoryName);
TableHeaderResultDTO houseType=new TableHeaderResultDTO(); TableHeaderResultDTO houseType=new TableHeaderResultDTO();
@ -86,6 +89,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
houseType.setItemId(StrConstant.EPMETY_STR); houseType.setItemId(StrConstant.EPMETY_STR);
houseType.setColumnName("HOUSE_TYPE"); houseType.setColumnName("HOUSE_TYPE");
houseType.setLabel("房屋类型"); houseType.setLabel("房屋类型");
houseType.setWidth(80);
houseType.setOptions(new ArrayList<>()); houseType.setOptions(new ArrayList<>());
list.add(houseType); list.add(houseType);
return list; return list;

22
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;

26
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' ;

2
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`;

23
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -74,18 +74,21 @@
</resultMap> </resultMap>
<select id="queryTableHeaderList" parameterType="map" resultMap="TableHeaderResultDTOMap"> <select id="queryTableHeaderList" parameterType="map" resultMap="TableHeaderResultDTOMap">
SELECT SELECT
m.id as item_id, l.FORM_ITEM_ID AS item_id,
m.LABEL, l.WIDTH,
m.COLUMN_NAME, i.LABEL,
m.item_type i.COLUMN_NAME,
I.ITEM_TYPE
FROM FROM
ic_form_item m ic_form_list_item l
LEFT JOIN ic_form_item i
on(l.FORM_ITEM_ID=i.id and i.DEL_FLAG='0')
WHERE WHERE
m.DEL_FLAG = '0' l.CUSTOMER_ID = #{customerId}
AND m.LIST_DISPLAY = '1' AND l.DEL_FLAG = '0'
and m.FORM_CODE=#{formCode} AND l.FORM_CODE = #{formCode}
and m.CUSTOMER_ID=#{customerId} ORDER BY
order by m.SORT asc l.SORT ASC
</select> </select>

10
epmet-module/resi-partymember/resi-partymember-server/pom.xml

@ -120,6 +120,16 @@
<skipTests>true</skipTests> <skipTests>true</skipTests>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins> </plugins>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources> <resources>

37
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.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant; 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.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils; 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.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup; 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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.*;
import java.io.InputStream; 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.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -173,4 +182,28 @@ public class IcPartymemberStyleController {
ValidatorUtils.validateEntity(formDTO,StyleShowListFormDTO.AddUserInternalGroup.class); ValidatorUtils.validateEntity(formDTO,StyleShowListFormDTO.AddUserInternalGroup.class);
return new Result<PageData<IcPartymemberStyleDTO>>().ok(icPartymemberStyleService.showList(formDTO)); return new Result<PageData<IcPartymemberStyleDTO>>().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();
}
}
}
} }

BIN
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/templates/party_style_import_template.xlsx

Binary file not shown.

27
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;
}

2
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) @NotNull(message = "pageSize不能为空",groups = PersonWarnRightListForm.class)
private Integer pageSize; private Integer pageSize;
private String categoryCode;
} }

36
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 lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import java.util.List; import java.util.List;
@ -38,22 +37,57 @@ public class IcStatsResiWarnBuildingResultDTO implements Serializable {
/** /**
* 预警配置ID * 预警配置ID
* ic_resi_category_warn_config.id
*/ */
private String configId; private String configId;
/**
* ic_resi_category_warn_config.label
* 类别名
*/
private String label; private String label;
/**
* 排序
*/
private Integer sort; private Integer sort;
/**
* 等级1阈值
*/
private Integer level1; private Integer level1;
private Integer levelCount1; private Integer levelCount1;
/**
* 等级2阈值
*/
private Integer level2; private Integer level2;
private Integer levelCount2; private Integer levelCount2;
/**
* 等级3阈值
*/
private Integer level3; private Integer level3;
private Integer levelCount3; private Integer levelCount3;
/**
* 管理平台分类图标
*/
private String managementIcon; private String managementIcon;
/**
* 数据平台分类图标
*/
private String dataIcon; private String dataIcon;
/**
* 房屋显示分类图标
*/
private String houseShowIcon; private String houseShowIcon;
/**
* 当前类别符合预警的共多少栋楼
*/
private Integer count; private Integer count;
private List<String> buildingIdList1; private List<String> buildingIdList1;

27
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;
}

3
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<String> type; private List<String> type;
@JsonIgnore
private String sortString;
/** /**
* 所属网格 * 所属网格
*/ */

32
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java

@ -17,19 +17,18 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.common.token.annotation.Login;
import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; 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.StatsResiListFormDTO;
import com.epmet.dto.form.StatsResiWarnCountFormDTO; import com.epmet.dto.form.StatsResiWarnCountFormDTO;
import com.epmet.dto.form.StatsResiWarnFormDTO; import com.epmet.dto.form.StatsResiWarnFormDTO;
import com.epmet.dto.result.CategoryCountListResultDTO;
import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiResultDTO;
import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; 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.IcStatsResiWarnService;
import com.epmet.service.StatsResiWarnService; import com.epmet.service.StatsResiWarnService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -80,6 +79,12 @@ public class StatsResiWarnController {
return new Result<List<IcStatsResiResultDTO>>().ok(statsResiWarnService.list2(formDTO)); return new Result<List<IcStatsResiResultDTO>>().ok(statsResiWarnService.list2(formDTO));
} }
/**
* 可视化分析-人员预警各类别楼栋数量展示
* @param tokenDto
* @param formDTO 只有agencyId
* @return
*/
@PostMapping("buildingwarnlist") @PostMapping("buildingwarnlist")
public Result buildingWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){ public Result buildingWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedBuilding.class); ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedBuilding.class);
@ -89,6 +94,13 @@ public class StatsResiWarnController {
return new Result().ok(icStatsResiWarnBuildingResultDTOS); return new Result().ok(icStatsResiWarnBuildingResultDTOS);
} }
/**
* 可视化分析-人员预警楼栋列表展示
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("userwarnlist") @PostMapping("userwarnlist")
public Result userWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){ public Result userWarnList(@LoginUser TokenDto tokenDto,@RequestBody StatsResiWarnFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedUser.class); ValidatorUtils.validateEntity(formDTO, StatsResiWarnFormDTO.ListSelectedUser.class);
@ -119,4 +131,16 @@ public class StatsResiWarnController {
return new Result(); return new Result();
} }
/**
* 人员预警通知列表
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("queryuserwarnnotice")
public Result<List<IcUserWarnNoticeResultDTO>> queryUserWarnNotice(@LoginUser TokenDto tokenDto,@RequestBody IcUserWarnNoticeFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, AddGroup.class);
return new Result<List<IcUserWarnNoticeResultDTO>>().ok(statsResiWarnService.queryUserWarnNotice(formDTO));
}
} }

11
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.commons.mybatis.dao.BaseDao;
import com.epmet.dto.PersonWarnLeftPieDTO; import com.epmet.dto.PersonWarnLeftPieDTO;
import com.epmet.dto.result.IcUserWarnNoticeResultDTO;
import com.epmet.dto.result.UserWarnNameListResultDTO; import com.epmet.dto.result.UserWarnNameListResultDTO;
import com.epmet.entity.IcStatsResiWarnEntity; import com.epmet.entity.IcStatsResiWarnEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -76,4 +77,14 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
List<Map<String,String>> selectCategoryCountByColumn(@Param("columnNames") List<String> columnNames,@Param("agencyId")String agencyId); List<Map<String,String>> selectCategoryCountByColumn(@Param("columnNames") List<String> columnNames,@Param("agencyId")String agencyId);
/**
* 获取预警楼栋列表
* @param customerId
* @param agencyId
* @param configIds
* @return
*/
List<IcUserWarnNoticeResultDTO> queryUserWarnNotice(@Param("customerId") String customerId,
@Param("agencyId") String agencyId,
@Param("configIds") List<String> configIds);
} }

27
epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java

@ -17,12 +17,11 @@
package com.epmet.service; 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.form.StatsResiListFormDTO;
import com.epmet.dto.result.CategoryCountListResultDTO;
import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiResultDTO;
import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; 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.List;
import java.util.Map; import java.util.Map;
@ -35,8 +34,23 @@ import java.util.Map;
*/ */
public interface StatsResiWarnService{ public interface StatsResiWarnService{
/**
* 可视化分析-人员预警各类别楼栋数量展示
* @param customerId
* @param agencyID
* @return
*/
List<IcStatsResiWarnBuildingResultDTO> buildingwWarnList(String customerId,String agencyID); List<IcStatsResiWarnBuildingResultDTO> buildingwWarnList(String customerId,String agencyID);
/**
* 可视化分析-人员预警楼栋列表展示
* @param customerId
* @param configId
* @param buildingIdList
* @param pageNo
* @param pageSize
* @return
*/
Map<String,Object> userWarnList(String customerId, String configId, List<String> buildingIdList, Integer pageNo, Integer pageSize); Map<String,Object> userWarnList(String customerId, String configId, List<String> buildingIdList, Integer pageNo, Integer pageSize);
List<IcStatsResiResultDTO> list(String customerId,String id, String level); List<IcStatsResiResultDTO> list(String customerId,String id, String level);
@ -46,4 +60,11 @@ public interface StatsResiWarnService{
void resiWarn(String customerId); void resiWarn(String customerId);
void resiWarnByOne(String customerId,String userId); void resiWarnByOne(String customerId,String userId);
/**
* 人员预警通知列表
* @param formDTO
* @return
*/
List<IcUserWarnNoticeResultDTO> queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO);
} }

24
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -1183,8 +1183,19 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (CollectionUtils.isEmpty(configListResult.getData())){ if (CollectionUtils.isEmpty(configListResult.getData())){
return result; return result;
} }
List<CustomerCategoryShowAndWarnListResultDTO> configList = configListResult.getData(); List<CustomerCategoryShowAndWarnListResultDTO> configListOrigin = configListResult.getData();
PageInfo<Map<String, Object>> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectResiUsers(configList.stream().map(m -> m.getColumnName()).collect(Collectors.toList()), staffInfo.getAgencyId())); List<CustomerCategoryShowAndWarnListResultDTO> 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<CustomerCategoryShowAndWarnListResultDTO> finalConfigList = configList;
PageInfo<Map<String, Object>> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectResiUsers(finalConfigList.stream().map(m -> m.getColumnName()).collect(Collectors.toList()), staffInfo.getAgencyId()));
List<Map<String, Object>> list = pageInfo.getList(); List<Map<String, Object>> list = pageInfo.getList();
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return result; return result;
@ -1197,7 +1208,14 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} }
List<HouseInfoDTO> houseInfos = houseInfosResult.getData(); List<HouseInfoDTO> houseInfos = houseInfosResult.getData();
userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> u.setFamily(h.getAllName()))); 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<PersonWarnRightListResultDTO.PersonWarnRightList> finalResult = userList.stream().sorted(Comparator.comparing(PersonWarnRightListResultDTO.PersonWarnRightList::getSortString)).collect(Collectors.toList());
result.setList(finalResult);
return result; return result;
} }

50
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.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.constant.NumConstant; 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.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.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcResiUserDao; import com.epmet.dao.IcResiUserDao;
@ -11,6 +14,7 @@ import com.epmet.dao.IcStatsResiWarnDao;
import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.IcResiCategoryWarnConfigDTO; import com.epmet.dto.IcResiCategoryWarnConfigDTO;
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO;
import com.epmet.dto.form.IcUserWarnNoticeFormDTO;
import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.form.StatsResiListFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcResiUserEntity;
@ -21,6 +25,7 @@ import com.epmet.service.IcStatsResiWarnService;
import com.epmet.service.StatsResiWarnService; import com.epmet.service.StatsResiWarnService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -50,6 +55,12 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
@Resource @Resource
private IcResiUserDao icResiUserDao; private IcResiUserDao icResiUserDao;
/**
* 可视化分析-人员预警各类别楼栋数量展示
* @param customerId
* @param agencyID
* @return
*/
@Override @Override
public List<IcStatsResiWarnBuildingResultDTO> buildingwWarnList(String customerId,String agencyID) { public List<IcStatsResiWarnBuildingResultDTO> buildingwWarnList(String customerId,String agencyID) {
List<IcStatsResiWarnBuildingResultDTO> result = new ArrayList<>(); List<IcStatsResiWarnBuildingResultDTO> result = new ArrayList<>();
@ -332,5 +343,44 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
} }
} }
/**
* 人员预警通知列表
*
* @param formDTO
* @return
*/
@Override
public List<IcUserWarnNoticeResultDTO> queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO) {
//1、feign查询是否有配置的预警分类
Result<List<IcResiCategoryWarnConfigDTO>> warnResult = operCustomizeOpenFeignClient.resiCategoryWarnList(formDTO.getCustomerId());
if (!warnResult.success()) {
throw new RenException("预警配置查询失败:" + warnResult.getMsg());
}
if (CollectionUtils.isEmpty(warnResult.getData())) {
return new ArrayList<>();
}
//2、符合条件的楼栋
Map<String, String> configMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLabel));
List<String> configIds = warnResult.getData().stream().map(IcResiCategoryWarnConfigDTO::getId).collect(Collectors.toList());
List<IcUserWarnNoticeResultDTO> list = icStatsResiWarnDao.queryUserWarnNotice(formDTO.getCustomerId(), formDTO.getAgencyId(), configIds);
List<IcUserWarnNoticeResultDTO> resList = new ArrayList<>();
Map<String, Integer> level1ThresholdMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLevel1));
for (IcUserWarnNoticeResultDTO dto : list) {
if (dto.getCount()<level1ThresholdMap.get(dto.getConfigId())){
continue;
}
//南宁路社区第二网格亿联小区2号楼失业人员超出预警!
BuildingInfoCache infoCache = CustomerIcHouseRedis.getBuildingInfo(dto.getBuildingId());
if (null == infoCache) {
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());
dto.setNoticeContent(String.format("%s%s%s%s超出预警!", infoCache.getGridName(), infoCache.getNeighborHoodName(), infoCache.getBuildingName(), categoryName));
resList.add(dto);
}
return resList;
}
} }

17
epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

@ -184,4 +184,21 @@
AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%') AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%')
</select> </select>
<select id="queryUserWarnNotice" parameterType="map" resultType="com.epmet.dto.result.IcUserWarnNoticeResultDTO">
SELECT
ir.BUILDING_ID,
ir.CONFIG_ID,
ir.COUNT
FROM
ic_stats_resi_warn ir
WHERE
ir.CUSTOMER_ID = #{customerId}
AND (ir.AGENCY_ID=#{agencyId} or ir.AGENCY_PIDS like concat('%',#{agencyId},'%'))
AND ir.DEL_FLAG = '0'
AND (
<foreach collection="configIds" item="configId" separator=" OR ">
ir.CONFIG_ID = #{configId}
</foreach>
)
</select>
</mapper> </mapper>
Loading…
Cancel
Save