Browse Source

Merge remote-tracking branch 'origin/dev_import' into dev_import

# Conflicts:
#	epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java
dev
sunyuchao 4 years ago
parent
commit
5731e7adab
  1. 15
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/DingDingRobotConstant.java
  2. 27
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingTextBriefNessFormDTO.java
  3. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
  4. 24
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java
  5. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java
  6. 17
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallbackFactory.java
  7. 6
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  8. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  9. 19
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/GridLivelyExcel.java
  10. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  11. 97
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  12. 15
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java
  13. 7
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java
  14. 12
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java
  15. 6
      epmet-module/epmet-job/epmet-job-server/pom.xml
  16. 26
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/controller/DemoController.java
  17. 68
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ExportGridLiveResTask.java
  18. 51
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java
  19. 91
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
  20. 33
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java

15
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/DingDingRobotConstant.java

@ -0,0 +1,15 @@
package com.epmet.commons.tools.constant;
public interface DingDingRobotConstant {
/**
* 尹作梅测试用
*/
String YZM_TEST_URL="https://oapi.dingtalk.com/robot/send?access_token=249c5f49006cf14b37f9c3bc502ede34c16926a5ac5a0deeb9c9b4be735c0daf";
String YZM_TEST_SECRET="SECa03f447d67c62d924b5ae52dd9a7ddd9147d32c1d43f8cb43449f505444bdc6b";
/**
* EPMET V3 产品研发群
*/
String V3_ROBOT_URL="https://oapi.dingtalk.com/robot/send?access_token=75e9ab857536f3018baa09009646876edbd263d07521a1a22eedfc3852623614";
String V3_ROBOT_SECRET="SECdc8d3fb6780faa919f38fd43783f76d111255036c3b5bdcbc086dff023ee84d5";
}

27
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/DingTextBriefNessFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.commons.tools.dto.form;
import com.dingtalk.api.request.OapiRobotSendRequest;
import lombok.Data;
/**
* 钉钉机器人发送文本通知@手机号简参
*/
@Data
public class DingTextBriefNessFormDTO {
/* {
"msgtype":"text",
"text":{
"content":"我就是我, @15764229697 是不同的烟火"
},
"at":{
"atMobiles": [
"15764229697"
],
"isAtAll":false
}
}*/
private String msgtype;
private OapiRobotSendRequest.Text text;
private OapiRobotSendRequest.At at;
}

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java

@ -305,6 +305,7 @@ public class HttpClientManager {
*/
public Result<String> sendAlarmMsg(String content) {
Long timestamp = System.currentTimeMillis();
//生产环境报警群:重要消息通知
String url = "https://oapi.dingtalk.com/robot/send?access_token=c40055ed85e45fdaafea00f3218928794262ff15163e09ad5c89764433b69806";
String secret = "SEC220eafdcb39ab5dd6cffa9f11b0e5de7178ddac9812d40fdceb6b1dda2963186";

24
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java

@ -0,0 +1,24 @@
package com.epmet.dataaggre.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.feign.impl.DataAggregatorOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = DataAggregatorOpenFeignClientFallbackFactory.class)
// @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory= DataAggregatorOpenFeignClientFallbackFactory.class,url = "localhost:8114")
public interface DataAggregatorOpenFeignClient {
/**
* 定时任务导出网格活跃统计表
* @param form
* @return
*/
@PostMapping(value = "data/aggregator/org/export-send-msg")
Result exportGridLiveRes(@RequestBody GridLivelyFormDTO form);
}

19
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java

@ -0,0 +1,19 @@
package com.epmet.dataaggre.feign.impl;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
public class DataAggregatorOpenFeignClientFallback implements DataAggregatorOpenFeignClient {
/**
* 定时任务导出网格活跃统计表
* @param form
* @return
*/
@Override
public Result exportGridLiveRes(GridLivelyFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "pcworkRecordListExportSendMsg",form);
}
}

17
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallbackFactory.java

@ -0,0 +1,17 @@
package com.epmet.dataaggre.feign.impl;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class DataAggregatorOpenFeignClientFallbackFactory implements FallbackFactory<DataAggregatorOpenFeignClient> {
private DataAggregatorOpenFeignClientFallback fallback = new DataAggregatorOpenFeignClientFallback();
@Override
public DataAggregatorOpenFeignClient create(Throwable throwable) {
return null;
}
}

6
epmet-module/data-aggregator/data-aggregator-server/pom.xml

@ -110,6 +110,12 @@
</exclusion>-->
</exclusions>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-oss-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java

@ -27,7 +27,6 @@ import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums;
import com.epmet.dataaggre.service.AggreGridService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dto.form.patrol.PcworkRecordListFormDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
@ -402,4 +401,15 @@ public class GovOrgController {
govOrgService.grdiLivelyExport(response, formDTO);
}
/**
* 定时任务调用本方法查询网格活跃度统计结果生成excel,上传oss.发送钉钉excel.
* @param formDTO
* @return
*/
@PostMapping("export-send-msg")
public Result pcworkRecordListExportSendMsg(@RequestBody GridLivelyFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GridLivelyFormDTO.Grid.class);
govOrgService.pcworkRecordListExportSendMsg(formDTO);
return new Result();
}
}

19
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/GridLivelyExcel.java

@ -29,40 +29,57 @@ import lombok.Data;
*/
@Data
public class GridLivelyExcel {
@ExcelProperty("组织ID")
@ExcelIgnore
private String agencyId;
//组织名称
@Excel(name = "组织名称",width = 15)
@ExcelProperty("组织名称")
@ColumnWidth(15)
private String agencyName;
//组织下所有网格总数
@Excel(name = "网格总数",width = 15)
@ExcelProperty("网格总数")
@ColumnWidth(15)
private Integer gridSumNum;
//活跃网格数
@Excel(name = "活跃网格数",width = 15)
@ExcelProperty("活跃网格数")
@ColumnWidth(15)
private Integer gridLivelyNum;
//活跃网格数占比
@Excel(name = "活跃网格数占比",width = 15)
@ExcelProperty("活跃网格数占比")
@ColumnWidth(15)
private String gridLivelyRatio;
//正常运行网格数
@Excel(name = "正常运行网格数",width = 15)
@ExcelProperty("正常运行网格数")
@ColumnWidth(15)
private Integer gridOrdinaryNum;
//正常运行网格数占比
@Excel(name = "正常运行网格数占比",width = 15)
@ExcelProperty("正常运行网格数占比")
@ColumnWidth(15)
private String gridOrdinaryRatio;
//僵尸网格数
@Excel(name = "僵尸网格数",width = 15)
@ExcelProperty("僵尸网格数")
@ColumnWidth(15)
private Integer gridLazyNum;
//僵尸网格数占比
@Excel(name = "僵尸网格数占比",width = 15)
@ExcelProperty("僵尸网格数占比")
@ColumnWidth(15)
private String gridLazyRatio;

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -182,4 +182,10 @@ public interface GovOrgService {
* @Description 查询组织的直属下级组织下网格活跃度统计--文件导出
**/
void grdiLivelyExport(HttpServletResponse response, GridLivelyFormDTO formDTO);
/**
* @Author sun
* @Description 查询组织的直属下级组织下网格活跃度统计--文件导出
**/
void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO);
}

97
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -1,18 +1,27 @@
package com.epmet.dataaggre.service.govorg.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.DingDingRobotConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govorg.*;
import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO;
@ -28,13 +37,23 @@ import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.feign.OssFeignClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@ -67,6 +86,8 @@ public class GovOrgServiceImpl implements GovOrgService {
private EpmetUserService epmetUserService;
@Autowired
private DataStatsService dataStatsService;
@Autowired
private OssFeignClient ossFeignClient;
/**
* @param staffId
@ -690,4 +711,80 @@ public class GovOrgServiceImpl implements GovOrgService {
return name.toString();
}
/**
* @Author sun
* @Description 查询组织的直属下级组织下网格活跃度统计--文件导出
**/
@Override
public void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO) {
List<GridLivelyExcel> data = ConvertUtils.sourceToTarget(grdiLively(formDTO), GridLivelyExcel.class);
if(CollectionUtils.isEmpty(data)){
log.warn(String.format("网格员活跃度统计数据查询为空,入参【%s】", JSON.toJSONString(formDTO)));
return;
}
ExportParams exportParams = new ExportParams();
String sheetName = excelSheetName(formDTO);
exportParams.setSheetName(sheetName);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams,
GridLivelyExcel.class, data);
// 文件名
String resultDescFileName = sheetName.concat(".xls");
FileItemFactory factory = new DiskFileItemFactory(16, null);
FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, resultDescFileName);
OutputStream os = null;
Result<UploadImgResultDTO> uploadResult = null;
try {
os = fileItem.getOutputStream();
workbook.write(os);
uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
} catch (Exception e) {
String errormsg = ExceptionUtils.getErrorStackTrace(e);
log.warn("【网格活跃度统计】上传错误描述文件异常:{}", errormsg);
} finally {
try {
os.close();
} catch (IOException e) {
String errormsg = ExceptionUtils.getErrorStackTrace(e);
log.warn("【网格活跃度统计】上传错误描述文件关闭输出流:{}", errormsg);
}
try {
fileItem.delete();
} catch (Exception e) {
String errormsg = ExceptionUtils.getErrorStackTrace(e);
log.warn("【网格活跃度统计】上传错误描述文件删除临时文件:{}", errormsg);
}
}
log.warn(String.format("网格员活跃度统计数据查询为空,返参【%s】", JSON.toJSONString(uploadResult)));
if (uploadResult == null || !uploadResult.success()) {
log.warn("【网格活跃度统计】调用OSS上传结果描述文件失败");
} else {
//EPMETV3群机器人
String secret = DingDingRobotConstant.V3_ROBOT_SECRET;
String url = DingDingRobotConstant.V3_ROBOT_URL;
// String secret = DingDingRobotConstant.YZM_TEST_SECRET;
// String url = DingDingRobotConstant.YZM_TEST_URL;
DingTextBriefNessFormDTO dingTalkTextMsg=new DingTextBriefNessFormDTO();
dingTalkTextMsg.setMsgtype("text");
//小雷哥手机号:18660295251,
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
at.setAtMobiles(Arrays.asList("18660295251"));
at.setIsAtAll(false);
dingTalkTextMsg.setAt(at);
//文本方式发送
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent("网格活跃度统计: \n" +
"起止时间: " + formDTO.getStartTime().concat(StrConstant.UNDER_LINE).concat(formDTO.getEndTime()) + "\n" +
"文件下载地址: " + uploadResult.getData().getUrl() + "\n"+
"请查收@18660295251");
dingTalkTextMsg.setText(text);
HttpClientManager.getInstance().sendDingMsg(JSON.toJSONString(dingTalkTextMsg), url, secret);
}
}
}

15
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java

@ -12,9 +12,7 @@ import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.service.ImportTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("import-task")
@ -70,4 +68,15 @@ public class ImportTaskController {
return new Result();
}
/**
* 检查是否有正在执行的任务
* @param bizType 业务类型非必填不传则任意一种导入正在执行都会返回true
* @return
*/
@GetMapping("processing-check")
public Result processingTaskCheck(@RequestParam(value = "biz_type", required = false) String bizType) {
Boolean r = importTaskService.processingTaskCheck(bizType);
return new Result().ok(r);
}
}

7
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ImportTaskService.java

@ -44,4 +44,11 @@ public interface ImportTaskService {
* @return
*/
PageData<ImportTaskCommonResultDTO> page(ImportTaskCommonFormDTO param);
/**
* 检查是否有正在执行的任务
* @param bizType
* @return
*/
Boolean processingTaskCheck(String bizType);
}

12
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ImportTaskServiceImpl.java

@ -14,6 +14,7 @@ import com.epmet.entity.ImportTaskEntity;
import com.epmet.service.ImportTaskService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -108,4 +109,15 @@ public class ImportTaskServiceImpl implements ImportTaskService {
});
return new PageData<>(list,page.getTotal());
}
@Override
public Boolean processingTaskCheck(String bizType) {
LambdaQueryWrapper<ImportTaskEntity> query = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(bizType)) {
query.eq(ImportTaskEntity::getBizType, bizType);
}
query.eq(ImportTaskEntity::getProcessStatus, ImportTaskConstants.PROCESS_STATUS_PROCESSING);
return importRecordDao.selectCount(query) > 0;
}
}

6
epmet-module/epmet-job/epmet-job-server/pom.xml

@ -102,6 +102,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>data-aggregator-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

26
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/controller/DemoController.java

@ -8,12 +8,16 @@
package com.epmet.controller;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* 定时任务
@ -27,6 +31,8 @@ public class DemoController {
@Autowired
private DataStatisticalOpenFeignClient client;
@Autowired
private DataAggregatorOpenFeignClient dataAggregatorFeignClient;
@GetMapping("testAlarm")
public void testAlarm() {
@ -35,4 +41,18 @@ public class DemoController {
//}
client.agencyGridIssueStats(null);
}
@PostMapping("exportGridLiveRes")
public Result exportGridLiveRes(@RequestParam("params") String params) {
if(StringUtils.isBlank(params)){
return new Result();
}
GridLivelyFormDTO formDTO = new GridLivelyFormDTO();
if (StringUtils.isNotBlank(params)) {
formDTO = JSON.parseObject(params, GridLivelyFormDTO.class);
}
ValidatorUtils.validateEntity(formDTO,GridLivelyFormDTO.Grid.class);
return dataAggregatorFeignClient.exportGridLiveRes(formDTO);
}
}

68
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ExportGridLiveResTask.java

@ -0,0 +1,68 @@
package com.epmet.task;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 每个星期一的凌晨5点执行查询网格活跃度统计导出excel上传oss, 发送钉钉@小雷哥
*/
@Slf4j
@Component("exportGridLiveResTask")
public class ExportGridLiveResTask implements ITask {
@Autowired
private DataAggregatorOpenFeignClient dataAggregatorFeignClient;
@Override
public void run(String params) {
if(StringUtils.isBlank(params)){
return;
}
GridLivelyFormDTO formDTO = new GridLivelyFormDTO();
if (StringUtils.isNotBlank(params)) {
formDTO = JSON.parseObject(params, GridLivelyFormDTO.class);
}
//默认获取当前日期的上一个自然周
if (StringUtils.isBlank(formDTO.getStartTime()) || StringUtils.isBlank(formDTO.getEndTime())) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
//上周日的日期
Date yesterday = calendar.getTime();
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Calendar c = new GregorianCalendar();
//这里设置一周开始时间是星期一
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(yesterday);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
//获取当前自然周的起始时间
String beginTime = format.format(c.getTime());
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);
//当前自然周的截止时间
String endTime = format.format(c.getTime());
formDTO.setStartTime(beginTime);
formDTO.setEndTime(endTime);
}
ValidatorUtils.validateEntity(formDTO,GridLivelyFormDTO.Grid.class);
Result result = dataAggregatorFeignClient.exportGridLiveRes(formDTO);
if(!result.success()){
log.error(String.format("exportGridLiveResTask网格活跃度统计导出失败,入参:%s",params));
}
}
}

51
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java

@ -80,10 +80,34 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
ImportGeneralDTO dto = ConvertUtils.sourceToTarget(data, ImportGeneralDTO.class);
dto.setNum(num);
dto.setCustomerId(formDTO.getCustomerId());
if (StringUtils.isBlank(data.getAgencyName()) || StringUtils.isBlank(data.getGridName()) || StringUtils.isBlank(data.getNeighborHoodName()) ||
StringUtils.isBlank(data.getBuildingName()) || StringUtils.isBlank(data.getType()) || null == data.getTotalUnitNum()){
if(StringUtils.isBlank(data.getAgencyName())){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, "所属组织的值未填写");
return;
}
if(StringUtils.isBlank(data.getGridName())){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写");
return;
}
if(StringUtils.isBlank(data.getNeighborHoodName())){
nums.add(num);
disposeErrorMsg(info,"小区名称的值未填写");
return;
}
if(StringUtils.isBlank(data.getBuildingName())){
nums.add(num);
disposeErrorMsg(info,"楼栋名称的值未填写");
return;
}
if(StringUtils.isBlank(data.getType())){
nums.add(num);
disposeErrorMsg(info,"楼栋类型的值未填写");
return;
}
if(null == data.getTotalUnitNum()){
nums.add(num);
disposeErrorMsg(info,"单元数的值未填写");
return;
}
// 应产品要求添加
@ -199,7 +223,9 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
}else {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(neighborHoodGeneralDTO.getGridId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
return;
}
// 1.排除网格名不一样但小区名一样 2.排除组织不一样,网格一样,小区一样
if ((!gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName())) ||
@ -213,7 +239,9 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
dto.setAgencyId(neighborHoodGeneralDTO.getAgencyId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -232,7 +260,9 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
gridName = null == gridName ? icBuildingDao.selectGridNameById(formDTO.getOrgId()) : gridName;
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
@ -244,7 +274,9 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
dto.setAgencyId(gridInfo.getPid());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -285,7 +317,9 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
dto.setAgencyId(formDTO.getOrgId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -363,6 +397,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
String s = neighborHoodService.orgGeneralImport(errorInfos, BuildingErrorInfoModel.class);
input.setResultDescFilePath(s);
} catch (IOException e) {
epmetCommonServiceOpenFeignClient.finishImportTask(input);
e.printStackTrace();
}
}

91
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java

@ -90,12 +90,64 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
ImportGeneralDTO dto = ConvertUtils.sourceToTarget(data, ImportGeneralDTO.class);
dto.setNum(num);
dto.setCustomerId(formDTO.getCustomerId());
if (StringUtils.isBlank(data.getAgencyName()) || StringUtils.isBlank(data.getGridName()) || StringUtils.isBlank(data.getNeighborHoodName()) ||
StringUtils.isBlank(data.getBuildingName()) || StringUtils.isBlank(data.getHouseType()) || StringUtils.isBlank(data.getPurpose()) ||
StringUtils.isBlank(data.getRentFlagString()) || StringUtils.isBlank(data.getOwnerIdCard()) || StringUtils.isBlank(data.getOwnerName()) ||
StringUtils.isBlank(data.getOwnerPhone()) || StringUtils.isBlank(data.getDoorName()) || null == data.getBuildingUnit()){
if(StringUtils.isBlank(data.getAgencyName())){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.HOUSE_ERROR);
disposeErrorMsg(info, "所属组织的值未填写");
return;
}
if(StringUtils.isBlank(data.getGridName())){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写");
return;
}
if(StringUtils.isBlank(data.getNeighborHoodName())){
nums.add(num);
disposeErrorMsg(info,"所属小区的值未填写");
return;
}
if(StringUtils.isBlank(data.getBuildingName())){
nums.add(num);
disposeErrorMsg(info,"所属楼栋的值未填写");
return;
}
if(StringUtils.isBlank(data.getHouseType())){
nums.add(num);
disposeErrorMsg(info, "房屋类型的值未填写");
return;
}
if(StringUtils.isBlank(data.getPurpose())){
nums.add(num);
disposeErrorMsg(info, "房屋用途的值未填写");
return;
}
if(StringUtils.isBlank(data.getRentFlagString())){
nums.add(num);
disposeErrorMsg(info, "是否出租的值未填写");
return;
}
if(StringUtils.isBlank(data.getOwnerIdCard())){
nums.add(num);
disposeErrorMsg(info, "房主身份证的值未填写");
return;
}
if(StringUtils.isBlank(data.getOwnerName())){
nums.add(num);
disposeErrorMsg(info, "房主姓名的值未填写");
return;
}
if(StringUtils.isBlank(data.getOwnerPhone())){
nums.add(num);
disposeErrorMsg(info, "房主电话的值未填写");
return;
}
if(StringUtils.isBlank(data.getDoorName())){
nums.add(num);
disposeErrorMsg(info, "门牌号的值未填写");
return;
}
if(null == data.getBuildingUnit()){
nums.add(num);
disposeErrorMsg(info, "单元号的值未填写");
return;
}
// 应产品要求
@ -218,7 +270,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
}else {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(buildingGeneralDTO.getGridId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
// 排除 1、小区名不一样&&楼栋名一样 2、网格名不一样&&小区名一样&&楼名一样 3、组织名不一样&&网格名一样&&小区名一样&&楼名一样
if ((!buildingGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName()) && buildingGeneralDTO.getBuildingName().equals(dto.getBuildingName()))
@ -234,7 +288,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
dto.setAgencyId(buildingGeneralDTO.getAgencyId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -270,7 +326,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
}else {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(neighborHoodGeneralDTO.getGridId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
// 1.排除网格名不一样但小区名一样 2.排除组织不一样,网格一样,小区一样
if ((!gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName())) ||
@ -284,7 +342,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
dto.setAgencyId(neighborHoodGeneralDTO.getAgencyId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -303,7 +363,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
gridName = null == gridName ? icBuildingDao.selectGridNameById(formDTO.getOrgId()) : gridName;
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
@ -315,7 +377,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
dto.setAgencyId(gridInfo.getPid());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -356,7 +420,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
dto.setAgencyId(formDTO.getOrgId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.HOUSE_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -489,6 +555,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
String s = neighborHoodService.orgGeneralImport(errorInfos, HouseErrorInfoModel.class);
input.setResultDescFilePath(s);
} catch (IOException e) {
epmetCommonServiceOpenFeignClient.finishImportTask(input);
e.printStackTrace();
}
}

33
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java

@ -89,6 +89,26 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
return;
}
if(StringUtils.isBlank(data.getAgencyName())){
nums.add(num);
disposeErrorMsg(info, "所属组织的值未填写");
return;
}
if(StringUtils.isBlank(data.getGridName())){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写");
return;
}
if(StringUtils.isBlank(data.getNeighborHoodName())){
nums.add(num);
disposeErrorMsg(info,"小区名称的值未填写");
return;
}
if(StringUtils.isBlank(data.getNeighborHoodName())){
nums.add(num);
disposeErrorMsg(info,"详细地址的值未填写");
return;
}
ImportGeneralDTO dto = ConvertUtils.sourceToTarget(data, ImportGeneralDTO.class);
dto.setNum(num);
dto.setCustomerId(formDTO.getCustomerId());
@ -187,7 +207,9 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
gridName = null == gridName ? icBuildingDao.selectGridNameById(formDTO.getOrgId()) : gridName;
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("查询网格失败...");
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
@ -199,7 +221,9 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
dto.setAgencyId(gridInfo.getPid());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -239,7 +263,9 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
dto.setAgencyId(formDTO.getOrgId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
dto.setPids(agencyInfo.getPids());
@ -323,6 +349,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
String s = neighborHoodService.orgGeneralImport(errorInfos, NeighborHoodErrorInfoModel.class);
input.setResultDescFilePath(s);
} catch (IOException e) {
epmetCommonServiceOpenFeignClient.finishImportTask(input);
e.printStackTrace();
}
}

Loading…
Cancel
Save