Commit 1734bbd9 by huangjy

Merge remote-tracking branch 'origin/dev' into dev

parents 39abf54c d1c95f93
Showing with 654 additions and 120 deletions
...@@ -49,6 +49,14 @@ public class SwaggerSaasConfig { ...@@ -49,6 +49,14 @@ public class SwaggerSaasConfig {
} }
@Bean @Bean
public SwaggerModuleConfig deviceModule() {
SwaggerModuleConfig config = new SwaggerModuleConfig();
config.setPackageList(Arrays.asList("com.makeit.controller.device"));
config.setModuleName("设备管理");
return config;
}
@Bean
public Docket platApi() { public Docket platApi() {
Docket docket = new Docket(DocumentationType.SWAGGER_2) Docket docket = new Docket(DocumentationType.SWAGGER_2)
...@@ -91,6 +99,20 @@ public class SwaggerSaasConfig { ...@@ -91,6 +99,20 @@ public class SwaggerSaasConfig {
return builder.build(); return builder.build();
} }
@Bean
public Docket deviceApi() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("01-saas端设备管理");
ApiSelectorBuilder builder = docket.select();
//api过滤
builder = builder.apis(
RequestHandlerSelectors.basePackage("com.makeit.controller.device")
);
return builder.build();
}
private ApiInfo apiInfo() { private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("IOT文档") return new ApiInfoBuilder().title("IOT文档")
.description("服务端接口文档") .description("服务端接口文档")
......
package com.makeit.controller.saas; package com.makeit.controller.device;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
...@@ -47,20 +47,4 @@ public class SaasDeviceController { ...@@ -47,20 +47,4 @@ public class SaasDeviceController {
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("实时数据")
@PostMapping("realTimeDate")
@TenantIdIgnore
public ApiResponseEntity<PlatDevice> realTimeDate(@RequestBody PlatDevice platDevice) {
//todo
return null;
}
@ApiOperation("数据分析")
@PostMapping("dataAnalysis")
@TenantIdIgnore
public ApiResponseEntity<PlatDevice> dataAnalysis(@RequestBody PlatDevice platDevice) {
//todo
return null;
}
} }
package com.makeit.controller.device;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "租户管理-租户设备实时数据")
@RestController
@RequestMapping("/saas/device/realTime")
public class SaasDeviceRealTimeController {
@Autowired
private PlatElderRealTimeService platElderRealTimeService;
@ApiOperation("现在状态")
@PostMapping("nowStatus")
@TenantIdIgnore
public ApiResponseEntity<PlatElderRealTimeNowVO> nowStatus(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.nowStatus(platElderIdDTO));
}
@ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory")
@TenantIdIgnore
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.heartRespiratory(platElderIdDTO));
}
@ApiOperation("体动")
@PostMapping("body")
@TenantIdIgnore
public ApiResponseEntity<PlatElderRealTimeBodyVO> body(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.body(platElderIdDTO));
}
@ApiOperation("坐标")
@PostMapping("coordinate")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinate(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.coordinate(platElderIdDTO));
}
}
package com.makeit.controller.device;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderDayReportDayService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorDistributionVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorExceptionRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 长者基本信息 前端控制器
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Api(tags = "数据分析-日报")
@RestController
@RequestMapping("/saas/device/report/day")
public class SaasDeviceReportDayController {
@Autowired
private PlatElderDayReportDayService platElderDayReportDayService;
@ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("睡眠图表")
@PostMapping("sleepDiagram")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryVO>> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratory(platElderIdDTO));
}
@ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("跌倒记录")
@PostMapping("failRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
@ApiOperation("坐标记录")
@PostMapping("coordinateList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.coordinateList(platElderIdDTO));
}
@ApiOperation("行为辐射")
@PostMapping("behaviorDistribution")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
}
}
package com.makeit.controller.device;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO;
import com.makeit.vo.platform.elder.report.day.PlatElderReportMonthVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 长者基本信息 前端控制器
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Api(tags = "数据分析-月报")
@RestController
@RequestMapping("/saas/device/report/month")
public class SaasDeviceReportMonthController {
@ApiOperation("综合评价")
@PostMapping("comprehensiveEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("月报表")
@PostMapping("reportMonth")
@TenantIdIgnore
public ApiResponseEntity<PlatElderReportMonthVO> reportMonth(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
}
package com.makeit.controller.device;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderDayReportWeekService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorDistributionVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorExceptionRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderRealTimeHeartRespiratoryWeekVO;
import com.makeit.vo.platform.elder.report.week.PlatElderSleepDiagramWeekVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 长者基本信息 前端控制器
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Api(tags = "数据分析-周报")
@RestController
@RequestMapping("/saas/device/report/week")
public class SaasDeviceReportWeekController {
@Autowired
private PlatElderDayReportWeekService platElderDayReportWeekService;
@ApiOperation("综合评价")
@PostMapping("comprehensiveEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("睡眠图表")
@PostMapping("sleepDiagram")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderSleepDiagramWeekVO>> sleepDiagram(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation")
@TenantIdIgnore
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory")
@TenantIdIgnore
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryWeekVO> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("跌倒记录")
@PostMapping("failRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
@ApiOperation("坐标记录")
@PostMapping("coordinateList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportWeekService.coordinateList(platElderIdDTO));
}
@ApiOperation("行为辐射")
@PostMapping("behaviorDistribution")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
}
}
...@@ -102,6 +102,8 @@ public class RedisConst { ...@@ -102,6 +102,8 @@ public class RedisConst {
public static final String ELDER_DAY_DURATION_PREFIX = "plat:day:duration:device:"; public static final String ELDER_DAY_DURATION_PREFIX = "plat:day:duration:device:";
public static final String LOCK_ALARM = "lock:alarm:device:id:";
......
...@@ -17,10 +17,10 @@ public class MsgSendUtil { ...@@ -17,10 +17,10 @@ public class MsgSendUtil {
* 发送消息 * 发送消息
*/ */
public void send(MsgSendDTO msgSendDTO){ public void send(MsgSendDTO msgSendDTO){
for (IMsgSender msgSender : msgSenderList) { // for (IMsgSender msgSender : msgSenderList) {
if(msgSender.support(msgSendDTO.getSendTypeEnum())){ // if(msgSender.support(msgSendDTO.getSendTypeEnum())){
msgSender.send(msgSendDTO); // msgSender.send(msgSendDTO);
} // }
} // }
} }
} }
...@@ -40,7 +40,7 @@ public class MailMsgSender implements IMsgSender { ...@@ -40,7 +40,7 @@ public class MailMsgSender implements IMsgSender {
helper.setText(msgDTO.getOriContent(), false); helper.setText(msgDTO.getOriContent(), false);
mailSender.send(message); mailSender.send(message);
} catch (Exception e) { } catch (Exception e) {
log.error("发送邮箱异常:",e); log.error("发送邮箱异常:",msgDTO,e);
} }
} }
......
...@@ -69,7 +69,7 @@ public class SmsMsgSender implements IMsgSender{ ...@@ -69,7 +69,7 @@ public class SmsMsgSender implements IMsgSender{
log.info("发送短信成功"); log.info("发送短信成功");
} }
}catch (Exception e){ }catch (Exception e){
log.error("发送短信异常:",e); log.error("发送短信异常:",msgDTO,e);
} }
} }
......
...@@ -77,7 +77,7 @@ public class SmsVoiceSender implements IMsgSender{ ...@@ -77,7 +77,7 @@ public class SmsVoiceSender implements IMsgSender{
throw new BusinessException((String) jsonObject.get("status_code")); throw new BusinessException((String) jsonObject.get("status_code"));
} }
}catch (Exception e){ }catch (Exception e){
log.error("发送语音异常:",e); log.error("发送语音异常:",msgDTO,e);
} }
} }
} }
package com.makeit.com.makeit.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 长者月报 前端控制器
* </p>
*
* @author eugene young
* @since 2023-09-14
*/
@RestController
@RequestMapping("/plat-elder-report-month")
public class PlatElderReportMonthController {
}
...@@ -49,19 +49,19 @@ public class PlatElderReportDayController { ...@@ -49,19 +49,19 @@ public class PlatElderReportDayController {
@ApiOperation("心率呼吸评价") @ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation") @PostMapping("heartRespiratoryEvaluation")
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratoryEvaluation(platElderIdDTO));
} }
@ApiOperation("心率异常记录") @ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList") @PostMapping("heartExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.heartExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("呼吸率异常记录") @ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList") @PostMapping("respiratoryExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.respiratoryExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("心率呼吸率") @ApiOperation("心率呼吸率")
......
...@@ -2,18 +2,23 @@ package com.makeit.module.controller.elder; ...@@ -2,18 +2,23 @@ package com.makeit.module.controller.elder;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderReportDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.service.platform.elder.PlatElderReportMonthService;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO; import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO;
import com.makeit.vo.platform.elder.report.day.PlatElderReportMonthVO; import com.makeit.vo.platform.elder.report.day.PlatElderReportMonthVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO; import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO; import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* <p> * <p>
* 长者基本信息 前端控制器 * 长者基本信息 前端控制器
...@@ -27,6 +32,9 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -27,6 +32,9 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/plat/elder/report/month") @RequestMapping("/plat/elder/report/month")
public class PlatElderReportMonthController { public class PlatElderReportMonthController {
@Autowired
private PlatElderReportMonthService platElderReportMonthService;
@ApiOperation("综合评价") @ApiOperation("综合评价")
@PostMapping("comprehensiveEvaluation") @PostMapping("comprehensiveEvaluation")
public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
...@@ -48,8 +56,8 @@ public class PlatElderReportMonthController { ...@@ -48,8 +56,8 @@ public class PlatElderReportMonthController {
@ApiOperation("月报表") @ApiOperation("月报表")
@PostMapping("reportMonth") @PostMapping("reportMonth")
public ApiResponseEntity<PlatElderReportMonthVO> reportMonth(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderReportMonthVO>> reportMonth(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderReportMonthService.reportMonth(platElderIdDTO));
} }
......
...@@ -3,16 +3,10 @@ package com.makeit.module.controller.wechat.space; ...@@ -3,16 +3,10 @@ package com.makeit.module.controller.wechat.space;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.utils.user.wechat.WechatUserUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -74,9 +68,9 @@ public class PlatSpaceWechatController { ...@@ -74,9 +68,9 @@ public class PlatSpaceWechatController {
} }
@ApiOperation("一级空间列表(该账号权限下)") @ApiOperation("一级空间列表")
@PostMapping("oneLevelList") @PostMapping("oneLevelList")
public ApiResponseEntity<List<PlatSpaceAddDTO>> oneLevelList(@RequestBody PlatOrgDTO dto) { public ApiResponseEntity<List<PlatSpaceAddDTO>> oneLevelList(@RequestBody BaseIdDTO dto) {
List<PlatSpaceAddDTO> data = spaceService.oneLevelList(dto); List<PlatSpaceAddDTO> data = spaceService.oneLevelList(dto);
return ApiResponseUtils.success(data); return ApiResponseUtils.success(data);
} }
......
...@@ -27,7 +27,12 @@ public class PlatAlarmCheckDTO { ...@@ -27,7 +27,12 @@ public class PlatAlarmCheckDTO {
private JSONObject properties; private JSONObject properties;
//PlatAlarmRecord.remark //PlatAlarmRecord.remark
//异常说明
private String remark; private String remark;
//异常值
private String abnormalValue;
private PlatRegionSetting platRegionSetting; private PlatRegionSetting platRegionSetting;
} }
...@@ -11,7 +11,7 @@ import java.time.LocalDateTime; ...@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 长者基本信息server-service/src/main/java/com/makeit/server/platform/elder/PlatElderPhysicalReportService.java * 长者基本信息
* </p> * </p>
* *
* @author eugene young * @author eugene young
...@@ -20,12 +20,18 @@ import java.time.LocalDateTime; ...@@ -20,12 +20,18 @@ import java.time.LocalDateTime;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Elder对象", description = "长者基本信息") @ApiModel(value = "Elder对象", description = "长者基本信息")
public class PlatElderReportDTO extends PlatElderIdDTO{ public class PlatElderReportDTO extends PlatElderIdDTO {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("日期") @ApiModelProperty("日期")
private LocalDate now; private LocalDate now;
@ApiModelProperty("月份")
private Integer year;
@ApiModelProperty("月份")
private Integer month;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间") @ApiModelProperty("开始时间")
private LocalDateTime startTime; private LocalDateTime startTime;
......
...@@ -7,7 +7,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -7,7 +7,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
/** /**
* 告警记录 * 告警记录
...@@ -28,7 +27,7 @@ public class PlatAlarmRecord extends BaseBusEntity { ...@@ -28,7 +27,7 @@ public class PlatAlarmRecord extends BaseBusEntity {
/** /**
* 告警时间 * 告警时间
*/ */
private Date alarmDate; private LocalDateTime alarmDate;
/** /**
* 状态 0 待处理 1 已处理 * 状态 0 待处理 1 已处理
...@@ -75,11 +74,18 @@ public class PlatAlarmRecord extends BaseBusEntity { ...@@ -75,11 +74,18 @@ public class PlatAlarmRecord extends BaseBusEntity {
*/ */
private String elderIds; private String elderIds;
//异常说明
private String remark; private String remark;
@TableField(exist = false) @TableField(exist = false)
private String elderName; private String elderName;
//异常值
private String abnormalValue;
@ApiModelProperty("区域名称")
private String regionName;
} }
......
...@@ -70,7 +70,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -70,7 +70,7 @@ public class BehaviorAlarm implements IAlarm {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId(); String deviceId = platDevice.getOriDeviceId();
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
log.info("行为告警配置未配置,告警配置id:" + config.getId()); log.error("行为告警配置未配置,告警配置id:" + config.getId());
return; return;
} }
String personState = Convert.toStr(properties.get("personState")); String personState = Convert.toStr(properties.get("personState"));
...@@ -78,7 +78,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -78,7 +78,7 @@ public class BehaviorAlarm implements IAlarm {
Integer duration = ruleConfig.getDuration();//分钟 Integer duration = ruleConfig.getDuration();//分钟
PlatDayDurationRecord platDayDurationRecord = dayDurationUtil.get(platDevice.getOriDeviceId()); PlatDayDurationRecord platDayDurationRecord = dayDurationUtil.get(platDevice.getOriDeviceId());
if (platDayDurationRecord == null) { if (platDayDurationRecord == null) {
log.info("行为告警未找到行为异常平均时长,设备id:" + platDevice.getId()); log.error("行为告警未找到行为异常平均时长,设备id:" + platDevice.getId());
return; return;
} }
Long duration1 = platDayDurationRecord.getDuration(); Long duration1 = platDayDurationRecord.getDuration();
...@@ -101,13 +101,13 @@ public class BehaviorAlarm implements IAlarm { ...@@ -101,13 +101,13 @@ public class BehaviorAlarm implements IAlarm {
alarmRedisDTO.setStartLong(endLong); alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO);
log.info("空间雷达上报进入房间,设备id:" + platDevice.getId()); log.error("空间雷达上报进入房间,设备id:" + platDevice.getId());
return; return;
} }
long count = endLong - startLong; long count = endLong - startLong;
//进入空间时间满足告警时长,判断是否已经告警过了 //进入空间时间满足告警时长,判断是否已经告警过了
if (count / 1000 >= duration && StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.NO.getValue())) { if (count / 1000 >= duration && StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.NO.getValue())) {
log.info("空间雷达发出告警,设备id:" + platDevice.getId()); log.error("空间雷达发出告警,设备id:" + platDevice.getId());
notice(platAlarmCheckDTO); notice(platAlarmCheckDTO);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue()); alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO);
...@@ -146,7 +146,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -146,7 +146,7 @@ public class BehaviorAlarm implements IAlarm {
//save db //save db
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
if(CollectionUtils.isEmpty(platAlarmCheckDTO.getPlatElderList())){ if(CollectionUtils.isEmpty(platAlarmCheckDTO.getPlatElderList())){
log.info("未关联长者,设备id:"+platDevice.getId()); log.error("未关联长者,设备id:"+platDevice.getId());
return; return;
} }
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom(); PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
...@@ -171,11 +171,12 @@ public class BehaviorAlarm implements IAlarm { ...@@ -171,11 +171,12 @@ public class BehaviorAlarm implements IAlarm {
@Override @Override
public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) { public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
//获取长者 空间信息 //获取长者 空间信息
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if (CollectionUtils.isEmpty(platElderList)) { if (CollectionUtils.isEmpty(platElderList)) {
log.info("未关联长者,设备id:"+platAlarmCheckDTO.getPlatDevice().getId()); log.error("未关联长者,设备id:"+platAlarmCheckDTO.getPlatDevice().getId());
return; return;
} }
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom(); PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
...@@ -197,6 +198,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -197,6 +198,7 @@ public class BehaviorAlarm implements IAlarm {
platAlarmRecord.setElderIds(platElder.getId()); platAlarmRecord.setElderIds(platElder.getId());
platAlarmRecord.setElderName(platElder.getName()); platAlarmRecord.setElderName(platElder.getName());
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord); platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord);
log.error("长者行为异常,发出告警,设备id:"+platDevice.getId()+", 长者名称:"+platElder.getName());
} }
} }
} }
...@@ -56,7 +56,7 @@ public class BreathAlarm implements IAlarm { ...@@ -56,7 +56,7 @@ public class BreathAlarm implements IAlarm {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId(); String deviceId = platDevice.getOriDeviceId();
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
log.info("呼吸告警配置未配置,告警配置id:" + config.getId()); log.error("呼吸告警配置未配置,告警配置id:" + config.getId());
return; return;
} }
String personState = Convert.toStr(properties.get("personState")); String personState = Convert.toStr(properties.get("personState"));
...@@ -85,17 +85,18 @@ public class BreathAlarm implements IAlarm { ...@@ -85,17 +85,18 @@ public class BreathAlarm implements IAlarm {
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
alarmRedisDTO.setStartLong(endLong); alarmRedisDTO.setStartLong(endLong);
RedisUtil.set(RedisConst.ALARM_DEVICE_BR_ID + deviceId,alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_BR_ID + deviceId,alarmRedisDTO);
log.info("发现长者呼吸异常,设备id:"+deviceId); log.error("发现长者呼吸异常,设备id:"+deviceId);
return; return;
} }
Long startLong = alarmRedisDTO.getStartLong(); Long startLong = alarmRedisDTO.getStartLong();
long count = endLong - startLong; long count = endLong - startLong;
if (count/1000 >= duration) { if (count/1000 >= duration) {
if (StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) { if (StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) {
log.info("呼吸已告警,设备id:" + platDevice.getId()); log.error("呼吸已告警,设备id:" + platDevice.getId());
return; return;
} }
fillRemark(platAlarmCheckDTO, br, start, end); fillRemark(platAlarmCheckDTO, br, start, end);
platAlarmCheckDTO.setAbnormalValue(Convert.toStr(br));
notice(platAlarmCheckDTO); notice(platAlarmCheckDTO);
alarmRedisDTO.setStartLong(endLong); alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
...@@ -127,9 +128,10 @@ public class BreathAlarm implements IAlarm { ...@@ -127,9 +128,10 @@ public class BreathAlarm implements IAlarm {
@Override @Override
public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) { public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) {
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if (CollectionUtils.isEmpty(platElderList)) { if (CollectionUtils.isEmpty(platElderList)) {
log.info("未关联长者,设备id:"+platAlarmCheckDTO.getPlatDevice().getId()); log.error("未关联长者,设备id:"+platAlarmCheckDTO.getPlatDevice().getId());
return; return;
} }
for (PlatElder platElder : platElderList) { for (PlatElder platElder : platElderList) {
...@@ -141,6 +143,7 @@ public class BreathAlarm implements IAlarm { ...@@ -141,6 +143,7 @@ public class BreathAlarm implements IAlarm {
platAlarmRecord.setElderIds(platElder.getId()); platAlarmRecord.setElderIds(platElder.getId());
platAlarmRecord.setElderName(platElder.getName()); platAlarmRecord.setElderName(platElder.getName());
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord); platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord);
log.error("长者呼吸异常,发出告警,设备id:"+platDevice.getId()+", 长者名称:"+platElder.getName());
} }
} }
} }
...@@ -48,6 +48,9 @@ public class FallAlarm implements IAlarm { ...@@ -48,6 +48,9 @@ public class FallAlarm implements IAlarm {
String personState = Convert.toStr(properties.get("personState")); String personState = Convert.toStr(properties.get("personState"));
AlarmRedisDTO alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_FALL_ID + deviceId); AlarmRedisDTO alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_FALL_ID + deviceId);
if (StringUtils.equals(personState, CommonEnum.YES.getValue())) { if (StringUtils.equals(personState, CommonEnum.YES.getValue())) {
if (StringUtils.equals(alarmRedisDTO.getAlarm(),CommonEnum.YES.getValue())){
log.error("长者跌倒,已告警过,设备iot_id:"+deviceId);
}
notice(platAlarmCheckDTO); notice(platAlarmCheckDTO);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue()); alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_FALL_ID, alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_FALL_ID, alarmRedisDTO);
...@@ -63,7 +66,7 @@ public class FallAlarm implements IAlarm { ...@@ -63,7 +66,7 @@ public class FallAlarm implements IAlarm {
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if (CollectionUtils.isEmpty(platElderList)) { if (CollectionUtils.isEmpty(platElderList)) {
log.info("跌倒设备未关联长者,设备id:" + platDevice.getId()); log.error("跌倒设备未关联长者,设备id:" + platDevice.getId());
return; return;
} }
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom(); PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
...@@ -76,6 +79,7 @@ public class FallAlarm implements IAlarm { ...@@ -76,6 +79,7 @@ public class FallAlarm implements IAlarm {
platAlarmRecord.setElderIds(platElder.getId()); platAlarmRecord.setElderIds(platElder.getId());
platAlarmRecord.setElderName(platElder.getName()); platAlarmRecord.setElderName(platElder.getName());
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord); platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord);
log.error("长者跌倒,发出告警,设备id:"+platDevice.getId()+", 长者名称:"+platElder.getName());
} }
} }
} }
...@@ -47,7 +47,7 @@ public class HeartAlarm implements IAlarm { ...@@ -47,7 +47,7 @@ public class HeartAlarm implements IAlarm {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId(); String deviceId = platDevice.getOriDeviceId();
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
log.info("心率告警配置未配置,告警配置id:" + config.getId()); log.error("心率告警配置未配置,告警配置id:" + config.getId());
return; return;
} }
String personState = Convert.toStr(properties.get("personState")); String personState = Convert.toStr(properties.get("personState"));
...@@ -75,17 +75,20 @@ public class HeartAlarm implements IAlarm { ...@@ -75,17 +75,20 @@ public class HeartAlarm implements IAlarm {
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
alarmRedisDTO.setStartLong(endLong); alarmRedisDTO.setStartLong(endLong);
RedisUtil.set(RedisConst.ALARM_DEVICE_HR_ID + deviceId,alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_HR_ID + deviceId,alarmRedisDTO);
log.info("发现长者心率异常,设备id:"+deviceId); log.error("发现长者心率异常,设备id:"+deviceId);
return; return;
} }
Long startLong = alarmRedisDTO.getStartLong(); Long startLong = alarmRedisDTO.getStartLong();
long count = endLong - startLong; long count = endLong - startLong;
if (count/1000 >= duration) { if (count/1000 >= duration) {
//todo 如果每台服务器都能收到上报消息 加redis锁
//RLock lock = RedisLockUtil.lock(RedisConst.LOCK_ALARM + deviceId);
if (StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) { if (StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) {
log.info("心率已告警,设备id:" + platDevice.getId()); log.error("心率已告警,设备id:" + platDevice.getId());
return; return;
} }
fillRemark(platAlarmCheckDTO, hr, start, end); fillRemark(platAlarmCheckDTO, hr, start, end);
platAlarmCheckDTO.setAbnormalValue(Convert.toStr(hr));
notice(platAlarmCheckDTO); notice(platAlarmCheckDTO);
alarmRedisDTO.setStartLong(endLong); alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
...@@ -110,9 +113,10 @@ public class HeartAlarm implements IAlarm { ...@@ -110,9 +113,10 @@ public class HeartAlarm implements IAlarm {
@Override @Override
public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) { public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) {
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if (CollectionUtils.isEmpty(platElderList)) { if (CollectionUtils.isEmpty(platElderList)) {
log.info("跌倒设备未关联长者,设备id:" + platAlarmCheckDTO.getPlatDevice().getId()); log.error("心率设备未关联长者,设备id:" + platAlarmCheckDTO.getPlatDevice().getId());
return; return;
} }
for (PlatElder platElder : platElderList) { for (PlatElder platElder : platElderList) {
...@@ -124,6 +128,7 @@ public class HeartAlarm implements IAlarm { ...@@ -124,6 +128,7 @@ public class HeartAlarm implements IAlarm {
platAlarmRecord.setElderIds(platElder.getId()); platAlarmRecord.setElderIds(platElder.getId());
platAlarmRecord.setElderName(platElder.getName()); platAlarmRecord.setElderName(platElder.getName());
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord); platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord);
log.error("长者心率异常,发出告警,设备id:"+platDevice.getId()+", 长者名称:"+platElder.getName());
} }
} }
} }
...@@ -52,7 +52,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -52,7 +52,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
...@@ -323,11 +322,12 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -323,11 +322,12 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
List<String> param = platAlarmCheckDTO.getParam(); List<String> param = platAlarmCheckDTO.getParam();
List<PlatElder> elderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> elderList = platAlarmCheckDTO.getPlatElderList();
PlatRegionSetting platRegionSetting = platAlarmCheckDTO.getPlatRegionSetting();
PlatAlarmRecord platAlarmRecord = new PlatAlarmRecord(); PlatAlarmRecord platAlarmRecord = new PlatAlarmRecord();
platAlarmRecord.setAlarmId(config.getId()); platAlarmRecord.setAlarmId(config.getId());
platAlarmRecord.setAlarmType(config.getAlarmType()); platAlarmRecord.setAlarmType(config.getAlarmType());
platAlarmRecord.setAlarmDate(new Date()); platAlarmRecord.setAlarmDate(LocalDateTime.now());
platAlarmRecord.setStatus(CommonEnum.NO.getValue()); platAlarmRecord.setStatus(CommonEnum.NO.getValue());
platAlarmRecord.setNoticeStatus(CommonEnum.NO.getValue()); platAlarmRecord.setNoticeStatus(CommonEnum.NO.getValue());
//模板信息 替换参数 //模板信息 替换参数
...@@ -338,6 +338,11 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -338,6 +338,11 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platAlarmRecord.setElderIds(elderList.stream().map(BaseEntity::getId).collect(Collectors.joining(","))); platAlarmRecord.setElderIds(elderList.stream().map(BaseEntity::getId).collect(Collectors.joining(",")));
platAlarmRecord.setTenantId(config.getTenantId()); platAlarmRecord.setTenantId(config.getTenantId());
platAlarmRecord.setRemark(platAlarmCheckDTO.getRemark());
platAlarmRecord.setAbnormalValue(platAlarmCheckDTO.getAbnormalValue());
if(platRegionSetting!=null) {
platAlarmRecord.setRegionName(platRegionSetting.getRegionName());
}
return platAlarmRecord; return platAlarmRecord;
} }
......
...@@ -386,6 +386,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -386,6 +386,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
//如果是租户账号 则有所有权限 //如果是租户账号 则有所有权限
if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) { if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) {
List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>() List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>()
.eq(StringUtils.isNotEmpty(param.getType()), PlatOrg::getType, param.getType())
.eq(PlatOrg::getStatus, CommonEnum.YES.getValue()) .eq(PlatOrg::getStatus, CommonEnum.YES.getValue())
); );
return getOrgTree(orgList, Collections.singletonList(TenantIdUtil.getTenantId())); return getOrgTree(orgList, Collections.singletonList(TenantIdUtil.getTenantId()));
...@@ -393,7 +394,9 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -393,7 +394,9 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
//平台账号 //平台账号
Set<String> orgIdList = getOrgIdListByUserId(userVO.getId()); Set<String> orgIdList = getOrgIdListByUserId(userVO.getId());
List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>().in(BaseEntity::getId, orgIdList).eq(PlatOrg::getStatus, CommonEnum.YES.getValue())); List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>()
.eq(StringUtils.isNotEmpty(param.getType()), PlatOrg::getType, param.getType())
.in(BaseEntity::getId, orgIdList).eq(PlatOrg::getStatus, CommonEnum.YES.getValue()));
if (CollectionUtils.isEmpty(orgList)) { if (CollectionUtils.isEmpty(orgList)) {
return new ArrayList<>(); return new ArrayList<>();
} }
...@@ -464,6 +467,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -464,6 +467,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
//如果是租户账号 则有所有权限 //如果是租户账号 则有所有权限
if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) { if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) {
List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>() List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>()
.eq(StringUtils.isNotEmpty(param.getType()), PlatOrg::getType, param.getType())
.eq(PlatOrg::getStatus, CommonEnum.YES.getValue()) .eq(PlatOrg::getStatus, CommonEnum.YES.getValue())
); );
return orgList; return orgList;
...@@ -471,7 +475,9 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -471,7 +475,9 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
//平台账号 //平台账号
Set<String> orgIdList = getOrgIdListByUserId(userVO.getId()); Set<String> orgIdList = getOrgIdListByUserId(userVO.getId());
List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>().in(BaseEntity::getId, orgIdList).eq(PlatOrg::getStatus, CommonEnum.YES.getValue())); List<PlatOrg> orgList = this.list(new LambdaQueryWrapper<PlatOrg>()
.eq(StringUtils.isNotEmpty(param.getType()), PlatOrg::getType, param.getType())
.in(BaseEntity::getId, orgIdList).eq(PlatOrg::getStatus, CommonEnum.YES.getValue()));
if (CollectionUtils.isEmpty(orgList)) { if (CollectionUtils.isEmpty(orgList)) {
return new ArrayList<>(); return new ArrayList<>();
} }
......
package com.makeit.service.platform.elder; package com.makeit.service.platform.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO; import com.makeit.vo.platform.elder.report.day.*;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
...@@ -23,8 +26,18 @@ public interface PlatElderDayReportDayService { ...@@ -23,8 +26,18 @@ public interface PlatElderDayReportDayService {
List<PlatElderSleepDiagramVO> sleepDiagram(PlatElderReportDTO platElderIdDTO); List<PlatElderSleepDiagramVO> sleepDiagram(PlatElderReportDTO platElderIdDTO);
PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO); List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<String> failRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end); List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end);
List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO); List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
......
package com.makeit.service.platform.elder; package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.elder.PlatElderReportMonth; import com.makeit.entity.platform.elder.PlatElderReportMonth;
import com.makeit.vo.platform.elder.report.day.PlatElderReportMonthVO;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +17,7 @@ import com.makeit.entity.platform.elder.PlatElderReportMonth; ...@@ -13,4 +17,7 @@ import com.makeit.entity.platform.elder.PlatElderReportMonth;
*/ */
public interface PlatElderReportMonthService extends IService<PlatElderReportMonth> { public interface PlatElderReportMonthService extends IService<PlatElderReportMonth> {
List<PlatElderReportMonthVO> reportMonth(PlatElderReportDTO platElderIdDTO);
} }
...@@ -2,12 +2,16 @@ package com.makeit.service.platform.elder.impl; ...@@ -2,12 +2,16 @@ package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.dto.platform.elder.PlatElderReportDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
import com.makeit.entity.platform.elder.PlatElderSleep; import com.makeit.entity.platform.elder.PlatElderSleep;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis; import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.module.iot.service.IotProductDeviceService; import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe; import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentSpace; import com.makeit.module.iot.vo.breathe.DeviceInfoContentSpace;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.device.PlatDeviceService; import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.*; import com.makeit.service.platform.elder.*;
import com.makeit.utils.LongTimestampUtil; import com.makeit.utils.LongTimestampUtil;
...@@ -16,9 +20,7 @@ import com.makeit.utils.data.validate.CollectionUtils; ...@@ -16,9 +20,7 @@ import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.time.LocalDateTimeUtils; import com.makeit.utils.time.LocalDateTimeUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramContentVO; import com.makeit.vo.platform.elder.report.day.*;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -47,6 +49,11 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -47,6 +49,11 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
private PlatElderSleepAnalysisService platElderSleepAnalysisService; private PlatElderSleepAnalysisService platElderSleepAnalysisService;
@Autowired @Autowired
private PlatElderBreatheAnalysisService platElderBreatheAnalysisService;
private PlatAlarmRecordService platAlarmRecordService;
@Autowired
private IotProductDeviceService iotProductDeviceService; private IotProductDeviceService iotProductDeviceService;
@Autowired @Autowired
...@@ -105,7 +112,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -105,7 +112,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
LocalDateTime start = dayStartNow(now); LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now); LocalDateTime end = dayEndNow(now);
List<PlatElderSleepDiagramVO> voList = new ArrayList<>(10); List<PlatElderSleepDiagramVO> voList;
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now); String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
...@@ -140,6 +147,74 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -140,6 +147,74 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override @Override
public PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
PlatElderHeartRespiratoryEvaluationVO platElderSleepEvaluationVO = new PlatElderHeartRespiratoryEvaluationVO();
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
PlatElderBreatheAnalysis platElderSleepAnalysis = platElderBreatheAnalysisService.getOne(new QueryWrapper<PlatElderBreatheAnalysis>().lambda()
.eq(PlatElderBreatheAnalysis::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderBreatheAnalysis::getCurrentDate, nowString)
);
if (platElderSleepAnalysis == null) {
return platElderSleepEvaluationVO;
}
platElderSleepEvaluationVO.setScore(Integer.valueOf(platElderSleepAnalysis.getBreatheScore() + ""));
platElderSleepEvaluationVO.setResult(platElderSleepAnalysis.getBreatheResult());
platElderSleepEvaluationVO.setEvaluation(platElderSleepAnalysis.getBreatheEvaluate());
platElderSleepEvaluationVO.setHeartRate(Integer.valueOf(platElderSleepAnalysis.getAvgHeartRate() + ""));
platElderSleepEvaluationVO.setRespiratoryRate(Integer.valueOf(platElderSleepAnalysis.getAvgBreatheRate() + ""));
return platElderSleepEvaluationVO;
}
private List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType) {
PlatDevice device = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (device == null) {
return new ArrayList<>(10);
}
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, alarmType)
.eq(PlatAlarmRecord::getDeviceId, device.getId())
.orderByDesc(PlatAlarmRecord::getAlarmDate)
);
List<PlatElderHeartRespiratoryEvaluationRecordVO> voList = StreamUtil.map(recordList, e -> {
PlatElderHeartRespiratoryEvaluationRecordVO vo = new PlatElderHeartRespiratoryEvaluationRecordVO();
vo.setTime(e.getAlarmDate());
vo.setStatus(e.getRemark());
vo.setRate(Integer.valueOf(e.getAbnormalValue() + ""));
return vo;
});
return voList;
}
@Override
public List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO) {
return heartRespiratoryExceptionRecordList(platElderIdDTO, PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue());
}
@Override
public List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO) {
return heartRespiratoryExceptionRecordList(platElderIdDTO, PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue());
}
@Override
public List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO) { public List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO) {
PlatDevice platDevice = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId()); PlatDevice platDevice = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
...@@ -170,6 +245,41 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -170,6 +245,41 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override @Override
public List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (CollectionUtils.isEmpty(platDeviceList)) {
return new ArrayList<>(10);
}
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue())
.in(PlatAlarmRecord::getDeviceId, StreamUtil.mapId(platDeviceList, PlatDevice::getId))
.orderByDesc(PlatAlarmRecord::getAlarmDate)
);
List<PlatElderBehaviorExceptionRecordVO> voList = StreamUtil.map(recordList, e -> {
PlatElderBehaviorExceptionRecordVO vo = new PlatElderBehaviorExceptionRecordVO();
vo.setTime(e.getAlarmDate());
//vo.setRoomId(e.get);
vo.setRoomName(e.getRegionName());
vo.setDuration(Integer.valueOf(e.getAbnormalValue() + ""));
return vo;
});
return voList;
}
@Override
public List<String> failRecordList(PlatElderReportDTO platElderIdDTO) {
return null;
}
@Override
public List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end) { public List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, deviceId); List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, deviceId);
......
package com.makeit.service.platform.elder.impl; package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.elder.PlatElderReportMonth; import com.makeit.entity.platform.elder.PlatElderReportMonth;
import com.makeit.mapper.platform.elder.PlatElderReportMonthMapper; import com.makeit.mapper.platform.elder.PlatElderReportMonthMapper;
import com.makeit.service.platform.elder.PlatElderReportMonthService; import com.makeit.service.platform.elder.PlatElderReportMonthService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.time.LocalDateTimeUtils;
import com.makeit.vo.platform.elder.report.day.PlatElderReportMonthVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
/** /**
* <p> * <p>
* 长者月报 服务实现类 * 长者月报 服务实现类
...@@ -17,4 +25,20 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +25,20 @@ import org.springframework.stereotype.Service;
@Service @Service
public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReportMonthMapper, PlatElderReportMonth> implements PlatElderReportMonthService { public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReportMonthMapper, PlatElderReportMonth> implements PlatElderReportMonthService {
@Override
public List<PlatElderReportMonthVO> reportMonth(PlatElderReportDTO platElderIdDTO) {
LocalDate start = LocalDate.of(platElderIdDTO.getYear(), platElderIdDTO.getMonth(), 1);
LocalDate end = LocalDateTimeUtils.getMonthMax(start);
List<PlatElderReportMonth> monthList = list(new QueryWrapper<PlatElderReportMonth>().lambda()
.eq(PlatElderReportMonth::getElderId, platElderIdDTO.getElderId())
.ge(PlatElderReportMonth::getDay, start)
.le(PlatElderReportMonth::getDay, end)
);
List<PlatElderReportMonthVO> voList = BeanDtoVoUtils.listVo(monthList, PlatElderReportMonthVO.class);
return voList;
}
} }
package com.makeit.service.platform.space; package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.platform.auth.PlatOrgDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO; import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import java.util.List; import java.util.List;
...@@ -62,7 +61,7 @@ public interface PlatSpaceService extends IService<PlatSpace> { ...@@ -62,7 +61,7 @@ public interface PlatSpaceService extends IService<PlatSpace> {
List<PlatSpace> listChild(List<String> spaceIds); List<PlatSpace> listChild(List<String> spaceIds);
List<PlatSpaceAddDTO> oneLevelList(PlatOrgDTO dtom); List<PlatSpaceAddDTO> oneLevelList(BaseIdDTO dto);
PlatSpaceVO child(PlatSpaceVO vo, Map<String,List<PlatSpace>> map); PlatSpaceVO child(PlatSpaceVO vo, Map<String,List<PlatSpace>> map);
......
...@@ -10,6 +10,7 @@ import com.makeit.entity.platform.space.PlatRoom; ...@@ -10,6 +10,7 @@ import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatRoomBedDevice; import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.platform.space.PlatBedPanoramaSpaceType; import com.makeit.enums.platform.space.PlatBedPanoramaSpaceType;
import com.makeit.enums.platform.space.PlatBedStatusEnum;
import com.makeit.enums.platform.space.PlatRoomStatusEnum; import com.makeit.enums.platform.space.PlatRoomStatusEnum;
import com.makeit.service.platform.elder.PlatElderService; import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.*; import com.makeit.service.platform.space.*;
...@@ -59,6 +60,7 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService { ...@@ -59,6 +60,7 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService {
Map<String,List<PlatRoom>> spaceRoomMap = rooms.stream().collect(Collectors.groupingBy(PlatRoom::getSpaceId)); Map<String,List<PlatRoom>> spaceRoomMap = rooms.stream().collect(Collectors.groupingBy(PlatRoom::getSpaceId));
List<String> roomIds = rooms.stream().map(PlatRoom::getId).collect(Collectors.toList()); List<String> roomIds = rooms.stream().map(PlatRoom::getId).collect(Collectors.toList());
List<PlatBed> beds = platBedService.list(new QueryWrapper<PlatBed>().lambda() List<PlatBed> beds = platBedService.list(new QueryWrapper<PlatBed>().lambda()
.eq(PlatBed::getStatus, PlatBedStatusEnum.BedStatusEnum.CHECKED_IN.getValue())
.in(PlatBed::getRoomId,roomIds)); .in(PlatBed::getRoomId,roomIds));
Map<String,List<PlatBed>> bedMap = beds.stream().collect(Collectors.groupingBy(PlatBed::getRoomId)); Map<String,List<PlatBed>> bedMap = beds.stream().collect(Collectors.groupingBy(PlatBed::getRoomId));
for(PlatSpace space : spaces){ for(PlatSpace space : spaces){
......
...@@ -3,7 +3,7 @@ package com.makeit.service.platform.space.impl; ...@@ -3,7 +3,7 @@ package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.auth.PlatOrgDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
...@@ -21,8 +21,6 @@ import com.makeit.service.platform.space.PlatSpaceService; ...@@ -21,8 +21,6 @@ import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.user.plat.PlatUserUtil; import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO; import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO; import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -208,19 +206,11 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -208,19 +206,11 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
@Override @Override
public List<PlatSpaceAddDTO> oneLevelList(PlatOrgDTO dto) { public List<PlatSpaceAddDTO> oneLevelList(BaseIdDTO dto) {
//获取该账号的权限组织
PlatOrg param = new PlatOrg();
param.setType(dto.getType());
List<PlatOrg> orgs = platOrgService.belongToScopeList(param);
if(orgs.isEmpty()){
return new ArrayList<>();
}
List<String> orgIds = orgs.stream().map(PlatOrg::getId).collect(Collectors.toList());
List<PlatSpace> spaces = list(new QueryWrapper<PlatSpace>().lambda() List<PlatSpace> spaces = list(new QueryWrapper<PlatSpace>().lambda()
.isNull(PlatSpace::getParentId) .isNull(PlatSpace::getParentId)
.in(PlatSpace::getOrgId, orgIds)); .eq(PlatSpace::getOrgId, dto.getId()));
return BeanDtoVoUtils.listVo(spaces, PlatSpaceAddDTO.class); return BeanDtoVoUtils.listVo(spaces, PlatSpaceAddDTO.class);
} }
......
...@@ -25,7 +25,6 @@ import com.makeit.service.platform.workstation.WorkStationService; ...@@ -25,7 +25,6 @@ import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.sql.join.JoinUtil; import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import com.makeit.vo.platform.space.PlatBedPanoramaVO;
import com.makeit.vo.platform.workstation.*; import com.makeit.vo.platform.workstation.*;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -254,7 +253,7 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -254,7 +253,7 @@ public class WorkStationServiceImpl implements WorkStationService {
WorkStationHomeStatisticsVO vo = new WorkStationHomeStatisticsVO(); WorkStationHomeStatisticsVO vo = new WorkStationHomeStatisticsVO();
if (dto.getOrgIds().isEmpty()) { if (dto.getOrgIds().isEmpty()) {
//获取该账号的权限组织 //获取该账号的权限组织
List<PlatOrg> orgs = belongToScopeList(PlatOrgEnum.OrgTypeEnum.INSTITUTION.getValue()); List<PlatOrg> orgs = belongToScopeList(PlatOrgEnum.OrgTypeEnum.HOME.getValue());
if (orgs.isEmpty()) { if (orgs.isEmpty()) {
return vo; return vo;
} }
...@@ -293,7 +292,7 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -293,7 +292,7 @@ public class WorkStationServiceImpl implements WorkStationService {
public List<WorkStationHomeBedVO> homeList(WorkStationQueryDTO dto) { public List<WorkStationHomeBedVO> homeList(WorkStationQueryDTO dto) {
List<PlatSpace> spaces = new ArrayList<>(); List<PlatSpace> spaces = new ArrayList<>();
//获取该账号的权限组织 //获取该账号的权限组织
List<PlatOrg> orgs = belongToScopeList(PlatOrgEnum.OrgTypeEnum.INSTITUTION.getValue()); List<PlatOrg> orgs = belongToScopeList(PlatOrgEnum.OrgTypeEnum.HOME.getValue());
if (orgs.isEmpty()) { if (orgs.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
} }
......
...@@ -13,7 +13,7 @@ public class DayDurationTask { ...@@ -13,7 +13,7 @@ public class DayDurationTask {
@Autowired @Autowired
private DayDurationUtil dayDurationUtil; private DayDurationUtil dayDurationUtil;
@Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 10 * * * ?")
public void updateDayDuration() { public void updateDayDuration() {
dayDurationUtil.getAll(); dayDurationUtil.getAll();
} }
......
...@@ -50,7 +50,7 @@ public class IotSyncTask { ...@@ -50,7 +50,7 @@ public class IotSyncTask {
* 启用状态的租户才同步 * 启用状态的租户才同步
* 新增和更新平台端设备表 * 新增和更新平台端设备表
*/ */
// @Scheduled(cron = "0 0 */1 * * ?") //@Scheduled(cron = "0 0 */1 * * ?")
@TenantIdIgnore @TenantIdIgnore
public void syncEquipmentInfo() { public void syncEquipmentInfo() {
log.info("开始执行同步设备信息接口"); log.info("开始执行同步设备信息接口");
...@@ -109,8 +109,10 @@ public class IotSyncTask { ...@@ -109,8 +109,10 @@ public class IotSyncTask {
platDevice.setName(iotDevice.getName()); platDevice.setName(iotDevice.getName());
platDevice.setProductName(iotDevice.getProductName()); platDevice.setProductName(iotDevice.getProductName());
platDevice.setProductId(iotDevice.getProductId()); platDevice.setProductId(iotDevice.getProductId());
LocalDateTime registryTime = LocalDateTime.ofEpochSecond(iotDevice.getRegistryTime() / 1000, 0, ZoneOffset.ofHours(8)); if(iotDevice.getRegistryTime()!=null) {
platDevice.setRegistrationDate(registryTime); LocalDateTime registryTime = LocalDateTime.ofEpochSecond(iotDevice.getRegistryTime() / 1000, 0, ZoneOffset.ofHours(8));
platDevice.setRegistrationDate(registryTime);
}
platDevice.setDescription(iotDevice.getDescribe()); platDevice.setDescription(iotDevice.getDescribe());
String state = iotDevice.getState(); String state = iotDevice.getState();
DeviceState deviceState = JSON.parseObject(state, DeviceState.class); DeviceState deviceState = JSON.parseObject(state, DeviceState.class);
......
...@@ -27,7 +27,7 @@ public class PlatRoomVO { ...@@ -27,7 +27,7 @@ public class PlatRoomVO {
@ApiModelProperty("房间床位使用数") @ApiModelProperty("房间床位使用数")
private Integer usedTotal; private Integer usedTotal;
@ApiModelProperty("状态") @ApiModelProperty("状态 1-空闲 2-未住满 3-已住满")
private String roomStatus; private String roomStatus;
} }
...@@ -18,6 +18,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage; ...@@ -18,6 +18,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch; import org.springframework.util.StopWatch;
...@@ -62,7 +63,7 @@ public class PushCallback implements MqttCallback { ...@@ -62,7 +63,7 @@ public class PushCallback implements MqttCallback {
DeviceInfo device = JSON.parseObject(payload, DeviceInfo.class); DeviceInfo device = JSON.parseObject(payload, DeviceInfo.class);
// todo // todo
//checkAlarm(device); checkAlarm(device);
} }
@Override @Override
...@@ -76,28 +77,24 @@ public class PushCallback implements MqttCallback { ...@@ -76,28 +77,24 @@ public class PushCallback implements MqttCallback {
* @param device * @param device
*/ */
@TenantIdIgnore @TenantIdIgnore
@Async
public void checkAlarm(DeviceInfo device) { public void checkAlarm(DeviceInfo device) {
StopWatch stopWatch = new StopWatch(); StopWatch stopWatch = new StopWatch();
stopWatch.start("checkAlarm-1"); stopWatch.start("checkAlarm-1");
String deviceId = device.getDeviceId(); String deviceId = device.getDeviceId();
// String propertiesStr = device.getProperties();
// if (StringUtils.isBlank(propertiesStr)) {
// return;
// }
// JSONObject properties = JSON.parseObject(propertiesStr);
JSONObject properties = device.getProperties(); JSONObject properties = device.getProperties();
//iot设备id //iot设备id
PlatDevice platDevice = deviceCacheUtil.get(deviceId); PlatDevice platDevice = deviceCacheUtil.get(deviceId);
if(platDevice==null){ if(platDevice==null){
logger.info("设备信息异常,设备iot-id:"+deviceId); logger.error("设备信息异常,设备iot-id:"+deviceId);
return; return;
} }
List<PlatAlarmConfig> deviceAlarmConfigList = alarmConfigCacheUtil.getDeviceAlarmConfigMap(platDevice); List<PlatAlarmConfig> deviceAlarmConfigList = alarmConfigCacheUtil.getDeviceAlarmConfigMap(platDevice);
deviceAlarmConfigList.removeIf(Objects::isNull); deviceAlarmConfigList.removeIf(Objects::isNull);
if (CollectionUtils.isEmpty(deviceAlarmConfigList)) { if (CollectionUtils.isEmpty(deviceAlarmConfigList)) {
logger.info("该设备没有告警配置:"+deviceId); logger.error("该设备没有告警配置:"+deviceId);
return; return;
} }
for (PlatAlarmConfig config : deviceAlarmConfigList) { for (PlatAlarmConfig config : deviceAlarmConfigList) {
......
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