Commit cf637827 by huangjy

feat,得出转成报告

parent 7a297b11
......@@ -3,6 +3,7 @@ package com.makeit.service.saas;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
/**
* <p>
......@@ -19,4 +20,6 @@ public interface SaasSleepEvaluateReportService extends IService<SaasSleepEvalua
void add(SaasSleepEvaluateReportDTO dto);
void edit(SaasSleepEvaluateReportDTO dto);
EvaluateReportVO getByScore(long totalScore);
}
package com.makeit.service.saas.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.mapper.saas.analysis.SaasSleepEvaluateReportMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasSleepEvaluateReportService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 睡眠质量分析模型评估结果 服务实现类
......@@ -38,4 +44,25 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva
BeanUtils.copyProperties(dto, entity);
saveOrUpdate(entity);
}
@Override
public EvaluateReportVO getByScore(long totalScore) {
SaasSleepEvaluateReport sleepEvaluateReport = getOne(new QueryWrapper<SaasSleepEvaluateReport>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String resultContent = sleepEvaluateReport.getResultContent();
List<EvaluateReportVO> evaluateReportList = JSON.parseArray(resultContent, EvaluateReportVO.class);
// 根据睡眠报告结果配置得出最后的睡眠评分
EvaluateReportVO finalReport = new EvaluateReportVO();
for (EvaluateReportVO evaluateReportVO : evaluateReportList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("~");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
finalReport = evaluateReportVO;
}
}
return finalReport;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment