diff --git a/docus-api-common/src/main/java/com/docus/server/common/CommonController.java b/docus-api-common/src/main/java/com/docus/server/common/CommonController.java new file mode 100644 index 0000000..3e6849a --- /dev/null +++ b/docus-api-common/src/main/java/com/docus/server/common/CommonController.java @@ -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 getEnum(@PathVariable String enumName) throws ClassNotFoundException { + if (!StringUtils.isEmpty(enumsPackage)) { + String className = enumsPackage + "." + enumName; + if (!className.endsWith("Enum")) { + className += "Enum"; + } + Class enumClass = (Class) Class.forName(className); + IIntegerEnum[] enums = enumClass.getEnumConstants(); + List 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; + } +} diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/IgnoreValidate.java b/docus-api-common/src/main/java/com/docus/server/common/IgnoreValidate.java similarity index 88% rename from docus-api-common/src/main/java/com/docus/server/common/auth/IgnoreValidate.java rename to docus-api-common/src/main/java/com/docus/server/common/IgnoreValidate.java index e165a21..aef0f76 100644 --- a/docus-api-common/src/main/java/com/docus/server/common/auth/IgnoreValidate.java +++ b/docus-api-common/src/main/java/com/docus/server/common/IgnoreValidate.java @@ -1,4 +1,4 @@ -package com.docus.server.common.auth; +package com.docus.server.common; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/docus-client-interface/src/main/java/com/docus/server/api/recovery/RcvBasicApi.java b/docus-client-interface/src/main/java/com/docus/server/api/recovery/RcvBasicApi.java index f31b51c..cbe91ba 100644 --- a/docus-client-interface/src/main/java/com/docus/server/api/recovery/RcvBasicApi.java +++ b/docus-client-interface/src/main/java/com/docus/server/api/recovery/RcvBasicApi.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import javax.servlet.http.HttpServletResponse; import java.io.Serializable; import java.util.Collection; import java.util.List; @@ -99,7 +100,7 @@ public interface RcvBasicApi { List findAll(); /** - * 关键字搜索 + * 关键字搜索(安卓) * * @param searchDTO 搜索参数 * @return 分页列表 @@ -107,6 +108,15 @@ public interface RcvBasicApi { @PostMapping("/search") PageResult search(@RequestBody SearchDTO searchDTO); + /** + * 关键字搜索(PC) + * + * @param searchDTO 搜索参数 + * @return 分页列表 + */ + @PostMapping("/page") + PageResult page(@RequestBody SearchDTO searchDTO); + /** * 新增 * @@ -206,4 +216,7 @@ public interface RcvBasicApi { */ @GetMapping("/findByIdAndName") int findByIdAndName(@RequestParam("id") Serializable id, @RequestParam("name") String name); + + @GetMapping("/excelTemplate/download") + void excelTemplateDownload(HttpServletResponse response) throws Exception; } diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/ApiRequestContext.java b/docus-recovery/src/main/java/com/docus/server/common/auth/ApiRequestContext.java similarity index 100% rename from docus-api-common/src/main/java/com/docus/server/common/auth/ApiRequestContext.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/ApiRequestContext.java diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/CloudBaseConfig.java b/docus-recovery/src/main/java/com/docus/server/common/auth/CloudBaseConfig.java similarity index 100% rename from docus-api-common/src/main/java/com/docus/server/common/auth/CloudBaseConfig.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/CloudBaseConfig.java diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/FeignRequestInterceptor.java b/docus-recovery/src/main/java/com/docus/server/common/auth/FeignRequestInterceptor.java similarity index 100% rename from docus-api-common/src/main/java/com/docus/server/common/auth/FeignRequestInterceptor.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/FeignRequestInterceptor.java diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/RedisStringService.java b/docus-recovery/src/main/java/com/docus/server/common/auth/RedisStringService.java similarity index 100% rename from docus-api-common/src/main/java/com/docus/server/common/auth/RedisStringService.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/RedisStringService.java diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/RequestContextInterceptor.java b/docus-recovery/src/main/java/com/docus/server/common/auth/RequestContextInterceptor.java similarity index 100% rename from docus-api-common/src/main/java/com/docus/server/common/auth/RequestContextInterceptor.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/RequestContextInterceptor.java diff --git a/docus-api-common/src/main/java/com/docus/server/common/auth/TokenInterceptor.java b/docus-recovery/src/main/java/com/docus/server/common/auth/TokenInterceptor.java similarity index 99% rename from docus-api-common/src/main/java/com/docus/server/common/auth/TokenInterceptor.java rename to docus-recovery/src/main/java/com/docus/server/common/auth/TokenInterceptor.java index 17ec29e..7135499 100644 --- a/docus-api-common/src/main/java/com/docus/server/common/auth/TokenInterceptor.java +++ b/docus-recovery/src/main/java/com/docus/server/common/auth/TokenInterceptor.java @@ -3,6 +3,7 @@ package com.docus.server.common.auth; import com.alibaba.fastjson.JSON; import com.docus.infrastructure.web.exception.ApiException; import com.docus.infrastructure.web.exception.ExceptionCode; +import com.docus.server.common.IgnoreValidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/docus-recovery/src/main/java/com/docus/server/controller/RcvBasicController.java b/docus-recovery/src/main/java/com/docus/server/controller/RcvBasicController.java index ecc91a4..369102e 100644 --- a/docus-recovery/src/main/java/com/docus/server/controller/RcvBasicController.java +++ b/docus-recovery/src/main/java/com/docus/server/controller/RcvBasicController.java @@ -3,6 +3,7 @@ package com.docus.server.controller; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; 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.DeleteRcvBasicDTO; 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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.core.io.ClassPathResource; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; import java.io.Serializable; +import java.net.URLEncoder; import java.util.Collection; import java.util.List; @@ -119,17 +125,29 @@ public class RcvBasicController implements RcvBasicApi { } /** - * 关键字搜索 + * 关键字搜索(安卓) * * @param searchDTO 搜索参数 * @return 分页列表 */ - @ApiOperation("关键字搜索") + @ApiOperation("关键字搜索(安卓)") @Override public PageResult search(SearchDTO searchDTO) { return iRcvBasicService.search(searchDTO); } + /** + * 关键字搜索(PC) + * + * @param searchDTO 搜索参数 + * @return 分页列表 + */ + @ApiOperation("关键字搜索(PC)") + @Override + public PageResult page(SearchDTO searchDTO) { + return iRcvBasicService.page(searchDTO); + } + /** * 新增 * @@ -265,4 +283,27 @@ public class RcvBasicController implements RcvBasicApi { public int findByIdAndName(Serializable id, String 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(); + } } diff --git a/docus-recovery/src/main/java/com/docus/server/controller/RcvSysUserController.java b/docus-recovery/src/main/java/com/docus/server/controller/RcvSysUserController.java index 726acf7..005b53c 100644 --- a/docus-recovery/src/main/java/com/docus/server/controller/RcvSysUserController.java +++ b/docus-recovery/src/main/java/com/docus/server/controller/RcvSysUserController.java @@ -4,7 +4,7 @@ import com.docus.infrastructure.web.api.CommonResult; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; 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.DeleteRcvSysUserDTO; import com.docus.server.dto.recovery.rcvsysuser.EditRcvSysUserDTO; diff --git a/docus-recovery/src/main/java/com/docus/server/infrastructure/dao/impl/RcvBasicDaoImpl.java b/docus-recovery/src/main/java/com/docus/server/infrastructure/dao/impl/RcvBasicDaoImpl.java index fd87ac0..c74efd8 100644 --- a/docus-recovery/src/main/java/com/docus/server/infrastructure/dao/impl/RcvBasicDaoImpl.java +++ b/docus-recovery/src/main/java/com/docus/server/infrastructure/dao/impl/RcvBasicDaoImpl.java @@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository; import java.io.Serializable; import java.util.Collection; -import java.util.Date; import java.util.List; /** @@ -71,18 +70,66 @@ public class RcvBasicDaoImpl extends BaseDaoImpl imple //分页 PageHelper.startPage(searchDTO.getPageNum(), searchDTO.getPageSize()); LambdaQueryWrapper 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"); if (Func.isNotEmpty(recoveryState)) { query.eq(RcvBasic::getRecoveryState, recoveryState); } + //默认createTime倒序排序 query.orderByDesc(RcvBasic::getCreateTime); List list = super.find(query); diff --git a/docus-recovery/src/main/java/com/docus/server/service/IRcvBasicService.java b/docus-recovery/src/main/java/com/docus/server/service/IRcvBasicService.java index 6e65a69..0e00bdd 100644 --- a/docus-recovery/src/main/java/com/docus/server/service/IRcvBasicService.java +++ b/docus-recovery/src/main/java/com/docus/server/service/IRcvBasicService.java @@ -176,6 +176,14 @@ public interface IRcvBasicService { */ PageResult search(SearchDTO searchDTO); + /** + * 关键字搜索 + * + * @param searchDTO 搜索参数 + * @return 分页列表 + */ + PageResult page(SearchDTO searchDTO); + /** * 名称不重复 * diff --git a/docus-recovery/src/main/java/com/docus/server/service/impl/RcvBasicServiceImpl.java b/docus-recovery/src/main/java/com/docus/server/service/impl/RcvBasicServiceImpl.java index 99f7684..b6c06a8 100644 --- a/docus-recovery/src/main/java/com/docus/server/service/impl/RcvBasicServiceImpl.java +++ b/docus-recovery/src/main/java/com/docus/server/service/impl/RcvBasicServiceImpl.java @@ -145,6 +145,17 @@ public class RcvBasicServiceImpl implements IRcvBasicService { //return result; } + /** + * 关键字搜索 + * + * @param searchDTO 搜索参数 + * @return 分页列表 + */ + @Override + public PageResult page(SearchDTO searchDTO) { + return RcvBasicConvert.INSTANCE.convertVO(iRcvBasicDao.search(searchDTO)); + } + /** * 新增 * diff --git a/docus-recovery/src/main/resources/tpl/病案回收导入基础数据模板.xlsx b/docus-recovery/src/main/resources/tpl/病案回收导入基础数据模板.xlsx new file mode 100644 index 0000000..9aa8e39 Binary files /dev/null and b/docus-recovery/src/main/resources/tpl/病案回收导入基础数据模板.xlsx differ diff --git a/pom.xml b/pom.xml index cf4dec6..10ea70e 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ pom - + docus-recovery docus-api-common docus-client-interface