Commit c304eff3 by 杨伟程

老人报表更新

parents 70f55b67 c347f1f6
Showing with 987 additions and 118 deletions
......@@ -293,13 +293,13 @@ CREATE TABLE `plat_elder_sleep`
`elder_id` VARCHAR(64) NOT NULL COMMENT '长者id',
`start_sleep` datetime DEFAULT NULL COMMENT '入睡时间',
`end_sleep` datetime DEFAULT NULL COMMENT '起床时间',
`current_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`happen_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`sleep_record` text DEFAULT NULL COMMENT '睡眠记录 区分时间段记录 [{"sleepType":"","startTime":"","endTime":""},{}]',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR(64) NOT NULL COMMENT '创建人',
`update_by` VARCHAR(64) NOT NULL COMMENT '更新人',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -316,12 +316,12 @@ CREATE TABLE `plat_elder_sleep_analysis`
`sleep_time` VARCHAR(64) DEFAULT NULL COMMENT '睡眠时长',
`rest_time` VARCHAR(64) DEFAULT NULL COMMENT '休息时长',
`sleep_evaluate` VARCHAR(64) DEFAULT NULL COMMENT '评价',
`current_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`happen_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR(64) NOT NULL COMMENT '创建人',
`update_by` VARCHAR(64) NOT NULL COMMENT '更新人',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -329,6 +329,42 @@ CREATE TABLE `plat_elder_sleep_analysis`
DEFAULT CHARSET = utf8mb4
ROW_FORMAT = COMPACT COMMENT = '长者每天睡觉分析';
CREATE TABLE `plat_elder_breathe_abnormal` (
`id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` varchar(64) NOT NULL COMMENT '长者id',
`breathe_analysis_id` varchar(64) NOT NULL COMMENT '呼吸分析id',
`happen_time` datetime NOT NULL COMMENT '发生时间',
`type` varchar(32) DEFAULT NULL COMMENT '异常类型',
`value` varchar(64) DEFAULT NULL COMMENT '值',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='长者每天呼吸异常';
CREATE TABLE `plat_elder_breathe_analysis` (
`id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` varchar(64) NOT NULL COMMENT '长者id',
`breathe_score` varchar(64) DEFAULT NULL COMMENT '睡眠评分',
`breathe_result` varchar(64) DEFAULT NULL COMMENT '睡眠结果',
`breathe_evaluate` varchar(64) DEFAULT NULL COMMENT '评价',
`avg_heart_rate` varchar(64) DEFAULT NULL COMMENT '平均心率',
`avg_breathe_rate` varchar(64) DEFAULT NULL COMMENT '平均呼吸率',
`happen_date` varchar(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='长者每天呼吸分析';
CREATE TABLE `plat_elder_report_month`
(
`id` varchar(64) NOT NULL COMMENT 'id',
......
......@@ -138,3 +138,27 @@ CREATE TABLE `saas_disease_evaluate_report` (
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='呼吸心率慢性病模型评估结果';
CREATE TABLE `saas_disease_report` (
`id` varchar(64) NOT NULL COMMENT 'id',
`result_content` text COMMENT '评估内容 json数组 {"number:"1""scoreRange":"",evaluate:""}',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) NOT NULL COMMENT ' 删除标志 0否 1是 ',
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='呼吸心率慢性病报告';
CREATE TABLE `saas_elder_report_config` (
`id` varchar(64) NOT NULL COMMENT 'id',
`result_content` text COMMENT '评估内容 json字符串 {"number:"1",condtion:"","score":"",evaluate:"""}',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) NOT NULL COMMENT ' 删除标志 0否 1是 ',
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='长者报告配置';
\ No newline at end of file
......@@ -83,8 +83,8 @@ CREATE TABLE `plat_bed`
CREATE TABLE `plat_region_setting`
(
`id` varchar(64) NOT NULL COMMENT 'id',
`install_type` char(1) NOT NULL COMMENT '安装方式 0-顶装 1-侧装',
`toward` char(1) NOT NULL COMMENT '设备朝向 0-上 1-下 2-左 3-右',
`install_type` char(1) DEFAULT NULL COMMENT '安装方式 0-顶装 1-侧装',
`toward` char(1) DEFAULT NULL COMMENT '设备朝向 0-上 1-下 2-左 3-右',
`region_name` varchar(64) DEFAULT NULL COMMENT '区域名称',
`region_range` varchar(128) DEFAULT NULL COMMENT '区域定位',
`room_range` varchar(128) DEFAULT NULL COMMENT '房间门定位',
......
package com.makeit.controller.analysis;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasDiseaseReport;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.global.annotation.Action;
import com.makeit.service.saas.SaasDiseaseReportService;
import com.makeit.service.saas.SaasSleepEvaluateReportService;
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;
/**
* <p>
* 睡眠质量分析模型评估结果 前端控制器
* </p>
*
* @author eugene young
* @since 2023-09-05
*/
@RestController
@RequestMapping("/saas/diseaseReport")
@Api(tags = "saas端-报告管理-呼吸心率慢性病报告")
public class SaasDiseaseReportController {
@Autowired
private SaasDiseaseReportService saasDiseaseReportService;
@Action(module = "报告管理-呼吸心率慢性病报告", name = "详情", code = "saas:diseaseReport:view")
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<SaasDiseaseReport> view(@RequestBody BaseIdDTO dto) {
return ApiResponseUtils.success(saasDiseaseReportService.view(dto.getId()));
}
@Action(module = "报告管理-呼吸心率慢性病报告", name = "新增", code = "saas:diseaseReport:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<Void> add(@Validated @RequestBody SaasSleepEvaluateReportDTO dto) {
saasDiseaseReportService.add(dto);
return ApiResponseUtils.success();
}
@Action(module = "报告管理-呼吸心率慢性病报告", name = "编辑", code = "saas:diseaseReport:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<Void> edit(@Validated @RequestBody SaasSleepEvaluateReportDTO dto) {
saasDiseaseReportService.edit(dto);
return ApiResponseUtils.success();
}
}
......@@ -51,9 +51,10 @@ public class SaasPlatUserController {
}
@Action(module = "saas端-租户账号", name = "列表", code = "saas.plat.user.listTenant")
@ApiOperation("列表")
@ApiOperation("列表-未关联租户")
@PostMapping("listTenant")
public ApiResponseEntity<List<PlatUserDTOVO>> listTenant(@RequestBody PlatUserQueryDTO dto){
dto.setLinkTenant(CommonEnum.NO.getValue());
return ApiResponseUtils.success(platUserService.listTenant(dto));
}
......
......@@ -157,6 +157,7 @@
<orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-core:5.5.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.3.1" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-mqtt:5.5.5" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:dysmsapi20170525:2.0.9" level="project" />
......@@ -183,7 +184,6 @@
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.5" level="project" />
......@@ -205,6 +205,7 @@
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.14" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" level="project" />
......
......@@ -83,4 +83,6 @@ public class PlatMenuDTOVO extends BaseIdDTO {
* 跳转参数
*/
private String pageQuery;
private boolean show = false;
}
......@@ -32,21 +32,6 @@ public class PlatUserQueryDTO extends BaseOrgDTO {
@ApiModelProperty(value = "要排除的角色id roleId和notRoleId只能用一个")
private String notRoleId;
// @ApiModelProperty(value = "关键词 用来搜姓名或者工号")
// private String keyword;
//
// @ApiModelProperty(value = "职级")
// private Integer postLevel;
//
// @ApiModelProperty(value = "是否从酒店开始 0否 1是")
// private String fromHotel;
//
// @ApiModelProperty(value = "是否常用人员 0否 1是")
// private String isFrequent;
//
// @ApiModelProperty(value = "标签id")
// private String labelId;
@ApiModelProperty(value = "用户工号集合")
private List<String> accountList;
......@@ -62,4 +47,7 @@ public class PlatUserQueryDTO extends BaseOrgDTO {
@ApiModelProperty(value = "部门id集合")
private List<String> orgIdList;
@ApiModelProperty(value = "已关联租户 0-未关联 1-已关联")
private String linkTenant;
}
......@@ -28,7 +28,7 @@ public class PlatTenantVO extends BaseIdDTO implements Serializable {
private LocalDate endTime;
@ApiModelProperty(value = "租户管理员id")
private String tntUserId;
private String platUserId;
@ApiModelProperty(value = "租户管理员账号")
private String userAccount;
......
......@@ -5,7 +5,10 @@ import lombok.Data;
@Data
public class AnalysisVO {
private Integer br;
private Integer totalHr;
private Integer avgHr;
private Integer totalBr;
private Integer avgBr;
private Integer actionCount = 0; // 体动次数
private Integer turnedCount = 0; // 翻身次数
......@@ -19,9 +22,29 @@ public class AnalysisVO {
private Boolean awakeMinuteActionFlag; // 清醒每分钟体动是否满足要求
private Boolean breatheFlag; // 呼吸是否满足要求
private int brStopThreshold; // 发生次数阈值
private int brStop; // 当前呼吸率
private String brStopTime; // 发生时间
private int brFastThreshold; // 发生次数阈值
private int brFast; // 当前呼吸率
private String brFastTime; // 发生时间
private int brSlowThreshold; // 发生次数阈值
private int brSlow; // 当前呼吸率
private String brSlowTime; // 发生时间
private int hrFastThreshold; // 发生次数阈值
private int hrFast; // 当前心率
private String hrFastTime; // 发生时间
private int hrSlowThreshold; // 发生次数阈值
private int hrSlow; // 当前心率
private String hrSlowTime; // 发生时间
private Boolean heartRateFlag; // 心率是否满足要求
// private Integer sleepDeepMinuteCount; // 深睡每分钟体动和翻身次数
// private Integer sleepModerateAMinuteCount; // 中度睡每分钟体动和翻身次数
......
package com.makeit.module.iot.vo.analysis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class BreatheAbnormalVO {
@ApiModelProperty(value = "发生时间")
private LocalDateTime happenTime;
@ApiModelProperty(value = "异常类型")
private String type;
@ApiModelProperty(value = "值")
private String value;
}
package com.makeit.module.iot.vo.analysis;
import lombok.Data;
import java.util.List;
@Data
public class DiseaseReportVO {
private Integer number;
private List<Condition> condition;
private String score;
private String evaluate;
@Data
public static class Condition {
private String resultRelational;
private String resultCondition;
}
}
package com.makeit.module.iot.vo.analysis;
import lombok.Data;
@Data
public class SaasSleepEvaluateStandardReportVO {
private Long deepScore;
private Long lightScore;
private Long soberScore;
private Long sleepScore;
private Long totalScore;
}
......@@ -19,6 +19,8 @@ public class DeviceInfoContentBreathe {
private Properties properties;
@JsonProperty("timestamp")
private Long timestamp;
@JsonProperty("reportTime")
private String reportTime;
@NoArgsConstructor
@Data
......@@ -52,18 +54,25 @@ public class DeviceInfoContentBreathe {
@Data
public static class Properties {
@JsonProperty("br")
// 呼吸率 "最小值":0,"最大值":500,"步进":1,"单位":"rpm"
private Integer br;
@JsonProperty("distance")
// 距离
private Integer distance;
@JsonProperty("bodymove")
// 体动指数 "最小值":0,"最大值":100,"步进":1,"单位":""
private Integer bodymove;
@JsonProperty("personState")
// 运动状态 0:无人1:运动2:呼吸3:进入呼吸
private Integer personState;
@JsonProperty("person")
// 有人无人 0无人,1有人
private Integer person;
@JsonProperty("hr")
// 心率 最小值":0,"最大值":500,"步进:1,"单位":"bpm"
private Integer hr;
@JsonProperty("point")
// 呼吸波形
private List<Integer> point;
}
}
......@@ -29,28 +29,28 @@ public class PlatOrgChildrenController {
@Autowired
private PlatOrgService platOrgService;
@Action(module = "平台端-组织", name = "分页列表", code = "plat:org:page")
@Action(module = "子女端小程序-组织", name = "分页列表", code = "plat:org:page")
@ApiOperation("树形列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatOrg>> page(@RequestBody PageReqDTO<PlatOrgQueryDTO> pageReqDTO){
return ApiResponseUtils.success(platOrgService.page(pageReqDTO));
}
@Action(module = "平台端-组织", name = "不分页列表", code = "plat:org:list")
@Action(module = "子女端小程序-组织", name = "不分页列表", code = "plat:org:list")
@ApiOperation("树形列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatOrg>> list(@RequestBody PlatOrgQueryDTO platOrgQueryDTO){
return ApiResponseUtils.success(platOrgService.subOrgList(platOrgQueryDTO));
}
@Action(module = "平台端-组织", name = "新增", code = "plat:org:add")
@Action(module = "子女端小程序-组织", name = "新增", code = "plat:org:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<String> add(@Validated @RequestBody PlatOrg tntDept){
return ApiResponseUtils.success(platOrgService.add(tntDept));
}
@Action(module = "平台端-组织", name = "编辑", code = "plat:org:edit")
@Action(module = "子女端小程序-组织", name = "编辑", code = "plat:org:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<Void> edit(@Validated @RequestBody PlatOrg tntDept){
......
package com.makeit.module.controller.children.tenant;
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.entity.saas.PlatTenant;
import com.makeit.module.admin.dto.plat.PlatTenantDTOVO;
import com.makeit.module.admin.vo.plat.PlatTenantVO;
import com.makeit.service.saas.PlatTenantService;
import com.makeit.service.saas.SaasOperationLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 租户 前端控制器
* </p>
*
* @author eugene young
* @since 2022-05-10
*/
@Api(tags = "子女端-租户")
@RestController
@RequestMapping("/children/tenant")
public class PlatTenantChildrenController {
@Autowired
private PlatTenantService platTenantService;
@Autowired
private SaasOperationLogService saasOperationLogService;
@ApiOperation("分页列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatTenantVO>> page(@RequestBody PageReqDTO<PlatTenantVO> page){
return ApiResponseUtils.success(platTenantService.page(page));
}
@ApiOperation("列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatTenant>> list(@RequestBody PlatTenantVO dto){
return ApiResponseUtils.success(platTenantService.list(dto));
}
@ApiOperation("分页列表(AuthIgnore)")
@PostMapping("pageAuthIgnore")
public ApiResponseEntity<PageVO<PlatTenantVO>> pageAuthIgnore(@RequestBody PageReqDTO<PlatTenantVO> page){
return ApiResponseUtils.success(platTenantService.page(page));
}
@ApiOperation("列表(AuthIgnore)")
@PostMapping("listAuthIgnore")
public ApiResponseEntity<List<PlatTenant>> listAuthIgnore(@RequestBody PlatTenantVO dto){
return ApiResponseUtils.success(platTenantService.list(dto));
}
@ApiOperation("列表 根据账号精确查询")
@PostMapping("listByUserIdAndAccount")
public ApiResponseEntity<List<PlatTenant>> listByUserIdAndAccount(@RequestBody PlatTenantVO dto){
return ApiResponseUtils.success(platTenantService.listByUserIdAndAccount(dto));
}
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<PlatTenantDTOVO> view(@RequestBody BaseIdDTO dto){
saasOperationLogService.add("saas端-租户管理-详情", dto.getId());
return ApiResponseUtils.success(platTenantService.view(dto.getId()));
}
@ApiOperation("详情(AuthIgnore)")
@PostMapping("viewIgnore")
public ApiResponseEntity<PlatTenantDTOVO> viewIgnore(@RequestBody BaseIdDTO dto){
return ApiResponseUtils.success(platTenantService.view(dto.getId()));
}
}
......@@ -3,10 +3,14 @@ package com.makeit.module.controller.space;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderImportDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceImportDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.enums.FileSuffixEnum;
import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.excel.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -80,4 +85,11 @@ public class PlatSpaceController {
return ApiResponseUtils.success(data);
}
@ApiOperation(value = "导出模板")
@PostMapping("/exportTemplate")
public void exportTemplate(HttpServletResponse response) {
ExcelUtil.exportTemplate(response, "空间导入模板" + FileSuffixEnum.EXCEL.getSuffix(), PlatSpaceImportDTO.class);
}
}
package com.makeit.module.controller.wechat.org;
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.entity.platform.auth.PlatOrg;
import com.makeit.global.annotation.Action;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.vo.platform.auth.PlatOrgQueryDTO;
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/plat/org")
public class PlatOrgWechatController {
@Autowired
private PlatOrgService platOrgService;
@Action(module = "子女端小程序-组织", name = "分页列表", code = "plat:org:page")
@ApiOperation("树形列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatOrg>> page(@RequestBody PageReqDTO<PlatOrgQueryDTO> pageReqDTO){
return ApiResponseUtils.success(platOrgService.page(pageReqDTO));
}
@Action(module = "子女端小程序-组织", name = "不分页列表", code = "plat:org:list")
@ApiOperation("树形列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatOrg>> list(@RequestBody PlatOrgQueryDTO platOrgQueryDTO){
return ApiResponseUtils.success(platOrgService.subOrgList(platOrgQueryDTO));
}
@Action(module = "子女端小程序-组织", name = "编辑", code = "plat:org:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<Void> edit(@Validated @RequestBody PlatOrg tntDept){
platOrgService.edit(tntDept);
return ApiResponseUtils.success();
}
@Action(module = "平台端-组织", name = "详情", code = "plat:org:view")
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<PlatOrg> view(@RequestBody BaseIdDTO baseIdDTO){
return ApiResponseUtils.success(platOrgService.view(baseIdDTO.getId()));
}
@ApiOperation("当前账号的权限级别树")
@PostMapping("belongToScopeTree")
public ApiResponseEntity<List<PlatOrg>> belongToScopeTree(@RequestBody PlatOrg param){
return ApiResponseUtils.success(platOrgService.belongToOrgTree(param));
}
}
......@@ -68,7 +68,7 @@ public class PlatSpaceWechatController {
}
@ApiOperation("一级空间列表")
@ApiOperation("一级空间列表(参数传组织id)")
@PostMapping("oneLevelList")
public ApiResponseEntity<List<PlatSpaceAddDTO>> oneLevelList(@RequestBody BaseIdDTO dto) {
List<PlatSpaceAddDTO> data = spaceService.oneLevelList(dto);
......
package com.makeit.dto.platform.space;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lzy
* @Date:2023/9/18 11:38
* @Describe:
*/
@Data
@ApiModel(value = "空间导入")
public class PlatSpaceImportDTO {
public static final String BIG_TITLE = "导入说明:\n" +
"\n" +
"1.表头带有*必填\n" +
"2.同一层级下的房间名或空间名不能重名";
@ExcelProperty({BIG_TITLE, "一级*"})
@ApiModelProperty(value = "小区/社区/街道")
private String community;
@ExcelProperty({BIG_TITLE, "二级"})
@ApiModelProperty(value = "楼栋")
private String building;
@ExcelProperty({BIG_TITLE, "三级"})
@ApiModelProperty(value = "单元")
private String unit;
@ExcelProperty({BIG_TITLE, "四级"})
@ApiModelProperty(value = "楼层")
private String floor;
@ExcelProperty({BIG_TITLE, "房间名*"})
@ApiModelProperty(value = "房间名")
private String roomName;
@ExcelProperty({BIG_TITLE, "床位数量"})
@ApiModelProperty(value = "床位数量")
private Integer bedNumber;
}
......@@ -22,6 +22,9 @@ public class PlatSpaceVO extends BaseIdDTO {
@ApiModelProperty("父级Id")
private String parentId;
@ApiModelProperty("父级名称")
private String parentName;
@ApiModelProperty("子集")
private List<PlatSpaceVO> children;
}
package com.makeit.dto.saas.analysis;
import com.makeit.module.iot.vo.analysis.DiseaseReportVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
* 呼吸心率慢性病模型评估结果
......@@ -19,7 +22,8 @@ public class SaasDiseaseEvaluateReportDTO {
private String id;
@ApiModelProperty(value = "评估内容 json字符串 {\"number:\"1\",condition:\"{}\",\"score\":\"\",evaluate:\"\"\"}")
private String resultContent;
private List<DiseaseReportVO> resultContent;
}
package com.makeit.dto.saas.analysis;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* <p>
* 长者报告配置
......@@ -21,7 +24,7 @@ public class SaasElderReportConfigDTO {
private String id;
@ApiModelProperty(value = "评估内容 json字符串 {\"number:\"1\",scoreRange:\"\",evaluate:\"\"\"}")
private String resultContent;
private List<EvaluateReportVO> resultContent;
}
package com.makeit.dto.saas.analysis;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* <p>
* 睡眠质量分析模型评估结果
......@@ -21,7 +24,9 @@ public class SaasSleepEvaluateReportDTO {
private String id;
@ApiModelProperty(value = "评估结果 json字符串 {\"number:\"1\",scoreRange:\"~隔开\",\"result\":\"\",evaluate:\"\"\"}")
private String resultContent;
private List<EvaluateReportVO> resultContent;
}
......@@ -24,10 +24,10 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity {
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "睡眠评分")
@ApiModelProperty(value = "呼吸评分")
private String breatheScore;
@ApiModelProperty(value = "睡眠结果")
@ApiModelProperty(value = "呼吸结果")
private String breatheResult;
@ApiModelProperty(value = "评价")
......@@ -40,7 +40,7 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity {
private String avgBreatheRate;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
}
......@@ -2,7 +2,6 @@ package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.TableField;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.common.typehandler.ListStringJsonTypeHandler;
import com.makeit.typehandler.ElderListStringJsonTypeHandler;
import com.makeit.vo.platform.elder.report.day.PlatSleepRangeVO;
import io.swagger.annotations.ApiModel;
......@@ -38,7 +37,7 @@ public class PlatElderSleep extends BaseBusEntity {
private LocalDateTime endSleep;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
@ApiModelProperty(value = "睡眠记录 区分时间段记录 [{\"sleepType\":\"\",\"startTime\":\"\",\"endTime\":\"\"},{}]")
@TableField(typeHandler = ElderListStringJsonTypeHandler.class)
......
......@@ -40,7 +40,7 @@ public class PlatElderSleepAnalysis extends BaseBusEntity {
private String sleepEvaluate;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
}
package com.makeit.entity.saas.analysis;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 呼吸心率慢性病报告
* </p>
*
* @author eugene young
* @since 2023-09-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="SaasDiseaseReport对象", description="呼吸心率慢性病报告")
public class SaasDiseaseReport extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "评估结果 json字符串 {\"number:\"1\",scoreRange:\"\",evaluate:\"\"\"}")
private String resultContent;
}
......@@ -9,7 +9,7 @@ public enum BreatheTypeEnum {
APNEA("apnea","呼吸暂停"),
TACHYPNEA("tachypnea","呼吸暂停"),
TACHYPNEA("tachypnea","呼吸过速"),
BRADYPNEA("bradypnea","呼吸过缓");
private String code;
......
package com.makeit.mapper.saas.analysis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.saas.analysis.SaasDiseaseReport;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
/**
* <p>
* 呼吸心率慢性病报告 Mapper 接口
* </p>
*
* @author eugene young
* @since 2023-09-05
*/
public interface SaasDiseaseReportMapper extends BaseMapper<SaasDiseaseReport> {
}
......@@ -84,6 +84,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
......@@ -132,9 +133,9 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
.like(StringUtils.isNotBlank(dto.getUsername()), PlatUser::getUsername, dto.getUsername())
.like(StringUtils.isNotBlank(dto.getMobile()), PlatUser::getMobile, dto.getMobile())
.eq(StringUtils.isNotBlank(dto.getStatus()), PlatUser::getStatus, dto.getStatus())
.eq(StringUtils.isNotBlank(dto.getTenantId()),PlatUser::getTenantId,dto.getTenantId())
.like(StringUtils.isNotBlank(dto.getOrgId()),PlatUser::getOrgPath,dto.getOrgId())
;
.eq(StringUtils.isNotBlank(dto.getTenantId())
&&StringUtils.isBlank(dto.getLinkTenant()), PlatUser::getTenantId, dto.getTenantId())
.like(StringUtils.isNotBlank(dto.getOrgId()), PlatUser::getOrgPath, dto.getOrgId());
if (consumer != null) {
consumer.accept(lambdaQueryWrapper);
......@@ -178,8 +179,17 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
@Override
public List<PlatUserDTOVO> listTenant(PlatUserQueryDTO dto) {
//查询未关联租户的管理员和原本管理员 租户编辑下拉框
return BeanDtoVoUtils.listVo(
list(listTenantLambdaQueryWrapper(dto, qw -> qw.eq(PlatUser::getIsTenant, IsTenantAccountEnum.YES.getValue()))),
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())
)
)),
PlatUserDTOVO.class);
}
......@@ -244,7 +254,6 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_USER_PASSWORD_NOT_BLANK);
}
setPassword(user);
user.setAccount(dto.getMobile());
save(user);
dto.setId(user.getId());
return user.getId();
......@@ -324,6 +333,11 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_TENANT_NOT_EXIST);
}
} else {
PlatTenant platTenant = platTenantService.getById(tntUserLoginVO.getTenantId());
PlatTenantVO vo = BeanDtoVoUtils.convert(platTenant, PlatTenantVO.class);
//没有值的情况:登陆后无法跳转
tntUserLoginVO.setTenantList(Arrays.asList(vo));
}
}
......@@ -387,22 +401,23 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
/**
* 校验组织
*
* @param platUser
*/
private void checkUserOrg(PlatUser platUser) {
String orgId = platUser.getOrgId();
//禁用的子公司其下属账号无法登录
PlatOrg platOrg = platOrgService.getById(orgId);
if(platOrg==null){
if (platOrg == null) {
throw new BusinessException("找不到组织");
}
String path = platOrg.getPath();
String[] split = StringUtils.split(path, ",");
LambdaQueryWrapper<PlatOrg> platOrgLambdaQueryWrapper = new LambdaQueryWrapper<>();
platOrgLambdaQueryWrapper.in(BaseEntity::getId,split)
.eq(PlatOrg::getStatus,CommonEnum.NO.getValue());
platOrgLambdaQueryWrapper.in(BaseEntity::getId, split)
.eq(PlatOrg::getStatus, CommonEnum.NO.getValue());
long count = platOrgService.count(platOrgLambdaQueryWrapper);
if(count>0){
if (count > 0) {
throw new BusinessException("禁用的子公司其下属账号无法登录");
}
}
......@@ -422,7 +437,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
buttonList.add(e);
}
if (catalogue.equals(e.getCategory()) || menu.equals(e.getCategory())||button.equals(e.getCategory())) {
if (catalogue.equals(e.getCategory()) || menu.equals(e.getCategory()) || button.equals(e.getCategory())) {
nonButtonList.add(e);
}
......@@ -631,8 +646,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
.in(CollectionUtils.isNotEmpty(dto.getNameList()), PlatUser::getUsername, dto.getUsername())
.like(StringUtils.isNotBlank(dto.getMobile()), PlatUser::getMobile, dto.getMobile())
.eq(StringUtils.isNotBlank(dto.getStatus()), PlatUser::getStatus, dto.getStatus())
.eq(PlatUser::getTenantId, TenantIdUtil.getTenantId())
;
.eq(PlatUser::getTenantId, TenantIdUtil.getTenantId());
roleIdFilter(lambdaQueryWrapper, dto);
......@@ -785,8 +799,6 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
user.setStatus(CommonEnum.YES.getValue());
user.setAccount(dto.getMobile());
fillOrgPath(dto, user);
save(user);
......@@ -798,7 +810,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
private void fillOrgPath(PlatPersonDTOVO dto, PlatUser user) {
PlatOrg platOrg = platOrgService.getById(dto.getId());
if(platOrg!=null) {
if (platOrg != null) {
user.setOrgPath(platOrg.getPath() + "," + platOrg.getId());
}
}
......@@ -1012,6 +1024,8 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
public void updatePlatUserTenantId(String tenantId, String platUserId) {
LambdaUpdateWrapper<PlatUser> updateWrapper = Wrappers.lambdaUpdate(PlatUser.class)
.set(PlatUser::getTenantId, tenantId)
.set(PlatUser::getOrgId, tenantId)
.set(PlatUser::getOrgPath, tenantId)
.eq(BaseEntity::getId, platUserId);
this.update(updateWrapper);
}
......@@ -1024,6 +1038,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
/**
* 导入人员
*
* @param excelFile
*/
@Override
......@@ -1031,16 +1046,16 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
List<PlatUserImportDTO> platUserImportDTOS = ExcelUtil.importExcel(null, 3, excelFile, PlatUserImportDTO.class);
LambdaQueryWrapper<PlatOrg> orgLambdaQueryWrapper = new LambdaQueryWrapper<>();
orgLambdaQueryWrapper.select(BaseEntity::getId,PlatOrg::getName);
orgLambdaQueryWrapper.select(BaseEntity::getId, PlatOrg::getName);
List<PlatOrg> orgList = platOrgService.list(orgLambdaQueryWrapper);
LambdaQueryWrapper<PlatRole> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
roleLambdaQueryWrapper.select(BaseEntity::getId,PlatRole::getName);
roleLambdaQueryWrapper.select(BaseEntity::getId, PlatRole::getName);
List<PlatRole> roleList = platRoleService.list(roleLambdaQueryWrapper);
Map<String, String> orgNameMap = orgList.stream().collect(Collectors.toMap(PlatOrg::getName, BaseEntity::getId, (a, b) -> a));
Map<String, PlatOrg> orgNameMap = orgList.stream().collect(Collectors.toMap(PlatOrg::getName, vo -> vo, (a, b) -> a));
Map<String, String> roleNameMap = roleList.stream().collect(Collectors.toMap(PlatRole::getName, BaseEntity::getId, (a, b) -> a));
LambdaQueryWrapper<PlatUser> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
userLambdaQueryWrapper.select(PlatUser::getMobile,PlatUser::getEmail,BaseEntity::getId);
userLambdaQueryWrapper.select(PlatUser::getMobile, PlatUser::getEmail, BaseEntity::getId);
List<PlatUser> userList = this.list(userLambdaQueryWrapper);
Map<String, String> mobileMap = userList.stream().collect(Collectors.toMap(PlatUser::getMobile, BaseEntity::getId, (a, b) -> a));
Map<String, String> emailMap = userList.stream().collect(Collectors.toMap(PlatUser::getEmail, BaseEntity::getId, (a, b) -> a));
......@@ -1050,25 +1065,28 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
int start = 3;
for (int i = 0; i < platUserImportDTOS.size(); i++) {
PlatUserImportDTO dto = platUserImportDTOS.get(i);
ExcelErrorVo.isNotNull(dto.getUsername(),errorVoList, start+i,"姓名*");
ExcelErrorVo.isNotNull(dto.getMobile(),errorVoList,start+i,"手机号*");
ExcelErrorVo.isNotNull(dto.getRoleName(),errorVoList,start+i,"*角色");
ExcelErrorVo.isNotNull(dto.getOrgName(),errorVoList,start+i,"*所属组织");
ExcelErrorVo.notExists(orgNameMap.get(dto.getOrgName()),errorVoList,start+i,"*所属组织");
ExcelErrorVo.notExists(roleNameMap.get(dto.getRoleName()),errorVoList,start+i,"*角色");
ExcelErrorVo.exists(mobileMap,mobileMap.get(dto.getMobile()),errorVoList,start+i,"手机号*");
ExcelErrorVo.exists(emailMap,emailMap.get(dto.getEmail()),errorVoList,start+i,"邮箱");
}
if(errorVoList.isEmpty()){
ExcelErrorVo.isNotNull(dto.getUsername(), errorVoList, start + i, "姓名*");
ExcelErrorVo.isNotNull(dto.getMobile(), errorVoList, start + i, "手机号*");
ExcelErrorVo.isNotNull(dto.getRoleName(), errorVoList, start + i, "*角色");
ExcelErrorVo.isNotNull(dto.getOrgName(), errorVoList, start + i, "*所属组织");
PlatOrg platOrg = Optional.ofNullable(orgNameMap.get(dto.getOrgName())).orElse(new PlatOrg());
ExcelErrorVo.notExists(platOrg.getId(), errorVoList, start + i, "*所属组织");
ExcelErrorVo.notExists(roleNameMap.get(dto.getRoleName()), errorVoList, start + i, "*角色");
ExcelErrorVo.exists(mobileMap, mobileMap.get(dto.getMobile()), errorVoList, start + i, "手机号*");
ExcelErrorVo.exists(emailMap, emailMap.get(dto.getEmail()), errorVoList, start + i, "邮箱");
}
if (errorVoList.isEmpty()) {
List<PlatUser> platUsers = new ArrayList<>();
platUserImportDTOS.forEach(vo->{
platUserImportDTOS.forEach(vo -> {
PlatUser platUser = BeanDtoVoUtils.convert(vo, PlatUser.class);
vo.setPassword(PasswordUtils.encryptPassword(vo.getPassword()));
platUser.setStatus(CommonEnum.YES.getValue());
platUser.setTenantId(TenantIdUtil.getTenantId());
platUser.setAccount(platUser.getMobile());
platUser.setIsTenant(CommonEnum.NO.getValue());
PlatOrg platOrg = Optional.ofNullable(orgNameMap.get(vo.getOrgName())).orElse(new PlatOrg());
platUser.setOrgId(platOrg.getId());
platUser.setOrgPath(platOrg.getPath() + "," + platOrg.getId());
platUsers.add(platUser);
});
......
......@@ -397,15 +397,16 @@ public class DataScreenServiceImpl implements DataScreenService {
private List<PlatAlarmRecordStatisticsVo> coverToVoList(List<PlatAlarmRecord> alarmRecords, Map<String,PlatElder> platElderMap) {
List<PlatAlarmRecordStatisticsVo> statisticsVos = new ArrayList<>();
alarmRecords.forEach(record->{
if(StringUtil.isNotEmpty(record.getElderIds())) {
List<String> elderIds = Arrays.asList(record.getElderIds().split(","));
if(StringUtil.isNotEmpty(record.getElderIds())
&& elderIds.size()>0){
if(platElderMap.get(elderIds.get(0))!=null){
if (elderIds.size() > 0) {
if (platElderMap.get(elderIds.get(0)) != null) {
PlatAlarmRecordStatisticsVo statisticsVo = BeanDtoVoUtils.convert(record, PlatAlarmRecordStatisticsVo.class);
statisticsVo.setSpaceId(platElderMap.get(elderIds.get(0)).getSpaceId());
statisticsVos.add(statisticsVo);
}
}
}
});
return statisticsVos;
}
......
......@@ -87,7 +87,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
PlatElderSleepAnalysis platElderSleepAnalysis = platElderSleepAnalysisService.getOne(new QueryWrapper<PlatElderSleepAnalysis>().lambda()
.eq(PlatElderSleepAnalysis::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderSleepAnalysis::getCurrentDate, nowString)
.eq(PlatElderSleepAnalysis::getHappenDate, nowString)
);
if (platElderSleepAnalysis == null) {
......@@ -117,7 +117,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
List<PlatElderSleep> sleepList = platElderSleepService.list(new QueryWrapper<PlatElderSleep>().lambda()
.eq(PlatElderSleep::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderSleep::getCurrentDate, nowString)
.eq(PlatElderSleep::getHappenDate, nowString)
.orderByAsc(PlatElderSleep::getStartSleep)
);
......@@ -158,7 +158,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
PlatElderBreatheAnalysis platElderSleepAnalysis = platElderBreatheAnalysisService.getOne(new QueryWrapper<PlatElderBreatheAnalysis>().lambda()
.eq(PlatElderBreatheAnalysis::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderBreatheAnalysis::getCurrentDate, nowString)
.eq(PlatElderBreatheAnalysis::getHappenDate, nowString)
);
if (platElderSleepAnalysis == null) {
......
......@@ -2,11 +2,13 @@ package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
......@@ -66,4 +68,12 @@ public interface PlatSpaceService extends IService<PlatSpace> {
PlatSpaceVO child(PlatSpaceVO vo, Map<String,List<PlatSpace>> map);
PlatSpaceVO convertToVO(PlatSpace space);
/**
* 导入
* @param excelFile
* @return
*/
public ExcelImportVo importSpaceExcel(MultipartFile excelFile);
}
package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.space.PlatRegionSettingDTO;
import com.makeit.dto.platform.space.PlatRegionSettingQueryDTO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.device.PlatDeviceOther;
import com.makeit.entity.platform.space.PlatRegionSetting;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.mapper.platform.space.PlatRegionSettingMapper;
import com.makeit.service.platform.device.PlatDeviceOtherService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
......@@ -16,6 +19,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -30,6 +34,8 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
@Autowired
private PlatDeviceService platDeviceService;
@Autowired
private PlatDeviceOtherService platDeviceOtherService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -43,13 +49,23 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
queryWrapper1.ne(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
List<PlatDevice> devices = platDeviceService.list(queryWrapper1);
listDeviceId = devices.stream().map(item->item.getId()).collect(Collectors.toList());
List<PlatDeviceOther> platDeviceOthers = new ArrayList<>();
if(!listDeviceId.isEmpty()){
//获取设备安装方式
platDeviceOthers = platDeviceOtherService.list(new QueryWrapper<PlatDeviceOther>().lambda()
.in(PlatDeviceOther::getDeviceId,listDeviceId));
}
Map<String,String> map = platDeviceOthers.stream().collect(Collectors.toMap(PlatDeviceOther::getDeviceId,PlatDeviceOther::getInstallation));
List<PlatRegionSetting> list = new ArrayList<>();
listDeviceId.forEach(item->{
PlatRegionSetting platRegionSetting = new PlatRegionSetting();
platRegionSetting.setDeviceId(item);
platRegionSetting.setRoomId(roomId);
if(map.get(item)!=null){
platRegionSetting.setInstallType(map.get(item));
}
list.add(platRegionSetting);
});
......
......@@ -4,14 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
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.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.CodeMessageEnum;
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;
......@@ -19,6 +20,8 @@ import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.excel.ExcelUtil;
import com.makeit.utils.user.TokenUtil;
import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
......@@ -26,8 +29,10 @@ import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -69,12 +74,20 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
public void add(PlatSpaceAddDTO dto) {
check(dto);
PlatSpace space = BeanDtoVoUtils.convert(dto, PlatSpace.class);
PlatUserVO userVO = PlatUserUtil.getUserVO();
if(StringUtil.isEmpty(dto.getParentId())){
PlatUserVO userVO = PlatUserUtil.getUserVOCanNull();
space.setOrgId(userVO.getOrgId());
PlatOrg org = platOrgService.getById(userVO.getOrgId());
PlatOrg org = platOrgService.getById(space.getOrgId());
if(org!=null){
space.setAttribute(org.getType());
}
}else {
//上级空间
PlatSpace parentSpace = getById(dto.getParentId());
space.setOrgId(parentSpace.getOrgId());
space.setAttribute(parentSpace.getAttribute());
}
save(space);
}
......@@ -259,5 +272,193 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
return vo;
}
@Override
@Transactional
public ExcelImportVo importSpaceExcel(MultipartFile excelFile) {
ExcelImportVo excelImportVo = new ExcelImportVo();
try {
List<PlatSpace> listPlatSpace = list(new LambdaQueryWrapper<>());
List<PlatSpace> firstSpace = listPlatSpace.stream().filter(item->item.getParentId() == null).collect(Collectors.toList());
Map<String,String> firstSpaceNameMap = firstSpace.stream().collect(Collectors.toMap(PlatSpace::getName,PlatSpace::getId,(k1,k2)->k1));
List<PlatSpace> listChildren = listPlatSpace.stream().filter(item->item.getParentId() != null).collect(Collectors.toList());
Map<String,List<PlatSpace>> childrenMap = listChildren.stream().collect(Collectors.groupingBy(PlatSpace::getParentId));
Map<String,String> childrenIdMap = listChildren.stream().collect(Collectors.toMap(item->item.getParentId()+item.getName(),item->item.getId(),(k1,k2)->k1));
List<PlatSpaceImportDTO> list = ExcelUtil.importExcel(null,3,excelFile,PlatSpaceImportDTO.class);
List<ExcelErrorVo> errorVoList = new ArrayList<>(10);
List<String> excelField = Arrays.asList("一级*","二级","三级","四级","房间名*","床位数量");
int startRow = 3;
// List<PlatSpaceVO> listFirst = new ArrayList<>(10);
// List<PlatSpaceVO> listSecond = new ArrayList<>(10);
// List<PlatSpaceVO> listThree = new ArrayList<>(10);
// List<PlatSpaceVO> listFour = new ArrayList<>(10);
List<PlatRoomDTO> listRoom = new ArrayList<>(10);
List<String> listKey = new ArrayList<>();
Integer errorCount = 0;
Integer successCount = 0;
boolean errorFlag = false;
for(int i=0;i<list.size();i++){
PlatSpaceImportDTO item = list.get(i);
if(StringUtil.isEmpty(item.getCommunity())){
errorVoList.add(new ExcelErrorVo(i+3,excelField.get(0),"第一层级必填"));
errorFlag = true;
}
if(StringUtil.isEmpty(item.getFloor())){
errorVoList.add(new ExcelErrorVo(i+3,excelField.get(4),"房间名必填"));
errorFlag = true;
}
String key = item.getCommunity();
//第二层级
if(StringUtil.isNotEmpty(item.getBuilding())){
key = key + "-" + item.getBuilding();
}
//第三层级
if(StringUtil.isNotEmpty(item.getUnit())){
key = key + "-" + item.getUnit();
}
//第四层级
if(StringUtil.isNotEmpty(item.getFloor())){
key = key + "-" + item.getFloor();
}
if(listKey.contains(key)){
errorVoList.add(new ExcelErrorVo(i+3,excelField.get(0),"该空间下,房间名已存在"));
errorFlag = true;
}
if(errorFlag){
errorCount++;
}else{
successCount++;
}
}
String orgId = TokenUtil.getTntUserDetail().getOrgId();
if(errorVoList.isEmpty()){
for(int i=0;i<list.size();i++){
PlatSpaceImportDTO item = list.get(i);
//第一层级
String firstId = null;
if(!firstSpaceNameMap.containsKey(item.getCommunity())){
PlatSpace platSpace = new PlatSpace();
platSpace.setName(item.getCommunity());
platSpace.setType(PlatSpaceEnum.TypeEnum.COMMUNITY.getValue());
platSpace.setOrgId(orgId);
save(platSpace);
firstSpaceNameMap.put(platSpace.getName(),platSpace.getId());
firstId = platSpace.getId();
}else{
firstId = firstSpaceNameMap.get(item.getCommunity());
}
//第二层级
String secondId = null;
if(StringUtil.isNotEmpty(item.getBuilding())){
String secondKey = firstId + "-" + item.getBuilding();
if(!childrenIdMap.containsKey(secondKey)){
PlatSpace platSpace = new PlatSpace();
platSpace.setName(item.getBuilding());
platSpace.setType(PlatSpaceEnum.TypeEnum.BUILDING.getValue());
platSpace.setOrgId(orgId);
platSpace.setParentId(firstId);
platSpace.setParentPath(firstId);
save(platSpace);
childrenIdMap.put(secondKey,platSpace.getId());
secondId = platSpace.getId();
}else{
secondId = childrenIdMap.get(secondKey);
}
}
//第三级
String threeId = null;
if(StringUtil.isNotEmpty(item.getUnit())){
String threeKey = secondId + "-" + item.getUnit();
if(!childrenIdMap.containsKey(threeKey)){
PlatSpace platSpace = new PlatSpace();
platSpace.setName(item.getBuilding());
platSpace.setType(PlatSpaceEnum.TypeEnum.UNIT.getValue());
platSpace.setOrgId(orgId);
platSpace.setParentId(secondId);
platSpace.setParentPath(firstId+","+secondId);
save(platSpace);
childrenIdMap.put(threeKey,platSpace.getId());
threeId = platSpace.getId();
}else{
threeId = childrenIdMap.get(threeKey);
}
}
//第四级
String fourId = null;
if(StringUtil.isNotEmpty(item.getFloor())){
String fourKey = threeId + "-" + item.getFloor();
if(!childrenIdMap.containsKey(fourKey)){
PlatSpace platSpace = new PlatSpace();
platSpace.setName(item.getBuilding());
platSpace.setType(PlatSpaceEnum.TypeEnum.FLOOR.getValue());
platSpace.setOrgId(orgId);
platSpace.setParentId(threeId);
platSpace.setParentPath(firstId+","+secondId + "," + threeId);
save(platSpace);
childrenIdMap.put(fourKey,platSpace.getId());
fourId = platSpace.getId();
}else{
fourId = childrenIdMap.get(fourKey);
}
}
//房间
PlatRoomDTO platRoomDTO = new PlatRoomDTO();
platRoomDTO.setName(item.getRoomName());
platRoomDTO.setBedNumber(item.getBedNumber());
String spaceId = null;
if(firstId != null){
spaceId = firstId;
}else if(secondId != null){
spaceId = secondId;
}else if(threeId != null){
spaceId = threeId;
}else if(fourId != null){
spaceId = fourId;
}
platRoomDTO.setSpaceId(spaceId);
platRoomService.add(platRoomDTO);
}
}
excelImportVo.setTotalCount(list.size());
excelImportVo.setErrorCount(errorCount);
excelImportVo.setSuccessCount(successCount);
excelImportVo.setList(errorVoList);
return excelImportVo;
}catch (Exception e){
e.printStackTrace();
}
return excelImportVo;
}
}
package com.makeit.service.saas;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasDiseaseReport;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
/**
* <p>
* 睡眠质量分析模型评估结果 服务类
* </p>
*
* @author eugene young
* @since 2023-09-05
*/
public interface SaasDiseaseReportService extends IService<SaasDiseaseReport> {
SaasDiseaseReport view(String id);
void add(SaasSleepEvaluateReportDTO dto);
void edit(SaasSleepEvaluateReportDTO dto);
EvaluateReportVO getByScore(long totalScore);
}
......@@ -2,6 +2,7 @@ package com.makeit.service.saas.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.entity.saas.PlatMenu;
import com.makeit.entity.saas.PlatTenantMenu;
import com.makeit.enums.CodeMessageEnum;
......@@ -18,6 +19,7 @@ import com.makeit.service.saas.PlatTenantMenuService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.StreamUtil;
import io.swagger.annotations.Api;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -39,13 +41,13 @@ import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* @author lixl
* @description 针对表【tnt_auth_menu(租户端资源管理)】的数据库操作Service实现
* @createDate 2023-08-29 14:29:10
*/
* @author lixl
* @description 针对表【tnt_auth_menu(租户端资源管理)】的数据库操作Service实现
* @createDate 2023-08-29 14:29:10
*/
@Service
public class PlatMenuServiceImpl extends ServiceImpl<PlatMenuMapper, PlatMenu>
implements PlatMenuService {
implements PlatMenuService {
@Autowired
private PlatTenantMenuService platTenantMenuService;
......@@ -96,23 +98,74 @@ implements PlatMenuService {
return topList;
}
private List<PlatMenuDTOVO> tree(List<PlatMenuDTOVO> orgList, Set<String> filterSet) {
if (CollectionUtils.isEmpty(orgList)) {
return new ArrayList<>();
}
Map<String, List<PlatMenuDTOVO>> parentMap = orgList.stream()
.collect(Collectors.groupingBy(PlatMenuDTOVO::getParentId));
orgList.forEach(vo -> {
vo.setChildren(parentMap.get(vo.getId()));
});
List<PlatMenuDTOVO> collect = orgList.stream().filter(vo ->
StringUtils.equals(vo.getParentId(), TreeConst.TOP_LEVEL)).collect(Collectors.toList());
for (PlatMenuDTOVO platMenuDTOVO : collect) {
cutLeaves(platMenuDTOVO, filterSet);
}
return collect.stream().filter(vo -> vo.isShow()).collect(Collectors.toList());
}
/**
* 去掉filterSet后的子节点
* @param parent
* @param filterSet
* @return
*/
public boolean cutLeaves(PlatMenuDTOVO parent, Set<String> filterSet) {
List<PlatMenuDTOVO> children = parent.getChildren();
boolean childShow = false;
if (CollectionUtils.isNotEmpty(children)) {
for (PlatMenuDTOVO platMenuDTOVO : children) {
boolean test = cutLeaves(platMenuDTOVO, filterSet);
if (!test) {
platMenuDTOVO.setChildren(null);
} else {
platMenuDTOVO.setShow(true);
childShow = true;
}
if (filterSet.contains(platMenuDTOVO.getId())) {
platMenuDTOVO.setShow(true);
childShow = true;
}
}
children.removeIf(vo->!vo.isShow());
}
if(!childShow){
parent.setChildren(null);
}
if (filterSet.contains(parent.getId())) {
childShow = true;
}
parent.setShow(childShow);
return parent.isShow();
}
@Override
public List<PlatMenuDTOVO> tree(PlatMenuQueryDTO dto) {
List<PlatMenuDTOVO> tntMenuList = list(dto);
return tree(tntMenuList);
dto.setName(null);
dto.setStatus(null);
List<PlatMenuDTOVO> tntMenuListAll = list(dto);
Set<String> menuIdSet = tntMenuList.stream().map(BaseIdDTO::getId).collect(Collectors.toSet());
return tree(tntMenuListAll, menuIdSet);
}
// private void checkName(TntMenuDTOVO dto) {
// TntMenu old = getOne(new QueryWrapper<TntMenu>().lambda()
// .in(TntMenu::getCategory, SysEnum.MenuTypeEnum.CATALOGUE.getValue(), SysEnum.MenuTypeEnum.MENU.getValue())
// .eq(TntMenu::getName, dto.getName()));
// if (old != null && !old.getId().equals(dto.getId())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_NAME_DUPLICATE);
// }
// }
/**
* 校验资源名称是否重复
*
* @param dto
*/
private void checkCode(PlatMenuDTOVO dto) {
......
......@@ -132,11 +132,12 @@ implements PlatTenantService {
List<PlatTenantVO> voList = BeanDtoVoUtils.listVo(pageList.getRecords(), PlatTenantVO.class);
TntUserJoinUtil.join(platUserService,voList,qw->qw.eq(PlatUser::getIsTenant, IsTenantAccountEnum.YES.getValue()),
PlatTenantVO::getTntUserId,(t, u) -> {
t.setUserAccount(u.getMobile());
PlatTenantVO::getPlatUserId,(t, u) -> {
t.setUserAccount(u.getAccount());
t.setUserName(u.getUsername());
}, BaseEntity::getId);
return PageUtil.toPageVO(voList, pageList);
}
......@@ -245,11 +246,11 @@ implements PlatTenantService {
}
platUserService.updatePlatUserTenantId(tntTenant.getId(),dto.getPlatUserId());
PlatOrg platOrg = convertToPlatOrg(platTenant);
PlatOrg platOrg = convertToPlatOrg(tntTenant);
//更新组织表
platOrgService.edit(platOrg);
//分配菜单
//分配菜单 todo 慢
assignMenuList(tntTenant.getId(),dto.getMenuIdList());
}
......
package com.makeit.service.saas.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.saas.analysis.SaasDiseaseEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasDiseaseEvaluateReport;
......@@ -28,14 +29,16 @@ public class SaasDiseaseEvaluateReportServiceImpl extends ServiceImpl<SaasDiseas
@Override
public void add(SaasDiseaseEvaluateReportDTO dto) {
SaasDiseaseEvaluateReport entity = new SaasDiseaseEvaluateReport();
BeanUtils.copyProperties(dto,entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
save(entity);
}
@Override
public void edit(SaasDiseaseEvaluateReportDTO dto) {
SaasDiseaseEvaluateReport entity = getById(dto.getId());
BeanUtils.copyProperties(dto,entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
saveOrUpdate(entity);
}
}
package com.makeit.service.saas.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasDiseaseReport;
import com.makeit.mapper.saas.analysis.SaasDiseaseReportMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasDiseaseReportService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SaasDiseaseReportServiceImpl extends ServiceImpl<SaasDiseaseReportMapper, SaasDiseaseReport> implements SaasDiseaseReportService {
@Override
public SaasDiseaseReport view(String id) {
return getById(id);
}
@Override
public void add(SaasSleepEvaluateReportDTO dto) {
SaasDiseaseReport entity = new SaasDiseaseReport();
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
save(entity);
}
@Override
public void edit(SaasSleepEvaluateReportDTO dto) {
SaasDiseaseReport entity = getById(dto.getId());
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
saveOrUpdate(entity);
}
@Override
public EvaluateReportVO getByScore(long totalScore) {
SaasDiseaseReport diseaseReport = getOne(new QueryWrapper<SaasDiseaseReport>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String diseaseReportResultContent = diseaseReport.getResultContent();
List<EvaluateReportVO> diseaseReportResultList = JSON.parseArray(diseaseReportResultContent, EvaluateReportVO.class);
EvaluateReportVO elderReport = null;
for (EvaluateReportVO evaluateReportVO : diseaseReportResultList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("-");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
elderReport = evaluateReportVO;
}
}
return elderReport;
}
}
......@@ -35,14 +35,16 @@ public class SaasElderReportConfigServiceImpl extends ServiceImpl<SaasElderRepor
@Override
public void add(SaasElderReportConfigDTO dto) {
SaasElderReportConfig entity = new SaasElderReportConfig();
BeanUtils.copyProperties(dto,entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
save(entity);
}
@Override
public void edit(SaasElderReportConfigDTO dto) {
SaasElderReportConfig entity = getById(dto.getId());
BeanUtils.copyProperties(dto,entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
saveOrUpdate(entity);
}
......
......@@ -38,14 +38,16 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva
@Override
public void add(SaasSleepEvaluateReportDTO dto) {
SaasSleepEvaluateReport entity = new SaasSleepEvaluateReport();
BeanUtils.copyProperties(dto, entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
save(entity);
}
@Override
public void edit(SaasSleepEvaluateReportDTO dto) {
SaasSleepEvaluateReport entity = getById(dto.getId());
BeanUtils.copyProperties(dto, entity);
String result = JSON.toJSONString(dto.getResultContent());
entity.setResultContent(result);
saveOrUpdate(entity);
}
......@@ -57,6 +59,5 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva
String resultContent = sleepEvaluateReport.getResultContent();
return saasElderReportConfigService.getByScoreInternal(resultContent, totalScore);
}
}
......@@ -8,7 +8,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
......@@ -34,7 +33,7 @@ public class PlatAlarmRecordVO extends BaseTenantDTO {
private String alarmType;
@ApiModelProperty(value = "告警时间")
private Date alarmDate;
private LocalDateTime alarmDate;
@ApiModelProperty(value = "状态 0 待处理 1 已处理")
private String status;
......@@ -49,7 +48,8 @@ public class PlatAlarmRecordVO extends BaseTenantDTO {
private String dealUser;
@ApiModelProperty(value = "处理时间")
private Date dealDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dealDate;
@ApiModelProperty(value = "所属组织id")
private String orgId;
......
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