Commit 2ad0c5ce by 朱淼
parents ea37bf56 2ac43742
Showing with 971 additions and 98 deletions
package com.makeit.controller.children.sys;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.dto.SysConfigCategoryDTOVO;
import com.makeit.module.system.service.SysConfigCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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("/children/sys/configCategory")
public class SysConfigCategoryChildrenController {
@Autowired
private SysConfigCategoryService sysConfigCategoryService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysConfigCategoryDTOVO>> list(@RequestBody SysConfigCategoryDTOVO sysConfigCategory) {
return ApiResponseUtils.success(sysConfigCategoryService.list(sysConfigCategory));
}
@ApiOperation(value = "列表(AuthIgnore)", notes = "")
@PostMapping("/listAuthIgnore")
public ApiResponseEntity<List<SysConfigCategoryDTOVO>> listAuthIgnore(@RequestBody SysConfigCategoryDTOVO sysConfigCategory) {
return ApiResponseUtils.success(sysConfigCategoryService.list(sysConfigCategory));
}
@ApiOperation(value = "详情", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SysConfigCategoryDTOVO> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(sysConfigCategoryService.view(baseIdDTO.getId()));
}
}
package com.makeit.controller.children.sys;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysConfig;
import com.makeit.module.system.entity.SysConfigCategory;
import com.makeit.module.system.service.SysConfigService;
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("/children/sys/config")
public class SysConfigChildrenController {
@Autowired
private SysConfigService sysConfigService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysConfig>> list(@RequestBody SysConfig sysConfig) {
return ApiResponseUtils.success(sysConfigService.list(sysConfig));
}
@ApiOperation(value = "分页列表", notes = "")
@PostMapping("/page")
public ApiResponseEntity<PageVO<SysConfig>> page(@RequestBody PageReqDTO<SysConfig> page) {
return ApiResponseUtils.success(sysConfigService.page(page));
}
@ApiOperation(value = "列表(AuthIgnore)", notes = "")
@PostMapping("/listAuthIgnore")
public ApiResponseEntity<List<SysConfig>> listAuthIgnore(@RequestBody SysConfig sysConfig) {
return ApiResponseUtils.success(sysConfigService.list(sysConfig));
}
@ApiOperation(value = "分页列表(AuthIgnore)", notes = "")
@PostMapping("/pageAuthIgnore")
public ApiResponseEntity<PageVO<SysConfig>> pageAuthIgnore(@RequestBody PageReqDTO<SysConfig> page) {
return ApiResponseUtils.success(sysConfigService.page(page));
}
@ApiOperation(value = "详情", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SysConfig> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(sysConfigService.view(baseIdDTO.getId()));
}
@ApiOperation(value = "根据分类code获取详情", notes = "")
@PostMapping("/viewByCategoryCode")
public ApiResponseEntity<SysConfigCategory> viewByCategoryCode(@RequestBody SysConfigCategory sysConfigCategory) {
return ApiResponseUtils.success(sysConfigService.viewByCategoryCode(sysConfigCategory.getCode()));
}
}
package com.makeit.controller.children.sys;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysDictionaryCategory;
import com.makeit.module.system.service.SysDictionaryCategoryService;
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("/children/sys/dictionaryCategory")
public class SysDictionaryCategoryChildrenController {
@Autowired
private SysDictionaryCategoryService dictionaryCategoryService;
@ApiOperation(value = "列表-带字典", notes = "")
@PostMapping("/getDictionaryCategoryByList")
public ApiResponseEntity<List<SysDictionaryCategory>> getDictionaryCategoryByList() {
List<SysDictionaryCategory> dictionaryCategoryList = dictionaryCategoryService.getEpDictionaryCategoryByList();
return ApiResponseUtils.success(dictionaryCategoryList);
}
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysDictionaryCategory>> list(@RequestBody SysDictionaryCategory platConfigCategory) {
return ApiResponseUtils.success(dictionaryCategoryService.list(platConfigCategory));
}
}
package com.makeit.controller.children.sys;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysDictionary;
import com.makeit.module.system.service.SysDictionaryService;
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("/children/sys/dictionary")
public class SysDictionaryChildrenController {
@Autowired
private SysDictionaryService sysDictionaryService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysDictionary>> list(@RequestBody SysDictionary sysDictionary) {
return ApiResponseUtils.success(sysDictionaryService.list(sysDictionary));
}
}
package com.makeit.controller.wechat.sys;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.dto.SysConfigCategoryDTOVO;
import com.makeit.module.system.service.SysConfigCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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("/wechat/sys/configCategory")
public class SysConfigCategoryWechatController {
@Autowired
private SysConfigCategoryService sysConfigCategoryService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysConfigCategoryDTOVO>> list(@RequestBody SysConfigCategoryDTOVO sysConfigCategory) {
return ApiResponseUtils.success(sysConfigCategoryService.list(sysConfigCategory));
}
@ApiOperation(value = "列表(AuthIgnore)", notes = "")
@PostMapping("/listAuthIgnore")
public ApiResponseEntity<List<SysConfigCategoryDTOVO>> listAuthIgnore(@RequestBody SysConfigCategoryDTOVO sysConfigCategory) {
return ApiResponseUtils.success(sysConfigCategoryService.list(sysConfigCategory));
}
@ApiOperation(value = "详情", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SysConfigCategoryDTOVO> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(sysConfigCategoryService.view(baseIdDTO.getId()));
}
}
package com.makeit.controller.wechat.sys;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysConfig;
import com.makeit.module.system.entity.SysConfigCategory;
import com.makeit.module.system.service.SysConfigService;
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("/wechat/sys/config")
public class SysConfigWechatController {
@Autowired
private SysConfigService sysConfigService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysConfig>> list(@RequestBody SysConfig sysConfig) {
return ApiResponseUtils.success(sysConfigService.list(sysConfig));
}
@ApiOperation(value = "分页列表", notes = "")
@PostMapping("/page")
public ApiResponseEntity<PageVO<SysConfig>> page(@RequestBody PageReqDTO<SysConfig> page) {
return ApiResponseUtils.success(sysConfigService.page(page));
}
@ApiOperation(value = "列表(AuthIgnore)", notes = "")
@PostMapping("/listAuthIgnore")
public ApiResponseEntity<List<SysConfig>> listAuthIgnore(@RequestBody SysConfig sysConfig) {
return ApiResponseUtils.success(sysConfigService.list(sysConfig));
}
@ApiOperation(value = "分页列表(AuthIgnore)", notes = "")
@PostMapping("/pageAuthIgnore")
public ApiResponseEntity<PageVO<SysConfig>> pageAuthIgnore(@RequestBody PageReqDTO<SysConfig> page) {
return ApiResponseUtils.success(sysConfigService.page(page));
}
@ApiOperation(value = "详情", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SysConfig> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(sysConfigService.view(baseIdDTO.getId()));
}
@ApiOperation(value = "根据分类code获取详情", notes = "")
@PostMapping("/viewByCategoryCode")
public ApiResponseEntity<SysConfigCategory> viewByCategoryCode(@RequestBody SysConfigCategory sysConfigCategory) {
return ApiResponseUtils.success(sysConfigService.viewByCategoryCode(sysConfigCategory.getCode()));
}
}
package com.makeit.controller.wechat.sys;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysDictionaryCategory;
import com.makeit.module.system.service.SysDictionaryCategoryService;
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("/wechat/sys/dictionaryCategory")
public class SysDictionaryCategoryWechatController {
@Autowired
private SysDictionaryCategoryService dictionaryCategoryService;
@ApiOperation(value = "列表-带字典", notes = "")
@PostMapping("/getDictionaryCategoryByList")
public ApiResponseEntity<List<SysDictionaryCategory>> getDictionaryCategoryByList() {
List<SysDictionaryCategory> dictionaryCategoryList = dictionaryCategoryService.getEpDictionaryCategoryByList();
return ApiResponseUtils.success(dictionaryCategoryList);
}
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysDictionaryCategory>> list(@RequestBody SysDictionaryCategory platConfigCategory) {
return ApiResponseUtils.success(dictionaryCategoryService.list(platConfigCategory));
}
}
package com.makeit.controller.wechat.sys;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.entity.SysDictionary;
import com.makeit.module.system.service.SysDictionaryService;
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("/wechat/sys/dictionary")
public class SysDictionaryWechatController {
@Autowired
private SysDictionaryService sysDictionaryService;
@ApiOperation(value = "列表", notes = "")
@PostMapping("/list")
public ApiResponseEntity<List<SysDictionary>> list(@RequestBody SysDictionary sysDictionary) {
return ApiResponseUtils.success(sysDictionaryService.list(sysDictionary));
}
}
......@@ -172,7 +172,7 @@
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.14" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.5" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
......
......@@ -107,13 +107,14 @@ public enum CodeMessageEnum {
PLATFORM_ERROR_SPACE_NOT_DEL(500, "PLATFORM.ERROR.SPACE.NOT.DEL"),
PLATFORM_ERROR_SPACE_NOT_AUTH_PARENT(500, "PLATFORM.ERROR.SPACE.NOT.AUTH.PARENT"),
PLATFORM_ERROR_SPACE_USER_NOT_ADD(500, "PLATFORM.ERROR.SPACE.USER.NOT.ADD"),
PLATFORM_ERROR_ROOM_EXIT_BAD(500, "PLATFORM.ERROR.ROOM.EXIT.BAD"),
PLATFORM_ERROR_ROOM_BAD_NUMBER_NOT_AUTH(500, "PLATFORM.ERROR.ROOM.BAD.NUMBER.NOT.AUTH"),
PLATFORM_ERROR_ROOM_EXIT_BAD(500, "PLATFORM.ERROR.ROOM.EXIT.BED"),
PLATFORM_ERROR_ROOM_BAD_NUMBER_NOT_AUTH(500, "PLATFORM.ERROR.ROOM.BED.NUMBER.NOT.AUTH"),
PLATFORM_ERROR_ROOM_NAME_EXIT(500, "PLATFORM.ERROR.ROOM.NAME.EXIT"),
PLATFORM_ERROR_BAD_NAME_EXIT(500, "PLATFORM.ERROR.BAD.NAME.EXIT"),
PLATFORM_ERROR_BAD_NOT_DEL(500, "PLATFORM.ERROR.BAD.NOT.DEL"),
PLATFORM_ERROR_BAD_NAME_EXIT(500, "PLATFORM.ERROR.BED.NAME.EXIT"),
PLATFORM_ERROR_BAD_NOT_DEL(500, "PLATFORM.ERROR.BED.NOT.DEL"),
PLATFORM_ERROR_BED_NOT_BIND_ELDER(500,"PLATFORM.ERROR.BED.NOT.BIND.ELDER"),
PLATFORM_ERROR_ROOM_OTHER_USED_NOT_DEL(500, "PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL"),
PLATFORM_ERROR_BED_BIND_DEVICE_NOT_AUTH(500, "PLATFORM.ERROR.BED.BIND_DEVICE_NOT_AUTH"),
PLATFORM_ERROR_BED_BIND_DEVICE_NOT_AUTH(500, "PLATFORM.ERROR.BED.BIND.DEVICE.NOT.AUTH"),
PLATFORM_ERROR_ELDER_BED_CANT_DEL(500, "PLATFORM.ERROR.ELDER.BED.CANT.DEL"),
......
......@@ -83,9 +83,20 @@ public class IotCommonService {
* ]
* @return
*/
public static IotQueryParam buildQueryParam(int pageSize) {
public static IotQueryParam buildQueryParam(int pageIndex,int pageSize) {
IotQueryParam iotQueryParam = new IotQueryParam();
iotQueryParam.setPageIndex(0);
iotQueryParam.setPageIndex(pageIndex);
iotQueryParam.setPageSize(pageSize);
iotQueryParam.setSorts(buildSort("timestamp"));
iotQueryParam.setTerms(Lists.newArrayList());
return iotQueryParam;
}
public static IotQueryParam buildQueryParamByPageIndex(int pageIndex,int pageSize) {
IotQueryParam iotQueryParam = new IotQueryParam();
iotQueryParam.setPageIndex(pageIndex);
iotQueryParam.setPageSize(pageSize);
iotQueryParam.setSorts(buildSort("timestamp"));
......
package com.makeit.module.iot.service;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
......@@ -20,14 +22,13 @@ import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.old.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.stream.Collectors;
/**
* iot产品设备相关接口
......@@ -40,6 +41,7 @@ public class IotProductDeviceService extends IotCommonService {
public static final String REPORT_PROPERTY = "reportProperty";
private static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
/**
* 获取设备信息
*/
......@@ -47,7 +49,7 @@ public class IotProductDeviceService extends IotCommonService {
String url = iotUrl + DEVICE_PREFIX_URL + "_query";
// 条件可以自己改
IotQueryParam iotQueryParam = buildQueryParam(10);
IotQueryParam iotQueryParam = buildQueryParam(0,10);
String body = JsonUtil.toJson(iotQueryParam);
......@@ -129,14 +131,78 @@ public class IotProductDeviceService extends IotCommonService {
}
public List<String> getLastDayHourRange(LocalDateTime startDateTime) {
int count = 24;
List<String> list = Lists.newArrayList();
String startTime;
String endTime;
for (int i = count; i > 0; i--) {
startTime = DateUtil.format(startDateTime.minusHours(i), DatePattern.NORM_DATETIME_PATTERN);
endTime = DateUtil.format(startDateTime.minusHours(i - 1), DatePattern.NORM_DATETIME_PATTERN);
list.add(startTime + "~" + endTime);
}
return list;
}
public List<DeviceInfoContentBreathe> getDeviceLogByTimeRangeBreathe(String deviceId, int pageSize, LocalDateTime startTime, LocalDateTime endTime) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<String> lastDayHourRange = getLastDayHourRange(startTime);
for (String hour : lastDayHourRange) {
String[] hourRangeArray = hour.split("~");
List<DeviceOperationLogEntity> deviceOperationLogEntities = getDeviceLogByTimeRange(deviceId, REPORT_PROPERTY, 5000, hourRangeArray[0], hourRangeArray[1]);
List<DeviceInfoContentBreathe> deviceInfoContentBreatheList = StreamUtil.map(deviceOperationLogEntities, e -> JsonUtil.toObj((String) e.getContent(), DeviceInfoContentBreathe.class));
}
long minute = 1440;
List<DeviceInfoContentBreathe> breatheList = Lists.newArrayList();
DeviceInfoContentBreathe deviceInfoContentBreathe;
for (long i = 1; i <= minute; i++) {
int brRandomLong = RandomUtils.nextInt(11,28);
int hrRandomLong = RandomUtils.nextInt(55,125);
int movebodyRandomLong = RandomUtils.nextInt(40,90);
deviceInfoContentBreathe = new DeviceInfoContentBreathe();
LocalDateTime localDateTime = startTime.plusMinutes(i);
long timeStamp = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
deviceInfoContentBreathe.setTimestamp(timeStamp);
DeviceInfoContentBreathe.Properties properties = new DeviceInfoContentBreathe.Properties();
properties.setBr(brRandomLong);
properties.setHr(hrRandomLong);
properties.setBodymove(movebodyRandomLong);
deviceInfoContentBreathe.setProperties(properties);
breatheList.add(deviceInfoContentBreathe);
}
/*
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<DeviceOperationLogEntity> deviceOperationLogEntityList = getDeviceLogByTimeRange(deviceId, REPORT_PROPERTY, pageSize, dateTimeFormatter.format(startTime), dateTimeFormatter.format(endTime));
List<DeviceInfoContentBreathe> deviceInfoContentBreatheList = StreamUtil.map(deviceOperationLogEntityList, e -> JsonUtil.toObj((String) e.getContent(), DeviceInfoContentBreathe.class));
List<DeviceInfoContentBreathe> deviceInfoContentBreatheList = deviceOperationLogEntityList.stream()
.filter(deviceOperationLogEntity -> deviceOperationLogEntity.getType().contains(REPORT_PROPERTY))
.map(deviceOperationLogEntity -> {
DeviceInfoContentBreathe deviceInfoContentBreathe = JsonUtil.toObj((String) deviceOperationLogEntity.getContent(), DeviceInfoContentBreathe.class);
deviceInfoContentBreathe.setReportTime(formatLongTime(deviceInfoContentBreathe.getTimestamp()));
return deviceInfoContentBreathe;
})
.collect(Collectors.toList());
Map<String, List<DeviceInfoContentBreathe>> minuteMap = StreamUtil.groupBy(deviceInfoContentBreatheList, DeviceInfoContentBreathe::getReportTime);
for (Map.Entry<String, List<DeviceInfoContentBreathe>> entry : minuteMap.entrySet()) {
}*/
return breatheList;
}
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
long timeStamp = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println(timeStamp);
long timestamp = localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println("LocalDateTime to Timestamp: " + timestamp);
}
return deviceInfoContentBreatheList;
public static String formatLongTime(long time) {
return DEFAULT_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault()));
}
public List<DeviceInfoContentSpace> getDeviceLogByTimeRangeSpace(String deviceId, int pageSize, LocalDateTime startTime, LocalDateTime endTime) {
......@@ -217,7 +283,7 @@ public class IotProductDeviceService extends IotCommonService {
* @return
*/
public List<DeviceOperationLogEntity> getDeviceLogByTimeRange(String deviceId, String typeValue, int pageSize, String startTime, String endTime) {
IotQueryParam iotQueryParam = buildQueryParam(pageSize);
IotQueryParam iotQueryParam = buildQueryParam(0,pageSize);
List<Term> terms = Lists.newArrayList();
Term term1 = Term.builder()
......@@ -283,7 +349,7 @@ public class IotProductDeviceService extends IotCommonService {
*/
public List<DeviceOperationLogEntity> getDeviceLog(String deviceId, int pageSize, String typeValue) {
String url = iotUrl + DEVICE_PREFIX_URL + deviceId + "/logs";
IotQueryParam iotQueryParam = buildQueryParam(pageSize);
IotQueryParam iotQueryParam = buildQueryParam(0,pageSize);
if (StringUtils.isNotEmpty(typeValue)) {
List<Term> terms = Lists.newArrayList();
Term term = Term.builder()
......
......@@ -7,8 +7,12 @@ public class AnalysisVO {
private Integer totalHr;
private Integer avgHr;
private Integer maxHr;
private Integer minHr;
private Integer totalBr;
private Integer avgBr;
private Integer maxBr;
private Integer minBr;
private Integer actionCount = 0; // 体动次数
private Integer turnedCount = 0; // 翻身次数
......
package com.makeit.utils.data.convert;
import com.makeit.utils.old.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class MathUtil {
public static Integer stringToInteger(Object s) {
if (s instanceof String && StringUtils.isBlank((String) s)) {
return null;
}
if (s == null) {
return null;
}
return Integer.valueOf(s + "");
}
public static int divideZero(int a, int b) {
if (b == 0) {
return 0;
......
......@@ -33,5 +33,7 @@ public class MsgSendDTO {
this.param = param;
}
private String alarmType;
}
......@@ -3,6 +3,7 @@ package com.makeit.utils.msg.sender;
import com.makeit.utils.msg.SendTypeEnum;
import com.makeit.utils.msg.dto.MsgSendDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
......@@ -10,6 +11,8 @@ import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
import java.util.Collection;
import java.util.Objects;
@Component
@Slf4j
......@@ -35,7 +38,12 @@ public class MailMsgSender implements IMsgSender {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(msgDTO.getEmailSet().toArray(new String[msgDTO.getReceiverList().size()]));
Collection<String> emailSet = msgDTO.getEmailSet();
emailSet.removeIf(Objects::isNull);
if(CollectionUtils.isEmpty(emailSet)){
return;
}
helper.setTo(emailSet.toArray(new String[emailSet.size()]));
helper.setSubject(msgDTO.getSubject());
helper.setText(msgDTO.getOriContent(), false);
mailSender.send(message);
......
......@@ -21,7 +21,6 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
@Component
@Slf4j
......@@ -48,35 +47,62 @@ public class SmsVoiceSender implements IMsgSender{
if(CollectionUtils.isEmpty(msgDTO.getReceiverList())){
log.info("发送语音短信时,没有接收人,短信内容:"+msgDTO.getOriContent());
}
String alarmType = msgDTO.getAlarmType();
Date now = new Date();
//todo 支持同时发送多个老人
String time = String.valueOf(now.getTime());
Collection<String> receiverList = msgDTO.getReceiverList();
String receiverJoin = receiverList.stream().collect(Collectors.joining(","));
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("uid", smsVoiceConfig.getUid());
//md5-32位( md5-16位(登录密码)+ time )
String md16 = CryptoUtil.md5_16(smsVoiceConfig.getPwd());
String md32 = CryptoUtil.md5(md16 + time);
paramMap.put("pwd", md32);
paramMap.put("time", time);
paramMap.put("mobile", receiverJoin);
String[] param = msgDTO.getParam();
List<BiConsumer<HashMap<String,String>,String>> consumerList = Arrays.asList(
(t,v)->t.put("one",v),
(t,v)->t.put("two",v)
receiverList.forEach(
vo->{
try {
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("uid", smsVoiceConfig.getUid());
//md5-32位( md5-16位(登录密码)+ time )
String md16 = null;
md16 = CryptoUtil.md5_16(smsVoiceConfig.getPwd());
String md32 = CryptoUtil.md5(md16 + time);
paramMap.put("pwd", md32);
paramMap.put("time", time);
paramMap.put("mobile", vo);
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
if (StringUtils.equals(alarmType, "1")) {
paramMap.put("vid", "141");
}
if (StringUtils.equals(alarmType, "2")) {
paramMap.put("vid", "");
}
if (StringUtils.equals(alarmType, "3")) {
paramMap.put("vid", "");
}
if (StringUtils.equals(alarmType, "4")) {
paramMap.put("vid", "");
}
String[] param = msgDTO.getParam();
List<BiConsumer<HashMap<String, String>, String>> consumerList = Arrays.asList(
(t, v) -> t.put("one", v),
(t, v) -> t.put("two", v)
);
for (int i = 0; i < param.length; i++) {
BiConsumer<HashMap<String, String>, String> biConsumer = consumerList.get(i);
biConsumer.accept(paramMap, param[i]);
}
String resStr = HttpClient.sendJSONPostRequest(smsVoiceConfig.getUrl(), paramMap, new HttpHeaders(), String.class);
JSONObject jsonObject = JSON.parseObject(resStr);
String status = String.valueOf(jsonObject.get("status"));
if (!StringUtils.equals(status, "0")) {
log.error("发送语音短信失败:" + jsonObject.get("status_code"));
throw new BusinessException((String) jsonObject.get("status_code"));
}
log.info("发送语音短信成功");
}catch (Exception e){
log.error("发送语音异常:",vo,msgDTO,e);
}
}
);
for (int i = 0; i < param.length; i++) {
BiConsumer<HashMap<String, String>, String> biConsumer = consumerList.get(i);
biConsumer.accept(paramMap,param[i]);
}
String resStr = HttpClient.sendJSONPostRequest(smsVoiceConfig.getUrl(), paramMap, new HttpHeaders(), String.class);
JSONObject jsonObject = JSON.parseObject(resStr);
String status = String.valueOf(jsonObject.get("status"));
if (!StringUtils.equals(status, "0")) {
log.error("发送语音短信失败:"+jsonObject.get("status_code"));
throw new BusinessException((String) jsonObject.get("status_code"));
}
log.info("发送语音短信成功");
}catch (Exception e){
log.error("发送语音异常:",msgDTO,e);
}
......
......@@ -100,14 +100,15 @@ PLATFORM.ERROR.SPACE.NAME.DUPLICATE=同一层级,空间名称不能重复
PLATFORM.ERROR.SPACE.NOT.DEL=该空间下存在下级或者房间,不可删除
PLATFORM.ERROR.SPACE.NOT.AUTH.PARENT=上级空间不能是自己的下级空间
PLATFORM.ERROR.SPACE.USER.NOT.ADD=当前用户没有所属组织,请先分配组织
PLATFORM.ERROR.ROOM.EXIT.BAD=房间中存在已入住的床位,不可删除
PLATFORM.ERROR.ROOM.EXIT.BED=房间中存在已入住的床位,不可删除
PLATFORM.ERROR.ROOM.NAME.EXIT=该房间名称已存在
PLATFORM.ERROR.ROOM.BAD.NUMBER.NOT.AUTH=床位数量不能改小
PLATFORM.ERROR.BAD.NAME.EXIT=床位名称已存在
PLATFORM.ERROR.BAD.NOT.DEL=床位已绑定长者或设备,不可删除
PLATFORM.ERROR.ROOM.BED.NUMBER.NOT.AUTH=床位数量不能改小
PLATFORM.ERROR.BED.NAME.EXIT=床位名称已存在
PLATFORM.ERROR.BED.NOT.DEL=床位已绑定长者或设备,不可删除
PLATFORM.ERROR.BED.NOT.BIND.ELDER=床位已入住长者,不可再次入住
PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL=该房间下有床位有其他长者入住
PLATFORM.ERROR.BED.BIND_DEVICE_NOT_AUTH=该床位已绑定设备,请重新选择床位
PLATFORM.ERROR.BED.BIND.DEVICE.NOT.AUTH=该床位已绑定设备,请重新选择床位
PLATFORM.ERROR.ELDER.BED.CANT.DEL=含入住床位的老人,不可删除
......
......@@ -172,7 +172,7 @@
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.14" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.5" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
......
......@@ -40,7 +40,7 @@ public class SwaggerPlatformConfig {
public SwaggerModuleConfig wechatModule() {
SwaggerModuleConfig config = new SwaggerModuleConfig();
config.setPackageList(Arrays.asList("com.makeit.module.controller.wechat"));
config.setPackageList(Arrays.asList("com.makeit.module.controller.wechat","com.makeit.controller.wechat.sys"));
config.setModuleName("平台端小程序");
return config;
}
......@@ -49,7 +49,7 @@ public class SwaggerPlatformConfig {
public SwaggerModuleConfig childrenModule() {
SwaggerModuleConfig config = new SwaggerModuleConfig();
config.setPackageList(Arrays.asList("com.makeit.module.controller.children"));
config.setPackageList(Arrays.asList("com.makeit.module.controller.children","com.makeit.controller.children.sys"));
config.setModuleName("子女端小程序");
return config;
}
......@@ -80,6 +80,7 @@ public class SwaggerPlatformConfig {
//api过滤
builder = builder.apis(
RequestHandlerSelectors.basePackage("com.makeit.module.controller.wechat")
.or(RequestHandlerSelectors.basePackage("com.makeit.controller.wechat.sys"))
);
return builder.build();
}
......@@ -94,6 +95,7 @@ public class SwaggerPlatformConfig {
//api过滤
builder = builder.apis(
RequestHandlerSelectors.basePackage("com.makeit.module.controller.children")
.or(RequestHandlerSelectors.basePackage("com.makeit.controller.children.sys"))
);
return builder.build();
}
......
......@@ -36,5 +36,12 @@ public class PlatAlarmRecordChildrenController {
public ApiResponseEntity<PlatAlarmRecordVO> view(@RequestBody BaseIdDTO dto) {
return ApiResponseUtils.success(platAlarmRecordService.view(dto.getId()));
}
@ApiOperation("已读")
@PostMapping("read")
public ApiResponseEntity<Void> read(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.read(dto.getId());
return ApiResponseUtils.success();
}
}
......@@ -4,11 +4,13 @@ package com.makeit.module.controller.children.elder;
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.children.PlatElderChildrenInfoWechatDTOVO;
import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -36,6 +38,13 @@ public class PlatElderChildrenInfoChildrenController {
return ApiResponseUtils.success(platElderChildrenInfoService.view());
}
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody PlatElderChildrenInfoWechatDTOVO dto) {
platElderChildrenInfoService.wechatEdit(dto);
return ApiResponseUtils.success();
}
@ApiOperation("绑定")
@PostMapping("bind")
public ApiResponseEntity<?> bind(@RequestBody PlatElderIdDTO dto) {
......
......@@ -6,7 +6,7 @@ import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoDTOVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.service.platform.elder.PlatElderChildrenInfoService;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
......@@ -51,14 +51,14 @@ public class PlatElderChildrenInfoController {
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody PlatElderChildrenInfoEditVO dto) {
public ApiResponseEntity<?> edit(@Validated @RequestBody PlatElderChildrenInfoDTOVO dto) {
platElderChildrenInfoService.edit(dto);
return ApiResponseUtils.success();
}
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<PlatElderChildrenInfoEditVO> view(@RequestBody BaseIdDTO baseIdDTO) {
public ApiResponseEntity<PlatElderChildrenInfoDTOVO> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(platElderChildrenInfoService.view(baseIdDTO.getId()));
}
......
......@@ -5,6 +5,7 @@ import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.global.annotation.AuthIgnore;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderSleepService;
import com.makeit.task.IotSyncTask;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -28,6 +29,8 @@ public class PlatElderSleepController {
@Autowired
private IotSyncTask iotSyncTask;
@Autowired
private PlatElderSleepService platElderSleepService;
@ApiOperation("测试")
@PostMapping("test")
......@@ -38,6 +41,15 @@ public class PlatElderSleepController {
return ApiResponseUtils.success();
}
@ApiOperation("测试")
@PostMapping("test1")
@AuthIgnore
@TenantIdIgnore
public ApiResponseEntity<Void> test1() {
platElderSleepService.test1();
return ApiResponseUtils.success();
}
}
......
......@@ -87,6 +87,13 @@ public class PlatSpaceController {
return ApiResponseUtils.success(data);
}
@ApiOperation("树-到床位(未住人床位)-根据老人组织")
@PostMapping("listTreeAuthIgnoreByElder")
public ApiResponseEntity<List<PlatSpaceVO>> listTreeAuthIgnoreByElder(@RequestBody PlatSpaceQueryDTO dto) {
List<PlatSpaceVO> data = spaceService.listBedTreeByElderGroup(dto,true);
return ApiResponseUtils.success(data);
}
@ApiOperation("树-到床位")
@PostMapping("listBedTree")
public ApiResponseEntity<List<PlatSpaceVO>> listBedTreeAuthIgnore(@RequestBody PlatSpaceQueryDTO dto) {
......
......@@ -20,7 +20,7 @@ import javax.validation.constraints.Size;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ElderChildrenInfo对象", description = "长者子女账号")
public class PlatElderChildrenInfoEditVO extends BaseTenantDTO {
public class PlatElderChildrenInfoDTOVO extends BaseTenantDTO {
@ApiModelProperty(value = "长者id")
private String elderId;
......
package com.makeit.dto.platform.elder.children;
import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* <p>
* 长者子女账号
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ElderChildrenInfo对象", description = "长者子女账号")
public class PlatElderChildrenInfoWechatDTOVO extends BaseTenantDTO {
@NotBlank(message = "姓名不能为空")
@Size(max = 50, message = "姓名最长为50个字符")
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "手机号码")
private String phone;
@ApiModelProperty(value = "微信头像路径")
private String avatar;
}
......@@ -15,4 +15,7 @@ public class PlatSpaceQueryDTO {
@ApiModelProperty("空间名称")
private String name;
@ApiModelProperty("长者ID")
private String elderId;
}
......@@ -86,6 +86,9 @@ public class PlatAlarmRecord extends BaseBusEntity {
@ApiModelProperty("区域名称")
private String regionName;
@ApiModelProperty(value = "0-未读 1-已读")
private String readFlag;
}
......
......@@ -61,4 +61,6 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO);
void dealAlarm(BaseIdDTO dto);
void read(String id);
}
......@@ -52,7 +52,8 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe
public List<PlatAlarmConfigListVO> list(PlatAlarmConfigQueryDTO dto) {
List<PlatAlarmConfig> configList = list(new QueryWrapper<PlatAlarmConfig>().lambda()
.apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)")
//.apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)")
.eq(StringUtils.isNotBlank(dto.getOrgId()), PlatAlarmConfig::getOrgId, dto.getOrgId())
.orderByAsc(PlatAlarmConfig::getAlarmType)
);
......@@ -194,7 +195,7 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe
String[] split = orgPath.split(",");
TenantIdUtil.execute(org.getTenantId(),()->{
TenantIdUtil.execute(org.getTenantId(), () -> {
configList.forEach(e -> {
e.setTenantId(org.getTenantId());
e.setId(null);
......
package com.makeit.service.platform.alarm.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.BaseIdDTO;
......@@ -117,6 +119,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
return new PageVO<>();
}
String elderId = platElderChildrenInfo.getElderId();
if(StringUtils.isBlank(elderId)){
return new PageVO<>();
}
String[] split = elderId.split(",");
PlatAlarmRecordQueryDTO data = dto.getData();
data.setElderIdList(Arrays.asList(split));
......@@ -126,6 +131,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private LambdaQueryWrapper<PlatAlarmRecord> getLambdaQueryWrapper(PlatAlarmRecordQueryDTO param) {
return new LambdaQueryWrapper<PlatAlarmRecord>().ge(Objects.nonNull(param.getCreateDateFrom()), BaseEntity::getCreateDate, param.getCreateDateFrom())
.eq(StringUtils.isNotBlank(param.getId()),BaseEntity::getId,param.getId())
.le(Objects.nonNull(param.getCreateDateTo()), BaseEntity::getCreateDate, param.getCreateDateTo())
.eq(StringUtils.isNotBlank(param.getAlarmType()), PlatAlarmRecord::getAlarmType, param.getAlarmType())
.eq(StringUtils.isNotBlank(param.getStatus()), PlatAlarmRecord::getStatus, param.getStatus())
......@@ -321,6 +327,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
msgSendDTO.setOriContent(alarmRecord.getContent());
msgSendDTO.setSubject(alarmRecord.getContent());
msgSendDTO.setParam(alarmRecord.getElderName());
msgSendDTO.setAlarmType(alarmConfig.getAlarmType());
//todo 小程序消息
msgUtil.send(msgSendDTO);
}
......@@ -352,6 +359,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platAlarmRecord.setRemark(platAlarmCheckDTO.getRemark());
platAlarmRecord.setAbnormalValue(platAlarmCheckDTO.getAbnormalValue());
platAlarmRecord.setRegionName(platElder.getRegionName());
platAlarmRecord.setReadFlag(CommonEnum.NO.getValue());
return platAlarmRecord;
}
......@@ -459,4 +468,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platAlarmRecord.setDealDate(LocalDateTime.now());
updateById(platAlarmRecord);
}
@Override
@Transactional
public void read(String id) {
LambdaUpdateWrapper<PlatAlarmRecord> recordLambdaUpdateWrapper = Wrappers.lambdaUpdate(PlatAlarmRecord.class)
.eq(BaseEntity::getId, id)
.set(PlatAlarmRecord::getReadFlag, CommonEnum.YES.getValue());
update(recordLambdaUpdateWrapper);
}
}
......@@ -119,7 +119,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
check(dto);
PlatDevice db = getById(dto.getId());
BeanUtils.copyProperties(dto, db);
BeanUtils.copyProperties(dto, db,BaseBusEntity.Fields.tenantId);
updateById(db);
......
......@@ -3,8 +3,9 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoDTOVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoWechatDTOVO;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
......@@ -25,9 +26,11 @@ public interface PlatElderChildrenInfoService extends IService<PlatElderChildren
List<PlatElderChildrenInfoListVO> list(PlatElderChildrenInfoQueryDTO dto);
void edit(PlatElderChildrenInfoEditVO dto);
void edit(PlatElderChildrenInfoDTOVO dto);
PlatElderChildrenInfoEditVO view(String id);
void wechatEdit(PlatElderChildrenInfoWechatDTOVO dto);
PlatElderChildrenInfoDTOVO view(String id);
void del(String id);
......
......@@ -14,4 +14,6 @@ import com.makeit.entity.platform.elder.PlatElderSleep;
public interface PlatElderSleepService extends IService<PlatElderSleep> {
void elderSleepSleepAnalysisTask();
void test1();
}
......@@ -6,8 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoEditVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoDTOVO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoQueryDTO;
import com.makeit.dto.platform.elder.children.PlatElderChildrenInfoWechatDTOVO;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
......@@ -25,11 +26,15 @@ import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.elder.PlatElderChildrenInfoListVO;
import com.makeit.vo.wechat.elder.PlatElderChildrenInfoWechatVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.function.Function;
/**
......@@ -98,7 +103,7 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
return voList;
}
private void check(PlatElderChildrenInfoEditVO dto) {
private void check(PlatElderChildrenInfoDTOVO dto) {
if (true) {
return;
......@@ -125,19 +130,35 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
@Transactional
@Override
public void edit(PlatElderChildrenInfoEditVO dto) {
public void edit(PlatElderChildrenInfoDTOVO dto) {
check(BeanDtoVoUtils.convert(dto, PlatElderChildrenInfoEditVO.class));
check(BeanDtoVoUtils.convert(dto, PlatElderChildrenInfoDTOVO.class));
updateById(BeanDtoVoUtils.convert(dto, PlatElderChildrenInfo.class));
PlatElderChildrenInfo db = getById(dto.getId());
BeanUtils.copyProperties(dto, db);
updateById(db);
}
@Transactional
@Override
public void wechatEdit(PlatElderChildrenInfoWechatDTOVO dto) {
check(BeanDtoVoUtils.convert(dto, PlatElderChildrenInfoDTOVO.class));
PlatElderChildrenInfo db = getById(dto.getId());
BeanUtils.copyProperties(dto, db);
updateById(db);
}
@Override
public PlatElderChildrenInfoEditVO view(String id) {
PlatElderChildrenInfoEditVO vo = BeanDtoVoUtils.convert(getById(id), PlatElderChildrenInfoEditVO.class);
public PlatElderChildrenInfoDTOVO view(String id) {
PlatElderChildrenInfoDTOVO vo = BeanDtoVoUtils.convert(getById(id), PlatElderChildrenInfoDTOVO.class);
JoinUtil.joinSplit(Arrays.asList(vo), platElderService, PlatElderChildrenInfoEditVO::getElderId, PlatElder::getId, (c, e) -> {
JoinUtil.joinSplit(Arrays.asList(vo), platElderService, PlatElderChildrenInfoDTOVO::getElderId, PlatElder::getId, (c, e) -> {
c.setElderName(StreamUtil.join(e, PlatElder::getName));
});
......
......@@ -18,6 +18,7 @@ import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.alarm.PlatDayDurationRecordService;
import com.makeit.service.platform.elder.*;
import com.makeit.utils.LongTimestampUtil;
import com.makeit.utils.data.convert.MathUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.old.StringUtils;
......@@ -290,7 +291,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
//vo.setRoomId(e.get);
vo.setRoomName(e.getRegionName());
vo.setDuration(Integer.valueOf(e.getAbnormalValue() + ""));
vo.setDuration(MathUtil.stringToInteger(e.getAbnormalValue()));
return vo;
......
package com.makeit.service.platform.elder.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
......@@ -21,6 +22,7 @@ import com.makeit.utils.StandardDeviationUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.redis.RedisUtil;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
......@@ -36,6 +38,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
......@@ -50,6 +53,8 @@ import java.util.stream.Collectors;
@Service
public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
public static final String ELDER_STATUS = "plat:elder:status:";
@Autowired
private PlatElderService platElderService;
......@@ -156,7 +161,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return;
}
boolean flag = DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState());
boolean flag = DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState()+"");
if (!flag) {
return;
......@@ -177,7 +182,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return;
}
boolean flag = DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState());
boolean flag = DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState()+"");
if (!flag) {
return;
......@@ -198,7 +203,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return;
}
boolean flag = !DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState());
boolean flag = !DeviceInfoContentBreatheEnum.PersonStateEnum.NOBODY.getValue().equals(nowDataBreathe.getProperties().getPersonState()+"");
if (!flag) {
return;
}
......@@ -234,6 +239,11 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
@Override
public PlatElderRealTimeNowVO nowStatus(PlatElderIdDTO platElderIdDTO) {
Object result = RedisUtil.get(ELDER_STATUS + platElderIdDTO.getElderId());
if (result != null) {
return JSON.parseObject(result.toString(),PlatElderRealTimeNowVO.class);
}
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
//
PlatElderRealTimeNowVO platElderRealTimeNowVO = new PlatElderRealTimeNowVO();
......@@ -256,10 +266,15 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
nowStatusSleepAndBed(platElderRealTimeNowVO, platElderIdDTO, deviceInfoContentBreathe);
// if(StringUtils.isBlank(platElderRealTimeNowVO.getStatus())){
// platElderRealTimeNowVO.setStatus();
// }
platElderRealTimeNowVO.setHeartRate(deviceInfoContentBreathe.getProperties().getHr());
platElderRealTimeNowVO.setRespiratoryRate(deviceInfoContentBreathe.getProperties().getBr());
platElderRealTimeNowVO.setBodyMove(deviceInfoContentBreathe.getProperties().getBodymove());
RedisUtil.set(ELDER_STATUS + platElderIdDTO.getElderId(), JSON.toJSONString(platElderRealTimeNowVO),15, TimeUnit.SECONDS);
return platElderRealTimeNowVO;
}
......
......@@ -114,17 +114,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
.orderByDesc(PlatElder::getId);
}
@Override
public PageVO<PlatElderListVO> page(PageReqDTO<PlatElderQueryDTO> page) {
PlatElderQueryDTO dto = page.getData();
Page<PlatElder> p = PageUtil.toMpPage(page);
Page<PlatElder> voPage = page(p, lambdaQueryWrapper(dto));
List<PlatElder> voList = voPage.getRecords();
List<PlatElderListVO> list = BeanDtoVoUtils.listVo(voList, PlatElderListVO.class);
private void fill(List<PlatElderListVO> list){
JoinUtil.join(list, platOrgService, PlatElderListVO::getOrgId, PlatOrg::getId, (d, o) -> {
d.setOrgName(o.getName());
});
......@@ -166,6 +156,20 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
JoinUtil.join(list, platBedService, PlatElderListVO::getBedId, PlatBed::getId, (e, l) -> {
e.setBedName(l.getName());
});
}
@Override
public PageVO<PlatElderListVO> page(PageReqDTO<PlatElderQueryDTO> page) {
PlatElderQueryDTO dto = page.getData();
Page<PlatElder> p = PageUtil.toMpPage(page);
Page<PlatElder> voPage = page(p, lambdaQueryWrapper(dto));
List<PlatElder> voList = voPage.getRecords();
List<PlatElderListVO> list = BeanDtoVoUtils.listVo(voList, PlatElderListVO.class);
fill(list);
return PageUtil.toPageVO(list, voPage);
......@@ -177,6 +181,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
List<PlatElderListVO> list = BeanDtoVoUtils.listVo(voList, PlatElderListVO.class);
fill(list);
return list;
}
......@@ -514,6 +520,16 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
}
private void checkBed(PlatElderAddDTO dto) {
PlatBed platBed = platBedService.getById(dto.getBedId());
if (CommonEnum.NO.getValue().equals(platBed.getStatus())) {
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_BED_BIND_DEVICE_NOT_AUTH);
}
}
private void fillSpace(PlatElder platElder) {
if (StringUtils.isBlank(platElder.getBedId())) {
......@@ -538,6 +554,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
public void add(PlatElderAddDTO dto) {
check(dto);
checkBed(dto);
PlatElder platElder = BeanDtoVoUtils.convert(dto, PlatElder.class);
......@@ -918,6 +935,41 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
voList = Arrays.stream(childrenInfo.getElderId().split(",")).map(map::get).filter(Objects::nonNull).collect(Collectors.toList());
JoinUtil.joinSplit(voList, platSpaceService, PlatElderWechatSimpleVO::getSpacePath, PlatSpace::getId, (e, l) -> {
e.setSpacePathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName));
});
JoinUtil.joinSplit(voList, platRoomService, PlatElderWechatSimpleVO::getSpacePath, PlatRoom::getId, (e, l) -> {
e.setSpacePathName(e.getSpacePathName() + "," + StreamUtil.join(l, Objects::nonNull, PlatRoom::getName));
});
JoinUtil.joinSplit(voList, platBedService, PlatElderWechatSimpleVO::getSpacePath, PlatBed::getId, (e, l) -> {
e.setSpacePathName(e.getSpacePathName() + "," + StreamUtil.join(l, Objects::nonNull, PlatBed::getName));
});
JoinUtil.join(voList, platSpaceService, Arrays.asList(
PlatElderWechatSimpleVO::getSpaceId,
PlatElderWechatSimpleVO::getStreetSpaceId,
PlatElderWechatSimpleVO::getBuildingSpaceId,
PlatElderWechatSimpleVO::getUnitSpaceId,
PlatElderWechatSimpleVO::getFloorSpaceId
), PlatSpace::getId, Arrays.asList(
(e, s) -> e.setSpaceName(s.getName()),
(e, s) -> e.setStreetSpaceName(s.getName()),
(e, s) -> e.setBuildingSpaceName(s.getName()),
(e, s) -> e.setUnitSpaceName(s.getName()),
(e, s) -> e.setFloorSpaceName(s.getName())
));
JoinUtil.join(voList, platRoomService, PlatElderWechatSimpleVO::getRoomId, PlatRoom::getId, (e, l) -> {
e.setRoomName(l.getName());
});
JoinUtil.join(voList, platBedService, PlatElderWechatSimpleVO::getBedId, PlatBed::getId, (e, l) -> {
e.setBedName(l.getName());
});
return voList;
}
......
......@@ -82,4 +82,15 @@ public interface PlatSpaceService extends IService<PlatSpace> {
List<PlatSpaceVO> parentListTree(PlatSpaceQueryDTO dto);
List<PlatSpaceVO> listBedTree(PlatSpaceQueryDTO dto, boolean flag);
/**
* 根据老人组织过滤空间
* @param dto
* @param flag
* @return
*/
List<PlatSpaceVO> listBedTreeByElderGroup(PlatSpaceQueryDTO dto, boolean flag);
}
......@@ -105,20 +105,24 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
list.forEach(item->{
if(!item.getRoomId().equals(dto.getRoomId())
|| (item.getRoomId().equals(dto.getRoomId()) && StringUtil.isEmpty(item.getBedId()))){
|| (item.getRoomId().equals(dto.getRoomId()) && StringUtil.isNotEmpty(item.getBedId()))){
list1.add(item);
}
});
}
List<String> listEquipmentIds = list.stream().map(item -> item.getDeviceId()).collect(Collectors.toList());
List<String> listEquipmentIds = list1.stream().map(item -> item.getDeviceId()).collect(Collectors.toList());
String orgId = "";
if (StringUtil.isNotEmpty(dto.getRoomId())) {
PlatRoom platRoom = platRoomService.getById(dto.getRoomId());
PlatSpace platSpace = platSpaceService.getById(platRoom.getSpaceId());
orgId = platSpace.getOrgId();
if(platRoom != null){
PlatSpace platSpace = platSpaceService.getById(platRoom.getSpaceId());
if(platSpace != null){
orgId = platSpace.getOrgId();
}
}
}
......
......@@ -9,6 +9,7 @@ import com.makeit.common.vo.ExcelErrorVo;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.space.*;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatSpace;
......@@ -18,6 +19,7 @@ import com.makeit.enums.platform.space.PlatSpaceEnum;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.space.PlatSpaceMapper;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService;
......@@ -53,6 +55,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
private PlatBedService platBedService;
@Autowired
private PlatOrgService platOrgService;
@Autowired
private PlatElderService platElderService;
private void check(PlatSpaceAddDTO dto) {
LambdaQueryWrapper<PlatSpace> queryWrapper = new LambdaQueryWrapper<>();
......@@ -739,6 +743,87 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
}
@Override
public List<PlatSpaceVO> listBedTreeByElderGroup(PlatSpaceQueryDTO dto, boolean flag) {
PlatElder platElder = platElderService.getById(dto.getElderId());
List<String> orgIds = new ArrayList<>();
orgIds.add("-1");
if(platElder != null){
orgIds.add(platElder.getOrgId());
}
//床位
LambdaQueryWrapper<PlatBed> queryWrapper1 = new LambdaQueryWrapper<>();
List<PlatBed> listBeds = platBedService.list(queryWrapper1);
if(flag){
PlatBed bed = null;
if(platElder != null && StringUtil.isNotEmpty(platElder.getBedId())){
bed = listBeds.stream().filter(item->item.getId().equals(platElder.getBedId())).collect(Collectors.toList()).get(0);
}
listBeds = listBeds.stream().filter(item->CommonEnum.YES.getValue().equals(item.getStatus())).collect(Collectors.toList());
if(bed != null){
listBeds.add(bed);
}
}
if(listBeds.isEmpty()){
return new ArrayList<>();
}
List<String> roomIds = listBeds.stream().map(PlatBed::getRoomId).collect(Collectors.toList());
List<PlatRoom> listRoom = platRoomService.list(new QueryWrapper<PlatRoom>().lambda()
.in(PlatRoom::getId, roomIds));
List<String> spaceIds = listRoom.stream().map(PlatRoom::getSpacePath).collect(Collectors.toList());
Set<String> spaceIdList = new HashSet<>();
for(String spaceId : spaceIds){
spaceIdList.addAll(Arrays.asList(spaceId.split(",")));
}
spaceIdList.add("-1");
List<PlatSpaceVO> listRoomVo = new ArrayList<>();
listRoom.forEach(item -> {
PlatSpaceVO vo = new PlatSpaceVO();
vo.setId(item.getId());
vo.setName(item.getName());
vo.setParentId(item.getSpaceId());
listRoomVo.add(vo);
});
listBeds.forEach(item -> {
PlatSpaceVO vo = new PlatSpaceVO();
vo.setId(item.getId());
vo.setName(item.getName());
vo.setParentId(item.getRoomId());
listRoomVo.add(vo);
});
LambdaQueryWrapper<PlatSpace> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatSpace::getName, dto.getName());
queryWrapper.in(PlatSpace::getId, spaceIdList);
queryWrapper.in(PlatSpace::getOrgId, orgIds);
List<PlatSpace> list = this.list(queryWrapper);
List<PlatSpaceVO> listSpaceVo = BeanDtoVoUtils.listVo(list, PlatSpaceVO.class);
listSpaceVo.addAll(listRoomVo);
//父级
List<PlatSpaceVO> listParent = listSpaceVo.stream().filter(item -> StringUtil.isEmpty(item.getParentId())).
collect(Collectors.toList());
//子集
List<PlatSpaceVO> listChild = listSpaceVo.stream().filter(item -> item.getParentId() != null).collect(Collectors.toList());
Map<String, List<PlatSpaceVO>> map = listChild.stream().collect(Collectors.groupingBy(PlatSpaceVO::getParentId));
List<PlatSpaceVO> data = new ArrayList<>();
for (PlatSpaceVO space : listParent) {
space = childVo(space, map);
data.add(space);
}
return data;
}
}
......
......@@ -43,6 +43,7 @@ import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.sys.FileUtil;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import com.makeit.vo.platform.workstation.*;
......@@ -525,6 +526,10 @@ public class WorkStationServiceImpl implements WorkStationService {
e.setPathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName, "-"));
});
FileUtil.convert(list, WorkStationHomeBedVO::getAvatar, (e, f) -> {
e.setAvatarPath(f.getFullUrl());
});
for(WorkStationHomeBedVO vo : list){
vo.setPathName(vo.getPathName() + "-" + vo.getRoomName());
if (StringUtil.isNotEmpty(vo.getElderId()) ) {
......
......@@ -434,7 +434,7 @@ public class PlatTenantServiceImpl extends ServiceImpl<PlatTenantMapper, PlatTen
PlatTenant tntTenant = getOne(
new QueryWrapper<PlatTenant>().lambda()
.eq(PlatTenant::getCode, dto.getCode())
.ne(StringUtils.isNotBlank(dto.getId()), PlatTenant::getCode, dto.getCode())
.ne(StringUtils.isNotBlank(dto.getId()), PlatTenant::getId, dto.getId())
);
if (tntTenant != null && !tntTenant.getId().equals(dto.getId())) {
......
......@@ -59,5 +59,8 @@ public class PlatAlarmRecordVO extends BaseTenantDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty(value = "0-未读 1-已读")
private String readFlag;
}
......@@ -68,9 +68,57 @@ public class PlatElderWechatSimpleVO extends BaseTenantDTO {
private String avatarPath;
@ApiModelProperty(value = "家庭地址详细")
private String homeAddressDetail;
@ApiModelProperty(value = "空间id")
private String spaceId;
@ApiModelProperty(value = "空间id")
private String spaceName;
@ApiModelProperty(value = "小区/社区/街道空间id")
private String streetSpaceId;
@ApiModelProperty(value = "小区/社区/街道空间名称")
private String streetSpaceName;
@ApiModelProperty(value = "楼栋空间id")
private String buildingSpaceId;
@ApiModelProperty(value = "楼栋空间名称")
private String buildingSpaceName;
@ApiModelProperty(value = "单元空间id")
private String unitSpaceId;
@ApiModelProperty(value = "单元空间名称")
private String unitSpaceName;
@ApiModelProperty(value = "楼层id")
private String floorSpaceId;
@ApiModelProperty(value = "楼层id")
private String floorSpaceName;
@ApiModelProperty(value = "房间id")
private String roomId;
@ApiModelProperty(value = "房间名称")
private String roomName;
@ApiModelProperty(value = "床位id")
private String bedId;
@ApiModelProperty(value = "床位名称")
private String bedName;
@ApiModelProperty(value = "空间-房间-床位路径")
private String spacePath;
@ApiModelProperty(value = "空间-房间-床位路径名称")
private String spacePathName;
}
......@@ -7,10 +7,10 @@
<select id="getHealthConfigList" resultType="com.makeit.dto.platform.alarm.PlatHealthConfigDTO">
select pehi.elder_id as platElderId,
pehi.respiratory_rate as heartRateStr,
pehi.respiratory_exception_time as heartDuration,
pehi.heart_rate as breathRateStr,
pehi.heart_exception_time as breathDuration
pehi.respiratory_rate as breathRateStr,
pehi.respiratory_exception_time as breathDuration,
pehi.heart_rate as heartRateStr,
pehi.heart_exception_time as heartDuration
from plat_elder_health_info pehi
left join plat_elder pe on pe.id = pehi.elder_id
where pehi.del_flag = 0
......
......@@ -165,7 +165,7 @@
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.14" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.5" level="project" />
<orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.2" level="project" />
......
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