From 7e5e2d79091a451ebb988a75713633808962c7e0 Mon Sep 17 00:00:00 2001
From: linjj <850658129@qq.com>
Date: Fri, 4 Jul 2025 03:56:08 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 10 +
.../controller/RcvBasicController.java | 22 +-
.../controller/RcvCallController.java | 62 +++++
.../controller/param/CallRequest.java | 27 ++
.../controller/param/PageRequest.java | 16 +-
.../controller/param/RcvPageRequest.java | 29 ++
.../controller/param/SginBasicDto.java | 7 +-
.../duplicate/controller/vo/CallBasic.java | 59 +++++
.../controller/vo/CallExpoetBasic.java | 61 +++++
.../controller/vo/DeptCodeAndName.java | 18 ++
.../duplicate/controller/vo/ExportBasic.java | 82 ++++++
.../duplicate/controller/vo/PageBasic.java | 13 +-
.../duplicate/controller/vo/RcvBasic.java | 2 +-
.../infrastructure/dao/BasicMapper.java | 13 +-
.../duplicate/service/RcvBasicService.java | 7 +-
.../duplicate/service/RcvCallService.java | 29 ++
.../service/impl/RcvBasicServiceImpl.java | 147 +++++++++--
.../service/impl/RcvCallServiceImpl.java | 248 ++++++++++++++++++
.../com/example/utils/ExcelExportHandler.java | 80 ++++++
src/main/resources/application.properties | 19 ++
src/main/resources/mapper/BasicMapper.xml | 62 ++++-
21 files changed, 976 insertions(+), 37 deletions(-)
create mode 100644 src/main/java/com/example/duplicate/controller/RcvCallController.java
create mode 100644 src/main/java/com/example/duplicate/controller/param/CallRequest.java
create mode 100644 src/main/java/com/example/duplicate/controller/param/RcvPageRequest.java
create mode 100644 src/main/java/com/example/duplicate/controller/vo/CallBasic.java
create mode 100644 src/main/java/com/example/duplicate/controller/vo/CallExpoetBasic.java
create mode 100644 src/main/java/com/example/duplicate/controller/vo/DeptCodeAndName.java
create mode 100644 src/main/java/com/example/duplicate/controller/vo/ExportBasic.java
create mode 100644 src/main/java/com/example/duplicate/service/RcvCallService.java
create mode 100644 src/main/java/com/example/duplicate/service/impl/RcvCallServiceImpl.java
create mode 100644 src/main/java/com/example/utils/ExcelExportHandler.java
create mode 100644 src/main/resources/application.properties
diff --git a/pom.xml b/pom.xml
index 07cecb1..2c99985 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,16 @@
log4jdbc-log4j2-jdbc4.1
1.16
+
+ com.alibaba
+ easyexcel
+ 2.2.6
+
+
+
+
+
+
com.alibaba
druid
diff --git a/src/main/java/com/example/duplicate/controller/RcvBasicController.java b/src/main/java/com/example/duplicate/controller/RcvBasicController.java
index 8e4e08e..18e7eba 100644
--- a/src/main/java/com/example/duplicate/controller/RcvBasicController.java
+++ b/src/main/java/com/example/duplicate/controller/RcvBasicController.java
@@ -2,18 +2,26 @@ package com.example.duplicate.controller;
import com.example.duplicate.controller.param.PageRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
+import com.example.duplicate.controller.vo.ExportBasic;
import com.example.duplicate.controller.vo.PageBasic;
-import com.example.duplicate.controller.vo.RcvBasic;
import com.example.duplicate.service.RcvBasicService;
import com.example.utils.CommonResult;
+import com.example.utils.ExcelExportHandler;
import com.example.utils.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
/**
* @ClassName RcvBasicController
* @Description 示踪接口查询
@@ -29,6 +37,9 @@ public class RcvBasicController {
@Autowired
private RcvBasicService rcvBasicService;
+ @Resource
+ private ExcelExportHandler excelExportHandler;
+
@ApiOperation("签收接口")
@PostMapping("/Sign")
@@ -48,4 +59,13 @@ public class RcvBasicController {
@RequestParam @ApiParam(required = false, name = "revoveryState", value = "签收状态")String revoveryState) {
return rcvBasicService.UpdateSign(patientId,revoveryState);
}
+ @ApiOperation("导出")
+ @PostMapping("/export")
+ public void pageExport(@RequestBody RcvPageRequest rcvPageRequest, HttpServletResponse response) {
+ List pageBasics = rcvBasicService.pageExport(rcvPageRequest);
+ if (!CollectionUtils.isEmpty(pageBasics)) {
+ excelExportHandler.export(response, "病案回收管理列表", pageBasics, ExportBasic.class);
+ }
+ }
+
}
diff --git a/src/main/java/com/example/duplicate/controller/RcvCallController.java b/src/main/java/com/example/duplicate/controller/RcvCallController.java
new file mode 100644
index 0000000..34e41d4
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/RcvCallController.java
@@ -0,0 +1,62 @@
+package com.example.duplicate.controller;
+
+import com.example.duplicate.controller.param.CallRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
+import com.example.duplicate.controller.vo.CallBasic;
+import com.example.duplicate.controller.vo.CallExpoetBasic;
+import com.example.duplicate.controller.vo.DeptCodeAndName;
+import com.example.duplicate.controller.vo.PageBasic;
+import com.example.duplicate.service.RcvCallService;
+import com.example.utils.CommonResult;
+import com.example.utils.ExcelExportHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName RcvCallController
+ * @Description 回收系统催缴页面接口
+ * @Author linjj
+ * @Date 2025/6/26 16:22
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/rcv/call")
+@Api(value = "催缴页面接口", tags = "催缴页面接口")
+@Slf4j
+public class RcvCallController {
+ @Autowired
+ private RcvCallService rcvCallService;
+ @Resource
+ private ExcelExportHandler excelExportHandler;
+ @ApiOperation("获取科室接口")
+ @PostMapping("/getDeptName")
+ public CommonResult> deptName() {
+ return CommonResult.success(rcvCallService.deptName());
+ }
+
+ @ApiOperation("催缴查询")
+ @PostMapping("/callAll")
+ public CommonResult>> callAll(@RequestBody CallRequest callRequest) {
+ return rcvCallService.callAll(callRequest);
+ }
+ @ApiOperation("催缴导出")
+ @PostMapping("/callExport")
+ public void pageExport(@RequestBody CallRequest callRequest, HttpServletResponse response) {
+ List callExpoetBasics = rcvCallService.exportCall(callRequest);
+ if (!CollectionUtils.isEmpty(callExpoetBasics)) {
+ excelExportHandler.export(response, "催缴列表", callExpoetBasics, CallExpoetBasic.class);
+ }
+ }
+}
diff --git a/src/main/java/com/example/duplicate/controller/param/CallRequest.java b/src/main/java/com/example/duplicate/controller/param/CallRequest.java
new file mode 100644
index 0000000..d4b707e
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/param/CallRequest.java
@@ -0,0 +1,27 @@
+package com.example.duplicate.controller.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName CallPageRequest
+ * @Description 催缴页面分页参数
+ * @Author linjj
+ * @Date 2025/6/26 18:58
+ * @Version 1.0
+ */
+@Data
+public class CallRequest {
+
+ @ApiModelProperty("出院天数")
+ private String outNum;//出院天数
+ @ApiModelProperty("开始时间")
+ private String startTime;//开始时间
+ @ApiModelProperty("结束时间")
+ private String endTime;//结束时间
+ @ApiModelProperty("出院科室")
+ private String disDeptName;//出院科室
+}
diff --git a/src/main/java/com/example/duplicate/controller/param/PageRequest.java b/src/main/java/com/example/duplicate/controller/param/PageRequest.java
index 17fefec..234288a 100644
--- a/src/main/java/com/example/duplicate/controller/param/PageRequest.java
+++ b/src/main/java/com/example/duplicate/controller/param/PageRequest.java
@@ -1,7 +1,11 @@
package com.example.duplicate.controller.param;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.Date;
+
/**
* @ClassName PageRequest
* @Description 分页请求参数
@@ -12,10 +16,20 @@ import lombok.Data;
@Data
public class PageRequest {
-
+ @ApiModelProperty(value = "页码")
private int page; // 页码(通常从1开始)
+ @ApiModelProperty(value = "每页大小")
private int size; // 每页大小
+ @ApiModelProperty(value = "病人ID")
private String patientId; // 病人ID
+ @ApiModelProperty(value = "病人姓名")
private String name; // 病人姓名
+ @ApiModelProperty(value = "出院天数")
+ private String outNum;//出院天数
+ @ApiModelProperty(value = "开始时间")
+ private String startTime;//开始时间
+
+ @ApiModelProperty(value = "结束时间")
+ private String endTime;//结束时间
}
diff --git a/src/main/java/com/example/duplicate/controller/param/RcvPageRequest.java b/src/main/java/com/example/duplicate/controller/param/RcvPageRequest.java
new file mode 100644
index 0000000..4d6659e
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/param/RcvPageRequest.java
@@ -0,0 +1,29 @@
+package com.example.duplicate.controller.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName RcvPageRequest
+ * @Description 回收页面导出
+ * @Author linjj
+ * @Date 2025/6/26 14:32
+ * @Version 1.0
+ */
+@Data
+public class RcvPageRequest {
+ @ApiModelProperty(value = "病人ID")
+ private String patientId; // 病人ID
+ @ApiModelProperty(value = "病人姓名")
+ private String name; // 病人姓名
+ @ApiModelProperty(value = "出院天数")
+ private String outNum;//出院天数
+ @ApiModelProperty(value = "开始时间")
+ private String startTime;//开始时间
+
+ @ApiModelProperty(value = "结束时间")
+ private String endTime;//结束时间
+}
diff --git a/src/main/java/com/example/duplicate/controller/param/SginBasicDto.java b/src/main/java/com/example/duplicate/controller/param/SginBasicDto.java
index 0d1a14c..8033cca 100644
--- a/src/main/java/com/example/duplicate/controller/param/SginBasicDto.java
+++ b/src/main/java/com/example/duplicate/controller/param/SginBasicDto.java
@@ -21,7 +21,8 @@ public class SginBasicDto {
@ApiModelProperty(value = "住院次数")
private Integer admissTimes;
-
+ @ApiModelProperty(value = "入院日期")
+ private Date admissDate;
@ApiModelProperty(value = "出院日期")
private Date disDate;
@ApiModelProperty(value = "姓名")
@@ -44,6 +45,10 @@ public class SginBasicDto {
@ApiModelProperty(value = "回收状态")
private String revoveryState;
+ @ApiModelProperty(value = "出院科室")
+ private String disDeptName;
+ @ApiModelProperty(value = "操作人")
+ private String revoveryName;
}
diff --git a/src/main/java/com/example/duplicate/controller/vo/CallBasic.java b/src/main/java/com/example/duplicate/controller/vo/CallBasic.java
new file mode 100644
index 0000000..498e72f
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/vo/CallBasic.java
@@ -0,0 +1,59 @@
+package com.example.duplicate.controller.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @ClassName CallBasic
+ * @Description 催缴分页查询
+ * @Author linjj
+ * @Date 2025/6/26 18:55
+ * @Version 1.0
+ */
+@Data
+public class CallBasic {
+
+ @ApiModelProperty(value = "病案主键")
+ private String patientId;
+
+ @ApiModelProperty(value = "住院次数")
+ private Integer admissTimes;
+
+ @ApiModelProperty(value = "出院日期")
+ private Date disDate;
+ @ApiModelProperty(value = "姓名")
+ private String name;
+
+ @ApiModelProperty(value = "性别")
+ private String sex;
+
+ @ApiModelProperty(value = "出院科室")
+ private String disDeptName;
+
+ @ApiModelProperty(value = "床位号")
+ private String bedNumber;
+
+ @ApiModelProperty(value = "住院医师")
+ private String attendingName;
+
+ @ApiModelProperty(value = "出院天数")
+ private Integer outNum;
+
+
+ // 格式化 disDate
+ public String getFormattedDisDate() {
+ if (disDate != null) {
+ try {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ return formatter.format(disDate);
+ } catch (Exception e) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/com/example/duplicate/controller/vo/CallExpoetBasic.java b/src/main/java/com/example/duplicate/controller/vo/CallExpoetBasic.java
new file mode 100644
index 0000000..060aa4f
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/vo/CallExpoetBasic.java
@@ -0,0 +1,61 @@
+package com.example.duplicate.controller.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @ClassName CallBasic
+ * @Description 导出催缴
+ * @Author linjj
+ * @Date 2025/6/26 18:55
+ * @Version 1.0
+ */
+@Data
+public class CallExpoetBasic {
+ @ExcelProperty(value = {"病案主键"}, index = 0)
+ @ApiModelProperty(value = "病案主键")
+ private String patientId;
+ @ExcelProperty(value = {"住院次数"}, index = 1)
+ @ApiModelProperty(value = "住院次数")
+ private Integer admissTimes;
+ @ExcelProperty(value = {"出院日期"}, index = 2)
+ @ApiModelProperty(value = "出院日期")
+ private Date disDate;
+ @ExcelProperty(value = {"姓名"}, index = 3)
+ @ApiModelProperty(value = "姓名")
+ private String name;
+ @ExcelProperty(value = {"性别"}, index = 4)
+ @ApiModelProperty(value = "性别")
+ private String sex;
+ @ExcelProperty(value = {"出院科室"}, index = 5)
+ @ApiModelProperty(value = "出院科室")
+ private String disDeptName;
+ @ExcelProperty(value = {"床位号"}, index = 6)
+ @ApiModelProperty(value = "床位号")
+ private String bedNumber;
+ @ExcelProperty(value = {"住院医师"}, index = 7)
+ @ApiModelProperty(value = "住院医师")
+ private String attendingName;
+ @ExcelProperty(value = {"出院天数"}, index = 8)
+ @ApiModelProperty(value = "出院天数")
+ private Integer outNum;
+
+
+ // 格式化 disDate
+ public String getFormattedDisDate() {
+ if (disDate != null) {
+ try {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ return formatter.format(disDate);
+ } catch (Exception e) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/com/example/duplicate/controller/vo/DeptCodeAndName.java b/src/main/java/com/example/duplicate/controller/vo/DeptCodeAndName.java
new file mode 100644
index 0000000..7caee61
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/vo/DeptCodeAndName.java
@@ -0,0 +1,18 @@
+package com.example.duplicate.controller.vo;
+
+import lombok.Data;
+
+/**
+ * @ClassName DeptCodeAndName
+ * @Description
+ * @Author linjj
+ * @Date 2025/7/1 12:25
+ * @Version 1.0
+ */
+@Data
+public class DeptCodeAndName {
+
+ private String disDeptCode;//科室代码
+
+ private String disDeptName;//科室名称
+}
diff --git a/src/main/java/com/example/duplicate/controller/vo/ExportBasic.java b/src/main/java/com/example/duplicate/controller/vo/ExportBasic.java
new file mode 100644
index 0000000..1c1dfd9
--- /dev/null
+++ b/src/main/java/com/example/duplicate/controller/vo/ExportBasic.java
@@ -0,0 +1,82 @@
+package com.example.duplicate.controller.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @ClassName ExportBasic
+ * @Description 导出实体类
+ * @Author linjj
+ * @Date 2025/6/26 17:34
+ * @Version 1.0
+ */
+@Data
+public class ExportBasic {
+ @ExcelProperty(value = {"病案主键"}, index = 0)
+ @ApiModelProperty(value = "病案主键")
+ private String patientId;
+ @ExcelProperty(value = {"住院次数"}, index = 1)
+ @ApiModelProperty(value = "住院次数")
+ private Integer admissTimes;
+ @ExcelProperty(value = {"出院日期"}, index = 2)
+ @ApiModelProperty(value = "出院日期")
+ private Date disDate;
+ @ExcelProperty(value = {"姓名"}, index = 3)
+ @ApiModelProperty(value = "姓名")
+ private String name;
+ @ExcelProperty(value = {"性别"}, index = 4)
+ @ApiModelProperty(value = "性别")
+ private String sex;
+
+ @ExcelProperty(value = {"住院医师"}, index = 5)
+ @ApiModelProperty(value = "住院医师")
+ private String attendingName;
+
+ @ExcelProperty(value = {"床位号"}, index = 6)
+ @ApiModelProperty(value = "床位号")
+ private String bedNumber;
+ @ExcelProperty(value = {"已签收天数"}, index = 7)
+ @ApiModelProperty(value = "已签收天数")
+ private Integer outNum;
+ @ExcelProperty(value = {"回收时间"}, index = 8)
+ @ApiModelProperty(value = "回收时间")
+ private Date revoveryTime;
+ @ExcelProperty(value = {"回收状态"}, index = 9)
+ @ApiModelProperty(value = "回收状态")
+ private String revoveryState;
+ @ExcelProperty(value = {"出院科室"}, index = 10)
+ @ApiModelProperty(value = "出院科室")
+ private String disDeptName;
+
+ // 格式化 disDate
+ public String getFormattedDisDate() {
+ if (disDate != null) {
+ try {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ return formatter.format(disDate);
+ } catch (Exception e) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ // 格式化 revoveryTime
+ public String getFormattedRevoveryTime() {
+ if (revoveryTime != null) {
+ try {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ return formatter.format(revoveryTime);
+ } catch (Exception e) {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/com/example/duplicate/controller/vo/PageBasic.java b/src/main/java/com/example/duplicate/controller/vo/PageBasic.java
index b0bd13f..76e2bd3 100644
--- a/src/main/java/com/example/duplicate/controller/vo/PageBasic.java
+++ b/src/main/java/com/example/duplicate/controller/vo/PageBasic.java
@@ -40,7 +40,7 @@ public class PageBasic {
@ApiModelProperty(value = "床位号")
private String bedNumber;
- @ApiModelProperty(value = "出院天数")
+ @ApiModelProperty(value = "已签收天数")
private Integer outNum;
@ApiModelProperty(value = "回收时间")
private Date revoveryTime;
@@ -48,11 +48,18 @@ public class PageBasic {
@ApiModelProperty(value = "回收状态")
private String revoveryState;
+ @ApiModelProperty(value = "出院科室")
+ private String disDeptName;
+
+ @ApiModelProperty(value = "操作人")
+ private String revoveryName;
+
+
// 格式化 disDate
public String getFormattedDisDate() {
if (disDate != null) {
try {
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(disDate);
} catch (Exception e) {
return null;
@@ -66,7 +73,7 @@ public class PageBasic {
public String getFormattedRevoveryTime() {
if (revoveryTime != null) {
try {
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(revoveryTime);
} catch (Exception e) {
return null;
diff --git a/src/main/java/com/example/duplicate/controller/vo/RcvBasic.java b/src/main/java/com/example/duplicate/controller/vo/RcvBasic.java
index f4c3ed4..7f1cedc 100644
--- a/src/main/java/com/example/duplicate/controller/vo/RcvBasic.java
+++ b/src/main/java/com/example/duplicate/controller/vo/RcvBasic.java
@@ -38,7 +38,7 @@ public class RcvBasic {
@ApiModelProperty(value = "床位号")
private String bedNumber;
- @ApiModelProperty(value = "出院天数")
+ @ApiModelProperty(value = "已签收天数")
private String outNum;
@ApiModelProperty(value = "回收时间")
private Date revoveryTime;
diff --git a/src/main/java/com/example/duplicate/infrastructure/dao/BasicMapper.java b/src/main/java/com/example/duplicate/infrastructure/dao/BasicMapper.java
index c7ec09b..c39f60b 100644
--- a/src/main/java/com/example/duplicate/infrastructure/dao/BasicMapper.java
+++ b/src/main/java/com/example/duplicate/infrastructure/dao/BasicMapper.java
@@ -1,9 +1,12 @@
package com.example.duplicate.infrastructure.dao;
+import com.example.duplicate.controller.param.CallRequest;
import com.example.duplicate.controller.param.PageRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
import com.example.duplicate.controller.param.SginBasicDto;
+import com.example.duplicate.controller.vo.DeptCodeAndName;
+import com.example.duplicate.controller.vo.ExportBasic;
import com.example.duplicate.controller.vo.PageBasic;
-import com.example.duplicate.controller.vo.RcvBasic;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -25,6 +28,12 @@ public interface BasicMapper {
List getIDByPatientId(String patientId);
- Boolean UpdateState(@Param("patientId") String patientId, @Param("revoveryState") String revoveryState);
+ Boolean UpdateState(@Param("patientId") String patientId, @Param("revoveryState") String revoveryState,@Param("userName") String userName);
+
+ ListpageExport(RcvPageRequest rcvPageRequest);
+
+ List getBasciByState(CallRequest callRequest);
+
+ ListgetDeptCodeAndName();
}
diff --git a/src/main/java/com/example/duplicate/service/RcvBasicService.java b/src/main/java/com/example/duplicate/service/RcvBasicService.java
index ba81a45..bf5d7c8 100644
--- a/src/main/java/com/example/duplicate/service/RcvBasicService.java
+++ b/src/main/java/com/example/duplicate/service/RcvBasicService.java
@@ -1,12 +1,15 @@
package com.example.duplicate.service;
import com.example.duplicate.controller.param.PageRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
+import com.example.duplicate.controller.vo.ExportBasic;
import com.example.duplicate.controller.vo.PageBasic;
-import com.example.duplicate.controller.vo.RcvBasic;
import com.example.utils.CommonResult;
import com.example.utils.PageResult;
import org.springframework.web.bind.annotation.RequestBody;
+import java.util.List;
+
/**
* @InterfaceName RcvBasicService
@@ -22,4 +25,6 @@ public interface RcvBasicService {
CommonResult> pageAll(PageRequest pageRequest);
CommonResult> UpdateSign(String patientId,String revoveryState);
+
+ ListpageExport(RcvPageRequest rcvPageRequest);
}
diff --git a/src/main/java/com/example/duplicate/service/RcvCallService.java b/src/main/java/com/example/duplicate/service/RcvCallService.java
new file mode 100644
index 0000000..c9270b6
--- /dev/null
+++ b/src/main/java/com/example/duplicate/service/RcvCallService.java
@@ -0,0 +1,29 @@
+package com.example.duplicate.service;
+
+import com.example.duplicate.controller.param.CallRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
+import com.example.duplicate.controller.vo.CallBasic;
+import com.example.duplicate.controller.vo.CallExpoetBasic;
+import com.example.duplicate.controller.vo.DeptCodeAndName;
+import com.example.duplicate.controller.vo.PageBasic;
+import com.example.utils.CommonResult;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @InterfaceName RcvCallService
+ * @Description 催缴接口
+ * @Author linjj
+ * @Date 2025/6/26 16:25
+ * @Version 1.0
+ */
+public interface RcvCallService{
+
+ List deptName();
+
+ CommonResult>> callAll(CallRequest callRequest);
+
+ List exportCall(CallRequest callRequest);
+
+}
diff --git a/src/main/java/com/example/duplicate/service/impl/RcvBasicServiceImpl.java b/src/main/java/com/example/duplicate/service/impl/RcvBasicServiceImpl.java
index 93ae298..acbca02 100644
--- a/src/main/java/com/example/duplicate/service/impl/RcvBasicServiceImpl.java
+++ b/src/main/java/com/example/duplicate/service/impl/RcvBasicServiceImpl.java
@@ -1,21 +1,33 @@
package com.example.duplicate.service.impl;
import com.example.duplicate.controller.param.PageRequest;
+import com.example.duplicate.controller.param.RcvPageRequest;
import com.example.duplicate.controller.param.SginBasicDto;
+import com.example.duplicate.controller.vo.ExportBasic;
import com.example.duplicate.controller.vo.PageBasic;
-import com.example.duplicate.controller.vo.RcvBasic;
import com.example.duplicate.infrastructure.dao.BasicMapper;
import com.example.duplicate.service.RcvBasicService;
import com.example.utils.CommonResult;
import com.example.utils.PageResult;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.sql.*;
import java.time.LocalDate;
import java.time.Period;
@@ -36,6 +48,30 @@ import java.util.List;
public class RcvBasicServiceImpl implements RcvBasicService {
@Autowired
private BasicMapper basicMapper;
+ @Value("${lzUrl}")
+ private String lzUrl;
+
+ @Value("${lzUserName}")
+ private String lzUserName;
+
+ @Value("${lzPassword}")
+ private String lzPassword;
+
+
+
+
+ @Value("${jsUrl}")
+ private String jsUrl;
+
+ @Value("${jsUserName}")
+ private String jsUserName;
+
+ @Value("${jsPassword}")
+ private String jsPassword;
+ @Value("${powerUer}")
+ private String powerUer;
+
+
@Override
public CommonResult> Sign(String patientId) {
try {
@@ -47,15 +83,15 @@ public class RcvBasicServiceImpl implements RcvBasicService {
if (!CollectionUtils.isEmpty(idByPatientId)) {
return CommonResult.failed("病案ID【" + patientId + "】已签收过,不能重复签收");
}
+ String userName = getUserName();
+ if (StringUtils.isBlank(userName)){
+ return CommonResult.failed("获取用户姓名失败!");
+ }
SginBasicDto sginBasicDto=new SginBasicDto();
// SQL Server连接信息
- String url = "jdbc:sqlserver://10.1.1.21:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8";
- String username = "SZJK";
- String password = "SZJK";
-// String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8";
-// String username = "sa";
-// String password = "admin123";
-
+ String url = lzUrl;
+ String username = lzUserName;
+ String password = lzPassword;
// SQL语句根据patientId查询患者基础信息
String selectQuery = "SELECT * FROM dbo.V_sz_cybrxx WHERE 病案号='" + patientId + "'";
log.info("查询语句为:"+selectQuery);
@@ -74,6 +110,7 @@ public class RcvBasicServiceImpl implements RcvBasicService {
while (resultSet.next()) {
sginBasicDto.setPatientId(resultSet.getString("病案号"));
sginBasicDto.setAdmissTimes(resultSet.getInt("住院次数"));
+ sginBasicDto.setAdmissDate(resultSet.getDate("入院日期"));
sginBasicDto.setDisDate(resultSet.getDate("出院日期"));
sginBasicDto.setName(resultSet.getString("姓名"));
String sex = resultSet.getString("性别");
@@ -88,7 +125,9 @@ public class RcvBasicServiceImpl implements RcvBasicService {
}
sginBasicDto.setBedNumber(resultSet.getString("床位号"));
sginBasicDto.setAttendingName(resultSet.getString("责任人"));
+ sginBasicDto.setDisDeptName(resultSet.getString("出院科室"));
sginBasicDto.setRevoveryState("已签收");
+ sginBasicDto.setRevoveryName(userName);
sginBasicDto.setRevoveryTime(new Timestamp(System.currentTimeMillis()));
}
// 6. 关闭资源
@@ -111,17 +150,76 @@ public class RcvBasicServiceImpl implements RcvBasicService {
}
return CommonResult.success("签收完成");
}
+ /**
+ * @description: 获取当前用户名
+ * @author linjj
+ * @date: 2025/6/27 11:12
+ */
+ private String getUserName() {
+ // 获取当前HttpServletRequest
+ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ HttpServletRequest request = requestAttributes.getRequest();
+ // 从请求头中获取token
+ String token = request.getHeader("token");
+ try {
+ // 接口URL
+ String url = powerUer+"/front/sys/getUserInfoByToken";
+
+ // 创建URL对象
+ URL obj = new URL(url);
+ // 打开连接
+ HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+
+ // 设置请求方法为POST
+ con.setRequestMethod("POST");
+
+ // 设置请求头
+ con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+
+ // 启用输出流
+ con.setDoOutput(true);
+
+ // 构建请求参数
+ String urlParameters = "token=" + token;
+
+ // 发送请求
+ try (OutputStream os = con.getOutputStream()) {
+ os.write(urlParameters.getBytes());
+ os.flush();
+ }
+
+ // 获取响应码
+ int responseCode = con.getResponseCode();
+ System.out.println("响应码: " + responseCode);
+
+ // 读取响应内容
+ BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
+ String inputLine;
+ StringBuilder response = new StringBuilder();
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ // 使用Jackson解析JSON响应内容
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode rootNode = mapper.readTree(response.toString());
+ JsonNode dataNode = rootNode.get("data");
+ String name = dataNode.get("userName").asText();
+ // 断开连接
+ con.disconnect();
+ return name;
+ } catch (Exception e) {
+ log.error("获取用户失败: " + e,e.getMessage());
+ return null;
+ }
+ }
private Boolean getObjectCommonResult(SginBasicDto sginBasicDto) {
// SQL Server连接信息
-// String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=gm_record;encrypt=false;useUnicode=true;characterEncoding=utf-8";
-// String username = "sa";
-// String password = "admin123";
- String url = "jdbc:sqlserver://10.1.1.147:1433;databaseName=csssemrrcord;encrypt=false;useUnicode=true;characterEncoding=utf-8";
- String username = "sa";
- String password = "xjgs+docus911";
+ String url = jsUrl;
+ String username = jsUserName;
+ String password = jsPassword;
// 插入语句
- String insertQuery = "INSERT INTO commomtable (patient_id,admiss_times, inpatient_no, name, sex, dis_date, attending) VALUES (replace(newid(), '-', ''),?, ?, ?, ?, ?, ?);";
+ String insertQuery = "INSERT INTO lee_basic (patient_id, inpatient_no,admiss_times,name,admiss_date,dis_date) VALUES (replace(newid(), '-', ''),?, ?, ?, ?, ?);";
log.info("执行的SQL语句为: " + insertQuery);
try {
// 1. 加载SQL Server JDBC驱动
@@ -134,13 +232,11 @@ public class RcvBasicServiceImpl implements RcvBasicService {
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery);
// 4. 设置参数
- preparedStatement.setInt(1, sginBasicDto.getAdmissTimes());
- preparedStatement.setString(2, sginBasicDto.getPatientId());
+ preparedStatement.setString(1, sginBasicDto.getPatientId());
+ preparedStatement.setInt(2, sginBasicDto.getAdmissTimes());
preparedStatement.setString(3, sginBasicDto.getName());
- preparedStatement.setString(4, sginBasicDto.getSex());
+ preparedStatement.setDate(4, new java.sql.Date(sginBasicDto.getAdmissDate().getTime()));
preparedStatement.setDate(5, new java.sql.Date(sginBasicDto.getDisDate().getTime()));
- preparedStatement.setString(6, sginBasicDto.getAttendingName());
-
// 5. 执行插入操作
preparedStatement.executeUpdate();
@@ -172,14 +268,21 @@ public class RcvBasicServiceImpl implements RcvBasicService {
@Override
public CommonResult> UpdateSign(String patientId,String revoveryState) {
+ String userName = getUserName();
if (revoveryState.equals("已签收")){
- basicMapper.UpdateState(patientId,"未签收");
+ basicMapper.UpdateState(patientId,"未签收",userName);
return CommonResult.success("取消签收成功");
}
if (revoveryState.equals("未签收")){
- basicMapper.UpdateState(patientId,"已签收");
+ basicMapper.UpdateState(patientId,"已签收",userName);
return CommonResult.success("签收成功");
}
return null;
}
+
+ @Override
+ public List pageExport(RcvPageRequest rcvPageRequest) {
+ List pageBasics = basicMapper.pageExport(rcvPageRequest);
+ return pageBasics;
+ }
}
diff --git a/src/main/java/com/example/duplicate/service/impl/RcvCallServiceImpl.java b/src/main/java/com/example/duplicate/service/impl/RcvCallServiceImpl.java
new file mode 100644
index 0000000..add88cd
--- /dev/null
+++ b/src/main/java/com/example/duplicate/service/impl/RcvCallServiceImpl.java
@@ -0,0 +1,248 @@
+package com.example.duplicate.service.impl;
+
+import com.example.duplicate.controller.param.CallRequest;
+import com.example.duplicate.controller.vo.CallBasic;
+import com.example.duplicate.controller.vo.CallExpoetBasic;
+import com.example.duplicate.controller.vo.DeptCodeAndName;
+import com.example.duplicate.infrastructure.dao.BasicMapper;
+import com.example.duplicate.service.RcvCallService;
+import com.example.utils.CommonResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.sql.*;
+import java.util.*;
+import java.util.Date;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName RcvCallServiceImpl
+ * @Description 催缴业务层
+ * @Author linjj
+ * @Date 2025/6/26 16:25
+ * @Version 1.0
+ */
+@Service
+@Slf4j
+public class RcvCallServiceImpl implements RcvCallService {
+
+ @Value("${lzUrl}")
+ private String lzUrl;
+
+ @Value("${lzUserName}")
+ private String lzUserName;
+
+ @Value("${lzPassword}")
+ private String lzPassword;
+ @Autowired
+ private BasicMapper basicMapper;
+
+ @Override
+ public List deptName() {
+// // SQL Server连接信息
+// String url = lzUrl;
+// String username = lzUserName;
+// String password = lzPassword;
+// try {
+// List deptNames=new ArrayList<>();
+// // SQL语句根据patientId查询患者基础信息
+// String selectQuery = "SELECT 出院科室 FROM dbo.V_sz_cybrxx where 出院科室 is not null AND 出院科室 !='' GROUP BY 出院科室";
+// // 1. 加载SQL Server JDBC驱动
+// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+//
+// // 2. 建立数据库连接
+// Connection connection = DriverManager.getConnection(url, username, password);
+//
+// // 3. 创建Statement对象用于执行SQL语句
+// Statement statement = connection.createStatement();
+// // 4. 执行查询操作
+// ResultSet resultSet = statement.executeQuery(selectQuery);
+// // 5. 遍历查询结果并添加到deptNames列表中
+// while (resultSet.next()) {
+// String deptName = resultSet.getString("出院科室");
+// deptNames.add(deptName);
+// }
+// // 6. 关闭数据库资源
+// resultSet.close();
+// statement.close();
+// connection.close();
+// return deptNames;
+// } catch (Exception e) {
+// log.error("查询科室失败: " + e, e.getMessage());
+// return null;
+// }
+ List deptCodeAndName = basicMapper.getDeptCodeAndName();
+ return deptCodeAndName;
+ }
+
+ @Override
+ public CommonResult>> callAll(CallRequest callRequest) {
+ // SQL Server连接信息
+ String url = lzUrl;
+ String username = lzUserName;
+ String password = lzPassword;
+ // 构建SQL查询语句
+ StringBuilder selectQuery = new StringBuilder();
+ selectQuery.append("SELECT * ");
+ selectQuery.append("FROM dbo.V_sz_cybrxx ");
+ selectQuery.append("WHERE 1=1 ");
+ List