diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/EcgworkstationController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/EcgworkstationController.java index b8e73d5..48f0cac 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/EcgworkstationController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/EcgworkstationController.java @@ -117,4 +117,34 @@ public class EcgworkstationController { } } + @PostMapping("/updateFilename") + @Operation(summary = "更新心电工作站患者信息文件名称") + public CommonResult updateFilename(@Valid @RequestBody EcgworkstationUpdateFilenameReqVO updateReqVO) { + try { + ecgworkstationService.updateFilename(updateReqVO); + CommonResult result = success(true); + result.setMsg("文件名称更新成功"); + return result; + } catch (Exception e) { + return CommonResult.error(400, "更新失败: " + e.getMessage()); + } + } + + @PostMapping("/getPdfUrl") + @Operation(summary = "根据机构ID和检查ID查询PDF地址") + public CommonResult getPdfUrl(@Valid @RequestBody EcgworkstationGetPdfUrlReqVO reqVO) { + try { + String pdfUrl = ecgworkstationService.getPdfUrl(reqVO); + if (pdfUrl != null) { + CommonResult result = success(pdfUrl); + result.setMsg("PDF地址查询成功"); + return result; + } else { + return CommonResult.error(404, "未找到匹配的记录"); + } + } catch (Exception e) { + return CommonResult.error(400, "查询失败: " + e.getMessage()); + } + } + } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationGetPdfUrlReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationGetPdfUrlReqVO.java new file mode 100644 index 0000000..46b6122 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationGetPdfUrlReqVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 心电工作站患者信息查询PDF地址 Request VO") +@Data +public class EcgworkstationGetPdfUrlReqVO { + + @Schema(description = "机构ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23027") + @NotBlank(message = "机构ID不能为空") + private String orgid; + + @Schema(description = "检查ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29841") + @NotBlank(message = "检查ID不能为空") + private String examid; + +} diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationUpdateFilenameReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationUpdateFilenameReqVO.java new file mode 100644 index 0000000..12c0558 --- /dev/null +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgworkstation/vo/EcgworkstationUpdateFilenameReqVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 心电工作站患者信息更新文件名 Request VO") +@Data +public class EcgworkstationUpdateFilenameReqVO { + + @Schema(description = "机构ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23027") + @NotBlank(message = "机构ID不能为空") + private String orgid; + + @Schema(description = "检查ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29841") + @NotBlank(message = "检查ID不能为空") + private String examid; + + @Schema(description = "文件名称", example = "ecg_data_001.dat") + private String filename; + + @Schema(description = "压缩文件名称", example = "ecg_data_001.zip") + private String zipname; + + +} diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgworkstation/EcgworkstationMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgworkstation/EcgworkstationMapper.java index 7e0b4ea..8c74a0c 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgworkstation/EcgworkstationMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgworkstation/EcgworkstationMapper.java @@ -60,4 +60,42 @@ public interface EcgworkstationMapper extends BaseMapperX { return update(null, updateWrapper); } + /** + * 根据机构ID和检查ID更新文件名称 + * + * @param orgid 机构ID + * @param examid 检查ID + * @param filename 文件名称 + * @param zipname 压缩文件名称 + * @return 更新行数 + */ + default int updateFilenameByOrgidAndExamid(String orgid, String examid, String filename, String zipname) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(EcgworkstationDO::getOrgid, orgid) + .eq(EcgworkstationDO::getExamid, examid); + + // 只更新非空字段 + if (filename != null) { + updateWrapper.set(EcgworkstationDO::getFilename, filename); + } + if (zipname != null) { + updateWrapper.set(EcgworkstationDO::getZipname, zipname); + } + + return update(null, updateWrapper); + } + + /** + * 根据机构ID和检查ID查询心电工作站患者信息 + * + * @param orgid 机构ID + * @param examid 检查ID + * @return 心电工作站患者信息 + */ + default EcgworkstationDO selectByOrgidAndExamid(String orgid, String examid) { + return selectOne(new LambdaQueryWrapperX() + .eq(EcgworkstationDO::getOrgid, orgid) + .eq(EcgworkstationDO::getExamid, examid)); + } + } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationService.java index 292af94..52ef834 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationService.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.ecgworkstation.EcgworkstationDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo.EcgworkstationUpdatePdfUrlReqVO; +import cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo.EcgworkstationUpdateFilenameReqVO; +import cn.iocoder.yudao.module.system.controller.admin.ecgworkstation.vo.EcgworkstationGetPdfUrlReqVO; /** * 心电工作站患者信息 Service 接口 @@ -75,4 +77,19 @@ public interface EcgworkstationService { */ boolean updatePdfUrlByOrgidAndExamid(@Valid EcgworkstationUpdatePdfUrlReqVO updateReqVO); + /** + * 更新心电工作站患者信息文件名称 + * + * @param updateReqVO 更新信息 + */ + void updateFilename(@Valid EcgworkstationUpdateFilenameReqVO updateReqVO); + + /** + * 根据机构ID和检查ID查询PDF地址 + * + * @param reqVO 查询信息 + * @return PDF地址 + */ + String getPdfUrl(@Valid EcgworkstationGetPdfUrlReqVO reqVO); + } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationServiceImpl.java index dfe1c84..8af3b36 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/ecgworkstation/EcgworkstationServiceImpl.java @@ -121,4 +121,37 @@ public class EcgworkstationServiceImpl implements EcgworkstationService { return updateCount > 0; } + @Override + public void updateFilename(EcgworkstationUpdateFilenameReqVO updateReqVO) { + // 根据机构ID和检查ID更新文件名称 + int updateCount = ecgworkstationMapper.updateFilenameByOrgidAndExamid( + updateReqVO.getOrgid(), + updateReqVO.getExamid(), + updateReqVO.getFilename(), + updateReqVO.getZipname() + ); + + // 如果没有更新任何记录,可以抛出异常或记录日志 + if (updateCount == 0) { + throw new RuntimeException("未找到匹配的记录,更新失败"); + } + } + + @Override + public String getPdfUrl(EcgworkstationGetPdfUrlReqVO reqVO) { + // 根据机构ID和检查ID查询心电工作站患者信息 + EcgworkstationDO ecgworkstation = ecgworkstationMapper.selectByOrgidAndExamid( + reqVO.getOrgid(), + reqVO.getExamid() + ); + + // 如果没有找到记录,返回null或抛出异常 + if (ecgworkstation == null) { + return null; + } + + // 返回PDF地址 + return ecgworkstation.getPdfurl(); + } + } \ No newline at end of file diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 10f9cc4..3020432 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -3,7 +3,7 @@ spring: name: yudao-server profiles: - active: 58 + active: local main: allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。