From cbd223ee2185f2cc39267e37a72edaadf6a3aa19 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期三, 18 三月 2026 08:57:12 +0800
Subject: [PATCH] 死亡判定相关接口新增死亡判定说明、扩展 器官分配相关接口新增记录状态、附件、扩展 器官获取相关接口新增附件、扩展 新开发去态查询API接口
---
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java | 10 +
ruoyi-project/src/main/java/com/ruoyi/project/service/IApiService.java | 17 ++
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorganBase.java | 15 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java | 68 +++++++++++
ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml | 5
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDeathinfo.java | 9 +
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml | 2
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml | 4
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ApiDTO.java | 20 +++
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java | 11 +
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java | 83 +++++++++++++
ruoyi-project/src/main/java/com/ruoyi/project/domain/GiApi.java | 65 ++++++++++
ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml | 4
ruoyi-project/src/main/resources/mapper/project/ApiMapper.xml | 7 +
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ApiMapper.java | 24 ++++
15 files changed, 340 insertions(+), 4 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java
new file mode 100644
index 0000000..11d74eb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java
@@ -0,0 +1,68 @@
+package com.ruoyi.web.controller.common;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.project.domain.BaseAnnextype;
+import com.ruoyi.project.domain.GiApi;
+import com.ruoyi.project.domain.dto.ApiDTO;
+import com.ruoyi.project.service.IApiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Api(description = "api鏈嶅姟")
+@RestController
+@RequestMapping("/api")
+public class ApiController {
+ @Autowired
+ private IApiService service;
+ @ApiOperation("API->api鏌ヨ鍒楄〃")
+ @PostMapping("/{path}")
+ public AjaxResult getApiList(@PathVariable("path") String path, @RequestBody ApiDTO DTO){
+ List<Map<String,Object>> lists=new ArrayList<>();
+ if(ObjectUtils.isNotEmpty(path)) {
+ GiApi tempSql= service.getCode(path);
+ if(tempSql!=null&&ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
+ String SQL_REG_EXP = ".*(\\b(insert|into|update|delete|trancate" +
+ "|drop|execute|grant|use)\\b).*";
+ if (tempSql.getApiSql().toLowerCase().matches(SQL_REG_EXP)) {
+ return AjaxResult.error("sql涓湁闈炴硶瀛楃,鍙簲璁竤elect");
+ }
+ return AjaxResult.success(service.getListSql(tempSql.getApiSql(),DTO));
+ }else
+ return AjaxResult.error("sql浠g爜娌℃湁瀵瑰簲鐨剆ql璇锋牳瀵�");
+ }else {
+ return AjaxResult.error("琛ㄥ悕涓嶈兘涓虹┖");
+ }
+ }
+
+ @ApiOperation("API->api鏌ヨobject")
+ @PostMapping("/s/{path}")
+ public AjaxResult getStringSql(@PathVariable("path") String path, @RequestBody ApiDTO DTO){
+ List<Map<String,Object>> lists=new ArrayList<>();
+ if(ObjectUtils.isNotEmpty(path)) {
+ GiApi tempSql= service.getCode(path);
+ if(tempSql!=null&&ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
+ String SQL_REG_EXP = ".*(\\b(insert|into|update|delete|trancate" +
+ "|drop|execute|grant|use)\\b).*";
+ if (tempSql.getApiSql().toLowerCase().matches(SQL_REG_EXP)) {
+ return AjaxResult.error("sql涓湁闈炴硶瀛楃,鍙簲璁竤elect");
+ }
+
+ return AjaxResult.success(service.getStringSql(tempSql.getApiSql(), DTO));
+
+ }else
+ return AjaxResult.error("sql浠g爜娌℃湁瀵瑰簲鐨剆ql璇锋牳瀵�");
+ }else {
+ return AjaxResult.error("琛ㄥ悕涓嶈兘涓虹┖");
+ }
+ }
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiApi.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiApi.java
new file mode 100644
index 0000000..2855715
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiApi.java
@@ -0,0 +1,65 @@
+package com.ruoyi.project.domain;
+
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * api鎺ュ彛 瀹炰綋绫�
+ * 2026-02-27 15:57:47 sinake
+ */
+@Data
+@ApiModel("api鎺ュ彛")
+public class GiApi {
+
+ @ApiModelProperty("id")
+ @TableId(type = IdType.AUTO)
+ private String id;
+
+ @ApiModelProperty("鐖剁被id")
+ private String parentId;
+
+ @ApiModelProperty("鏈烘瀯浠g爜")
+ private String orginId;
+
+ @ApiModelProperty("鎺ュ彛浠g爜")
+ private String apiCode;
+
+ @ApiModelProperty("鎺ュ彛鍚嶇О")
+ private String apiName;
+
+ @ApiModelProperty("鎺ュ彛鏁版嵁婧�")
+ private String apiTable;
+
+ @ApiModelProperty("鎺ュ彛璇彞")
+ private String apiSql;
+
+ @ApiModelProperty("鎺ュ彛鏂瑰紡0list1string")
+ private String apiWay;
+
+ @ApiModelProperty("鏄惁鍒犻櫎0鍚�1鏄�")
+ private Integer isDel;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ private String creator;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date createTime;
+
+ @ApiModelProperty("淇敼鐢ㄦ埛")
+ private String updater;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date updateTime;
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDeathinfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDeathinfo.java
index 8104a84..646e013 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDeathinfo.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDeathinfo.java
@@ -99,5 +99,14 @@
@Excel(name = "璐熻矗浜哄鍚�")
private String responsibleusername;
+ /** 璐熻矗浜哄鍚� */
+ @ApiModelProperty("姝讳骸鍒ゅ畾璇存槑")
+ @Excel(name = "姝讳骸鍒ゅ畾璇存槑")
+ private String judgmentDescription;
+
+ /** 璐熻矗浜哄鍚� */
+ @ApiModelProperty("鎵╁睍")
+ @Excel(name = "鎵╁睍")
+ private String extContent;
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorganBase.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorganBase.java
index 5b77546..ae5b8ff 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorganBase.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorganBase.java
@@ -66,5 +66,20 @@
@Excel(name = "棰勮鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date estimatedtime;
+ /** 璁板綍鐘舵�� */
+ @ApiModelProperty("璁板綍鐘舵��")
+ @Excel(name = "璁板綍鐘舵��")
+ private String recordstate;
+
+ /** 闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮� */
+ @ApiModelProperty("闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ @Excel(name = "闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ private String fileName;
+
+ /** 鎵╁睍 */
+ @ApiModelProperty("鎵╁睍")
+ @Excel(name = "鎵╁睍")
+ private String extContent;
+
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
index 2f4766f..208fa5b 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
@@ -135,5 +135,15 @@
@Excel(name = "鍣ㄥ畼鑾峰彇寮�濮嬫椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date organStartTime;
+ /** 闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮� */
+ @ApiModelProperty("闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ @Excel(name = "闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ private String fileName;
+
+ /** 鎵╁睍 */
+ @ApiModelProperty("鎵╁睍")
+ @Excel(name = "鎵╁睍")
+ private String extContent;
+
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ApiDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ApiDTO.java
new file mode 100644
index 0000000..37d14a3
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ApiDTO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.project.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.Tag;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.util.Map;
+
+@Data
+@ToString
+@NoArgsConstructor
+@ApiModel("ApiDTO鐩稿叧json鍙傛暟")
+public class ApiDTO {
+ @ApiModelProperty("鐩稿叧鍙傛暟")
+ Map<String, Object> params;
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
index 897085c..c5d3a4e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
@@ -256,5 +256,16 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date coordinatorSignTime;
+
+ /** 闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮� */
+ @ApiModelProperty("闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ @Excel(name = "闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�")
+ private String fileName;
+
+ /** 鎵╁睍 */
+ @ApiModelProperty("鎵╁睍")
+ @Excel(name = "鎵╁睍")
+ private String extContent;
+
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ApiMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ApiMapper.java
new file mode 100644
index 0000000..547763d
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ApiMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.project.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.GiApi;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ApiMapper extends BaseMapper<GiApi> {
+
+ /**
+ * 鏌ヨsql
+ * @param sql
+ * @return
+ */
+ @Select({"${sql}"})
+ List<Map<String, Object>> executeSql(@Param("sql") String sql);
+
+
+ @Select({"${sql}"})
+ String getClob(@Param("sql") String sql);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IApiService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IApiService.java
new file mode 100644
index 0000000..ded83f0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IApiService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.GiApi;
+import com.ruoyi.project.domain.dto.ApiDTO;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IApiService extends IService<GiApi>{
+
+ public GiApi getCode(String code);
+
+ public List<Map<String,Object>> getListSql(String sql, ApiDTO DTO);
+
+ public Object getStringSql(String sql,ApiDTO DTO);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java
new file mode 100644
index 0000000..af5ba86
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java
@@ -0,0 +1,83 @@
+package com.ruoyi.project.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.project.domain.GiApi;
+import com.ruoyi.project.domain.dto.ApiDTO;
+import com.ruoyi.project.mapper.ApiMapper;
+import com.ruoyi.project.service.IApiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class ApiServiceImpl extends ServiceImpl<ApiMapper, GiApi> implements IApiService {
+ @Autowired
+ ApiMapper mapper;
+ /**
+ * 涓婚敭鏌ヨ璇︾粏
+ * @param code
+ * @return
+ */
+ public GiApi getCode(String code){
+ QueryWrapper <GiApi> wrapper=new QueryWrapper<>();
+ wrapper.eq("api_Code",code);
+ return mapper.selectOne(wrapper);
+ }
+
+ public String buildSql(HttpServletRequest request, String sql) {
+
+// JSONArray requestParams = JSON.parseArray(config.getParams());
+// for (int i = 0; i < requestParams.size(); i++) {
+// JSONObject jo = requestParams.getJSONObject(i);
+// String name = jo.getString("name");
+// String type = jo.getString("type");
+// String old = '$' + name;
+//
+// String value = request.getParameter(name);
+//
+// //涓嶆槸鏁板瓧绫诲瀷鐨勫�艰鍔犲崟寮曞彿
+// if (!"number".equals(type)) {
+// value = String.format("'%s'", value);
+// }
+//
+// sql = sql.replace(old, value);
+// }
+
+ return sql;
+ }
+
+ /**
+ * 鏌ヨ鏁版嵁鍒楄〃
+ * @param DTO
+ * @return
+ */
+ public List<Map<String,Object>> getListSql(String sql, ApiDTO DTO) {
+ if(DTO.getParams()!=null) {
+ for (String key : DTO.getParams().keySet()) {
+ sql = sql.replace("@" + key, DTO.getParams().get(key) + "");
+ }
+ }
+ return mapper.executeSql(sql);
+ }
+
+ /**
+ * 鏌ヨ鏁版嵁鍒楄〃
+ * @param DTO
+ * @return
+ */
+ public String getStringSql(String sql, ApiDTO DTO) {
+ if(DTO.getParams()!=null) {
+ for (String key : DTO.getParams().keySet()) {
+ sql = sql.replace("@" + key, DTO.getParams().get(key) + "");
+ }
+ }
+ return mapper.getClob(sql);
+ }
+}
diff --git a/ruoyi-project/src/main/resources/mapper/project/ApiMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ApiMapper.xml
new file mode 100644
index 0000000..9d65b56
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ApiMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.ApiMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
index 8141e05..65162c8 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
@@ -47,7 +47,9 @@
create_by,
create_time,
update_by,
- update_time
+ update_time,
+ judgment_description,
+ ext_content
from service_deathinfo
</sql>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
index d96ae75..218707c 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
@@ -33,7 +33,10 @@
create_time,
update_by,
update_time,
- EstimatedTime
+ EstimatedTime,
+ recordstate,
+ file_name,
+ ext_content
from service_donateorgan_base
</sql>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
index a27acad..4b86477 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -91,7 +91,7 @@
update_time,
OrganDonation,
OrganDonation_Other,
- DonationCategory
+ donationcategory
from service_donationwitness
</sql>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
index 6eb01fc..ac45d2b 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
@@ -60,7 +60,9 @@
update_by,
caseno,
name,
- update_time
+ update_time,
+ file_name,
+ ext_content
from service_donationwitnessorgan
</sql>
--
Gitblit v1.9.3