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); 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 * @param customerId
* @return * @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 * @author wangc
* @date 2020.09.23 16:30 * @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 * @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 @Override
@Transactional(rollbackFor = Exception.class) @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) { if (isFirst) {
//isFirst //isFirst
baseDao.deleteBatchMemberByCustomerId(customerId,null,null); 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.deleteBatchByGroupId(customerId,originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList()));
baseDao.insertBatchMain(originGroupData); baseDao.insertBatchMain(originGroupData);
baseDao.insertBatchMembers(memberList); baseDao.insertBatchMembers(memberList);
if(!CollectionUtils.isEmpty(missing)){
baseDao.deleteBatchByGroupId(customerId,missing);
baseDao.deleteMemberByGroupList(customerId,missing);
}
return true; 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 org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -91,11 +88,21 @@ public class GroupExtractServiceImpl implements GroupExtractService {
List<ExtractGroupMemberActionRecordResultDTO> memberList = new LinkedList<>(); List<ExtractGroupMemberActionRecordResultDTO> memberList = new LinkedList<>();
if (!CollectionUtils.isEmpty(originGroupData)) { if (!CollectionUtils.isEmpty(originGroupData)) {
List<GridAttributesResultDTO> gridList = dimGridService.getGridAttributes(param.getCustomerId(),originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList())); 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)) { if (!CollectionUtils.isEmpty(gridList)) {
Map<String, GridAttributesResultDTO> gridMap = Map<String, GridAttributesResultDTO> gridMap =
gridList.stream().collect(Collectors.toMap(GridAttributesResultDTO::getGridId, Function.identity(), (key1, key2) -> key2)); 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 -> { originGroupData.forEach(group -> {
GridAttributesResultDTO attr = gridMap.get(group.getGridId()); GridAttributesResultDTO attr = gridMap.get(group.getGridId());
if (null != attr) { if (null != attr) {
@ -141,14 +148,15 @@ public class GroupExtractServiceImpl implements GroupExtractService {
} }
}); });
}
factOriginGroupMainDailyService.insertExtractedData( factOriginGroupMainDailyService.insertExtractedData(
count <= NumConstant.ZERO ? true : false, count <= NumConstant.ZERO ? true : false,
param.getCustomerId(), param.getCustomerId(),
param.getDateId(), param.getDateId(),
originGroupData, 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> </if>
</delete> </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 id="deleteBatchByGroupId" parameterType="java.util.List">
DELETE FROM DELETE FROM
fact_origin_group_main_daily fact_origin_group_main_daily
@ -74,6 +85,16 @@
</foreach> </foreach>
</where> </where>
</delete> </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 id="updatePartyFlag" parameterType="java.util.List">
UPDATE fact_origin_group_main_daily UPDATE fact_origin_group_main_daily

Loading…
Cancel
Save