Browse Source

Merge remote-tracking branch 'origin/feature/syp_screenDataPush' into feature/syp_screenDataPush

feature/syp_points
weikai 5 years ago
parent
commit
9310552b75
  1. 20
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java
  2. 22
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/form/ScreenProjectFormDTO.java
  3. 59
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/Attachments.java
  4. 62
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectGridDailyDTO.java
  5. 66
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectOrgDailyDTO.java
  6. 50
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityGridMonthly.java
  7. 53
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityOrgMonthlyDTO.java
  8. 5
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenDataDateDTO.java
  9. 14
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenProjectDataResultDTO.java
  10. 96
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenProjectDataController.java
  11. 70
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenProjectDataDao.java
  12. 69
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenProjectDataService.java
  13. 122
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenProjectDataServiceImpl.java
  14. 67
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ScreenDataUtils.java
  15. 250
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml

20
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java

@ -173,6 +173,26 @@ public interface EpmetConstant {
*/
String EPMET_SCREEN_COLL_DEPT_CODE = "/data/report/screen/agency/areacodedict";
/**
* 事件/项目分析网格内事件
*/
String EPMET_PROJECT_GRID_DAILY = "/data/stats/project/project-grid-daily";
/**
* 事件/项目分析组织内事件
*/
String EPMET_PROJECT_ORG_DAILY = "/data/stats/project/project-org-daily";
/**
* 事件/项目分析网格内月度数量统计
*/
String EPMET_PROJECT_GRID_MONTHLY = "/data/stats/project/quantity-grid-monthly";
/**
* 事件/项目分析组织内月度数量统计
*/
String EPMET_PROJECT_ORG_MONTHLY = "/data/stats/project/quantity-org-monthly";
/**
* 行政地区编码查询 - 平阴县

22
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/form/ScreenProjectFormDTO.java

@ -0,0 +1,22 @@
package com.elink.esua.epdc.dto.screen.form;
import lombok.Data;
import java.io.Serializable;
/**
* 大屏数据统计 定时任务入参
*
* @Authorliuchuang
* @Date2020/9/15 9:18
*/
@Data
public class ScreenProjectFormDTO implements Serializable {
private static final long serialVersionUID = 4393418231149397108L;
/**
* 统计时间
*/
private String yearMonthDay;
}

59
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/Attachments.java

@ -0,0 +1,59 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author songyunpeng
* @Description
* @create 2021-02-24
*/
@Data
public class Attachments implements Serializable {
private static final long serialVersionUID = 1847661183221467699L;
/**
* 附件id
*/
private String attachmentId;
/**
* 文件所属位置(内部备注: internal 公开答复:public)
*/
private String filePlace;
/**
* 文件名
*/
private String fileName;
/**
* 附件名uuid随机生成
*/
private String attachmentName;
/**
* 附件大小 字节为单位
*/
private String attachmentSize;
/**
* 文件格式JPGPNGJPEGBMPGIFPDFPPTPPTXDOCDOCXXLSXLSXMP3WMAM4AMP4AVIMOVRMVBRMWMV
*/
private String attachmentFormat;
/**
* 文件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* url地址
*/
private String attachmentUrl;
/**
* 排序(需求确定按上传顺序排序) 0,1,2没有排序就都传0
*/
private String sort;
/**
* 语音或视频时长
*/
private String duration;
/**
* 是否删除 0未删除 1删除
*/
private String delFlag;
}

62
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectGridDailyDTO.java

@ -0,0 +1,62 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @program: esua-epdc
* @description: 事件/项目分析网格内事件
* @author: wangtong
* @create: 2021-02-23 14:39
**/
@Data
public class ProjectGridDailyDTO implements Serializable {
private static final long serialVersionUID = 3768218702569761315L;
/**
* 网格id
*/
private String gridId;
/**
*网格所属上级id如果属于跟组织下直属网格pid=0
*/
private String pid;
/**
*网格所有父级ids以英文逗号隔开; pid=0时pids=0
*/
private String pids;
/**
*截止到当前日期总项目数
*/
private Integer projectTotal;
/**
*已解决数量
*/
private Integer resolvedNum;
/**
*解决率上传小数保留小数点后4位resolvedNum/projectTotal
*/
private BigDecimal resolvedRatio;
/**
*满意率上传小数保留小数点后4位
*/
private BigDecimal goodRatio;
/**
*对当前网格内项目参与评价的总次数
*/
private Integer evaluateTotal;
/**
*对当前网格内项目参与评价且选择满意非常满意+基本满意的总次数
*/
private Integer goodTotal;
/**
*对当前网格内项目参与评价且选择不满意的总次数
*/
private Integer badTotal;
/**
*不满意率
*/
private BigDecimal badRatio;
}

66
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectOrgDailyDTO.java

@ -0,0 +1,66 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @program: esua-epdc
* @description: 事件/项目分析组织内事件
* @author: wangtong
* @create: 2021-02-23 17:25
**/
@Data
public class ProjectOrgDailyDTO implements Serializable {
private static final long serialVersionUID = -1547668582530115895L;
/**
* 街道id , 目前只上传乡街道 组织的数据即可
*/
private String orgId;
/**
* 社区级community街道:street,区县级: district,市级: city省级:province
*/
private String orgType;
/**
*当前orgId所属的上级id
*/
private String pid;
/**
*orgId所有的父级id,以英文:或者英文,隔开
*/
private String pids;
/**
*截止到当前日期总项目数
*/
private Integer projectTotal;
/**
*已解决数量
*/
private Integer resolvedNum;
/**
*解决率上传小数保留小数点后4位resolvedNum/projectTotal
*/
private BigDecimal resolvedRatio;
/**
*满意率上传小数保留小数点后4位
*/
private BigDecimal goodRatio;
/**
*对当前网格内项目参与评价的总次数
*/
private Integer evaluateTotal;
/**
*对当前网格内项目参与评价且选择满意非常满意+基本满意的总次数
*/
private Integer goodTotal;
/**
*对当前网格内项目参与评价且选择不满意的总次数
*/
private Integer badTotal;
/**
*不满意率
*/
private BigDecimal badRatio;
}

50
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityGridMonthly.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description: 事件/项目分析网格内月度数量统计
* @author: wangtong
* @create: 2021-02-23 17:49
**/
@Data
public class QuantityGridMonthly implements Serializable {
private static final long serialVersionUID = 2861815851751553406L;
/**
* 网格id
*/
private String gridId;
/**
*网格所属上级id如果属于跟组织下直属网格pid=0
*/
private String pid;
/**
*网格所有父级ids以英文逗号隔开; pid=0时pids=0
*/
private String pids;
/**
*当前网格本月新增的项目数量转项目日期在当前月份内
*/
private Integer projectIncr;
/**
*截止到当前月份累计项目总数
*/
private Integer projectTotal;
/**
*截止到当前月份累计未结项目总数
*/
private Integer unClosedTotal;
/**
*截止到当前月份累计已结项目
*/
private Integer closedTotal;
/**
*本月新增结案项目数
*/
private Integer closedIncr;
}

53
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityOrgMonthlyDTO.java

@ -0,0 +1,53 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description: 事件/项目分析组织内月度数量统计
* @author: wangtong
* @create: 2021-02-23 18:09
**/
@Data
public class QuantityOrgMonthlyDTO implements Serializable {
private static final long serialVersionUID = 2240289231500366786L;
/**
* 网格id
*/
private String orgId;
/**
*网格所属上级id如果属于跟组织下直属网格pid=0
*/
private String pid;
/**
*网格所有父级ids以英文逗号隔开; pid=0时pids=0
*/
private String pids;
/**
* 社区级community街道:street,区县级: district,市级: city省级:province
*/
private String orgType;
/**
*当前网格本月新增的项目数量转项目日期在当前月份内
*/
private Integer projectIncr;
/**
*截止到当前月份累计项目总数
*/
private Integer projectTotal;
/**
*截止到当前月份累计未结项目总数
*/
private Integer unClosedTotal;
/**
*截止到当前月份累计已结项目
*/
private Integer closedTotal;
/**
*本月新增结案项目数
*/
private Integer closedIncr;
}

5
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenDataDateDTO.java

@ -22,6 +22,11 @@ public class ScreenDataDateDTO implements Serializable {
*/
private String dateId;
/**
* 日期Id, 数据更新至yyyyMM
*/
private String monthId;
/**
* 上报数据
*/

14
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenProjectDataResultDTO.java

@ -0,0 +1,14 @@
package com.elink.esua.epdc.dto.screen.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Authorsongyunpeng
* @Date2021/2/23 17:56
*/
@Data
public class ScreenProjectDataResultDTO implements Serializable {
private static final long serialVersionUID = 8275259571095325022L;
}

96
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenProjectDataController.java

@ -0,0 +1,96 @@
package com.elink.esua.epdc.modules.screen.controller;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.screen.form.ScreenProjectFormDTO;
import com.elink.esua.epdc.modules.screen.service.ScreenProjectDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 大屏项目数据上报
*
* @Authorsongyunpeng
* @Date2021/2/23 14:06
*/
@RestController
@RequestMapping("data/stats/project")
public class ScreenProjectDataController {
@Autowired
private ScreenProjectDataService screenProjectDataService;
/**
* @Description 项目信息上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@PostMapping("uploadprojectinfo")
private Result uploadProjectInfo(@RequestBody ScreenProjectFormDTO screenProjectFormDTO){
return screenProjectDataService.uploadProjectInfo(screenProjectFormDTO);
}
/**
* @Description 项目处理进展上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@PostMapping("uploadprojectprocess")
private Result uploadProjectProcess(@RequestBody ScreenProjectFormDTO screenProjectFormDTO){
return screenProjectDataService.uploadProjectProcess(screenProjectFormDTO);
}
/**
* @describe: 事件/项目分析网格内事件
* @author wangtong
* @date 2021/2/23 14:53
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
@PostMapping("project-grid-daily")
private Result projectGridDaily(){
return screenProjectDataService.projectGridDaily();
}
/**
* @describe: 事件/项目分析组织内事件
* @author wangtong
* @date 2021/2/24 9:29
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
@PostMapping("project/project-org-daily")
private Result projectOrgDaily(){
return screenProjectDataService.projectOrgDaily();
}
/**
* @describe: 事件/项目分析网格内月度数量统计
* @author wangtong
* @date 2021/2/24 10:38
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
@PostMapping("quantity-grid-monthly")
private Result quantityGridMonthly(){
return screenProjectDataService.quantityGridMonthly();
}
/**
* @describe: 事件/项目分析组织内月度数量统计
* @author wangtong
* @date 2021/2/24 10:57
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
@PostMapping("quantity-org-monthly")
private Result quantityOrgMonthly(){
return screenProjectDataService.quantityOrgMonthly();
}
}

70
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenProjectDataDao.java

@ -0,0 +1,70 @@
package com.elink.esua.epdc.modules.screen.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.screen.form.ScreenProjectFormDTO;
import com.elink.esua.epdc.dto.screen.result.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Authorsongunpeng
* @Date2021/2/23 18:03
*/
@Mapper
public interface ScreenProjectDataDao extends BaseDao<ScreenProjectDataResultDTO> {
/**
* @Description 项目信息上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.UploadProjectInfoDTO>
*
* @param screenProjectFormDTO*/
List<UploadProjectInfoDTO> uploadProjectInfo(ScreenProjectFormDTO screenProjectFormDTO);
/**
* @Description 项目处理进展上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.UploadProjectProcessDTO>
**/
List<UploadProjectProcessDTO> uploadProjectProcess(ScreenProjectFormDTO screenProjectFormDTO);
/**
* @describe:
* @author wangtong
* @date 2021/2/23 14:55
* @params []
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ProjectGridDailyDTO>
*/
List<ProjectGridDailyDTO> selectProjectGridDaily(@Param("yesterDayDate") String yesterDayDate);
/**
* @describe: 事件/项目分析组织内事件
* @author wangtong
* @date 2021/2/24 9:30
* @params [yesterDayDate]
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ProjectOrgDailyDTO>
*/
List<ProjectOrgDailyDTO> selectProjectOrgDaily(@Param("yesterDayDate") String yesterDayDate);
/**
* @describe: 事件/项目分析网格内月度数量统计
* @author wangtong
* @date 2021/2/24 10:43
* @params [lastMonth]
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.QuantityGridMonthly>
*/
List<QuantityGridMonthly> selectQuantityGridMonthly(@Param("lastMonth") String lastMonth);
/**
* @describe: 事件/项目分析组织内月度数量统计
* @author wangtong
* @date 2021/2/24 10:58
* @params [lastMonth]
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.QuantityOrgMonthlyDTO>
*/
List<QuantityOrgMonthlyDTO> selectQuantityOrgMonthly(@Param("lastMonth") String lastMonth);
}

69
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenProjectDataService.java

@ -0,0 +1,69 @@
package com.elink.esua.epdc.modules.screen.service;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.screen.form.ScreenProjectFormDTO;
/**
* 大屏项目信息上报
*
* @Authorsongyunpeng
* @Date2020/2/23 18:04
*/
public interface ScreenProjectDataService {
/**
* @Description 项目信息上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*
* @param screenProjectFormDTO*/
Result uploadProjectInfo(ScreenProjectFormDTO screenProjectFormDTO);
/**
* @Description 项目处理进展上报
* @Author songyunpeng
* @Date 2021/2/23
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*
* @param screenProjectFormDTO*/
Result uploadProjectProcess(ScreenProjectFormDTO screenProjectFormDTO);
/**
* @describe: 事件/项目分析网格内事件
* @author wangtong
* @date 2021/2/23 14:54
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
Result projectGridDaily();
/**
* @describe: 事件/项目分析组织内事件
* @author wangtong
* @date 2021/2/24 9:29
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
Result projectOrgDaily();
/**
* @describe: 事件/项目分析网格内月度数量统计
* @author wangtong
* @date 2021/2/24 10:39
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
Result quantityGridMonthly();
/**
* @describe: 事件/项目分析组织内月度数量统计
* @author wangtong
* @date 2021/2/24 10:57
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
*/
Result quantityOrgMonthly();
}

122
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenProjectDataServiceImpl.java

@ -0,0 +1,122 @@
package com.elink.esua.epdc.modules.screen.service.impl;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.EpmetConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.screen.form.ScreenProjectFormDTO;
import com.elink.esua.epdc.dto.screen.result.*;
import com.elink.esua.epdc.modules.screen.dao.ScreenProjectDataDao;
import com.elink.esua.epdc.modules.screen.service.ScreenProjectDataService;
import com.elink.esua.epdc.utils.EpmetUtils;
import com.elink.esua.epdc.utils.ScreenDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Authorliuchuang
* @Date2020/9/9 18:05
*/
@Service
public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectDataDao, ScreenProjectDataResultDTO> implements ScreenProjectDataService {
@Autowired
private EpmetUtils epmetUtils;
@Override
public Result uploadProjectInfo(ScreenProjectFormDTO screenProjectFormDTO) {
// 数据统计
List<UploadProjectInfoDTO> data = baseDao.uploadProjectInfo(screenProjectFormDTO);
if (data.size() > 1000) {
List<List<UploadProjectInfoDTO>> formList = ScreenIndexDataServiceImpl.fixedGrouping(data, NumConstant.ONE_THOUSAND);
if (formList != null && formList.size() > NumConstant.ZERO) {
for (int i = NumConstant.ZERO; i < formList.size(); i++) {
String dataJson = "";
// 数据格式化
dataJson = ScreenDataUtils.getScreenDataDateJson(formList.get(i), false);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_INDEX_COLLECT_GRID_PARTY_MEMBER_DATA, dataJson);
}
}
} else {
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataDateJson(data, false);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_INDEX_COLLECT_GRID_PARTY_MEMBER_DATA, dataJson);
}
return new Result();
}
@Override
public Result uploadProjectProcess(ScreenProjectFormDTO screenProjectFormDTO) {
// 数据统计
List<UploadProjectProcessDTO> data = baseDao.uploadProjectProcess(screenProjectFormDTO);
if (data.size() > 1000) {
List<List<UploadProjectProcessDTO>> formList = ScreenIndexDataServiceImpl.fixedGrouping(data, NumConstant.ONE_THOUSAND);
if (formList != null && formList.size() > NumConstant.ZERO) {
for (int i = NumConstant.ZERO; i < formList.size(); i++) {
String dataJson = "";
// 数据格式化
dataJson = ScreenDataUtils.getScreenDataDateJson(formList.get(i), false);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_INDEX_COLLECT_GRID_PARTY_MEMBER_DATA, dataJson);
}
}
} else {
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataDateJson(data, false);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_INDEX_COLLECT_GRID_PARTY_MEMBER_DATA, dataJson);
}
return new Result();
}
@Override
public Result projectGridDaily() {
String yesterDayDate = ScreenDataUtils.getYesterdayDate();
// 数据统计
List<ProjectGridDailyDTO> data = baseDao.selectProjectGridDaily(yesterDayDate);
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataDateJson(data, true);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_PROJECT_GRID_DAILY, dataJson);
return new Result();
}
@Override
public Result projectOrgDaily() {
String yesterDayDate = ScreenDataUtils.getYesterdayDate();
// 数据统计
List<ProjectOrgDailyDTO> data = baseDao.selectProjectOrgDaily(yesterDayDate);
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataDateJson(data, true);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_PROJECT_ORG_DAILY, dataJson);
return new Result();
}
@Override
public Result quantityGridMonthly() {
String lastMonth = ScreenDataUtils.getLastMonthDate();
// 数据统计
List<QuantityGridMonthly> data = baseDao.selectQuantityGridMonthly(lastMonth);
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataMonthJson(data, null,true);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_PROJECT_GRID_MONTHLY, dataJson);
return new Result();
}
@Override
public Result quantityOrgMonthly() {
String lastMonth = ScreenDataUtils.getLastMonthDate();
// 数据统计
List<QuantityOrgMonthlyDTO> data = baseDao.selectQuantityOrgMonthly(lastMonth);
// 数据格式化
String dataJson = ScreenDataUtils.getScreenDataMonthJson(data, null,true);
// 数据上报
epmetUtils.httpPost(EpmetConstant.EPMET_PROJECT_ORG_MONTHLY, dataJson);
return new Result();
}
}

67
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ScreenDataUtils.java

@ -6,7 +6,10 @@ import com.elink.esua.epdc.dto.screen.result.ScreenDataDateDTO;
import com.elink.esua.epdc.dto.screen.result.ScreenDataMonthDTO;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 大屏上报数据JSON处理
@ -36,6 +39,70 @@ public class ScreenDataUtils {
return JSONObject.toJSONString(dateDto);
}
/**
* @describe: 获取昨日日期yyyy-MM-dd
* @author wangtong
* @date 2021/2/23 15:02
* @params []
* @return java.lang.String
*/
public static String getYesterdayDate(){
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = new GregorianCalendar();
calendar.setTime(new Date());
calendar.add(calendar.DATE,-1);
return simpleDateFormat.format(calendar.getTime());
}
/**
* @describe: 获取上个月日期yyyy-MM
* @author wangtong
* @date 2021/2/24 10:40
* @params []
* @return java.lang.String
*/
public static String getLastMonthDate(){
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM");
Calendar calendar = new GregorianCalendar();
calendar.setTime(new Date());
calendar.add(calendar.MONTH,-1);
return simpleDateFormat.format(calendar.getTime());
}
/**
* 数据更新至事件为天类型
*
* @param data 数据
* @param isFirst 是否首次
* @return java.lang.String
* @author wangtong
* @since 2020/9/10 15:55
*/
public static String getScreenDataYesterdayDateJson(Object data, Boolean isFirst,String yesterDayDate) {
ScreenDataDateDTO dateDto = new ScreenDataDateDTO();
dateDto.setIsFirst(isFirst);
dateDto.setDateId(yesterDayDate.replace("-", ""));
dateDto.setDataList(data);
return JSONObject.toJSONString(dateDto);
}
/**
* @describe: 数据更新至事件为月类型
* @author wangtong
* @date 2021/2/24 15:17
* @params [data, isFirst, yesterDayDate]
* @return java.lang.String
*/
public static String getScreenDataLastMonthJson(Object data, Boolean isFirst,String lastMonth) {
ScreenDataDateDTO dateDto = new ScreenDataDateDTO();
dateDto.setIsFirst(isFirst);
dateDto.setMonthId(lastMonth.replace("-", ""));
dateDto.setDataList(data);
return JSONObject.toJSONString(dateDto);
}
/**
* 数据更新至事件为月类型
*

250
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml

@ -0,0 +1,250 @@
<?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.elink.esua.epdc.modules.screen.dao.ScreenProjectDataDao">
<resultMap type="com.elink.esua.epdc.dto.screen.result.UploadProjectInfoDTO" id="uploadprojectinfoMap">
<result property="orgType" column="orgType"/>
<result property="orgId" column="orgId"/>
<result property="orgName" column="orgName"/>
<result property="parentId" column="parentId"/>
<result property="allParentIds" column="allParentIds"/>
<result property="projectId" column="projectId"/>
<result property="linkName" column="linkName"/>
<result property="linkMobile" column="linkMobile"/>
<result property="projectTitle" column="projectTitle"/>
<result property="projectContent" column="projectContent"/>
<result property="projectCreateTime" column="projectCreateTime"/>
<result property="projectAddress" column="projectAddress"/>
<result property="latitude" column="latitude"/>
<result property="longitude" column="longitude"/>
<result property="projectStatusCode" column="projectStatusCode"/>
<result property="allCategoryName" column="allCategoryName"/>
<result property="projectImgUrl" column="projectImgUrl"/>
<result property="closeCaseTime" column="closeCaseTime"/>
<collection property="projectImgUrl" ofType="java.lang.String">
<result property="projectImgUrl" column="projectImgUrl"/>
</collection>
</resultMap>
<select id="uploadProjectInfo" resultMap="uploadprojectinfoMap">
select
'grid' as orgType,
t1.GRID_ID as orgId,
t1.GRID as orgName,
SUBSTRING_INDEX(t1.PARENT_DEPT_IDS,',',-1) as parentId,
PARENT_DEPT_IDS as allParentIds,
t1.ID as projectId,
t1.NICK_NAME as linkName,
t1.MOBILE as linkMobile,
LEFT(t1.ITEM_CONTENT,50)projectTitle,
t1.ITEM_CONTENT as projectContent,
t1.DISTRIBUTE_TIME as projectCreateTime,
t1.ISSUE_ADDRESS as projectAddress,
t1.ISSUE_LATITUDE as latitude,
t1.ISSUE_LONGITUDE as longitude,
case t1.ITEM_STATE WHEN 0 THEN 'pending' WHEN 5 THEN 'closed' WHEN '10' THEN 'closed_case' ELSE '' END AS projectStatusCode,
t1.CATEGORY_FULL_NAME as allCategoryName,
t2.IMG_URL as projectImgUrl,
t3.CREATED_TIME as closeCaseTime
from (select * from(select * from esua_epdc_events.epdc_item where DEL_FLAG = '0'
and GRID_ID not in ( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
order by ID)a group by a.EVENT_ID) t1
left join esua_epdc_events.epdc_img t2 on t1.ID = t2.REFERENCE_ID and t1.DEL_FLAG = '0'
left join esua_epdc_events.epdc_item_handle_process t3 on t3.ITEM_ID = t1.ID and t3.DEL_FLAG = '0' and t3.STATE = 10
where date_format(t1.UPDATED_TIME, '%Y-%m-%d') >= STR_TO_DATE(#{yearMonthDay}, '%Y-%m-%d')
and date_format(t1.UPDATED_TIME, '%Y-%m-%d') &lt;= date_sub(curdate(),interval 1 day)
</select>
<resultMap type="com.elink.esua.epdc.dto.screen.result.UploadProjectProcessDTO" id="uploadprojectprocessMap">
<result property="processId" column="processId"/>
<result property="projectId" column="projectId"/>
<result property="transferDeptName" column="transferDeptName"/>
<result property="transferDeptIds" column="transferDeptIds"/>
<result property="handlerName" column="handlerName"/>
<result property="handlerId" column="handlerId"/>
<result property="handlerType" column="handlerType"/>
<result property="operation" column="operation"/>
<result property="publicReply" column="publicReply"/>
<result property="internalRemark" column="internalRemark"/>
<result property="processTime" column="processTime"/>
<collection property="attachments" ofType="com.elink.esua.epdc.dto.screen.result.Attachments">
<result property="attachmentId" column="attachmentId"/>
<result property="filePlace" column="filePlace"/>
<result property="attachmentUrl" column="attachmentUrl"/>
<result property="delFlag" column="DEL_FLAG"/>
</collection>
</resultMap>
<select id="uploadProjectProcess"
resultMap="uploadprojectprocessMap">
select t.*,
t3.ID as attachmentId,
case t3.IMG_TYPE when 'itemHandle' then 'internal' when 'itemOutHandle' then 'public' else '' End as filePlace,
t3.IMG_URL as attachmentUrl,
t3.DEL_FLAG
from (
select
t1.ID as processId,
t1.ITEM_ID as projectId,
group_concat(t4.DEPT_NAME)transferDeptName,
group_concat(t4.DEPT_ID)transferDeptIds,
t1.HANDLER_DEPT as handlerName,
t1.HANDLER_DEPT_ID as handlerId,
'unknown' as handlerType,
case
when (t4.ID is not null and t1.STATE = 0 and t1.CREATED_TIME != (select min(t.CREATED_TIME) from esua_epdc_events.epdc_item_handle_process t where t.DEL_FLAG = '0' and t1.ITEM_ID = t.ITEM_ID group by t.ITEM_ID)) then 'transfer'
when (t4.ID is null and t1.STATE = 0 and t1.CREATED_TIME != (select min(t.CREATED_TIME) from esua_epdc_events.epdc_item_handle_process t where t.DEL_FLAG = '0' and t1.ITEM_ID = t.ITEM_ID group by t.ITEM_ID)) then 'response'
when (t1.STATE = 0 and t1.CREATED_TIME = (select min(t.CREATED_TIME) from esua_epdc_events.epdc_item_handle_process t where t.DEL_FLAG = '0' and t1.ITEM_ID = t.ITEM_ID group by t.ITEM_ID)) then 'created'
when t1.STATE = 5 then 'close'
when t1.STATE = 10 then 'closed_case'
else '' END as operation,
t1.OUT_HANDLE_ADVICE as publicReply,
t1.HANDLE_ADVICE as internalRemark,
t1.CREATED_TIME as processTime
from esua_epdc_events.epdc_item_handle_process t1
left join esua_epdc_events.epdc_item_dept t4 on t4.ITEM_HANDLE_ID = t1.ID and t4.DEL_FLAG = '0'
where date_format(t1.UPDATED_TIME, '%Y-%m-%d') >= STR_TO_DATE(#{yearMonthDay}, '%Y-%m-%d')
and date_format(t1.UPDATED_TIME, '%Y-%m-%d') &lt;= date_sub(curdate(),interval 1 day) and t1.DEL_FLAG = '0'
and t1.HANDLER_DEPT_ID not in ( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
group by t1.ID
)t
left join esua_epdc_events.epdc_img t3 on t3.REFERENCE_ID = t.processId and t3.DEL_FLAG = '0'
order by t3.CREATED_TIME
</select>
<select id="selectProjectGridDaily" resultType="com.elink.esua.epdc.dto.screen.result.ProjectGridDailyDTO">
SELECT sd.`id` AS gridId,
sd.pid AS pid,
sd.pids AS pids,
count(it.id) as projectTotal,
count((it.ITEM_STATE=5 or it.ITEM_STATE=10) or null) as resolvedNum,
ifnull(format(round(count((it.ITEM_STATE=5 or it.ITEM_STATE=10) or null)/count(it.id),4),4),'0.0000') as
resolvedRatio,
ifnull(format(round(count((it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null)/count(it.id),4),4),'0.0000')
as goodRatio,
count( (it.EVALUATION_SCORE=0 or it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null) as evaluateTotal,
count( (it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null) as goodTotal,
count( it.EVALUATION_SCORE=0 or null) as badTotal,
ifnull(format(round(count(it.EVALUATION_SCORE=0 or null)/count( (it.EVALUATION_SCORE=0 or it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null),4),4),'0.0000') as badRatio
FROM `esua_epdc_admin`.`sys_dept` sd
left join (select lin.* from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m-%d' ) &lt;= #{yesterDayDate}
group by lin.EVENT_ID) it on it.GRID_ID=sd.id
WHERE sd.`del_flag`= 0
AND sd.`type_key`= 'grid_party'
AND sd.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
group by sd.id
</select>
<select id="selectProjectOrgDaily" resultType="com.elink.esua.epdc.dto.screen.result.ProjectOrgDailyDTO">
SELECT st.`id` AS orgId,
'street' as orgType,
st.pid AS pid,
st.pids AS pids,
count(it.id) as projectTotal,
count((it.ITEM_STATE=5 or it.ITEM_STATE=10) or null) as resolvedNum,
ifnull(format(round(count((it.ITEM_STATE=5 or it.ITEM_STATE=10) or null)/count(it.id),4),4),'0.0000') as resolvedRatio,
ifnull(format(round(count((it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null)/count(it.id),4),4),'0.0000') as goodRatio,
count( (it.EVALUATION_SCORE=0 or it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null) as evaluateTotal,
count( (it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null) as goodTotal,
count( it.EVALUATION_SCORE=0 or null) as badTotal,
ifnull(format(round(count(it.EVALUATION_SCORE=0 or null)/count( (it.EVALUATION_SCORE=0 or it.EVALUATION_SCORE=1 or it.EVALUATION_SCORE=2) or null),4),4),'0.0000') as badRatio
FROM `esua_epdc_admin`.`sys_dept` sd
left join `esua_epdc_admin`.`sys_dept` co on co.id=sd.pid
left join `esua_epdc_admin`.`sys_dept` st on st.id=co.pid
left join (select lin.* from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m-%d' ) &lt;= #{yesterDayDate}
group by lin.EVENT_ID) it on it.GRID_ID=sd.id
WHERE sd.`del_flag`= 0
AND sd.`type_key`= 'grid_party'
AND sd.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
group by st.id
</select>
<select id="selectQuantityGridMonthly"
resultType="com.elink.esua.epdc.dto.screen.result.QuantityGridMonthly">
SELECT sd.`id` AS gridId,
sd.pid AS pid,
sd.pids AS pids,
ifnull(it.projectIncr,0) as projectIncr,
ifnull(it.closedIncr,0) as closedIncr,
ifnull(li2.projectTotal,0) as projectTotal,
ifnull(li2.unClosedTotal,0) as unClosedTotal,
ifnull(li2.closedTotal,0) as closedTotal
FROM `esua_epdc_admin`.`sys_dept` sd
left join (select li.GRID_ID,
count(li.id) as projectIncr,
count((li.ITEM_STATE= 5 or li.ITEM_STATE = 10) or null) as closedIncr
from (select lin.*
from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m' ) = #{lastMonth}
group by lin.EVENT_ID)li
group by li.GRID_ID)it on it.GRID_ID=sd.id
left join (select al.GRID_ID,
count(al.id) as projectTotal,
count(al.ITEM_STATE= 0 or null) as unClosedTotal,
count((al.ITEM_STATE= 5 or al.ITEM_STATE = 10) or null) as closedTotal
from (select lin.*
from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m' ) &lt;= #{lastMonth}
group by lin.EVENT_ID)al
group by al.GRID_ID)li2 on li2.GRID_ID=sd.id
WHERE sd.`del_flag`= 0
AND sd.`type_key`= 'grid_party'
AND sd.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
group by sd.id
</select>
<select id="selectQuantityOrgMonthly"
resultType="com.elink.esua.epdc.dto.screen.result.QuantityOrgMonthlyDTO">
SELECT st.`id` AS orgId,
'street' as orgType,
st.pid AS pid,
st.pids AS pids,
ifnull(it.projectIncr,0) as projectIncr,
ifnull(it.closedIncr,0) as closedIncr,
ifnull(li2.projectTotal,0) as projectTotal,
ifnull(li2.unClosedTotal,0) as unClosedTotal,
ifnull(li2.closedTotal,0) as closedTotal
FROM `esua_epdc_admin`.`sys_dept` sd
left join `esua_epdc_admin`.`sys_dept` co on co.id=sd.pid
left join `esua_epdc_admin`.`sys_dept` st on st.id=co.pid
left join (select li.GRID_ID,
count(li.id) as projectIncr,
count((li.ITEM_STATE= 5 or li.ITEM_STATE = 10) or null) as closedIncr
from (select lin.*
from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m' ) = #{lastMonth}
group by lin.EVENT_ID)li
group by li.GRID_ID)it on it.GRID_ID=sd.id
left join (select al.GRID_ID,
count(al.id) as projectTotal,
count(al.ITEM_STATE= 0 or null) as unClosedTotal,
count((al.ITEM_STATE= 5 or al.ITEM_STATE = 10) or null) as closedTotal
from (select lin.*
from (select * from esua_epdc_events.epdc_item order by id) lin
where lin.DEL_FLAG=0
AND date_format( lin.CREATED_TIME, '%Y-%m' ) &lt;= #{lastMonth}
group by lin.EVENT_ID)al
group by al.GRID_ID)li2 on li2.GRID_ID=sd.id
WHERE sd.`del_flag`= 0
AND sd.`type_key`= 'grid_party'
AND sd.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
group by st.id
</select>
</mapper>
Loading…
Cancel
Save