diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml
index 70a29a30a4..77d7d9062d 100644
--- a/epmet-module/epmet-job/epmet-job-server/pom.xml
+++ b/epmet-module/epmet-job/epmet-job-server/pom.xml
@@ -43,11 +43,6 @@
epmet-message-client
2.0.0
-
- com.epmet
- pli-power-base-client
- 2.0.0
-
org.springframework.boot
spring-boot-starter-web
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java
deleted file mode 100644
index 4fb990d033..0000000000
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.epmet.service;
-
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
-
-public interface PliPowerService {
-
- /**
- * 访客登出
- *
- * @param formDTO
- * @return com.epmet.commons.tools.utils.Result
- * @author zhy
- * @date 2022/5/30 10:25
- */
- Result visitorLogout(VisitorLogoutFormDTO formDTO);
-}
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java
deleted file mode 100644
index ed54b7e6d9..0000000000
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.epmet.service.impl;
-
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
-import com.epmet.plugin.power.feign.PliPowerFeignClient;
-import com.epmet.service.PliPowerService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-
-/**
- * @Description
- * @ClassName StatsUserServiceImpl
- * @Auth wangc
- * @Date 2020-06-29 09:41
- */
-@Service
-public class PliPowerServiceImpl implements PliPowerService {
-
- private Logger logger = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private PliPowerFeignClient pliPowerFeignClient;
-
- @Override
- public Result visitorLogout(VisitorLogoutFormDTO formDTO) {
- return pliPowerFeignClient.visitorLogout(formDTO);
- }
-}
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java
deleted file mode 100644
index 41ffa19ecc..0000000000
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.epmet.task;
-
-import com.alibaba.fastjson.JSON;
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
-import com.epmet.service.PliPowerService;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * 访客登出
- *
- * @author zhy
- * @date 2022/5/30 10:23
- */
-@Component("pliVisitorLogoutTask")
-public class PliVisitorLogoutTask implements ITask {
-
- private Logger logger = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private PliPowerService pliPowerService;
-
- @Override
- public void run(String params) {
- logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params);
- VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO();
- if (StringUtils.isNotBlank(params)) {
- formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class);
- }
- Result result = pliPowerService.visitorLogout(formDTO);
- if (result.success()) {
- logger.info("VisitorLogoutTask定时任务执行成功");
- } else {
- logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg());
- }
- }
-}
diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
index 1c43b7e121..6bb92ad38b 100644
--- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
+++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/enums/OssTypeEnum.java
@@ -34,7 +34,11 @@ public enum OssTypeEnum {
/**
* 本地
*/
- LOCAL(5);
+ LOCAL(5),
+ /**
+ * minio
+ */
+ MINIO(6);
private int value;
diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml
index aa8f8011c2..7ba0db18f3 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml
@@ -9,7 +9,7 @@ services:
volumes:
- "/opt/epmet-cloud-logs/dev:/logs"
environment:
- RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-oss.jar"
+ RUN_INSTRUCT: "java -Xms256m -Xmx400m -jar ./epmet-oss.jar"
restart: "unless-stopped"
logging:
driver: local
diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml
index 8beffda74d..ed234aacaa 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml
+++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml
@@ -9,7 +9,7 @@ services:
volumes:
- "/opt/epmet-cloud-logs/test:/logs"
environment:
- RUN_INSTRUCT: "java -Xms32m -Xmx200m -jar ./epmet-oss.jar"
+ RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./epmet-oss.jar"
restart: "unless-stopped"
logging:
driver: local
diff --git a/epmet-module/epmet-oss/epmet-oss-server/pom.xml b/epmet-module/epmet-oss/epmet-oss-server/pom.xml
index cee3606bf6..fddc87331a 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/pom.xml
+++ b/epmet-module/epmet-oss/epmet-oss-server/pom.xml
@@ -90,6 +90,12 @@
org.springframework
spring-test
+
+
+ io.minio
+ minio
+ 8.4.2
+
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
index 9cd575cbcf..6b44c47d66 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
@@ -11,9 +11,11 @@ package com.epmet.cloud;
import com.epmet.commons.tools.validator.group.AliyunGroup;
import com.epmet.commons.tools.validator.group.QcloudGroup;
import com.epmet.commons.tools.validator.group.QiniuGroup;
+import com.epmet.constants.PrivacyType;
import com.epmet.validator.group.FastDFSGroup;
import com.epmet.validator.group.LocalGroup;
import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Range;
import org.hibernate.validator.constraints.URL;
@@ -101,6 +103,7 @@ public class CloudStorageConfig implements Serializable {
private String localPath;
private AliyunCloudStorageConfig aliyun;
+ private MinioStorageConfig minio;
/**
* 阿里云存储配置
*/
@@ -110,6 +113,20 @@ public class CloudStorageConfig implements Serializable {
private AliyunCloudStorageConfigProps external;
}
+ @Data
+ public static class MinioStorageConfig {
+ private MinioStorageConfigProps internal;
+ private MinioStorageConfigProps external;
+
+ public MinioStorageConfigProps getConfigByPrivacy(String privacy) {
+ if (StringUtils.isNotBlank(privacy) && PrivacyType.INTERNAL.equals(privacy)) {
+ return internal;
+ } else {
+ return external;
+ }
+ }
+ }
+
/**
* 阿里云存储配置属性
*/
@@ -134,4 +151,23 @@ public class CloudStorageConfig implements Serializable {
private String aliyunBucketName;
}
+ /**
+ * minio存储配置属性
+ */
+ @Data
+ public static class MinioStorageConfigProps {
+ /**
+ * 外部访问域名,用于用户直接访问minio服务
+ */
+ private String minioExternalDomain;
+ /**
+ * 内部访问域名,用于服务集群内部使用
+ */
+ private String minioInternalDomain;
+ private String minioEndPoint;
+ private String minioAccessKey;
+ private String minioSecretKey;
+ private String minioPrefix;
+ private String minioBucketName;
+ }
}
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java
new file mode 100644
index 0000000000..e9204c3623
--- /dev/null
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java
@@ -0,0 +1,106 @@
+package com.epmet.cloud;
+
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import io.minio.MinioClient;
+import io.minio.ObjectWriteResponse;
+import io.minio.PutObjectArgs;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.http.MediaTypeFactory;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Paths;
+
+/**
+ * minio 文件服务
+ */
+@Slf4j
+public class MinioStorageService extends AbstractCloudStorageService {
+
+ private MinioClient minioClient;
+
+ public MinioStorageService(CloudStorageConfig config) {
+ this.config = config;
+
+ CloudStorageConfig.MinioStorageConfigProps props = config.getMinio().getConfigByPrivacy(null);
+
+ log.info("Minio客户端连接所用的域名:{}", props.getMinioInternalDomain());
+
+ /**
+ * minio和服务在同一个局域网,则可以使用内网域名上传,速度更快更稳定
+ */
+ minioClient = MinioClient.builder()
+ .endpoint(props.getMinioInternalDomain()) // 保证和nginx的proxy_set_header Host 一致
+ .credentials(props.getMinioAccessKey(), props.getMinioSecretKey())
+ .build();
+ }
+
+ @Override
+ public String getOssDomain(String privacy) {
+ return this.config.getMinio().getConfigByPrivacy(privacy).getMinioExternalDomain();
+ }
+
+ @Override
+ public String getOssPrefix(String privacy) {
+ return this.config.getMinio().getConfigByPrivacy(privacy).getMinioPrefix();
+ }
+
+ @Override
+ public String upload(byte[] data, String path, String privacyType) {
+ return upload(new ByteArrayInputStream(data), path, privacyType);
+ }
+
+ @Override
+ public String uploadSuffix(byte[] data, String suffix, String privacyType) {
+ return uploadSuffix(new ByteArrayInputStream(data), suffix, privacyType);
+ }
+
+ /**
+ * 此处bucket已经做为path
+ * @param inputStream 字节流
+ * @param path 文件路径,包含文件名
+ * @param privacyType
+ * @return
+ */
+ @Override
+ public String upload(InputStream inputStream, String path, String privacyType) {
+ CloudStorageConfig.MinioStorageConfigProps props = this.config.getMinio().getConfigByPrivacy(privacyType);
+ String contentType = MediaTypeFactory.getMediaType(path).orElse(MediaType.APPLICATION_OCTET_STREAM).toString();
+ try {
+ ObjectWriteResponse resp = minioClient.putObject(PutObjectArgs.builder()
+ .bucket(props.getMinioBucketName())
+ .object(path)
+ .stream(inputStream, inputStream.available(), -1)
+ .contentType(contentType)
+ .build());
+
+ log.debug("minio上传文件成功。bucket:{}, object:{}, privacyType:{}", resp.bucket(), resp.object(), privacyType);
+
+ // 返回值要存储到数据库,供用户访问,因此使用外网域名
+ return props.getMinioExternalDomain() + "/" + Paths.get(resp.bucket()).resolve(resp.object()).toString();
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getErrorStackTrace(e);
+ throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg);
+ }
+ }
+
+ @Override
+ public String uploadSuffix(InputStream inputStream, String suffix, String privacyType) {
+ CloudStorageConfig.MinioStorageConfigProps props = this.config.getMinio().getConfigByPrivacy(privacyType);
+ return upload(inputStream, getPath(props.getMinioPrefix(), suffix, privacyType), privacyType);
+ }
+
+ @Override
+ public void down(String privacyType) throws IOException {
+
+ }
+
+ @Override
+ public boolean delete(String objectName, String privacyType) {
+ return false;
+ }
+}
diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
index 3d69543784..a9113d5fba 100644
--- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
+++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/OssFactory.java
@@ -40,6 +40,8 @@ public final class OssFactory {
abstractCloudStorageService = new FastDFSCloudStorageService(config);
}else if(config.getType() == OssTypeEnum.LOCAL.value()){
abstractCloudStorageService = new LocalCloudStorageService(config);
+ }else if(config.getType() == OssTypeEnum.MINIO.value()){
+ abstractCloudStorageService = new MinioStorageService(config);
}
}
return abstractCloudStorageService;
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java
index 6d3d8f433a..fec4b2d209 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java
@@ -21,6 +21,14 @@ public class HouseChartFormDTO implements Serializable {
* 组织、网格、小区类型 agency grid village
*/
private String orgType;
+ /**
+ * 数据类型【1:出租 0:自住 2:闲置 3:未售出】
+ */
+ private String rentType;
+
+ private Integer pageNo = 1;
+ private Integer pageSize = 20;
+ private Boolean isPage = true;
//token这信息
private String customerId;
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java
index aed43f1b0c..61bee2a9cc 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java
@@ -47,6 +47,14 @@ public class HouseChartResultDTO implements Serializable {
* 房屋闲置总数占比(保留两位小数,带百分号的)
*/
private Double xzHouseRatio = 0.0;
+ /**
+ * 房屋未售出总数
+ */
+ private Integer wscHouseTotal = 0;
+ /**
+ * 房屋未售出总数占比(保留两位小数,带百分号的)
+ */
+ private Double wscHouseRatio = 0.0;
@JsonIgnore
private Integer num;
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java
index 905dca051f..45ded6601b 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/SubUserHouseListResultDTO.java
@@ -50,6 +50,14 @@ public class SubUserHouseListResultDTO implements Serializable {
* 房屋闲置总数占比(保留两位小数,带百分号的)
*/
private Double xzHouseRatio = 0.0;
+ /**
+ * 房屋未售出总数
+ */
+ private Integer wscHouseTotal = 0;
+ /**
+ * 房屋未售出总数占比(保留两位小数,带百分号的)
+ */
+ private Double wscHouseRatio = 0.0;
/**
* 居民总数
*/
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
index ecf6b0056a..35b3bc0e6f 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
@@ -617,4 +617,16 @@ public class HouseController implements ResultDataResolver {
return new Result();
}
+ /**
+ * @Author sun
+ * @Description 【人房概览】房屋统计数点击查询列表/详情
+ **/
+ @PostMapping("housestatislistdetail")
+ @MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"}, fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE})
+ public Result> houseStatisListDetail(@LoginUser TokenDto tokenDto, @RequestBody HouseChartFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ return new Result>().ok(houseService.houseStatisListDetail(formDTO));
+ }
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
index e8e8157256..4d5c986eff 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
@@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.GetHouseInfoToCollectFormDTO;
+import com.epmet.dto.form.HouseChartFormDTO;
import com.epmet.dto.form.IcHouseListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerOrgParameterEntity;
@@ -209,4 +210,5 @@ public interface IcHouseDao extends BaseDao {
*/
IcHouseEntity getHouseInfoByName(CheckHouseInfoFormDTO formDTO);
+ List houseStatisListDetail(HouseChartFormDTO formDTO);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
index 31b1d3f36c..239e844523 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
@@ -195,4 +195,6 @@ public interface HouseService {
Result getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO);
PageData listHouses4ReportTest(String houseId, Integer pageNo, Integer pageSize);
+
+ PageData houseStatisListDetail(HouseChartFormDTO formDTO);
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
index 933a07daeb..bea7a77501 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
@@ -703,14 +703,17 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
resultDTO.setZzHouseTotal(l.getNum());
} else if (l.getRentFlag() == 1) {
resultDTO.setCzHouseTotal(l.getNum());
- } else {
+ } else if (l.getRentFlag() == 2) {
resultDTO.setXzHouseTotal(l.getNum());
+ } else if (l.getRentFlag() == 3) {
+ resultDTO.setWscHouseTotal(l.getNum());
}
});
resultDTO.setHouseTotal(houseTotal.get());
resultDTO.setZzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getZzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getZzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setCzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getCzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getCzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setXzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getXzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getXzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
+ resultDTO.setWscHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getWscHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getWscHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
return resultDTO;
@@ -946,6 +949,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
dto.setCzHouseRatio(h.getCzHouseRatio());
dto.setXzHouseTotal(h.getXzHouseTotal());
dto.setXzHouseRatio(h.getXzHouseRatio());
+ dto.setWscHouseTotal(h.getWscHouseTotal());
+ dto.setWscHouseRatio(h.getWscHouseRatio());
}
}
for (UserChartResultDTO u : userResult.getData()) {
@@ -1330,4 +1335,33 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return new PageData<>(houseDtos, pi.getTotal());
}
+
+ @Override
+ public PageData houseStatisListDetail(HouseChartFormDTO formDTO) {
+ PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
+ //1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
+ if (StringUtils.isEmpty(formDTO.getOrgId())) {
+ //获取工作人员缓存信息
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo) {
+ throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
+ }
+ formDTO.setOrgId(staffInfo.getAgencyId());
+ formDTO.setOrgType("agency");
+ }
+
+ //2.按条件查询房屋信息数据
+ List list = icHouseDao.houseStatisListDetail(formDTO);
+
+ //3.封装数据并返回
+ list.forEach(item -> {
+ item.setHouseType(HouseTypeEnums.getTypeValue(item.getHouseTypeKey()));
+ item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey()));
+ });
+
+ PageInfo pageInfo = new PageInfo<>(list);
+ return new PageData<>(list, pageInfo.getTotal());
+ }
+
+
}
diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
index 5d6fbe270f..5cfdd0fd4d 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
+++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
@@ -559,5 +559,84 @@
and DOOR_NAME = #{homeName}
+
+
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java
index 3273372fed..a6ee2e449e 100644
--- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/IcPartyOrgDTO.java
@@ -89,6 +89,11 @@ public class IcPartyOrgDTO implements Serializable {
*/
private String principal;
+ /**
+ * 负责人staffId
+ */
+ private String principalStaffId;
+
/**
* 联系电话
*/
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java
index e7cab3e965..c518b0ef7e 100644
--- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/EditPrincipalFormDTO.java
@@ -30,4 +30,7 @@ public class EditPrincipalFormDTO implements Serializable {
*/
@NotBlank(message = "principalMobile不能为空",groups = AddGroup.class)
private String principalMobile;
+
+ @NotBlank(message = "principalStaffId不能为空",groups = AddGroup.class)
+ private String principalStaffId;
}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java
index b6404fb481..bc8be3d038 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/entity/IcPartyOrgEntity.java
@@ -78,6 +78,11 @@ public class IcPartyOrgEntity extends BaseEpmetEntity {
*/
private String principal;
+ /**
+ * 负责人staffId
+ */
+ private String principalStaffId;
+
/**
* 联系电话
*/
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql
new file mode 100644
index 0000000000..6530fb1923
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.11__add_principal_staff_id.sql
@@ -0,0 +1,3 @@
+ALTER TABLE ic_party_org ADD COLUMN PRINCIPAL_STAFF_ID VARCHAR(32) DEFAULT '' COMMENT '负责人staffId' AFTER PRINCIPAL_MOBILE;
+alter table ic_party_org modify PRINCIPAL_MOBILE VARCHAR(30) DEFAULT '' COMMENT '联系方式';
+alter table ic_party_org modify PRINCIPAL VARCHAR(30) DEFAULT '' COMMENT '负责人';
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml
index 5c042f9487..410a074121 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml
@@ -30,6 +30,7 @@
update ic_party_org
set PRINCIPAL_MOBILE = #{principalMobile},
PRINCIPAL = #{principal},
+ PRINCIPAL_STAFF_ID = #{principalStaffId},
UPDATED_TIME = NOW()
where id = #{partyOrgId}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java
index ff71263f95..7d357089f6 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java
@@ -22,6 +22,14 @@ public class UserChartFormDTO implements Serializable {
* 组织、网格、小区类型 agency grid village
*/
private String orgType;
+ /**
+ * 数据类型【居民总数: all 常住: cz 流动: ld】
+ */
+ private String type;
+
+ private Integer pageNo = 1;
+ private Integer pageSize = 20;
+ private Boolean isPage = true;
//id集合
private List idList;
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java
index 68ad326637..5e739016b3 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java
@@ -47,6 +47,8 @@ public class PersonDataResultDTO implements Serializable {
* 姓名
*/
private String name;
+ private String mobile;
+ private String isTenant;
/**
* 经济状况:包括 月收入:monthlyIncome 和 退休金额:retirementAmount
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
index 0d5652074c..d24e66db07 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
@@ -1411,6 +1411,17 @@ public class IcResiUserController implements ResultDataResolver {
return new Result>().ok(page);
}
+ /**
+ * @Author sun
+ * @Description 【人房概览】居民统计数点击查询列表
+ **/
+ @PostMapping("icuserstatislist")
+ public Result> icUserStatisList(@LoginUser TokenDto tokenDto, @RequestBody UserChartFormDTO formDTO) {
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ formDTO.setUserId(tokenDto.getUserId());
+ return new Result>().ok(icResiUserService.icUserStatisList(formDTO));
+ }
+
/**
* 更新育龄妇女状态定时任务
* @Param
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
index 1fedc84df4..dd9e97bbae 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
@@ -428,4 +428,6 @@ public interface IcResiUserDao extends BaseDao {
* @Date 2022/6/29 17:37
*/
List getIcUserCount(IcUserCountFormDTO formDTO);
+
+ List icUserStatisList(UserChartFormDTO formDTO);
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
index 145ea7fc9e..87dcd4cba3 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
@@ -508,6 +508,8 @@ public interface IcResiUserService extends BaseService {
PageData listResiNonDynamic(Boolean fuzzy, String gridId, String name, String mobile, Integer pageNo, Integer pageSize);
+ PageData icUserStatisList(UserChartFormDTO formDTO);
+
/**
* 更新育龄妇女状态定时任务
* @Param
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
index ce8441c1a1..599f9e81f8 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java
@@ -189,16 +189,21 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl {
- if (StringUtils.isNotBlank(item.getFaceImg())) {
- VisitVisitorFormDTO visitor = new VisitVisitorFormDTO();
- visitor.setIdCard(item.getIdNum());
- visitor.setMobile(item.getMobile());
- visitor.setName(item.getName());
- visitor.setFaceImg(item.getFaceImg());
- dhDeviceUtil.sendAuth(visitor);
- }
- });
+ try {
+ formDTO.getMemberList().forEach(item -> {
+ if (StringUtils.isNotBlank(item.getFaceImg())) {
+ VisitVisitorFormDTO visitor = new VisitVisitorFormDTO();
+ visitor.setIdCard(item.getIdNum());
+ visitor.setMobile(item.getMobile());
+ visitor.setName(item.getName());
+ visitor.setFaceImg(item.getFaceImg());
+ dhDeviceUtil.sendAuth(visitor);
+ }
+ });
+ return new Result().ok("今日您可通过人脸设备便捷出入小区,明天及后续进入请再次登记,谢谢!");
+ } catch (Exception e) {
+ return new Result().ok("访客信息登记成功");
+ }
}
return new Result().ok("提交成功");
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java
index a73d022548..34c56f8928 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectVisitorServiceImpl.java
@@ -165,7 +165,12 @@ public class IcResiCollectVisitorServiceImpl extends BaseServiceImpl(list, new PageInfo<>(list).getTotal(), pageSize);
}
+ @Override
+ public PageData icUserStatisList(UserChartFormDTO formDTO) {
+ PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
+ //1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
+ if (StringUtils.isEmpty(formDTO.getOrgId())) {
+ //2.获取工作人员缓存信息
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
+ if (null == staffInfo) {
+ throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
+ }
+ formDTO.setOrgId(staffInfo.getAgencyId());
+ formDTO.setOrgType("agency");
+ }
+ //获取无效组织网格Id列表
+ if("agency".equals(formDTO.getOrgType())){
+ //查询组织数据时排除掉当前组织及下级无效组织列表
+ Result result = govOrgOpenFeignClient.getDelAgencyGridIdList(formDTO.getOrgId());
+ if (!result.success()) {
+ throw new EpmetException(String.format("获取当前组织及下级已删除组织、网格列表失败,组织Id->%s", formDTO.getUserId()));
+ }
+ formDTO.setAgencyIdList(result.getData().getAgencyIdList());
+ formDTO.setGridIdList(result.getData().getGridIdList());
+ }
+
+ //2.按条件查询业务数据
+ List list = baseDao.icUserStatisList(formDTO);
+ if (CollectionUtils.isEmpty(list)) {
+ return new PageData(new ArrayList<>(), NumConstant.ZERO);
+ }
+
+ //3.封装数据
+ //查询小区,楼号,网格
+ Result> gridResult = govOrgOpenFeignClient.getGridListByGridIds(list.stream().map(SearchByNameResultDTO::getGridId).collect(Collectors.toList()));
+ if (!gridResult.success()) {
+ throw new RenException(gridResult.getCode(), gridResult.getMsg());
+ }
+ Map gridMap = gridResult.getData().stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, AllGridsByUserIdResultDTO::getGridName));
+ Result> neighborHoodResult = govOrgOpenFeignClient.getListByIds(list.stream().map(SearchByNameResultDTO::getNeighborHoodId).collect(Collectors.toList()));
+ if (!neighborHoodResult.success()) {
+ throw new RenException(neighborHoodResult.getCode(), neighborHoodResult.getMsg());
+ }
+ Map neighborHoodMap = neighborHoodResult.getData().stream().collect(Collectors.toMap(IcNeighborHoodDTO::getId, IcNeighborHoodDTO::getNeighborHoodName));
+ Result> buildResult = govOrgOpenFeignClient.buildingListByIds(list.stream().map(SearchByNameResultDTO::getBuildId).collect(Collectors.toList()));
+ if (!buildResult.success()) {
+ throw new RenException(buildResult.getCode(), buildResult.getMsg());
+ }
+ Map buildMap = buildResult.getData().stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, BuildingResultDTO::getBuildingName));
+ AtomicInteger i = new AtomicInteger(NumConstant.ONE);
+ list.forEach(item -> {
+ item.setGridName(gridMap.get(item.getGridId()));
+ item.setNeighborHoodName(neighborHoodMap.get(item.getNeighborHoodId()));
+ item.setBuildNum(buildMap.get(item.getBuildId()));
+ item.setSort(i.getAndIncrement());
+ });
+
+ PageInfo pageInfo = new PageInfo<>(list);
+ return new PageData<>(list, pageInfo.getTotal());
+ }
+
+
+
/**
* 更新育龄妇女状态定时任务
*
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
index 9373743976..fe17400279 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
@@ -296,6 +296,8 @@
+
+
@@ -310,6 +312,8 @@
YSR,
TXJE,
ID_CARD,
+ MOBILE,
+ IS_TENANT as isTenant,
IFNULL(IS_VOLUNTEER,'0') AS isVolunteer,
CUSTOMER_ID,
GRID_ID
@@ -1289,4 +1293,58 @@
+
+
+