From 82cafc166bcd2b224f03ca82f9badcc18a99b9c0 Mon Sep 17 00:00:00 2001 From: lxd <1004405501@qq.com> Date: Wed, 23 Jul 2025 17:34:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A8=E6=80=81=E8=A1=80?= =?UTF-8?q?=E6=B0=A7=E7=95=8C=E9=9D=A2=E7=9A=84=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/spo2info/Spo2infoController.java | 138 ++++++++++++++++ .../admin/spo2info/vo/Spo2infoPageReqVO.java | 68 ++++++++ .../admin/spo2info/vo/Spo2infoRespVO.java | 82 ++++++++++ .../admin/spo2info/vo/Spo2infoSaveReqVO.java | 67 ++++++++ .../admin/spo2info/vo/updeviceinfo.java | 18 +++ .../dal/dataobject/spo2info/Spo2infoDO.java | 109 +++++++++++++ .../dal/mysql/spo2info/Spo2infoMapper.java | 41 +++++ .../service/spo2info/Spo2infoService.java | 83 ++++++++++ .../service/spo2info/Spo2infoServiceImpl.java | 148 ++++++++++++++++++ .../mapper/spo2info/Spo2infoMapper.xml | 12 ++ 10 files changed, 766 insertions(+) create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/Spo2infoController.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoPageReqVO.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoRespVO.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoSaveReqVO.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/updeviceinfo.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/spo2info/Spo2infoDO.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/spo2info/Spo2infoMapper.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoService.java create mode 100644 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoServiceImpl.java create mode 100644 yudao-module-system/src/main/resources/mapper/spo2info/Spo2infoMapper.xml diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/Spo2infoController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/Spo2infoController.java new file mode 100644 index 0000000..3942774 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/Spo2infoController.java @@ -0,0 +1,138 @@ +package cn.iocoder.yudao.module.system.controller.admin.spo2info; + +import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.ecgdataSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.upecgdatawearstarttime; +import cn.iocoder.yudao.module.system.controller.admin.patientinfo.vo.patientinfoRespVO; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.spo2info.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.spo2info.Spo2infoDO; +import cn.iocoder.yudao.module.system.service.spo2info.Spo2infoService; + +@Tag(name = "管理后台 - 血氧信息") +@RestController +@RequestMapping("/system/spo2info") +@Validated +public class Spo2infoController { + + @Resource + private Spo2infoService spo2infoService; + + @PostMapping("/create") + @Operation(summary = "创建血氧信息") + @PreAuthorize("@ss.hasPermission('system:spo2info:create')") + public CommonResult createSpo2info(@Valid @RequestBody Spo2infoSaveReqVO createReqVO) { + return success(spo2infoService.createSpo2info(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新血氧信息") + @PreAuthorize("@ss.hasPermission('system:spo2info:update')") + public CommonResult updateSpo2info(@Valid @RequestBody Spo2infoSaveReqVO updateReqVO) { + spo2infoService.updateSpo2info(updateReqVO); + return success(true); + } + + + + @PostMapping("/insert-spo2-data-list") + @Operation(summary = "插入动态血氧数据表基础信息") + public CommonResult insertSpo2DataList(@Valid @RequestBody List patientInfoList) { + spo2infoService.insertSpo2DataList(patientInfoList); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除血氧信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:spo2info:delete')") + public CommonResult deleteSpo2info(@RequestParam("id") Integer id) { + spo2infoService.deleteSpo2info(id); + return success(true); + } + + @GetMapping("/apply-superior-review") + @Operation(summary = "申请上级审核") + public CommonResult applySuperiorReview(@RequestParam("id") Integer id,@RequestParam("orgid") String orgid) { + spo2infoService.applySuperiorReview(id,orgid); + return success(true); + } + + @PutMapping("/updevice") + @Operation(summary = "更新设备信息") + public CommonResult updevice( @Valid @RequestBody updeviceinfo updeviceinfo) { + spo2infoService.updevice(updeviceinfo.getId(),updeviceinfo.getDeviceid(),updeviceinfo.getDevicename()); + return success(true); + } + + @PutMapping("/update-wearstarttime") + @Operation(summary = "更新佩戴时间") + public CommonResult updateecgdatawearstarttime(@Valid @RequestBody upecgdatawearstarttime updateReqVO) { + spo2infoService.updateecgdatawearstarttime(updateReqVO); + return success(true); + } + + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除血氧信息") + @PreAuthorize("@ss.hasPermission('system:spo2info:delete')") + public CommonResult deleteSpo2infoList(@RequestParam("ids") List ids) { + spo2infoService.deleteSpo2infoListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得血氧信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:spo2info:query')") + public CommonResult getSpo2info(@RequestParam("id") Integer id) { + Spo2infoDO spo2info = spo2infoService.getSpo2info(id); + return success(BeanUtils.toBean(spo2info, Spo2infoRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得血氧信息分页") + @PreAuthorize("@ss.hasPermission('system:spo2info:query')") + public CommonResult> getSpo2infoPage(@Valid Spo2infoPageReqVO pageReqVO) { + PageResult pageResult = spo2infoService.getSpo2infoPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, Spo2infoRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出血氧信息 Excel") + @PreAuthorize("@ss.hasPermission('system:spo2info:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSpo2infoExcel(@Valid Spo2infoPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = spo2infoService.getSpo2infoPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "血氧信息.xls", "数据", Spo2infoRespVO.class, + BeanUtils.toBean(list, Spo2infoRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoPageReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoPageReqVO.java new file mode 100644 index 0000000..449bb5b --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoPageReqVO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.system.controller.admin.spo2info.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 血氧信息分页 Request VO") +@Data +public class Spo2infoPageReqVO extends PageParam { + + @Schema(description = "注册ID", example = "16770") + private String regid; + + @Schema(description = "检查ID", example = "3832") + private String examid; + + @Schema(description = "姓名", example = "王五") + private String name; + + @Schema(description = "性别") + private String gender; + + @Schema(description = "年龄") + private Integer age; + + @Schema(description = "佩戴时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] weartime; + + @Schema(description = "设备ID", example = "4425") + private String deviceid; + + @Schema(description = "设备名称", example = "芋艿") + private String devicename; + + @Schema(description = "管理机构") + private String managerorg; + + @Schema(description = "机构ID", example = "17686") + private String orgid; + + @Schema(description = "机构名称", example = "张三") + private String orgname; + + @Schema(description = "上级请求") + private Integer superiorrequest; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createtime; + + @Schema(description = "更新时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] updatetime; + + + @Schema(description = "身份证") + private String idcard; + + @Schema(description = "诊断内容") + private String diagnosis; +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoRespVO.java new file mode 100644 index 0000000..b78bcfa --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoRespVO.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.system.controller.admin.spo2info.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 血氧信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class Spo2infoRespVO { + + @Schema(description = "主键ID,自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "25060") + @ExcelProperty("主键ID,自增") + private Integer id; + + @Schema(description = "注册ID", example = "16770") + @ExcelProperty("注册ID") + private String regid; + + @Schema(description = "检查ID", example = "3832") + @ExcelProperty("检查ID") + private String examid; + + @Schema(description = "姓名", example = "王五") + @ExcelProperty("姓名") + private String name; + + @Schema(description = "性别") + @ExcelProperty("性别") + private String gender; + + @Schema(description = "年龄") + @ExcelProperty("年龄") + private Integer age; + + @Schema(description = "佩戴时间") + @ExcelProperty("佩戴时间") + private LocalDateTime weartime; + + @Schema(description = "设备ID", example = "4425") + @ExcelProperty("设备ID") + private String deviceid; + + @Schema(description = "设备名称", example = "芋艿") + @ExcelProperty("设备名称") + private String devicename; + + @Schema(description = "管理机构") + @ExcelProperty("管理机构") + private String managerorg; + + @Schema(description = "机构ID", example = "17686") + @ExcelProperty("机构ID") + private String orgid; + + @Schema(description = "机构名称", example = "张三") + @ExcelProperty("机构名称") + private String orgname; + + @Schema(description = "上级请求") + @ExcelProperty("上级请求") + private Integer superiorrequest; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createtime; + + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + private LocalDateTime updatetime; + + @Schema(description = "身份证") + @ExcelProperty("身份证") + private String idcard; + + @Schema(description = "诊断内容") + private String diagnosis; + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoSaveReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoSaveReqVO.java new file mode 100644 index 0000000..9c9b202 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/Spo2infoSaveReqVO.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.system.controller.admin.spo2info.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 血氧信息新增/修改 Request VO") +@Data +public class Spo2infoSaveReqVO { + + @Schema(description = "主键ID,自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "25060") + private Integer id; + + @Schema(description = "注册ID", example = "16770") + private String regid; + + @Schema(description = "检查ID", example = "3832") + private String examid; + + @Schema(description = "姓名", example = "王五") + private String name; + + @Schema(description = "性别") + private String gender; + + @Schema(description = "年龄") + private Integer age; + + @Schema(description = "佩戴时间") + + private LocalDateTime weartime; + + @Schema(description = "设备ID", example = "4425") + private String deviceid; + + @Schema(description = "设备名称", example = "芋艿") + private String devicename; + + @Schema(description = "管理机构") + private String managerorg; + + @Schema(description = "机构ID", example = "17686") + private String orgid; + + @Schema(description = "机构名称", example = "张三") + private String orgname; + + @Schema(description = "上级请求") + private Integer superiorrequest; + + @Schema(description = "创建时间") + private LocalDateTime createtime; + + @Schema(description = "更新时间") + private LocalDateTime updatetime; + + @Schema(description = "身份证") + private String idcard; + + @Schema(description = "诊断内容") + private String diagnosis; + + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/updeviceinfo.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/updeviceinfo.java new file mode 100644 index 0000000..32e5146 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/spo2info/vo/updeviceinfo.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.system.controller.admin.spo2info.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class updeviceinfo { + @Schema(description = "id") + private Integer id; + + @Schema(description = "设备ID") + private String deviceid; + + @Schema(description = "设备名称") + + private String devicename; +} diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/spo2info/Spo2infoDO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/spo2info/Spo2infoDO.java new file mode 100644 index 0000000..ade264a --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/spo2info/Spo2infoDO.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.spo2info; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 血氧信息 DO + * + * @author 艾康菲 + */ +@TableName("tb_spo2info") +@KeySequence("tb_spo2info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Spo2infoDO { + + /** + * 主键ID,自增 + */ + @TableId + private Integer id; + /** + * 注册ID + */ + @TableField("regid") + private String regid; + /** + * 检查ID + */ + @TableField("examid") + private String examid; + /** + * 姓名 + */ + @TableField("name") + private String name; + /** + * 性别 + */ + @TableField("gender") + private String gender; + /** + * 年龄 + */ + @TableField("age") + private Integer age; + /** + * 佩戴时间 + */ + @TableField("weartime") + private LocalDateTime weartime; + /** + * 设备ID + */ + @TableField("deviceid") + private String deviceid; + /** + * 设备名称 + */ + @TableField("devicename") + private String devicename; + /** + * 管理机构 + */ + @TableField("managerorg") + private String managerorg; + /** + * 机构ID + */ + @TableField("orgid") + private String orgid; + /** + * 机构名称 + */ + @TableField("orgname") + private String orgname; + /** + * 上级请求 + */ + @TableField("superiorrequest") + private Integer superiorrequest; + /** + * 创建时间 + */ + @TableField("createtime") + private LocalDateTime createtime; + /** + * 更新时间 + */ + @TableField("updatetime") + private LocalDateTime updatetime; + /** + * 身份证 + */ + @TableField("idcard") + private String idcard; + + @TableField("diagnosis") + private String diagnosis; +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/spo2info/Spo2infoMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/spo2info/Spo2infoMapper.java new file mode 100644 index 0000000..13b69c0 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/spo2info/Spo2infoMapper.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.dal.mysql.spo2info; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.spo2info.Spo2infoDO; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.spo2info.vo.*; + +/** + * 血氧信息 Mapper + * + * @author 艾康菲 + */ +@Mapper +@InterceptorIgnore(tenantLine = "true") +public interface Spo2infoMapper extends BaseMapperX { + + default PageResult selectPage(Spo2infoPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(Spo2infoDO::getRegid, reqVO.getRegid()) + .eqIfPresent(Spo2infoDO::getExamid, reqVO.getExamid()) + .likeIfPresent(Spo2infoDO::getName, reqVO.getName()) + .eqIfPresent(Spo2infoDO::getGender, reqVO.getGender()) + .eqIfPresent(Spo2infoDO::getAge, reqVO.getAge()) + .betweenIfPresent(Spo2infoDO::getWeartime, reqVO.getWeartime()) + .eqIfPresent(Spo2infoDO::getDeviceid, reqVO.getDeviceid()) + .likeIfPresent(Spo2infoDO::getDevicename, reqVO.getDevicename()) + .eqIfPresent(Spo2infoDO::getManagerorg, reqVO.getManagerorg()) + .eqIfPresent(Spo2infoDO::getOrgid, reqVO.getOrgid()) + .likeIfPresent(Spo2infoDO::getOrgname, reqVO.getOrgname()) + .eqIfPresent(Spo2infoDO::getSuperiorrequest, reqVO.getSuperiorrequest()) + .betweenIfPresent(Spo2infoDO::getCreatetime, reqVO.getCreatetime()) + .betweenIfPresent(Spo2infoDO::getUpdatetime, reqVO.getUpdatetime()) + .orderByDesc(Spo2infoDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoService.java new file mode 100644 index 0000000..3944647 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoService.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.module.system.service.spo2info; + +import java.time.LocalDateTime; +import java.util.*; +import javax.validation.*; + +import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.upecgdatawearstarttime; +import cn.iocoder.yudao.module.system.controller.admin.patientinfo.vo.patientinfoRespVO; +import cn.iocoder.yudao.module.system.controller.admin.spo2info.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.spo2info.Spo2infoDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 血氧信息 Service 接口 + * + * @author 艾康菲 + */ +public interface Spo2infoService { + + /** + * 创建血氧信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createSpo2info(@Valid Spo2infoSaveReqVO createReqVO); + + /** + * 更新血氧信息 + * + * @param updateReqVO 更新信息 + */ + void updateSpo2info(@Valid Spo2infoSaveReqVO updateReqVO); + /* + * 批量新增血氧数据 + * */ + void insertSpo2DataList(List patientInfoList); + + /** + * 删除血氧信息 + * + * @param id 编号 + */ + void deleteSpo2info(Integer id); + /* + * 更新上级机构字段和状态 + * + * */ + void applySuperiorReview(Integer id, String orgid); + /* + * 更新设备ID 设备名称 + * */ + void updevice(Integer id, String deviceid, String devicename); + /* + * 更新佩戴时间 + * */ + void updateecgdatawearstarttime(upecgdatawearstarttime wearstarttimevo); + + /** + * 批量删除血氧信息 + * + * @param ids 编号 + */ + void deleteSpo2infoListByIds(List ids); + + /** + * 获得血氧信息 + * + * @param id 编号 + * @return 血氧信息 + */ + Spo2infoDO getSpo2info(Integer id); + + /** + * 获得血氧信息分页 + * + * @param pageReqVO 分页查询 + * @return 血氧信息分页 + */ + PageResult getSpo2infoPage(Spo2infoPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoServiceImpl.java new file mode 100644 index 0000000..475f13c --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/spo2info/Spo2infoServiceImpl.java @@ -0,0 +1,148 @@ +package cn.iocoder.yudao.module.system.service.spo2info; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.upecgdatawearstarttime; +import cn.iocoder.yudao.module.system.controller.admin.patientinfo.vo.patientinfoRespVO; +import com.alibaba.excel.util.StringUtils; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; +import java.util.*; +import cn.iocoder.yudao.module.system.controller.admin.spo2info.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.spo2info.Spo2infoDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.system.dal.mysql.spo2info.Spo2infoMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + +/** + * 血氧信息 Service 实现类 + * + * @author 艾康菲 + */ +@Service +@Validated +public class Spo2infoServiceImpl implements Spo2infoService { + + @Resource + private Spo2infoMapper spo2infoMapper; + + @Override + public Integer createSpo2info(Spo2infoSaveReqVO createReqVO) { + // 插入 + Spo2infoDO spo2info = BeanUtils.toBean(createReqVO, Spo2infoDO.class); + spo2infoMapper.insert(spo2info); + // 返回 + return spo2info.getId(); + } + + @Override + public void updateSpo2info(Spo2infoSaveReqVO updateReqVO) { + // 校验存在 + validateSpo2infoExists(updateReqVO.getId()); + // 更新 + Spo2infoDO updateObj = BeanUtils.toBean(updateReqVO, Spo2infoDO.class); + spo2infoMapper.updateById(updateObj); + } + @Override + public void insertSpo2DataList(List patientInfoList) { + if (CollUtil.isNotEmpty(patientInfoList)) { + List spo2infoDOList = new ArrayList<>(); + for (patientinfoRespVO patientInfo : patientInfoList) { + Spo2infoDO spo2infoDO = new Spo2infoDO(); + + spo2infoDO.setRegid(patientInfo.getRegid()); + String examId = UUID.randomUUID().toString().replaceAll("-", ""); // 去除横线保持简洁 + spo2infoDO.setExamid(examId); + spo2infoDO.setName(patientInfo.getName()); + spo2infoDO.setGender(patientInfo.getGender()); + // 根据身份证号计算年龄 + String idCard = patientInfo.getIdcard(); + if (StringUtils.isNotBlank(idCard)) { + Integer age = NumberUtils.calculateAgeFromIdCard(idCard); + spo2infoDO.setAge(age); + } + spo2infoDO.setOrgid(patientInfo.getOrgid()); + spo2infoDO.setOrgname(patientInfo.getOrgname()); + spo2infoDOList.add(spo2infoDO); + } + // 批量插入血氧数据 + spo2infoMapper.insertBatch(spo2infoDOList); + } + } + @Override + public void deleteSpo2info(Integer id) { + // 校验存在 + validateSpo2infoExists(id); + // 删除 + spo2infoMapper.deleteById(id); + } + @Override + public void applySuperiorReview(Integer id, String orgid) + { + Spo2infoSaveReqVO updateReqVO = new Spo2infoSaveReqVO(); + updateReqVO.setId(id); + updateReqVO.setManagerorg(orgid); + updateReqVO.setSuperiorrequest(1); + Spo2infoDO updateObj = BeanUtils.toBean(updateReqVO, Spo2infoDO.class); + spo2infoMapper.updateById(updateObj); + } + @Override + public void updevice(Integer id, String deviceid, String devicename) + { + Spo2infoSaveReqVO updateReqVO = new Spo2infoSaveReqVO(); + updateReqVO.setId(id); + updateReqVO.setDeviceid(deviceid); + updateReqVO.setDevicename(devicename); + Spo2infoDO updateObj = BeanUtils.toBean(updateReqVO, Spo2infoDO.class); + spo2infoMapper.updateById(updateObj); + } + + @Override + public void updateecgdatawearstarttime(upecgdatawearstarttime wearstarttimevo) + { + Spo2infoSaveReqVO updateReqVO = new Spo2infoSaveReqVO(); + updateReqVO.setId(wearstarttimevo.getId()); + updateReqVO.setWeartime(wearstarttimevo.getWearstarttime()); + Spo2infoDO updateObj = BeanUtils.toBean(updateReqVO, Spo2infoDO.class); + spo2infoMapper.updateById(updateObj); + } + + @Override + public void deleteSpo2infoListByIds(List ids) { + // 校验存在 + validateSpo2infoExists(ids); + // 删除 + spo2infoMapper.deleteByIds(ids); + } + + private void validateSpo2infoExists(List ids) { + List list = spo2infoMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + + } + } + + private void validateSpo2infoExists(Integer id) { + if (spo2infoMapper.selectById(id) == null) { + + } + } + + @Override + public Spo2infoDO getSpo2info(Integer id) { + return spo2infoMapper.selectById(id); + } + + @Override + public PageResult getSpo2infoPage(Spo2infoPageReqVO pageReqVO) { + return spo2infoMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/src/main/resources/mapper/spo2info/Spo2infoMapper.xml b/yudao-module-system/src/main/resources/mapper/spo2info/Spo2infoMapper.xml new file mode 100644 index 0000000..4d75dff --- /dev/null +++ b/yudao-module-system/src/main/resources/mapper/spo2info/Spo2infoMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file