From f8e208c1857b5a4829b8b9a2a01706b062288d8d Mon Sep 17 00:00:00 2001 From: Jackwang Date: Thu, 25 Feb 2021 10:30:04 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BA=8B=E4=BB=B6/=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=86=E6=9E=90=E3=80=91-=E3=80=90=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E3=80=91-=EF=BC=88=E7=8E=8B=E7=AB=A5?= =?UTF-8?q?=EF=BC=89-2021/02/25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/constant/EpmetConstant.java | 20 ++ .../dto/screen/form/ScreenProjectFormDTO.java | 22 ++ .../epdc/dto/screen/result/Attachments.java | 59 +++++ .../screen/result/ProjectGridDailyDTO.java | 62 +++++ .../dto/screen/result/ProjectOrgDailyDTO.java | 66 +++++ .../screen/result/QuantityGridMonthly.java | 50 ++++ .../screen/result/QuantityOrgMonthlyDTO.java | 53 ++++ .../dto/screen/result/ScreenDataDateDTO.java | 5 + .../result/ScreenProjectDataResultDTO.java | 14 + .../screen/result/UploadProjectInfoDTO.java | 106 ++++++++ .../result/UploadProjectProcessDTO.java | 69 +++++ .../ScreenProjectDataController.java | 96 +++++++ .../screen/dao/ScreenProjectDataDao.java | 70 +++++ .../service/ScreenProjectDataService.java | 69 +++++ .../impl/ScreenProjectDataServiceImpl.java | 122 +++++++++ .../esua/epdc/utils/ScreenDataUtils.java | 67 +++++ .../mapper/screen/ScreenProjectDataDao.xml | 250 ++++++++++++++++++ 17 files changed, 1200 insertions(+) create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/form/ScreenProjectFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/Attachments.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectGridDailyDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectOrgDailyDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityGridMonthly.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityOrgMonthlyDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenProjectDataResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectInfoDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectProcessDTO.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenProjectDataController.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenProjectDataDao.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenProjectDataService.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenProjectDataServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java index 33a4519d..11a8155c 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/EpmetConstant.java +++ b/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"; + /** * 行政地区编码查询 - 平阴县 diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/form/ScreenProjectFormDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/form/ScreenProjectFormDTO.java new file mode 100644 index 00000000..4caf8e0a --- /dev/null +++ b/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; + +/** + * 大屏数据统计 定时任务入参 + * + * @Author:liuchuang + * @Date:2020/9/15 9:18 + */ +@Data +public class ScreenProjectFormDTO implements Serializable { + private static final long serialVersionUID = 4393418231149397108L; + + /** + * 统计时间 + */ + private String yearMonthDay; + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/Attachments.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/Attachments.java new file mode 100644 index 00000000..9fea2077 --- /dev/null +++ b/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; + /** + * 文件格式(JPG、PNG、JPEG、BMP、GIF、PDF、PPT、PPTX、DOC、DOCX、XLS、XLSX、MP3、WMA、M4A、MP4、AVI、MOV、RMVB、RM、WMV) + */ + 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; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectGridDailyDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectGridDailyDTO.java new file mode 100644 index 00000000..f8c77843 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectOrgDailyDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ProjectOrgDailyDTO.java new file mode 100644 index 00000000..774ef617 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityGridMonthly.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityGridMonthly.java new file mode 100644 index 00000000..03076314 --- /dev/null +++ b/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; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityOrgMonthlyDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/QuantityOrgMonthlyDTO.java new file mode 100644 index 00000000..147e7c88 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenDataDateDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenDataDateDTO.java index 457e86d3..3f618e5e 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenDataDateDTO.java +++ b/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; + /** * 上报数据 */ diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenProjectDataResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenProjectDataResultDTO.java new file mode 100644 index 00000000..71e7ae55 --- /dev/null +++ b/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; + +/** + * @Author:songyunpeng + * @Date:2021/2/23 17:56 + */ +@Data +public class ScreenProjectDataResultDTO implements Serializable { + private static final long serialVersionUID = 8275259571095325022L; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectInfoDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectInfoDTO.java new file mode 100644 index 00000000..c49fe115 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectInfoDTO.java @@ -0,0 +1,106 @@ +package com.elink.esua.epdc.dto.screen.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author songyunpeng + * @Description + * @create 2021-02-23 + */ +@Data +public class UploadProjectInfoDTO implements Serializable { + private static final long serialVersionUID = 1847661183221467699L; + + /** + * 组织类别 agency:组织;部门:department;网格:grid + */ + private String orgType; + + /** + * 网格所属的组织id + */ + private String orgId; + + /** + * 网格所属的组织名称 + */ + private String orgName; + + /** + * 上级组织Id + */ + private String parentId; + + /** + * 所有上级ID,用英文逗号分开 + */ + private String allParentIds; + + /** + * 项目id + */ + private String projectId; + + /** + * 项目标题 + */ + private String projectTitle; + + /** + * 事件上报时间 + */ + private String projectCreateTime; + + /** + * 上报人姓名 + */ + private String linkName; + + /** + * 上报人电话 + */ + private String linkMobile; + + /** + * 项目内容 + */ + private String projectContent; + + /** + * 项目上报地址 + */ + private String projectAddress; + + /** + * 所属类别 用-连接 + */ + private String allCategoryName; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 事件状态key 0:处理中 1:已结案 + */ + private String projectStatusCode; + + /** + * 议题图片地址 + */ + private String projectImgUrl; + + /** + * 结案日期 + */ + private String closeCaseTime; + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectProcessDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectProcessDTO.java new file mode 100644 index 00000000..87114f62 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/UploadProjectProcessDTO.java @@ -0,0 +1,69 @@ +package com.elink.esua.epdc.dto.screen.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author songyunpeng + * @Description + * @create 2021-02-23 + */ +@Data +public class UploadProjectProcessDTO implements Serializable { + private static final long serialVersionUID = 1847661183221467699L; + + /** + * 进展id + */ + private String processId; + /** + * 项目id + */ + private String projectId; + /** + * 被流转的部门名称,英文逗号隔开 + */ + private String transferDeptName; + /** + * 被流转部门id,英文逗号隔开 + */ + private String transferDeptIds; + /** + * 处理方名称 + */ + private String handlerName; + /** + * 处理方id + */ + private String handlerId; + /** + * 处理方类型 未知unknown,机关agency,部门department,网格grid + */ + private String handlerType; + /** + * 所属机关(11:22:33) + */ + private String orgIdPath; + /** + * 关闭:close; 回应 response,结案closed_case,退回return,部门流转transfer,创建项目created + */ + private String operation; + /** + * 公开回复 + */ + private String publicReply; + /** + * 内部备注 + */ + private String internalRemark; + /** + * 处理时间 + */ + private String processTime; + /** + * 附件 + */ + private List attachments; +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenProjectDataController.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenProjectDataController.java new file mode 100644 index 00000000..cf40b1e6 --- /dev/null +++ b/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; + +/** + * 大屏项目数据上报 + * + * @Author:songyunpeng + * @Date:2021/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(); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenProjectDataDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenProjectDataDao.java new file mode 100644 index 00000000..86b8953a --- /dev/null +++ b/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; + +/** + * @Author:songunpeng + * @Date:2021/2/23 18:03 + */ +@Mapper +public interface ScreenProjectDataDao extends BaseDao { + + /** + * @Description 项目信息上报 + * @Author songyunpeng + * @Date 2021/2/23 + * @Param [] + * @return java.util.List + * + * @param screenProjectFormDTO*/ + List uploadProjectInfo(ScreenProjectFormDTO screenProjectFormDTO); + /** + * @Description 项目处理进展上报 + * @Author songyunpeng + * @Date 2021/2/23 + * @Param [] + * @return java.util.List + **/ + List uploadProjectProcess(ScreenProjectFormDTO screenProjectFormDTO); + /** + * @describe: + * @author wangtong + * @date 2021/2/23 14:55 + * @params [] + * @return java.util.List + */ + List selectProjectGridDaily(@Param("yesterDayDate") String yesterDayDate); + + /** + * @describe: 【事件/项目分析】组织内事件 + * @author wangtong + * @date 2021/2/24 9:30 + * @params [yesterDayDate] + * @return java.util.List + */ + List selectProjectOrgDaily(@Param("yesterDayDate") String yesterDayDate); + + /** + * @describe: 【事件/项目分析】网格内月度数量统计 + * @author wangtong + * @date 2021/2/24 10:43 + * @params [lastMonth] + * @return java.util.List + */ + List selectQuantityGridMonthly(@Param("lastMonth") String lastMonth); + + /** + * @describe: 【事件/项目分析】组织内月度数量统计 + * @author wangtong + * @date 2021/2/24 10:58 + * @params [lastMonth] + * @return java.util.List + */ + List selectQuantityOrgMonthly(@Param("lastMonth") String lastMonth); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenProjectDataService.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenProjectDataService.java new file mode 100644 index 00000000..004eac25 --- /dev/null +++ b/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; + +/** + * 大屏项目信息上报 + * + * @Author:songyunpeng + * @Date:2020/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(); +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenProjectDataServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenProjectDataServiceImpl.java new file mode 100644 index 00000000..5ca2500e --- /dev/null +++ b/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; + +/** + * @Author:liuchuang + * @Date:2020/9/9 18:05 + */ +@Service +public class ScreenProjectDataServiceImpl extends BaseServiceImpl implements ScreenProjectDataService { + @Autowired + private EpmetUtils epmetUtils; + + @Override + public Result uploadProjectInfo(ScreenProjectFormDTO screenProjectFormDTO) { + // 数据统计 + List data = baseDao.uploadProjectInfo(screenProjectFormDTO); + if (data.size() > 1000) { + List> 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 data = baseDao.uploadProjectProcess(screenProjectFormDTO); + if (data.size() > 1000) { + List> 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 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 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 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 data = baseDao.selectQuantityOrgMonthly(lastMonth); + // 数据格式化 + String dataJson = ScreenDataUtils.getScreenDataMonthJson(data, null,true); + // 数据上报 + epmetUtils.httpPost(EpmetConstant.EPMET_PROJECT_ORG_MONTHLY, dataJson); + return new Result(); + } +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ScreenDataUtils.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ScreenDataUtils.java index 690da72a..5fadea69 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/utils/ScreenDataUtils.java +++ b/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); + } + /** * 数据更新至事件为月类型 * diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml new file mode 100644 index 00000000..152be7aa --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +