Commit e00347d9 by 朱淼
parents 4d005df2 98150b4c
Showing with 135 additions and 65 deletions
......@@ -37,7 +37,7 @@ import java.util.List;
@Api(tags = "租户管理-租户")
@RestController
@RequestMapping("/saas/tenant")
public class PlatTenantController {
public class SaasPlatTenantController {
@Autowired
private PlatTenantService platTenantService;
......
package com.makeit.config.global.cors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import java.util.Arrays;
/**
* @author : willian fu
* @version : 1.0
* 设置跨域
*/
@Configuration
public class GlobalCorsConfig {// extends WebMvcConfigurerAdapter {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.setAllowedOriginPatterns(Arrays.asList("*"));
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
config.addAllowedHeader("*");
UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
return new CorsFilter(configSource);
}
/*@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedMethods("*")
.allowedOrigins("*")
.allowedHeaders("*")
.maxAge(3600 * 5);
}*/
}
......@@ -100,6 +100,8 @@ public enum CodeMessageEnum {
PLATFORM_ERROR_ELDER_CERTIFICATENUMBER_DUPLICATE(500, "PLATFORM.ERROR.ELDER.CERTIFICATENUMBER.DUPLICATE"),
PLATFORM_ERROR_CHILDREN_ELDER_ID_BIND_DUPLICATE(500, "PLATFORM.ERROR.CHILDREN.ELDER.ID.BIND.DUPLICATE"),
PLATFORM_ERROR_SPACE_NAME_DUPLICATE(500, "PLATFORM.ERROR.SPACE.NAME.DUPLICATE"),
PLATFORM_ERROR_SPACE_NOT_DEL(500, "PLATFORM.ERROR.SPACE.NOT.DEL"),
......
......@@ -22,7 +22,7 @@ public class SaasRoleDTOVO extends BaseIdDTO implements Serializable {
@ApiModelProperty(value = "名称")
private String name;
@NotBlank(message = "编码不能为空")
// @NotBlank(message = "编码不能为空")
@Size(max = 64, message = "编码最长为64字符")
@Pattern(regexp = "[a-zA-Z0-9]{0,64}", message = "编码只能为大小写英文字符和数字")
@ApiModelProperty(value = "编码")
......
......@@ -50,4 +50,10 @@ public class PlatTenantVO extends BaseIdDTO implements Serializable {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateDate;
/**
* 告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单
*/
@ApiModelProperty(value = "告警渠道 1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单")
private String alertChannel;
}
......@@ -94,6 +94,7 @@ SYSTEM.ERROR.SMS.CODE.NOT.CORRECT=验证码不正确
PLATFORM.ERROR.ELDER.CERTIFICATENUMBER.DUPLICATE=证件号不能重复
PLATFORM.ERROR.CHILDREN.ELDER.ID.BIND.DUPLICATE=不能重复绑定该老人
PLATFORM.ERROR.SPACE.NAME.DUPLICATE=同一层级,空间名称不能重复
PLATFORM.ERROR.SPACE.NOT.DEL=该空间下存在下级或者房间,不可删除
......@@ -108,7 +109,6 @@ PLATFORM.ERROR.BAD.NOT.DEL=床位已绑定长者或设备,不可删除
PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL=该房间下有床位有其他长者入住
PLATFORM.ERROR.BED.BIND_DEVICE_NOT_AUTH=该床位已绑定设备,请重新选择床位
SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD=不能在该节点下新增非管理员角色
SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT=管理员角色不能修改
......
......@@ -37,7 +37,7 @@ public class PlatRoomBedDeviceController {
@ApiOperation("设备列表(选择设备)-房间绑定")
@PostMapping("pageRoomDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageRoomDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
//page.getData().setIsRoom(CommonEnum.YES.getValue());
page.getData().setIsRoom(CommonEnum.YES.getValue());
PageVO<PlatDeviceDTO> data = platRoomBedDeviceService.pageDevice(page);
return ApiResponseUtils.success(data);
}
......
......@@ -112,13 +112,12 @@ public class BehaviorAlarm implements IAlarm {
if (duration!= 0 && count / 1000 >= duration && StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.NO.getValue())) {
log.error("空间雷达发出告警,设备plat_id:" + platDevice.getId());
if(duration1 != 0) {
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO);
notice(platAlarmCheckDTO);
}else {
return;
}
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_BEHAVIOR_ID + deviceId, alarmRedisDTO);
}
} else {//没人
......
......@@ -121,11 +121,12 @@ public class BreathAlarm implements IAlarm {
}
fillRemark(platAlarmCheckDTO, br, start, end);
platAlarmCheckDTO.setAbnormalValue(Convert.toStr(br));
notice(platAlarmCheckDTO);
alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_BR_ID + deviceId, alarmRedisDTO);
notice(platAlarmCheckDTO);
}
} else {
RedisUtil.delete(RedisConst.ALARM_DEVICE_BR_ID + deviceId);
......
......@@ -57,9 +57,9 @@ public class FallAlarm implements IAlarm {
log.error("长者跌倒,已告警过,设备plat_id:"+deviceId);
return;
}
notice(platAlarmCheckDTO);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_FALL_ID+ deviceId, alarmRedisDTO);
notice(platAlarmCheckDTO);
} else {
if(StringUtils.equals(alarmRedisDTO.getAlarm(),CommonEnum.YES.getValue())) {
alarmRedisDTO.setAlarm(CommonEnum.NO.getValue());
......
......@@ -110,11 +110,12 @@ public class HeartAlarm implements IAlarm {
}
fillRemark(platAlarmCheckDTO, hr, start, end);
platAlarmCheckDTO.setAbnormalValue(Convert.toStr(hr));
notice(platAlarmCheckDTO);
alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
RedisUtil.set(RedisConst.ALARM_DEVICE_HR_ID + deviceId, alarmRedisDTO);
notice(platAlarmCheckDTO);
}
} else {
......
......@@ -116,11 +116,11 @@ public interface PlatUserService extends IService<PlatUser> {
List<PlatOrg> getDeptList();
/**
* 更新用户的tenantId
* 更新绑定的用户A的tenantId 重置原本绑定的用户B, 和重置绑定用户B的租户
* @param tenantId
* @param platUserId
*/
void updatePlatUserTenantId(String tenantId,String platUserId);
void updatePlatUserTenantId(String tenantId,String platUserId,String oriUserId);
void delBatch(List<String> idList);
......
......@@ -315,16 +315,13 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
dto.setPath(parent.getPath() + "," + parent.getId());
}
if(!StringUtils.equals(dto.getType(),platOrg.getType())){
if(StringUtils.isNotBlank(dto.getType()) && !StringUtils.equals(dto.getType(),platOrg.getType())){
LambdaUpdateWrapper<PlatSpace> platSpaceLambdaUpdateWrapper = Wrappers.lambdaUpdate(PlatSpace.class)
.set(PlatSpace::getAttribute, dto.getType())
.eq(PlatSpace::getOrgId, dto.getId())
;
platSpaceService.update(platSpaceLambdaUpdateWrapper);
}
updateById(dto);
}
......
......@@ -186,10 +186,11 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
list(listTenantLambdaQueryWrapper(dto, qw -> qw
.eq(PlatUser::getIsTenant, IsTenantAccountEnum.YES.getValue())
.and(StringUtils.equals(dto.getLinkTenant(), CommonEnum.NO.getValue())
&& StringUtils.isNotBlank(dto.getTenantId()),
sq -> sq.isNull(PlatUser::getTenantId)
.or()
.eq(PlatUser::getTenantId, dto.getTenantId())
|| StringUtils.isNotBlank(dto.getTenantId()),
sq -> {
sq.isNull(PlatUser::getTenantId);
sq.or().eq(PlatUser::getTenantId, dto.getTenantId());
}
)
)),
PlatUserDTOVO.class);
......@@ -1060,7 +1061,21 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
* @param platUserId
*/
@Transactional
public void updatePlatUserTenantId(String tenantId, String platUserId) {
public void updatePlatUserTenantId(String tenantId, String platUserId,String oriUserId) {
if (!StringUtils.equals(platUserId, oriUserId)) {
LambdaUpdateWrapper<PlatUser> userLambdaUpdateWrapper = Wrappers.lambdaUpdate(PlatUser.class)
.eq(PlatUser::getTenantId, tenantId)
.set(PlatUser::getOrgId, null)
.set(PlatUser::getOrgPath, null)
.set(PlatUser::getTenantId, null);
this.update(userLambdaUpdateWrapper);
LambdaUpdateWrapper<PlatTenant> tenantLambdaUpdateWrapper = Wrappers.lambdaUpdate(PlatTenant.class)
.eq(PlatTenant::getPlatUserId, oriUserId)
.set(PlatTenant::getPlatUserId, null);
platTenantService.update(tenantLambdaUpdateWrapper);
}
LambdaUpdateWrapper<PlatUser> updateWrapper = Wrappers.lambdaUpdate(PlatUser.class)
.set(PlatUser::getTenantId, tenantId)
.set(PlatUser::getOrgId, tenantId)
......
......@@ -83,7 +83,9 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
.eq(StringUtils.isNotBlank(dto.getStatus()), PlatDevice::getStatus, dto.getStatus())
.like(StringUtils.isNotBlank(dto.getProductName()), PlatDevice::getProductName, dto.getProductName())
.eq(StringUtils.isNotBlank(dto.getProductId()), PlatDevice::getProductId, dto.getProductId())
.apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)")
.eq(StringUtils.isNotBlank(dto.getOrgId()),PlatDevice::getOrgId,dto.getOrgId())
// .apply(StringUtils.isNotBlank(dto.getOrgId()), "find_in_set('" + dto.getOrgId() + "',org_path)")
.orderByDesc(BaseEntity::getUpdateDate)
);
List<PlatDeviceListVO> voList = BeanDtoVoUtils.listVo(page.getRecords(), PlatDeviceListVO.class);
......
......@@ -164,6 +164,11 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
public void bind(String elderId) {
PlatElderChildrenInfo childrenInfo = getById(WechatUserUtil.getUserId());
if (StringUtils.isNotBlank(childrenInfo.getElderId()) && childrenInfo.getElderId().contains(elderId)) {
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_CHILDREN_ELDER_ID_BIND_DUPLICATE);
}
List<String> list = new ArrayList<>(10);
if (StringUtils.isNotBlank(childrenInfo.getElderId())) {
list = Arrays.asList(childrenInfo.getElderId().split(","));
......
......@@ -211,18 +211,18 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return;
}
Integer sleepTimeActionDuration = Integer.valueOf(analysisModel.getSleepTimeActionDuration() + "");
Integer sleepTimeActionThreshold = Integer.valueOf(analysisModel.getSleepTimeActionThreshold() + "");
BigDecimal sleepTimeActionDuration = new BigDecimal(analysisModel.getSleepTimeActionDuration() + "");
BigDecimal sleepTimeActionThreshold = new BigDecimal(analysisModel.getSleepTimeActionThreshold() + "");
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.minusHours(sleepTimeActionDuration);
LocalDateTime start = now.minusMinutes(sleepTimeActionDuration.multiply(new BigDecimal(60).setScale(0, RoundingMode.HALF_UP)).intValue());
PlatDevice platDevice = getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, start, now);
if (CollectionUtils.isNotEmpty(breatheList)) {
if (StreamUtil.allMatch(breatheList, e -> e.getProperties().getBodymove() < sleepTimeActionThreshold)) {
if (StreamUtil.allMatch(breatheList, e -> new BigDecimal(e.getProperties().getBodymove()).compareTo(sleepTimeActionThreshold) <= 0)) {
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.SLEEP.getValue());
}
}
......@@ -234,17 +234,15 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
@Override
public PlatElderRealTimeNowVO nowStatus(PlatElderIdDTO platElderIdDTO) {
// DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
//
PlatElderRealTimeNowVO platElderRealTimeNowVO = new PlatElderRealTimeNowVO();
//
// if (deviceInfoContentBreathe == null) {
// return platElderRealTimeNowVO;
// }
//
//platElderRealTimeNowVO.setStatus(deviceInfoContentBreathe.getProperties().getPersonState() + "");
if (deviceInfoContentBreathe == null) {
return platElderRealTimeNowVO;
}
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
//platElderRealTimeNowVO.setStatus(deviceInfoContentBreathe.getProperties().getPersonState() + "");
nowStatusOut(platElderRealTimeNowVO, platElderIdDTO);
......
......@@ -262,8 +262,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
List<TreeDTOVO> treeList = BeanDtoVoUtils.listVo(spaceList, TreeDTOVO.class);
treeList.forEach(e->{
if(StringUtils.isBlank(e.getParentId())){
treeList.forEach(e -> {
if (StringUtils.isBlank(e.getParentId())) {
e.setParentId(TreeConst.TOP_LEVEL);
}
});
......@@ -579,6 +579,10 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
platElder.setStreetOrgId(userVO.getStreetOrgId());
platElder.setOrgPath(userVO.getOrgPath());
if (StringUtils.isNotBlank(dto.getBedId())) {
platElder.setCheckInTime(LocalDateTime.now());
}
save(platElder);
dto.setId(platElder.getId());
......@@ -627,7 +631,6 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
personalConfigCacheUtil.put(healthInfo);
PlatElderOtherInfo otherInfo = platElderOtherInfoService.getOne(new QueryWrapper<PlatElderOtherInfo>().lambda()
.eq(PlatElderOtherInfo::getElderId, dto.getId()));
if (otherInfo == null) {
......@@ -658,7 +661,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
fillSpace(platElder);
if (StringUtils.isNotBlank(dto.getBedId())) {
if (StringUtils.isNotBlank(dto.getBedId()) && !dto.getBedId().equals(oldBedId)) {
platElder.setCheckInTime(LocalDateTime.now());
}
......@@ -666,7 +669,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
addOrEditExt(dto);
if (StringUtils.isNotBlank(dto.getBedId())) {
if (StringUtils.isNotBlank(dto.getBedId()) && !dto.getBedId().equals(oldBedId)) {
db.setCheckInTime(LocalDateTime.now());
checkInInternal(dto.getBedId());
}
......@@ -675,8 +678,6 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
}
}
//@TenantIdIgnore
......
......@@ -98,11 +98,9 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.select(PlatRoomBedDevice::getDeviceId);
if (StringUtil.isNotEmpty(dto.getRoomId())) {
queryWrapper1.eq(PlatRoomBedDevice::getRoomId, dto.getRoomId());
}
if (CommonEnum.NO.getValue().equals(dto.getIsRoom())) {
queryWrapper1.isNotNull(PlatRoomBedDevice::getBedId);
queryWrapper1.eq(PlatRoomBedDevice::getRoomId, dto.getRoomId());
}
List<PlatRoomBedDevice> list = list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item -> item.getDeviceId()).collect(Collectors.toList());
......
......@@ -117,7 +117,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
//上级空间
PlatSpace parentSpace = this.getById(dto.getParentId());
if (parentSpace!=null && parentSpace.getParentPath()!=null && parentSpace.getParentPath().contains(dto.getId())) {
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_SPACE_NOT_DEL);
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_SPACE_NOT_AUTH_PARENT);
}
this.updateById(space);
......
......@@ -269,7 +269,7 @@ public class PlatTenantServiceImpl extends ServiceImpl<PlatTenantMapper, PlatTen
sysConfigService.copyForTenant(dto);
//更新用户的tenantId
platUserService.updatePlatUserTenantId(tntTenant.getId(), dto.getPlatUserId());
platUserService.updatePlatUserTenantId(tntTenant.getId(), dto.getPlatUserId(),null);
//组织表增加一条数据
PlatOrg platOrg = convertToPlatOrg(tntTenant);
......@@ -296,10 +296,7 @@ public class PlatTenantServiceImpl extends ServiceImpl<PlatTenantMapper, PlatTen
updateById(tntTenant);
//更新用户的tenantId
if (!StringUtils.equals(dto.getPlatUserId(), platTenant.getPlatUserId())) {
platUserService.updatePlatUserTenantId(null, dto.getPlatUserId());
}
platUserService.updatePlatUserTenantId(tntTenant.getId(), dto.getPlatUserId());
platUserService.updatePlatUserTenantId(tntTenant.getId(), dto.getPlatUserId(),platTenant.getPlatUserId());
PlatOrg platOrg = convertToPlatOrg(tntTenant);
//更新组织表
......
......@@ -95,13 +95,13 @@ implements SaasRoleService{
}
oldList = list(new QueryWrapper<SaasRole>().lambda()
.eq(SaasRole::getCode, dto.getCode()));
for (SaasRole old : oldList) {
if (old != null && !old.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
}
}
// oldList = list(new QueryWrapper<SaasRole>().lambda()
// .eq(SaasRole::getCode, dto.getCode()));
// for (SaasRole old : oldList) {
// if (old != null && !old.getId().equals(dto.getId())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
// }
// }
}
......
......@@ -9,7 +9,7 @@ import java.time.LocalDateTime;
@Data
public class PlatElderHeartRespiratoryEvaluationRecordVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm::ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("时间")
private LocalDateTime time;
......
......@@ -106,16 +106,16 @@ public class PushCallback implements MqttCallback {
for (PlatAlarmConfig config : deviceAlarmConfigList) {
String alarmType = config.getAlarmType();
PlatAlarmCheckDTO platAlarmCheckDTO = new PlatAlarmCheckDTO();
//告警配置
platAlarmCheckDTO.setPlatAlarmConfig(config);
//设备信息
platAlarmCheckDTO.setPlatDevice(platDevice);
//iot上报数据
platAlarmCheckDTO.setProperties(properties);
for (IAlarm alarm : alarmList) {
if (alarm.support(alarmType)) {
//防止呼吸心率的数据交叉
PlatAlarmCheckDTO platAlarmCheckDTO = new PlatAlarmCheckDTO();
//告警配置
platAlarmCheckDTO.setPlatAlarmConfig(config);
//设备信息
platAlarmCheckDTO.setPlatDevice(platDevice);
//iot上报数据
platAlarmCheckDTO.setProperties(properties);
alarm.checkConfig(platAlarmCheckDTO);
}
}
......
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