From a1e27e8094f3dc4667ad9e03bfbcc1f93e20c6e6 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Thu, 11 Mar 2021 15:02:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=88=86=E6=95=B0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8A=A5=E5=91=8A=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper_dao/HtPatientReportDao.xml | 6 +- .../api/PatientReportSearchController.java | 58 +++++++++++++++++++ .../bean/dto/PatientReportSearchDto.java | 38 ++++++++++++ .../bean/vo/PatientReportSearchVo.java | 33 +++++++++++ .../persist/dao/HtPatientReportDao.java | 9 +++ .../question/persist/dao/HtReportDao.java | 8 +++ .../service/IPatientReportService.java | 15 +++++ .../service/PatientReportService.java | 31 +++++++++- .../mapper_dao/HtPatientReportDao.xml | 31 ++++++++++ .../main/resources/mapper_dao/HtReportDao.xml | 31 ++++++++++ 10 files changed, 256 insertions(+), 4 deletions(-) create mode 100644 question/src/main/java/com/ccsens/question/api/PatientReportSearchController.java create mode 100644 question/src/main/java/com/ccsens/question/bean/dto/PatientReportSearchDto.java create mode 100644 question/src/main/java/com/ccsens/question/bean/vo/PatientReportSearchVo.java diff --git a/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml b/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml index afb9de04..acf5782d 100644 --- a/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml +++ b/ht/src/main/resources/mapper_dao/HtPatientReportDao.xml @@ -244,12 +244,12 @@ GROUP BY patient_report_id HAVING - + - AND sum( score ) >= #{item.start} + sum( score ) >= #{item.start} AND - AND sum( score ) <= #{item.end} + sum( score ) <= #{item.end} AND diff --git a/question/src/main/java/com/ccsens/question/api/PatientReportSearchController.java b/question/src/main/java/com/ccsens/question/api/PatientReportSearchController.java new file mode 100644 index 00000000..d725e739 --- /dev/null +++ b/question/src/main/java/com/ccsens/question/api/PatientReportSearchController.java @@ -0,0 +1,58 @@ +package com.ccsens.question.api; + +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.question.bean.dto.PatientReportSearchDto; +import com.ccsens.question.bean.vo.PatientReportSearchVo; +import com.ccsens.question.service.IPatientReportService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/3/10 15:03 + */ +@Slf4j +@Api(tags = "报告单搜索",value = "报告单搜索条件,搜索") +@RestController +@RequestMapping("/patientReport") +public class PatientReportSearchController { + @Resource + private IPatientReportService patientReportService; + + @MustLogin + @ApiOperation(value = "查询搜索条件",notes = "whj 查询搜索条件") + @ApiImplicitParams({ + @ApiImplicitParam(name = "json", value = "查询搜索条件", required = true) + }) + @RequestMapping(value="/searchParam", method = RequestMethod.POST) + public JsonResponse searchParam(@RequestBody @ApiParam @Valid QueryDto dto){ + log.info("查询搜索条件:{}", dto); + List params = patientReportService.searchParam(dto.getParam()); + log.info("查询搜索条件已完成:{}", params); + return JsonResponse.newInstance().ok(params); + } + + @MustLogin + @ApiOperation(value = "根据条件搜索报告单",notes = "whj 搜索报告单") + @ApiImplicitParams({ + @ApiImplicitParam(name = "json", value = "查询搜索条件", required = true) + }) + @RequestMapping(value="/search", method = RequestMethod.POST) + public JsonResponse search(@RequestBody @ApiParam @Valid QueryDto dto){ + log.info("搜索报告单:{}", dto); + List params = patientReportService.search(dto.getParam()); + log.info("搜索报告单已完成"); + return JsonResponse.newInstance().ok(params); + } +} diff --git a/question/src/main/java/com/ccsens/question/bean/dto/PatientReportSearchDto.java b/question/src/main/java/com/ccsens/question/bean/dto/PatientReportSearchDto.java new file mode 100644 index 00000000..5c368fd2 --- /dev/null +++ b/question/src/main/java/com/ccsens/question/bean/dto/PatientReportSearchDto.java @@ -0,0 +1,38 @@ +package com.ccsens.question.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/3/10 16:21 + */ +public class PatientReportSearchDto { + @Data + @ApiModel("搜索条件-请求参数") + public static class SearchParam{ + @ApiModelProperty("查询类型") + @NotEmpty(message = "请输入查询报告单类型") + private String parentCode; + } + + @Data + @ApiModel("搜索报告单参数列表-请求") + public static class SearchList { + private List codes; + } + + @Data + @ApiModel("搜索报告单参数-请求") + public static class Search { + @NotEmpty(message="请选择查询类型") + private String code; + private Integer start; + private Integer end; + } +} diff --git a/question/src/main/java/com/ccsens/question/bean/vo/PatientReportSearchVo.java b/question/src/main/java/com/ccsens/question/bean/vo/PatientReportSearchVo.java new file mode 100644 index 00000000..260bca30 --- /dev/null +++ b/question/src/main/java/com/ccsens/question/bean/vo/PatientReportSearchVo.java @@ -0,0 +1,33 @@ +package com.ccsens.question.bean.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/3/10 16:06 + */ +public class PatientReportSearchVo { + + @Data + @ApiModel("搜索条件-响应") + public static class SearchParam { + private Long id; + private String code; + private String name; + private byte optionStatus; + private String parentCode; + private List children = new ArrayList<>(); + } + + @Data + @ApiModel("搜索-响应") + public static class Search { + private Long id; + private String name; + } +} diff --git a/question/src/main/java/com/ccsens/question/persist/dao/HtPatientReportDao.java b/question/src/main/java/com/ccsens/question/persist/dao/HtPatientReportDao.java index 61be86f8..ce8b5d72 100644 --- a/question/src/main/java/com/ccsens/question/persist/dao/HtPatientReportDao.java +++ b/question/src/main/java/com/ccsens/question/persist/dao/HtPatientReportDao.java @@ -1,6 +1,8 @@ package com.ccsens.question.persist.dao; import com.ccsens.question.bean.dto.PatientReportDto; +import com.ccsens.question.bean.dto.PatientReportSearchDto; +import com.ccsens.question.bean.vo.PatientReportSearchVo; import com.ccsens.question.bean.vo.PatientReportVo; import com.ccsens.question.persist.mapper.HtPatientReportMapper; import org.apache.ibatis.annotations.Param; @@ -95,4 +97,11 @@ public interface HtPatientReportDao extends HtPatientReportMapper { * @return */ List queryReportAnswer(@Param("id") Long id, @Param("evaluationCode") String evaluationCode); + + /** + * 根据分数搜索报告单 + * @param codes 分数 + * @return 报告单 + */ + List search(@Param("codes") List codes); } diff --git a/question/src/main/java/com/ccsens/question/persist/dao/HtReportDao.java b/question/src/main/java/com/ccsens/question/persist/dao/HtReportDao.java index 26fa7f2d..594e2014 100644 --- a/question/src/main/java/com/ccsens/question/persist/dao/HtReportDao.java +++ b/question/src/main/java/com/ccsens/question/persist/dao/HtReportDao.java @@ -1,6 +1,7 @@ package com.ccsens.question.persist.dao; import com.ccsens.question.bean.po.HtReport; +import com.ccsens.question.bean.vo.PatientReportSearchVo; import com.ccsens.question.bean.vo.QuestionVo; import com.ccsens.question.persist.mapper.HtReportMapper; import org.apache.ibatis.annotations.Param; @@ -37,4 +38,11 @@ public interface HtReportDao extends HtReportMapper { * @return 返回测评类型 */ List queryReportCode(@Param("code") String code); + + /** + * 查询所有下级菜单和是否有试题 + * @param parentCode 父code + * @return 搜索条件 + */ + List queryParam(@Param("parentCode") String parentCode); } diff --git a/question/src/main/java/com/ccsens/question/service/IPatientReportService.java b/question/src/main/java/com/ccsens/question/service/IPatientReportService.java index 3110c8d3..90b560cb 100644 --- a/question/src/main/java/com/ccsens/question/service/IPatientReportService.java +++ b/question/src/main/java/com/ccsens/question/service/IPatientReportService.java @@ -1,7 +1,9 @@ package com.ccsens.question.service; import com.ccsens.question.bean.dto.PatientReportDto; +import com.ccsens.question.bean.dto.PatientReportSearchDto; import com.ccsens.question.bean.po.HtDoctor; +import com.ccsens.question.bean.vo.PatientReportSearchVo; import com.ccsens.question.bean.vo.PatientReportVo; import com.ccsens.util.CodeEnum; import com.ccsens.util.JsonResponse; @@ -142,4 +144,17 @@ public interface IPatientReportService { List queryReportAnswer(PatientReportDto.QueryReportAnswer param, Long userId); + /** + * 查询报告单的搜索条件 + * @param param 父code + * @return 搜索条件 + */ + List searchParam(PatientReportSearchDto.SearchParam param); + + /** + * 搜索报告单 + * @param param 搜索列表 + * @return 报告单 + */ + List search(PatientReportSearchDto.SearchList param); } diff --git a/question/src/main/java/com/ccsens/question/service/PatientReportService.java b/question/src/main/java/com/ccsens/question/service/PatientReportService.java index b73e0fca..708b185e 100644 --- a/question/src/main/java/com/ccsens/question/service/PatientReportService.java +++ b/question/src/main/java/com/ccsens/question/service/PatientReportService.java @@ -7,11 +7,14 @@ import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.question.bean.dto.PatientReportDto; +import com.ccsens.question.bean.dto.PatientReportSearchDto; import com.ccsens.question.bean.po.*; +import com.ccsens.question.bean.vo.PatientReportSearchVo; import com.ccsens.question.bean.vo.PatientReportVo; import com.ccsens.question.persist.dao.HtDoctorDao; import com.ccsens.question.persist.dao.HtPatientReportDao; import com.ccsens.question.persist.dao.HtPositionDao; +import com.ccsens.question.persist.dao.HtReportDao; import com.ccsens.question.persist.mapper.HtPatientFollowUpMapper; import com.ccsens.question.persist.mapper.HtPatientMapper; import com.ccsens.question.persist.mapper.HtPatientReportRecordMapper; @@ -46,7 +49,7 @@ import java.util.concurrent.atomic.AtomicReference; @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class PatientReportService implements IPatientReportService { - @Autowired + @Resource private Snowflake snowflake; @Resource private HtDoctorDao htDoctorDao; @@ -60,6 +63,8 @@ public class PatientReportService implements IPatientReportService { private HtPatientReportRecordMapper htPatientReportRecordMapper; @Resource private HtPatientFollowUpMapper htPatientFollowUpMapper; + @Resource + private HtReportDao htReportDao; @Override public JsonResponse generatePatientReport(PatientReportDto.Generate generate, Long userId) { @@ -578,5 +583,29 @@ public class PatientReportService implements IPatientReportService { return htPatientReportDao.queryReportAnswer(param.getId(),param.getEvaluationCode()); } + @Override + public List searchParam(PatientReportSearchDto.SearchParam param) { + List list = htReportDao.queryParam(param.getParentCode()); + if (CollectionUtil.isEmpty(list)) { + return list; + } + Map map = new HashMap<>(); + List nodes = new ArrayList<>(); + list.forEach(searchParam -> { + if (param.getParentCode().equals(searchParam.getParentCode())) { + nodes.add(searchParam); + } else { + PatientReportSearchVo.SearchParam parent = map.get(searchParam.getParentCode()); + parent.getChildren().add(searchParam); + } + map.put(searchParam.getCode(), searchParam); + }); + return nodes; + } + @Override + public List search(PatientReportSearchDto.SearchList param) { + List list = htPatientReportDao.search(param.getCodes()); + return list; + } } diff --git a/question/src/main/resources/mapper_dao/HtPatientReportDao.xml b/question/src/main/resources/mapper_dao/HtPatientReportDao.xml index a6287160..69ead2bd 100644 --- a/question/src/main/resources/mapper_dao/HtPatientReportDao.xml +++ b/question/src/main/resources/mapper_dao/HtPatientReportDao.xml @@ -225,6 +225,37 @@ and a.questionId = t.question_id ORDER BY a.questionId ,a.sort + \ No newline at end of file diff --git a/question/src/main/resources/mapper_dao/HtReportDao.xml b/question/src/main/resources/mapper_dao/HtReportDao.xml index fbd671bd..abe87d9d 100644 --- a/question/src/main/resources/mapper_dao/HtReportDao.xml +++ b/question/src/main/resources/mapper_dao/HtReportDao.xml @@ -47,5 +47,36 @@ parent_code = #{code} ORDER BY sort + \ No newline at end of file