初始化

master
linjj 3 weeks ago
parent 814c40bd68
commit 7e5e2d7909

@ -69,6 +69,16 @@
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version> <version>1.16</version>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.fasterxml.jackson.core</groupId>-->
<!-- <artifactId>jackson-databind</artifactId>-->
<!-- <version>2.13.0</version>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>druid</artifactId> <artifactId>druid</artifactId>

@ -2,18 +2,26 @@ package com.example.duplicate.controller;
import com.example.duplicate.controller.param.PageRequest; 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.PageBasic;
import com.example.duplicate.controller.vo.RcvBasic;
import com.example.duplicate.service.RcvBasicService; import com.example.duplicate.service.RcvBasicService;
import com.example.utils.CommonResult; import com.example.utils.CommonResult;
import com.example.utils.ExcelExportHandler;
import com.example.utils.PageResult; import com.example.utils.PageResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; 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 * @ClassName RcvBasicController
* @Description * @Description
@ -29,6 +37,9 @@ public class RcvBasicController {
@Autowired @Autowired
private RcvBasicService rcvBasicService; private RcvBasicService rcvBasicService;
@Resource
private ExcelExportHandler excelExportHandler;
@ApiOperation("签收接口") @ApiOperation("签收接口")
@PostMapping("/Sign") @PostMapping("/Sign")
@ -48,4 +59,13 @@ public class RcvBasicController {
@RequestParam @ApiParam(required = false, name = "revoveryState", value = "签收状态")String revoveryState) { @RequestParam @ApiParam(required = false, name = "revoveryState", value = "签收状态")String revoveryState) {
return rcvBasicService.UpdateSign(patientId,revoveryState); return rcvBasicService.UpdateSign(patientId,revoveryState);
} }
@ApiOperation("导出")
@PostMapping("/export")
public void pageExport(@RequestBody RcvPageRequest rcvPageRequest, HttpServletResponse response) {
List<ExportBasic> pageBasics = rcvBasicService.pageExport(rcvPageRequest);
if (!CollectionUtils.isEmpty(pageBasics)) {
excelExportHandler.export(response, "病案回收管理列表", pageBasics, ExportBasic.class);
}
}
} }

@ -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<List<DeptCodeAndName>> deptName() {
return CommonResult.success(rcvCallService.deptName());
}
@ApiOperation("催缴查询")
@PostMapping("/callAll")
public CommonResult<List<Map<String, Object>>> callAll(@RequestBody CallRequest callRequest) {
return rcvCallService.callAll(callRequest);
}
@ApiOperation("催缴导出")
@PostMapping("/callExport")
public void pageExport(@RequestBody CallRequest callRequest, HttpServletResponse response) {
List<CallExpoetBasic> callExpoetBasics = rcvCallService.exportCall(callRequest);
if (!CollectionUtils.isEmpty(callExpoetBasics)) {
excelExportHandler.export(response, "催缴列表", callExpoetBasics, CallExpoetBasic.class);
}
}
}

@ -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;//出院科室
}

@ -1,7 +1,11 @@
package com.example.duplicate.controller.param; package com.example.duplicate.controller.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* @ClassName PageRequest * @ClassName PageRequest
* @Description * @Description
@ -12,10 +16,20 @@ import lombok.Data;
@Data @Data
public class PageRequest { public class PageRequest {
@ApiModelProperty(value = "页码")
private int page; // 页码通常从1开始 private int page; // 页码通常从1开始
@ApiModelProperty(value = "每页大小")
private int size; // 每页大小 private int size; // 每页大小
@ApiModelProperty(value = "病人ID")
private String patientId; // 病人ID private String patientId; // 病人ID
@ApiModelProperty(value = "病人姓名")
private String name; // 病人姓名 private String name; // 病人姓名
@ApiModelProperty(value = "出院天数")
private String outNum;//出院天数
@ApiModelProperty(value = "开始时间")
private String startTime;//开始时间
@ApiModelProperty(value = "结束时间")
private String endTime;//结束时间
} }

@ -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;//结束时间
}

@ -21,7 +21,8 @@ public class SginBasicDto {
@ApiModelProperty(value = "住院次数") @ApiModelProperty(value = "住院次数")
private Integer admissTimes; private Integer admissTimes;
@ApiModelProperty(value = "入院日期")
private Date admissDate;
@ApiModelProperty(value = "出院日期") @ApiModelProperty(value = "出院日期")
private Date disDate; private Date disDate;
@ApiModelProperty(value = "姓名") @ApiModelProperty(value = "姓名")
@ -44,6 +45,10 @@ public class SginBasicDto {
@ApiModelProperty(value = "回收状态") @ApiModelProperty(value = "回收状态")
private String revoveryState; private String revoveryState;
@ApiModelProperty(value = "出院科室")
private String disDeptName;
@ApiModelProperty(value = "操作人")
private String revoveryName;
} }

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

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

@ -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;//科室名称
}

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

@ -40,7 +40,7 @@ public class PageBasic {
@ApiModelProperty(value = "床位号") @ApiModelProperty(value = "床位号")
private String bedNumber; private String bedNumber;
@ApiModelProperty(value = "出院天数") @ApiModelProperty(value = "已签收天数")
private Integer outNum; private Integer outNum;
@ApiModelProperty(value = "回收时间") @ApiModelProperty(value = "回收时间")
private Date revoveryTime; private Date revoveryTime;
@ -48,11 +48,18 @@ public class PageBasic {
@ApiModelProperty(value = "回收状态") @ApiModelProperty(value = "回收状态")
private String revoveryState; private String revoveryState;
@ApiModelProperty(value = "出院科室")
private String disDeptName;
@ApiModelProperty(value = "操作人")
private String revoveryName;
// 格式化 disDate // 格式化 disDate
public String getFormattedDisDate() { public String getFormattedDisDate() {
if (disDate != null) { if (disDate != null) {
try { try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(disDate); return formatter.format(disDate);
} catch (Exception e) { } catch (Exception e) {
return null; return null;
@ -66,7 +73,7 @@ public class PageBasic {
public String getFormattedRevoveryTime() { public String getFormattedRevoveryTime() {
if (revoveryTime != null) { if (revoveryTime != null) {
try { try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(revoveryTime); return formatter.format(revoveryTime);
} catch (Exception e) { } catch (Exception e) {
return null; return null;

@ -38,7 +38,7 @@ public class RcvBasic {
@ApiModelProperty(value = "床位号") @ApiModelProperty(value = "床位号")
private String bedNumber; private String bedNumber;
@ApiModelProperty(value = "出院天数") @ApiModelProperty(value = "已签收天数")
private String outNum; private String outNum;
@ApiModelProperty(value = "回收时间") @ApiModelProperty(value = "回收时间")
private Date revoveryTime; private Date revoveryTime;

@ -1,9 +1,12 @@
package com.example.duplicate.infrastructure.dao; 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.PageRequest;
import com.example.duplicate.controller.param.RcvPageRequest;
import com.example.duplicate.controller.param.SginBasicDto; 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.PageBasic;
import com.example.duplicate.controller.vo.RcvBasic;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -25,6 +28,12 @@ public interface BasicMapper {
List<String> getIDByPatientId(String patientId); List<String> 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);
List<ExportBasic>pageExport(RcvPageRequest rcvPageRequest);
List<String> getBasciByState(CallRequest callRequest);
List<DeptCodeAndName>getDeptCodeAndName();
} }

@ -1,12 +1,15 @@
package com.example.duplicate.service; package com.example.duplicate.service;
import com.example.duplicate.controller.param.PageRequest; 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.PageBasic;
import com.example.duplicate.controller.vo.RcvBasic;
import com.example.utils.CommonResult; import com.example.utils.CommonResult;
import com.example.utils.PageResult; import com.example.utils.PageResult;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/** /**
* @InterfaceName RcvBasicService * @InterfaceName RcvBasicService
@ -22,4 +25,6 @@ public interface RcvBasicService {
CommonResult<PageResult<PageBasic>> pageAll(PageRequest pageRequest); CommonResult<PageResult<PageBasic>> pageAll(PageRequest pageRequest);
CommonResult<?> UpdateSign(String patientId,String revoveryState); CommonResult<?> UpdateSign(String patientId,String revoveryState);
List<ExportBasic>pageExport(RcvPageRequest rcvPageRequest);
} }

@ -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<DeptCodeAndName> deptName();
CommonResult<List<Map<String, Object>>> callAll(CallRequest callRequest);
List<CallExpoetBasic> exportCall(CallRequest callRequest);
}

@ -1,21 +1,33 @@
package com.example.duplicate.service.impl; package com.example.duplicate.service.impl;
import com.example.duplicate.controller.param.PageRequest; 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.param.SginBasicDto;
import com.example.duplicate.controller.vo.ExportBasic;
import com.example.duplicate.controller.vo.PageBasic; 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.infrastructure.dao.BasicMapper;
import com.example.duplicate.service.RcvBasicService; import com.example.duplicate.service.RcvBasicService;
import com.example.utils.CommonResult; import com.example.utils.CommonResult;
import com.example.utils.PageResult; import com.example.utils.PageResult;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; 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.sql.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Period; import java.time.Period;
@ -36,6 +48,30 @@ import java.util.List;
public class RcvBasicServiceImpl implements RcvBasicService { public class RcvBasicServiceImpl implements RcvBasicService {
@Autowired @Autowired
private BasicMapper basicMapper; 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 @Override
public CommonResult<?> Sign(String patientId) { public CommonResult<?> Sign(String patientId) {
try { try {
@ -47,15 +83,15 @@ public class RcvBasicServiceImpl implements RcvBasicService {
if (!CollectionUtils.isEmpty(idByPatientId)) { if (!CollectionUtils.isEmpty(idByPatientId)) {
return CommonResult.failed("病案ID【" + patientId + "】已签收过,不能重复签收"); return CommonResult.failed("病案ID【" + patientId + "】已签收过,不能重复签收");
} }
String userName = getUserName();
if (StringUtils.isBlank(userName)){
return CommonResult.failed("获取用户姓名失败!");
}
SginBasicDto sginBasicDto=new SginBasicDto(); SginBasicDto sginBasicDto=new SginBasicDto();
// SQL Server连接信息 // SQL Server连接信息
String url = "jdbc:sqlserver://10.1.1.21:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8"; String url = lzUrl;
String username = "SZJK"; String username = lzUserName;
String password = "SZJK"; String password = lzPassword;
// String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8";
// String username = "sa";
// String password = "admin123";
// SQL语句根据patientId查询患者基础信息 // SQL语句根据patientId查询患者基础信息
String selectQuery = "SELECT * FROM dbo.V_sz_cybrxx WHERE 病案号='" + patientId + "'"; String selectQuery = "SELECT * FROM dbo.V_sz_cybrxx WHERE 病案号='" + patientId + "'";
log.info("查询语句为:"+selectQuery); log.info("查询语句为:"+selectQuery);
@ -74,6 +110,7 @@ public class RcvBasicServiceImpl implements RcvBasicService {
while (resultSet.next()) { while (resultSet.next()) {
sginBasicDto.setPatientId(resultSet.getString("病案号")); sginBasicDto.setPatientId(resultSet.getString("病案号"));
sginBasicDto.setAdmissTimes(resultSet.getInt("住院次数")); sginBasicDto.setAdmissTimes(resultSet.getInt("住院次数"));
sginBasicDto.setAdmissDate(resultSet.getDate("入院日期"));
sginBasicDto.setDisDate(resultSet.getDate("出院日期")); sginBasicDto.setDisDate(resultSet.getDate("出院日期"));
sginBasicDto.setName(resultSet.getString("姓名")); sginBasicDto.setName(resultSet.getString("姓名"));
String sex = resultSet.getString("性别"); String sex = resultSet.getString("性别");
@ -88,7 +125,9 @@ public class RcvBasicServiceImpl implements RcvBasicService {
} }
sginBasicDto.setBedNumber(resultSet.getString("床位号")); sginBasicDto.setBedNumber(resultSet.getString("床位号"));
sginBasicDto.setAttendingName(resultSet.getString("责任人")); sginBasicDto.setAttendingName(resultSet.getString("责任人"));
sginBasicDto.setDisDeptName(resultSet.getString("出院科室"));
sginBasicDto.setRevoveryState("已签收"); sginBasicDto.setRevoveryState("已签收");
sginBasicDto.setRevoveryName(userName);
sginBasicDto.setRevoveryTime(new Timestamp(System.currentTimeMillis())); sginBasicDto.setRevoveryTime(new Timestamp(System.currentTimeMillis()));
} }
// 6. 关闭资源 // 6. 关闭资源
@ -111,17 +150,76 @@ public class RcvBasicServiceImpl implements RcvBasicService {
} }
return CommonResult.success("签收完成"); 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) { private Boolean getObjectCommonResult(SginBasicDto sginBasicDto) {
// SQL Server连接信息 // SQL Server连接信息
// String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=gm_record;encrypt=false;useUnicode=true;characterEncoding=utf-8"; String url = jsUrl;
// String username = "sa"; String username = jsUserName;
// String password = "admin123"; String password = jsPassword;
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 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); log.info("执行的SQL语句为: " + insertQuery);
try { try {
// 1. 加载SQL Server JDBC驱动 // 1. 加载SQL Server JDBC驱动
@ -134,13 +232,11 @@ public class RcvBasicServiceImpl implements RcvBasicService {
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery); PreparedStatement preparedStatement = connection.prepareStatement(insertQuery);
// 4. 设置参数 // 4. 设置参数
preparedStatement.setInt(1, sginBasicDto.getAdmissTimes()); preparedStatement.setString(1, sginBasicDto.getPatientId());
preparedStatement.setString(2, sginBasicDto.getPatientId()); preparedStatement.setInt(2, sginBasicDto.getAdmissTimes());
preparedStatement.setString(3, sginBasicDto.getName()); 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.setDate(5, new java.sql.Date(sginBasicDto.getDisDate().getTime()));
preparedStatement.setString(6, sginBasicDto.getAttendingName());
// 5. 执行插入操作 // 5. 执行插入操作
preparedStatement.executeUpdate(); preparedStatement.executeUpdate();
@ -172,14 +268,21 @@ public class RcvBasicServiceImpl implements RcvBasicService {
@Override @Override
public CommonResult<?> UpdateSign(String patientId,String revoveryState) { public CommonResult<?> UpdateSign(String patientId,String revoveryState) {
String userName = getUserName();
if (revoveryState.equals("已签收")){ if (revoveryState.equals("已签收")){
basicMapper.UpdateState(patientId,"未签收"); basicMapper.UpdateState(patientId,"未签收",userName);
return CommonResult.success("取消签收成功"); return CommonResult.success("取消签收成功");
} }
if (revoveryState.equals("未签收")){ if (revoveryState.equals("未签收")){
basicMapper.UpdateState(patientId,"已签收"); basicMapper.UpdateState(patientId,"已签收",userName);
return CommonResult.success("签收成功"); return CommonResult.success("签收成功");
} }
return null; return null;
} }
@Override
public List<ExportBasic> pageExport(RcvPageRequest rcvPageRequest) {
List<ExportBasic> pageBasics = basicMapper.pageExport(rcvPageRequest);
return pageBasics;
}
} }

@ -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<DeptCodeAndName> deptName() {
// // SQL Server连接信息
// String url = lzUrl;
// String username = lzUserName;
// String password = lzPassword;
// try {
// List<String> 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> deptCodeAndName = basicMapper.getDeptCodeAndName();
return deptCodeAndName;
}
@Override
public CommonResult<List<Map<String, Object>>> 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<Object> parameters = new ArrayList<>();
List<Map<String, Object>> result = new ArrayList<>();
// 添加出院科室条件
if (callRequest.getDisDeptName() != null && !callRequest.getDisDeptName().isEmpty()) {
String[] deptNames = callRequest.getDisDeptName().split(",");
String inClause = String.join(",", Collections.nCopies(deptNames.length, "?"));
selectQuery.append(" AND 出院科室 IN (" + inClause + ")");
parameters.addAll(Arrays.asList(deptNames));
}
// 添加时间范围条件
if (callRequest.getStartTime() != null) {
selectQuery.append(" AND 出院日期 >= ?");
parameters.add(callRequest.getStartTime());
}
if (callRequest.getEndTime() != null) {
selectQuery.append(" AND 出院日期 <= ?");
parameters.add(callRequest.getEndTime());
}
// 添加出院天数条件
if (callRequest.getOutNum() != null && !callRequest.getOutNum().isEmpty()) {
selectQuery.append(" AND DATEDIFF(day, 出院日期, GETDATE()) >= ?");
parameters.add(callRequest.getOutNum());
}
try (Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement preparedStatement = connection.prepareStatement(selectQuery.toString())) {
// 设置查询参数
for (int i = 0; i < parameters.size(); i++) {
preparedStatement.setObject(i + 1, parameters.get(i));
}
ResultSet resultSet = preparedStatement.executeQuery();
// 处理查询结果
List<CallBasic> callBasicList = new ArrayList<>();
while (resultSet.next()) {
CallBasic callBasic = new CallBasic();
callBasic.setDisDeptName(resultSet.getString("出院科室"));
callBasic.setPatientId(resultSet.getString("病案号"));
callBasic.setAdmissTimes(resultSet.getInt("住院次数"));
callBasic.setDisDate(resultSet.getDate("出院日期"));
callBasic.setName(resultSet.getString("姓名"));
String sex = resultSet.getString("性别");
if (sex.equals("1")){
callBasic.setSex("男");
}
if (sex.equals("2")){
callBasic.setSex("女");
}
if (sex.equals("3")){
callBasic.setSex("不详");
}
callBasic.setBedNumber(resultSet.getString("床位号"));
callBasic.setOutNum(resultSet.getInt("已出院天数"));
callBasic.setAttendingName(resultSet.getString("责任人"));
callBasicList.add(callBasic);
}
//查询已经签收数据
List<String> basciByState = basicMapper.getBasciByState(callRequest);
//将 basciByState 转换为一个 Set因为 Set 的 contains 方法性能更高
Set<String> basciByStateSet = new HashSet<>(basciByState);
//使用已经签收数据,跟查询到的联众数据进行匹配,有相同的病案号则去掉改记录
callBasicList.removeIf(callBasic -> basciByStateSet.contains(callBasic.getPatientId()));
// 按科室分组并构建新的返回结构
Map<String, List<CallBasic>> groupedByDept = callBasicList.stream()
.collect(Collectors.groupingBy(CallBasic::getDisDeptName));
for (Map.Entry<String, List<CallBasic>> entry : groupedByDept.entrySet()) {
Map<String, Object> deptEntry = new LinkedHashMap<>();
deptEntry.put("disDeptNameTree", "出院科室:"+entry.getKey()+"("+entry.getValue().size()+"份)");
deptEntry.put("patients", entry.getValue());
result.add(deptEntry);
}
return CommonResult.success(result);
} catch (Exception e) {
log.error("查询失败: {}", e.getMessage());
return CommonResult.failed("查询失败"+e.getMessage());
}
}
@Override
public List<CallExpoetBasic> exportCall(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<Object> parameters = new ArrayList<>();
List<Map<String, Object>> result = new ArrayList<>();
// 添加出院科室条件(假设 CallPageRequest 中有 deptName 字段)
if (callRequest.getDisDeptName() != null && !callRequest.getDisDeptName().isEmpty()) {
String[] deptNames = callRequest.getDisDeptName().split(",");
String inClause = String.join(",", Collections.nCopies(deptNames.length, "?"));
selectQuery.append(" AND 出院科室 IN (" + inClause + ")");
parameters.addAll(Arrays.asList(deptNames));
}
// 添加时间范围条件
if (callRequest.getStartTime() != null) {
selectQuery.append(" AND 出院日期 >= ?");
parameters.add(callRequest.getStartTime());
}
if (callRequest.getEndTime() != null) {
selectQuery.append(" AND 出院日期 <= ?");
parameters.add(callRequest.getEndTime());
}
// 添加出院天数条件
if (callRequest.getOutNum() != null && !callRequest.getOutNum().isEmpty()) {
selectQuery.append(" AND DATEDIFF(day, 出院日期, GETDATE()) >= ?");
parameters.add(callRequest.getOutNum());
}
try (Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement preparedStatement = connection.prepareStatement(selectQuery.toString())) {
// 设置查询参数
for (int i = 0; i < parameters.size(); i++) {
preparedStatement.setObject(i + 1, parameters.get(i));
}
ResultSet resultSet = preparedStatement.executeQuery();
// 处理查询结果
List<CallExpoetBasic> callBasicList = new ArrayList<>();
while (resultSet.next()) {
CallExpoetBasic callBasic = new CallExpoetBasic();
callBasic.setDisDeptName(resultSet.getString("出院科室"));
callBasic.setPatientId(resultSet.getString("病案号"));
callBasic.setAdmissTimes(resultSet.getInt("住院次数"));
callBasic.setDisDate(resultSet.getDate("出院日期"));
callBasic.setName(resultSet.getString("姓名"));
String sex = resultSet.getString("性别");
if (sex.equals("1")){
callBasic.setSex("男");
}
if (sex.equals("2")){
callBasic.setSex("女");
}
if (sex.equals("3")){
callBasic.setSex("不详");
}
callBasic.setBedNumber(resultSet.getString("床位号"));
callBasic.setOutNum(resultSet.getInt("已出院天数"));
callBasic.setAttendingName(resultSet.getString("责任人"));
callBasicList.add(callBasic);
}
//查询已经签收数据
List<String> basciByState = basicMapper.getBasciByState(callRequest);
//将 basciByState 转换为一个 Set因为 Set 的 contains 方法性能更高
Set<String> basciByStateSet = new HashSet<>(basciByState);
//使用已经签收数据,跟查询到的联众数据进行匹配,有相同的病案号则去掉改记录
callBasicList.removeIf(callBasic -> basciByStateSet.contains(callBasic.getPatientId()));
return callBasicList;
} catch (Exception e) {
log.error("查询失败: {}", e.getMessage());
return null;
}
}
}

@ -0,0 +1,80 @@
package com.example.utils;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
* Excel
* EasyExcelhttps://easyexcel.opensource.alibaba.com/docs/current/quickstart/write
*
* @author wangrubin
*/
@Slf4j
@Component
public class ExcelExportHandler {
/**
* Excel
*
* @param response response
* @param fileName
* @param data
* @param clazz POJO
* @param <T>
*/
public <T> void export(HttpServletResponse response, String fileName,
List<T> data, Class<T> clazz) {
try {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename*=utf-8''" + encodedFileName + ".xlsx");
// 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), clazz)
.sheet("Sheet1")
// 设置单元格宽度自适应
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// 设置单元格高度和字体
.registerWriteHandler(getHeightAndFontStrategy())
.doWrite(data);
log.info("下载{}条记录到文件{}", data.size(), fileName);
} catch (Exception e) {
// 重置response
log.error("文件下载失败" + e.getMessage());
throw new RuntimeException("下载文件失败", e);
}
}
/**
* Excel
*
* @return Excel
*/
private HorizontalCellStyleStrategy getHeightAndFontStrategy() {
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
WriteFont headWriteFont = new WriteFont();
headWriteFont.setFontHeightInPoints((short) 11);
headWriteFont.setBold(true);
headWriteCellStyle.setWriteFont(headWriteFont);
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
WriteFont contentWriteFont = new WriteFont();
contentWriteFont.setFontHeightInPoints((short) 11);
contentWriteCellStyle.setWriteFont(contentWriteFont);
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
}
}

@ -0,0 +1,19 @@
# ?????????
#lzUrl=jdbc:sqlserver://10.1.1.21:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8
#lzUserName=SZJK
#lzPassword=SZJK
## 2.0??????
#jsUrl=jdbc:sqlserver://10.1.1.147:1433;databaseName=csssemrrcord;encrypt=false;useUnicode=true;characterEncoding=utf-8
#jsUserName=sa
#jsPassword=xjgs+docus911
# ???????????
lzUrl =jdbc:sqlserver://127.0.0.1:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8";
lzUserName= sa
lzPassword=admin123
# 2.0????????
jsUrl=jdbc:sqlserver://127.0.0.1:1433;databaseName=qf_record;encrypt=false;useUnicode=true;characterEncoding=utf-8
jsUserName=sa
jsPassword=admin123
powerUer=http://127.0.0.1:9101

@ -4,14 +4,15 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.duplicate.infrastructure.dao.BasicMapper"> <mapper namespace="com.example.duplicate.infrastructure.dao.BasicMapper">
<insert id="addBasic"> <insert id="addBasic">
INSERT INTO basic (patientId,admissTimes,disDate,name,sex, bedNumber,attendingName,revoveryState,revoveryTime) INSERT INTO basic (patientId,admissTimes,disDate,name,sex, bedNumber,attendingName,revoveryState,revoveryTime,disDeptName,revoveryName)
values (#{patientId},#{admissTimes},#{disDate},#{name},#{sex},#{bedNumber},#{attendingName},#{revoveryState}, #{revoveryTime}) values (#{patientId},#{admissTimes},#{disDate},#{name},#{sex},#{bedNumber},#{attendingName},#{revoveryState}, #{revoveryTime},#{disDeptName},#{revoveryName})
</insert> </insert>
<update id="UpdateState"> <update id="UpdateState">
update basic set revoveryState=#{revoveryState}, revoveryTime=NOW() where patientId=#{patientId} update basic set revoveryState=#{revoveryState}, revoveryTime=NOW(),revoveryName=#{userName} where patientId=#{patientId}
</update> </update>
<select id="getPageAll" resultType="com.example.duplicate.controller.vo.PageBasic"> <select id="getPageAll" resultType="com.example.duplicate.controller.vo.PageBasic">
select *,DATEDIFF(NOW(), disDate) as outNum from basic select *,DATEDIFF(revoveryTime,disDate) as outNum from basic
<where> <where>
1=1 1=1
<if test="patientId != null and patientId!=''"> <if test="patientId != null and patientId!=''">
@ -20,12 +21,63 @@
<if test="name != null and name!=''"> <if test="name != null and name!=''">
AND name=#{name} AND name=#{name}
</if> </if>
<if test="outNum != null and outNum!=''">
AND DATEDIFF(revoveryTime,disDate)>=#{outNum}
</if>
<!-- startTime 和 endTime 的条件 -->
<if test="startTime != null and startTime != ''">
AND disDate >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND disDate &lt;= #{endTime}
</if>
</where> </where>
order by disDate DESC order by revoveryTime DESC
</select> </select>
<select id="getIDByPatientId" resultType="java.lang.String"> <select id="getIDByPatientId" resultType="java.lang.String">
select patientId from basic where patientId=#{patientId} select patientId from basic where patientId=#{patientId}
</select> </select>
<select id="pageExport" resultType="com.example.duplicate.controller.vo.ExportBasic">
select *,DATEDIFF(revoveryTime,disDate) as outNum from basic
<where>
1=1
<if test="patientId != null and patientId!=''">
AND patientId=#{patientId}
</if>
<if test="name != null and name!=''">
AND name=#{name}
</if>
<if test="outNum != null and outNum!=''">
AND DATEDIFF(revoveryTime,disDate)>=#{outNum}
</if>
<!-- startTime 和 endTime 的条件 -->
<if test="startTime != null and startTime != ''">
AND disDate >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND disDate &lt;= #{endTime}
</if>
</where>
order by revoveryTime DESC
</select>
<select id="getBasciByState" resultType="java.lang.String">
select patientId from basic
<where>
revoveryState='已签收'
<if test="startTime != null and startTime != ''">
AND disDate >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND disDate &lt;= #{endTime}
</if>
<if test="disDeptName != null and disDeptName != ''">
AND disDeptName = #{disDeptName}
</if>
</where>
</select>
<select id="getDeptCodeAndName" resultType="com.example.duplicate.controller.vo.DeptCodeAndName">
select * from deptcode
</select>
</mapper> </mapper>
Loading…
Cancel
Save