算法提交
This commit is contained in:
@@ -16,6 +16,7 @@ import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorMService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -26,6 +27,7 @@ import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -80,12 +82,14 @@ public class ROperatingMonitorMServiceImpl extends MppServiceImpl<ROperatingMoni
|
||||
DateTime beginMonth = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime endMonth = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(beginMonth, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
|
||||
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
//以尺寸1000分片
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds, 1000);
|
||||
List<ROperatingMonitorMPO> rOperatingMonitorMPOList = new ArrayList<>();
|
||||
QueryWrapper<ROperatingMonitorDPO> queryWrapper = new QueryWrapper<>();
|
||||
calculatedParam.getIdList().forEach(temp -> {
|
||||
pendingIds.forEach(temp -> {
|
||||
queryWrapper.clear();
|
||||
queryWrapper.eq("measurement_point_id", temp)
|
||||
queryWrapper.in("measurement_point_id", temp)
|
||||
.between("data_date",beginMonth,endMonth);
|
||||
|
||||
List<ROperatingMonitorDPO> list = rOperatingMonitorDMapper.selectList(queryWrapper);
|
||||
@@ -93,19 +97,23 @@ public class ROperatingMonitorMServiceImpl extends MppServiceImpl<ROperatingMoni
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
ROperatingMonitorMPO rOperatingMonitorMPO = new ROperatingMonitorMPO();
|
||||
BigDecimal dataIntegrityRate = BigDecimal.valueOf(list.stream().mapToDouble(po -> po.getDataIntegrityRate().doubleValue()).average().getAsDouble());
|
||||
BigDecimal dataRightRate = BigDecimal.valueOf(list.stream().mapToDouble(po -> po.getDataRightRate().doubleValue()).average().getAsDouble());
|
||||
BigDecimal indexIntegrityRate = BigDecimal.valueOf(list.stream().mapToDouble(po -> po.getIndexIntegrityRate().doubleValue()).average().getAsDouble());
|
||||
rOperatingMonitorMPO.setMeasurementPointId(temp);
|
||||
rOperatingMonitorMPO.setDataDate(localDate);
|
||||
rOperatingMonitorMPO.setDataIntegrityRate(dataIntegrityRate);
|
||||
rOperatingMonitorMPO.setDataRightRate(dataRightRate);
|
||||
rOperatingMonitorMPO.setIndexIntegrityRate(indexIntegrityRate);
|
||||
rOperatingMonitorMPO.setDevId(list.get(0).getDevId());
|
||||
List<Integer> collect = list.stream().map(ROperatingMonitorDPO::getIsUnusual).collect(Collectors.toList());
|
||||
rOperatingMonitorMPO.setIsUnusual(collect.contains(Integer.valueOf(0)) ? 0 : 1);
|
||||
rOperatingMonitorMPOList.add(rOperatingMonitorMPO);
|
||||
Map<String, List<ROperatingMonitorDPO>> collect1 = list.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getMeasurementPointId));
|
||||
collect1.forEach((k,v)->{
|
||||
ROperatingMonitorMPO rOperatingMonitorMPO = new ROperatingMonitorMPO();
|
||||
BigDecimal dataIntegrityRate = BigDecimal.valueOf(v.stream().mapToDouble(po -> po.getDataIntegrityRate().doubleValue()).average().getAsDouble());
|
||||
BigDecimal dataRightRate = BigDecimal.valueOf(v.stream().mapToDouble(po -> po.getDataRightRate().doubleValue()).average().getAsDouble());
|
||||
BigDecimal indexIntegrityRate = BigDecimal.valueOf(v.stream().mapToDouble(po -> po.getIndexIntegrityRate().doubleValue()).average().getAsDouble());
|
||||
rOperatingMonitorMPO.setMeasurementPointId(k);
|
||||
rOperatingMonitorMPO.setDataDate(localDate);
|
||||
rOperatingMonitorMPO.setDataIntegrityRate(dataIntegrityRate);
|
||||
rOperatingMonitorMPO.setDataRightRate(dataRightRate);
|
||||
rOperatingMonitorMPO.setIndexIntegrityRate(indexIntegrityRate);
|
||||
rOperatingMonitorMPO.setDevId(v.get(0).getDevId());
|
||||
List<Integer> collect = v.stream().map(ROperatingMonitorDPO::getIsUnusual).collect(Collectors.toList());
|
||||
rOperatingMonitorMPO.setIsUnusual(collect.contains(Integer.valueOf(0)) ? 0 : 1);
|
||||
rOperatingMonitorMPOList.add(rOperatingMonitorMPO);
|
||||
});
|
||||
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(rOperatingMonitorMPOList, 500);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user