Bladeren bron

初始化一个版本

攻心小虫 1 dag geleden
bovenliggende
commit
e1ad05cd47
75 gewijzigde bestanden met toevoegingen van 5998 en 5386 verwijderingen
  1. 1 6
      healsphere-admin/pom.xml
  2. 103 125
      healsphere-admin/src/main/java/com/zdqz/web/controller/common/CommonController.java
  3. 0 183
      healsphere-admin/src/main/java/com/zdqz/web/controller/tool/TestController.java
  4. 1 0
      healsphere-admin/src/main/resources/application.yml
  5. 54 1
      healsphere-buss/pom.xml
  6. 78 0
      healsphere-buss/src/main/java/com/zdqz/data/controller/DataBaseController.java
  7. 0 104
      healsphere-buss/src/main/java/com/zdqz/data/controller/DataDljyController.java
  8. 0 104
      healsphere-buss/src/main/java/com/zdqz/data/controller/DataNyjyController.java
  9. 503 0
      healsphere-buss/src/main/java/com/zdqz/data/domain/DataBase.java
  10. 0 117
      healsphere-buss/src/main/java/com/zdqz/data/domain/DataDljy.java
  11. 0 117
      healsphere-buss/src/main/java/com/zdqz/data/domain/DataNyjy.java
  12. 45 0
      healsphere-buss/src/main/java/com/zdqz/data/mapper/DataBaseMapper.java
  13. 0 61
      healsphere-buss/src/main/java/com/zdqz/data/mapper/DataDljyMapper.java
  14. 0 61
      healsphere-buss/src/main/java/com/zdqz/data/mapper/DataNyjyMapper.java
  15. 45 0
      healsphere-buss/src/main/java/com/zdqz/data/service/IDataBaseService.java
  16. 0 61
      healsphere-buss/src/main/java/com/zdqz/data/service/IDataDljyService.java
  17. 0 61
      healsphere-buss/src/main/java/com/zdqz/data/service/IDataNyjyService.java
  18. 69 0
      healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataBaseServiceImpl.java
  19. 0 96
      healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataDljyServiceImpl.java
  20. 0 96
      healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataNyjyServiceImpl.java
  21. 133 0
      healsphere-buss/src/main/java/com/zdqz/read/controller/ReadDataController.java
  22. 68 0
      healsphere-buss/src/main/java/com/zdqz/read/domain/FilterBean.java
  23. 255 0
      healsphere-buss/src/main/java/com/zdqz/read/domain/ReadData.java
  24. 143 0
      healsphere-buss/src/main/java/com/zdqz/read/domain/ReadRemark.java
  25. 47 0
      healsphere-buss/src/main/java/com/zdqz/read/mapper/ReadDataMapper.java
  26. 26 0
      healsphere-buss/src/main/java/com/zdqz/read/mapper/ReadRemarkMapper.java
  27. 40 0
      healsphere-buss/src/main/java/com/zdqz/read/service/IReadDataService.java
  28. 27 0
      healsphere-buss/src/main/java/com/zdqz/read/service/IReadRemarkService.java
  29. 118 0
      healsphere-buss/src/main/java/com/zdqz/read/service/impl/ReadDataServiceImpl.java
  30. 53 0
      healsphere-buss/src/main/java/com/zdqz/read/service/impl/ReadRemarkServiceImpl.java
  31. 0 104
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleDeptController.java
  32. 0 104
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleExperimentController.java
  33. 0 104
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleHospitalController.java
  34. 73 72
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleInfoController.java
  35. 67 71
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SamplePatientController.java
  36. 0 104
      healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleTypeController.java
  37. 43 60
      healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleDept.java
  38. 109 79
      healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleExperiment.java
  39. 92 118
      healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleHospital.java
  40. 148 120
      healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleInfo.java
  41. 1 1
      healsphere-buss/src/main/java/com/zdqz/sample/domain/SamplePatient.java
  42. 2 2
      healsphere-buss/src/main/java/com/zdqz/sample/mapper/SampleExperimentMapper.java
  43. 18 51
      healsphere-buss/src/main/java/com/zdqz/sample/mapper/SampleInfoMapper.java
  44. 15 50
      healsphere-buss/src/main/java/com/zdqz/sample/mapper/SamplePatientMapper.java
  45. 6 2
      healsphere-buss/src/main/java/com/zdqz/sample/service/ISampleExperimentService.java
  46. 17 51
      healsphere-buss/src/main/java/com/zdqz/sample/service/ISampleInfoService.java
  47. 18 15
      healsphere-buss/src/main/java/com/zdqz/sample/service/ISamplePatientService.java
  48. 87 76
      healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SampleExperimentServiceImpl.java
  49. 35 80
      healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SampleInfoServiceImpl.java
  50. 71 73
      healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SamplePatientServiceImpl.java
  51. 84 0
      healsphere-buss/src/main/java/com/zdqz/sample/tool/PdfTools.java
  52. 79 70
      healsphere-buss/src/main/java/com/zdqz/system/controller/SysAreaController.java
  53. 85 70
      healsphere-buss/src/main/java/com/zdqz/system/controller/SysCnareaController.java
  54. 50 49
      healsphere-buss/src/main/java/com/zdqz/system/service/ISysAreaService.java
  55. 3 0
      healsphere-buss/src/main/java/com/zdqz/system/service/ISysCnareaService.java
  56. 70 70
      healsphere-buss/src/main/java/com/zdqz/system/service/impl/SysAreaServiceImpl.java
  57. 74 71
      healsphere-buss/src/main/java/com/zdqz/system/service/impl/SysCnareaServiceImpl.java
  58. 218 0
      healsphere-buss/src/main/resources/mapper/data/DataBaseMapper.xml
  59. 0 96
      healsphere-buss/src/main/resources/mapper/data/DataDljyMapper.xml
  60. 0 96
      healsphere-buss/src/main/resources/mapper/data/DataNyjyMapper.xml
  61. 301 0
      healsphere-buss/src/main/resources/mapper/read/ReadDataMapper.xml
  62. 122 0
      healsphere-buss/src/main/resources/mapper/read/ReadRemarkMapper.xml
  63. 37 13
      healsphere-buss/src/main/resources/mapper/sample/SampleExperimentMapper.xml
  64. 29 14
      healsphere-buss/src/main/resources/mapper/sample/SampleInfoMapper.xml
  65. 7 0
      healsphere-buss/src/main/resources/mapper/sample/SamplePatientMapper.xml
  66. 290 0
      healsphere-buss/src/main/resources/templates/template.html
  67. 18 0
      healsphere-common/src/main/java/com/zdqz/common/config/ZdqzConfig.java
  68. 151 173
      healsphere-common/src/main/java/com/zdqz/common/core/controller/BaseController.java
  69. 86 102
      healsphere-common/src/main/java/com/zdqz/common/core/domain/BaseEntity.java
  70. 12 0
      healsphere-common/src/main/java/com/zdqz/common/core/domain/entity/SysUser.java
  71. 167 209
      healsphere-common/src/main/java/com/zdqz/common/utils/file/FileUploadUtils.java
  72. 1486 1803
      healsphere-common/src/main/java/com/zdqz/common/utils/poi/ExcelUtil.java
  73. 0 8
      healsphere-system/src/main/java/com/zdqz/system/service/ISysUserService.java
  74. 0 11
      healsphere-system/src/main/java/com/zdqz/system/service/impl/SysUserServiceImpl.java
  75. 18 1
      healsphere-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 1 - 6
healsphere-admin/pom.xml

@@ -25,12 +25,7 @@
             <artifactId>springfox-boot-starter</artifactId>
         </dependency>
 
-        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-models</artifactId>
-            <version>1.6.2</version>
-        </dependency>
+     
 
          <!-- Mysql驱动包 -->
         <dependency>

+ 103 - 125
healsphere-admin/src/main/java/com/zdqz/web/controller/common/CommonController.java

@@ -28,136 +28,114 @@ import com.zdqz.framework.config.ServerConfig;
  */
 @RestController
 @RequestMapping("/common")
-public class CommonController
-{
-    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
+public class CommonController {
+	private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
-    @Autowired
-    private ServerConfig serverConfig;
+	@Autowired
+	private ServerConfig serverConfig;
 
-    private static final String FILE_DELIMETER = ",";
+	private static final String FILE_DELIMETER = ",";
 
-    /**
-     * 通用下载请求
-     * 
-     * @param fileName 文件名称
-     * @param delete 是否删除
-     */
-    @GetMapping("/download")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(fileName))
-            {
-                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
-            }
-            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
-            String filePath = ZdqzConfig.getDownloadPath() + fileName;
+	/**
+	 * 通用下载请求
+	 * 
+	 * @param fileName 文件名称
+	 * @param delete   是否删除
+	 */
+	@GetMapping("/download")
+	public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+		try {
+			if (!FileUtils.checkAllowDownload(fileName)) {
+				throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
+			}
+			String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
+			String filePath = ZdqzConfig.getDownloadPath() + fileName;
 
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, realFileName);
-            FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
-                FileUtils.deleteFile(filePath);
-            }
-        }
-        catch (Exception e)
-        {
-            log.error("下载文件失败", e);
-        }
-    }
+			response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+			FileUtils.setAttachmentResponseHeader(response, realFileName);
+			FileUtils.writeBytes(filePath, response.getOutputStream());
+			if (delete) {
+				FileUtils.deleteFile(filePath);
+			}
+		} catch (Exception e) {
+			log.error("下载文件失败", e);
+		}
+	}
 
-    /**
-     * 通用上传请求(单个)
-     */
-    @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
-            // 上传文件路径
-            String filePath = ZdqzConfig.getUploadPath();
-            // 上传并返回新文件名称
-            String fileName = FileUploadUtils.upload(filePath, file);
-            String url = serverConfig.getUrl() + fileName;
-            AjaxResult ajax = AjaxResult.success();
-            ajax.put("url", url);
-            ajax.put("fileName", fileName);
-            ajax.put("newFileName", FileUtils.getName(fileName));
-            ajax.put("originalFilename", file.getOriginalFilename());
-            return ajax;
-        }
-        catch (Exception e)
-        {
-            return AjaxResult.error(e.getMessage());
-        }
-    }
+	/**
+	 * 通用上传请求(单个)
+	 */
+	@PostMapping("/upload")
+	public AjaxResult uploadFile(MultipartFile file) throws Exception {
+		try {
+			// 上传文件路径
+			String filePath = ZdqzConfig.getUploadPath();
+			// 上传并返回新文件名称
+			String fileName = FileUploadUtils.upload(filePath, file);
+			String url = serverConfig.getUrl() + fileName;
+			AjaxResult ajax = AjaxResult.success();
+			ajax.put("url", url);
+			ajax.put("fileName", fileName);
+			ajax.put("newFileName", FileUtils.getName(fileName));
+			ajax.put("originalFilename", file.getOriginalFilename());
+			return ajax;
+		} catch (Exception e) {
+			return AjaxResult.error(e.getMessage());
+		}
+	}
 
-    /**
-     * 通用上传请求(多个)
-     */
-    @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-    {
-        try
-        {
-            // 上传文件路径
-            String filePath = ZdqzConfig.getUploadPath();
-            List<String> urls = new ArrayList<String>();
-            List<String> fileNames = new ArrayList<String>();
-            List<String> newFileNames = new ArrayList<String>();
-            List<String> originalFilenames = new ArrayList<String>();
-            for (MultipartFile file : files)
-            {
-                // 上传并返回新文件名称
-                String fileName = FileUploadUtils.upload(filePath, file);
-                String url = serverConfig.getUrl() + fileName;
-                urls.add(url);
-                fileNames.add(fileName);
-                newFileNames.add(FileUtils.getName(fileName));
-                originalFilenames.add(file.getOriginalFilename());
-            }
-            AjaxResult ajax = AjaxResult.success();
-            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
-            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
-            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
-            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
-            return ajax;
-        }
-        catch (Exception e)
-        {
-            return AjaxResult.error(e.getMessage());
-        }
-    }
+	/**
+	 * 通用上传请求(多个)
+	 */
+	@PostMapping("/uploads")
+	public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+		try {
+			// 上传文件路径
+			String filePath = ZdqzConfig.getUploadPath();
+			List<String> urls = new ArrayList<String>();
+			List<String> fileNames = new ArrayList<String>();
+			List<String> newFileNames = new ArrayList<String>();
+			List<String> originalFilenames = new ArrayList<String>();
+			for (MultipartFile file : files) {
+				// 上传并返回新文件名称
+				String fileName = FileUploadUtils.upload(filePath, file);
+				String url = serverConfig.getUrl() + fileName;
+				urls.add(url);
+				fileNames.add(fileName);
+				newFileNames.add(FileUtils.getName(fileName));
+				originalFilenames.add(file.getOriginalFilename());
+			}
+			AjaxResult ajax = AjaxResult.success();
+			ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+			ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+			ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
+			ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+			return ajax;
+		} catch (Exception e) {
+			return AjaxResult.error(e.getMessage());
+		}
+	}
 
-    /**
-     * 本地资源通用下载
-     */
-    @GetMapping("/download/resource")
-    public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(resource))
-            {
-                throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
-            }
-            // 本地资源路径
-            String localPath = ZdqzConfig.getProfile();
-            // 数据库资源地址
-            String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
-            // 下载名称
-            String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, downloadName);
-            FileUtils.writeBytes(downloadPath, response.getOutputStream());
-        }
-        catch (Exception e)
-        {
-            log.error("下载文件失败", e);
-        }
-    }
+	/**
+	 * 本地资源通用下载
+	 */
+	@GetMapping("/download/resource")
+	public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception {
+		try {
+			if (!FileUtils.checkAllowDownload(resource)) {
+				throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
+			}
+			// 本地资源路径
+			String localPath = ZdqzConfig.getProfile();
+			// 数据库资源地址
+			String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
+			// 下载名称
+			String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
+			response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+			FileUtils.setAttachmentResponseHeader(response, downloadName);
+			FileUtils.writeBytes(downloadPath, response.getOutputStream());
+		} catch (Exception e) {
+			log.error("下载文件失败", e);
+		}
+	}
 }

+ 0 - 183
healsphere-admin/src/main/java/com/zdqz/web/controller/tool/TestController.java

@@ -1,183 +0,0 @@
-package com.zdqz.web.controller.tool;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.R;
-import com.zdqz.common.utils.StringUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * swagger 用户测试方法
- * 
- * @author 攻心小虫
- */
-@Api("用户信息管理")
-@RestController
-@RequestMapping("/test/user")
-public class TestController extends BaseController
-{
-    private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
-    {
-        users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
-        users.put(2, new UserEntity(2, "ry", "admin123", "15666666666"));
-    }
-
-    @ApiOperation("获取用户列表")
-    @GetMapping("/list")
-    public R<List<UserEntity>> userList()
-    {
-        List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
-        return R.ok(userList);
-    }
-
-    @ApiOperation("获取用户详细")
-    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
-    @GetMapping("/{userId}")
-    public R<UserEntity> getUser(@PathVariable Integer userId)
-    {
-        if (!users.isEmpty() && users.containsKey(userId))
-        {
-            return R.ok(users.get(userId));
-        }
-        else
-        {
-            return R.fail("用户不存在");
-        }
-    }
-
-    @ApiOperation("新增用户")
-    @ApiImplicitParams({
-        @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class),
-        @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class),
-        @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class)
-    })
-    @PostMapping("/save")
-    public R<String> save(UserEntity user)
-    {
-        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
-        {
-            return R.fail("用户ID不能为空");
-        }
-        users.put(user.getUserId(), user);
-        return R.ok();
-    }
-
-    @ApiOperation("更新用户")
-    @PutMapping("/update")
-    public R<String> update(@RequestBody UserEntity user)
-    {
-        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
-        {
-            return R.fail("用户ID不能为空");
-        }
-        if (users.isEmpty() || !users.containsKey(user.getUserId()))
-        {
-            return R.fail("用户不存在");
-        }
-        users.remove(user.getUserId());
-        users.put(user.getUserId(), user);
-        return R.ok();
-    }
-
-    @ApiOperation("删除用户信息")
-    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
-    @DeleteMapping("/{userId}")
-    public R<String> delete(@PathVariable Integer userId)
-    {
-        if (!users.isEmpty() && users.containsKey(userId))
-        {
-            users.remove(userId);
-            return R.ok();
-        }
-        else
-        {
-            return R.fail("用户不存在");
-        }
-    }
-}
-
-@ApiModel(value = "UserEntity", description = "用户实体")
-class UserEntity
-{
-    @ApiModelProperty("用户ID")
-    private Integer userId;
-
-    @ApiModelProperty("用户名称")
-    private String username;
-
-    @ApiModelProperty("用户密码")
-    private String password;
-
-    @ApiModelProperty("用户手机")
-    private String mobile;
-
-    public UserEntity()
-    {
-
-    }
-
-    public UserEntity(Integer userId, String username, String password, String mobile)
-    {
-        this.userId = userId;
-        this.username = username;
-        this.password = password;
-        this.mobile = mobile;
-    }
-
-    public Integer getUserId()
-    {
-        return userId;
-    }
-
-    public void setUserId(Integer userId)
-    {
-        this.userId = userId;
-    }
-
-    public String getUsername()
-    {
-        return username;
-    }
-
-    public void setUsername(String username)
-    {
-        this.username = username;
-    }
-
-    public String getPassword()
-    {
-        return password;
-    }
-
-    public void setPassword(String password)
-    {
-        this.password = password;
-    }
-
-    public String getMobile()
-    {
-        return mobile;
-    }
-
-    public void setMobile(String mobile)
-    {
-        this.mobile = mobile;
-    }
-}

+ 1 - 0
healsphere-admin/src/main/resources/application.yml

@@ -5,6 +5,7 @@ zdqz:
   # 验证码类型 math 数字计算 char 字符验证
   captchaType: math
   initPassword: 123456
+  readFilePath: C:/Users/szpSh/Desktop/
 
 # 开发环境配置
 server:

+ 54 - 1
healsphere-buss/pom.xml

@@ -11,15 +11,68 @@
 
     <artifactId>healsphere-buss</artifactId>
 
-
     <dependencies>
+	<!-- itext7 -->
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>kernel</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>io</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>layout</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>forms</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>pdfa</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>pdftest</artifactId>
+            <version>7.1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>font-asian</artifactId>
+            <version>7.1.15</version>
+        </dependency>
 
+        <!--itext7 html转pdf用到的包-->
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>html2pdf</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+        </dependency>
+        
         <!-- 通用工具-->
         <dependency>
             <groupId>com.zdqz</groupId>
             <artifactId>healsphere-common</artifactId>
         </dependency>
 
+
+   <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.6.2</version>
+        </dependency>
     </dependencies>
 
 </project>

+ 78 - 0
healsphere-buss/src/main/java/com/zdqz/data/controller/DataBaseController.java

@@ -0,0 +1,78 @@
+package com.zdqz.data.controller;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.zdqz.common.annotation.Log;
+import com.zdqz.common.core.controller.BaseController;
+import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.core.page.TableDataInfo;
+import com.zdqz.common.enums.BusinessType;
+import com.zdqz.data.domain.DataBase;
+import com.zdqz.data.service.IDataBaseService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 病原体管理Controller
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+@RestController
+@RequestMapping("/data/dataBase")
+@Api(value="基础数据管理接口",tags="基础数据接口标签")
+public class DataBaseController extends BaseController {
+	@Autowired
+	private IDataBaseService dataBaseService;
+
+	/**
+	 * 查询病原体管理列表
+	 */
+	@GetMapping("/list")
+	public TableDataInfo list(DataBase dataBase) {
+		startPage();
+		List<DataBase> list = dataBaseService.selectDataBaseList(dataBase);
+		return getDataTable(list);
+	}
+
+	/**
+	 * 获取病原体管理详细信息
+	 */
+	@PreAuthorize("@ss.hasPermi('data:dataBase:query')")
+	@GetMapping(value = "/{id}")
+	public AjaxResult getInfo(@PathVariable("id") String id) {
+		return success(dataBaseService.selectDataBaseById(id));
+	}
+
+	/**
+	 * 删除病原体管理
+	 */
+	@Log(title = "基础数据管理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+	public AjaxResult remove(@PathVariable String[] ids) {
+		return toAjax(dataBaseService.deleteDataBaseByIds(ids));
+	}
+	
+	@PostMapping("/importData")
+	@ApiOperation("导入基础数据,新增覆盖原来的数据")
+	@Log(title = "基础数据管理", businessType = BusinessType.IMPORT)
+	public AjaxResult importData(@RequestPart("file") MultipartFile file) throws Exception {
+//		ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+//		List<SysUser> userList = util.importExcel(file.getInputStream());
+//		String operName = getUsername();
+//		String message = userService.importUser(userList, updateSupport, operName);
+		return success("后端还未实现,不用管");
+	}
+}

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/data/controller/DataDljyController.java

@@ -1,104 +0,0 @@
-package com.zdqz.data.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.data.domain.DataDljy;
-import com.zdqz.data.service.IDataDljyService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 毒力基因耐药药品、敏感药品管理Controller
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-@RestController
-@RequestMapping("/data/dljy")
-public class DataDljyController extends BaseController
-{
-    @Autowired
-    private IDataDljyService dataDljyService;
-
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(DataDljy dataDljy)
-    {
-        startPage();
-        List<DataDljy> list = dataDljyService.selectDataDljyList(dataDljy);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出毒力基因耐药药品、敏感药品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:export')")
-    @Log(title = "毒力基因耐药药品、敏感药品管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, DataDljy dataDljy)
-    {
-        List<DataDljy> list = dataDljyService.selectDataDljyList(dataDljy);
-        ExcelUtil<DataDljy> util = new ExcelUtil<DataDljy>(DataDljy.class);
-        util.exportExcel(response, list, "毒力基因耐药药品、敏感药品管理数据");
-    }
-
-    /**
-     * 获取毒力基因耐药药品、敏感药品管理详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(dataDljyService.selectDataDljyById(id));
-    }
-
-    /**
-     * 新增毒力基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:add')")
-    @Log(title = "毒力基因耐药药品、敏感药品管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody DataDljy dataDljy)
-    {
-        return toAjax(dataDljyService.insertDataDljy(dataDljy));
-    }
-
-    /**
-     * 修改毒力基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:edit')")
-    @Log(title = "毒力基因耐药药品、敏感药品管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody DataDljy dataDljy)
-    {
-        return toAjax(dataDljyService.updateDataDljy(dataDljy));
-    }
-
-    /**
-     * 删除毒力基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:dljy:remove')")
-    @Log(title = "毒力基因耐药药品、敏感药品管理", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(dataDljyService.deleteDataDljyByIds(ids));
-    }
-}

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/data/controller/DataNyjyController.java

@@ -1,104 +0,0 @@
-package com.zdqz.data.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.data.domain.DataNyjy;
-import com.zdqz.data.service.IDataNyjyService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 耐药基因耐药药品、敏感药品管理Controller
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-@RestController
-@RequestMapping("/data/nyjy")
-public class DataNyjyController extends BaseController
-{
-    @Autowired
-    private IDataNyjyService dataNyjyService;
-
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(DataNyjy dataNyjy)
-    {
-        startPage();
-        List<DataNyjy> list = dataNyjyService.selectDataNyjyList(dataNyjy);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出耐药基因耐药药品、敏感药品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:export')")
-    @Log(title = "耐药基因耐药药品、敏感药品管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, DataNyjy dataNyjy)
-    {
-        List<DataNyjy> list = dataNyjyService.selectDataNyjyList(dataNyjy);
-        ExcelUtil<DataNyjy> util = new ExcelUtil<DataNyjy>(DataNyjy.class);
-        util.exportExcel(response, list, "耐药基因耐药药品、敏感药品管理数据");
-    }
-
-    /**
-     * 获取耐药基因耐药药品、敏感药品管理详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(dataNyjyService.selectDataNyjyById(id));
-    }
-
-    /**
-     * 新增耐药基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:add')")
-    @Log(title = "耐药基因耐药药品、敏感药品管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody DataNyjy dataNyjy)
-    {
-        return toAjax(dataNyjyService.insertDataNyjy(dataNyjy));
-    }
-
-    /**
-     * 修改耐药基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:edit')")
-    @Log(title = "耐药基因耐药药品、敏感药品管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody DataNyjy dataNyjy)
-    {
-        return toAjax(dataNyjyService.updateDataNyjy(dataNyjy));
-    }
-
-    /**
-     * 删除耐药基因耐药药品、敏感药品管理
-     */
-    @PreAuthorize("@ss.hasPermi('data:nyjy:remove')")
-    @Log(title = "耐药基因耐药药品、敏感药品管理", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(dataNyjyService.deleteDataNyjyByIds(ids));
-    }
-}

+ 503 - 0
healsphere-buss/src/main/java/com/zdqz/data/domain/DataBase.java

@@ -0,0 +1,503 @@
+package com.zdqz.data.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zdqz.common.annotation.Excel;
+import com.zdqz.common.core.domain.BaseEntity;
+
+/**
+ * 病原体管理对象 data_base
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public class DataBase extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/** 编号 */
+	private Long id;
+
+	private Integer type;
+
+	/** 唯一注册号 */
+	@Excel(name = "唯一注册号")
+	private String assemblyAccession;
+
+	/** 参考基因组类型 */
+	@Excel(name = "参考基因组类型")
+	private String refseqCategory;
+
+	/** 分类号 */
+	@Excel(name = "分类号")
+	private String taxid;
+
+	/** 种分类号 */
+	@Excel(name = "种分类号")
+	private String speciesTaxid;
+
+	/** 生物名称 */
+	@Excel(name = "生物名称")
+	private String organismName;
+
+	/** 亚种名称 */
+	@Excel(name = "亚种名称")
+	private String infraspecificName;
+
+	/** 分类类型 */
+	@Excel(name = "分类类型")
+	private String isolate;
+
+	/** 拼装级别 */
+	@Excel(name = "拼装级别")
+	private String assemblyLevel;
+
+	/** 基因组级别 */
+	@Excel(name = "基因组级别")
+	private String genomeRep;
+
+	/** seq_rel_date */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Excel(name = "seq_rel_date", width = 30, dateFormat = "yyyy-MM-dd")
+	private Date seqRelDate;
+
+	/** ASM编号 */
+	@Excel(name = "ASM编号")
+	private String asmName;
+
+	/** gbrs_paired_asm */
+	@Excel(name = "gbrs_paired_asm")
+	private String gbrsPairedAsm;
+
+	/** paired_asm_comp */
+	@Excel(name = "paired_asm_comp")
+	private String pairedAsmComp;
+
+	/** 来源地址 */
+	@Excel(name = "来源地址")
+	private String ftpPath;
+
+	/** excluded_from_refseq */
+	@Excel(name = "excluded_from_refseq")
+	private String excludedFromRefseq;
+
+	/** 装配类型 */
+	@Excel(name = "装配类型")
+	private String assemblyType;
+
+	/** 病源类型 */
+	@Excel(name = "病源类型")
+	private String group;
+
+	/** 基因组大小 */
+	@Excel(name = "基因组大小")
+	private String genomeSize;
+
+	/** 基因组大小(无缺口) */
+	@Excel(name = "基因组大小", readConverterExp = "无=缺口")
+	private String genomeSizeUngapped;
+
+	/** GC比例 */
+	@Excel(name = "GC比例")
+	private BigDecimal gcPercent;
+
+	/** replicon_count */
+	@Excel(name = "replicon_count")
+	private Long repliconCount;
+
+	/** scaffold_count */
+	@Excel(name = "scaffold_count")
+	private Long scaffoldCount;
+
+	/** contig_count */
+	@Excel(name = "contig_count")
+	private Long contigCount;
+
+	/** 总基因数 */
+	@Excel(name = "总基因数")
+	private Long totalGeneCount;
+
+	/** 翻译蛋白基因数 */
+	@Excel(name = "翻译蛋白基因数")
+	private Long proteinCodingGeneCount;
+
+	/** 非编码基因数 */
+	@Excel(name = "非编码基因数")
+	private Long nonCodingGeneCount;
+
+	/** 中文名 */
+	@Excel(name = "中文名")
+	private String nameCn;
+
+	/** 定义 */
+	@Excel(name = "定义")
+	private String defined;
+
+	/** 序列来源 */
+	@Excel(name = "序列来源")
+	private String seqSource;
+
+	/** 解释来源 */
+	@Excel(name = "解释来源")
+	private String express;
+
+	/** 文件路径 */
+	@Excel(name = "文件路径")
+	private String filePath;
+
+	/** 点突变耐药基因 */
+	@Excel(name = "点突变耐药基因")
+	private String dtpnyjy;
+
+	/** 点突变耐药基因说明 */
+	@Excel(name = "点突变耐药基因说明")
+	private String dtpnyjyExpress;
+
+	/** 耐药基因 */
+	@Excel(name = "耐药基因")
+	private String nyjy;
+
+	/** 耐药基因说明 */
+	@Excel(name = "耐药基因说明")
+	private String nyjyExpress;
+
+	/** 毒力基因 */
+	@Excel(name = "毒力基因")
+	private String dljy;
+
+	/** 毒力基因说明 */
+	@Excel(name = "毒力基因说明")
+	private String dljyExpress;
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public void setAssemblyAccession(String assemblyAccession) {
+		this.assemblyAccession = assemblyAccession;
+	}
+
+	public String getAssemblyAccession() {
+		return assemblyAccession;
+	}
+
+	public void setRefseqCategory(String refseqCategory) {
+		this.refseqCategory = refseqCategory;
+	}
+
+	public String getRefseqCategory() {
+		return refseqCategory;
+	}
+
+	public void setTaxid(String taxid) {
+		this.taxid = taxid;
+	}
+
+	public String getTaxid() {
+		return taxid;
+	}
+
+	public void setSpeciesTaxid(String speciesTaxid) {
+		this.speciesTaxid = speciesTaxid;
+	}
+
+	public String getSpeciesTaxid() {
+		return speciesTaxid;
+	}
+
+	public void setOrganismName(String organismName) {
+		this.organismName = organismName;
+	}
+
+	public String getOrganismName() {
+		return organismName;
+	}
+
+	public void setInfraspecificName(String infraspecificName) {
+		this.infraspecificName = infraspecificName;
+	}
+
+	public String getInfraspecificName() {
+		return infraspecificName;
+	}
+
+	public void setIsolate(String isolate) {
+		this.isolate = isolate;
+	}
+
+	public String getIsolate() {
+		return isolate;
+	}
+
+	public void setAssemblyLevel(String assemblyLevel) {
+		this.assemblyLevel = assemblyLevel;
+	}
+
+	public String getAssemblyLevel() {
+		return assemblyLevel;
+	}
+
+	public void setGenomeRep(String genomeRep) {
+		this.genomeRep = genomeRep;
+	}
+
+	public String getGenomeRep() {
+		return genomeRep;
+	}
+
+	public void setSeqRelDate(Date seqRelDate) {
+		this.seqRelDate = seqRelDate;
+	}
+
+	public Date getSeqRelDate() {
+		return seqRelDate;
+	}
+
+	public void setAsmName(String asmName) {
+		this.asmName = asmName;
+	}
+
+	public String getAsmName() {
+		return asmName;
+	}
+
+	public void setGbrsPairedAsm(String gbrsPairedAsm) {
+		this.gbrsPairedAsm = gbrsPairedAsm;
+	}
+
+	public String getGbrsPairedAsm() {
+		return gbrsPairedAsm;
+	}
+
+	public void setPairedAsmComp(String pairedAsmComp) {
+		this.pairedAsmComp = pairedAsmComp;
+	}
+
+	public String getPairedAsmComp() {
+		return pairedAsmComp;
+	}
+
+	public void setFtpPath(String ftpPath) {
+		this.ftpPath = ftpPath;
+	}
+
+	public String getFtpPath() {
+		return ftpPath;
+	}
+
+	public void setExcludedFromRefseq(String excludedFromRefseq) {
+		this.excludedFromRefseq = excludedFromRefseq;
+	}
+
+	public String getExcludedFromRefseq() {
+		return excludedFromRefseq;
+	}
+
+	public void setAssemblyType(String assemblyType) {
+		this.assemblyType = assemblyType;
+	}
+
+	public String getAssemblyType() {
+		return assemblyType;
+	}
+
+	public void setGroup(String group) {
+		this.group = group;
+	}
+
+	public String getGroup() {
+		return group;
+	}
+
+	public void setGenomeSize(String genomeSize) {
+		this.genomeSize = genomeSize;
+	}
+
+	public String getGenomeSize() {
+		return genomeSize;
+	}
+
+	public void setGenomeSizeUngapped(String genomeSizeUngapped) {
+		this.genomeSizeUngapped = genomeSizeUngapped;
+	}
+
+	public String getGenomeSizeUngapped() {
+		return genomeSizeUngapped;
+	}
+
+	public void setGcPercent(BigDecimal gcPercent) {
+		this.gcPercent = gcPercent;
+	}
+
+	public BigDecimal getGcPercent() {
+		return gcPercent;
+	}
+
+	public void setRepliconCount(Long repliconCount) {
+		this.repliconCount = repliconCount;
+	}
+
+	public Long getRepliconCount() {
+		return repliconCount;
+	}
+
+	public void setScaffoldCount(Long scaffoldCount) {
+		this.scaffoldCount = scaffoldCount;
+	}
+
+	public Long getScaffoldCount() {
+		return scaffoldCount;
+	}
+
+	public void setContigCount(Long contigCount) {
+		this.contigCount = contigCount;
+	}
+
+	public Long getContigCount() {
+		return contigCount;
+	}
+
+	public void setTotalGeneCount(Long totalGeneCount) {
+		this.totalGeneCount = totalGeneCount;
+	}
+
+	public Long getTotalGeneCount() {
+		return totalGeneCount;
+	}
+
+	public void setProteinCodingGeneCount(Long proteinCodingGeneCount) {
+		this.proteinCodingGeneCount = proteinCodingGeneCount;
+	}
+
+	public Long getProteinCodingGeneCount() {
+		return proteinCodingGeneCount;
+	}
+
+	public void setNonCodingGeneCount(Long nonCodingGeneCount) {
+		this.nonCodingGeneCount = nonCodingGeneCount;
+	}
+
+	public Long getNonCodingGeneCount() {
+		return nonCodingGeneCount;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setDefined(String defined) {
+		this.defined = defined;
+	}
+
+	public String getDefined() {
+		return defined;
+	}
+
+	public void setSeqSource(String seqSource) {
+		this.seqSource = seqSource;
+	}
+
+	public String getSeqSource() {
+		return seqSource;
+	}
+
+	public void setExpress(String express) {
+		this.express = express;
+	}
+
+	public String getExpress() {
+		return express;
+	}
+
+	public void setFilePath(String filePath) {
+		this.filePath = filePath;
+	}
+
+	public String getFilePath() {
+		return filePath;
+	}
+
+	public void setDtpnyjy(String dtpnyjy) {
+		this.dtpnyjy = dtpnyjy;
+	}
+
+	public String getDtpnyjy() {
+		return dtpnyjy;
+	}
+
+	public void setDtpnyjyExpress(String dtpnyjyExpress) {
+		this.dtpnyjyExpress = dtpnyjyExpress;
+	}
+
+	public String getDtpnyjyExpress() {
+		return dtpnyjyExpress;
+	}
+
+	public void setNyjy(String nyjy) {
+		this.nyjy = nyjy;
+	}
+
+	public String getNyjy() {
+		return nyjy;
+	}
+
+	public void setNyjyExpress(String nyjyExpress) {
+		this.nyjyExpress = nyjyExpress;
+	}
+
+	public String getNyjyExpress() {
+		return nyjyExpress;
+	}
+
+	public void setDljy(String dljy) {
+		this.dljy = dljy;
+	}
+
+	public String getDljy() {
+		return dljy;
+	}
+
+	public void setDljyExpress(String dljyExpress) {
+		this.dljyExpress = dljyExpress;
+	}
+
+	public String getDljyExpress() {
+		return dljyExpress;
+	}
+
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("assemblyAccession", getAssemblyAccession())
+				.append("refseqCategory", getRefseqCategory()).append("taxid", getTaxid()).append("speciesTaxid", getSpeciesTaxid()).append("organismName", getOrganismName())
+				.append("infraspecificName", getInfraspecificName()).append("isolate", getIsolate()).append("assemblyLevel", getAssemblyLevel()).append("genomeRep", getGenomeRep())
+				.append("seqRelDate", getSeqRelDate()).append("asmName", getAsmName()).append("gbrsPairedAsm", getGbrsPairedAsm()).append("pairedAsmComp", getPairedAsmComp())
+				.append("ftpPath", getFtpPath()).append("excludedFromRefseq", getExcludedFromRefseq()).append("assemblyType", getAssemblyType()).append("group", getGroup())
+				.append("genomeSize", getGenomeSize()).append("genomeSizeUngapped", getGenomeSizeUngapped()).append("gcPercent", getGcPercent())
+				.append("repliconCount", getRepliconCount()).append("scaffoldCount", getScaffoldCount()).append("contigCount", getContigCount())
+				.append("totalGeneCount", getTotalGeneCount()).append("proteinCodingGeneCount", getProteinCodingGeneCount()).append("nonCodingGeneCount", getNonCodingGeneCount())
+				.append("nameCn", getNameCn()).append("defined", getDefined()).append("seqSource", getSeqSource()).append("express", getExpress()).append("filePath", getFilePath())
+				.append("dtpnyjy", getDtpnyjy()).append("dtpnyjyExpress", getDtpnyjyExpress()).append("nyjy", getNyjy()).append("nyjyExpress", getNyjyExpress())
+				.append("dljy", getDljy()).append("dljyExpress", getDljyExpress()).append("createBy", getCreateBy()).append("createTime", getCreateTime())
+				.append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+	}
+}

+ 0 - 117
healsphere-buss/src/main/java/com/zdqz/data/domain/DataDljy.java

@@ -1,117 +0,0 @@
-package com.zdqz.data.domain;
-
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.zdqz.common.annotation.Excel;
-import com.zdqz.common.core.domain.BaseEntity;
-
-/**
- * 毒力基因耐药药品、敏感药品管理对象 data_dljy
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public class DataDljy extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 */
-    private Long id;
-
-    /** 毒力基因 */
-    @Excel(name = "毒力基因")
-    private String dljy;
-
-    /** 病原体 */
-    @Excel(name = "病原体")
-    private String byt;
-
-    /** 耐药药品 */
-    @Excel(name = "耐药药品")
-    private String nyyp;
-
-    /** 敏感药品 */
-    @Excel(name = "敏感药品")
-    private String mgyp;
-
-    /** 耐药基因的解释 */
-    @Excel(name = "耐药基因的解释")
-    private String nyjyExpress;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-
-    public void setDljy(String dljy) 
-    {
-        this.dljy = dljy;
-    }
-
-    public String getDljy() 
-    {
-        return dljy;
-    }
-
-    public void setByt(String byt) 
-    {
-        this.byt = byt;
-    }
-
-    public String getByt() 
-    {
-        return byt;
-    }
-
-    public void setNyyp(String nyyp) 
-    {
-        this.nyyp = nyyp;
-    }
-
-    public String getNyyp() 
-    {
-        return nyyp;
-    }
-
-    public void setMgyp(String mgyp) 
-    {
-        this.mgyp = mgyp;
-    }
-
-    public String getMgyp() 
-    {
-        return mgyp;
-    }
-
-    public void setNyjyExpress(String nyjyExpress) 
-    {
-        this.nyjyExpress = nyjyExpress;
-    }
-
-    public String getNyjyExpress() 
-    {
-        return nyjyExpress;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("dljy", getDljy())
-            .append("byt", getByt())
-            .append("nyyp", getNyyp())
-            .append("mgyp", getMgyp())
-            .append("nyjyExpress", getNyjyExpress())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
-}

+ 0 - 117
healsphere-buss/src/main/java/com/zdqz/data/domain/DataNyjy.java

@@ -1,117 +0,0 @@
-package com.zdqz.data.domain;
-
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.zdqz.common.annotation.Excel;
-import com.zdqz.common.core.domain.BaseEntity;
-
-/**
- * 耐药基因耐药药品、敏感药品管理对象 data_nyjy
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public class DataNyjy extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 */
-    private Long id;
-
-    /** 耐药基因 */
-    @Excel(name = "耐药基因")
-    private String nyjy;
-
-    /** 病原体 */
-    @Excel(name = "病原体")
-    private String byt;
-
-    /** 耐药药品 */
-    @Excel(name = "耐药药品")
-    private String nyyp;
-
-    /** 敏感药品 */
-    @Excel(name = "敏感药品")
-    private String mgyp;
-
-    /** 耐药基因的解释 */
-    @Excel(name = "耐药基因的解释")
-    private String nyjyExpress;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-
-    public void setNyjy(String nyjy) 
-    {
-        this.nyjy = nyjy;
-    }
-
-    public String getNyjy() 
-    {
-        return nyjy;
-    }
-
-    public void setByt(String byt) 
-    {
-        this.byt = byt;
-    }
-
-    public String getByt() 
-    {
-        return byt;
-    }
-
-    public void setNyyp(String nyyp) 
-    {
-        this.nyyp = nyyp;
-    }
-
-    public String getNyyp() 
-    {
-        return nyyp;
-    }
-
-    public void setMgyp(String mgyp) 
-    {
-        this.mgyp = mgyp;
-    }
-
-    public String getMgyp() 
-    {
-        return mgyp;
-    }
-
-    public void setNyjyExpress(String nyjyExpress) 
-    {
-        this.nyjyExpress = nyjyExpress;
-    }
-
-    public String getNyjyExpress() 
-    {
-        return nyjyExpress;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("nyjy", getNyjy())
-            .append("byt", getByt())
-            .append("nyyp", getNyyp())
-            .append("mgyp", getMgyp())
-            .append("nyjyExpress", getNyjyExpress())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
-}

+ 45 - 0
healsphere-buss/src/main/java/com/zdqz/data/mapper/DataBaseMapper.java

@@ -0,0 +1,45 @@
+package com.zdqz.data.mapper;
+
+import java.util.List;
+import com.zdqz.data.domain.DataBase;
+
+/**
+ * 病原体管理Mapper接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public interface DataBaseMapper {
+	/**
+	 * 查询病原体管理
+	 * 
+	 * @param id 病原体管理主键
+	 * @return 病原体管理
+	 */
+	public DataBase selectDataBaseById(String id);
+
+	/**
+	 * 查询病原体管理列表
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 病原体管理集合
+	 */
+	public List<DataBase> selectDataBaseList(DataBase dataBase);
+
+	/**
+	 * 新增病原体管理
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 结果
+	 */
+	public int insertDataBase(DataBase dataBase);
+
+
+	/**
+	 * 批量删除病原体管理
+	 * 
+	 * @param ids 需要删除的数据主键集合
+	 * @return 结果
+	 */
+	public int deleteDataBaseByIds(String[] ids);
+}

+ 0 - 61
healsphere-buss/src/main/java/com/zdqz/data/mapper/DataDljyMapper.java

@@ -1,61 +0,0 @@
-package com.zdqz.data.mapper;
-
-import java.util.List;
-import com.zdqz.data.domain.DataDljy;
-
-/**
- * 毒力基因耐药药品、敏感药品管理Mapper接口
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public interface DataDljyMapper 
-{
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 毒力基因耐药药品、敏感药品管理
-     */
-    public DataDljy selectDataDljyById(Long id);
-
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 毒力基因耐药药品、敏感药品管理集合
-     */
-    public List<DataDljy> selectDataDljyList(DataDljy dataDljy);
-
-    /**
-     * 新增毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int insertDataDljy(DataDljy dataDljy);
-
-    /**
-     * 修改毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int updateDataDljy(DataDljy dataDljy);
-
-    /**
-     * 删除毒力基因耐药药品、敏感药品管理
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    public int deleteDataDljyById(Long id);
-
-    /**
-     * 批量删除毒力基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteDataDljyByIds(Long[] ids);
-}

+ 0 - 61
healsphere-buss/src/main/java/com/zdqz/data/mapper/DataNyjyMapper.java

@@ -1,61 +0,0 @@
-package com.zdqz.data.mapper;
-
-import java.util.List;
-import com.zdqz.data.domain.DataNyjy;
-
-/**
- * 耐药基因耐药药品、敏感药品管理Mapper接口
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public interface DataNyjyMapper 
-{
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 耐药基因耐药药品、敏感药品管理
-     */
-    public DataNyjy selectDataNyjyById(Long id);
-
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 耐药基因耐药药品、敏感药品管理集合
-     */
-    public List<DataNyjy> selectDataNyjyList(DataNyjy dataNyjy);
-
-    /**
-     * 新增耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int insertDataNyjy(DataNyjy dataNyjy);
-
-    /**
-     * 修改耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int updateDataNyjy(DataNyjy dataNyjy);
-
-    /**
-     * 删除耐药基因耐药药品、敏感药品管理
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    public int deleteDataNyjyById(Long id);
-
-    /**
-     * 批量删除耐药基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteDataNyjyByIds(Long[] ids);
-}

+ 45 - 0
healsphere-buss/src/main/java/com/zdqz/data/service/IDataBaseService.java

@@ -0,0 +1,45 @@
+package com.zdqz.data.service;
+
+import java.util.List;
+import com.zdqz.data.domain.DataBase;
+
+/**
+ * 病原体管理Service接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public interface IDataBaseService {
+	/**
+	 * 查询病原体管理
+	 * 
+	 * @param id 病原体管理主键
+	 * @return 病原体管理
+	 */
+	public DataBase selectDataBaseById(String id);
+
+	/**
+	 * 查询病原体管理列表
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 病原体管理集合
+	 */
+	public List<DataBase> selectDataBaseList(DataBase dataBase);
+
+	/**
+	 * 新增病原体管理
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 结果
+	 */
+	public int insertDataBase(DataBase dataBase);
+
+	/**
+	 * 批量删除病原体管理
+	 * 
+	 * @param ids 需要删除的病原体管理主键集合
+	 * @return 结果
+	 */
+	public int deleteDataBaseByIds(String[] ids);
+
+}

+ 0 - 61
healsphere-buss/src/main/java/com/zdqz/data/service/IDataDljyService.java

@@ -1,61 +0,0 @@
-package com.zdqz.data.service;
-
-import java.util.List;
-import com.zdqz.data.domain.DataDljy;
-
-/**
- * 毒力基因耐药药品、敏感药品管理Service接口
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public interface IDataDljyService 
-{
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 毒力基因耐药药品、敏感药品管理
-     */
-    public DataDljy selectDataDljyById(Long id);
-
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 毒力基因耐药药品、敏感药品管理集合
-     */
-    public List<DataDljy> selectDataDljyList(DataDljy dataDljy);
-
-    /**
-     * 新增毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int insertDataDljy(DataDljy dataDljy);
-
-    /**
-     * 修改毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int updateDataDljy(DataDljy dataDljy);
-
-    /**
-     * 批量删除毒力基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的毒力基因耐药药品、敏感药品管理主键集合
-     * @return 结果
-     */
-    public int deleteDataDljyByIds(Long[] ids);
-
-    /**
-     * 删除毒力基因耐药药品、敏感药品管理信息
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    public int deleteDataDljyById(Long id);
-}

+ 0 - 61
healsphere-buss/src/main/java/com/zdqz/data/service/IDataNyjyService.java

@@ -1,61 +0,0 @@
-package com.zdqz.data.service;
-
-import java.util.List;
-import com.zdqz.data.domain.DataNyjy;
-
-/**
- * 耐药基因耐药药品、敏感药品管理Service接口
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-public interface IDataNyjyService 
-{
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 耐药基因耐药药品、敏感药品管理
-     */
-    public DataNyjy selectDataNyjyById(Long id);
-
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 耐药基因耐药药品、敏感药品管理集合
-     */
-    public List<DataNyjy> selectDataNyjyList(DataNyjy dataNyjy);
-
-    /**
-     * 新增耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int insertDataNyjy(DataNyjy dataNyjy);
-
-    /**
-     * 修改耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    public int updateDataNyjy(DataNyjy dataNyjy);
-
-    /**
-     * 批量删除耐药基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的耐药基因耐药药品、敏感药品管理主键集合
-     * @return 结果
-     */
-    public int deleteDataNyjyByIds(Long[] ids);
-
-    /**
-     * 删除耐药基因耐药药品、敏感药品管理信息
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    public int deleteDataNyjyById(Long id);
-}

+ 69 - 0
healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataBaseServiceImpl.java

@@ -0,0 +1,69 @@
+package com.zdqz.data.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.zdqz.common.utils.DateUtils;
+import com.zdqz.data.domain.DataBase;
+import com.zdqz.data.mapper.DataBaseMapper;
+import com.zdqz.data.service.IDataBaseService;
+
+/**
+ * 病原体管理Service业务层处理
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+@Service
+public class DataBaseServiceImpl implements IDataBaseService {
+	@Autowired
+	private DataBaseMapper dataBaseMapper;
+
+	/**
+	 * 查询病原体管理
+	 * 
+	 * @param id 病原体管理主键
+	 * @return 病原体管理
+	 */
+	@Override
+	public DataBase selectDataBaseById(String id) {
+		return dataBaseMapper.selectDataBaseById(id);
+	}
+
+	/**
+	 * 查询病原体管理列表
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 病原体管理
+	 */
+	@Override
+	public List<DataBase> selectDataBaseList(DataBase dataBase) {
+		return dataBaseMapper.selectDataBaseList(dataBase);
+	}
+
+	/**
+	 * 新增病原体管理
+	 * 
+	 * @param dataBase 病原体管理
+	 * @return 结果
+	 */
+	@Override
+	public int insertDataBase(DataBase dataBase) {
+		dataBase.setCreateTime(DateUtils.getNowDate());
+		return dataBaseMapper.insertDataBase(dataBase);
+	}
+
+	/**
+	 * 批量删除病原体管理
+	 * 
+	 * @param ids 需要删除的病原体管理主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteDataBaseByIds(String[] ids) {
+		return dataBaseMapper.deleteDataBaseByIds(ids);
+	}
+
+}

+ 0 - 96
healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataDljyServiceImpl.java

@@ -1,96 +0,0 @@
-package com.zdqz.data.service.impl;
-
-import java.util.List;
-import com.zdqz.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.zdqz.data.mapper.DataDljyMapper;
-import com.zdqz.data.domain.DataDljy;
-import com.zdqz.data.service.IDataDljyService;
-
-/**
- * 毒力基因耐药药品、敏感药品管理Service业务层处理
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-@Service
-public class DataDljyServiceImpl implements IDataDljyService 
-{
-    @Autowired
-    private DataDljyMapper dataDljyMapper;
-
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 毒力基因耐药药品、敏感药品管理
-     */
-    @Override
-    public DataDljy selectDataDljyById(Long id)
-    {
-        return dataDljyMapper.selectDataDljyById(id);
-    }
-
-    /**
-     * 查询毒力基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 毒力基因耐药药品、敏感药品管理
-     */
-    @Override
-    public List<DataDljy> selectDataDljyList(DataDljy dataDljy)
-    {
-        return dataDljyMapper.selectDataDljyList(dataDljy);
-    }
-
-    /**
-     * 新增毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    @Override
-    public int insertDataDljy(DataDljy dataDljy)
-    {
-        dataDljy.setCreateTime(DateUtils.getNowDate());
-        return dataDljyMapper.insertDataDljy(dataDljy);
-    }
-
-    /**
-     * 修改毒力基因耐药药品、敏感药品管理
-     * 
-     * @param dataDljy 毒力基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    @Override
-    public int updateDataDljy(DataDljy dataDljy)
-    {
-        dataDljy.setUpdateTime(DateUtils.getNowDate());
-        return dataDljyMapper.updateDataDljy(dataDljy);
-    }
-
-    /**
-     * 批量删除毒力基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的毒力基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteDataDljyByIds(Long[] ids)
-    {
-        return dataDljyMapper.deleteDataDljyByIds(ids);
-    }
-
-    /**
-     * 删除毒力基因耐药药品、敏感药品管理信息
-     * 
-     * @param id 毒力基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteDataDljyById(Long id)
-    {
-        return dataDljyMapper.deleteDataDljyById(id);
-    }
-}

+ 0 - 96
healsphere-buss/src/main/java/com/zdqz/data/service/impl/DataNyjyServiceImpl.java

@@ -1,96 +0,0 @@
-package com.zdqz.data.service.impl;
-
-import java.util.List;
-import com.zdqz.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.zdqz.data.mapper.DataNyjyMapper;
-import com.zdqz.data.domain.DataNyjy;
-import com.zdqz.data.service.IDataNyjyService;
-
-/**
- * 耐药基因耐药药品、敏感药品管理Service业务层处理
- * 
- * @author 攻心小虫
- * @date 2025-06-03
- */
-@Service
-public class DataNyjyServiceImpl implements IDataNyjyService 
-{
-    @Autowired
-    private DataNyjyMapper dataNyjyMapper;
-
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 耐药基因耐药药品、敏感药品管理
-     */
-    @Override
-    public DataNyjy selectDataNyjyById(Long id)
-    {
-        return dataNyjyMapper.selectDataNyjyById(id);
-    }
-
-    /**
-     * 查询耐药基因耐药药品、敏感药品管理列表
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 耐药基因耐药药品、敏感药品管理
-     */
-    @Override
-    public List<DataNyjy> selectDataNyjyList(DataNyjy dataNyjy)
-    {
-        return dataNyjyMapper.selectDataNyjyList(dataNyjy);
-    }
-
-    /**
-     * 新增耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    @Override
-    public int insertDataNyjy(DataNyjy dataNyjy)
-    {
-        dataNyjy.setCreateTime(DateUtils.getNowDate());
-        return dataNyjyMapper.insertDataNyjy(dataNyjy);
-    }
-
-    /**
-     * 修改耐药基因耐药药品、敏感药品管理
-     * 
-     * @param dataNyjy 耐药基因耐药药品、敏感药品管理
-     * @return 结果
-     */
-    @Override
-    public int updateDataNyjy(DataNyjy dataNyjy)
-    {
-        dataNyjy.setUpdateTime(DateUtils.getNowDate());
-        return dataNyjyMapper.updateDataNyjy(dataNyjy);
-    }
-
-    /**
-     * 批量删除耐药基因耐药药品、敏感药品管理
-     * 
-     * @param ids 需要删除的耐药基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteDataNyjyByIds(Long[] ids)
-    {
-        return dataNyjyMapper.deleteDataNyjyByIds(ids);
-    }
-
-    /**
-     * 删除耐药基因耐药药品、敏感药品管理信息
-     * 
-     * @param id 耐药基因耐药药品、敏感药品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteDataNyjyById(Long id)
-    {
-        return dataNyjyMapper.deleteDataNyjyById(id);
-    }
-}

+ 133 - 0
healsphere-buss/src/main/java/com/zdqz/read/controller/ReadDataController.java

@@ -0,0 +1,133 @@
+package com.zdqz.read.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.zdqz.common.annotation.Log;
+import com.zdqz.common.core.controller.BaseController;
+import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.enums.BusinessType;
+import com.zdqz.read.domain.FilterBean;
+import com.zdqz.read.service.IReadDataService;
+import com.zdqz.read.service.IReadRemarkService;
+import com.zdqz.sample.service.ISampleInfoService;
+import com.zdqz.sample.service.ISamplePatientService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 解读数据Controller
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+@RestController
+@RequestMapping("/read/readData")
+@Api(value="解读中心接口",tags="解读中心接口标签")
+public class ReadDataController extends BaseController {
+	@Autowired
+	private IReadDataService readDataService;
+
+	@Autowired
+	private ISamplePatientService samplePatientService;
+	
+	@Autowired
+	private ISampleInfoService sampleInfoService;
+	
+	@Autowired
+    private IReadRemarkService readRemarkService;
+	
+	@ApiOperation("根据实验编号找患者信息")
+	@GetMapping(value = "/getPatient/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getPatient(@PathVariable("experimentid") Long experimentid) {
+		return success(samplePatientService.selectSamplePatientByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找样品信息")
+	@GetMapping(value = "/getSample/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getSample(@PathVariable("experimentid") Long experimentid) {
+		return success(sampleInfoService.selectSampleInfoByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找解读备注信息")
+	@GetMapping(value = "/getRemark/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getRemark(@PathVariable("experimentid") Long experimentid) {
+		return success(readRemarkService.selectReadRemarkByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找病原体信息")
+	@GetMapping(value = "/getBYT/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getBYT(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectBYTByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找过滤的病原体信息")
+	@GetMapping(value = "/getBYTFilter/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getBYTFilter(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectBYTFilterByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找毒力基因信息")
+	@GetMapping(value = "/getDLJY/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getDLJY(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectDLJYByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找过滤的毒力基因信息")
+	@GetMapping(value = "/getDLJYFilter/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getDLJYFilter(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectDLJYFilterByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找耐药基因信息")
+	@GetMapping(value = "/getNYJY/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getNYJY(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectNYJYByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找过滤的耐药基因信息")
+	@GetMapping(value = "/getNYJYFilter/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getNYJYFilter(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectNYJYFilterByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找点突变耐药基因信息")
+	@GetMapping(value = "/getDTBNYJY/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getDTBNYJY(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectDTBNYJYByExperiment(experimentid));
+	}
+	
+	@ApiOperation("根据实验编号找过滤的点突变耐药基因信息")
+	@GetMapping(value = "/getDTBNYJYFilter/{experimentid}")
+	@ApiImplicitParam(name = "experimentid", value = "实验编号", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getDTBNYJYFilter(@PathVariable("experimentid") Long experimentid) {
+		return success(readDataService.selectDTBNYJYFilterByExperiment(experimentid));
+	}
+	
+	@ApiOperation("过滤解读数据")
+	@PostMapping(value="/saveData")
+	@Log(title = "过滤解读数据", businessType = BusinessType.UPDATE)
+	public AjaxResult saveData(@RequestBody FilterBean filterBean) {
+		readDataService.saveData(filterBean);
+		return success();
+	}
+	
+	
+}

+ 68 - 0
healsphere-buss/src/main/java/com/zdqz/read/domain/FilterBean.java

@@ -0,0 +1,68 @@
+package com.zdqz.read.domain;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value="请求体",description="过滤请求数据结构体")
+public class FilterBean implements Serializable {
+
+	private static final long serialVersionUID = 4540360374353261642L;
+
+	@ApiModelProperty(value="解读备注信息",name="readremark",required = true)
+	private ReadRemark readremark;
+	
+	@ApiModelProperty(value="病原体过滤解读编号列表",name="BYTFilterList")
+	private Long[] BYTFilterList;
+	
+	@ApiModelProperty(value="毒力基因过滤解读编号列表",name="BYTFilterList")
+	private Long[] DLJYFilterList;
+	
+	@ApiModelProperty(value="耐药基因过滤解读编号列表",name="BYTFilterList")
+	private Long[] NYJYFilterList;
+	
+	@ApiModelProperty(value="点突变耐药基因过滤解读编号列表",name="BYTFilterList")
+	private Long[] DTBNYJYFilterList;
+
+	public ReadRemark getReadremark() {
+		return readremark;
+	}
+
+	public void setReadremark(ReadRemark readremark) {
+		this.readremark = readremark;
+	}
+
+	public Long[] getBYTFilterList() {
+		return BYTFilterList;
+	}
+
+	public void setBYTFilterList(Long[] bYTFilterList) {
+		BYTFilterList = bYTFilterList;
+	}
+
+	public Long[] getDLJYFilterList() {
+		return DLJYFilterList;
+	}
+
+	public void setDLJYFilterList(Long[] dLJYFilterList) {
+		DLJYFilterList = dLJYFilterList;
+	}
+
+	public Long[] getNYJYFilterList() {
+		return NYJYFilterList;
+	}
+
+	public void setNYJYFilterList(Long[] nYJYFilterList) {
+		NYJYFilterList = nYJYFilterList;
+	}
+
+	public Long[] getDTBNYJYFilterList() {
+		return DTBNYJYFilterList;
+	}
+
+	public void setDTBNYJYFilterList(Long[] dTBNYJYFilterList) {
+		DTBNYJYFilterList = dTBNYJYFilterList;
+	}
+	
+}

+ 255 - 0
healsphere-buss/src/main/java/com/zdqz/read/domain/ReadData.java

@@ -0,0 +1,255 @@
+package com.zdqz.read.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zdqz.common.annotation.Excel;
+import com.zdqz.common.core.domain.BaseEntity;
+import com.zdqz.data.domain.DataBase;
+
+/**
+ * 解读数据对象 read_data
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public class ReadData extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/** 编号 */
+	private Long id;
+
+	/** 实验编号 */
+	private Long experimentId;
+
+	/** 唯一注册号 */
+	@Excel(name = "唯一注册号")
+	private String assemblyAccession;
+
+	@Excel(name = "taxid")
+	private String taxid;
+
+	@Excel(name = "speciesTaxid")
+	private String speciesTaxid;
+
+	@Excel(name = "生物名称")
+	private Long organismName;
+
+	@Excel(name = "organismNameStd")
+	private String organismNameStd;
+
+	@Excel(name = "dHits")
+	private Long dHits;
+
+	@Excel(name = "rHits")
+	private Long rHits;
+
+	@Excel(name = "finalHits")
+	private Long finalHits;
+
+	/** 中文名 */
+	@Excel(name = "中文名")
+	private String nameCn;
+
+	/** 定义 */
+	@Excel(name = "定义")
+	private String defined;
+
+	private Long delFlag;
+	
+	
+	private Long bytFilterStatus;
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date bytFilterTime;
+	
+	private Long dljyFilterStatus;
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date dljyFilterTime;
+	
+	private Long nyjyFilterStatus;
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date nyjyFilterTime;
+	
+	private Long dtbnyjyFilterStatus;
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date dtbnyjyFilterTime;
+
+	private DataBase dataBase;
+	
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setExperimentId(Long experimentId) {
+		this.experimentId = experimentId;
+	}
+
+	public Long getExperimentId() {
+		return experimentId;
+	}
+
+	public void setAssemblyAccession(String assemblyAccession) {
+		this.assemblyAccession = assemblyAccession;
+	}
+
+	public String getAssemblyAccession() {
+		return assemblyAccession;
+	}
+
+	public void setTaxid(String taxid) {
+		this.taxid = taxid;
+	}
+
+	public String getTaxid() {
+		return taxid;
+	}
+
+	public void setSpeciesTaxid(String speciesTaxid) {
+		this.speciesTaxid = speciesTaxid;
+	}
+
+	public String getSpeciesTaxid() {
+		return speciesTaxid;
+	}
+
+	public void setOrganismName(Long organismName) {
+		this.organismName = organismName;
+	}
+
+	public Long getOrganismName() {
+		return organismName;
+	}
+
+	public void setOrganismNameStd(String organismNameStd) {
+		this.organismNameStd = organismNameStd;
+	}
+
+	public String getOrganismNameStd() {
+		return organismNameStd;
+	}
+
+	public void setdHits(Long dHits) {
+		this.dHits = dHits;
+	}
+
+	public Long getdHits() {
+		return dHits;
+	}
+
+	public void setrHits(Long rHits) {
+		this.rHits = rHits;
+	}
+
+	public Long getrHits() {
+		return rHits;
+	}
+
+	public void setFinalHits(Long finalHits) {
+		this.finalHits = finalHits;
+	}
+
+	public Long getFinalHits() {
+		return finalHits;
+	}
+
+	public void setNameCn(String nameCn) {
+		this.nameCn = nameCn;
+	}
+
+	public String getNameCn() {
+		return nameCn;
+	}
+
+	public void setDefined(String defined) {
+		this.defined = defined;
+	}
+
+	public String getDefined() {
+		return defined;
+	}
+
+	public void setDelFlag(Long delFlag) {
+		this.delFlag = delFlag;
+	}
+
+	public Long getDelFlag() {
+		return delFlag;
+	}
+	
+	public Long getBytFilterStatus() {
+		return bytFilterStatus;
+	}
+
+	public void setBytFilterStatus(Long bytFilterStatus) {
+		this.bytFilterStatus = bytFilterStatus;
+	}
+
+	public Date getBytFilterTime() {
+		return bytFilterTime;
+	}
+
+	public void setBytFilterTime(Date bytFilterTime) {
+		this.bytFilterTime = bytFilterTime;
+	}
+
+	public Long getDljyFilterStatus() {
+		return dljyFilterStatus;
+	}
+
+	public void setDljyFilterStatus(Long dljyFilterStatus) {
+		this.dljyFilterStatus = dljyFilterStatus;
+	}
+
+	public Date getDljyFilterTime() {
+		return dljyFilterTime;
+	}
+
+	public void setDljyFilterTime(Date dljyFilterTime) {
+		this.dljyFilterTime = dljyFilterTime;
+	}
+
+	public Long getNyjyFilterStatus() {
+		return nyjyFilterStatus;
+	}
+
+	public void setNyjyFilterStatus(Long nyjyFilterStatus) {
+		this.nyjyFilterStatus = nyjyFilterStatus;
+	}
+
+	public Date getNyjyFilterTime() {
+		return nyjyFilterTime;
+	}
+
+	public void setNyjyFilterTime(Date nyjyFilterTime) {
+		this.nyjyFilterTime = nyjyFilterTime;
+	}
+
+	public Long getDtbnyjyFilterStatus() {
+		return dtbnyjyFilterStatus;
+	}
+
+	public void setDtbnyjyFilterStatus(Long dtbnyjyFilterStatus) {
+		this.dtbnyjyFilterStatus = dtbnyjyFilterStatus;
+	}
+
+	public Date getDtbnyjyFilterTime() {
+		return dtbnyjyFilterTime;
+	}
+
+	public void setDtbnyjyFilterTime(Date dtbnyjyFilterTime) {
+		this.dtbnyjyFilterTime = dtbnyjyFilterTime;
+	}
+	
+	public DataBase getDataBase() {
+		return dataBase;
+	}
+
+	public void setDataBase(DataBase dataBase) {
+		this.dataBase = dataBase;
+	}
+
+}

+ 143 - 0
healsphere-buss/src/main/java/com/zdqz/read/domain/ReadRemark.java

@@ -0,0 +1,143 @@
+package com.zdqz.read.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zdqz.common.annotation.Excel;
+import com.zdqz.common.core.domain.BaseEntity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 解读备注数据对象 read_remark
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-06
+ */
+@ApiModel(value="解读备注数据结构",description="解读备注数据结构")
+public class ReadRemark extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value="编号",name="id",required = true)
+	private Long id;
+
+	@Excel(name = "实验编号")
+	@ApiModelProperty(value="实验编号",name="experimentId",required = true)
+	private Long experimentId;
+
+	@Excel(name = "检测流程")
+	@ApiModelProperty(value="检测流程",name="jclc",required = true)
+	private String jclc;
+
+	@Excel(name = "住院号")
+	@ApiModelProperty(value="住院号",name="jclc")
+	private String zyh;
+
+	@Excel(name = "床号")
+	@ApiModelProperty(value="床号",name="ch")
+	private String ch;
+
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@ApiModelProperty(value="采集日期",name="cjsj")
+	@Excel(name = "采集日期", width = 30, dateFormat = "yyyy-MM-dd")
+	private Date cjsj;
+
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@ApiModelProperty(value="检测日期",name="jcsj")
+	@Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd")
+	private Date jcsj;
+
+	@Excel(name = "临床诊断")
+	@ApiModelProperty(value="临床诊断",name="lczd")
+	private String lczd;
+
+	@Excel(name = "解读备注")
+	@ApiModelProperty(value="解读备注",name="jdbz")
+	private String jdbz;
+
+	@Excel(name = "检测者")
+	@ApiModelProperty(value="检测者",name="jcz",required = true)
+	private String jcz;
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setExperimentId(Long experimentId) {
+		this.experimentId = experimentId;
+	}
+
+	public Long getExperimentId() {
+		return experimentId;
+	}
+
+	public void setJclc(String jclc) {
+		this.jclc = jclc;
+	}
+
+	public String getJclc() {
+		return jclc;
+	}
+
+	public void setZyh(String zyh) {
+		this.zyh = zyh;
+	}
+
+	public String getZyh() {
+		return zyh;
+	}
+
+	public void setCh(String ch) {
+		this.ch = ch;
+	}
+
+	public String getCh() {
+		return ch;
+	}
+
+	public void setCjsj(Date cjsj) {
+		this.cjsj = cjsj;
+	}
+
+	public Date getCjsj() {
+		return cjsj;
+	}
+
+	public void setJcsj(Date jcsj) {
+		this.jcsj = jcsj;
+	}
+
+	public Date getJcsj() {
+		return jcsj;
+	}
+
+	public void setLczd(String lczd) {
+		this.lczd = lczd;
+	}
+
+	public String getLczd() {
+		return lczd;
+	}
+
+	public void setJdbz(String jdbz) {
+		this.jdbz = jdbz;
+	}
+
+	public String getJdbz() {
+		return jdbz;
+	}
+
+	public void setJcz(String jcz) {
+		this.jcz = jcz;
+	}
+
+	public String getJcz() {
+		return jcz;
+	}
+
+}

+ 47 - 0
healsphere-buss/src/main/java/com/zdqz/read/mapper/ReadDataMapper.java

@@ -0,0 +1,47 @@
+package com.zdqz.read.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.zdqz.read.domain.ReadData;
+
+/**
+ * 解读数据Mapper接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public interface ReadDataMapper {
+
+	public int setDeleteFlag(Long experimentId);
+	
+	public int insertReadData(ReadData readData);
+
+	public int updateReadData(ReadData readData);
+
+	public List<ReadData> selectBYTByExperiment(@Param("experimentId")  Long experimentId,@Param("filterStatus") Integer filterStatus);
+
+	public List<ReadData> selectDLJYByExperiment(@Param("experimentId")  Long experimentId,@Param("filterStatus") Integer filterStatus);
+
+	public List<ReadData> selectNYJYByExperiment(@Param("experimentId")  Long experimentId,@Param("filterStatus") Integer filterStatus);
+
+	public List<ReadData> selectDTBNYJYByExperiment(@Param("experimentId")  Long experimentId,@Param("filterStatus") Integer filterStatus);
+
+	public void resetBYTFilter(Long experimentId);
+
+	public void setBYTFilter(Long[] bytFilterList);
+
+	public void resetDLJYFilter(Long experimentId);
+
+	public void setDLJYFilter(Long[] dljyFilterList);
+
+	public void resetNYJYFilter(Long experimentId);
+
+	public void setNYJYFilter(Long[] nyjyFilterList);
+
+	public void resetDTBNYJYFilter(Long experimentId);
+
+	public void setDTBNYJYFilter(Long[] dtbnyjyFilterList);
+
+}

+ 26 - 0
healsphere-buss/src/main/java/com/zdqz/read/mapper/ReadRemarkMapper.java

@@ -0,0 +1,26 @@
+package com.zdqz.read.mapper;
+
+import java.util.List;
+import com.zdqz.read.domain.ReadRemark;
+
+/**
+ * 解读备注数据Mapper接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-06
+ */
+public interface ReadRemarkMapper {
+	public ReadRemark selectReadRemarkById(Long id);
+
+	public List<ReadRemark> selectReadRemarkList(ReadRemark readRemark);
+
+	public int insertReadRemark(ReadRemark readRemark);
+
+	public int updateReadRemark(ReadRemark readRemark);
+
+	public int deleteReadRemarkById(Long id);
+
+	public int deleteReadRemarkByIds(Long[] ids);
+
+	public ReadRemark selectReadRemarkByExperiment(Long experimentid);
+}

+ 40 - 0
healsphere-buss/src/main/java/com/zdqz/read/service/IReadDataService.java

@@ -0,0 +1,40 @@
+package com.zdqz.read.service;
+
+import java.util.List;
+
+import com.zdqz.read.domain.FilterBean;
+import com.zdqz.read.domain.ReadData;
+
+/**
+ * 解读数据Service接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+public interface IReadDataService {
+	
+
+	public int insertReadData(ReadData readData);
+
+	public int updateReadData(ReadData readData);
+
+	public void importData(Long experimentId, List<ReadData> importExcel);
+
+	public List<ReadData> selectBYTByExperiment(Long experimentid);
+
+	public List<ReadData> selectBYTFilterByExperiment(Long experimentid);
+
+	public List<ReadData> selectDLJYByExperiment(Long experimentid);
+
+	public List<ReadData> selectDLJYFilterByExperiment(Long experimentid);
+
+	public List<ReadData> selectNYJYByExperiment(Long experimentid);
+
+	public List<ReadData> selectNYJYFilterByExperiment(Long experimentid);
+
+	public List<ReadData> selectDTBNYJYByExperiment(Long experimentid);
+
+	public List<ReadData> selectDTBNYJYFilterByExperiment(Long experimentid);
+
+	public void saveData(FilterBean filterBean);
+}

+ 27 - 0
healsphere-buss/src/main/java/com/zdqz/read/service/IReadRemarkService.java

@@ -0,0 +1,27 @@
+package com.zdqz.read.service;
+
+import java.util.List;
+import com.zdqz.read.domain.ReadRemark;
+
+/**
+ * 解读备注数据Service接口
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-06
+ */
+public interface IReadRemarkService {
+	
+	public ReadRemark selectReadRemarkById(Long id);
+
+	public List<ReadRemark> selectReadRemarkList(ReadRemark readRemark);
+
+	public int insertReadRemark(ReadRemark readRemark);
+
+	public int updateReadRemark(ReadRemark readRemark);
+
+	public int deleteReadRemarkByIds(Long[] ids);
+
+	public int deleteReadRemarkById(Long id);
+
+	public ReadRemark selectReadRemarkByExperiment(Long experimentid);
+}

+ 118 - 0
healsphere-buss/src/main/java/com/zdqz/read/service/impl/ReadDataServiceImpl.java

@@ -0,0 +1,118 @@
+package com.zdqz.read.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.zdqz.common.utils.DateUtils;
+import com.zdqz.read.domain.FilterBean;
+import com.zdqz.read.domain.ReadData;
+import com.zdqz.read.domain.ReadRemark;
+import com.zdqz.read.mapper.ReadDataMapper;
+import com.zdqz.read.service.IReadDataService;
+import com.zdqz.read.service.IReadRemarkService;
+
+/**
+ * 解读数据Service业务层处理
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-05
+ */
+@Service
+public class ReadDataServiceImpl implements IReadDataService {
+
+	@Autowired
+	private ReadDataMapper readDataMapper;
+
+	@Autowired
+	private IReadRemarkService readRemarkService;
+
+	public int insertReadData(ReadData readData) {
+		readData.setCreateTime(DateUtils.getNowDate());
+		return readDataMapper.insertReadData(readData);
+	}
+
+	public int updateReadData(ReadData readData) {
+		readData.setUpdateTime(DateUtils.getNowDate());
+		return readDataMapper.updateReadData(readData);
+	}
+
+	public void importData(Long experimentId, List<ReadData> importExcel) {
+		readDataMapper.setDeleteFlag(experimentId);
+		for (ReadData readData : importExcel) {
+			readData.setExperimentId(experimentId);
+			insertReadData(readData);
+		}
+
+		ReadRemark readRemark = new ReadRemark();
+		readRemark.setExperimentId(experimentId);
+		readRemarkService.insertReadRemark(readRemark);
+	}
+
+	public List<ReadData> selectBYTByExperiment(Long experimentid) {
+		return readDataMapper.selectBYTByExperiment(experimentid,1);
+	}
+
+	public List<ReadData> selectBYTFilterByExperiment(Long experimentid) {
+		return readDataMapper.selectBYTByExperiment(experimentid,2);
+	}
+
+	public List<ReadData> selectDLJYByExperiment(Long experimentid) {
+		return readDataMapper.selectDLJYByExperiment(experimentid,1);
+	}
+
+	public List<ReadData> selectDLJYFilterByExperiment(Long experimentid) {
+		return readDataMapper.selectDLJYByExperiment(experimentid,2);
+	}
+
+	public List<ReadData> selectNYJYByExperiment(Long experimentid) {
+		return readDataMapper.selectNYJYByExperiment(experimentid,1);
+	}
+
+	public List<ReadData> selectNYJYFilterByExperiment(Long experimentid) {
+		return readDataMapper.selectNYJYByExperiment(experimentid,2);
+	}
+
+	public List<ReadData> selectDTBNYJYByExperiment(Long experimentid) {
+		return readDataMapper.selectDTBNYJYByExperiment(experimentid,1);
+	}
+
+	public List<ReadData> selectDTBNYJYFilterByExperiment(Long experimentid) {
+		return readDataMapper.selectDTBNYJYByExperiment(experimentid,2);
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	public void saveData(FilterBean filterBean) {
+		readRemarkService.updateReadRemark(filterBean.getReadremark());	//更新数据
+		
+		//重置病原体
+		readDataMapper.resetBYTFilter(filterBean.getReadremark().getExperimentId());
+		if(filterBean.getBYTFilterList() != null && filterBean.getBYTFilterList().length > 0) {
+			readDataMapper.setBYTFilter(filterBean.getBYTFilterList());
+		}
+		
+		//重置毒力基因
+		readDataMapper.resetDLJYFilter(filterBean.getReadremark().getExperimentId());
+		if(filterBean.getDLJYFilterList() != null  && filterBean.getBYTFilterList().length > 0) {
+			readDataMapper.setDLJYFilter(filterBean.getDLJYFilterList());
+		}
+		
+		//重置耐药基因
+		readDataMapper.resetNYJYFilter(filterBean.getReadremark().getExperimentId());
+		if(filterBean.getNYJYFilterList() != null && filterBean.getNYJYFilterList().length > 0) {
+			readDataMapper.setNYJYFilter(filterBean.getNYJYFilterList());
+		}
+		
+		//重置点突变耐药基因
+		readDataMapper.resetDTBNYJYFilter(filterBean.getReadremark().getExperimentId());
+		if(filterBean.getDTBNYJYFilterList() != null && filterBean.getDTBNYJYFilterList().length > 0) {
+			readDataMapper.setDTBNYJYFilter(filterBean.getDTBNYJYFilterList());
+		}
+		
+		
+		//生成文档
+		
+	}
+}

+ 53 - 0
healsphere-buss/src/main/java/com/zdqz/read/service/impl/ReadRemarkServiceImpl.java

@@ -0,0 +1,53 @@
+package com.zdqz.read.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.zdqz.common.utils.DateUtils;
+import com.zdqz.read.domain.ReadRemark;
+import com.zdqz.read.mapper.ReadRemarkMapper;
+import com.zdqz.read.service.IReadRemarkService;
+
+/**
+ * 解读备注数据Service业务层处理
+ * 
+ * @author 攻心小虫
+ * @date 2025-06-06
+ */
+@Service
+public class ReadRemarkServiceImpl implements IReadRemarkService {
+	@Autowired
+	private ReadRemarkMapper readRemarkMapper;
+
+	public ReadRemark selectReadRemarkById(Long id) {
+		return readRemarkMapper.selectReadRemarkById(id);
+	}
+
+	public List<ReadRemark> selectReadRemarkList(ReadRemark readRemark) {
+		return readRemarkMapper.selectReadRemarkList(readRemark);
+	}
+
+	public int insertReadRemark(ReadRemark readRemark) {
+		readRemark.setCreateTime(DateUtils.getNowDate());
+		return readRemarkMapper.insertReadRemark(readRemark);
+	}
+
+	public int updateReadRemark(ReadRemark readRemark) {
+		readRemark.setUpdateTime(DateUtils.getNowDate());
+		return readRemarkMapper.updateReadRemark(readRemark);
+	}
+
+	public int deleteReadRemarkByIds(Long[] ids) {
+		return readRemarkMapper.deleteReadRemarkByIds(ids);
+	}
+
+	public int deleteReadRemarkById(Long id) {
+		return readRemarkMapper.deleteReadRemarkById(id);
+	}
+
+	public ReadRemark selectReadRemarkByExperiment(Long experimentid) {
+		return readRemarkMapper.selectReadRemarkByExperiment(experimentid);
+	}
+}

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleDeptController.java

@@ -1,104 +0,0 @@
-package com.zdqz.sample.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.sample.domain.SampleDept;
-import com.zdqz.sample.service.ISampleDeptService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 送检科室Controller
- * 
- * @author 攻心小虫
- * @date 2025-06-04
- */
-@RestController
-@RequestMapping("/sample/sampleDept")
-public class SampleDeptController extends BaseController
-{
-    @Autowired
-    private ISampleDeptService sampleDeptService;
-
-    /**
-     * 查询送检科室列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SampleDept sampleDept)
-    {
-        startPage();
-        List<SampleDept> list = sampleDeptService.selectSampleDeptList(sampleDept);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出送检科室列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:export')")
-    @Log(title = "送检科室", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SampleDept sampleDept)
-    {
-        List<SampleDept> list = sampleDeptService.selectSampleDeptList(sampleDept);
-        ExcelUtil<SampleDept> util = new ExcelUtil<SampleDept>(SampleDept.class);
-        util.exportExcel(response, list, "送检科室数据");
-    }
-
-    /**
-     * 获取送检科室详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(sampleDeptService.selectSampleDeptById(id));
-    }
-
-    /**
-     * 新增送检科室
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:add')")
-    @Log(title = "送检科室", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SampleDept sampleDept)
-    {
-        return toAjax(sampleDeptService.insertSampleDept(sampleDept));
-    }
-
-    /**
-     * 修改送检科室
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:edit')")
-    @Log(title = "送检科室", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SampleDept sampleDept)
-    {
-        return toAjax(sampleDeptService.updateSampleDept(sampleDept));
-    }
-
-    /**
-     * 删除送检科室
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleDept:remove')")
-    @Log(title = "送检科室", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(sampleDeptService.deleteSampleDeptByIds(ids));
-    }
-}

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleExperimentController.java

@@ -1,104 +0,0 @@
-package com.zdqz.sample.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.sample.domain.SampleExperiment;
-import com.zdqz.sample.service.ISampleExperimentService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 解读管理Controller
- * 
- * @author ruoyi
- * @date 2025-06-04
- */
-@RestController
-@RequestMapping("/sample/sampleExperiment")
-public class SampleExperimentController extends BaseController
-{
-    @Autowired
-    private ISampleExperimentService sampleExperimentService;
-
-    /**
-     * 查询解读管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SampleExperiment sampleExperiment)
-    {
-        startPage();
-        List<SampleExperiment> list = sampleExperimentService.selectSampleExperimentList(sampleExperiment);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出解读管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:export')")
-    @Log(title = "解读管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SampleExperiment sampleExperiment)
-    {
-        List<SampleExperiment> list = sampleExperimentService.selectSampleExperimentList(sampleExperiment);
-        ExcelUtil<SampleExperiment> util = new ExcelUtil<SampleExperiment>(SampleExperiment.class);
-        util.exportExcel(response, list, "解读管理数据");
-    }
-
-    /**
-     * 获取解读管理详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(sampleExperimentService.selectSampleExperimentById(id));
-    }
-
-    /**
-     * 新增解读管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:add')")
-    @Log(title = "解读管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SampleExperiment sampleExperiment)
-    {
-        return toAjax(sampleExperimentService.insertSampleExperiment(sampleExperiment));
-    }
-
-    /**
-     * 修改解读管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:edit')")
-    @Log(title = "解读管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SampleExperiment sampleExperiment)
-    {
-        return toAjax(sampleExperimentService.updateSampleExperiment(sampleExperiment));
-    }
-
-    /**
-     * 删除解读管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleExperiment:remove')")
-    @Log(title = "解读管理", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(sampleExperimentService.deleteSampleExperimentByIds(ids));
-    }
-}

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleHospitalController.java

@@ -1,104 +0,0 @@
-package com.zdqz.sample.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.sample.domain.SampleHospital;
-import com.zdqz.sample.service.ISampleHospitalService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 送检医院Controller
- * 
- * @author 攻心小虫
- * @date 2025-06-04
- */
-@RestController
-@RequestMapping("/sample/sampleHospital")
-public class SampleHospitalController extends BaseController
-{
-    @Autowired
-    private ISampleHospitalService sampleHospitalService;
-
-    /**
-     * 查询送检医院列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SampleHospital sampleHospital)
-    {
-        startPage();
-        List<SampleHospital> list = sampleHospitalService.selectSampleHospitalList(sampleHospital);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出送检医院列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:export')")
-    @Log(title = "送检医院", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SampleHospital sampleHospital)
-    {
-        List<SampleHospital> list = sampleHospitalService.selectSampleHospitalList(sampleHospital);
-        ExcelUtil<SampleHospital> util = new ExcelUtil<SampleHospital>(SampleHospital.class);
-        util.exportExcel(response, list, "送检医院数据");
-    }
-
-    /**
-     * 获取送检医院详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(sampleHospitalService.selectSampleHospitalById(id));
-    }
-
-    /**
-     * 新增送检医院
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:add')")
-    @Log(title = "送检医院", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SampleHospital sampleHospital)
-    {
-        return toAjax(sampleHospitalService.insertSampleHospital(sampleHospital));
-    }
-
-    /**
-     * 修改送检医院
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:edit')")
-    @Log(title = "送检医院", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SampleHospital sampleHospital)
-    {
-        return toAjax(sampleHospitalService.updateSampleHospital(sampleHospital));
-    }
-
-    /**
-     * 删除送检医院
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleHospital:remove')")
-    @Log(title = "送检医院", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(sampleHospitalService.deleteSampleHospitalByIds(ids));
-    }
-}

+ 73 - 72
healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleInfoController.java

@@ -1,104 +1,105 @@
 package com.zdqz.sample.controller;
 
 import java.util.List;
+
 import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.zdqz.common.annotation.Log;
 import com.zdqz.common.core.controller.BaseController;
 import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.core.page.TableDataInfo;
 import com.zdqz.common.enums.BusinessType;
+import com.zdqz.common.utils.poi.ExcelUtil;
 import com.zdqz.sample.domain.SampleInfo;
 import com.zdqz.sample.service.ISampleInfoService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 
 /**
- * 样管理Controller
+ * 样管理Controller
  * 
  * @author 攻心小虫
- * @date 2025-06-04
+ * @date 2025-06-05
  */
 @RestController
 @RequestMapping("/sample/sampleInfo")
-public class SampleInfoController extends BaseController
-{
-    @Autowired
-    private ISampleInfoService sampleInfoService;
+@Api(value="样本管理",tags="样本管理接口标签")
+public class SampleInfoController extends BaseController {
+	@Autowired
+	private ISampleInfoService sampleInfoService;
 
-    /**
-     * 查询样品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SampleInfo sampleInfo)
-    {
-        startPage();
-        List<SampleInfo> list = sampleInfoService.selectSampleInfoList(sampleInfo);
-        return getDataTable(list);
-    }
+	/**
+	 * 查询样本管理列表
+	 */
+	@GetMapping("/list")
+	@ApiOperation("获取列表,增加了字段输出")
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:list')")
+	public TableDataInfo list(SampleInfo sampleInfo) {
+		startPage();
+		List<SampleInfo> list = sampleInfoService.selectSampleInfoList(sampleInfo);
+		return getDataTable(list);
+	}
 
-    /**
-     * 导出样品管理列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:export')")
-    @Log(title = "样品管理", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SampleInfo sampleInfo)
-    {
-        List<SampleInfo> list = sampleInfoService.selectSampleInfoList(sampleInfo);
-        ExcelUtil<SampleInfo> util = new ExcelUtil<SampleInfo>(SampleInfo.class);
-        util.exportExcel(response, list, "样品管理数据");
-    }
+	/**
+	 * 导出样本管理列表
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:export')")
+	@Log(title = "样本管理", businessType = BusinessType.EXPORT)
+	@PostMapping("/export")
+	public void export(HttpServletResponse response, SampleInfo sampleInfo) {
+		List<SampleInfo> list = sampleInfoService.selectSampleInfoList(sampleInfo);
+		ExcelUtil<SampleInfo> util = new ExcelUtil<SampleInfo>(SampleInfo.class);
+		util.exportExcel(response, list, "样本管理数据");
+	}
 
-    /**
-     * 获取样品管理详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(sampleInfoService.selectSampleInfoById(id));
-    }
+	/**
+	 * 获取样本管理详细信息
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:query')")
+	@GetMapping(value = "/{id}")
+	public AjaxResult getInfo(@PathVariable("id") Long id) {
+		return success(sampleInfoService.selectSampleInfoById(id));
+	}
 
-    /**
-     * 新增样品管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:add')")
-    @Log(title = "样品管理", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SampleInfo sampleInfo)
-    {
-        return toAjax(sampleInfoService.insertSampleInfo(sampleInfo));
-    }
+	/**
+	 * 新增样本管理
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:add')")
+	@Log(title = "样本管理", businessType = BusinessType.INSERT)
+	@PostMapping
+	public AjaxResult add(@RequestBody SampleInfo sampleInfo) {
+		return toAjax(sampleInfoService.insertSampleInfo(sampleInfo));
+	}
 
-    /**
-     * 修改样品管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:edit')")
-    @Log(title = "样品管理", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SampleInfo sampleInfo)
-    {
-        return toAjax(sampleInfoService.updateSampleInfo(sampleInfo));
-    }
+	/**
+	 * 修改样本管理
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:edit')")
+	@Log(title = "样本管理", businessType = BusinessType.UPDATE)
+	@PutMapping
+	public AjaxResult edit(@RequestBody SampleInfo sampleInfo) {
+		return toAjax(sampleInfoService.updateSampleInfo(sampleInfo));
+	}
 
-    /**
-     * 删除样品管理
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleInfo:remove')")
-    @Log(title = "样品管理", businessType = BusinessType.DELETE)
+	/**
+	 * 删除样本管理
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:sampleInfo:remove')")
+	@Log(title = "样本管理", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(sampleInfoService.deleteSampleInfoByIds(ids));
-    }
+	public AjaxResult remove(@PathVariable Long[] ids) {
+		return toAjax(sampleInfoService.deleteSampleInfoByIds(ids));
+	}
 }

+ 67 - 71
healsphere-buss/src/main/java/com/zdqz/sample/controller/SamplePatientController.java

@@ -1,104 +1,100 @@
 package com.zdqz.sample.controller;
 
 import java.util.List;
+
 import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.zdqz.common.annotation.Log;
 import com.zdqz.common.core.controller.BaseController;
 import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.core.page.TableDataInfo;
 import com.zdqz.common.enums.BusinessType;
+import com.zdqz.common.utils.poi.ExcelUtil;
 import com.zdqz.sample.domain.SamplePatient;
 import com.zdqz.sample.service.ISamplePatientService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
 
 /**
- * 样患者信息Controller
+ * 样患者信息Controller
  * 
  * @author 攻心小虫
  * @date 2025-06-04
  */
 @RestController
 @RequestMapping("/sample/samplePatient")
-public class SamplePatientController extends BaseController
-{
-    @Autowired
-    private ISamplePatientService samplePatientService;
+public class SamplePatientController extends BaseController {
+	@Autowired
+	private ISamplePatientService samplePatientService;
 
-    /**
-     * 查询样品患者信息列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SamplePatient samplePatient)
-    {
-        startPage();
-        List<SamplePatient> list = samplePatientService.selectSamplePatientList(samplePatient);
-        return getDataTable(list);
-    }
+	/**
+	 * 查询样本患者信息列表
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:list')")
+	@GetMapping("/list")
+	public TableDataInfo list(SamplePatient samplePatient) {
+		startPage();
+		List<SamplePatient> list = samplePatientService.selectSamplePatientList(samplePatient);
+		return getDataTable(list);
+	}
 
-    /**
-     * 导出样品患者信息列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:export')")
-    @Log(title = "样品患者信息", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SamplePatient samplePatient)
-    {
-        List<SamplePatient> list = samplePatientService.selectSamplePatientList(samplePatient);
-        ExcelUtil<SamplePatient> util = new ExcelUtil<SamplePatient>(SamplePatient.class);
-        util.exportExcel(response, list, "样品患者信息数据");
-    }
+	/**
+	 * 导出样本患者信息列表
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:export')")
+	@Log(title = "样本患者信息", businessType = BusinessType.EXPORT)
+	@PostMapping("/export")
+	public void export(HttpServletResponse response, SamplePatient samplePatient) {
+		List<SamplePatient> list = samplePatientService.selectSamplePatientList(samplePatient);
+		ExcelUtil<SamplePatient> util = new ExcelUtil<SamplePatient>(SamplePatient.class);
+		util.exportExcel(response, list, "样本患者信息数据");
+	}
 
-    /**
-     * 获取样品患者信息详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(samplePatientService.selectSamplePatientById(id));
-    }
+	/**
+	 * 获取样本患者信息详细信息
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:query')")
+	@GetMapping(value = "/{id}")
+	public AjaxResult getInfo(@PathVariable("id") Long id) {
+		return success(samplePatientService.selectSamplePatientById(id));
+	}
 
-    /**
-     * 新增样品患者信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:add')")
-    @Log(title = "样品患者信息", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SamplePatient samplePatient)
-    {
-        return toAjax(samplePatientService.insertSamplePatient(samplePatient));
-    }
+	/**
+	 * 新增样本患者信息
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:add')")
+	@Log(title = "样本患者信息", businessType = BusinessType.INSERT)
+	@PostMapping
+	public AjaxResult add(@RequestBody SamplePatient samplePatient) {
+		return toAjax(samplePatientService.insertSamplePatient(samplePatient));
+	}
 
-    /**
-     * 修改样品患者信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:edit')")
-    @Log(title = "样品患者信息", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SamplePatient samplePatient)
-    {
-        return toAjax(samplePatientService.updateSamplePatient(samplePatient));
-    }
+	/**
+	 * 修改样本患者信息
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:edit')")
+	@Log(title = "样本患者信息", businessType = BusinessType.UPDATE)
+	@PutMapping
+	public AjaxResult edit(@RequestBody SamplePatient samplePatient) {
+		return toAjax(samplePatientService.updateSamplePatient(samplePatient));
+	}
 
-    /**
-     * 删除样品患者信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:samplePatient:remove')")
-    @Log(title = "样品患者信息", businessType = BusinessType.DELETE)
+	/**
+	 * 删除样本患者信息
+	 */
+	@PreAuthorize("@ss.hasPermi('sample:samplePatient:remove')")
+	@Log(title = "样本患者信息", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(samplePatientService.deleteSamplePatientByIds(ids));
-    }
+	public AjaxResult remove(@PathVariable Long[] ids) {
+		return toAjax(samplePatientService.deleteSamplePatientByIds(ids));
+	}
 }

+ 0 - 104
healsphere-buss/src/main/java/com/zdqz/sample/controller/SampleTypeController.java

@@ -1,104 +0,0 @@
-package com.zdqz.sample.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zdqz.common.annotation.Log;
-import com.zdqz.common.core.controller.BaseController;
-import com.zdqz.common.core.domain.AjaxResult;
-import com.zdqz.common.enums.BusinessType;
-import com.zdqz.sample.domain.SampleType;
-import com.zdqz.sample.service.ISampleTypeService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
-
-/**
- * 样本类型Controller
- * 
- * @author 攻心小虫
- * @date 2025-06-04
- */
-@RestController
-@RequestMapping("/sample/sampleType")
-public class SampleTypeController extends BaseController
-{
-    @Autowired
-    private ISampleTypeService sampleTypeService;
-
-    /**
-     * 查询样本类型列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SampleType sampleType)
-    {
-        startPage();
-        List<SampleType> list = sampleTypeService.selectSampleTypeList(sampleType);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出样本类型列表
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:export')")
-    @Log(title = "样本类型", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SampleType sampleType)
-    {
-        List<SampleType> list = sampleTypeService.selectSampleTypeList(sampleType);
-        ExcelUtil<SampleType> util = new ExcelUtil<SampleType>(SampleType.class);
-        util.exportExcel(response, list, "样本类型数据");
-    }
-
-    /**
-     * 获取样本类型详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(sampleTypeService.selectSampleTypeById(id));
-    }
-
-    /**
-     * 新增样本类型
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:add')")
-    @Log(title = "样本类型", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SampleType sampleType)
-    {
-        return toAjax(sampleTypeService.insertSampleType(sampleType));
-    }
-
-    /**
-     * 修改样本类型
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:edit')")
-    @Log(title = "样本类型", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SampleType sampleType)
-    {
-        return toAjax(sampleTypeService.updateSampleType(sampleType));
-    }
-
-    /**
-     * 删除样本类型
-     */
-    @PreAuthorize("@ss.hasPermi('sample:sampleType:remove')")
-    @Log(title = "样本类型", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(sampleTypeService.deleteSampleTypeByIds(ids));
-    }
-}

+ 43 - 60
healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleDept.java

@@ -11,77 +11,60 @@ import com.zdqz.common.core.domain.BaseEntity;
  * @author 攻心小虫
  * @date 2025-06-04
  */
-public class SampleDept extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
+public class SampleDept extends BaseEntity {
+	private static final long serialVersionUID = 1L;
 
-    /** 编号 */
-    private Long id;
+	/** 编号 */
+	private Long id;
 
-    /** 科室 */
-    @Excel(name = "科室")
-    private String name;
+	/** 科室 */
+	@Excel(name = "科室")
+	private String name;
 
-    /** 状态 */
-    @Excel(name = "状态")
-    private Long status;
+	/** 状态 */
+	@Excel(name = "状态")
+	private Long status;
 
-    /** 排序号 */
-    @Excel(name = "排序号")
-    private Long seq;
+	/** 排序号 */
+	@Excel(name = "排序号")
+	private Long seq;
 
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
+	public void setId(Long id) {
+		this.id = id;
+	}
 
-    public Long getId() 
-    {
-        return id;
-    }
+	public Long getId() {
+		return id;
+	}
 
-    public void setName(String name) 
-    {
-        this.name = name;
-    }
+	public void setName(String name) {
+		this.name = name;
+	}
 
-    public String getName() 
-    {
-        return name;
-    }
+	public String getName() {
+		return name;
+	}
 
-    public void setStatus(Long status) 
-    {
-        this.status = status;
-    }
+	public void setStatus(Long status) {
+		this.status = status;
+	}
 
-    public Long getStatus() 
-    {
-        return status;
-    }
+	public Long getStatus() {
+		return status;
+	}
 
-    public void setSeq(Long seq) 
-    {
-        this.seq = seq;
-    }
+	public void setSeq(Long seq) {
+		this.seq = seq;
+	}
 
-    public Long getSeq() 
-    {
-        return seq;
-    }
+	public Long getSeq() {
+		return seq;
+	}
 
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("name", getName())
-            .append("status", getStatus())
-            .append("seq", getSeq())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("name", getName()).append("status", getStatus()).append("seq", getSeq())
+				.append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime())
+				.append("remark", getRemark()).toString();
+	}
 }

+ 109 - 79
healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleExperiment.java

@@ -1,90 +1,120 @@
 package com.zdqz.sample.domain;
 
 import java.util.Date;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.zdqz.common.annotation.Excel;
 import com.zdqz.common.core.domain.BaseEntity;
 
 /**
  * 解读管理对象 sample_experiment
  * 
- * @author ruoyi
- * @date 2025-06-04
+ * @author 攻心小虫
+ * @date 2025-06-05
  */
-public class SampleExperiment extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 实验编号 */
-    private Long id;
-
-    /** 样品编号 */
-    @Excel(name = "样品编号")
-    private Long sampleInfoId;
-
-    /** 状态 */
-    @Excel(name = "状态")
-    private Long status;
-
-    /** 解读&作废时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "解读&作废时间", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date dealTime;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-
-    public void setSampleInfoId(Long sampleInfoId) 
-    {
-        this.sampleInfoId = sampleInfoId;
-    }
-
-    public Long getSampleInfoId() 
-    {
-        return sampleInfoId;
-    }
-
-    public void setStatus(Long status) 
-    {
-        this.status = status;
-    }
-
-    public Long getStatus() 
-    {
-        return status;
-    }
-
-    public void setDealTime(Date dealTime) 
-    {
-        this.dealTime = dealTime;
-    }
-
-    public Date getDealTime() 
-    {
-        return dealTime;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("sampleInfoId", getSampleInfoId())
-            .append("status", getStatus())
-            .append("dealTime", getDealTime())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
+public class SampleExperiment extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	private String experimentCode;
+
+	private Long sampleInfoId;
+	
+	private String sampleCode;
+	
+	private String patientName;
+
+	private Long status;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date dealTime;
+	
+	private Long generatorStatus;
+	
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date generatorTime;
+	
+	private String generatorFile;
+	
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setExperimentCode(String experimentCode) {
+		this.experimentCode = experimentCode;
+	}
+
+	public String getExperimentCode() {
+		return experimentCode;
+	}
+
+	public void setSampleInfoId(Long sampleInfoId) {
+		this.sampleInfoId = sampleInfoId;
+	}
+
+	public Long getSampleInfoId() {
+		return sampleInfoId;
+	}
+	
+	public String getSampleCode() {
+		return sampleCode;
+	}
+
+	public void setSampleCode(String sampleCode) {
+		this.sampleCode = sampleCode;
+	}
+
+	public String getPatientName() {
+		return patientName;
+	}
+
+	public void setPatientName(String patientName) {
+		this.patientName = patientName;
+	}
+
+	public void setStatus(Long status) {
+		this.status = status;
+	}
+
+	public Long getStatus() {
+		return status;
+	}
+
+	public void setDealTime(Date dealTime) {
+		this.dealTime = dealTime;
+	}
+
+	public Date getDealTime() {
+		return dealTime;
+	}
+
+	public Long getGeneratorStatus() {
+		return generatorStatus;
+	}
+
+	public void setGeneratorStatus(Long generatorStatus) {
+		this.generatorStatus = generatorStatus;
+	}
+
+	public Date getGeneratorTime() {
+		return generatorTime;
+	}
+
+	public void setGeneratorTime(Date generatorTime) {
+		this.generatorTime = generatorTime;
+	}
+
+	public String getGeneratorFile() {
+		return generatorFile;
+	}
+
+	public void setGeneratorFile(String generatorFile) {
+		this.generatorFile = generatorFile;
+	}
+
 }

+ 92 - 118
healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleHospital.java

@@ -11,122 +11,96 @@ import com.zdqz.common.core.domain.BaseEntity;
  * @author 攻心小虫
  * @date 2025-06-04
  */
-public class SampleHospital extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 */
-    private Long id;
-
-    /** 医院名称 */
-    @Excel(name = "医院名称")
-    private String name;
-
-    /** 状态 */
-    @Excel(name = "状态")
-    private Long status;
-
-    /** 医院等级 */
-    @Excel(name = "医院等级")
-    private String level;
-
-    /** 中国行政区域编号 */
-    @Excel(name = "中国行政区域编号")
-    private Long cnAreanId;
-
-    /** 中国行政区域组合名称 */
-    @Excel(name = "中国行政区域组合名称")
-    private String cnAreaname;
-
-    /** 排序号 */
-    @Excel(name = "排序号")
-    private Long seq;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-
-    public void setName(String name) 
-    {
-        this.name = name;
-    }
-
-    public String getName() 
-    {
-        return name;
-    }
-
-    public void setStatus(Long status) 
-    {
-        this.status = status;
-    }
-
-    public Long getStatus() 
-    {
-        return status;
-    }
-
-    public void setLevel(String level) 
-    {
-        this.level = level;
-    }
-
-    public String getLevel() 
-    {
-        return level;
-    }
-
-    public void setCnAreanId(Long cnAreanId) 
-    {
-        this.cnAreanId = cnAreanId;
-    }
-
-    public Long getCnAreanId() 
-    {
-        return cnAreanId;
-    }
-
-    public void setCnAreaname(String cnAreaname) 
-    {
-        this.cnAreaname = cnAreaname;
-    }
-
-    public String getCnAreaname() 
-    {
-        return cnAreaname;
-    }
-
-    public void setSeq(Long seq) 
-    {
-        this.seq = seq;
-    }
-
-    public Long getSeq() 
-    {
-        return seq;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("name", getName())
-            .append("status", getStatus())
-            .append("level", getLevel())
-            .append("cnAreanId", getCnAreanId())
-            .append("cnAreaname", getCnAreaname())
-            .append("seq", getSeq())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
+public class SampleHospital extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/** 编号 */
+	private Long id;
+
+	/** 医院名称 */
+	@Excel(name = "医院名称")
+	private String name;
+
+	/** 状态 */
+	@Excel(name = "状态")
+	private Long status;
+
+	/** 医院等级 */
+	@Excel(name = "医院等级")
+	private String level;
+
+	/** 中国行政区域编号 */
+	@Excel(name = "中国行政区域编号")
+	private Long cnAreanId;
+
+	/** 中国行政区域组合名称 */
+	@Excel(name = "中国行政区域组合名称")
+	private String cnAreaname;
+
+	/** 排序号 */
+	@Excel(name = "排序号")
+	private Long seq;
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setStatus(Long status) {
+		this.status = status;
+	}
+
+	public Long getStatus() {
+		return status;
+	}
+
+	public void setLevel(String level) {
+		this.level = level;
+	}
+
+	public String getLevel() {
+		return level;
+	}
+
+	public void setCnAreanId(Long cnAreanId) {
+		this.cnAreanId = cnAreanId;
+	}
+
+	public Long getCnAreanId() {
+		return cnAreanId;
+	}
+
+	public void setCnAreaname(String cnAreaname) {
+		this.cnAreaname = cnAreaname;
+	}
+
+	public String getCnAreaname() {
+		return cnAreaname;
+	}
+
+	public void setSeq(Long seq) {
+		this.seq = seq;
+	}
+
+	public Long getSeq() {
+		return seq;
+	}
+
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("name", getName()).append("status", getStatus()).append("level", getLevel())
+				.append("cnAreanId", getCnAreanId()).append("cnAreaname", getCnAreaname()).append("seq", getSeq()).append("createBy", getCreateBy())
+				.append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+	}
 }

+ 148 - 120
healsphere-buss/src/main/java/com/zdqz/sample/domain/SampleInfo.java

@@ -6,127 +6,155 @@ import com.zdqz.common.annotation.Excel;
 import com.zdqz.common.core.domain.BaseEntity;
 
 /**
- * 样管理对象 sample_info
+ * 样管理对象 sample_info
  * 
  * @author 攻心小虫
- * @date 2025-06-04
+ * @date 2025-06-05
  */
-public class SampleInfo extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 编号 */
-    private Long id;
-
-    /** 患者编号 */
-    @Excel(name = "患者编号")
-    private Long patientId;
-
-    /** 患者电话 */
-    @Excel(name = "患者电话")
-    private String patientPhone;
-
-    /** 样本类型 */
-    @Excel(name = "样本类型")
-    private Long sampleTypeId;
-
-    /** 送检医院编号 */
-    @Excel(name = "送检医院编号")
-    private Long sampleHospitalId;
-
-    /** 送检科室编号 */
-    @Excel(name = "送检科室编号")
-    private Long sampleDeptId;
-
-    /** 医生名字 */
-    @Excel(name = "医生名字")
-    private String doctorName;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-
-    public void setPatientId(Long patientId) 
-    {
-        this.patientId = patientId;
-    }
-
-    public Long getPatientId() 
-    {
-        return patientId;
-    }
-
-    public void setPatientPhone(String patientPhone) 
-    {
-        this.patientPhone = patientPhone;
-    }
-
-    public String getPatientPhone() 
-    {
-        return patientPhone;
-    }
-
-    public void setSampleTypeId(Long sampleTypeId) 
-    {
-        this.sampleTypeId = sampleTypeId;
-    }
-
-    public Long getSampleTypeId() 
-    {
-        return sampleTypeId;
-    }
-
-    public void setSampleHospitalId(Long sampleHospitalId) 
-    {
-        this.sampleHospitalId = sampleHospitalId;
-    }
-
-    public Long getSampleHospitalId() 
-    {
-        return sampleHospitalId;
-    }
-
-    public void setSampleDeptId(Long sampleDeptId) 
-    {
-        this.sampleDeptId = sampleDeptId;
-    }
-
-    public Long getSampleDeptId() 
-    {
-        return sampleDeptId;
-    }
-
-    public void setDoctorName(String doctorName) 
-    {
-        this.doctorName = doctorName;
-    }
-
-    public String getDoctorName() 
-    {
-        return doctorName;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("patientId", getPatientId())
-            .append("patientPhone", getPatientPhone())
-            .append("sampleTypeId", getSampleTypeId())
-            .append("sampleHospitalId", getSampleHospitalId())
-            .append("sampleDeptId", getSampleDeptId())
-            .append("doctorName", getDoctorName())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
-    }
+public class SampleInfo extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/** 编号 */
+	private Long id;
+
+	/** 样本编号 */
+	@Excel(name = "样本编码")
+	private String sampleCode;
+
+	/** 患者编号 */
+	private Long patientId;
+
+	@Excel(name = "患者名称")
+	private String patientName;
+
+	/** 患者电话 */
+	@Excel(name = "患者电话")
+	private String patientPhone;
+
+	/** 样本类型 */
+	private Long sampleTypeId;
+	
+	@Excel(name = "样本类型")
+	private String sampleTypeName;
+
+	/** 送检医院编号 */
+	private Long sampleHospitalId;
+	
+	@Excel(name = "送检医院")
+	private String sampleHospitalName;
+
+	/** 送检科室编号 */
+	private Long sampleDeptId;
+	
+	@Excel(name = "送检科室")
+	private String sampleDeptName;
+
+	/** 医生名字 */
+	@Excel(name = "医生名字")
+	private String doctorName;
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setSampleCode(String sampleCode) {
+		this.sampleCode = sampleCode;
+	}
+
+	public String getSampleCode() {
+		return sampleCode;
+	}
+
+	public void setPatientId(Long patientId) {
+		this.patientId = patientId;
+	}
+
+	public Long getPatientId() {
+		return patientId;
+	}
+	
+	public String getPatientName() {
+		return patientName;
+	}
+
+	public void setPatientName(String patientName) {
+		this.patientName = patientName;
+	}
+
+	public void setPatientPhone(String patientPhone) {
+		this.patientPhone = patientPhone;
+	}
+
+	public String getPatientPhone() {
+		return patientPhone;
+	}
+
+	public void setSampleTypeId(Long sampleTypeId) {
+		this.sampleTypeId = sampleTypeId;
+	}
+
+	public Long getSampleTypeId() {
+		return sampleTypeId;
+	}
+
+	public void setSampleHospitalId(Long sampleHospitalId) {
+		this.sampleHospitalId = sampleHospitalId;
+	}
+
+	public Long getSampleHospitalId() {
+		return sampleHospitalId;
+	}
+
+	public void setSampleDeptId(Long sampleDeptId) {
+		this.sampleDeptId = sampleDeptId;
+	}
+
+	public Long getSampleDeptId() {
+		return sampleDeptId;
+	}
+
+	public void setDoctorName(String doctorName) {
+		this.doctorName = doctorName;
+	}
+
+	public String getDoctorName() {
+		return doctorName;
+	}
+
+	
+	public String getSampleTypeName() {
+		return sampleTypeName;
+	}
+
+	public void setSampleTypeName(String sampleTypeName) {
+		this.sampleTypeName = sampleTypeName;
+	}
+
+	public String getSampleHospitalName() {
+		return sampleHospitalName;
+	}
+
+	public void setSampleHospitalName(String sampleHospitalName) {
+		this.sampleHospitalName = sampleHospitalName;
+	}
+
+	public String getSampleDeptName() {
+		return sampleDeptName;
+	}
+
+	public void setSampleDeptName(String sampleDeptName) {
+		this.sampleDeptName = sampleDeptName;
+	}
+
+	@Override
+	public String toString() {
+		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("sampleCode", getSampleCode()).append("patientId", getPatientId())
+				.append("patientPhone", getPatientPhone()).append("sampleTypeId", getSampleTypeId()).append("sampleHospitalId", getSampleHospitalId())
+				.append("sampleDeptId", getSampleDeptId()).append("doctorName", getDoctorName()).append("createBy", getCreateBy()).append("createTime", getCreateTime())
+				.append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
+	}
 }

+ 1 - 1
healsphere-buss/src/main/java/com/zdqz/sample/domain/SamplePatient.java

@@ -6,7 +6,7 @@ import com.zdqz.common.annotation.Excel;
 import com.zdqz.common.core.domain.BaseEntity;
 
 /**
- * 样患者信息对象 sample_patient
+ * 样患者信息对象 sample_patient
  * 
  * @author 攻心小虫
  * @date 2025-06-04

+ 2 - 2
healsphere-buss/src/main/java/com/zdqz/sample/mapper/SampleExperimentMapper.java

@@ -6,8 +6,8 @@ import com.zdqz.sample.domain.SampleExperiment;
 /**
  * 解读管理Mapper接口
  * 
- * @author ruoyi
- * @date 2025-06-04
+ * @author 攻心小虫
+ * @date 2025-06-05
  */
 public interface SampleExperimentMapper 
 {

+ 18 - 51
healsphere-buss/src/main/java/com/zdqz/sample/mapper/SampleInfoMapper.java

@@ -1,61 +1,28 @@
 package com.zdqz.sample.mapper;
 
 import java.util.List;
+
 import com.zdqz.sample.domain.SampleInfo;
 
 /**
- * 样管理Mapper接口
+ * 样管理Mapper接口
  * 
  * @author 攻心小虫
- * @date 2025-06-04
+ * @date 2025-06-05
  */
-public interface SampleInfoMapper 
-{
-    /**
-     * 查询样品管理
-     * 
-     * @param id 样品管理主键
-     * @return 样品管理
-     */
-    public SampleInfo selectSampleInfoById(Long id);
-
-    /**
-     * 查询样品管理列表
-     * 
-     * @param sampleInfo 样品管理
-     * @return 样品管理集合
-     */
-    public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo);
-
-    /**
-     * 新增样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    public int insertSampleInfo(SampleInfo sampleInfo);
-
-    /**
-     * 修改样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    public int updateSampleInfo(SampleInfo sampleInfo);
-
-    /**
-     * 删除样品管理
-     * 
-     * @param id 样品管理主键
-     * @return 结果
-     */
-    public int deleteSampleInfoById(Long id);
-
-    /**
-     * 批量删除样品管理
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteSampleInfoByIds(Long[] ids);
+public interface SampleInfoMapper {
+	
+	public SampleInfo selectSampleInfoById(Long id);
+
+	public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo);
+
+	public int insertSampleInfo(SampleInfo sampleInfo);
+
+	public int updateSampleInfo(SampleInfo sampleInfo);
+
+	public int deleteSampleInfoById(Long id);
+
+	public int deleteSampleInfoByIds(Long[] ids);
+
+	public SampleInfo selectSampleInfoByExperiment(Long experimentid);
 }

+ 15 - 50
healsphere-buss/src/main/java/com/zdqz/sample/mapper/SamplePatientMapper.java

@@ -4,58 +4,23 @@ import java.util.List;
 import com.zdqz.sample.domain.SamplePatient;
 
 /**
- * 样患者信息Mapper接口
+ * 样患者信息Mapper接口
  * 
  * @author 攻心小虫
  * @date 2025-06-04
  */
-public interface SamplePatientMapper 
-{
-    /**
-     * 查询样品患者信息
-     * 
-     * @param id 样品患者信息主键
-     * @return 样品患者信息
-     */
-    public SamplePatient selectSamplePatientById(Long id);
-
-    /**
-     * 查询样品患者信息列表
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 样品患者信息集合
-     */
-    public List<SamplePatient> selectSamplePatientList(SamplePatient samplePatient);
-
-    /**
-     * 新增样品患者信息
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 结果
-     */
-    public int insertSamplePatient(SamplePatient samplePatient);
-
-    /**
-     * 修改样品患者信息
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 结果
-     */
-    public int updateSamplePatient(SamplePatient samplePatient);
-
-    /**
-     * 删除样品患者信息
-     * 
-     * @param id 样品患者信息主键
-     * @return 结果
-     */
-    public int deleteSamplePatientById(Long id);
-
-    /**
-     * 批量删除样品患者信息
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteSamplePatientByIds(Long[] ids);
+public interface SamplePatientMapper {
+	public SamplePatient selectSamplePatientById(Long id);
+
+	public List<SamplePatient> selectSamplePatientList(SamplePatient samplePatient);
+
+	public int insertSamplePatient(SamplePatient samplePatient);
+
+	public int updateSamplePatient(SamplePatient samplePatient);
+
+	public int deleteSamplePatientById(Long id);
+
+	public int deleteSamplePatientByIds(Long[] ids);
+
+	public SamplePatient selectSamplePatientByExperiment(Long experimentid);
 }

+ 6 - 2
healsphere-buss/src/main/java/com/zdqz/sample/service/ISampleExperimentService.java

@@ -6,8 +6,8 @@ import com.zdqz.sample.domain.SampleExperiment;
 /**
  * 解读管理Service接口
  * 
- * @author ruoyi
- * @date 2025-06-04
+ * @author 攻心小虫
+ * @date 2025-06-05
  */
 public interface ISampleExperimentService 
 {
@@ -58,4 +58,8 @@ public interface ISampleExperimentService
      * @return 结果
      */
     public int deleteSampleExperimentById(Long id);
+
+	public void readData(Long id) throws Exception;
+
+	public void generator(Long id);
 }

+ 17 - 51
healsphere-buss/src/main/java/com/zdqz/sample/service/ISampleInfoService.java

@@ -4,58 +4,24 @@ import java.util.List;
 import com.zdqz.sample.domain.SampleInfo;
 
 /**
- * 样管理Service接口
+ * 样管理Service接口
  * 
  * @author 攻心小虫
- * @date 2025-06-04
+ * @date 2025-06-05
  */
-public interface ISampleInfoService 
-{
-    /**
-     * 查询样品管理
-     * 
-     * @param id 样品管理主键
-     * @return 样品管理
-     */
-    public SampleInfo selectSampleInfoById(Long id);
-
-    /**
-     * 查询样品管理列表
-     * 
-     * @param sampleInfo 样品管理
-     * @return 样品管理集合
-     */
-    public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo);
-
-    /**
-     * 新增样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    public int insertSampleInfo(SampleInfo sampleInfo);
-
-    /**
-     * 修改样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    public int updateSampleInfo(SampleInfo sampleInfo);
-
-    /**
-     * 批量删除样品管理
-     * 
-     * @param ids 需要删除的样品管理主键集合
-     * @return 结果
-     */
-    public int deleteSampleInfoByIds(Long[] ids);
-
-    /**
-     * 删除样品管理信息
-     * 
-     * @param id 样品管理主键
-     * @return 结果
-     */
-    public int deleteSampleInfoById(Long id);
+public interface ISampleInfoService {
+	
+	public SampleInfo selectSampleInfoById(Long id);
+
+	public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo);
+
+	public int insertSampleInfo(SampleInfo sampleInfo);
+
+	public int updateSampleInfo(SampleInfo sampleInfo);
+
+	public int deleteSampleInfoByIds(Long[] ids);
+
+	public int deleteSampleInfoById(Long id);
+
+	public SampleInfo selectSampleInfoByExperiment(Long experimentid);
 }

+ 18 - 15
healsphere-buss/src/main/java/com/zdqz/sample/service/ISamplePatientService.java

@@ -4,7 +4,7 @@ import java.util.List;
 import com.zdqz.sample.domain.SamplePatient;
 
 /**
- * 样患者信息Service接口
+ * 样患者信息Service接口
  * 
  * @author 攻心小虫
  * @date 2025-06-04
@@ -12,50 +12,53 @@ import com.zdqz.sample.domain.SamplePatient;
 public interface ISamplePatientService 
 {
     /**
-     * 查询样患者信息
+     * 查询样患者信息
      * 
-     * @param id 样患者信息主键
-     * @return 样患者信息
+     * @param id 样患者信息主键
+     * @return 样患者信息
      */
     public SamplePatient selectSamplePatientById(Long id);
 
     /**
-     * 查询样患者信息列表
+     * 查询样患者信息列表
      * 
-     * @param samplePatient 样患者信息
-     * @return 样患者信息集合
+     * @param samplePatient 样患者信息
+     * @return 样患者信息集合
      */
     public List<SamplePatient> selectSamplePatientList(SamplePatient samplePatient);
 
     /**
-     * 新增样患者信息
+     * 新增样患者信息
      * 
-     * @param samplePatient 样患者信息
+     * @param samplePatient 样患者信息
      * @return 结果
      */
     public int insertSamplePatient(SamplePatient samplePatient);
 
     /**
-     * 修改样患者信息
+     * 修改样患者信息
      * 
-     * @param samplePatient 样患者信息
+     * @param samplePatient 样患者信息
      * @return 结果
      */
     public int updateSamplePatient(SamplePatient samplePatient);
 
     /**
-     * 批量删除样患者信息
+     * 批量删除样患者信息
      * 
-     * @param ids 需要删除的样患者信息主键集合
+     * @param ids 需要删除的样患者信息主键集合
      * @return 结果
      */
     public int deleteSamplePatientByIds(Long[] ids);
 
     /**
-     * 删除样患者信息信息
+     * 删除样患者信息信息
      * 
-     * @param id 样患者信息主键
+     * @param id 样患者信息主键
      * @return 结果
      */
     public int deleteSamplePatientById(Long id);
+    
+
+	public SamplePatient selectSamplePatientByExperiment(Long experimentid);
 }

+ 87 - 76
healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SampleExperimentServiceImpl.java

@@ -1,96 +1,107 @@
 package com.zdqz.sample.service.impl;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Date;
 import java.util.List;
-import com.zdqz.common.utils.DateUtils;
+
+import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.zdqz.sample.mapper.SampleExperimentMapper;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.zdqz.common.config.ZdqzConfig;
+import com.zdqz.common.utils.DateUtils;
+import com.zdqz.common.utils.poi.ExcelUtil;
+import com.zdqz.common.utils.uuid.UUID;
+import com.zdqz.read.domain.ReadData;
+import com.zdqz.read.service.IReadDataService;
 import com.zdqz.sample.domain.SampleExperiment;
+import com.zdqz.sample.mapper.SampleExperimentMapper;
 import com.zdqz.sample.service.ISampleExperimentService;
 
 /**
  * 解读管理Service业务层处理
  * 
- * @author ruoyi
- * @date 2025-06-04
+ * @author 攻心小虫
+ * @date 2025-06-05
  */
 @Service
-public class SampleExperimentServiceImpl implements ISampleExperimentService 
-{
-    @Autowired
-    private SampleExperimentMapper sampleExperimentMapper;
+public class SampleExperimentServiceImpl implements ISampleExperimentService {
+	@Autowired
+	private SampleExperimentMapper sampleExperimentMapper;
+
+	@Autowired
+	private IReadDataService readDataService;
+
+	public SampleExperiment selectSampleExperimentById(Long id) {
+		return sampleExperimentMapper.selectSampleExperimentById(id);
+	}
+
+	public List<SampleExperiment> selectSampleExperimentList(SampleExperiment sampleExperiment) {
+		return sampleExperimentMapper.selectSampleExperimentList(sampleExperiment);
+	}
 
-    /**
-     * 查询解读管理
-     * 
-     * @param id 解读管理主键
-     * @return 解读管理
-     */
-    @Override
-    public SampleExperiment selectSampleExperimentById(Long id)
-    {
-        return sampleExperimentMapper.selectSampleExperimentById(id);
-    }
+	public int insertSampleExperiment(SampleExperiment sampleExperiment) {
+		sampleExperiment.setCreateTime(DateUtils.getNowDate());
+		return sampleExperimentMapper.insertSampleExperiment(sampleExperiment);
+	}
 
-    /**
-     * 查询解读管理列表
-     * 
-     * @param sampleExperiment 解读管理
-     * @return 解读管理
-     */
-    @Override
-    public List<SampleExperiment> selectSampleExperimentList(SampleExperiment sampleExperiment)
-    {
-        return sampleExperimentMapper.selectSampleExperimentList(sampleExperiment);
-    }
+	public int updateSampleExperiment(SampleExperiment sampleExperiment) {
+		sampleExperiment.setUpdateTime(DateUtils.getNowDate());
+		return sampleExperimentMapper.updateSampleExperiment(sampleExperiment);
+	}
 
-    /**
-     * 新增解读管理
-     * 
-     * @param sampleExperiment 解读管理
-     * @return 结果
-     */
-    @Override
-    public int insertSampleExperiment(SampleExperiment sampleExperiment)
-    {
-        sampleExperiment.setCreateTime(DateUtils.getNowDate());
-        return sampleExperimentMapper.insertSampleExperiment(sampleExperiment);
-    }
+	public int deleteSampleExperimentByIds(Long[] ids) {
+		return sampleExperimentMapper.deleteSampleExperimentByIds(ids);
+	}
 
-    /**
-     * 修改解读管理
-     * 
-     * @param sampleExperiment 解读管理
-     * @return 结果
-     */
-    @Override
-    public int updateSampleExperiment(SampleExperiment sampleExperiment)
-    {
-        sampleExperiment.setUpdateTime(DateUtils.getNowDate());
-        return sampleExperimentMapper.updateSampleExperiment(sampleExperiment);
-    }
+	public int deleteSampleExperimentById(Long id) {
+		return sampleExperimentMapper.deleteSampleExperimentById(id);
+	}
 
-    /**
-     * 批量删除解读管理
-     * 
-     * @param ids 需要删除的解读管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSampleExperimentByIds(Long[] ids)
-    {
-        return sampleExperimentMapper.deleteSampleExperimentByIds(ids);
-    }
+	@Transactional(rollbackFor = Exception.class)
+	public void readData(Long id) throws Exception {
+		SampleExperiment se = selectSampleExperimentById(id);
+		if(se == null) {
+			throw new NullPointerException("实验数据不存在");
+		}
+		se.setStatus(2L);
+		se.setDealTime(new Date());
+		se.setGeneratorStatus(1L);
+		sampleExperimentMapper.updateSampleExperiment(se);
+		
+		File f = new File(ZdqzConfig.getReadFilePath());
+		if(!f.exists()) {	//文件夹不存在,默认创建
+			f.mkdirs();
+		}
+		for (File ff : f.listFiles()) {
+			if(ff.isFile() && ff.getName().indexOf(se.getExperimentCode()+"_") != -1) {	//说明是文件并且含有实验编号
+				//文件复制到备份地方
+				FileUtils.copyFileToDirectory(ff, new File(ZdqzConfig.getBakPath()));
+				//文件解析
+				FileInputStream fis = new FileInputStream(ff);
+				readDataService.importData(se.getId(),new ExcelUtil<ReadData>(ReadData.class).importExcel(fis));
+				fis.close();
+				// 文件删除
+				ff.deleteOnExit();
+				break;
+			}
+		}
+	}
 
-    /**
-     * 删除解读管理信息
-     * 
-     * @param id 解读管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSampleExperimentById(Long id)
-    {
-        return sampleExperimentMapper.deleteSampleExperimentById(id);
-    }
+	@Override
+	public void generator(Long id) {
+		SampleExperiment se = selectSampleExperimentById(id);
+		if(se == null) {
+			throw new NullPointerException("实验数据不存在");
+		}
+		se.setGeneratorStatus(2L);
+		se.setGeneratorTime(new Date());
+		String fileName = UUID.randomUUID().toString().replace("-","");
+		se.setGeneratorFile(fileName+".pdf");
+		sampleExperimentMapper.updateSampleExperiment(se);
+		
+		//生成文档
+	}
 }

+ 35 - 80
healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SampleInfoServiceImpl.java

@@ -9,88 +9,43 @@ import com.zdqz.sample.domain.SampleInfo;
 import com.zdqz.sample.service.ISampleInfoService;
 
 /**
- * 样管理Service业务层处理
+ * 样管理Service业务层处理
  * 
  * @author 攻心小虫
- * @date 2025-06-04
+ * @date 2025-06-05
  */
 @Service
-public class SampleInfoServiceImpl implements ISampleInfoService 
-{
-    @Autowired
-    private SampleInfoMapper sampleInfoMapper;
-
-    /**
-     * 查询样品管理
-     * 
-     * @param id 样品管理主键
-     * @return 样品管理
-     */
-    @Override
-    public SampleInfo selectSampleInfoById(Long id)
-    {
-        return sampleInfoMapper.selectSampleInfoById(id);
-    }
-
-    /**
-     * 查询样品管理列表
-     * 
-     * @param sampleInfo 样品管理
-     * @return 样品管理
-     */
-    @Override
-    public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo)
-    {
-        return sampleInfoMapper.selectSampleInfoList(sampleInfo);
-    }
-
-    /**
-     * 新增样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    @Override
-    public int insertSampleInfo(SampleInfo sampleInfo)
-    {
-        sampleInfo.setCreateTime(DateUtils.getNowDate());
-        return sampleInfoMapper.insertSampleInfo(sampleInfo);
-    }
-
-    /**
-     * 修改样品管理
-     * 
-     * @param sampleInfo 样品管理
-     * @return 结果
-     */
-    @Override
-    public int updateSampleInfo(SampleInfo sampleInfo)
-    {
-        sampleInfo.setUpdateTime(DateUtils.getNowDate());
-        return sampleInfoMapper.updateSampleInfo(sampleInfo);
-    }
-
-    /**
-     * 批量删除样品管理
-     * 
-     * @param ids 需要删除的样品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSampleInfoByIds(Long[] ids)
-    {
-        return sampleInfoMapper.deleteSampleInfoByIds(ids);
-    }
-
-    /**
-     * 删除样品管理信息
-     * 
-     * @param id 样品管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSampleInfoById(Long id)
-    {
-        return sampleInfoMapper.deleteSampleInfoById(id);
-    }
+public class SampleInfoServiceImpl implements ISampleInfoService {
+	@Autowired
+	private SampleInfoMapper sampleInfoMapper;
+
+	public SampleInfo selectSampleInfoById(Long id) {
+		return sampleInfoMapper.selectSampleInfoById(id);
+	}
+
+	public List<SampleInfo> selectSampleInfoList(SampleInfo sampleInfo) {
+		return sampleInfoMapper.selectSampleInfoList(sampleInfo);
+	}
+
+	public int insertSampleInfo(SampleInfo sampleInfo) {
+		sampleInfo.setCreateTime(DateUtils.getNowDate());
+		return sampleInfoMapper.insertSampleInfo(sampleInfo);
+	}
+
+	public int updateSampleInfo(SampleInfo sampleInfo) {
+		sampleInfo.setUpdateTime(DateUtils.getNowDate());
+		return sampleInfoMapper.updateSampleInfo(sampleInfo);
+	}
+
+	public int deleteSampleInfoByIds(Long[] ids) {
+		return sampleInfoMapper.deleteSampleInfoByIds(ids);
+	}
+
+	public int deleteSampleInfoById(Long id) {
+		return sampleInfoMapper.deleteSampleInfoById(id);
+	}
+
+	public SampleInfo selectSampleInfoByExperiment(Long experimentid) {
+		return sampleInfoMapper.selectSampleInfoByExperiment(experimentid);
+	}
 }

+ 71 - 73
healsphere-buss/src/main/java/com/zdqz/sample/service/impl/SamplePatientServiceImpl.java

@@ -9,88 +9,86 @@ import com.zdqz.sample.domain.SamplePatient;
 import com.zdqz.sample.service.ISamplePatientService;
 
 /**
- * 样患者信息Service业务层处理
+ * 样患者信息Service业务层处理
  * 
  * @author 攻心小虫
  * @date 2025-06-04
  */
 @Service
-public class SamplePatientServiceImpl implements ISamplePatientService 
-{
-    @Autowired
-    private SamplePatientMapper samplePatientMapper;
+public class SamplePatientServiceImpl implements ISamplePatientService {
+	@Autowired
+	private SamplePatientMapper samplePatientMapper;
 
-    /**
-     * 查询样品患者信息
-     * 
-     * @param id 样品患者信息主键
-     * @return 样品患者信息
-     */
-    @Override
-    public SamplePatient selectSamplePatientById(Long id)
-    {
-        return samplePatientMapper.selectSamplePatientById(id);
-    }
+	/**
+	 * 查询样本患者信息
+	 * 
+	 * @param id 样本患者信息主键
+	 * @return 样本患者信息
+	 */
+	@Override
+	public SamplePatient selectSamplePatientById(Long id) {
+		return samplePatientMapper.selectSamplePatientById(id);
+	}
 
-    /**
-     * 查询样品患者信息列表
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 样品患者信息
-     */
-    @Override
-    public List<SamplePatient> selectSamplePatientList(SamplePatient samplePatient)
-    {
-        return samplePatientMapper.selectSamplePatientList(samplePatient);
-    }
+	/**
+	 * 查询样本患者信息列表
+	 * 
+	 * @param samplePatient 样本患者信息
+	 * @return 样本患者信息
+	 */
+	@Override
+	public List<SamplePatient> selectSamplePatientList(SamplePatient samplePatient) {
+		return samplePatientMapper.selectSamplePatientList(samplePatient);
+	}
 
-    /**
-     * 新增样品患者信息
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 结果
-     */
-    @Override
-    public int insertSamplePatient(SamplePatient samplePatient)
-    {
-        samplePatient.setCreateTime(DateUtils.getNowDate());
-        return samplePatientMapper.insertSamplePatient(samplePatient);
-    }
+	/**
+	 * 新增样本患者信息
+	 * 
+	 * @param samplePatient 样本患者信息
+	 * @return 结果
+	 */
+	@Override
+	public int insertSamplePatient(SamplePatient samplePatient) {
+		samplePatient.setCreateTime(DateUtils.getNowDate());
+		return samplePatientMapper.insertSamplePatient(samplePatient);
+	}
 
-    /**
-     * 修改样品患者信息
-     * 
-     * @param samplePatient 样品患者信息
-     * @return 结果
-     */
-    @Override
-    public int updateSamplePatient(SamplePatient samplePatient)
-    {
-        samplePatient.setUpdateTime(DateUtils.getNowDate());
-        return samplePatientMapper.updateSamplePatient(samplePatient);
-    }
+	/**
+	 * 修改样本患者信息
+	 * 
+	 * @param samplePatient 样本患者信息
+	 * @return 结果
+	 */
+	@Override
+	public int updateSamplePatient(SamplePatient samplePatient) {
+		samplePatient.setUpdateTime(DateUtils.getNowDate());
+		return samplePatientMapper.updateSamplePatient(samplePatient);
+	}
 
-    /**
-     * 批量删除样品患者信息
-     * 
-     * @param ids 需要删除的样品患者信息主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSamplePatientByIds(Long[] ids)
-    {
-        return samplePatientMapper.deleteSamplePatientByIds(ids);
-    }
+	/**
+	 * 批量删除样本患者信息
+	 * 
+	 * @param ids 需要删除的样本患者信息主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSamplePatientByIds(Long[] ids) {
+		return samplePatientMapper.deleteSamplePatientByIds(ids);
+	}
 
-    /**
-     * 删除样品患者信息信息
-     * 
-     * @param id 样品患者信息主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSamplePatientById(Long id)
-    {
-        return samplePatientMapper.deleteSamplePatientById(id);
-    }
+	/**
+	 * 删除样本患者信息信息
+	 * 
+	 * @param id 样本患者信息主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSamplePatientById(Long id) {
+		return samplePatientMapper.deleteSamplePatientById(id);
+	}
+
+	@Override
+	public SamplePatient selectSamplePatientByExperiment(Long experimentid) {
+		return samplePatientMapper.selectSamplePatientByExperiment(experimentid);
+	}
 }

+ 84 - 0
healsphere-buss/src/main/java/com/zdqz/sample/tool/PdfTools.java

@@ -0,0 +1,84 @@
+package com.zdqz.sample.tool;
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+
+import com.itextpdf.html2pdf.ConverterProperties;
+import com.itextpdf.html2pdf.HtmlConverter;
+import com.itextpdf.kernel.pdf.PdfDocument;
+import com.itextpdf.kernel.pdf.PdfWriter;
+
+import freemarker.cache.ClassTemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+
+public class PdfTools {
+
+	
+	private static final String templatesPath = "/templates/";
+    private static final String fontsPath = "/fonts/simhei.ttf";
+    private static final String templatesName = "template.html";
+
+    
+    
+    public static void main(String[] args) throws FileNotFoundException, IOException, Exception {
+		IOUtils.write(generatePDF(new HashMap<String, Object>()), new FileOutputStream("D:/abc.pdf"));
+	}
+    
+    
+    /**
+     * 使用Freemarker引擎加载HTML模板文件并填充变量值,并将HTML字符串转换为PDF文件
+     *
+     * @param data             模板要填充的数据
+     * @throws Exception
+     */
+    public static byte[] generatePDF(Map<String, Object> data) throws Exception {
+        Configuration config = new Configuration(Configuration.getVersion());
+        // 设置Freemarker引擎的模板路径
+        config.setTemplateLoader(new ClassTemplateLoader(PdfTools.class, templatesPath));
+        config.setDefaultEncoding("UTF-8");
+        Template template = config.getTemplate(templatesName);
+        StringWriter out = new StringWriter();
+        template.process(data, out);
+        out.flush();
+        // 使用Freemarker引擎加载HTML模板文件并填充变量值
+        String htmlContent = out.toString();
+        byte[] bytes = convertHtmlToPdf(htmlContent);
+        return bytes;
+    }
+
+    /**
+     * 使用iText 7将HTML字符串转换为PDF文件,并返回PDF文件的二进制数据
+     *
+     * @param htmlString    待转换的HTML字符串
+     * @return              返回生成的PDF文件内容
+     * @throws IOException
+     */
+    private static byte[] convertHtmlToPdf(String htmlString) throws IOException {
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        PdfWriter writer = new PdfWriter(outputStream);
+        PdfDocument pdf = new PdfDocument(writer);
+//        Document document = new Document(pdf, PageSize.A4);
+//        // 设置左、右、上、下四个边距的值,以点(pt)为单位
+//        document.setMargins(2, 4, 2, 2);
+        // 设置中文字体
+//        FontSet fontSet = new FontSet();
+//        fontSet.addFont(fontsPath);
+//        FontProvider fontProvider = new FontProvider(fontSet);
+        ConverterProperties converterProps = new ConverterProperties();
+//        converterProps.setFontProvider(fontProvider);
+        // 调用HtmlConverter类的convertToPdf函数,将HTML字符串转换为PDF文件
+        HtmlConverter.convertToPdf(htmlString, pdf,converterProps);
+        pdf.close();
+        // 将PDF文件转换为字节数组并返回
+        return outputStream.toByteArray();
+    }
+}

+ 79 - 70
healsphere-buss/src/main/java/com/zdqz/system/controller/SysAreaController.java

@@ -1,25 +1,32 @@
 package com.zdqz.system.controller;
 
 import java.util.List;
+
 import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.zdqz.common.annotation.Log;
 import com.zdqz.common.core.controller.BaseController;
 import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.core.page.TableDataInfo;
 import com.zdqz.common.enums.BusinessType;
+import com.zdqz.common.utils.poi.ExcelUtil;
 import com.zdqz.system.domain.SysArea;
 import com.zdqz.system.service.ISysAreaService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 
 /**
  * 全球地区库Controller
@@ -29,76 +36,78 @@ import com.zdqz.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/system/area")
-public class SysAreaController extends BaseController
-{
-    @Autowired
-    private ISysAreaService sysAreaService;
+@Api(value="国际区域接口",tags="国际区域接口标签")
+public class SysAreaController extends BaseController {
+	@Autowired
+	private ISysAreaService sysAreaService;
 
-    /**
-     * 查询全球地区库列表
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SysArea sysArea)
-    {
-        startPage();
-        List<SysArea> list = sysAreaService.selectSysAreaList(sysArea);
-        return getDataTable(list);
-    }
+	/**
+	 * 查询全球地区库列表
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:list')")
+	@GetMapping("/list")
+	public TableDataInfo list(SysArea sysArea) {
+		startPage();
+		List<SysArea> list = sysAreaService.selectSysAreaList(sysArea);
+		return getDataTable(list);
+	}
 
-    /**
-     * 导出全球地区库列表
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:export')")
-    @Log(title = "全球地区库", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SysArea sysArea)
-    {
-        List<SysArea> list = sysAreaService.selectSysAreaList(sysArea);
-        ExcelUtil<SysArea> util = new ExcelUtil<SysArea>(SysArea.class);
-        util.exportExcel(response, list, "全球地区库数据");
-    }
+	/**
+	 * 导出全球地区库列表
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:export')")
+	@Log(title = "全球地区库", businessType = BusinessType.EXPORT)
+	@PostMapping("/export")
+	public void export(HttpServletResponse response, SysArea sysArea) {
+		List<SysArea> list = sysAreaService.selectSysAreaList(sysArea);
+		ExcelUtil<SysArea> util = new ExcelUtil<SysArea>(SysArea.class);
+		util.exportExcel(response, list, "全球地区库数据");
+	}
 
-    /**
-     * 获取全球地区库详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:query')")
-    @GetMapping(value = "/{areaId}")
-    public AjaxResult getInfo(@PathVariable("areaId") String areaId)
-    {
-        return success(sysAreaService.selectSysAreaByAreaId(areaId));
-    }
+	/**
+	 * 获取全球地区库详细信息
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:query')")
+	@GetMapping(value = "/{areaId}")
+	public AjaxResult getInfo(@PathVariable("areaId") String areaId) {
+		return success(sysAreaService.selectSysAreaByAreaId(areaId));
+	}
 
-    /**
-     * 新增全球地区库
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:add')")
-    @Log(title = "全球地区库", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SysArea sysArea)
-    {
-        return toAjax(sysAreaService.insertSysArea(sysArea));
-    }
+	/**
+	 * 新增全球地区库
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:add')")
+	@Log(title = "全球地区库", businessType = BusinessType.INSERT)
+	@PostMapping
+	public AjaxResult add(@RequestBody SysArea sysArea) {
+		return toAjax(sysAreaService.insertSysArea(sysArea));
+	}
 
-    /**
-     * 修改全球地区库
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:edit')")
-    @Log(title = "全球地区库", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SysArea sysArea)
-    {
-        return toAjax(sysAreaService.updateSysArea(sysArea));
-    }
+	/**
+	 * 修改全球地区库
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:edit')")
+	@Log(title = "全球地区库", businessType = BusinessType.UPDATE)
+	@PutMapping
+	public AjaxResult edit(@RequestBody SysArea sysArea) {
+		return toAjax(sysAreaService.updateSysArea(sysArea));
+	}
 
-    /**
-     * 删除全球地区库
-     */
-    @PreAuthorize("@ss.hasPermi('system:area:remove')")
-    @Log(title = "全球地区库", businessType = BusinessType.DELETE)
+	/**
+	 * 删除全球地区库
+	 */
+	@PreAuthorize("@ss.hasPermi('system:area:remove')")
+	@Log(title = "全球地区库", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{areaIds}")
-    public AjaxResult remove(@PathVariable String[] areaIds)
-    {
-        return toAjax(sysAreaService.deleteSysAreaByAreaIds(areaIds));
-    }
+	public AjaxResult remove(@PathVariable String[] areaIds) {
+		return toAjax(sysAreaService.deleteSysAreaByAreaIds(areaIds));
+	}
+	
+	
+	@ApiOperation("根据父节点编码获取区域列表")
+	@GetMapping("/getAreaByParentId/{parentId}")
+	@ApiImplicitParam(name = "parentId", value = "父节点编码", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+	public AjaxResult getAreaByParentCode(@PathVariable Integer parentId) {
+		return success(sysAreaService.getAreaByParentId(parentId));
+	}
 }

+ 85 - 70
healsphere-buss/src/main/java/com/zdqz/system/controller/SysCnareaController.java

@@ -1,25 +1,32 @@
 package com.zdqz.system.controller;
 
 import java.util.List;
+
 import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
 import com.zdqz.common.annotation.Log;
 import com.zdqz.common.core.controller.BaseController;
 import com.zdqz.common.core.domain.AjaxResult;
+import com.zdqz.common.core.page.TableDataInfo;
 import com.zdqz.common.enums.BusinessType;
+import com.zdqz.common.utils.poi.ExcelUtil;
 import com.zdqz.system.domain.SysCnarea;
 import com.zdqz.system.service.ISysCnareaService;
-import com.zdqz.common.utils.poi.ExcelUtil;
-import com.zdqz.common.core.page.TableDataInfo;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 
 /**
  * 中国行政区域Controller
@@ -29,76 +36,84 @@ import com.zdqz.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/system/cnarea")
-public class SysCnareaController extends BaseController
-{
-    @Autowired
-    private ISysCnareaService sysCnareaService;
+@Api(value="中国区域接口",tags="中国区域接口标签")
+public class SysCnareaController extends BaseController {
+	@Autowired
+	private ISysCnareaService sysCnareaService;
 
-    /**
-     * 查询中国行政区域列表
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SysCnarea sysCnarea)
-    {
-        startPage();
-        List<SysCnarea> list = sysCnareaService.selectSysCnareaList(sysCnarea);
-        return getDataTable(list);
-    }
+	/**
+	 * 查询中国行政区域列表
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:list')")
+	@GetMapping("/list")
+	public TableDataInfo list(SysCnarea sysCnarea) {
+		startPage();
+		List<SysCnarea> list = sysCnareaService.selectSysCnareaList(sysCnarea);
+		return getDataTable(list);
+	}
 
-    /**
-     * 导出中国行政区域列表
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:export')")
-    @Log(title = "中国行政区域", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SysCnarea sysCnarea)
-    {
-        List<SysCnarea> list = sysCnareaService.selectSysCnareaList(sysCnarea);
-        ExcelUtil<SysCnarea> util = new ExcelUtil<SysCnarea>(SysCnarea.class);
-        util.exportExcel(response, list, "中国行政区域数据");
-    }
+	/**
+	 * 导出中国行政区域列表
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:export')")
+	@Log(title = "中国行政区域", businessType = BusinessType.EXPORT)
+	@PostMapping("/export")
+	public void export(HttpServletResponse response, SysCnarea sysCnarea) {
+		List<SysCnarea> list = sysCnareaService.selectSysCnareaList(sysCnarea);
+		ExcelUtil<SysCnarea> util = new ExcelUtil<SysCnarea>(SysCnarea.class);
+		util.exportExcel(response, list, "中国行政区域数据");
+	}
 
-    /**
-     * 获取中国行政区域详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") String id)
-    {
-        return success(sysCnareaService.selectSysCnareaById(id));
-    }
+	/**
+	 * 获取中国行政区域详细信息
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:query')")
+	@GetMapping(value = "/{id}")
+	public AjaxResult getInfo(@PathVariable("id") String id) {
+		return success(sysCnareaService.selectSysCnareaById(id));
+	}
 
-    /**
-     * 新增中国行政区域
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:add')")
-    @Log(title = "中国行政区域", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SysCnarea sysCnarea)
-    {
-        return toAjax(sysCnareaService.insertSysCnarea(sysCnarea));
-    }
+	/**
+	 * 新增中国行政区域
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:add')")
+	@Log(title = "中国行政区域", businessType = BusinessType.INSERT)
+	@PostMapping
+	public AjaxResult add(@RequestBody SysCnarea sysCnarea) {
+		return toAjax(sysCnareaService.insertSysCnarea(sysCnarea));
+	}
 
-    /**
-     * 修改中国行政区域
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:edit')")
-    @Log(title = "中国行政区域", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SysCnarea sysCnarea)
-    {
-        return toAjax(sysCnareaService.updateSysCnarea(sysCnarea));
-    }
+	/**
+	 * 修改中国行政区域
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:edit')")
+	@Log(title = "中国行政区域", businessType = BusinessType.UPDATE)
+	@PutMapping
+	public AjaxResult edit(@RequestBody SysCnarea sysCnarea) {
+		return toAjax(sysCnareaService.updateSysCnarea(sysCnarea));
+	}
 
-    /**
-     * 删除中国行政区域
-     */
-    @PreAuthorize("@ss.hasPermi('system:cnarea:remove')")
-    @Log(title = "中国行政区域", businessType = BusinessType.DELETE)
+	/**
+	 * 删除中国行政区域
+	 */
+	@PreAuthorize("@ss.hasPermi('system:cnarea:remove')")
+	@Log(title = "中国行政区域", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable String[] ids)
-    {
-        return toAjax(sysCnareaService.deleteSysCnareaByIds(ids));
-    }
+	public AjaxResult remove(@PathVariable String[] ids) {
+		return toAjax(sysCnareaService.deleteSysCnareaByIds(ids));
+	}
+	
+	
+	/**
+	 * 查询中国行政区域列表
+	 */
+	@ApiOperation("根据父节点编码获取区域列表")
+	@GetMapping("/getAreaByParentId/{parentCode}")
+	@ApiImplicitParam(name = "parentCode", value = "父节点编码", required = true, dataType = "string", paramType = "path", dataTypeClass = String.class)
+	public AjaxResult getAreaByParentCode(@PathVariable String parentCode) {
+		return success(sysCnareaService.getAreaByParentId(parentCode));
+	}
+	
+	
+	
 }

+ 50 - 49
healsphere-buss/src/main/java/com/zdqz/system/service/ISysAreaService.java

@@ -9,53 +9,54 @@ import com.zdqz.system.domain.SysArea;
  * @author 攻心小虫
  * @date 2025-06-04
  */
-public interface ISysAreaService 
-{
-    /**
-     * 查询全球地区库
-     * 
-     * @param areaId 全球地区库主键
-     * @return 全球地区库
-     */
-    public SysArea selectSysAreaByAreaId(String areaId);
-
-    /**
-     * 查询全球地区库列表
-     * 
-     * @param sysArea 全球地区库
-     * @return 全球地区库集合
-     */
-    public List<SysArea> selectSysAreaList(SysArea sysArea);
-
-    /**
-     * 新增全球地区库
-     * 
-     * @param sysArea 全球地区库
-     * @return 结果
-     */
-    public int insertSysArea(SysArea sysArea);
-
-    /**
-     * 修改全球地区库
-     * 
-     * @param sysArea 全球地区库
-     * @return 结果
-     */
-    public int updateSysArea(SysArea sysArea);
-
-    /**
-     * 批量删除全球地区库
-     * 
-     * @param areaIds 需要删除的全球地区库主键集合
-     * @return 结果
-     */
-    public int deleteSysAreaByAreaIds(String[] areaIds);
-
-    /**
-     * 删除全球地区库信息
-     * 
-     * @param areaId 全球地区库主键
-     * @return 结果
-     */
-    public int deleteSysAreaByAreaId(String areaId);
+public interface ISysAreaService {
+	/**
+	 * 查询全球地区库
+	 * 
+	 * @param areaId 全球地区库主键
+	 * @return 全球地区库
+	 */
+	public SysArea selectSysAreaByAreaId(String areaId);
+
+	/**
+	 * 查询全球地区库列表
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 全球地区库集合
+	 */
+	public List<SysArea> selectSysAreaList(SysArea sysArea);
+
+	/**
+	 * 新增全球地区库
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 结果
+	 */
+	public int insertSysArea(SysArea sysArea);
+
+	/**
+	 * 修改全球地区库
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 结果
+	 */
+	public int updateSysArea(SysArea sysArea);
+
+	/**
+	 * 批量删除全球地区库
+	 * 
+	 * @param areaIds 需要删除的全球地区库主键集合
+	 * @return 结果
+	 */
+	public int deleteSysAreaByAreaIds(String[] areaIds);
+
+	/**
+	 * 删除全球地区库信息
+	 * 
+	 * @param areaId 全球地区库主键
+	 * @return 结果
+	 */
+	public int deleteSysAreaByAreaId(String areaId);
+
+	public List<SysArea> getAreaByParentId(Integer parentId);
 }

+ 3 - 0
healsphere-buss/src/main/java/com/zdqz/system/service/ISysCnareaService.java

@@ -58,4 +58,7 @@ public interface ISysCnareaService
      * @return 结果
      */
     public int deleteSysCnareaById(String id);
+    
+
+	public List<SysCnarea> getAreaByParentId(String parentId);
 }

+ 70 - 70
healsphere-buss/src/main/java/com/zdqz/system/service/impl/SysAreaServiceImpl.java

@@ -14,80 +14,80 @@ import com.zdqz.system.service.ISysAreaService;
  * @date 2025-06-04
  */
 @Service
-public class SysAreaServiceImpl implements ISysAreaService 
-{
-    @Autowired
-    private SysAreaMapper sysAreaMapper;
+public class SysAreaServiceImpl implements ISysAreaService {
+	@Autowired
+	private SysAreaMapper sysAreaMapper;
 
-    /**
-     * 查询全球地区库
-     * 
-     * @param areaId 全球地区库主键
-     * @return 全球地区库
-     */
-    @Override
-    public SysArea selectSysAreaByAreaId(String areaId)
-    {
-        return sysAreaMapper.selectSysAreaByAreaId(areaId);
-    }
+	/**
+	 * 查询全球地区库
+	 * 
+	 * @param areaId 全球地区库主键
+	 * @return 全球地区库
+	 */
+	@Override
+	public SysArea selectSysAreaByAreaId(String areaId) {
+		return sysAreaMapper.selectSysAreaByAreaId(areaId);
+	}
 
-    /**
-     * 查询全球地区库列表
-     * 
-     * @param sysArea 全球地区库
-     * @return 全球地区库
-     */
-    @Override
-    public List<SysArea> selectSysAreaList(SysArea sysArea)
-    {
-        return sysAreaMapper.selectSysAreaList(sysArea);
-    }
+	/**
+	 * 查询全球地区库列表
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 全球地区库
+	 */
+	@Override
+	public List<SysArea> selectSysAreaList(SysArea sysArea) {
+		return sysAreaMapper.selectSysAreaList(sysArea);
+	}
 
-    /**
-     * 新增全球地区库
-     * 
-     * @param sysArea 全球地区库
-     * @return 结果
-     */
-    @Override
-    public int insertSysArea(SysArea sysArea)
-    {
-        return sysAreaMapper.insertSysArea(sysArea);
-    }
+	/**
+	 * 新增全球地区库
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 结果
+	 */
+	@Override
+	public int insertSysArea(SysArea sysArea) {
+		return sysAreaMapper.insertSysArea(sysArea);
+	}
 
-    /**
-     * 修改全球地区库
-     * 
-     * @param sysArea 全球地区库
-     * @return 结果
-     */
-    @Override
-    public int updateSysArea(SysArea sysArea)
-    {
-        return sysAreaMapper.updateSysArea(sysArea);
-    }
+	/**
+	 * 修改全球地区库
+	 * 
+	 * @param sysArea 全球地区库
+	 * @return 结果
+	 */
+	@Override
+	public int updateSysArea(SysArea sysArea) {
+		return sysAreaMapper.updateSysArea(sysArea);
+	}
 
-    /**
-     * 批量删除全球地区库
-     * 
-     * @param areaIds 需要删除的全球地区库主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSysAreaByAreaIds(String[] areaIds)
-    {
-        return sysAreaMapper.deleteSysAreaByAreaIds(areaIds);
-    }
+	/**
+	 * 批量删除全球地区库
+	 * 
+	 * @param areaIds 需要删除的全球地区库主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSysAreaByAreaIds(String[] areaIds) {
+		return sysAreaMapper.deleteSysAreaByAreaIds(areaIds);
+	}
 
-    /**
-     * 删除全球地区库信息
-     * 
-     * @param areaId 全球地区库主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSysAreaByAreaId(String areaId)
-    {
-        return sysAreaMapper.deleteSysAreaByAreaId(areaId);
-    }
+	/**
+	 * 删除全球地区库信息
+	 * 
+	 * @param areaId 全球地区库主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSysAreaByAreaId(String areaId) {
+		return sysAreaMapper.deleteSysAreaByAreaId(areaId);
+	}
+
+	@Override
+	public List<SysArea> getAreaByParentId(Integer parentId) {
+		SysArea sysArea = new SysArea();
+		sysArea.setAreaParentId(parentId+"");
+		return selectSysAreaList(sysArea);
+	}
 }

+ 74 - 71
healsphere-buss/src/main/java/com/zdqz/system/service/impl/SysCnareaServiceImpl.java

@@ -1,10 +1,12 @@
 package com.zdqz.system.service.impl;
 
 import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.zdqz.system.mapper.SysCnareaMapper;
+
 import com.zdqz.system.domain.SysCnarea;
+import com.zdqz.system.mapper.SysCnareaMapper;
 import com.zdqz.system.service.ISysCnareaService;
 
 /**
@@ -14,80 +16,81 @@ import com.zdqz.system.service.ISysCnareaService;
  * @date 2025-06-03
  */
 @Service
-public class SysCnareaServiceImpl implements ISysCnareaService 
-{
-    @Autowired
-    private SysCnareaMapper sysCnareaMapper;
+public class SysCnareaServiceImpl implements ISysCnareaService {
+	
+	@Autowired
+	private SysCnareaMapper sysCnareaMapper;
+
+	/**
+	 * 查询中国行政区域
+	 * 
+	 * @param id 中国行政区域主键
+	 * @return 中国行政区域
+	 */
+	@Override
+	public SysCnarea selectSysCnareaById(String id) {
+		return sysCnareaMapper.selectSysCnareaById(id);
+	}
 
-    /**
-     * 查询中国行政区域
-     * 
-     * @param id 中国行政区域主键
-     * @return 中国行政区域
-     */
-    @Override
-    public SysCnarea selectSysCnareaById(String id)
-    {
-        return sysCnareaMapper.selectSysCnareaById(id);
-    }
+	/**
+	 * 查询中国行政区域列表
+	 * 
+	 * @param sysCnarea 中国行政区域
+	 * @return 中国行政区域
+	 */
+	@Override
+	public List<SysCnarea> selectSysCnareaList(SysCnarea sysCnarea) {
+		return sysCnareaMapper.selectSysCnareaList(sysCnarea);
+	}
 
-    /**
-     * 查询中国行政区域列表
-     * 
-     * @param sysCnarea 中国行政区域
-     * @return 中国行政区域
-     */
-    @Override
-    public List<SysCnarea> selectSysCnareaList(SysCnarea sysCnarea)
-    {
-        return sysCnareaMapper.selectSysCnareaList(sysCnarea);
-    }
+	/**
+	 * 新增中国行政区域
+	 * 
+	 * @param sysCnarea 中国行政区域
+	 * @return 结果
+	 */
+	@Override
+	public int insertSysCnarea(SysCnarea sysCnarea) {
+		return sysCnareaMapper.insertSysCnarea(sysCnarea);
+	}
 
-    /**
-     * 新增中国行政区域
-     * 
-     * @param sysCnarea 中国行政区域
-     * @return 结果
-     */
-    @Override
-    public int insertSysCnarea(SysCnarea sysCnarea)
-    {
-        return sysCnareaMapper.insertSysCnarea(sysCnarea);
-    }
+	/**
+	 * 修改中国行政区域
+	 * 
+	 * @param sysCnarea 中国行政区域
+	 * @return 结果
+	 */
+	@Override
+	public int updateSysCnarea(SysCnarea sysCnarea) {
+		return sysCnareaMapper.updateSysCnarea(sysCnarea);
+	}
 
-    /**
-     * 修改中国行政区域
-     * 
-     * @param sysCnarea 中国行政区域
-     * @return 结果
-     */
-    @Override
-    public int updateSysCnarea(SysCnarea sysCnarea)
-    {
-        return sysCnareaMapper.updateSysCnarea(sysCnarea);
-    }
+	/**
+	 * 批量删除中国行政区域
+	 * 
+	 * @param ids 需要删除的中国行政区域主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSysCnareaByIds(String[] ids) {
+		return sysCnareaMapper.deleteSysCnareaByIds(ids);
+	}
 
-    /**
-     * 批量删除中国行政区域
-     * 
-     * @param ids 需要删除的中国行政区域主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSysCnareaByIds(String[] ids)
-    {
-        return sysCnareaMapper.deleteSysCnareaByIds(ids);
-    }
+	/**
+	 * 删除中国行政区域信息
+	 * 
+	 * @param id 中国行政区域主键
+	 * @return 结果
+	 */
+	@Override
+	public int deleteSysCnareaById(String id) {
+		return sysCnareaMapper.deleteSysCnareaById(id);
+	}
 
-    /**
-     * 删除中国行政区域信息
-     * 
-     * @param id 中国行政区域主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSysCnareaById(String id)
-    {
-        return sysCnareaMapper.deleteSysCnareaById(id);
-    }
+	@Override
+	public List<SysCnarea> getAreaByParentId(String parentId) {
+		SysCnarea sysCnarea = new SysCnarea();
+		sysCnarea.setParentCode(parentId);
+		return selectSysCnareaList(sysCnarea);
+	}
 }

File diff suppressed because it is too large
+ 218 - 0
healsphere-buss/src/main/resources/mapper/data/DataBaseMapper.xml


+ 0 - 96
healsphere-buss/src/main/resources/mapper/data/DataDljyMapper.xml

@@ -1,96 +0,0 @@
-<?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.zdqz.data.mapper.DataDljyMapper">
-    
-    <resultMap type="DataDljy" id="DataDljyResult">
-        <result property="id"    column="id"    />
-        <result property="dljy"    column="dljy"    />
-        <result property="byt"    column="byt"    />
-        <result property="nyyp"    column="nyyp"    />
-        <result property="mgyp"    column="mgyp"    />
-        <result property="nyjyExpress"    column="nyjy_express"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="remark"    column="remark"    />
-    </resultMap>
-
-    <sql id="selectDataDljyVo">
-        select id, dljy, byt, nyyp, mgyp, nyjy_express, create_by, create_time, update_by, update_time, remark from data_dljy
-    </sql>
-
-    <select id="selectDataDljyList" parameterType="DataDljy" resultMap="DataDljyResult">
-        <include refid="selectDataDljyVo"/>
-        <where>  
-            <if test="dljy != null  and dljy != ''"> and dljy = #{dljy}</if>
-            <if test="byt != null  and byt != ''"> and byt = #{byt}</if>
-            <if test="nyyp != null  and nyyp != ''"> and nyyp = #{nyyp}</if>
-            <if test="mgyp != null  and mgyp != ''"> and mgyp = #{mgyp}</if>
-            <if test="nyjyExpress != null  and nyjyExpress != ''"> and nyjy_express = #{nyjyExpress}</if>
-        </where>
-    </select>
-    
-    <select id="selectDataDljyById" parameterType="Long" resultMap="DataDljyResult">
-        <include refid="selectDataDljyVo"/>
-        where id = #{id}
-    </select>
-
-    <insert id="insertDataDljy" parameterType="DataDljy" useGeneratedKeys="true" keyProperty="id">
-        insert into data_dljy
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="dljy != null">dljy,</if>
-            <if test="byt != null">byt,</if>
-            <if test="nyyp != null">nyyp,</if>
-            <if test="mgyp != null">mgyp,</if>
-            <if test="nyjyExpress != null">nyjy_express,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="remark != null">remark,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="dljy != null">#{dljy},</if>
-            <if test="byt != null">#{byt},</if>
-            <if test="nyyp != null">#{nyyp},</if>
-            <if test="mgyp != null">#{mgyp},</if>
-            <if test="nyjyExpress != null">#{nyjyExpress},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="remark != null">#{remark},</if>
-         </trim>
-    </insert>
-
-    <update id="updateDataDljy" parameterType="DataDljy">
-        update data_dljy
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="dljy != null">dljy = #{dljy},</if>
-            <if test="byt != null">byt = #{byt},</if>
-            <if test="nyyp != null">nyyp = #{nyyp},</if>
-            <if test="mgyp != null">mgyp = #{mgyp},</if>
-            <if test="nyjyExpress != null">nyjy_express = #{nyjyExpress},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="remark != null">remark = #{remark},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteDataDljyById" parameterType="Long">
-        delete from data_dljy where id = #{id}
-    </delete>
-
-    <delete id="deleteDataDljyByIds" parameterType="String">
-        delete from data_dljy where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
-</mapper>

+ 0 - 96
healsphere-buss/src/main/resources/mapper/data/DataNyjyMapper.xml

@@ -1,96 +0,0 @@
-<?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.zdqz.data.mapper.DataNyjyMapper">
-    
-    <resultMap type="DataNyjy" id="DataNyjyResult">
-        <result property="id"    column="id"    />
-        <result property="nyjy"    column="nyjy"    />
-        <result property="byt"    column="byt"    />
-        <result property="nyyp"    column="nyyp"    />
-        <result property="mgyp"    column="mgyp"    />
-        <result property="nyjyExpress"    column="nyjy_express"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="remark"    column="remark"    />
-    </resultMap>
-
-    <sql id="selectDataNyjyVo">
-        select id, nyjy, byt, nyyp, mgyp, nyjy_express, create_by, create_time, update_by, update_time, remark from data_nyjy
-    </sql>
-
-    <select id="selectDataNyjyList" parameterType="DataNyjy" resultMap="DataNyjyResult">
-        <include refid="selectDataNyjyVo"/>
-        <where>  
-            <if test="nyjy != null  and nyjy != ''"> and nyjy = #{nyjy}</if>
-            <if test="byt != null  and byt != ''"> and byt = #{byt}</if>
-            <if test="nyyp != null  and nyyp != ''"> and nyyp = #{nyyp}</if>
-            <if test="mgyp != null  and mgyp != ''"> and mgyp = #{mgyp}</if>
-            <if test="nyjyExpress != null  and nyjyExpress != ''"> and nyjy_express = #{nyjyExpress}</if>
-        </where>
-    </select>
-    
-    <select id="selectDataNyjyById" parameterType="Long" resultMap="DataNyjyResult">
-        <include refid="selectDataNyjyVo"/>
-        where id = #{id}
-    </select>
-
-    <insert id="insertDataNyjy" parameterType="DataNyjy" useGeneratedKeys="true" keyProperty="id">
-        insert into data_nyjy
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="nyjy != null">nyjy,</if>
-            <if test="byt != null">byt,</if>
-            <if test="nyyp != null">nyyp,</if>
-            <if test="mgyp != null">mgyp,</if>
-            <if test="nyjyExpress != null">nyjy_express,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="remark != null">remark,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="nyjy != null">#{nyjy},</if>
-            <if test="byt != null">#{byt},</if>
-            <if test="nyyp != null">#{nyyp},</if>
-            <if test="mgyp != null">#{mgyp},</if>
-            <if test="nyjyExpress != null">#{nyjyExpress},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="remark != null">#{remark},</if>
-         </trim>
-    </insert>
-
-    <update id="updateDataNyjy" parameterType="DataNyjy">
-        update data_nyjy
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="nyjy != null">nyjy = #{nyjy},</if>
-            <if test="byt != null">byt = #{byt},</if>
-            <if test="nyyp != null">nyyp = #{nyyp},</if>
-            <if test="mgyp != null">mgyp = #{mgyp},</if>
-            <if test="nyjyExpress != null">nyjy_express = #{nyjyExpress},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="remark != null">remark = #{remark},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteDataNyjyById" parameterType="Long">
-        delete from data_nyjy where id = #{id}
-    </delete>
-
-    <delete id="deleteDataNyjyByIds" parameterType="String">
-        delete from data_nyjy where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
-</mapper>

+ 301 - 0
healsphere-buss/src/main/resources/mapper/read/ReadDataMapper.xml

@@ -0,0 +1,301 @@
+<?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.zdqz.read.mapper.ReadDataMapper">
+    
+    <resultMap type="ReadData" id="ReadDataResult">
+        <result property="id"    column="id"    />
+        <result property="experimentId"    column="experiment_id"    />
+        <result property="assemblyAccession"    column="assembly_accession"    />
+        <result property="taxid"    column="taxid"    />
+        <result property="speciesTaxid"    column="species_taxid"    />
+        <result property="organismName"    column="organism_name"    />
+        <result property="organismNameStd"    column="organism_name_std"    />
+        <result property="dHits"    column="D_Hits"    />
+        <result property="rHits"    column="R_Hits"    />
+        <result property="finalHits"    column="Final_Hits"    />
+        <result property="nameCn"    column="name_cn"    />
+        <result property="defined"    column="defined"    />
+        
+        <result property="bytFilterStatus"    column="byt_filter_status"    />
+        <result property="bytFilterTime"    column="byt_filter_time"    />
+        <result property="dljyFilterStatus"    column="dljy_filter_status"    />
+        <result property="dljyFilterTime"    column="dljy_filter_time"    />
+        <result property="nyjyFilterStatus"    column="nyjy_filter_status"    />
+        <result property="nyjyFilterTime"    column="nyjy_filter_time"    />
+        <result property="dtbnyjyFilterStatus"    column="dtbnyjy_filter_status"    />
+        <result property="dtbnyjyFilterTime"    column="dtbnyjy_filter_time"    />
+        
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        
+        <association property="dataBase"    javaType="DataBase"         resultMap="DataBaseResult" />
+    </resultMap>
+    
+    <resultMap type="DataBase" id="DataBaseResult">
+        <result property="assemblyAccession"    column="b_assembly_accession"    />
+        <result property="refseqCategory"    column="b_refseq_category"    />
+        <result property="taxid"    column="b_taxid"    />
+        <result property="speciesTaxid"    column="b_species_taxid"    />
+        <result property="organismName"    column="b_organism_name"    />
+        <result property="infraspecificName"    column="b_infraspecific_name"    />
+        <result property="isolate"    column="b_isolate"    />
+        <result property="assemblyLevel"    column="b_assembly_level"    />
+        <result property="genomeRep"    column="b_genome_rep"    />
+        <result property="seqRelDate"    column="b_seq_rel_date"    />
+        <result property="asmName"    column="b_asm_name"    />
+        <result property="gbrsPairedAsm"    column="b_gbrs_paired_asm"    />
+        <result property="pairedAsmComp"    column="b_paired_asm_comp"    />
+        <result property="ftpPath"    column="b_ftp_path"    />
+        <result property="excludedFromRefseq"    column="b_excluded_from_refseq"    />
+        <result property="assemblyType"    column="b_assembly_type"    />
+        <result property="group"    column="b_group"    />
+        <result property="genomeSize"    column="b_genome_size"    />
+        <result property="genomeSizeUngapped"    column="b_genome_size_ungapped"    />
+        <result property="gcPercent"    column="b_gc_percent"    />
+        <result property="repliconCount"    column="b_replicon_count"    />
+        <result property="scaffoldCount"    column="b_scaffold_count"    />
+        <result property="contigCount"    column="b_contig_count"    />
+        <result property="totalGeneCount"    column="b_total_gene_count"    />
+        <result property="proteinCodingGeneCount"    column="b_protein_coding_gene_count"    />
+        <result property="nonCodingGeneCount"    column="b_non_coding_gene_count"    />
+        <result property="nameCn"    column="b_name_cn"    />
+        <result property="defined"    column="b_defined"    />
+        <result property="seqSource"    column="b_seq_source"    />
+        <result property="express"    column="b_express"    />
+        <result property="filePath"    column="b_file_path"    />
+        <result property="dtpnyjy"    column="b_dtpnyjy"    />
+        <result property="dtpnyjyExpress"    column="b_dtpnyjy_express"    />
+        <result property="nyjy"    column="b_nyjy"    />
+        <result property="nyjyExpress"    column="b_nyjy_express"    />
+        <result property="dljy"    column="b_dljy"    />
+        <result property="dljyExpress"    column="b_dljy_express"    />
+        <result property="createBy"    column="b_create_by"    />
+        <result property="createTime"    column="b_create_time"    />
+        <result property="updateBy"    column="b_update_by"    />
+        <result property="updateTime"    column="b_update_time"    />
+        <result property="remark"    column="b_remark"    />
+    </resultMap>
+    
+
+    <insert id="insertReadData" parameterType="ReadData" useGeneratedKeys="true" keyProperty="id">
+        insert into read_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="experimentId != null">experiment_id,</if>
+            <if test="assemblyAccession != null">assembly_accession,</if>
+            <if test="taxid != null">taxid,</if>
+            <if test="speciesTaxid != null">species_taxid,</if>
+            <if test="organismName != null">organism_name,</if>
+            <if test="organismNameStd != null">organism_name_std,</if>
+            <if test="dHits != null">D_Hits,</if>
+            <if test="rHits != null">R_Hits,</if>
+            <if test="finalHits != null">Final_Hits,</if>
+            <if test="nameCn != null">name_cn,</if>
+            <if test="defined != null">defined,</if>
+            
+            <if test="bytFilterStatus != null">byt_filter_status,</if>
+            <if test="bytFilterTime != null">byt_filter_time,</if>
+            <if test="dljyFilterStatus != null">dljy_filter_status,</if>
+            <if test="dljyFilterTime != null">dljy_filter_time,</if>
+            <if test="nyjyFilterStatus != null">nyjy_filter_status,</if>
+            <if test="nyjyFilterTime != null">nyjy_filter_time,</if>
+            <if test="dtbnyjyFilterStatus != null">dtbnyjy_filter_status,</if>
+            <if test="dtbnyjyFilterTime != null">dtbnyjy_filter_time,</if>
+            
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="experimentId != null">#{experimentId},</if>
+            <if test="assemblyAccession != null">#{assemblyAccession},</if>
+            <if test="taxid != null">#{taxid},</if>
+            <if test="speciesTaxid != null">#{speciesTaxid},</if>
+            <if test="organismName != null">#{organismName},</if>
+            <if test="organismNameStd != null">#{organismNameStd},</if>
+            <if test="dHits != null">#{dHits},</if>
+            <if test="rHits != null">#{rHits},</if>
+            <if test="finalHits != null">#{finalHits},</if>
+            <if test="nameCn != null">#{nameCn},</if>
+            <if test="defined != null">#{defined},</if>
+            
+            <if test="bytFilterStatus != null">#{bytFilterStatus},</if>
+            <if test="bytFilterTime != null">#{bytFilterTime},</if>
+            <if test="dljyFilterStatus != null">#{dljyFilterStatus},</if>
+            <if test="dljyFilterTime != null">#{dljyFilterTime},</if>
+            <if test="nyjyFilterStatus != null">#{nyjyFilterStatus},</if>
+            <if test="nyjyFilterTime != null">#{nyjyFilterTime},</if>
+            <if test="dtbnyjyFilterStatus != null">#{dtbnyjyFilterStatus},</if>
+            <if test="dtbnyjyFilterTime != null">#{dtbnyjyFilterTime},</if>
+            
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateReadData" parameterType="ReadData">
+        update read_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="experimentId != null">experiment_id = #{experimentId},</if>
+            <if test="assemblyAccession != null">assembly_accession = #{assemblyAccession},</if>
+            <if test="taxid != null">taxid = #{taxid},</if>
+            <if test="speciesTaxid != null">species_taxid = #{speciesTaxid},</if>
+            <if test="organismName != null">organism_name = #{organismName},</if>
+            <if test="organismNameStd != null">organism_name_std = #{organismNameStd},</if>
+            <if test="dHits != null">D_Hits = #{dHits},</if>
+            <if test="rHits != null">R_Hits = #{rHits},</if>
+            <if test="finalHits != null">Final_Hits = #{finalHits},</if>
+            <if test="nameCn != null">name_cn = #{nameCn},</if>
+            <if test="defined != null">defined = #{defined},</if>
+            
+            <if test="bytFilterStatus != null">byt_filter_status = #{bytFilterStatus},</if>
+            <if test="bytFilterTime != null">byt_filter_time = #{bytFilterTime},</if>
+            <if test="dljyFilterStatus != null">dljy_filter_status = #{dljyFilterStatus},</if>
+            <if test="dljyFilterTime != null">dljy_filter_time = #{dljyFilterTime},</if>
+            <if test="nyjyFilterStatus != null">nyjy_filter_status = #{nyjyFilterStatus},</if>
+            <if test="nyjyFilterTime != null">nyjy_filter_time = #{nyjyFilterTime},</if>
+            <if test="dtbnyjyFilterStatus != null">dtbnyjy_filter_status = #{dtbnyjyFilterStatus},</if>
+            <if test="dtbnyjyFilterTime != null">dtbnyjy_filter_time = #{dtbnyjyFilterTime},</if>
+            
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+	<update id="setDeleteFlag" parameterType="Long">
+        update read_data set del_flag = 2 where experiment_id = #{experimentId}
+    </update>
+
+	<sql id="selectReadData">
+        select a.*, 
+	        assembly_accession b_assembly_accession, 
+	        refseq_category b_refseq_category, 
+	        taxid b_taxid, 
+	        species_taxid b_species_taxid, 
+	        organism_name b_organism_name, 
+	        infraspecific_name b_infraspecific_name, 
+	        isolate b_isolate, 
+	        assembly_level b_assembly_level, 
+	        genome_rep b_genome_rep, 
+	        seq_rel_date b_seq_rel_date, 
+	        asm_name b_asm_name, 
+	        gbrs_paired_asm b_gbrs_paired_asm, 
+	        paired_asm_comp b_paired_asm_comp, 
+	        ftp_path b_ftp_path, 
+	        excluded_from_refseq b_excluded_from_refseq, 
+	        assembly_type b_assembly_type, 
+	        `group` b_group, 
+	        genome_size b_genome_size, 
+	        genome_size_ungapped b_genome_size_ungapped, 
+	        gc_percent b_gc_percent, 
+	        replicon_count b_replicon_count, 
+	        scaffold_count b_scaffold_count, 
+	        contig_count b_contig_count, 
+	        total_gene_count b_total_gene_count, 
+	        protein_coding_gene_count b_protein_coding_gene_count, 
+	        non_coding_gene_count b_non_coding_gene_count, 
+	        name_cn b_name_cn, 
+	        defined b_defined, 
+	        seq_source b_seq_source, 
+	        express b_express, 
+	        file_path b_file_path, 
+	        dtpnyjy b_dtpnyjy, 
+	        dtpnyjy_express b_dtpnyjy_express, 
+	        nyjy b_nyjy, 
+	        nyjy_express b_nyjy_express, 
+	        dljy b_dljy, 
+	        dljy_express b_dljy_express, 
+	        create_by b_create_by, 
+	        create_time b_create_time, 
+	        update_by b_update_by, 
+	        update_time b_update_time, 
+	        remark b_remark 
+        from read_data a
+    </sql>
+    
+	<select id="selectBYTByExperiment" resultMap="ReadDataResult">
+        <include refid="selectReadData"/>
+        left join data_base b on a.assembly_accession = b.assembly_accession
+        where a.experiment_id = #{experimentId} and a.del_flag =1 and a.byt_filter_status = #{filterStatus}
+    </select>
+
+	<select id="selectDLJYByExperiment" resultMap="ReadDataResult">
+        <include refid="selectReadData"/>
+        ,data_base b 
+        where a.assembly_accession = b.assembly_accession and  a.experiment_id = #{experimentId} and a.del_flag =1 and a.dljy_filter_status = #{filterStatus} and (b.dljy != '' or b.dljy is not null)
+    </select>
+    
+    <select id="selectNYJYByExperiment" resultMap="ReadDataResult">
+        <include refid="selectReadData"/>
+        ,data_base b 
+        where a.assembly_accession = b.assembly_accession and  a.experiment_id = #{experimentId} and a.del_flag =1 and a.nyjy_filter_status = #{filterStatus} and (b.nyjy != '' or b.nyjy is not null)
+    </select>
+    
+    <select id="selectDTBNYJYByExperiment" resultMap="ReadDataResult">
+        <include refid="selectReadData"/>
+        ,data_base b 
+        where a.assembly_accession = b.assembly_accession and  a.experiment_id = #{experimentId} and a.del_flag =1 and a.dtbnyjy_filter_status = #{filterStatus} and (b.dtpnyjy != '' or b.dtpnyjy is not null)
+    </select>
+
+	<update id="resetBYTFilter" parameterType="Long">
+        update read_data set byt_filter_status = 1,byt_filter_time = null where experiment_id = #{experimentId} and del_flag=1
+    </update>
+ 	
+    <update id="setBYTFilter" parameterType="Long">
+        update read_data set byt_filter_status = 2,byt_filter_time = now() where id in
+ 		<foreach collection="array" item="id" open="(" separator="," close=")">
+ 			#{id}
+        </foreach> 
+    </update>
+    
+    <update id="resetDLJYFilter" parameterType="Long">
+         update read_data set dljy_filter_status = 1,dljy_filter_time = null where experiment_id = #{experimentId} and del_flag=1
+    </update>
+    
+    <update id="setDLJYFilter" parameterType="Long">
+        update read_data set dljy_filter_status = 2,dljy_filter_time = now() where id in
+ 		<foreach collection="array" item="id" open="(" separator="," close=")">
+ 			#{id}
+        </foreach> 
+    </update>
+    
+    <update id="resetNYJYFilter" parameterType="Long">
+		update read_data set nyjy_filter_status = 1,nyjy_filter_time = null where experiment_id = #{experimentId} and del_flag=1
+    </update>
+    
+    <update id="setNYJYFilter" parameterType="Long">
+        update read_data set nyjy_filter_status = 2,nyjy_filter_time = now() where id in
+ 		<foreach collection="array" item="id" open="(" separator="," close=")">
+ 			#{id}
+        </foreach> 
+    </update>
+    
+    <update id="resetDTBNYJYFilter" parameterType="Long">
+        update read_data set dtbnyjy_filter_status = 1,dtbnyjy_filter_time = null where experiment_id = #{experimentId} and del_flag=1
+    </update>
+    
+    <update id="setDTBNYJYFilter" parameterType="Long">
+        update read_data set dtbnyjy_filter_status = 2,dtbnyjy_filter_time = now() where id in
+ 		<foreach collection="array" item="id" open="(" separator="," close=")">
+ 			#{id}
+        </foreach> 
+    </update>
+
+</mapper>

+ 122 - 0
healsphere-buss/src/main/resources/mapper/read/ReadRemarkMapper.xml

@@ -0,0 +1,122 @@
+<?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.zdqz.read.mapper.ReadRemarkMapper">
+    
+    <resultMap type="ReadRemark" id="ReadRemarkResult">
+        <result property="id"    column="id"    />
+        <result property="experimentId"    column="experiment_id"    />
+        <result property="jclc"    column="jclc"    />
+        <result property="zyh"    column="zyh"    />
+        <result property="ch"    column="ch"    />
+        <result property="cjsj"    column="cjsj"    />
+        <result property="jcsj"    column="jcsj"    />
+        <result property="lczd"    column="lczd"    />
+        <result property="jdbz"    column="jdbz"    />
+        <result property="jcz"    column="jcz"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectReadRemarkVo">
+        select id, experiment_id, jclc, zyh, ch, cjsj, jcsj, lczd, jdbz, jcz, create_by, create_time, update_by, update_time, remark from read_remark
+    </sql>
+
+    <select id="selectReadRemarkList" parameterType="ReadRemark" resultMap="ReadRemarkResult">
+        <include refid="selectReadRemarkVo"/>
+        <where>  
+            <if test="experimentId != null "> and experiment_id = #{experimentId}</if>
+            <if test="jclc != null  and jclc != ''"> and jclc = #{jclc}</if>
+            <if test="zyh != null  and zyh != ''"> and zyh = #{zyh}</if>
+            <if test="ch != null  and ch != ''"> and ch = #{ch}</if>
+            <if test="cjsj != null "> and cjsj = #{cjsj}</if>
+            <if test="jcsj != null "> and jcsj = #{jcsj}</if>
+            <if test="lczd != null  and lczd != ''"> and lczd = #{lczd}</if>
+            <if test="jdbz != null  and jdbz != ''"> and jdbz = #{jdbz}</if>
+            <if test="jcz != null  and jcz != ''"> and jcz = #{jcz}</if>
+        </where>
+    </select>
+    
+    <select id="selectReadRemarkById" parameterType="Long" resultMap="ReadRemarkResult">
+        <include refid="selectReadRemarkVo"/>
+        where id = #{id}
+    </select>
+    
+    <select id="selectReadRemarkByExperiment" parameterType="Long" resultMap="ReadRemarkResult">
+        <include refid="selectReadRemarkVo"/>
+        where experimentId = #{experimentid}
+    </select>
+    
+
+    <insert id="insertReadRemark" parameterType="ReadRemark" useGeneratedKeys="true" keyProperty="id">
+        insert into read_remark
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="experimentId != null">experiment_id,</if>
+            <if test="jclc != null">jclc,</if>
+            <if test="zyh != null">zyh,</if>
+            <if test="ch != null">ch,</if>
+            <if test="cjsj != null">cjsj,</if>
+            <if test="jcsj != null">jcsj,</if>
+            <if test="lczd != null">lczd,</if>
+            <if test="jdbz != null">jdbz,</if>
+            <if test="jcz != null">jcz,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="experimentId != null">#{experimentId},</if>
+            <if test="jclc != null">#{jclc},</if>
+            <if test="zyh != null">#{zyh},</if>
+            <if test="ch != null">#{ch},</if>
+            <if test="cjsj != null">#{cjsj},</if>
+            <if test="jcsj != null">#{jcsj},</if>
+            <if test="lczd != null">#{lczd},</if>
+            <if test="jdbz != null">#{jdbz},</if>
+            <if test="jcz != null">#{jcz},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateReadRemark" parameterType="ReadRemark">
+        update read_remark
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="experimentId != null">experiment_id = #{experimentId},</if>
+            <if test="jclc != null">jclc = #{jclc},</if>
+            <if test="zyh != null">zyh = #{zyh},</if>
+            <if test="ch != null">ch = #{ch},</if>
+            <if test="cjsj != null">cjsj = #{cjsj},</if>
+            <if test="jcsj != null">jcsj = #{jcsj},</if>
+            <if test="lczd != null">lczd = #{lczd},</if>
+            <if test="jdbz != null">jdbz = #{jdbz},</if>
+            <if test="jcz != null">jcz = #{jcz},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteReadRemarkById" parameterType="Long">
+        delete from read_remark where id = #{id}
+    </delete>
+
+    <delete id="deleteReadRemarkByIds" parameterType="String">
+        delete from read_remark where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 37 - 13
healsphere-buss/src/main/resources/mapper/sample/SampleExperimentMapper.xml

@@ -6,40 +6,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <resultMap type="SampleExperiment" id="SampleExperimentResult">
         <result property="id"    column="id"    />
+        <result property="experimentCode"    column="experiment_code"    />
         <result property="sampleInfoId"    column="sample_info_id"    />
         <result property="status"    column="status"    />
         <result property="dealTime"    column="deal_time"    />
+     	<result property="generatorStatus"    column="generator_status"    />
+      	<result property="generatorTime"    column="generator_time"    />
+       	<result property="generatorFile"    column="generator_file"    />
+        
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
+        
+        <result property="patientName"    column="patient_name"    />
+        <result property="sampleCode"    column="sample_code"    />
     </resultMap>
 
-    <sql id="selectSampleExperimentVo">
-        select id, sample_info_id, status, deal_time, create_by, create_time, update_by, update_time, remark from sample_experiment
-    </sql>
-
     <select id="selectSampleExperimentList" parameterType="SampleExperiment" resultMap="SampleExperimentResult">
-        <include refid="selectSampleExperimentVo"/>
-        <where>  
-            <if test="sampleInfoId != null "> and sample_info_id = #{sampleInfoId}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="dealTime != null "> and deal_time = #{dealTime}</if>
-        </where>
+        select a.*,b.sample_code,c.name patient_name
+        from sample_experiment a,sample_info b,sample_patient c
+        where a.sample_info_id =b.id and b.patient_id = c.id
+        <if test="experimentCode != null  and experimentCode != ''"> and a.experiment_code = #{experimentCode}</if>
+        <if test="sampleInfoId != null "> and a.sample_info_id = #{sampleInfoId}</if>
+        <if test="status != null "> and a.status = #{status}</if>
+        <if test="dealTime != null "> and a.deal_time = #{dealTime}</if>
     </select>
     
     <select id="selectSampleExperimentById" parameterType="Long" resultMap="SampleExperimentResult">
-        <include refid="selectSampleExperimentVo"/>
-        where id = #{id}
+        select a.*,b.sample_code,c.name patient_name
+        from sample_experiment a,sample_info b,sample_patient c
+        where a.sample_info_id =b.id and b.patient_id = c.id and a.id = #{id}
     </select>
 
     <insert id="insertSampleExperiment" parameterType="SampleExperiment" useGeneratedKeys="true" keyProperty="id">
         insert into sample_experiment
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="experimentCode != null">experiment_code,</if>
             <if test="sampleInfoId != null">sample_info_id,</if>
             <if test="status != null">status,</if>
             <if test="dealTime != null">deal_time,</if>
+            
+            <if test="generatorStatus != null">generator_status,</if>
+            <if test="generatorTime != null">generator_time,</if>
+            <if test="generatorFile != null">generator_file,</if>
+            
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
@@ -47,9 +59,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remark != null">remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="experimentCode != null">#{experimentCode},</if>
             <if test="sampleInfoId != null">#{sampleInfoId},</if>
             <if test="status != null">#{status},</if>
             <if test="dealTime != null">#{dealTime},</if>
+            
+            <if test="generatorStatus != null">#{generatorStatus},</if>
+            <if test="generatorTime != null">#{generatorTime},</if>
+            <if test="generatorFile != null">#{generatorFile},</if>
+            
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
@@ -57,13 +75,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remark != null">#{remark},</if>
          </trim>
     </insert>
-
+    
     <update id="updateSampleExperiment" parameterType="SampleExperiment">
         update sample_experiment
         <trim prefix="SET" suffixOverrides=",">
+            <if test="experimentCode != null">experiment_code = #{experimentCode},</if>
             <if test="sampleInfoId != null">sample_info_id = #{sampleInfoId},</if>
             <if test="status != null">status = #{status},</if>
             <if test="dealTime != null">deal_time = #{dealTime},</if>
+            
+            <if test="generatorStatus != null">generator_status = #{generatorStatus},</if>
+            <if test="generatorTime != null">generator_time = #{generatorTime},</if>
+            <if test="generatorFile != null">generator_file = #{generatorFile},</if>
+            
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>

+ 29 - 14
healsphere-buss/src/main/resources/mapper/sample/SampleInfoMapper.xml

@@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <resultMap type="SampleInfo" id="SampleInfoResult">
         <result property="id"    column="id"    />
+        <result property="sampleCode"    column="sample_code"    />
         <result property="patientId"    column="patient_id"    />
         <result property="patientPhone"    column="patient_phone"    />
         <result property="sampleTypeId"    column="sample_type_id"    />
@@ -17,32 +18,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
+        
+        <result property="patientName"    column="patient_name"    />
+        <result property="sampleTypeName"    column="sample_type_name"    />
+        <result property="sampleHospitalName"    column="sample_hospital_name"    />
+        <result property="sampleDeptName"    column="sample_dept_name"    />
     </resultMap>
 
-    <sql id="selectSampleInfoVo">
-        select id, patient_id, patient_phone, sample_type_id, sample_hospital_id, sample_dept_id, doctor_name, create_by, create_time, update_by, update_time, remark from sample_info
-    </sql>
 
     <select id="selectSampleInfoList" parameterType="SampleInfo" resultMap="SampleInfoResult">
-        <include refid="selectSampleInfoVo"/>
-        <where>  
-            <if test="patientId != null "> and patient_id = #{patientId}</if>
-            <if test="patientPhone != null  and patientPhone != ''"> and patient_phone = #{patientPhone}</if>
-            <if test="sampleTypeId != null "> and sample_type_id = #{sampleTypeId}</if>
-            <if test="sampleHospitalId != null "> and sample_hospital_id = #{sampleHospitalId}</if>
-            <if test="sampleDeptId != null "> and sample_dept_id = #{sampleDeptId}</if>
-            <if test="doctorName != null  and doctorName != ''"> and doctor_name like concat('%', #{doctorName}, '%')</if>
-        </where>
+        select a.*,b.name patient_name,c.name sample_type_name,d.name sample_hospital_name,e.name sample_dept_name
+        from sample_info a,sample_patient b,sample_type c,sample_hospital d,sample_dept e
+        where a.patient_id = b.id and a.sample_type_id=c.id and a.sample_hospital_id =d.id and a.sample_dept_id = e.id
+        <if test="sampleCode != null  and sampleCode != ''"> and a.sample_code = #{sampleCode}</if>
+        <if test="patientId != null "> and a.patient_id = #{patientId}</if>
+        <if test="patientPhone != null  and patientPhone != ''"> and a.patient_phone = #{patientPhone}</if>
+        <if test="sampleTypeId != null "> and a.sample_type_id = #{sampleTypeId}</if>
+        <if test="sampleHospitalId != null "> and a.sample_hospital_id = #{sampleHospitalId}</if>
+        <if test="sampleDeptId != null "> and a.sample_dept_id = #{sampleDeptId}</if>
+        <if test="doctorName != null  and doctorName != ''"> and a.doctor_name like concat('%', #{doctorName}, '%')</if>
     </select>
     
     <select id="selectSampleInfoById" parameterType="Long" resultMap="SampleInfoResult">
-        <include refid="selectSampleInfoVo"/>
-        where id = #{id}
+        select a.*,b.name patient_name,c.name sample_type_name,d.name sample_hospital_name,e.name sample_dept_name
+        from sample_info a,sample_patient b,sample_type c,sample_hospital d,sample_dept e
+        where a.patient_id = b.id and a.sample_type_id=c.id and a.sample_hospital_id =d.id and a.sample_dept_id = e.id and a.id = #{id}
+    </select>
+    
+    <select id="selectSampleInfoByExperiment" parameterType="Long" resultMap="SampleInfoResult">
+        select a.*,b.name patient_name,c.name sample_type_name,d.name sample_hospital_name,e.name sample_dept_name
+        from sample_info a,sample_patient b,sample_type c,sample_hospital d,sample_dept e,sample_experiment f
+        where a.patient_id = b.id and a.sample_type_id=c.id and a.sample_hospital_id =d.id and a.sample_dept_id = e.id and f.sample_info_id = a.id
+        and f.id = #{experimentid}
     </select>
 
     <insert id="insertSampleInfo" parameterType="SampleInfo" useGeneratedKeys="true" keyProperty="id">
         insert into sample_info
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sampleCode != null">sample_code,</if>
             <if test="patientId != null">patient_id,</if>
             <if test="patientPhone != null">patient_phone,</if>
             <if test="sampleTypeId != null">sample_type_id,</if>
@@ -56,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remark != null">remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sampleCode != null">#{sampleCode},</if>
             <if test="patientId != null">#{patientId},</if>
             <if test="patientPhone != null">#{patientPhone},</if>
             <if test="sampleTypeId != null">#{sampleTypeId},</if>
@@ -73,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateSampleInfo" parameterType="SampleInfo">
         update sample_info
         <trim prefix="SET" suffixOverrides=",">
+            <if test="sampleCode != null">sample_code = #{sampleCode},</if>
             <if test="patientId != null">patient_id = #{patientId},</if>
             <if test="patientPhone != null">patient_phone = #{patientPhone},</if>
             <if test="sampleTypeId != null">sample_type_id = #{sampleTypeId},</if>

+ 7 - 0
healsphere-buss/src/main/resources/mapper/sample/SamplePatientMapper.xml

@@ -158,6 +158,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
+	 <select id="selectSamplePatientByExperiment" parameterType="Long" resultMap="SamplePatientResult">
+        select c.*
+     	from sample_experiment a,sample_info b,sample_patient c
+        where a.sample_info_id =b.id and b.patient_id = c.id and a.id = #{experimentid}
+    </select>
+
+
     <insert id="insertSamplePatient" parameterType="SamplePatient" useGeneratedKeys="true" keyProperty="id">
         insert into sample_patient
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 290 - 0
healsphere-buss/src/main/resources/templates/template.html

@@ -0,0 +1,290 @@
+!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title></title>
+    <style type="text/css">
+        @page {
+            size: A4;
+            margin: 5mm 10mm; /* 上下和左右两个方向的边距分别为 10mm 和 20mm */
+        }
+        body {
+            width: 180mm;
+            height: 297mm;
+        }
+
+        .item_content {
+            width: 95%;
+            height: 100%;
+        }
+
+        .item_content .title {
+            overflow: hidden; /* 清除浮动 */
+            box-sizing: border-box; /* 盒模型以边框为界计算宽度 */
+            display: flex;
+            height: 20pt;
+            width: 100%;
+            align-items: center;
+            justify-content: center;
+        }
+
+        .item_content .title .circle {
+            float: left;
+            width: 3%;
+            padding-right: 0.5px; /* 右侧间距 */
+            align-self: center;
+            justify-self: center;
+            margin-right: -1pt;
+            margin-top: 2pt;
+        }
+
+        .item_content .title .title_text {
+            float: left;
+            width: 12%;
+            color: #409EFF;
+            text-align: center;
+            position: relative;
+            font-size: 15pt;
+            padding-right: 0.5px; /* 右侧间距 */
+            align-self: center;
+            justify-self: center;
+        }
+
+        .item_content .title .line {
+            float: right;
+            width: 85%;
+            border-top: 0.75pt solid black;
+            margin-top: 10pt;
+        }
+
+        .item_content .section {
+            overflow: hidden; /* 清除浮动 */
+            box-sizing: border-box; /* 盒模型以边框为界计算宽度 */
+            display: flex;
+            height: 100%; /* 高度设为100% */
+            margin: auto;
+        }
+
+        .item_content .section .section_photo {
+            float: left;
+            width: 14.5%;
+            text-align: center;
+        }
+
+        .item_content .section .section_info {
+            float: right;
+            width: 84.5%;
+            align-self: center;
+            justify-self: center;
+            text-align: left;
+        }
+
+        .item_content .section .section_info .name {
+            color: #409EFF;
+            font-size: 21pt;
+        }
+
+        .item_content .section .section_info .address {
+            width: 100%;
+            height: 40px;
+            line-height: 40px;
+            background: #5195db;
+            color: white;
+            font-size: 15pt;
+            padding: 0 15pt;
+            margin: 10px 0 0;
+            -webkit-print-color-adjust: exact;
+        }
+
+        .item_content .section .section_info .divider {
+            width: 100%;
+            margin: 15pt 0;
+            border-top: 0.75pt solid #ccc;
+        }
+
+        .item_content .section .section_info .info-container {
+            overflow: hidden;/* 清除浮动后的高度问题 */
+            margin-top: 1%;
+            margin-bottom: 1%;
+            font-size: 11.25pt;
+            gap: 4%;
+        }
+
+        .item_content .section .section_info .info-container .left-container{
+            float: left;
+            width: 48%;
+            mmargin-top: 1%;
+            margin-bottom: 1%;
+        }
+
+        .item_content .section .section_info .info-container .right-container{
+            float: right;
+            width: 48%;
+            margin-top: 1%;
+            margin-bottom: 1%;
+        }
+
+        .item_content .section .section_info .info-container .left-container .id-card-photo-container{
+            overflow: hidden;/* 清除浮动后的高度问题 */
+        }
+
+        .item_content .section .section_info .info-container .left-container .id-card-photo-container .left-id-card-photo{
+            float: left;
+            width: 40%;/* 左半部分的宽度为 40% */
+        }
+
+        .item_content .section .section_info .info-container .left-container .id-card-photo-container .right-id-card-photo{
+            float: right;
+            width: 60%;/* 右半部分的宽度为 60% */
+        }
+
+        .item_content .section .section_info .record-container {
+            overflow: hidden;/* 清除浮动后的高度问题 */
+            margin-top: 1%;
+            margin-bottom: 1%;
+            font-size: 11.25pt;
+            gap: 4%;
+        }
+
+        .item_content .section .section_info .record-container .left-record {
+            float: left;
+            width: 48%;/* 左半部分的宽度为 50% */
+            mmargin-top: 1%;
+            margin-bottom: 1%;
+            text-align: left;
+        }
+
+        .item_content .section .section_info .record-container .right-record {
+            float: right;
+            width: 48%;/* 右半部分的宽度为 50% */
+            margin-top: 1%;
+            margin-bottom: 1%;
+            text-align: left;
+        }
+
+        .item_content .experience {
+            width: 90%;
+            margin: 15px auto 20px;
+            background: #f5f5f5;
+            -webkit-print-color-adjust: exact;
+            padding: 10px 20px;
+        }
+
+        .item_content .experience .experience-info{
+            overflow: hidden;/* 清除浮动后的高度问题 */
+            font-size: 11.25pt;
+        }
+
+        .item_content .experience .experience-info .left-experience{
+            float: left; /* 左浮动 */
+            width: 33.33%; /* 固定宽度 */
+            box-sizing: border-box; /* 盒模型以边框为界计算宽度 */
+            padding-right: 7.5pt; /* 右侧间距 */
+            text-align: left;
+        }
+
+        .item_content .experience .experience-info .middle-experience{
+            float: left; /* 左浮动 */
+            width: 33.33%; /* 固定宽度 */
+            box-sizing: border-box; /* 盒模型以边框为界计算宽度 */
+            padding-right: 7.5px; /* 右侧间距 */
+            text-align: left;
+        }
+
+        .item_content .experience .experience-info .right-experience{
+            float: left; /* 左浮动 */
+            width: 33.33%; /* 固定宽度 */
+            box-sizing: border-box; /* 盒模型以边框为界计算宽度 */
+            text-align: left;
+        }
+
+        .item_content .table_style {
+            border-collapse: collapse;
+            width: 100%;
+        }
+
+        .item_content .table_style td {
+            text-align: center;
+            height: 11.25pt;
+            padding: 3.75pt 7.5pt;
+            min-width: 97.5pt;
+            max-width: none;
+        }
+
+        .item_content .table_style thead td {
+            font-weight: 600;
+            background: #f3f3f3;
+            font-size: 11.25pt;
+        }
+
+        .item_content .table_style thead th {
+            font-weight: 600;
+            background: #f3f3f3;
+            font-size: 13pt;
+        }
+    </style>
+</head>
+<body style="text-align: center">
+<div>
+    <div>
+        <div class="scroll-show">
+            <div style="margin-right:3%;margin-left:5%;">
+                <div class="item_content">
+                    <div class="title">
+                        <div class="circle"><img src="https://egongban.oss-cn-shenzhen.aliyuncs.com/2023/05/29/b506e8108f4d9ee742370f4301e170a.png" style="width: 14pt; height: 14pt;"></div>
+                        <div class="title_text">个人信息</div>
+                        <div class="line"></div>
+                    </div>
+                    <div class="section">
+                        <div class="section_photo">
+                        </div>
+                        <div class="section_info">
+                            
+                            <div class="info-container">
+                             
+                            </div>
+                            <div class="divider"></div>
+                            <div class="info-container">
+                                
+                            </div>
+                            <div class="divider"></div>
+                            <div class="record-container">
+                               
+                            </div>
+                            <div class="divider"></div>
+                            <div class="info-container">
+                                
+                            </div>
+                        </div>
+                    </div>
+                    <div class="title">
+                        <div class="circle"><img src="https://egongban.oss-cn-shenzhen.aliyuncs.com/2023/05/29/b506e8108f4d9ee742370f4301e170a.png" style="width: 14pt; height: 14pt;"></div>
+                        <div class="title_text" id="experience">从业经历</div>
+                        <div class="line"></div>
+                    </div>
+                    <div class="experience">
+                        
+                    </div>
+                    <div class="title">
+                        <div class="circle"><img src="https://egongban.oss-cn-shenzhen.aliyuncs.com/2023/05/29/b506e8108f4d9ee742370f4301e170a.png" style="width: 14pt; height: 14pt;"></div>
+                        <div class="title_text" id="training">安全培训</div>
+                        <div class="line"></div>
+                    </div>
+                    <div style="width: 90%;margin: 15px auto;">
+                        
+                    </div>
+                    <div class="title">
+                        <div class="circle"><img src="https://egongban.oss-cn-shenzhen.aliyuncs.com/2023/05/29/b506e8108f4d9ee742370f4301e170a.png" style="width: 14pt; height: 14pt;"></div>
+                        <div class="title_text" id="record">奖惩记录</div>
+                        <div class="line"></div>
+                    </div>
+                    <div style="width: 90%;margin: 15px auto;">
+                       
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 18 - 0
healsphere-common/src/main/java/com/zdqz/common/config/ZdqzConfig.java

@@ -21,6 +21,16 @@ public class ZdqzConfig {
 	/** 用户管理-账号初始密码  **/
 	private static String initPassword;
 	
+	private static String readFilePath;
+	
+
+	public static String getReadFilePath() {
+		return readFilePath;
+	}
+
+	public static void setReadFilePath(String readFilePath) {
+		ZdqzConfig.readFilePath = readFilePath;
+	}
 
 	public static String getProfile() {
 		return profile;
@@ -68,4 +78,12 @@ public class ZdqzConfig {
 	}
 	
 	
+	public static String getBakPath() {
+		return getProfile() + "/bak/";
+	}
+
+	public static String getReportPath() {
+		return getProfile() + "/report";
+	}
+	
 }

+ 151 - 173
healsphere-common/src/main/java/com/zdqz/common/core/controller/BaseController.java

@@ -26,177 +26,155 @@ import com.zdqz.common.utils.sql.SqlUtil;
  * 
  * @author 攻心小虫
  */
-public class BaseController
-{
-    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    /**
-     * 将前台传递过来的日期格式的字符串,自动转化为Date类型
-     */
-    @InitBinder
-    public void initBinder(WebDataBinder binder)
-    {
-        // Date 类型转换
-        binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
-        {
-            @Override
-            public void setAsText(String text)
-            {
-                setValue(DateUtils.parseDate(text));
-            }
-        });
-    }
-
-    /**
-     * 设置请求分页数据
-     */
-    protected void startPage()
-    {
-        PageUtils.startPage();
-    }
-
-    /**
-     * 设置请求排序数据
-     */
-    protected void startOrderBy()
-    {
-        PageDomain pageDomain = TableSupport.buildPageRequest();
-        if (StringUtils.isNotEmpty(pageDomain.getOrderBy()))
-        {
-            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
-            PageHelper.orderBy(orderBy);
-        }
-    }
-
-    /**
-     * 清理分页的线程变量
-     */
-    protected void clearPage()
-    {
-        PageUtils.clearPage();
-    }
-
-    /**
-     * 响应请求分页数据
-     */
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    protected TableDataInfo getDataTable(List<?> list)
-    {
-        TableDataInfo rspData = new TableDataInfo();
-        rspData.setCode(HttpStatus.SUCCESS);
-        rspData.setMsg("查询成功");
-        rspData.setRows(list);
-        rspData.setTotal(new PageInfo(list).getTotal());
-        return rspData;
-    }
-
-    /**
-     * 返回成功
-     */
-    public AjaxResult success()
-    {
-        return AjaxResult.success();
-    }
-
-    /**
-     * 返回失败消息
-     */
-    public AjaxResult error()
-    {
-        return AjaxResult.error();
-    }
-
-    /**
-     * 返回成功消息
-     */
-    public AjaxResult success(String message)
-    {
-        return AjaxResult.success(message);
-    }
-    
-    /**
-     * 返回成功消息
-     */
-    public AjaxResult success(Object data)
-    {
-        return AjaxResult.success(data);
-    }
-
-    /**
-     * 返回失败消息
-     */
-    public AjaxResult error(String message)
-    {
-        return AjaxResult.error(message);
-    }
-
-    /**
-     * 返回警告消息
-     */
-    public AjaxResult warn(String message)
-    {
-        return AjaxResult.warn(message);
-    }
-
-    /**
-     * 响应返回结果
-     * 
-     * @param rows 影响行数
-     * @return 操作结果
-     */
-    protected AjaxResult toAjax(int rows)
-    {
-        return rows > 0 ? AjaxResult.success() : AjaxResult.error();
-    }
-
-    /**
-     * 响应返回结果
-     * 
-     * @param result 结果
-     * @return 操作结果
-     */
-    protected AjaxResult toAjax(boolean result)
-    {
-        return result ? success() : error();
-    }
-
-    /**
-     * 页面跳转
-     */
-    public String redirect(String url)
-    {
-        return StringUtils.format("redirect:{}", url);
-    }
-
-    /**
-     * 获取用户缓存信息
-     */
-    public LoginUser getLoginUser()
-    {
-        return SecurityUtils.getLoginUser();
-    }
-
-    /**
-     * 获取登录用户id
-     */
-    public Long getUserId()
-    {
-        return getLoginUser().getUserId();
-    }
-
-    /**
-     * 获取登录部门id
-     */
-    public Long getDeptId()
-    {
-        return getLoginUser().getDeptId();
-    }
-
-    /**
-     * 获取登录用户名
-     */
-    public String getUsername()
-    {
-        return getLoginUser().getUsername();
-    }
+public class BaseController {
+	protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+	/**
+	 * 将前台传递过来的日期格式的字符串,自动转化为Date类型
+	 */
+	@InitBinder
+	public void initBinder(WebDataBinder binder) {
+		// Date 类型转换
+		binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
+			@Override
+			public void setAsText(String text) {
+				setValue(DateUtils.parseDate(text));
+			}
+		});
+	}
+
+	/**
+	 * 设置请求分页数据
+	 */
+	protected void startPage() {
+		PageUtils.startPage();
+	}
+
+	/**
+	 * 设置请求排序数据
+	 */
+	protected void startOrderBy() {
+		PageDomain pageDomain = TableSupport.buildPageRequest();
+		if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) {
+			String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
+			PageHelper.orderBy(orderBy);
+		}
+	}
+
+	/**
+	 * 清理分页的线程变量
+	 */
+	protected void clearPage() {
+		PageUtils.clearPage();
+	}
+
+	/**
+	 * 响应请求分页数据
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	protected TableDataInfo getDataTable(List<?> list) {
+		TableDataInfo rspData = new TableDataInfo();
+		rspData.setCode(HttpStatus.SUCCESS);
+		rspData.setMsg("查询成功");
+		rspData.setRows(list);
+		rspData.setTotal(new PageInfo(list).getTotal());
+		return rspData;
+	}
+
+	/**
+	 * 返回成功
+	 */
+	public AjaxResult success() {
+		return AjaxResult.success();
+	}
+
+	/**
+	 * 返回失败消息
+	 */
+	public AjaxResult error() {
+		return AjaxResult.error();
+	}
+
+	/**
+	 * 返回成功消息
+	 */
+	public AjaxResult success(String message) {
+		return AjaxResult.success(message);
+	}
+
+	/**
+	 * 返回成功消息
+	 */
+	public AjaxResult success(Object data) {
+		return AjaxResult.success(data);
+	}
+
+	/**
+	 * 返回失败消息
+	 */
+	public AjaxResult error(String message) {
+		return AjaxResult.error(message);
+	}
+
+	/**
+	 * 返回警告消息
+	 */
+	public AjaxResult warn(String message) {
+		return AjaxResult.warn(message);
+	}
+
+	/**
+	 * 响应返回结果
+	 * 
+	 * @param rows 影响行数
+	 * @return 操作结果
+	 */
+	protected AjaxResult toAjax(int rows) {
+		return rows > 0 ? AjaxResult.success() : AjaxResult.error();
+	}
+
+	/**
+	 * 响应返回结果
+	 * 
+	 * @param result 结果
+	 * @return 操作结果
+	 */
+	protected AjaxResult toAjax(boolean result) {
+		return result ? success() : error();
+	}
+
+	/**
+	 * 页面跳转
+	 */
+	public String redirect(String url) {
+		return StringUtils.format("redirect:{}", url);
+	}
+
+	/**
+	 * 获取用户缓存信息
+	 */
+	public LoginUser getLoginUser() {
+		return SecurityUtils.getLoginUser();
+	}
+
+	/**
+	 * 获取登录用户id
+	 */
+	public Long getUserId() {
+		return getLoginUser().getUserId();
+	}
+
+	/**
+	 * 获取登录部门id
+	 */
+	public Long getDeptId() {
+		return getLoginUser().getDeptId();
+	}
+
+	/**
+	 * 获取登录用户名
+	 */
+	public String getUsername() {
+		return getLoginUser().getUsername();
+	}
 }

+ 86 - 102
healsphere-common/src/main/java/com/zdqz/common/core/domain/BaseEntity.java

@@ -13,106 +13,90 @@ import com.fasterxml.jackson.annotation.JsonInclude;
  * 
  * @author 攻心小虫
  */
-public class BaseEntity implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 搜索值 */
-    @JsonIgnore
-    private String searchValue;
-
-    /** 创建者 */
-    private String createBy;
-
-    /** 创建时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
-
-    /** 更新者 */
-    private String updateBy;
-
-    /** 更新时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-
-    /** 备注 */
-    private String remark;
-
-    /** 请求参数 */
-    @JsonInclude(JsonInclude.Include.NON_EMPTY)
-    private Map<String, Object> params;
-
-    public String getSearchValue()
-    {
-        return searchValue;
-    }
-
-    public void setSearchValue(String searchValue)
-    {
-        this.searchValue = searchValue;
-    }
-
-    public String getCreateBy()
-    {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy)
-    {
-        this.createBy = createBy;
-    }
-
-    public Date getCreateTime()
-    {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime)
-    {
-        this.createTime = createTime;
-    }
-
-    public String getUpdateBy()
-    {
-        return updateBy;
-    }
-
-    public void setUpdateBy(String updateBy)
-    {
-        this.updateBy = updateBy;
-    }
-
-    public Date getUpdateTime()
-    {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime)
-    {
-        this.updateTime = updateTime;
-    }
-
-    public String getRemark()
-    {
-        return remark;
-    }
-
-    public void setRemark(String remark)
-    {
-        this.remark = remark;
-    }
-
-    public Map<String, Object> getParams()
-    {
-        if (params == null)
-        {
-            params = new HashMap<>();
-        }
-        return params;
-    }
-
-    public void setParams(Map<String, Object> params)
-    {
-        this.params = params;
-    }
+public class BaseEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/** 搜索值 */
+	@JsonIgnore
+	private String searchValue;
+
+	/** 创建者 */
+	private String createBy;
+
+	/** 创建时间 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+
+	/** 更新者 */
+	private String updateBy;
+
+	/** 更新时间 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
+
+	/** 备注 */
+	private String remark;
+
+	/** 请求参数 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Map<String, Object> params;
+
+	public String getSearchValue() {
+		return searchValue;
+	}
+
+	public void setSearchValue(String searchValue) {
+		this.searchValue = searchValue;
+	}
+
+	public String getCreateBy() {
+		return createBy;
+	}
+
+	public void setCreateBy(String createBy) {
+		this.createBy = createBy;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getUpdateBy() {
+		return updateBy;
+	}
+
+	public void setUpdateBy(String updateBy) {
+		this.updateBy = updateBy;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Map<String, Object> getParams() {
+		if (params == null) {
+			params = new HashMap<>();
+		}
+		return params;
+	}
+
+	public void setParams(Map<String, Object> params) {
+		this.params = params;
+	}
 }

+ 12 - 0
healsphere-common/src/main/java/com/zdqz/common/core/domain/entity/SysUser.java

@@ -62,6 +62,10 @@ public class SysUser extends BaseEntity {
 	/** 部门对象 */
 	@Excels({ @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) })
 	private SysDept dept;
+	
+	/** 部门对象 */
+	@Excels({ @Excel(name = "上级部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "上级部门负责人", targetAttr = "leader", type = Type.EXPORT) })
+	private SysDept topdept;
 
 	/** 角色对象 */
 	private List<SysRole> roles;
@@ -181,6 +185,14 @@ public class SysUser extends BaseEntity {
 	public void setDept(SysDept dept) {
 		this.dept = dept;
 	}
+	
+	public SysDept getTopdept() {
+		return topdept;
+	}
+
+	public void setTopdept(SysDept topdept) {
+		this.topdept = topdept;
+	}
 
 	public List<SysRole> getRoles() {
 		return roles;

+ 167 - 209
healsphere-common/src/main/java/com/zdqz/common/utils/file/FileUploadUtils.java

@@ -20,213 +20,171 @@ import com.zdqz.common.utils.uuid.Seq;
  *
  * @author 攻心小虫
  */
-public class FileUploadUtils
-{
-    /**
-     * 默认大小 50M
-     */
-    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024L;
-
-    /**
-     * 默认的文件名最大长度 100
-     */
-    public static final int DEFAULT_FILE_NAME_LENGTH = 100;
-
-    /**
-     * 默认上传的地址
-     */
-    private static String defaultBaseDir = ZdqzConfig.getProfile();
-
-    public static void setDefaultBaseDir(String defaultBaseDir)
-    {
-        FileUploadUtils.defaultBaseDir = defaultBaseDir;
-    }
-
-    public static String getDefaultBaseDir()
-    {
-        return defaultBaseDir;
-    }
-
-    /**
-     * 以默认配置进行文件上传
-     *
-     * @param file 上传的文件
-     * @return 文件名称
-     * @throws Exception
-     */
-    public static final String upload(MultipartFile file) throws IOException
-    {
-        try
-        {
-            return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
-        }
-        catch (Exception e)
-        {
-            throw new IOException(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * 根据文件路径上传
-     *
-     * @param baseDir 相对应用的基目录
-     * @param file 上传的文件
-     * @return 文件名称
-     * @throws IOException
-     */
-    public static final String upload(String baseDir, MultipartFile file) throws IOException
-    {
-        try
-        {
-            return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
-        }
-        catch (Exception e)
-        {
-            throw new IOException(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * 文件上传
-     *
-     * @param baseDir 相对应用的基目录
-     * @param file 上传的文件
-     * @param allowedExtension 上传文件类型
-     * @return 返回上传成功的文件名
-     * @throws FileSizeLimitExceededException 如果超出最大大小
-     * @throws FileNameLengthLimitExceededException 文件名太长
-     * @throws IOException 比如读写文件出错时
-     * @throws InvalidExtensionException 文件校验异常
-     */
-    public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)
-            throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
-            InvalidExtensionException
-    {
-        int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
-        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
-        {
-            throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
-        }
-
-        assertAllowed(file, allowedExtension);
-
-        String fileName = extractFilename(file);
-
-        String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
-        file.transferTo(Paths.get(absPath));
-        return getPathFileName(baseDir, fileName);
-    }
-
-    /**
-     * 编码文件名
-     */
-    public static final String extractFilename(MultipartFile file)
-    {
-        return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
-                FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
-    }
-
-    public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException
-    {
-        File desc = new File(uploadDir + File.separator + fileName);
-
-        if (!desc.exists())
-        {
-            if (!desc.getParentFile().exists())
-            {
-                desc.getParentFile().mkdirs();
-            }
-        }
-        return desc;
-    }
-
-    public static final String getPathFileName(String uploadDir, String fileName) throws IOException
-    {
-        int dirLastIndex = ZdqzConfig.getProfile().length() + 1;
-        String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
-        return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName;
-    }
-
-    /**
-     * 文件大小校验
-     *
-     * @param file 上传的文件
-     * @return
-     * @throws FileSizeLimitExceededException 如果超出最大大小
-     * @throws InvalidExtensionException
-     */
-    public static final void assertAllowed(MultipartFile file, String[] allowedExtension)
-            throws FileSizeLimitExceededException, InvalidExtensionException
-    {
-        long size = file.getSize();
-        if (size > DEFAULT_MAX_SIZE)
-        {
-            throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
-        }
-
-        String fileName = file.getOriginalFilename();
-        String extension = getExtension(file);
-        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension))
-        {
-            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else
-            {
-                throw new InvalidExtensionException(allowedExtension, extension, fileName);
-            }
-        }
-    }
-
-    /**
-     * 判断MIME类型是否是允许的MIME类型
-     *
-     * @param extension
-     * @param allowedExtension
-     * @return
-     */
-    public static final boolean isAllowedExtension(String extension, String[] allowedExtension)
-    {
-        for (String str : allowedExtension)
-        {
-            if (str.equalsIgnoreCase(extension))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * 获取文件名的后缀
-     *
-     * @param file 表单文件
-     * @return 后缀名
-     */
-    public static final String getExtension(MultipartFile file)
-    {
-        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
-        if (StringUtils.isEmpty(extension))
-        {
-            extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
-        }
-        return extension;
-    }
+public class FileUploadUtils {
+	/**
+	 * 默认大小 50M
+	 */
+	public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024L;
+
+	/**
+	 * 默认的文件名最大长度 100
+	 */
+	public static final int DEFAULT_FILE_NAME_LENGTH = 100;
+
+	/**
+	 * 默认上传的地址
+	 */
+	private static String defaultBaseDir = ZdqzConfig.getProfile();
+
+	public static void setDefaultBaseDir(String defaultBaseDir) {
+		FileUploadUtils.defaultBaseDir = defaultBaseDir;
+	}
+
+	public static String getDefaultBaseDir() {
+		return defaultBaseDir;
+	}
+
+	/**
+	 * 以默认配置进行文件上传
+	 *
+	 * @param file 上传的文件
+	 * @return 文件名称
+	 * @throws Exception
+	 */
+	public static final String upload(MultipartFile file) throws IOException {
+		try {
+			return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+		} catch (Exception e) {
+			throw new IOException(e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * 根据文件路径上传
+	 *
+	 * @param baseDir 相对应用的基目录
+	 * @param file    上传的文件
+	 * @return 文件名称
+	 * @throws IOException
+	 */
+	public static final String upload(String baseDir, MultipartFile file) throws IOException {
+		try {
+			return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+		} catch (Exception e) {
+			throw new IOException(e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * 文件上传
+	 *
+	 * @param baseDir          相对应用的基目录
+	 * @param file             上传的文件
+	 * @param allowedExtension 上传文件类型
+	 * @return 返回上传成功的文件名
+	 * @throws FileSizeLimitExceededException       如果超出最大大小
+	 * @throws FileNameLengthLimitExceededException 文件名太长
+	 * @throws IOException                          比如读写文件出错时
+	 * @throws InvalidExtensionException            文件校验异常
+	 */
+	public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)
+			throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException {
+		int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
+		if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) {
+			throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
+		}
+
+		assertAllowed(file, allowedExtension);
+
+		String fileName = extractFilename(file);
+
+		String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
+		file.transferTo(Paths.get(absPath));
+		return getPathFileName(baseDir, fileName);
+	}
+
+	/**
+	 * 编码文件名
+	 */
+	public static final String extractFilename(MultipartFile file) {
+		return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
+	}
+
+	public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException {
+		File desc = new File(uploadDir + File.separator + fileName);
+
+		if (!desc.exists()) {
+			if (!desc.getParentFile().exists()) {
+				desc.getParentFile().mkdirs();
+			}
+		}
+		return desc;
+	}
+
+	public static final String getPathFileName(String uploadDir, String fileName) throws IOException {
+		int dirLastIndex = ZdqzConfig.getProfile().length() + 1;
+		String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
+		return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName;
+	}
+
+	/**
+	 * 文件大小校验
+	 *
+	 * @param file 上传的文件
+	 * @return
+	 * @throws FileSizeLimitExceededException 如果超出最大大小
+	 * @throws InvalidExtensionException
+	 */
+	public static final void assertAllowed(MultipartFile file, String[] allowedExtension) throws FileSizeLimitExceededException, InvalidExtensionException {
+		long size = file.getSize();
+		if (size > DEFAULT_MAX_SIZE) {
+			throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
+		}
+
+		String fileName = file.getOriginalFilename();
+		String extension = getExtension(file);
+		if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) {
+			if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {
+				throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension, fileName);
+			} else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {
+				throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension, fileName);
+			} else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {
+				throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension, fileName);
+			} else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {
+				throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension, fileName);
+			} else {
+				throw new InvalidExtensionException(allowedExtension, extension, fileName);
+			}
+		}
+	}
+
+	/**
+	 * 判断MIME类型是否是允许的MIME类型
+	 *
+	 * @param extension
+	 * @param allowedExtension
+	 * @return
+	 */
+	public static final boolean isAllowedExtension(String extension, String[] allowedExtension) {
+		for (String str : allowedExtension) {
+			if (str.equalsIgnoreCase(extension)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * 获取文件名的后缀
+	 *
+	 * @param file 表单文件
+	 * @return 后缀名
+	 */
+	public static final String getExtension(MultipartFile file) {
+		String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+		if (StringUtils.isEmpty(extension)) {
+			extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
+		}
+		return extension;
+	}
 }

File diff suppressed because it is too large
+ 1486 - 1803
healsphere-common/src/main/java/com/zdqz/common/utils/poi/ExcelUtil.java


+ 0 - 8
healsphere-system/src/main/java/com/zdqz/system/service/ISysUserService.java

@@ -96,14 +96,6 @@ public interface ISysUserService {
 	 */
 	public int insertUser(SysUser user);
 
-	/**
-	 * 注册用户信息
-	 * 
-	 * @param user 用户信息
-	 * @return 结果
-	 */
-	public boolean registerUser(SysUser user);
-
 	/**
 	 * 修改用户信息
 	 * 

+ 0 - 11
healsphere-system/src/main/java/com/zdqz/system/service/impl/SysUserServiceImpl.java

@@ -204,17 +204,6 @@ public class SysUserServiceImpl implements ISysUserService {
 		return rows;
 	}
 
-	/**
-	 * 注册用户信息
-	 * 
-	 * @param user 用户信息
-	 * @return 结果
-	 */
-	@Override
-	public boolean registerUser(SysUser user) {
-		return userMapper.insertUser(user) > 0;
-	}
-
 	/**
 	 * 修改保存用户信息
 	 * 

+ 18 - 1
healsphere-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -21,6 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"   column="update_time"  />
         <result property="remark"       column="remark"       />
         <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
+        <association property="topdept"    javaType="SysDept"         resultMap="topDeptResult" />
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
     </resultMap>
 	
@@ -33,6 +34,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="leader"    column="leader"      />
         <result property="status"    column="dept_status" />
     </resultMap>
+    
+    <resultMap id="topDeptResult" type="SysDept">
+        <id     property="deptId"    column="top_dept_id"     />
+        <result property="parentId"  column="top_parent_id"   />
+        <result property="deptName"  column="top_dept_name"   />
+        <result property="ancestors" column="top_ancestors"   />
+        <result property="orderNum"  column="top_order_num"   />
+        <result property="leader"    column="top_leader"      />
+        <result property="status"    column="top_dept_status" />
+    </resultMap>
 	
     <resultMap id="RoleResult" type="SysRole">
         <id     property="roleId"       column="role_id"        />
@@ -45,16 +56,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<sql id="selectUserVo">
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.phonenumber, u.password, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
+        t.dept_id top_dept_id, t.parent_id top_parent_id, t.ancestors top_ancestors, t.dept_name top_dept_name, t.order_num top_order_num, t.leader top_leader, t.status as top_dept_status,
+        
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
+		    left join sys_dept t on d.parent_id = t.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
 		    left join sys_role r on r.role_id = ur.role_id
     </sql>
     
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.phonenumber, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.phonenumber, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
+		d.dept_name, d.leader,t.dept_name top_dept_name, t.leader  top_leader
+		from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
+		left join sys_dept t on d.parent_id = t.dept_id
 		where u.del_flag = '0'
 		<if test="userId != null and userId != 0">
 			AND u.user_id = #{userId}