上传下载

This commit is contained in:
Flow 2025-08-13 17:33:10 +08:00
parent 93a7f73894
commit 158d1a3d8a
7 changed files with 164 additions and 1 deletions

View File

@ -117,4 +117,34 @@ public class EcgworkstationController {
}
}
@PostMapping("/updateFilename")
@Operation(summary = "更新心电工作站患者信息文件名称")
public CommonResult<Boolean> updateFilename(@Valid @RequestBody EcgworkstationUpdateFilenameReqVO updateReqVO) {
try {
ecgworkstationService.updateFilename(updateReqVO);
CommonResult<Boolean> 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<String> getPdfUrl(@Valid @RequestBody EcgworkstationGetPdfUrlReqVO reqVO) {
try {
String pdfUrl = ecgworkstationService.getPdfUrl(reqVO);
if (pdfUrl != null) {
CommonResult<String> result = success(pdfUrl);
result.setMsg("PDF地址查询成功");
return result;
} else {
return CommonResult.error(404, "未找到匹配的记录");
}
} catch (Exception e) {
return CommonResult.error(400, "查询失败: " + e.getMessage());
}
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -60,4 +60,42 @@ public interface EcgworkstationMapper extends BaseMapperX<EcgworkstationDO> {
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<EcgworkstationDO> 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<EcgworkstationDO>()
.eq(EcgworkstationDO::getOrgid, orgid)
.eq(EcgworkstationDO::getExamid, examid));
}
}

View File

@ -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);
}

View File

@ -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();
}
}

View File

@ -3,7 +3,7 @@ spring:
name: yudao-server
profiles:
active: 58
active: local
main:
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。