Browse Source

宣传能力统计暂存

dev_shibei_match
jianjun 5 years ago
parent
commit
69d01daaf5
  1. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/ArticleGridPublishedSummaryDTO.java
  2. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java
  3. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java
  4. 75
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java
  5. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java
  6. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java
  7. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java
  8. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java
  9. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/voice/ArticleService.java
  10. 18
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/voice/impl/ArticleServiceImpl.java
  11. 12
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml
  12. 3
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/ArticleGridPublishedSummaryDTO.java

@ -23,7 +23,10 @@ public class ArticleGridPublishedSummaryDTO implements Serializable {
* 客户id
*/
private String customerId;
/**
* 上级机关id顶级为"0"
*/
private String pid;
/**
* 机关id
*/

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java

@ -47,29 +47,36 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
List<DimAgencyDTO> selectDimAgencyList(DimAgencyDTO dto);
/**
* @Description 获取所有机关
* @param
* @return List<AgencySubTreeDto>
* @return List<AgencySubTreeDto>
* @Description 获取所有机关
* @author wangc
* @date 2020.06.18 09:26
**/
**/
List<AgencySubTreeDto> selectAllAgency();
/**
* @Description 根据PID获取下级机关
* @param pid
* @return List<AgencySubTreeDto>
* @return List<AgencySubTreeDto>
* @Description 根据PID获取下级机关
* @author wangc
* @date 2020.06.18 09:26
**/
List<AgencySubTreeDto> selectSubAgencyByPid(@Param("pid")String pid);
**/
List<AgencySubTreeDto> selectSubAgencyByPid(@Param("pid") String pid);
/**
* @Description 获取顶层级机关机关
* @param
* @return List<AgencySubTreeDto>
* @return List<AgencySubTreeDto>
* @Description 获取顶层级机关机关
* @author wangc
* @date 2020.06.18 09:26
**/
List<AgencySubTreeDto> selectTopAgency();
/**
* desc:根据客户id 获取机关列表
* @param customerId
* @return
*/
List<DimAgencyEntity> getAgencyListByCustomerId(@Param("customerId") String customerId);
}

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java

@ -20,6 +20,7 @@ package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 文章发布数量机关日统计表
@ -29,5 +30,12 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface FactArticlePublishedAgencyDailyDao extends BaseDao<FactArticlePublishedAgencyDailyEntity> {
/**
* desc:删除数据
*
* @param customerId
* @param dateId
* @return
*/
int deleteByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId);
}

75
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java

@ -1,12 +1,10 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dto.stats.ArticleGridPublishedSummaryDTO;
import com.epmet.entity.stats.DimDepartmentEntity;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.FactArticlePublishedDepartmentDailyEntity;
import com.epmet.entity.stats.FactArticlePublishedGridDailyEntity;
import com.epmet.entity.stats.*;
import com.epmet.service.StatsPublicityService;
import com.epmet.service.stats.*;
import com.epmet.service.voice.ArticlePublishRangeService;
@ -60,6 +58,9 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
private FactArticlePublishedGridDailyService factArticlePublishedGridDailyService;
@Autowired
private FactArticlePublishedDepartmentDailyService factArticlePublishedDepartmentDailyService;
@Autowired
private FactArticlePublishedAgencyDailyService factArticlePublishedAgencyDailyService;
@Autowired
private ExecutorService executorService;
@ -101,7 +102,7 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
//转换为 需要插入的Entity
Map<String, FactArticlePublishedDepartmentDailyEntity> departmentDailyEntityMap = convertDepartmentDailyEntity(departmentDTOList, dimIdBean);
//获取当天的业务数据
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllPublishedCount(customerId,DateUtils.integrate(statsDate,DateUtils.DATE_PATTERN));
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllDepartmentPublishedCount(customerId,DateUtils.integrate(statsDate,DateUtils.DATE_PATTERN));
if (!CollectionUtils.isEmpty(publishedArticleCount)) {
for (ArticleGridPublishedSummaryDTO summaryDTO : publishedArticleCount) {
@ -162,12 +163,12 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
//转换为 需要插入的Entity
Map<String, FactArticlePublishedGridDailyEntity> gridDailyEntityMap = convertGridDailyEntity(gridDTOList, dimIdBean);
//获取当天的业务数据
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllGridPublishedCount(customerId, statsDate);
if (!CollectionUtils.isEmpty(publishedArticleCount)) {
for (ArticleGridPublishedSummaryDTO summaryDTO : publishedArticleCount) {
FactArticlePublishedGridDailyEntity gridDailyEntities = gridDailyEntityMap.get(summaryDTO.getGridId());
if (gridDailyEntities == null) {
log.error("publicitySummary bizData gridId:{} not exist in dimGrid", summaryDTO.getGridId());
log.error("publicitySummary getAllGridPublishedCount gridId:{} not exist in dimGrid", summaryDTO.getGridId());
continue;
}
gridDailyEntities.setArticleTotalCount(summaryDTO.getArticleTotalCount());
@ -180,20 +181,20 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
}
private void statsPublishedAgencyDaily(Date statsDate, DimIdGenerator.DimIdBean dimIdBean, String customerId, Map<String, ArticleGridPublishedSummaryDTO> agencySummaryMap) {
//获取所有客户
List<DimDepartmentEntity> departmentDTOList = null;//dimAgencyService.getAgencyListByCustomerId(customerId);
if (CollectionUtils.isEmpty(departmentDTOList)) {
//获取所有机关
List<DimAgencyEntity> agencyDTOList = dimAgencyService.getAgencyListByCustomerId(customerId);
if (CollectionUtils.isEmpty(agencyDTOList)) {
log.warn("publicitySummary getAgencyListByCustomerId return empty,customerId:{}", customerId);
return;
}
//转换为 需要插入的Entity
Map<String, FactArticlePublishedDepartmentDailyEntity> departmentDailyEntityMap = convertDepartmentDailyEntity(departmentDTOList, dimIdBean);
Map<String, FactArticlePublishedAgencyDailyEntity> agencyDailyEntityMap = convertAgencyDailyEntity(agencyDTOList, dimIdBean);
//获取当天的业务数据
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllPublishedCount(customerId,DateUtils.integrate(statsDate,DateUtils.DATE_PATTERN));
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articleService.getAllAgencyPublishedCount(customerId,DateUtils.integrate(statsDate,DateUtils.DATE_PATTERN));
if (!CollectionUtils.isEmpty(publishedArticleCount)) {
for (ArticleGridPublishedSummaryDTO summaryDTO : publishedArticleCount) {
FactArticlePublishedDepartmentDailyEntity gridDailyEntities = departmentDailyEntityMap.get(summaryDTO.getPublisherId());
FactArticlePublishedAgencyDailyEntity gridDailyEntities = agencyDailyEntityMap.get(summaryDTO.getPublisherId());
if (gridDailyEntities == null) {
log.error("publicitySummary bizData departmentId:{} not exist in dimDepartment", summaryDTO.getGridId());
continue;
@ -204,7 +205,32 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
buildAgencySummaryData(agencySummaryMap, summaryDTO);
}
}
boolean b = factArticlePublishedDepartmentDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), departmentDailyEntityMap.values());
//数据向上级机关添加
if (!CollectionUtils.isEmpty(agencySummaryMap)){
for (Map.Entry<String, ArticleGridPublishedSummaryDTO> entry : agencySummaryMap.entrySet()) {
String agencyId = entry.getKey();
ArticleGridPublishedSummaryDTO summary = entry.getValue();
FactArticlePublishedAgencyDailyEntity dailyEntity = agencyDailyEntityMap.get(agencyId);
if (dailyEntity == null) {
log.error("publicitySummary bizData agencyId:{} not exist in dimAgency", agencyId);
continue;
}
setData2ParentAgency(agencySummaryMap, summary);
}
}
boolean b = factArticlePublishedAgencyDailyService.deleteAndInsertBatch(customerId, dimIdBean.getDateId(), agencyDailyEntityMap.values());
}
private void setData2ParentAgency(Map<String, ArticleGridPublishedSummaryDTO> agencySummaryMap, ArticleGridPublishedSummaryDTO summary) {
String pid = summary.getPid();
ArticleGridPublishedSummaryDTO parentAgency = agencySummaryMap.get(pid);
parentAgency.setArticleTotalCount(parentAgency.getArticleTotalCount()+summary.getArticleTotalCount());
parentAgency.setArticlePublishedCount(parentAgency.getArticlePublishedCount()+summary.getArticlePublishedCount());
pid = parentAgency.getPid();
if (!NumConstant.ZERO_STR.equals(pid)){
setData2ParentAgency(agencySummaryMap,parentAgency);
}
}
/**
@ -248,4 +274,25 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
});
return result;
}
/**
* desc:将机关卫队对象构建为 agencyDaily 对象
*
* @param dimDepartmentEntities
* @param dimIdBean
* @return
*/
private Map<String, FactArticlePublishedAgencyDailyEntity> convertAgencyDailyEntity(List<DimAgencyEntity> dimDepartmentEntities, DimIdGenerator.DimIdBean dimIdBean) {
Map<String, FactArticlePublishedAgencyDailyEntity> result = new HashMap<>();
dimDepartmentEntities.forEach(dimGridEntity -> {
FactArticlePublishedAgencyDailyEntity entity = ConvertUtils.sourceToTarget(dimIdBean, FactArticlePublishedAgencyDailyEntity.class);
entity.setCustomerId(dimGridEntity.getCustomerId());
entity.setPid(dimGridEntity.getPid());
entity.setAgencyId(dimGridEntity.getId());
entity.setArticleTotalCount(0);
entity.setArticlePublishedCount(0);
result.put(dimGridEntity.getId(), entity);
});
return result;
}
}

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java

@ -122,4 +122,14 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
* @date 2020.06.18 09:45
**/
List<AgencySubTreeDto> getTopAgency();
/**
* desc: 根据客户Id 获取机关列表数据
*
* @param customerId
* @return:
* @date: 2020/6/18 17:54
* @author: jianjun liu
*/
List<DimAgencyEntity> getAgencyListByCustomerId(String customerId);
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java

@ -20,6 +20,8 @@ package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
import java.util.Collection;
/**
* 文章发布数量机关日统计表
*
@ -28,5 +30,16 @@ import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
*/
public interface FactArticlePublishedAgencyDailyService extends BaseService<FactArticlePublishedAgencyDailyEntity> {
/**
* desc: 删除并插入数据
*
* @param customerId
* @param dateId
* @param values
* @return:
* @date: 2020/6/18 18:59
* @author: jianjun liu
*/
boolean deleteAndInsertBatch(String customerId, String dateId, Collection<FactArticlePublishedAgencyDailyEntity> values);
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java

@ -20,9 +20,11 @@ package com.epmet.service.stats.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.stats.DimAgencyDao;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.stats.DimAgencyDTO;
@ -30,7 +32,6 @@ import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.entity.stats.DimAgencyEntity;
import com.epmet.service.stats.DimAgencyService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -38,7 +39,6 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 机关维度
@ -160,4 +160,12 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
return baseDao.selectTopAgency();
}
@Override
public List<DimAgencyEntity> getAgencyListByCustomerId(String customerId) {
if (StringUtils.isBlank(customerId)){
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(),EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
return baseDao.getAgencyListByCustomerId(customerId);
}
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java

@ -21,18 +21,27 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.dao.stats.FactArticlePublishedAgencyDailyDao;
import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
import com.epmet.service.stats.FactArticlePublishedAgencyDailyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Collection;
/**
* 文章发布数量机关日统计表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-06-18
*/
@Slf4j
@Service
public class FactArticlePublishedAgencyDailyServiceImpl extends BaseServiceImpl<FactArticlePublishedAgencyDailyDao, FactArticlePublishedAgencyDailyEntity> implements FactArticlePublishedAgencyDailyService {
@Override
public boolean deleteAndInsertBatch(String customerId, String dateId, Collection<FactArticlePublishedAgencyDailyEntity> values) {
int i = baseDao.deleteByDateId(customerId, dateId);
log.debug("deleteAndInsertBatch delete customerId:{},rows:{}", customerId,i);
this.insertBatch(values, 100);
return true;
}
}

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/voice/ArticleService.java

@ -40,5 +40,19 @@ public interface ArticleService extends BaseService<ArticleEntity> {
* @param publishDate
* @return
*/
List<ArticleGridPublishedSummaryDTO> getAllPublishedCount(String customerId, Date publishDate);
List<ArticleGridPublishedSummaryDTO> getAllDepartmentPublishedCount(String customerId, Date publishDate);
/**
* desc:根据客户id发布时间 获取文章总数
* @param customerId
* @param publishDate
* @return
*/
List<ArticleGridPublishedSummaryDTO> getAllAgencyPublishedCount(String customerId, Date publishDate);
/**
* desc:根据客户id发布时间 获取文章总数
* @param customerId
* @param publishDate
* @return
*/
List<ArticleGridPublishedSummaryDTO> getAllGridPublishedCount(String customerId, Date publishDate);
}

18
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/voice/impl/ArticleServiceImpl.java

@ -44,10 +44,26 @@ import java.util.List;
public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntity> implements ArticleService {
@Override
public List<ArticleGridPublishedSummaryDTO> getAllPublishedCount(String customerId, Date publishDate) {
public List<ArticleGridPublishedSummaryDTO> getAllDepartmentPublishedCount(String customerId, Date publishDate) {
if (StringUtils.isBlank(customerId) || publishDate == null){
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(),EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
return baseDao.getAllPublishedCount(customerId,publishDate, ProjectConstant.PUBLISH_TYPE_DEPT);
}
@Override
public List<ArticleGridPublishedSummaryDTO> getAllAgencyPublishedCount(String customerId, Date publishDate) {
if (StringUtils.isBlank(customerId) || publishDate == null){
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(),EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
return baseDao.getAllPublishedCount(customerId,publishDate, ProjectConstant.PUBLISH_TYPE_AGENCY);
}
@Override
public List<ArticleGridPublishedSummaryDTO> getAllGridPublishedCount(String customerId, Date publishDate) {
if (StringUtils.isBlank(customerId) || publishDate == null){
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(),EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
return baseDao.getAllPublishedCount(customerId,publishDate, ProjectConstant.PUBLISH_TYPE_GRID);
}
}

12
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml

@ -103,5 +103,17 @@
agency.CUSTOMER_ID,
agency.PID
</select>
<select id="getAgencyListByCustomerId" resultType="com.epmet.entity.stats.DimAgencyEntity">
SELECT
ID,
CUSTOMER_ID,
PID,
LEVEL
FROM
dim_agency
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
</select>
</mapper>

3
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml

@ -22,6 +22,9 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByDateId">
DELETE FROM fact_article_published_agency_daily WHERE CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} AND DATE_ID = #{dateId,jdbcType=VARCHAR}
</delete>
</mapper>
Loading…
Cancel
Save