Browse Source

小组原始数据抽取,如果维度-网格没有网格数据,以维度-网格数据为主,没有删除的组数据会被移除

dev_shibei_match
wangchao 5 years ago
parent
commit
55df7c1e77
  1. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java
  3. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java
  4. 24
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java
  5. 21
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java

@ -79,6 +79,16 @@ public interface FactOriginGroupMainDailyDao extends BaseDao<FactOriginGroupMain
**/
void deleteBatchMemberByCustomerId(@Param("customerId") String customerId, @Param("dimId") String dimId, @Param("dateType") String dateType);
/**
* @Description 删除指定组Id的成员
* @param customerId
* @param groups
* @return void
* @author wangc
* @date 2020.11.16 11:15
*/
void deleteMemberByGroupList(@Param("customerId") String customerId,@Param("groups") List<String> groups);
/**
* @param customerId
* @return

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java

@ -64,7 +64,7 @@ public interface FactOriginGroupMainDailyService extends BaseService<FactOriginG
* @author wangc
* @date 2020.09.23 16:30
**/
boolean insertExtractedData(boolean isFirst, String customerId, String dateId, List<FactOriginGroupMainDailyDTO> originGroupData, List<ExtractGroupMemberActionRecordResultDTO> memberList);
boolean insertExtractedData(boolean isFirst, String customerId, String dateId, List<FactOriginGroupMainDailyDTO> originGroupData, List<ExtractGroupMemberActionRecordResultDTO> memberList, List<String> missing);
/**
* @param customerId

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java

@ -84,7 +84,7 @@ public class FactOriginGroupMainDailyServiceImpl extends BaseServiceImpl<FactOri
**/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean insertExtractedData(boolean isFirst, String customerId, String dateId,List<FactOriginGroupMainDailyDTO> originGroupData, List<ExtractGroupMemberActionRecordResultDTO> memberList) {
public boolean insertExtractedData(boolean isFirst, String customerId, String dateId,List<FactOriginGroupMainDailyDTO> originGroupData, List<ExtractGroupMemberActionRecordResultDTO> memberList,List<String> missing) {
if (isFirst) {
//isFirst
baseDao.deleteBatchMemberByCustomerId(customerId,null,null);
@ -95,8 +95,13 @@ public class FactOriginGroupMainDailyServiceImpl extends BaseServiceImpl<FactOri
}
//删除要插入的组主表数据
baseDao.deleteBatchByGroupId(customerId,originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList()));
baseDao.insertBatchMain(originGroupData);
baseDao.insertBatchMembers(memberList);
if(!CollectionUtils.isEmpty(missing)){
baseDao.deleteBatchByGroupId(customerId,missing);
baseDao.deleteMemberByGroupList(customerId,missing);
}
return true;
}

24
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/GroupExtractServiceImpl.java

@ -23,10 +23,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -91,11 +88,21 @@ public class GroupExtractServiceImpl implements GroupExtractService {
List<ExtractGroupMemberActionRecordResultDTO> memberList = new LinkedList<>();
if (!CollectionUtils.isEmpty(originGroupData)) {
List<GridAttributesResultDTO> gridList = dimGridService.getGridAttributes(param.getCustomerId(),originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList()));
List<String> missingGroups = new LinkedList<>();
if (!CollectionUtils.isEmpty(gridList)) {
Map<String, GridAttributesResultDTO> gridMap =
gridList.stream().collect(Collectors.toMap(GridAttributesResultDTO::getGridId, Function.identity(), (key1, key2) -> key2));
if (!CollectionUtils.isEmpty(originGroupData)) {
for(Iterator<FactOriginGroupMainDailyDTO> iter = originGroupData.iterator();
iter.hasNext();){
FactOriginGroupMainDailyDTO pointer = iter.next();
if(null == gridMap.get(pointer.getGridId())){
missingGroups.add(pointer.getId());
iter.remove();
}
}
originGroupData.forEach(group -> {
GridAttributesResultDTO attr = gridMap.get(group.getGridId());
if (null != attr) {
@ -141,14 +148,15 @@ public class GroupExtractServiceImpl implements GroupExtractService {
}
});
}
factOriginGroupMainDailyService.insertExtractedData(
count <= NumConstant.ZERO ? true : false,
param.getCustomerId(),
param.getDateId(),
originGroupData,
memberList
memberList,
missingGroups
);

21
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml

@ -64,6 +64,17 @@
</if>
</delete>
<!-- 删除指定组Id的成员 -->
<delete id="deleteMemberByGroupList">
DELETE FROM
fact_origin_group_member_daily
WHERE
CUSTOMER_ID = #{customerId}
<foreach collection="groups" item="groupId" open="AND (" separator=" OR " close=" )" >
GROUP_ID = #{groupId}
</foreach>
</delete>
<delete id="deleteBatchByGroupId" parameterType="java.util.List">
DELETE FROM
fact_origin_group_main_daily
@ -74,6 +85,16 @@
</foreach>
</where>
</delete>
<delete id="deleteSpecifiedDateData">
DELETE FROM
fact_origin_group_main_daily
<where>
CUSTOMER_ID = #{customerId}
AND
DATE_ID =
</where>
</delete>
<update id="updatePartyFlag" parameterType="java.util.List">
UPDATE fact_origin_group_main_daily

Loading…
Cancel
Save