新增后端列表查询和excel模板制作和excel下载

segment2.0
linrf 2 years ago
parent be3d5bcb59
commit 9aa132bbbd

@ -0,0 +1,50 @@
package com.docus.server.common;
import com.docus.infrastructure.core.db.enums.EnumItemView;
import com.docus.infrastructure.core.db.enums.IIntegerEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/common/")
@Api(value = "通用控制层", tags = "通用控制层")
public class CommonController {
@Value("${mybatis-plus.type-enums-package:#{nu11}}")
private String enumsPackage;
@Value("${spring.application.name: #{null}}")
private String appName;
//返回数据库枚举定义的value和display枚举需实现IIntegerEnum接口
@IgnoreValidate
@GetMapping("enum/{enumName}")
@ApiOperation("按枚举名称获取枚举列表值")
public List<EnumItemView> getEnum(@PathVariable String enumName) throws ClassNotFoundException {
if (!StringUtils.isEmpty(enumsPackage)) {
String className = enumsPackage + "." + enumName;
if (!className.endsWith("Enum")) {
className += "Enum";
}
Class<IIntegerEnum> enumClass = (Class<IIntegerEnum>) Class.forName(className);
IIntegerEnum[] enums = enumClass.getEnumConstants();
List<EnumItemView> enumItemViews = new ArrayList<>();
for (IIntegerEnum anEnum : enums) {
EnumItemView enumItemView = new EnumItemView();
enumItemView.setValue(anEnum.getValue());
enumItemView.setDisplay(anEnum.getDisplay());
enumItemViews.add(enumItemView);
}
return enumItemViews;
}
return null;
}
}

@ -1,4 +1,4 @@
package com.docus.server.common.auth; package com.docus.server.common;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -99,7 +100,7 @@ public interface RcvBasicApi {
List<RcvBasicVO> findAll(); List<RcvBasicVO> findAll();
/** /**
* * ()
* *
* @param searchDTO * @param searchDTO
* @return * @return
@ -107,6 +108,15 @@ public interface RcvBasicApi {
@PostMapping("/search") @PostMapping("/search")
PageResult<SearchRcvBasicVO> search(@RequestBody SearchDTO searchDTO); PageResult<SearchRcvBasicVO> search(@RequestBody SearchDTO searchDTO);
/**
* (PC)
*
* @param searchDTO
* @return
*/
@PostMapping("/page")
PageResult<RcvBasicVO> page(@RequestBody SearchDTO searchDTO);
/** /**
* *
* *
@ -206,4 +216,7 @@ public interface RcvBasicApi {
*/ */
@GetMapping("/findByIdAndName") @GetMapping("/findByIdAndName")
int findByIdAndName(@RequestParam("id") Serializable id, @RequestParam("name") String name); int findByIdAndName(@RequestParam("id") Serializable id, @RequestParam("name") String name);
@GetMapping("/excelTemplate/download")
void excelTemplateDownload(HttpServletResponse response) throws Exception;
} }

@ -3,6 +3,7 @@ package com.docus.server.common.auth;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.docus.infrastructure.web.exception.ApiException; import com.docus.infrastructure.web.exception.ApiException;
import com.docus.infrastructure.web.exception.ExceptionCode; import com.docus.infrastructure.web.exception.ExceptionCode;
import com.docus.server.common.IgnoreValidate;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

@ -3,6 +3,7 @@ package com.docus.server.controller;
import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.request.SearchDTO;
import com.docus.infrastructure.web.response.PageResult; import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.api.recovery.RcvBasicApi; import com.docus.server.api.recovery.RcvBasicApi;
import com.docus.server.common.IgnoreValidate;
import com.docus.server.dto.recovery.rcvbasic.AddRcvBasicDTO; import com.docus.server.dto.recovery.rcvbasic.AddRcvBasicDTO;
import com.docus.server.dto.recovery.rcvbasic.DeleteRcvBasicDTO; import com.docus.server.dto.recovery.rcvbasic.DeleteRcvBasicDTO;
import com.docus.server.dto.recovery.rcvbasic.EditRcvBasicDTO; import com.docus.server.dto.recovery.rcvbasic.EditRcvBasicDTO;
@ -11,10 +12,15 @@ import com.docus.server.vo.recovery.rcvbasic.RcvBasicVO;
import com.docus.server.vo.recovery.rcvbasic.SearchRcvBasicVO; import com.docus.server.vo.recovery.rcvbasic.SearchRcvBasicVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable; import java.io.Serializable;
import java.net.URLEncoder;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -119,17 +125,29 @@ public class RcvBasicController implements RcvBasicApi {
} }
/** /**
* * ()
* *
* @param searchDTO * @param searchDTO
* @return * @return
*/ */
@ApiOperation("关键字搜索") @ApiOperation("关键字搜索(安卓)")
@Override @Override
public PageResult<SearchRcvBasicVO> search(SearchDTO searchDTO) { public PageResult<SearchRcvBasicVO> search(SearchDTO searchDTO) {
return iRcvBasicService.search(searchDTO); return iRcvBasicService.search(searchDTO);
} }
/**
* (PC)
*
* @param searchDTO
* @return
*/
@ApiOperation("关键字搜索(PC)")
@Override
public PageResult<RcvBasicVO> page(SearchDTO searchDTO) {
return iRcvBasicService.page(searchDTO);
}
/** /**
* *
* *
@ -265,4 +283,27 @@ public class RcvBasicController implements RcvBasicApi {
public int findByIdAndName(Serializable id, String name) { public int findByIdAndName(Serializable id, String name) {
return iRcvBasicService.findByIdAndName(id, name); return iRcvBasicService.findByIdAndName(id, name);
} }
@IgnoreValidate
@ApiOperation("下载病案回收导入基础数据excel模板")
@Override
public void excelTemplateDownload(HttpServletResponse response) throws Exception {
// 取要下载的模板名称
String fileName = "病案回收导入基础数据模板.xlsx";
String address = "/tpl/病案回收导入基础数据模板.xlsx";
//得到该文件
ClassPathResource classPathResource = new ClassPathResource(address);
InputStream fileInputStream = classPathResource.getInputStream();
//设置Http响应头告诉浏览器下载这个附件,下载的文件名也是在这里设置的
response.setHeader("Content-Disposition", "attachment;Filename=" + URLEncoder.encode(fileName, "UTF-8"));
OutputStream outputStream = response.getOutputStream();
byte[] bytes = new byte[2048];
int len = 0;
while ((len = fileInputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, len);
}
outputStream.flush();
fileInputStream.close();
outputStream.close();
}
} }

@ -4,7 +4,7 @@ import com.docus.infrastructure.web.api.CommonResult;
import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.request.SearchDTO;
import com.docus.infrastructure.web.response.PageResult; import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.api.recovery.RcvSysUserApi; import com.docus.server.api.recovery.RcvSysUserApi;
import com.docus.server.common.auth.IgnoreValidate; import com.docus.server.common.IgnoreValidate;
import com.docus.server.dto.recovery.rcvsysuser.AddRcvSysUserDTO; import com.docus.server.dto.recovery.rcvsysuser.AddRcvSysUserDTO;
import com.docus.server.dto.recovery.rcvsysuser.DeleteRcvSysUserDTO; import com.docus.server.dto.recovery.rcvsysuser.DeleteRcvSysUserDTO;
import com.docus.server.dto.recovery.rcvsysuser.EditRcvSysUserDTO; import com.docus.server.dto.recovery.rcvsysuser.EditRcvSysUserDTO;

@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -71,18 +70,66 @@ public class RcvBasicDaoImpl extends BaseDaoImpl<RcvBasicMapper, RcvBasic> imple
//分页 //分页
PageHelper.startPage(searchDTO.getPageNum(), searchDTO.getPageSize()); PageHelper.startPage(searchDTO.getPageNum(), searchDTO.getPageSize());
LambdaQueryWrapper<RcvBasic> query = Wrappers.lambdaQuery(); LambdaQueryWrapper<RcvBasic> query = Wrappers.lambdaQuery();
//时间范围默认按createTime
if (searchDTO.getBeginTime() != null) { //回收日期
query.ge(RcvBasic::getCreateTime, searchDTO.getBeginTime()); //出院日期
Object revoveryBeginTime = searchDTO.getParams("revoveryBeginTime");
Object revoveryEndTime = searchDTO.getParams("revoveryEndTime");
if (Func.isNotEmpty(revoveryBeginTime)) {
query.ge(RcvBasic::getRevoveryTime, revoveryBeginTime);
}
if (Func.isNotEmpty(revoveryEndTime)) {
query.le(RcvBasic::getRevoveryTime, revoveryEndTime);
}
//出院日期
Object disDateBeginTime = searchDTO.getParams("disDateBeginTime");
Object disDateEndTime = searchDTO.getParams("disDateEndTime");
if (Func.isNotEmpty(disDateBeginTime)) {
query.ge(RcvBasic::getDisDate, disDateBeginTime);
}
if (Func.isNotEmpty(disDateEndTime)) {
query.le(RcvBasic::getDisDate, disDateEndTime);
}
//流水号
Object serialNumber = searchDTO.getParams("serialNumber");
if (Func.isNotEmpty(serialNumber)) {
query.eq(RcvBasic::getSerialNumber, serialNumber);
} }
if (searchDTO.getEndTime() != null) {
Date endTime = searchDTO.getEndTime(); //住院号
query.le(RcvBasic::getCreateTime, endTime); Object admissId = searchDTO.getParams("admissId");
if (Func.isNotEmpty(admissId)) {
query.eq(RcvBasic::getAdmissId, admissId);
}
//患者姓名
Object name = searchDTO.getParams("name");
if (Func.isNotEmpty(name)) {
query.like(RcvBasic::getName, String.format("%s%s%s", "%", name, "%"));
}
//出院科室
Object disDept = searchDTO.getParams("disDept");
if (Func.isNotEmpty(disDept)) {
query.eq(RcvBasic::getDisDept, disDept);
} }
//回收人
Object revoveryUser = searchDTO.getParams("revoveryUser");
if (Func.isNotEmpty(revoveryUser)) {
query.eq(RcvBasic::getRevoveryUser, revoveryUser);
}
//回收状态 0待回收 1已回收
Object recoveryState = searchDTO.getParams("recoveryState"); Object recoveryState = searchDTO.getParams("recoveryState");
if (Func.isNotEmpty(recoveryState)) { if (Func.isNotEmpty(recoveryState)) {
query.eq(RcvBasic::getRecoveryState, recoveryState); query.eq(RcvBasic::getRecoveryState, recoveryState);
} }
//默认createTime倒序排序 //默认createTime倒序排序
query.orderByDesc(RcvBasic::getCreateTime); query.orderByDesc(RcvBasic::getCreateTime);
List<RcvBasic> list = super.find(query); List<RcvBasic> list = super.find(query);

@ -176,6 +176,14 @@ public interface IRcvBasicService {
*/ */
PageResult<SearchRcvBasicVO> search(SearchDTO searchDTO); PageResult<SearchRcvBasicVO> search(SearchDTO searchDTO);
/**
*
*
* @param searchDTO
* @return
*/
PageResult<RcvBasicVO> page(SearchDTO searchDTO);
/** /**
* *
* *

@ -145,6 +145,17 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
//return result; //return result;
} }
/**
*
*
* @param searchDTO
* @return
*/
@Override
public PageResult<RcvBasicVO> page(SearchDTO searchDTO) {
return RcvBasicConvert.INSTANCE.convertVO(iRcvBasicDao.search(searchDTO));
}
/** /**
* *
* *

Loading…
Cancel
Save