Commit f38cf4c1 by 朱淼
parents 8012bdbd ab289d3e
......@@ -13,6 +13,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.utils.old.StringUtils;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import com.makeit.vo.platform.device.PlatDeviceListVO;
import com.makeit.vo.platform.elder.PlatElderListVO;
......@@ -45,6 +46,10 @@ public class IotPlatExternalController {
@TenantIdIgnore
@AuthIgnore
public ApiResponseEntity<PageVO<PlatElderListVO>> elderPage(@RequestBody PageReqDTO<PlatElderQueryDTO> page) {
PlatElderQueryDTO dto = page.getData();
if (dto == null || StringUtils.isEmpty(dto.getOrgId())) {
return ApiResponseUtils.success(new PageVO<>());
}
return ApiResponseUtils.success(platElderService.page(page));
}
......@@ -54,6 +59,10 @@ public class IotPlatExternalController {
@TenantIdIgnore
@AuthIgnore
public ApiResponseEntity<PageVO<PlatDeviceListVO>> devicePage(@RequestBody PageReqDTO<PlatDeviceQueryDTO> pageReqDTO) {
PlatDeviceQueryDTO dto = pageReqDTO.getData();
if (dto == null || StringUtils.isEmpty(dto.getOrgId())) {
return ApiResponseUtils.success(new PageVO<>());
}
return ApiResponseUtils.success(platDeviceService.page(pageReqDTO));
}
......@@ -62,8 +71,12 @@ public class IotPlatExternalController {
@PostMapping("alarmRecordPage")
@TenantIdIgnore
@AuthIgnore
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
return ApiResponseUtils.success(platAlarmRecordService.page(dto));
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> pageReqDTO) {
PlatAlarmRecordQueryDTO dto = pageReqDTO.getData();
if (dto == null || StringUtils.isEmpty(dto.getOrgId())) {
return ApiResponseUtils.success(new PageVO<>());
}
return ApiResponseUtils.success(platAlarmRecordService.page(pageReqDTO));
}
@ApiOperation("处理告警回调")
......
......@@ -38,11 +38,12 @@ public class RSAUtils {
System.out.println(keys);
RSAPublicKey publicKey = getPublicKey(keys.get("publicKey"));
RSAPrivateKey privateKey = getPrivateKey(keys.get("privateKey"));
String encrypt = publicEncrypt("{\"page\":1,\"limit\":10,\"data\":{}}", publicKey, "UTF-8");
System.out.println(encrypt);
RSAPrivateKey privateKey = getPrivateKey(keys.get("privateKey"));
String decrypt = privateDecrypt(encrypt, privateKey, "UTF-8");
System.out.println(decrypt);
......@@ -120,7 +121,8 @@ public class RSAUtils {
try {
Cipher cipher = Cipher.getInstance(RSA_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
return Base64.encodeBase64URLSafeString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(encoding), publicKey.getModulus().bitLength()));
return Base64.encodeBase64URLSafeString(rsaSplitCodec(cipher, Cipher.ENCRYPT_MODE, data.getBytes(encoding),
publicKey.getModulus().bitLength()));
} catch (Exception e) {
throw new RuntimeException("加密字符串[" + data + "]时遇到异常", e);
}
......
......@@ -54,6 +54,7 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "菜单id集合")
private List<String> menuIdList;
@Size(max = 20, message = "租户标识最长为20字符")
@ApiModelProperty(value = "租户标识")
private String code;
......
......@@ -47,6 +47,11 @@ public class IotCommonService {
ResponseMessage responseMessage = getResponseMessage(url, response);
return responseMessage;
}
public ResponseMessage sendPatch(String url, HttpRequest request) throws IOException {
Response response = request.patch();
ResponseMessage responseMessage = getResponseMessage(url, response);
return responseMessage;
}
public ResponseMessage sendGet(String url, HttpRequest request) throws IOException {
Response response = request.get();
ResponseMessage responseMessage = getResponseMessage(url, response);
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.makeit.module.iot.dto.IotQueryParam;
import com.makeit.module.iot.dto.IotSort;
import com.makeit.module.iot.dto.Term;
......@@ -23,12 +24,14 @@ 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.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
/**
* iot产品设备相关接口
......@@ -69,6 +72,28 @@ public class IotProductDeviceService extends IotCommonService {
return Lists.newArrayList();
}
@Async
public void syncUpdateDeviceInfo(String id,String name) {
String url = iotUrl + "/device-instance";
// 条件可以自己改
Map<String,Object> reqMap = Maps.newHashMap();
reqMap.put("id",id);
reqMap.put("name",name);
String body = JsonUtil.toJson(reqMap);
HttpRequest request = buildRequest(url, body);
try {
ResponseMessage responseMessage = sendPatch(url, request);
if (responseMessage.getStatus() == 200) {
log.info("修改设备名称成功:{}",id);
} else {
log.error("获取设备接口失败:{}", responseMessage.getMessage());
}
} catch (IOException e) {
log.error("调用:{}接口异常:{}", url, e.getMessage());
}
}
/**
* 获取最新一条设备日志
*
......
......@@ -67,16 +67,16 @@ public class SmsVoiceSender implements IMsgSender{
paramMap.put("mobile", vo);
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
if (StringUtils.equals(alarmType, "1")) {
paramMap.put("vid", "141");
paramMap.put("vid", "142");
}
if (StringUtils.equals(alarmType, "2")) {
paramMap.put("vid", "");
paramMap.put("vid", "143");
}
if (StringUtils.equals(alarmType, "3")) {
paramMap.put("vid", "");
paramMap.put("vid", "144");
}
if (StringUtils.equals(alarmType, "4")) {
paramMap.put("vid", "");
paramMap.put("vid", "145");
}
String[] param = msgDTO.getParam();
......
......@@ -21,7 +21,7 @@ public class CommonUserUtil {
WechatUserInfo wechatUserInfo = ThreadLocalUserUtil.getWechatUser();
if (wechatUserInfo != null) {
return new CommonUserVO(wechatUserInfo.getId(), wechatUserInfo.getName());
return new CommonUserVO(wechatUserInfo.getId(), wechatUserInfo.getUsername());
}
SaasUserLoginVO saasUser = ThreadLocalUserUtil.getSaasUser();
......@@ -54,7 +54,7 @@ public class CommonUserUtil {
if (StringUtils.isNotBlank(wechatToken)) {
WechatUserInfo wechatUserInfo = TokenUtil.getWechatUserDetail(wechatToken);
if (wechatUserInfo != null) {
return new CommonUserVO(wechatUserInfo.getId(), wechatUserInfo.getName());
return new CommonUserVO(wechatUserInfo.getId(), wechatUserInfo.getUsername());
}
}
......
......@@ -25,7 +25,7 @@ public class WechatUserInfo implements Serializable {
private String openid;
@ApiModelProperty(value = "姓名")
private String name;
private String username;
@ApiModelProperty(value = "手机号码")
private String phone;
......
......@@ -327,6 +327,20 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
msgSendDTO.setOriContent(alarmRecord.getContent());
msgSendDTO.setSubject(alarmRecord.getContent());
msgSendDTO.setParam(alarmRecord.getElderName());
String alarmType = alarmConfig.getAlarmType();
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
if (StringUtils.equals(alarmType, "1")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRegionName());
}
if (StringUtils.equals(alarmType, "2")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRemark());
}
if (StringUtils.equals(alarmType, "3")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRemark());
}
if (StringUtils.equals(alarmType, "4")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRegionName());
}
msgSendDTO.setAlarmType(alarmConfig.getAlarmType());
//todo 小程序消息
msgUtil.send(msgSendDTO);
......
......@@ -26,6 +26,7 @@ import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.device.PlatDeviceMapper;
import com.makeit.module.iot.service.IotDevicePropertiesOperateService;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.DeviceProperties;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.device.PlatDeviceOtherService;
......@@ -71,6 +72,8 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
private PlatTenantService platTenantService;
@Autowired
private PlatRegionSettingService platRegionSettingService;
@Autowired
private IotProductDeviceService iotProductDeviceService;
@Override
public PageVO<PlatDeviceListVO> page(PageReqDTO<PlatDeviceQueryDTO> pageReqDTO) {
......@@ -125,6 +128,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
deviceCacheUtil.put(db);
iotProductDeviceService.syncUpdateDeviceInfo(db.getOriDeviceId(),dto.getName());
}
@Override
......
......@@ -182,17 +182,20 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
.le(PlatElderSleepAnalysis::getHappenDate, dateTimeFormatter.format(weekEndDate))
);
if (CollectionUtils.isEmpty(sleepAnalysisList)) {
return null;
}
int score = 0;
int sleepDuration = 0;
int restDuration = 0;
if (CollectionUtils.isNotEmpty(sleepAnalysisList)) {
score = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getSleepScore() + ""), 0, Integer::sum) / sleepAnalysisList.size();
score = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getSleepScore() + ""), 0, Integer::sum) / sleepAnalysisList.size();
sleepDuration = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getSleepTime() + ""), 0, Integer::sum) / sleepAnalysisList.size();
sleepDuration = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getSleepTime() + ""), 0, Integer::sum) / sleepAnalysisList.size();
restDuration = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getRestTime() + ""), 0, Integer::sum) / sleepAnalysisList.size();
restDuration = StreamUtil.reduce(sleepAnalysisList, e -> Integer.valueOf(e.getRestTime() + ""), 0, Integer::sum) / sleepAnalysisList.size();
}
PlatElderSleepEvaluationVO platElderSleepEvaluationVO = new PlatElderSleepEvaluationVO();
platElderSleepEvaluationVO.setScore(score);
......
......@@ -102,6 +102,9 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
@Override
public PlatElderComprehensiveEvaluationVO comprehensiveEvaluation(PlatElderReportDTO platElderIdDTO) {
PlatElderSleepEvaluationVO platElderSleepEvaluationVO = sleepEvaluation(platElderIdDTO);
if (platElderSleepEvaluationVO == null) {
return new PlatElderComprehensiveEvaluationVO();
}
PlatElderHeartRespiratoryEvaluationVO platElderHeartRespiratoryEvaluationVO = heartRespiratoryEvaluation(platElderIdDTO);
return platElderDayReportWeekService.comprehensiveEvaluationInternal(platElderSleepEvaluationVO, platElderHeartRespiratoryEvaluationVO);
......
......@@ -431,15 +431,17 @@ public class PlatTenantServiceImpl extends ServiceImpl<PlatTenantMapper, PlatTen
private void checkCode(PlatTenantDTOVO dto) {
PlatTenant tntTenant = getOne(
List<PlatTenant> list = list(
new QueryWrapper<PlatTenant>().lambda()
.eq(PlatTenant::getCode, dto.getCode())
.ne(StringUtils.isNotBlank(dto.getId()), PlatTenant::getId, dto.getId())
);
if (tntTenant != null && !tntTenant.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_TENANT_CODE_DUPLICATE);
for (PlatTenant platTenant : list) {
if (platTenant != null && !platTenant.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_TENANT_CODE_DUPLICATE);
}
}
}
@Override
......
......@@ -150,7 +150,7 @@ public class IotSyncTask {
/**
* 长者睡眠分析
*/
//@Scheduled(cron = "0 6 * * *")
@Scheduled(cron = "0 0 2 * * ?")
@TenantIdIgnore
public void elderSleepSleepAnalysisTask() {
log.info("开始定时分析长者睡眠质量");
......
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