feng_ting-ting 1 天之前
父节点
当前提交
b32cd4851a
共有 24 个文件被更改,包括 418 次插入45 次删除
  1. 8 0
      pom.xml
  2. 79 0
      src/main/java/com/zhentao/disease/controller/DiseaseController.java
  3. 17 0
      src/main/java/com/zhentao/disease/mapper/DiseaseMapper.java
  4. 17 0
      src/main/java/com/zhentao/disease/mapper/DiseaseMapper.xml
  5. 90 0
      src/main/java/com/zhentao/disease/pojo/Disease.java
  6. 32 0
      src/main/java/com/zhentao/disease/repository/DiseaseRepository.java
  7. 43 0
      src/main/java/com/zhentao/disease/service/DiseaseService.java
  8. 54 0
      src/main/java/com/zhentao/disease/service/impl/DiseaseServiceImpl.java
  9. 0 14
      src/main/java/com/zhentao/prescription/PrescriptionApplication.java
  10. 1 1
      src/main/java/com/zhentao/prescription/mapper/PrescriptionDetailMapper.java
  11. 2 2
      src/main/java/com/zhentao/prescription/mapper/PrescriptionMapper.java
  12. 1 2
      src/main/java/com/zhentao/prescription/pojo/AuditRecord.java
  13. 1 2
      src/main/java/com/zhentao/prescription/pojo/Doctor.java
  14. 1 2
      src/main/java/com/zhentao/prescription/pojo/MedicationRecord.java
  15. 1 2
      src/main/java/com/zhentao/prescription/pojo/Medicine.java
  16. 1 2
      src/main/java/com/zhentao/prescription/pojo/MedicineInventory.java
  17. 1 2
      src/main/java/com/zhentao/prescription/pojo/Patient.java
  18. 1 2
      src/main/java/com/zhentao/prescription/pojo/Prescription.java
  19. 1 2
      src/main/java/com/zhentao/prescription/pojo/PrescriptionDetail.java
  20. 1 1
      src/main/java/com/zhentao/prescription/service/PrescriptionService.java
  21. 21 11
      src/main/java/com/zhentao/prescription/service/impl/PrescriptionServiceImpl.java
  22. 4 0
      src/main/resources/application.yml
  23. 8 0
      src/main/resources/mapper/PrescriptionDetailMapper.xml
  24. 33 0
      src/main/resources/mapper/PrescriptionMapper.xml

+ 8 - 0
pom.xml

@@ -14,7 +14,15 @@
         <spring-boot.version>2.7.6</spring-boot.version>
     </properties>
     <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
 
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>org.modelmapper</groupId>

+ 79 - 0
src/main/java/com/zhentao/disease/controller/DiseaseController.java

@@ -0,0 +1,79 @@
+package com.zhentao.disease.controller;
+
+import com.zhentao.disease.pojo.Disease;
+import com.zhentao.disease.service.DiseaseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/diseases")
+public class DiseaseController {
+
+    @Autowired
+    private DiseaseService diseaseService;
+
+    /**
+     * 搜索疾病
+     * @param keyword 关键词
+     * @param page 页码
+     * @param size 每页数量
+     * @return 疾病分页列表
+     */
+//    @GetMapping("/search")
+//    public Page<Disease> searchDiseases(
+//            @RequestParam(required = false) String keyword,
+//            @RequestParam(defaultValue = "0") int page,
+//            @RequestParam(defaultValue = "10") int size) {
+//
+//        PageRequest pageRequest = PageRequest.of(page, size);
+//
+//        if (keyword == null || keyword.trim().isEmpty()) {
+//            return diseaseService.page(pageRequest);
+//
+//        }
+//
+//        return diseaseService.searchDiseasesByES(keyword, pageRequest);
+//    }
+
+    /**
+     * 按分类搜索疾病
+     * @param category 分类
+     * @param page 页码
+     * @param size 每页数量
+     * @return 疾病分页列表
+     */
+    @GetMapping("/category/{category}")
+    public Page<Disease> findByCategory(
+            @PathVariable String category,
+            @RequestParam(defaultValue = "0") int page,
+            @RequestParam(defaultValue = "10") int size) {
+
+        PageRequest pageRequest = PageRequest.of(page, size);
+//        return diseaseService.findByCategory(category, pageRequest);
+        return null;
+    }
+
+    /**
+     * 获取疾病详情
+     * @param id 疾病ID
+     * @return 疾病详情
+     */
+    @GetMapping("/{id}")
+    public Disease getDiseaseById(@PathVariable Integer id) {
+        return diseaseService.getById(id);
+    }
+
+    /**
+     * 同步数据到Elasticsearch
+     * @return 同步结果
+     */
+    @PostMapping("/sync-es")
+    public String syncDataToES() {
+//        diseaseService.syncDataToES();
+        return "数据同步到Elasticsearch成功";
+    }
+}

+ 17 - 0
src/main/java/com/zhentao/disease/mapper/DiseaseMapper.java

@@ -0,0 +1,17 @@
+package com.zhentao.disease.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhentao.disease.pojo.Disease;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface DiseaseMapper extends BaseMapper<Disease> {
+    /**
+     * 搜索疾病列表
+     * @param keyword 搜索关键词
+     * @return 疾病列表
+     */
+    List<Disease> searchDiseases(String keyword);
+}

+ 17 - 0
src/main/java/com/zhentao/disease/mapper/DiseaseMapper.xml

@@ -0,0 +1,17 @@
+<?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.zhentao.disease.mapper.DiseaseMapper">
+
+    <!-- 搜索疾病列表 -->
+    <select id="searchDiseases" resultType="com.zhentao.disease.pojo.Disease">
+        SELECT * FROM disease_encyclopedia
+        WHERE MATCH(disease_name, disease_alias, overview, symptoms)
+        AGAINST(#{keyword} IN NATURAL LANGUAGE MODE)
+        OR disease_name LIKE CONCAT('%', #{keyword}, '%')
+        OR disease_alias LIKE CONCAT('%', #{keyword}, '%')
+        OR overview LIKE CONCAT('%', #{keyword}, '%')
+        OR symptoms LIKE CONCAT('%', #{keyword}, '%')
+        ORDER BY popularity DESC
+    </select>
+
+</mapper>

+ 90 - 0
src/main/java/com/zhentao/disease/pojo/Disease.java

@@ -0,0 +1,90 @@
+package com.zhentao.disease.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.springframework.data.annotation.Id;
+//import org.springframework.data.elasticsearch.annotations.Document;
+//import org.springframework.data.elasticsearch.annotations.Field;
+//import org.springframework.data.elasticsearch.annotations.FieldType;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("disease_encyclopedia")
+//@Document(indexName = "disease_encyclopedia")
+public class Disease implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    @Id
+    private Integer diseaseId;
+
+//    @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String diseaseName;
+
+//    @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String diseaseAlias;
+
+    //   @Field(type = FieldType.Keyword)
+    private String diseaseCategory;
+
+    //   @Field(type = FieldType.Keyword)
+    private String icdCode;
+
+    private Integer isGenetic;
+
+    private Double prevalenceRate;
+
+    // @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String onsetAge;
+
+    //  @Field(type = FieldType.Keyword)
+    private String genderPreference;
+
+    // @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String overview;
+
+    //   @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String causes;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String symptoms;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String diagnosis;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String treatment;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String prognosis;
+
+    // @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String prevention;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String complications;
+
+    //   @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String dietRestrictions;
+
+    //  @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String relatedDrugs;
+
+    // @Field(type = FieldType.Text, analyzer = "ik_max_word")
+    private String relatedSpecialties;
+
+    private LocalDateTime createdAt;
+
+    private LocalDateTime updatedAt;
+
+    //  @Field(type = FieldType.Keyword)
+    private String source;
+
+    private Integer isVerified;
+
+    private Integer popularity;
+}

+ 32 - 0
src/main/java/com/zhentao/disease/repository/DiseaseRepository.java

@@ -0,0 +1,32 @@
+//package com.zhentao.disease.repository;
+//
+//import com.zhentao.disease.pojo.Disease;
+//import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+//
+//import org.springframework.data.domain.Pageable;
+//import java.util.List;
+//
+//public interface DiseaseRepository extends ElasticsearchRepository<Disease, Integer> {
+//
+//    /**
+//     * 根据关键词搜索疾病
+//     * @param keyword 关键词
+//     * @return 疾病列表
+//     */
+//    List<Disease> findByDiseaseNameContainingOrDiseaseAliasContainingOrOverviewContainingOrSymptomsContaining(
+//            String keyword, String keyword2, String keyword3, String keyword4, Pageable pageable);
+//
+//    /**
+//     * 根据分类搜索疾病
+//     * @param category 分类
+//     * @return 疾病列表
+//     */
+//    List<Disease> findByDiseaseCategory(String category, Pageable pageable);
+//
+//    /**
+//     * 根据ICD编码搜索疾病
+//     * @param icdCode ICD编码
+//     * @return 疾病列表
+//     */
+//    List<Disease> findByIcdCode(String icdCode);
+//}

+ 43 - 0
src/main/java/com/zhentao/disease/service/DiseaseService.java

@@ -0,0 +1,43 @@
+package com.zhentao.disease.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.disease.pojo.Disease;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+public interface DiseaseService extends IService<Disease> {
+    // 在 DiseaseService 中:
+    Page<Disease> page(PageRequest pageRequest);
+
+    /**
+     * 搜索疾病列表
+     * @param keyword 关键词
+     * @return 疾病列表
+     */
+    List<Disease> searchDiseases(String keyword);
+
+    /**
+     * 搜索疾病列表(ES实现)
+     * @param keyword 关键词
+     * @param pageable 分页信息
+     * @return 疾病分页列表
+     */
+//    Page<Disease> searchDiseasesByES(String keyword, Pageable pageable);
+//
+//    /**
+//     * 根据分类搜索疾病
+//     * @param category 分类
+//     * @param pageable 分页信息
+//     * @return 疾病分页列表
+//     */
+//    Page<Disease> findByCategory(String category, Pageable pageable);
+//
+//    /**
+//     * 同步数据到Elasticsearch
+//     */
+//    void syncDataToES();
+}

+ 54 - 0
src/main/java/com/zhentao/disease/service/impl/DiseaseServiceImpl.java

@@ -0,0 +1,54 @@
+package com.zhentao.disease.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zhentao.disease.pojo.Disease;
+import com.zhentao.disease.mapper.DiseaseMapper;
+//import com.zhentao.disease.repository.DiseaseRepository;
+import com.zhentao.disease.service.DiseaseService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class DiseaseServiceImpl extends ServiceImpl<DiseaseMapper, Disease> implements DiseaseService {
+
+    @Autowired
+    private DiseaseMapper diseaseMapper;
+
+//    @Autowired
+//    private DiseaseRepository diseaseRepository;
+
+    @Override
+    public Page<Disease> page(PageRequest pageRequest) {
+        return null;
+    }
+
+    @Override
+    public List<Disease> searchDiseases(String keyword) {
+        return diseaseMapper.searchDiseases(keyword);
+    }
+
+//    @Override
+//    public Page<Disease> searchDiseasesByES(String keyword, Pageable pageable) {
+//        return (Page<Disease>) diseaseRepository.findByDiseaseNameContainingOrDiseaseAliasContainingOrOverviewContainingOrSymptomsContaining(
+//                keyword, keyword, keyword, keyword, pageable);
+//    }
+//
+//    @Override
+//    public Page<Disease> findByCategory(String category, Pageable pageable) {
+//        return (Page<Disease>) diseaseRepository.findByDiseaseCategory(category, pageable);
+//    }
+//
+//    @Override
+//    public void syncDataToES() {
+//        // 从数据库获取所有疾病数据
+//        List<Disease> diseaseList = list();
+//        // 保存到ES
+//        diseaseRepository.saveAll(diseaseList);
+//    }
+}

+ 0 - 14
src/main/java/com/zhentao/prescription/PrescriptionApplication.java

@@ -1,14 +0,0 @@
-package com.prescription;
-
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-@MapperScan("com.prescription.mapper")
-public class PrescriptionApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(PrescriptionApplication.class, args);
-    }
-}

+ 1 - 1
src/main/java/com/zhentao/prescription/mapper/PrescriptionDetailMapper.java

@@ -1,7 +1,7 @@
 package com.zhentao.prescription.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhentao.prescription.model.PrescriptionDetail;
+import com.zhentao.prescription.pojo.PrescriptionDetail;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper

+ 2 - 2
src/main/java/com/zhentao/prescription/mapper/PrescriptionMapper.java

@@ -3,8 +3,8 @@ package com.zhentao.prescription.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zhentao.prescription.model.Prescription;
-import com.zhentao.prescription.model.PrescriptionDetail;
+import com.zhentao.prescription.pojo.Prescription;
+import com.zhentao.prescription.pojo.PrescriptionDetail;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 

+ 1 - 2
src/main/java/com/zhentao/prescription/model/AuditRecord.java → src/main/java/com/zhentao/prescription/pojo/AuditRecord.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/Doctor.java → src/main/java/com/zhentao/prescription/pojo/Doctor.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/MedicationRecord.java → src/main/java/com/zhentao/prescription/pojo/MedicationRecord.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/Medicine.java → src/main/java/com/zhentao/prescription/pojo/Medicine.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/MedicineInventory.java → src/main/java/com/zhentao/prescription/pojo/MedicineInventory.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDate;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/Patient.java → src/main/java/com/zhentao/prescription/pojo/Patient.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/Prescription.java → src/main/java/com/zhentao/prescription/pojo/Prescription.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDate;

+ 1 - 2
src/main/java/com/zhentao/prescription/model/PrescriptionDetail.java → src/main/java/com/zhentao/prescription/pojo/PrescriptionDetail.java

@@ -1,7 +1,6 @@
-package com.zhentao.prescription.model;
+package com.zhentao.prescription.pojo;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.time.LocalDateTime;

+ 1 - 1
src/main/java/com/zhentao/prescription/service/PrescriptionService.java

@@ -2,7 +2,7 @@ package com.zhentao.prescription.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zhentao.prescription.dto.PrescriptionDTO;
-import com.zhentao.prescription.model.Prescription;
+import com.zhentao.prescription.pojo.Prescription;
 
 import java.time.LocalDate;
 import java.util.List;

+ 21 - 11
src/main/java/com/zhentao/prescription/service/impl/PrescriptionServiceImpl.java

@@ -6,7 +6,7 @@ import com.zhentao.prescription.dto.PrescriptionDTO;
 import com.zhentao.prescription.dto.PrescriptionDetailDTO;
 import com.zhentao.prescription.mapper.PrescriptionDetailMapper;
 import com.zhentao.prescription.mapper.PrescriptionMapper;
-import com.zhentao.prescription.model.*;
+import com.zhentao.prescription.pojo.*;
 import com.zhentao.prescription.service.PrescriptionService;
 
 import org.modelmapper.ModelMapper;
@@ -14,8 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.time.LocalDate;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -247,7 +248,9 @@ public class PrescriptionServiceImpl implements PrescriptionService {
                     style.setBorderBottom(BorderStyle.THIN);
                     style.setBorderLeft(BorderStyle.THIN);
                     style.setBorderRight(BorderStyle.THIN);
-                    row.getCell(i).setCellStyle(style);
+
+                    Cell cell = row.createCell(i); // 确保单元格被创建
+                    cell.setCellStyle(style);
                 }
             }
         }
@@ -258,15 +261,22 @@ public class PrescriptionServiceImpl implements PrescriptionService {
         }
 
         // 将工作簿写入字节数组
-        try {
-            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-            workbook.write(outputStream);
-            byte[] bytes = outputStream.toByteArray();
-            workbook.close();
-            return bytes;
-        } catch (Exception e) {
-            throw new RuntimeException("导出Excel失败", e);
+//        try {
+//            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+//            workbook.write(outputStream);
+//            byte[] bytes = outputStream.toByteArray();
+//            workbook.close();
+//            return bytes;
+//        } catch (Exception e) {
+//            throw new RuntimeException("导出Excel失败", e);
+//        }
+        try (FileOutputStream fileOut = new FileOutputStream("D:/prescriptions.xlsx")) {
+            workbook.write(fileOut);
+        } catch (IOException e) {
+            e.printStackTrace();
         }
+
+        return new byte[0];
     }
 
     // 内部类用于处理字节数组输出流

+ 4 - 0
src/main/resources/application.yml

@@ -7,6 +7,10 @@ spring:
     password: Tingting520
     driver-class-name: com.mysql.cj.jdbc.Driver
 
+#  elasticsearch:
+#    rest:
+#      uris: http://192.168.139.133:9200
+
   redis:
     host: localhost
     port: 6379

+ 8 - 0
src/main/resources/mapper/PrescriptionDetailMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zhentao.prescription.mapper.PrescriptionDetailMapper">
+
+</mapper>

+ 33 - 0
src/main/resources/mapper/PrescriptionMapper.xml

@@ -0,0 +1,33 @@
+<?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.zhentao.prescription.mapper.PrescriptionMapper">
+
+
+    <select id="selectFullDetailByNo" resultType="com.zhentao.prescription.pojo.Prescription"></select>
+    <select id="selectByPatientName" resultType="com.zhentao.prescription.pojo.Prescription"></select>
+    <select id="selectPageWithCondition" resultType="com.zhentao.prescription.pojo.Prescription">
+        SELECT *
+        FROM prescription
+        <where>
+            <if test="patientName != null and patientName != ''">
+                AND patient_name LIKE CONCAT('%', #{patientName}, '%')
+            </if>
+            <if test="prescriptionNo != null and prescriptionNo != ''">
+                AND prescription_no = #{prescriptionNo}
+            </if>
+            <if test="startDate != null and startDate != ''">
+                AND create_time >= #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                AND create_time &lt;= #{endDate}
+            </if>
+            <if test="status != null and status != ''">
+                AND status = #{status}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectDetailsByPrescriptionId" resultType="com.zhentao.prescription.pojo.PrescriptionDetail"></select>
+</mapper>