From 655f92c533678b83aa6b0d9afa42790eb7407c2a Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Sep 2020 17:11:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...FormDTO.java => ExtractOriginFormDTO.java} | 4 +- .../extract/form/ExtractScreenFormDTO.java | 21 ++++ .../feign/DataStatisticalOpenFeignClient.java | 10 +- ...ataStatisticalOpenFeignClientFallBack.java | 8 +- .../com/epmet/controller/DemoController.java | 9 +- .../FactOriginExtractController.java | 48 ++++---- .../ScreenExtractDailyController.java | 10 +- .../epmet/entity/stats/DimAgencyEntity.java | 13 +-- .../todata/FactOriginExtractService.java | 6 +- .../FactOriginTopicMainDailyService.java | 4 +- .../extract/todata/GroupExtractService.java | 9 +- .../extract/todata/IssueExtractService.java | 16 ++- .../extract/todata/ProjectExtractService.java | 24 ++-- .../todata/ProjectPeriodExtractService.java | 10 +- .../impl/FactOriginExtractServiceImpl.java | 12 +- .../FactOriginTopicMainDailyServiceImpl.java | 8 +- .../todata/impl/GroupExtractServiceImpl.java | 8 +- .../todata/impl/IssueExtractServiceImpl.java | 28 ++--- .../impl/ProjectExtractServiceImpl.java | 68 +++++------ .../impl/ProjectPeriodExtractServiceImpl.java | 10 +- .../toscreen/PublicPartExtractService.java | 6 +- .../toscreen/ScreenExtractService.java | 8 +- .../impl/PublicPartExtractServiceImpl.java | 107 ++++++++++++++++-- .../impl/ScreenExtractServiceImpl.java | 30 ++--- .../stats/FactIssueGridMonthlyService.java | 69 +++-------- ...评价指标体系算法需求-备注.xlsx | Bin 59391 -> 63943 bytes .../service/FactOriginExtractTaskService.java | 4 +- .../FactOriginExtractTaskServiceImpl.java | 4 +- .../impl/ScreenExtractTaskServiceImpl.java | 8 +- .../com/epmet/task/FactOriginExtractTask.java | 26 ++--- 30 files changed, 325 insertions(+), 263 deletions(-) rename epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/{ExtractFormDTO.java => ExtractOriginFormDTO.java} (87%) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractScreenFormDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractOriginFormDTO.java similarity index 87% rename from epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java rename to epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractOriginFormDTO.java index 0b392c0053..2eb18b8a35 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractOriginFormDTO.java @@ -7,11 +7,13 @@ import javax.validation.constraints.NotBlank; import java.io.Serializable; /** + * desc: 从业务数据抽取到统计库 dto + * * @Author zxc * @DateTime 2020/9/16 6:01 下午 */ @Data -public class ExtractFormDTO implements Serializable { +public class ExtractOriginFormDTO implements Serializable { private static final long serialVersionUID = -6180252151765854242L; diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractScreenFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractScreenFormDTO.java new file mode 100644 index 0000000000..4bcd4fce65 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractScreenFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * desc: 抽取大屏数据dto + * + * @author LiuJanJun + * @date 2020/9/25 2:32 下午 + */ +@Data +public class ExtractScreenFormDTO implements Serializable { + + private static final long serialVersionUID = 7659170440875719461L; + private String customerId; + private String monthId; + private String dateId; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 520b6bee09..166ffc241d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -3,8 +3,8 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; -import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.issue.form.IssueJobFromDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -202,7 +202,7 @@ public interface DataStatisticalOpenFeignClient { * @author: jianjun liu */ @PostMapping(value = "/data/stats/factorigin/extractall") - Result factOriginExtractAll(@RequestBody(required = false) ExtractFormDTO formDTO); + Result factOriginExtractAll(@RequestBody(required = false) ExtractOriginFormDTO formDTO); /** * ˚ @@ -222,11 +222,11 @@ public interface DataStatisticalOpenFeignClient { Result initAllEIDims(); /** - * @Description 抽取数据到大屏【天】 - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 抽取数据到大屏【天】 * @author zxc * @date 2020/9/24 10:15 上午 */ @PostMapping(value = "/data/stats/screenextract/extractdailyall") - Result extractDailyAll(@RequestBody(required = false) ExtractFormDTO extractFormDTO); + Result extractDailyAll(@RequestBody(required = false) ExtractOriginFormDTO extractOriginFormDTO); } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index 8c5e2eafff..4e7611762d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -4,8 +4,8 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; -import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.issue.form.IssueJobFromDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -192,7 +192,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp * @author: jianjun liu */ @Override - public Result factOriginExtractAll(ExtractFormDTO formDTO) { + public Result factOriginExtractAll(ExtractOriginFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "factOriginExtractAll", formDTO); } @@ -214,7 +214,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp } @Override - public Result extractDailyAll(ExtractFormDTO extractFormDTO) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "extractDailyAll",extractFormDTO); + public Result extractDailyAll(ExtractOriginFormDTO extractOriginFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "extractDailyAll", extractOriginFormDTO); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 6139427c1d..da39652186 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -16,7 +16,7 @@ import com.epmet.dao.stats.DimCustomerDao; import com.epmet.dao.stats.DimDateDao; import com.epmet.dao.stats.DimMonthDao; import com.epmet.dto.AgencySubTreeDto; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -37,14 +37,13 @@ import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectLogDail import com.epmet.service.evaluationindex.extract.todata.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.extract.toscreen.GovernRankDataExtractService; import com.epmet.service.evaluationindex.extract.toscreen.PartyBaseInfoService; -import com.epmet.service.evaluationindex.extract.toscreen.ScreenCentralZoneDataAbsorptionService; import com.epmet.service.evaluationindex.extract.toscreen.PartyGuideService; +import com.epmet.service.evaluationindex.extract.toscreen.ScreenCentralZoneDataAbsorptionService; import com.epmet.service.evaluationindex.indexcal.*; import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimCustomerPartymemberService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -530,7 +529,7 @@ public class DemoController { @PostMapping("inserttopicorigin") public Result topicDataCleaning(@RequestParam("customerId") String customerId, @RequestParam("dateId")String dateId) { if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)) { - ExtractFormDTO param = new ExtractFormDTO(); + ExtractOriginFormDTO param = new ExtractOriginFormDTO(); param.setDateId(dateId); param.setCustomerId(customerId); Boolean aBoolean = factOriginTopicMainDailyService.topicCleaning(param); @@ -541,7 +540,7 @@ public class DemoController { List dimDateEntityList= dimDateDao.selectList(wrapper); for(DimCustomerEntity customerEntity:customerEntityList){ for(DimDateEntity dateEntity:dimDateEntityList) { - ExtractFormDTO param = new ExtractFormDTO(); + ExtractOriginFormDTO param = new ExtractOriginFormDTO(); param.setDateId(dateEntity.getId()); param.setCustomerId(customerEntity.getId()); factOriginTopicMainDailyService.topicCleaning(param); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java index 10a938fb7a..643a909604 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java @@ -3,7 +3,7 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.evaluationindex.extract.todata.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,69 +38,69 @@ public class FactOriginExtractController { /** * desc:抽取业务数据到统计库 * - * @param extractFormDTO 默认统计前一天 + * @param extractOriginFormDTO 默认统计前一天 * @return */ @PostMapping("extractall") - public Result extractAll(@RequestBody ExtractFormDTO extractFormDTO) { - if (StringUtils.isNotBlank(extractFormDTO.getStartDate()) && StringUtils.isNotBlank(extractFormDTO.getEndDate())) { - List daysBetween = DateUtils.getDaysBetween(extractFormDTO.getStartDate(), extractFormDTO.getEndDate()); + public Result extractAll(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + if (StringUtils.isNotBlank(extractOriginFormDTO.getStartDate()) && StringUtils.isNotBlank(extractOriginFormDTO.getEndDate())) { + List daysBetween = DateUtils.getDaysBetween(extractOriginFormDTO.getStartDate(), extractOriginFormDTO.getEndDate()); for (int i = 0; i < daysBetween.size(); i++) { String dateDimId = daysBetween.get(i); - extractFormDTO.setDateId(dateDimId); - factOriginExtractService.extractAll(extractFormDTO); + extractOriginFormDTO.setDateId(dateDimId); + factOriginExtractService.extractAll(extractOriginFormDTO); } } else { - factOriginExtractService.extractAll(extractFormDTO); + factOriginExtractService.extractAll(extractOriginFormDTO); } return new Result(); } /** - * @param extractFormDTO + * @param extractOriginFormDTO * @Description 议题抽取(main) * @author zxc * @date 2020/9/15 2:02 下午 */ @PostMapping("issueextractmain") - public Result issueExtractMain(@RequestBody ExtractFormDTO extractFormDTO) { - ValidatorUtils.validateEntity(extractFormDTO, ExtractFormDTO.ExtractForm.class); - issueExtractService.issueExtractMain(extractFormDTO); + public Result issueExtractMain(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + ValidatorUtils.validateEntity(extractOriginFormDTO, ExtractOriginFormDTO.ExtractForm.class); + issueExtractService.issueExtractMain(extractOriginFormDTO); return new Result(); } /** - * @param extractFormDTO + * @param extractOriginFormDTO * @Description 议题抽取(log) * @author zxc * @date 2020/9/16 9:41 上午 */ @PostMapping("issueextractlog") - public Result issueExtractLog(@RequestBody ExtractFormDTO extractFormDTO) { - ValidatorUtils.validateEntity(extractFormDTO, ExtractFormDTO.ExtractForm.class); - issueExtractService.issueExtractLog(extractFormDTO); + public Result issueExtractLog(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + ValidatorUtils.validateEntity(extractOriginFormDTO, ExtractOriginFormDTO.ExtractForm.class); + issueExtractService.issueExtractLog(extractOriginFormDTO); return new Result(); } /** - * @param extractFormDTO + * @param extractOriginFormDTO * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 话题 (fact_origin_topic_main_daily 话题主表_日统计 fact_origin_topic_log_daily 话题明细_日统计) * @Date 2020/9/15 13:39 **/ @PostMapping("topic") - public Result topicDataCleaning(@RequestBody ExtractFormDTO extractFormDTO) { - if (StringUtils.isNotBlank(extractFormDTO.getCustomerId()) && StringUtils.isNotBlank(extractFormDTO.getDateId())) { - factOriginTopicMainDailyService.topicCleaning(extractFormDTO); + public Result topicDataCleaning(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + if (StringUtils.isNotBlank(extractOriginFormDTO.getCustomerId()) && StringUtils.isNotBlank(extractOriginFormDTO.getDateId())) { + factOriginTopicMainDailyService.topicCleaning(extractOriginFormDTO); } return new Result(); } @PostMapping("project") - public Result projectData(@RequestBody ExtractFormDTO extractFormDTO) { - projectExtractService.saveOriginProjectDaily(extractFormDTO); + public Result projectData(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + projectExtractService.saveOriginProjectDaily(extractOriginFormDTO); return new Result(); } @@ -112,7 +112,7 @@ public class FactOriginExtractController { * @date 2020.09.20 16:11 **/ @PostMapping("projectorgperiodcleanning") - public Result projectOrgPeriodCleaning(@RequestBody ExtractFormDTO param) { + public Result projectOrgPeriodCleaning(@RequestBody ExtractOriginFormDTO param) { projectExtractService.extractProjectPeriodData(param); return new Result(); } @@ -125,7 +125,7 @@ public class FactOriginExtractController { * @date 2020.09.20 16:11 **/ @PostMapping("groupdatacleaning") - public Result groupDataCleaning(@RequestBody ExtractFormDTO param) { + public Result groupDataCleaning(@RequestBody ExtractOriginFormDTO param) { groupExtractService.extractGroupData(param); return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenExtractDailyController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenExtractDailyController.java index 2f81eeadc2..34e8c7ccde 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenExtractDailyController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenExtractDailyController.java @@ -1,7 +1,7 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -21,14 +21,14 @@ public class ScreenExtractDailyController { private ScreenExtractService screenExtractService; /** - * @Description 抽取数据到大屏【天】 - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 抽取数据到大屏【天】 * @author zxc * @date 2020/9/24 10:15 上午 */ @PostMapping("extractdailyall") - public Result screenExtractDaily(@RequestBody ExtractFormDTO extractFormDTO){ - screenExtractService.extractDailyAll(extractFormDTO); + public Result screenExtractDaily(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { + screenExtractService.extractDailyAll(extractOriginFormDTO); return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java index 28b471f0a2..411c633990 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java @@ -18,7 +18,6 @@ package com.epmet.entity.stats; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -69,12 +68,12 @@ public class DimAgencyEntity extends BaseEpmetEntity { private String allParentName; /** - * 机关级别(社区级:community, -乡(镇、街道)级:street, -区县级: district, -市级: city -省级:province) - */ + * 机关级别(社区级:community, + * 乡(镇、街道)级:street, + * 区县级: district, + * 市级: city + * 省级:province) + */ private String level; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginExtractService.java index 9966b96619..807fb5067f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginExtractService.java @@ -1,6 +1,6 @@ package com.epmet.service.evaluationindex.extract.todata; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; /** * @author zhaoqifeng @@ -12,7 +12,7 @@ public interface FactOriginExtractService { /** * desc:抽取所有业务数据到统计库 * - * @param extractFormDTO + * @param extractOriginFormDTO */ - void extractAll(ExtractFormDTO extractFormDTO); + void extractAll(ExtractOriginFormDTO extractOriginFormDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java index df34ed1249..d217e4d3eb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java @@ -18,7 +18,7 @@ package com.epmet.service.evaluationindex.extract.todata; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.result.CreateTopicCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; @@ -40,7 +40,7 @@ public interface FactOriginTopicMainDailyService extends BaseService> diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/GroupExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/GroupExtractService.java index 092402fd8c..f4d59942e4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/GroupExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/GroupExtractService.java @@ -1,11 +1,10 @@ package com.epmet.service.evaluationindex.extract.todata; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import java.util.List; -import com.epmet.dto.extract.form.ExtractFormDTO; - /** * @Desc 业务数据抽取 - 组相关 * @Author wangc @@ -24,11 +23,11 @@ public interface GroupExtractService { /** - * @Description 业务抽取 - 小组数据 * @param param * @return + * @Description 业务抽取 - 小组数据 * @author wangc * @date 2020.09.18 21:07 - **/ - void extractGroupData(ExtractFormDTO param); + **/ + void extractGroupData(ExtractOriginFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java index 24bf2ddfce..b169556f73 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/IssueExtractService.java @@ -1,13 +1,11 @@ package com.epmet.service.evaluationindex.extract.todata; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.result.GridProjectCountResultDTO; import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.dto.extract.result.ShiftProjectCountResultDTO; -import java.util.List; - import java.util.List; import java.util.Map; @@ -18,20 +16,20 @@ import java.util.Map; public interface IssueExtractService { /** - * @Description 议题抽取(main) - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 议题抽取(main) * @author zxc * @date 2020/9/15 2:02 下午 */ - Boolean issueExtractMain(ExtractFormDTO extractFormDTO); + Boolean issueExtractMain(ExtractOriginFormDTO extractOriginFormDTO); /** - * @Description 议题抽取(log) - * @param extractFormDTO + * @Description 议题抽取(log) + * @param extractOriginFormDTO * @author zxc * @date 2020/9/16 9:41 上午 */ - Boolean issueExtractLog(ExtractFormDTO extractFormDTO); + Boolean issueExtractLog(ExtractOriginFormDTO extractOriginFormDTO); /** * @Description 查询网格议题总数,网格人均议题数目 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectExtractService.java index 972914d5fc..f21e8b3976 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectExtractService.java @@ -1,9 +1,7 @@ package com.epmet.service.evaluationindex.extract.todata; -import com.epmet.dto.extract.form.ExtractFormDTO; - -import java.util.Date; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; /** * @author zhaoqifeng @@ -16,19 +14,19 @@ public interface ProjectExtractService { /** * 项目主表、明细日统计 * - * @param extractFormDTO + * @param extractOriginFormDTO * @return * @author zhaoqifeng * @date 2020/9/15 14:38 */ - void saveOriginProjectDaily(ExtractFormDTO extractFormDTO); + void saveOriginProjectDaily(ExtractOriginFormDTO extractOriginFormDTO); - /** - * @Description 抽取项目节点历时逻辑 - * @param param - * @return - * @author wangc - * @date 2020.09.17 14:05 - **/ - void extractProjectPeriodData(ExtractFormDTO param); + /** + * @param param + * @return + * @Description 抽取项目节点历时逻辑 + * @author wangc + * @date 2020.09.17 14:05 + **/ + void extractProjectPeriodData(ExtractOriginFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectPeriodExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectPeriodExtractService.java index f3117a7e40..b30c421b53 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectPeriodExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/ProjectPeriodExtractService.java @@ -1,6 +1,6 @@ package com.epmet.service.evaluationindex.extract.todata; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; /** * @Desc 业务数据抽取 - 项目节点历时 @@ -8,14 +8,14 @@ import com.epmet.dto.extract.form.ExtractFormDTO; * @DateTime 2020/9/14 5:07 下午 */ public interface ProjectPeriodExtractService { - + /** - * @Description 抽取项目节点历时逻辑 * @param param * @return + * @Description 抽取项目节点历时逻辑 * @author wangc * @date 2020.09.17 14:05 - **/ - void extractProjectPeriodData(ExtractFormDTO param); + **/ + void extractProjectPeriodData(ExtractOriginFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java index 14a2b1c351..381f6d230d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java @@ -3,7 +3,7 @@ package com.epmet.service.evaluationindex.extract.todata.impl; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.evaluationindex.extract.todata.*; import com.epmet.service.stats.DimCustomerService; import com.epmet.util.DimIdGenerator; @@ -44,9 +44,9 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { @Override - public void extractAll(ExtractFormDTO extractFormDTO) { - String dateId = extractFormDTO.getDateId(); - String customerId = extractFormDTO.getCustomerId(); + public void extractAll(ExtractOriginFormDTO extractOriginFormDTO) { + String dateId = extractOriginFormDTO.getDateId(); + String customerId = extractOriginFormDTO.getCustomerId(); if (StringUtils.isBlank(dateId)) { dateId = DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1)); } @@ -65,7 +65,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { String finalDateId = dateId; customerIds.forEach(cId -> { - ExtractFormDTO param = new ExtractFormDTO(); + ExtractOriginFormDTO param = new ExtractOriginFormDTO(); param.setCustomerId(cId); param.setDateId(finalDateId); log.debug("extractAll param:{}", JSON.toJSONString(param)); @@ -74,7 +74,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { } - private void submitJob(ExtractFormDTO param) { + private void submitJob(ExtractOriginFormDTO param) { threadPool.submit(() -> { try { groupExtractService.extractGroupData(param); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java index 5d87cc5afc..e55104f01c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java @@ -28,7 +28,7 @@ import com.epmet.constant.DimObjectActionConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginTopicMainDailyDao; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.result.CreateTopicCountResultDTO; import com.epmet.dto.org.GridInfoDTO; import com.epmet.dto.topic.TopicOriginInfoDTO; @@ -77,9 +77,9 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl topicOriginInfoList = topicService.queryTopicOriginInfoList(customerId, dateId); if (CollectionUtils.isEmpty(topicOriginInfoList)) { log.info(String.format("customerId%s,dateId%s,doesn't have any topic operation record", customerId, dateId)); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java index 0545cb5345..00e277e27d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java @@ -4,7 +4,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; @@ -66,17 +66,17 @@ public class GroupExtractServiceImpl implements GroupExtractService { /** - * @Description 业务抽取 - 小组祥光 * @param param * @return + * @Description 业务抽取 - 小组祥光 * @author wangc * @date 2020.09.18 21:07 **/ @Override - public void extractGroupData(ExtractFormDTO param) { + public void extractGroupData(ExtractOriginFormDTO param) { int count = factOriginGroupMainDailyDao.selectIfExist(param.getCustomerId()); - if(StringUtils.isBlank(param.getDateId())){ + if (StringUtils.isBlank(param.getDateId())) { Date yesterday = DateUtils.addDateDays(new Date(), -1); SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); param.setDateId(format.format(yesterday)); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java index cd765f9199..a222e22cbb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/IssueExtractServiceImpl.java @@ -11,7 +11,7 @@ import com.epmet.constant.ExtractConstant; import com.epmet.dao.evaluationindex.extract.FactOriginIssueLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao; import com.epmet.dao.stats.DimAgencyDao; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueLogDailyFormDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; @@ -54,19 +54,19 @@ public class IssueExtractServiceImpl implements IssueExtractService { private FactOriginIssueLogDailyDao issueLogDailyDao; /** - * @Description 议题抽取 - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 议题抽取 * @author zxc * @date 2020/9/15 2:02 下午 */ @Override - public Boolean issueExtractMain(ExtractFormDTO extractFormDTO) { - String customerId = extractFormDTO.getCustomerId(); - String dateId = extractFormDTO.getDateId(); + public Boolean issueExtractMain(ExtractOriginFormDTO extractOriginFormDTO) { + String customerId = extractOriginFormDTO.getCustomerId(); + String dateId = extractOriginFormDTO.getDateId(); // 1. 议题信息查询 List listResult = issueService.selectIssueInfo(customerId, dateId); List result = new ArrayList<>(); - if (CollectionUtils.isEmpty(listResult)){ + if (CollectionUtils.isEmpty(listResult)) { log.warn("issueExtractMain selectIssueInfo return empty,customerId:{},dateId:{}", customerId, dateId); return true; } @@ -151,24 +151,24 @@ public class IssueExtractServiceImpl implements IssueExtractService { } /** - * @Description 议题抽取(log) - * @param extractFormDTO + * @Description 议题抽取(log) + * @param extractOriginFormDTO * @author zxc * @date 2020/9/16 9:41 上午 */ @Override - public Boolean issueExtractLog(ExtractFormDTO extractFormDTO) { - String customerId = extractFormDTO.getCustomerId(); - String dateId = extractFormDTO.getDateId(); + public Boolean issueExtractLog(ExtractOriginFormDTO extractOriginFormDTO) { + String customerId = extractOriginFormDTO.getCustomerId(); + String dateId = extractOriginFormDTO.getDateId(); List result = new ArrayList<>(); // 1. 查询议题process List listResult = issueService.selectIssueProcessInfo(customerId, dateId); - if (CollectionUtils.isEmpty(listResult)){ + if (CollectionUtils.isEmpty(listResult)) { log.warn("issueExtractMain issueExtractLog return empty,customerId:{},dateId:{}", customerId, dateId); return true; } Map> groupByIssue = listResult.stream().collect(Collectors.groupingBy(IssueProcessInfoResultDTO::getIssueId)); - groupByIssue.forEach((issueId,process) -> { + groupByIssue.forEach((issueId, process) -> { List descByCreateTime = process.stream().sorted(Comparator.comparing(IssueProcessInfoResultDTO::getCreateTime).reversed()).collect(Collectors.toList()); issueMainDailyDao.updateIssueStatus(issueId,descByCreateTime.get(NumConstant.ZERO).getActionCode()); }); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java index f526570e9f..a9552ed3b8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java @@ -7,7 +7,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.ProjectDTO; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.form.WorkDayFormDTO; import com.epmet.dto.issue.IssueDTO; import com.epmet.dto.party.PartyMemberDTO; @@ -71,20 +71,20 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { @Autowired private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; - @Override - public void saveOriginProjectDaily(ExtractFormDTO extractFormDTO) { - String dateString = extractFormDTO.getDateId(); - String customerId = extractFormDTO.getCustomerId(); - List list = new LinkedList<>(); - //获取已关闭项目列表 - List closedList = projectProcessService.getClosedProjectList(customerId, dateString); - List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); - List finishOrgList= projectProcessService.getFinishOrg(customerId, dateString); - if (null != closedList && !closedList.isEmpty()) { - List closeProjects = - pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { - FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity(); - entity.setId(process.getId()); + @Override + public void saveOriginProjectDaily(ExtractOriginFormDTO extractOriginFormDTO) { + String dateString = extractOriginFormDTO.getDateId(); + String customerId = extractOriginFormDTO.getCustomerId(); + List list = new LinkedList<>(); + //获取已关闭项目列表 + List closedList = projectProcessService.getClosedProjectList(customerId, dateString); + List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); + List finishOrgList = projectProcessService.getFinishOrg(customerId, dateString); + if (null != closedList && !closedList.isEmpty()) { + List closeProjects = + pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { + FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity(); + entity.setId(process.getId()); entity.setProjectStatus("close"); entity.setCreatedTime(DateUtils.stringToDate(pending.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD)); entity.setUpdatedTime(process.getUpdatedTime()); @@ -312,25 +312,25 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { } } - /** - * @Description 抽取项目节点历时逻辑 - * @param param - * @return - * @author wangc - * @date 2020.09.17 14:05 - **/ - @Override - public void extractProjectPeriodData(ExtractFormDTO param) { - int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); - Boolean isFirst = trace <= NumConstant.ZERO ? true : false; - if(StringUtils.isBlank(param.getDateId())){ - Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); - SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); - param.setDateId(format.format(yesterday)); - } - List extractData = - projectProcessService.getProjectPeriod(isFirst,param.getCustomerId(),param.getDateId()); - List formattingData = new LinkedList<>(); + /** + * @param param + * @return + * @Description 抽取项目节点历时逻辑 + * @author wangc + * @date 2020.09.17 14:05 + **/ + @Override + public void extractProjectPeriodData(ExtractOriginFormDTO param) { + int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); + Boolean isFirst = trace <= NumConstant.ZERO ? true : false; + if (StringUtils.isBlank(param.getDateId())) { + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + param.setDateId(format.format(yesterday)); + } + List extractData = + projectProcessService.getProjectPeriod(isFirst, param.getCustomerId(), param.getDateId()); + List formattingData = new LinkedList<>(); extractData.forEach(original -> { FactOriginProjectOrgPeriodDailyEntity dest = ConvertUtils.sourceToTarget(original,FactOriginProjectOrgPeriodDailyEntity.class); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectPeriodExtractServiceImpl.java index a99f2a5937..dbf1130893 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectPeriodExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectPeriodExtractServiceImpl.java @@ -4,7 +4,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import com.epmet.service.evaluationindex.extract.todata.ProjectPeriodExtractService; @@ -37,23 +37,23 @@ public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractServ private ProjectProcessService projectProcessService; /** - * @Description 抽取项目节点历时逻辑 * @param param * @return + * @Description 抽取项目节点历时逻辑 * @author wangc * @date 2020.09.17 14:05 **/ @Override - public void extractProjectPeriodData(ExtractFormDTO param) { + public void extractProjectPeriodData(ExtractOriginFormDTO param) { int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); Boolean isFirst = trace <= NumConstant.ZERO ? true : false; - if(StringUtils.isBlank(param.getDateId())){ + if (StringUtils.isBlank(param.getDateId())) { Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); param.setDateId(format.format(yesterday)); } List extractData = - projectProcessService.getProjectPeriod(isFirst,param.getCustomerId(),param.getDateId()); + projectProcessService.getProjectPeriod(isFirst, param.getCustomerId(), param.getDateId()); List formattingData = new LinkedList<>(); extractData.forEach(original -> { FactOriginProjectOrgPeriodDailyEntity dest diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PublicPartExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PublicPartExtractService.java index 388559649d..efde08faf8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PublicPartExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PublicPartExtractService.java @@ -1,5 +1,7 @@ package com.epmet.service.evaluationindex.extract.toscreen; +import com.epmet.dto.extract.form.ExtractScreenFormDTO; + /** * @desc: 大屏 公众参与抽取服务接口 * @Author: LiuJanJun @@ -17,7 +19,7 @@ public interface PublicPartExtractService { * @author LiuJanJun * @date 2020/9/25 10:24 上午 */ - Boolean extractTotalDataMonthly(); + Boolean extractTotalDataMonthly(ExtractScreenFormDTO formDTO); /** * desc: 抽取公众参与 各类总数 @@ -28,5 +30,5 @@ public interface PublicPartExtractService { * @author LiuJanJun * @date 2020/9/25 10:24 上午 */ - Boolean extractPerTotalDataDaily(); + Boolean extractPerTotalDataDaily(ExtractScreenFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/ScreenExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/ScreenExtractService.java index 70ff60bff3..f61b933bf4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/ScreenExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/ScreenExtractService.java @@ -1,6 +1,6 @@ package com.epmet.service.evaluationindex.extract.toscreen; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; /** * @Author zxc @@ -9,11 +9,11 @@ import com.epmet.dto.extract.form.ExtractFormDTO; public interface ScreenExtractService { /** - * @Description 抽取数据到大屏【天】 - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 抽取数据到大屏【天】 * @author zxc * @date 2020/9/24 10:15 上午 */ - void extractDailyAll(ExtractFormDTO extractFormDTO); + void extractDailyAll(ExtractOriginFormDTO extractOriginFormDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java index ae0aab7fa0..dd409600a8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java @@ -1,11 +1,30 @@ package com.epmet.service.evaluationindex.extract.toscreen.impl; -import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.constant.OrgTypeConstant; +import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.entity.evaluationindex.screen.ScreenUserJoinEntity; +import com.epmet.entity.stats.DimAgencyEntity; +import com.epmet.entity.stats.DimGridEntity; +import com.epmet.entity.stats.FactIssueGridMonthlyEntity; import com.epmet.service.evaluationindex.extract.toscreen.PublicPartExtractService; -import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; -import com.epmet.service.evaluationindex.screen.ScreenPublicPartiTotalDataService; +import com.epmet.service.stats.DimAgencyService; +import com.epmet.service.stats.DimGridService; +import com.epmet.service.stats.FactIssueGridMonthlyService; +import com.epmet.util.DimIdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * desc:公众参与抽取到大屏的接口实现类 @@ -14,33 +33,99 @@ import org.springframework.stereotype.Service; * @date: 2020/9/25 10:46 上午 * @version: 1.0 */ +@Slf4j @Service public class PublicPartExtractServiceImpl implements PublicPartExtractService { - @Autowired - private ScreenPublicPartiTotalDataService screenPublicPartiTotalDataService; + private DimAgencyService dimAgencyService; @Autowired - private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + private DimGridService dimGridService; @Autowired - private ScreenCustomerAgencyService agencyService; + private FactIssueGridMonthlyService factIssueGridMonthlyService; /** * desc: 【月】抽取公众参与 人均议题 总次数和平均参与度 * target:screen_user_join + * 总参与:统计周期内议题表决的人数 + * 百人人均议题:统计周期内总的议题数/(用户数/100) + * 百人平均参与度:每个议题的实际参与数/应参与数 的平均值:(每个议题的实际参与数/应参与数)的和)/被表决的议题数 + * 不考虑市北:人均议题:统计周期内议题总数/发过议题的人数 参与度:各个行为(表决)的总数/发生行为的人数 * * @return java.lang.Boolean * @author LiuJanJun * @date 2020/9/25 10:24 上午 */ @Override - public Boolean extractTotalDataMonthly() { - //agencyService.initAgencies(); + public Boolean extractTotalDataMonthly(ExtractScreenFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getCustomerId()) || StringUtils.isBlank(formDTO.getMonthId())) { + log.warn("extractTotalDataMonthly param is error,param:{}", JSON.toJSONString(formDTO)); + return false; + } + extractGridUserJoin(formDTO); + extractAgencyUserJoin(formDTO); return null; } + private void extractGridUserJoin(ExtractScreenFormDTO formDTO) { + List orgList = dimGridService.getGridListByCustomerId(formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(orgList)) { + log.warn("抽取【公众参与-人均议题】,获取组织数据失败"); + throw new RenException("抽取【公众参与-人均议题】,获取组织数据失败"); + } + //构建组织数据 + Map insertMap = new HashMap<>(); + orgList.forEach(org -> buildUserJoinEntity(formDTO, org, insertMap)); + + } + + private void extractAgencyUserJoin(ExtractScreenFormDTO formDTO) { + List orgList = dimAgencyService.getAgencyListByCustomerId(formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(orgList)) { + log.warn("抽取【公众参与-人均议题】,获取组织数据失败"); + throw new RenException("抽取【公众参与-人均议题】,获取组织数据失败"); + } + //构建组织数据 + Map insertMap = new HashMap<>(); + orgList.forEach(org -> { + buildUserJoinEntity(formDTO, org, insertMap); + }); + List issueTotal = factIssueGridMonthlyService.getIssueCount(formDTO.getCustomerId(), formDTO.getMonthId()); + } + + private void buildUserJoinEntity(ExtractScreenFormDTO formDTO, Object org, Map result) { + DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(DateUtils.stringToDate(formDTO.getMonthId(), DateUtils.DATE_PATTERN_YYYYMMDD)); + ScreenUserJoinEntity entity = ConvertUtils.sourceToTarget(dimIdBean, ScreenUserJoinEntity.class); + if (org instanceof DimGridEntity) { + DimGridEntity grid = (DimGridEntity) org; + entity.setCustomerId(grid.getCustomerId()); + entity.setOrgType(OrgTypeConstant.GRID); + entity.setOrgId(grid.getId()); + entity.setParentId(grid.getAgencyId()); + entity.setOrgName(grid.getGridName()); + } else if (org instanceof DimAgencyEntity) { + DimAgencyEntity agency = (DimAgencyEntity) org; + entity.setCustomerId(agency.getCustomerId()); + entity.setOrgType(agency.getLevel()); + entity.setOrgId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setOrgName(agency.getAgencyName()); + } + + entity.setJoinTotal(0); + entity.setJoinTotalUpRate(new BigDecimal("0")); + entity.setJoinTotalUpFlag(""); + entity.setAvgIssue(0); + entity.setAvgIssueUpRate(new BigDecimal("0")); + entity.setAvgIssueUpFlag(""); + entity.setAvgJoin(0); + entity.setAgvgJoinUpRate(new BigDecimal("0")); + entity.setAgvgJoinUpFlag(""); + result.put(entity.getOrgId(), entity); + } + /** - * desc: 【日】抽取公众参与 各类总数 + * desc: 【日】抽取公众参与 各类总数 累计值 * target:screen_public_parti_total_data * * @return java.lang.Boolean @@ -48,7 +133,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { * @date 2020/9/25 10:24 上午 */ @Override - public Boolean extractPerTotalDataDaily() { + public Boolean extractPerTotalDataDaily(ExtractScreenFormDTO formDTO) { return null; } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java index bab236a466..088ec91608 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java @@ -2,7 +2,7 @@ package com.epmet.service.evaluationindex.extract.toscreen.impl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.evaluationindex.extract.toscreen.PartyBaseInfoService; import com.epmet.service.evaluationindex.extract.toscreen.PioneerDataExtractService; import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractService; @@ -33,33 +33,33 @@ public class ScreenExtractServiceImpl implements ScreenExtractService { private PioneerDataExtractService pioneerDataExtractService; /** - * @Description 抽取数据到大屏【天】 - * @param extractFormDTO + * @param extractOriginFormDTO + * @Description 抽取数据到大屏【天】 * @author zxc * @date 2020/9/24 10:15 上午 */ @Override - public void extractDailyAll(ExtractFormDTO extractFormDTO) { + public void extractDailyAll(ExtractOriginFormDTO extractOriginFormDTO) { List customerIds = new ArrayList<>(); - if (StringUtils.isNotBlank(extractFormDTO.getCustomerId())){ - customerIds.add(extractFormDTO.getCustomerId()); - }else { + if (StringUtils.isNotBlank(extractOriginFormDTO.getCustomerId())) { + customerIds.add(extractOriginFormDTO.getCustomerId()); + } else { int pageNo = NumConstant.ONE; int pageSize = NumConstant.ONE_HUNDRED; customerIds = dimCustomerService.selectCustomerIdPage(pageNo, pageSize); } - if (!CollectionUtils.isEmpty(customerIds)){ + if (!CollectionUtils.isEmpty(customerIds)) { customerIds.forEach(customerId -> { - if (StringUtils.isNotBlank(extractFormDTO.getStartDate()) && StringUtils.isNotBlank(extractFormDTO.getEndDate())){ - List daysBetween = DateUtils.getDaysBetween(extractFormDTO.getStartDate(), extractFormDTO.getEndDate()); + if (StringUtils.isNotBlank(extractOriginFormDTO.getStartDate()) && StringUtils.isNotBlank(extractOriginFormDTO.getEndDate())) { + List daysBetween = DateUtils.getDaysBetween(extractOriginFormDTO.getStartDate(), extractOriginFormDTO.getEndDate()); daysBetween.forEach(dateId -> { - extractDaily(customerId,dateId); + extractDaily(customerId, dateId); }); - }else if (StringUtils.isNotBlank(extractFormDTO.getDateId())){ - extractDaily(customerId,extractFormDTO.getDateId()); - }else { + } else if (StringUtils.isNotBlank(extractOriginFormDTO.getDateId())) { + extractDaily(customerId, extractOriginFormDTO.getDateId()); + } else { String dateId = LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", ""); - extractDaily(customerId,dateId); + extractDaily(customerId, dateId); } }); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java index a40b8c7236..736a6e348c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIssueGridMonthlyService.java @@ -18,12 +18,10 @@ package com.epmet.service.stats; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; import com.epmet.dto.stats.FactIssueGridMonthlyDTO; import com.epmet.entity.stats.FactIssueGridMonthlyEntity; import java.util.List; -import java.util.Map; /** * 网格议题数量(按月) @@ -32,57 +30,6 @@ import java.util.Map; * @since v1.0.0 2020-06-17 */ public interface FactIssueGridMonthlyService extends BaseService { - - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2020-06-17 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2020-06-17 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return FactIssueGridMonthlyDTO - * @author generator - * @date 2020-06-17 - */ - FactIssueGridMonthlyDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2020-06-17 - */ - void save(FactIssueGridMonthlyDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2020-06-17 - */ - void update(FactIssueGridMonthlyDTO dto); - /** * 批量删除 * @@ -115,10 +62,22 @@ public interface FactIssueGridMonthlyService extends BaseService list); + + /** + * desc: 获取该客户下某月的 议题数量 + * + * @param customerId + * @param monthId + * @return java.util.List + * @author LiuJanJun + * @date 2020/9/25 5:00 下午 + */ + List getIssueCount(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注.xlsx b/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注.xlsx index 592e740466e97361226da2745174eb8dcb4754fd..3dfdceaaff09653a87925bb2daa254e94b3076df 100644 GIT binary patch literal 63943 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

    uCa}Ci028dj}2d4KvB>XUxy4Er%+7f34UUY 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 BW#9k+ literal 59391 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 diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java index 59ce874166..b41295af10 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java @@ -2,7 +2,7 @@ package com.epmet.service; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; /** * desc: 业务数据抽取到统计库服务类 @@ -19,5 +19,5 @@ public interface FactOriginExtractTaskService { * @date: 2020/6/22 9:09 * @author: jianjun liu */ - Result factOriginExtractJob(ExtractFormDTO formDTO); + Result factOriginExtractJob(ExtractOriginFormDTO formDTO); } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java index 9dfed79a57..41244194c0 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java @@ -1,7 +1,7 @@ package com.epmet.service.impl; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; import com.epmet.service.FactOriginExtractTaskService; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +24,7 @@ public class FactOriginExtractTaskServiceImpl implements FactOriginExtractTaskSe * @author: jianjun liu */ @Override - public Result factOriginExtractJob(ExtractFormDTO formDTO) { + public Result factOriginExtractJob(ExtractOriginFormDTO formDTO) { return dataStatisticalOpenFeignClient.factOriginExtractAll(formDTO); } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ScreenExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ScreenExtractTaskServiceImpl.java index 0566277dc5..963045ec79 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ScreenExtractTaskServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ScreenExtractTaskServiceImpl.java @@ -2,7 +2,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; import com.epmet.service.ScreenExtractTaskService; import lombok.extern.slf4j.Slf4j; @@ -24,10 +24,10 @@ public class ScreenExtractTaskServiceImpl implements ScreenExtractTaskService { @Override public Result screenExtractDaily(String params) { - ExtractFormDTO extractFormDTO = new ExtractFormDTO(); + ExtractOriginFormDTO extractOriginFormDTO = new ExtractOriginFormDTO(); if (StringUtils.isNotBlank(params)) { - extractFormDTO = JSON.parseObject(params, ExtractFormDTO.class); + extractOriginFormDTO = JSON.parseObject(params, ExtractOriginFormDTO.class); } - return dataStatisticalOpenFeignClient.extractDailyAll(extractFormDTO); + return dataStatisticalOpenFeignClient.extractDailyAll(extractOriginFormDTO); } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java index 51d4a847bc..92f58cf22b 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java @@ -3,7 +3,7 @@ package com.epmet.task; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; -import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.service.FactOriginExtractTaskService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -24,18 +24,18 @@ public class FactOriginExtractTask implements ITask { @Override public void run(String params) { - logger.info("FactOriginExtractTask定时任务正在执行,参数为:{}", params); - ExtractFormDTO formDTO = new ExtractFormDTO(); - if (StringUtils.isNotBlank(params)) { - formDTO = JSON.parseObject(params, ExtractFormDTO.class); - } - Result result = factOriginExtractTaskService.factOriginExtractJob(formDTO); - if (result.success()) { - logger.info("FactOriginExtractTask定时任务执行成功"); - } else { - logger.error("FactOriginExtractTask定时任务执行失败:" + result.getMsg()); - } - } + logger.info("FactOriginExtractTask定时任务正在执行,参数为:{}", params); + ExtractOriginFormDTO formDTO = new ExtractOriginFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, ExtractOriginFormDTO.class); + } + Result result = factOriginExtractTaskService.factOriginExtractJob(formDTO); + if (result.success()) { + logger.info("FactOriginExtractTask定时任务执行成功"); + } else { + logger.error("FactOriginExtractTask定时任务执行失败:" + result.getMsg()); + } + } public static void main(String[] args) { StatsFormDTO formDTO = new StatsFormDTO();