代码逻辑补全
This commit is contained in:
+20
@@ -1,5 +1,7 @@
|
||||
package com.renkang.watch.dto;
|
||||
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -38,4 +40,22 @@ public class XjScreenAbnormalParam {
|
||||
*/
|
||||
@Schema(title = "查询条件(业务类型不同 查询条件数据代表的意义不同)")
|
||||
private Integer search = 0;
|
||||
|
||||
public Date getEndTime() {
|
||||
if (endTime == null) {
|
||||
//没传时间默认查一周
|
||||
endTime = DateUtil.endOfWeek(new Date());
|
||||
}
|
||||
endTime = DateUtil.beginOfDay(endTime);
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
if (startTime == null) {
|
||||
//没传时间默认查一周
|
||||
startTime = DateUtil.beginOfWeek(new Date());
|
||||
}
|
||||
endTime = DateUtil.endOfDay(endTime).offset(DateField.MILLISECOND,-999);
|
||||
return startTime;
|
||||
}
|
||||
}
|
||||
|
||||
+145
-6
@@ -1440,16 +1440,16 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
|
||||
result = heartRateDataAbnormal(userIds,result,param.getStartTime(),param.getEndTime(),param.getOrgCode(),param.getSearch());
|
||||
break;
|
||||
case 2: //血氧异常数据
|
||||
|
||||
result = spo2DataAbnormal(userIds,result,param.getStartTime(),param.getEndTime(),param.getOrgCode(),param.getSearch());
|
||||
break;
|
||||
case 3: //压力异常数据
|
||||
|
||||
result = stressDataAbnormal(userIds,result,param.getStartTime(),param.getEndTime(),param.getOrgCode(),param.getSearch());
|
||||
break;
|
||||
case 5: //体温异常数据
|
||||
|
||||
result = temperatureDataAbnormal(userIds,result,param.getStartTime(),param.getEndTime(),param.getOrgCode(),param.getSearch());
|
||||
break;
|
||||
case 7: //步数异常数据
|
||||
|
||||
result = sdcDataAbnormal(userIds,result,param.getStartTime(),param.getEndTime(),param.getOrgCode(),param.getSearch());
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
@@ -1457,6 +1457,145 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
|
||||
return result;
|
||||
}
|
||||
|
||||
private IPage<XjScreenAbnormalVO> sdcDataAbnormal(List<String> userIds, IPage<XjScreenAbnormalVO> result, Date startTime, Date endTime, String orgCode, Integer search) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDaySdc> baseWrapper = new MPJLambdaWrapper<>();
|
||||
baseWrapper.selectAs(WatchStatUserInfoDaySdc::getId,XjScreenAbnormalVO::getId);
|
||||
baseWrapper.selectAs(WatchStatUserInfoDaySdc::getUserId,XjScreenAbnormalVO::getUserId);
|
||||
baseWrapper.selectAs(WatchStatUserInfoDaySdc::getStepValue,XjScreenAbnormalVO::getDataValue);
|
||||
baseWrapper.selectAs(WatchStatUserInfoDaySdc::getDataDate,XjScreenAbnormalVO::getDateTime);
|
||||
baseWrapper.likeRight(StrUtil.isNotEmpty(orgCode),WatchStatUserInfoDaySdc::getOrgCode,orgCode);
|
||||
baseWrapper.ge(WatchStatUserInfoDaySdc::getDataDate,startTime);
|
||||
baseWrapper.le(WatchStatUserInfoDaySdc::getDataDate,endTime);
|
||||
baseWrapper.in(ObjectUtil.isNotNull(userIds),WatchStatUserInfoDaySdc::getUserId,userIds);
|
||||
//筛选条件 (0:小于5000,1:5000-10000,2:10000-15000,3:15000-20000,4大于20000)
|
||||
switch (search){
|
||||
case 0:
|
||||
baseWrapper.lt(WatchStatUserInfoDaySdc::getStepValue,5000);
|
||||
break;
|
||||
case 1:
|
||||
baseWrapper.ge(WatchStatUserInfoDaySdc::getStepValue,5000);
|
||||
baseWrapper.lt(WatchStatUserInfoDaySdc::getStepValue,10000);
|
||||
break;
|
||||
case 2:
|
||||
baseWrapper.ge(WatchStatUserInfoDaySdc::getStepValue,10000);
|
||||
baseWrapper.lt(WatchStatUserInfoDaySdc::getStepValue,15000);
|
||||
break;
|
||||
case 3:
|
||||
baseWrapper.ge(WatchStatUserInfoDaySdc::getStepValue,15000);
|
||||
baseWrapper.lt(WatchStatUserInfoDaySdc::getStepValue,20000);
|
||||
break;
|
||||
case 4:
|
||||
baseWrapper.ge(WatchStatUserInfoDaySdc::getStepValue,20000);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
return watchStatUserInfoDaySdcMapper.selectJoinPage(result,XjScreenAbnormalVO.class, baseWrapper);
|
||||
}
|
||||
|
||||
private IPage<XjScreenAbnormalVO> temperatureDataAbnormal(List<String> userIds, IPage<XjScreenAbnormalVO> result, Date startTime, Date endTime, String orgCode, Integer search) {
|
||||
MPJLambdaWrapper<WatchDataTemperature> baseWrapper = new MPJLambdaWrapper<>();
|
||||
baseWrapper.selectAs(WatchDataTemperature::getId,XjScreenAbnormalVO::getId);
|
||||
baseWrapper.selectAs(WatchDataTemperature::getBindUserId,XjScreenAbnormalVO::getUserId);
|
||||
baseWrapper.selectAs(WatchDataTemperature::getDataValue,XjScreenAbnormalVO::getDataValue);
|
||||
baseWrapper.selectAs(WatchDataTemperature::getDataDate,XjScreenAbnormalVO::getDateTime);
|
||||
baseWrapper.ge(ObjectUtil.isNotNull(startTime),WatchDataTemperature::getDataDate,startTime);
|
||||
baseWrapper.le(ObjectUtil.isNotNull(endTime),WatchDataTemperature::getDataDate,endTime);
|
||||
baseWrapper.in(ObjectUtil.isNotNull(userIds),WatchDataTemperature::getBindUserId,userIds);
|
||||
//目前的表结构不支持部门的筛选 ,要支持需要嵌套日汇总表的子查询
|
||||
if(StrUtil.isNotEmpty(orgCode)){
|
||||
baseWrapper.in(WatchDataTemperature::getBindUserId,WatchStatUserInfoDayTemp.class,
|
||||
in -> in.select(WatchStatUserInfoDayTemp::getUserId)
|
||||
.likeRight(WatchStatUserInfoDayTemp::getOrgCode,orgCode)
|
||||
.ge(ObjectUtil.isNotNull(startTime),WatchStatUserInfoDayTemp::getDataDate,startTime)
|
||||
.le(ObjectUtil.isNotNull(endTime),WatchStatUserInfoDayTemp::getDataDate,endTime)
|
||||
.groupBy(WatchStatUserInfoDayTemp::getUserId)
|
||||
);
|
||||
}
|
||||
//(0-大于38,1-37.2-38,2-小于37.2)
|
||||
switch (search){
|
||||
case 0:
|
||||
baseWrapper.ge(WatchDataStress::getDataValue,38);
|
||||
break;
|
||||
case 1:
|
||||
baseWrapper.ge(WatchDataStress::getDataValue,37.2);
|
||||
baseWrapper.lt(WatchDataStress::getDataValue,38);
|
||||
break;
|
||||
case 2:
|
||||
baseWrapper.lt(WatchDataStress::getDataValue,37.2);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
result = temperatureMapper.selectJoinPage(result,XjScreenAbnormalVO.class,baseWrapper);
|
||||
return result;
|
||||
}
|
||||
|
||||
private IPage<XjScreenAbnormalVO> stressDataAbnormal(List<String> userIds, IPage<XjScreenAbnormalVO> result, Date startTime, Date endTime, String orgCode, Integer search) {
|
||||
MPJLambdaWrapper<WatchDataStress> baseWrapper = new MPJLambdaWrapper<>();
|
||||
baseWrapper.selectAs(WatchDataStress::getId,XjScreenAbnormalVO::getId);
|
||||
baseWrapper.selectAs(WatchDataStress::getBindUserId,XjScreenAbnormalVO::getUserId);
|
||||
baseWrapper.selectAs(WatchDataStress::getDataValue,XjScreenAbnormalVO::getDataValue);
|
||||
baseWrapper.selectAs(WatchDataStress::getDataDate,XjScreenAbnormalVO::getDateTime);
|
||||
baseWrapper.ge(ObjectUtil.isNotNull(startTime),WatchDataStress::getDataDate,startTime);
|
||||
baseWrapper.le(ObjectUtil.isNotNull(endTime),WatchDataStress::getDataDate,endTime);
|
||||
baseWrapper.in(ObjectUtil.isNotNull(userIds),WatchDataStress::getBindUserId,userIds);
|
||||
//目前的表结构不支持部门的筛选 ,要支持需要嵌套日汇总表的子查询
|
||||
if(StrUtil.isNotEmpty(orgCode)){
|
||||
baseWrapper.in(WatchDataStress::getBindUserId,WatchStatUserInfoDayStress.class,
|
||||
in -> in.select(WatchStatUserInfoDayStress::getUserId)
|
||||
.likeRight(WatchStatUserInfoDayStress::getOrgCode,orgCode)
|
||||
.ge(ObjectUtil.isNotNull(startTime),WatchStatUserInfoDayStress::getDataDate,startTime)
|
||||
.le(ObjectUtil.isNotNull(endTime),WatchStatUserInfoDayStress::getDataDate,endTime)
|
||||
.groupBy(WatchStatUserInfoDayStress::getUserId)
|
||||
);
|
||||
}
|
||||
//(0-偏高,1-中等,2-正常,3-放松) , 放松<30 30<=正常<60 60<=中等<80 80<偏高
|
||||
switch (search){
|
||||
case 0:
|
||||
baseWrapper.ge(WatchDataStress::getDataValue,80);
|
||||
break;
|
||||
case 1:
|
||||
baseWrapper.ge(WatchDataStress::getDataValue,60);
|
||||
baseWrapper.lt(WatchDataStress::getDataValue,80);
|
||||
break;
|
||||
case 2:
|
||||
baseWrapper.ge(WatchDataStress::getDataValue,30);
|
||||
baseWrapper.lt(WatchDataStress::getDataValue,60);
|
||||
break;
|
||||
case 3:
|
||||
baseWrapper.lt(WatchDataStress::getDataValue,30);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
result = stressMapper.selectJoinPage(result,XjScreenAbnormalVO.class,baseWrapper);
|
||||
return result;
|
||||
}
|
||||
|
||||
private IPage<XjScreenAbnormalVO> spo2DataAbnormal(List<String> userIds, IPage<XjScreenAbnormalVO> result, Date startTime, Date endTime, String orgCode, Integer search) {
|
||||
MPJLambdaWrapper<WatchDataSpo2> baseWrapper = new MPJLambdaWrapper<>();
|
||||
baseWrapper.selectAs(WatchDataSpo2::getId,XjScreenAbnormalVO::getId);
|
||||
baseWrapper.selectAs(WatchDataSpo2::getBindUserId,XjScreenAbnormalVO::getUserId);
|
||||
baseWrapper.selectAs(WatchDataSpo2::getDataValue,XjScreenAbnormalVO::getDataValue);
|
||||
baseWrapper.selectAs(WatchDataSpo2::getDataDate,XjScreenAbnormalVO::getDateTime);
|
||||
baseWrapper.ge(ObjectUtil.isNotNull(startTime),WatchDataSpo2::getDataDate,startTime);
|
||||
baseWrapper.le(ObjectUtil.isNotNull(endTime),WatchDataSpo2::getDataDate,endTime);
|
||||
baseWrapper.in(ObjectUtil.isNotNull(userIds),WatchDataSpo2::getBindUserId,userIds);
|
||||
//目前的表结构不支持部门的筛选 ,要支持需要嵌套日汇总表的子查询
|
||||
if(StrUtil.isNotEmpty(orgCode)){
|
||||
baseWrapper.in(WatchDataSpo2::getBindUserId,WatchStatUserInfoDaySpo2.class,
|
||||
in -> in.select(WatchStatUserInfoDaySpo2::getUserId)
|
||||
.likeRight(WatchStatUserInfoDaySpo2::getOrgCode,orgCode)
|
||||
.ge(ObjectUtil.isNotNull(startTime),WatchStatUserInfoDaySpo2::getDataDate,startTime)
|
||||
.le(ObjectUtil.isNotNull(endTime),WatchStatUserInfoDaySpo2::getDataDate,endTime)
|
||||
.groupBy(WatchStatUserInfoDaySpo2::getUserId)
|
||||
);
|
||||
}
|
||||
//search (0-异常,1-正常) ,>=90认为是正常
|
||||
baseWrapper.lt(search == 0,WatchDataHeartRate::getDataValue,90);
|
||||
baseWrapper.ge(search == 1,WatchDataHeartRate::getDataValue,90);
|
||||
result = spo2Mapper.selectJoinPage(result,XjScreenAbnormalVO.class,baseWrapper);
|
||||
return result;
|
||||
}
|
||||
|
||||
private IPage<XjScreenAbnormalVO> heartRateDataAbnormal(List<String> userIds, IPage<XjScreenAbnormalVO> result, Date startTime, Date endTime, String orgCode, Integer search) {
|
||||
MPJLambdaWrapper<WatchDataHeartRate> baseWrapper = new MPJLambdaWrapper<>();
|
||||
baseWrapper.selectAs(WatchDataHeartRate::getId,XjScreenAbnormalVO::getId);
|
||||
@@ -1466,8 +1605,8 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
|
||||
baseWrapper.ge(ObjectUtil.isNotNull(startTime),WatchDataHeartRate::getDataDate,startTime);
|
||||
baseWrapper.le(ObjectUtil.isNotNull(endTime),WatchDataHeartRate::getDataDate,endTime);
|
||||
baseWrapper.in(ObjectUtil.isNotNull(userIds),WatchDataHeartRate::getBindUserId,userIds);
|
||||
//目前的表结构不支持部门的筛选 ,要支持需要嵌套日汇总表的子查询
|
||||
if(StrUtil.isNotEmpty(orgCode)){
|
||||
//目前的表结构不支持部门的筛选 ,要支持需要嵌套日汇总表的子查询
|
||||
baseWrapper.in(WatchDataHeartRate::getBindUserId,WatchStatUserInfoDayHeartRate.class,
|
||||
in -> in.select(WatchStatUserInfoDayHeartRate::getUserId)
|
||||
.likeRight(WatchStatUserInfoDayHeartRate::getOrgCode,orgCode)
|
||||
@@ -1494,7 +1633,7 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
|
||||
if(!result.getRecords().isEmpty()){
|
||||
List<BaseEmployeeInfo> userList = sysBaseAPI.queryBaseEmployeeInfo(result.getRecords().stream().map(XjScreenAbnormalVO::getUserId).collect(Collectors.toSet()));
|
||||
result.getRecords().forEach(vo ->{
|
||||
BaseEmployeeInfo employeeInfo = userList.stream().filter(u -> vo.getUserId().equals(u.getUserId())).findFirst().orElse(null);
|
||||
BaseEmployeeInfo employeeInfo = userList.stream().filter(u -> u.getUserId().equals(vo.getUserId())).findFirst().orElse(null);
|
||||
if(null != employeeInfo){
|
||||
vo.setAge(employeeInfo.getAge());
|
||||
vo.setSex(employeeInfo.getSex());
|
||||
|
||||
Reference in New Issue
Block a user