From e064c8b03798a774671790170233b3ba62af0a19 Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Tue, 16 Apr 2024 09:56:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/TaskContentConstants.java | 34 +++ .../common/enums/RouteCheckStatusEnum.java | 1 + .../PatientVisitRecordController.java | 10 + .../questioninfo/QuestionInfoController.java | 2 +- .../SignPatientManageRouteController.java | 23 +- .../SignPatientManageRouteNodeController.java | 4 +- .../signpatientrecord/SignPatientRecord.java | 6 + .../PatientVisitRecordDto.java | 18 +- .../PatientTaskDto.java | 2 +- .../RouteNodeCheckDto.java | 7 +- .../PatientVisitRecordMapper.java | 33 +-- .../impl/PatientInfoServiceImpl.java | 3 +- .../PatientPreHospitalizationServiceImpl.java | 6 +- .../IPatientVisitRecordService.java | 10 +- .../impl/PatientVisitRecordServiceImpl.java | 29 ++- .../questioninfo/IQuestionInfoService.java | 2 +- .../impl/QuestionInfoServiceImpl.java | 56 ++--- .../ISignPatientManageRouteService.java | 9 +- .../SignPatientManageRouteServiceImpl.java | 20 +- ...SignPatientManageRouteNodeServiceImpl.java | 94 ++++++-- .../impl/SignPatientRecordServiceImpl.java | 1 + .../PatientVisitRecordVo.java | 173 +++++++++++++++ .../PatientTaskVo.java | 9 + .../SignPatientManageRouteNodeInfoVo.java | 206 ++++++++++++++++++ .../SignPatientManageRouteNodeVo.java | 3 +- .../PatientVisitRecordMapper.xml | 50 +++-- .../SignPatientManageRouteNodeMapper.xml | 32 ++- .../SignPatientRecordMapper.xml | 5 +- 28 files changed, 729 insertions(+), 119 deletions(-) create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/constant/TaskContentConstants.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientvisitrecord/PatientVisitRecordVo.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeInfoVo.java diff --git a/postdischarge-common/src/main/java/com/xinelu/common/constant/TaskContentConstants.java b/postdischarge-common/src/main/java/com/xinelu/common/constant/TaskContentConstants.java new file mode 100644 index 00000000..a6635309 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/constant/TaskContentConstants.java @@ -0,0 +1,34 @@ +package com.xinelu.common.constant; + +/** + * @description: 任务内容常量 + * @author: haown + * @create: 2024-04-12 16:50 + **/ +public class TaskContentConstants { + /** + * 电话外呼 + */ + public static final String PHONE_OUTBOUND = "PHONE_OUTBOUND"; + + /** + * 问卷量表 + */ + public static final String QUESTIONNAIRE_SCALE = "QUESTIONNAIRE_SCALE"; + + /** + * 宣教文章 + */ + public static final String PROPAGANDA_ARTICLE = "PROPAGANDA_ARTICLE"; + + /** + * 文字提醒 + */ + public static final String TEXT_REMIND = "TEXT_REMIND"; + + /** + * 人工随访 + */ + public static final String ARTIFICIAL_FOLLOW_UP = "ARTIFICIAL_FOLLOW_UP"; + +} diff --git a/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java index a3151660..f717d8ff 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java @@ -10,6 +10,7 @@ import lombok.Getter; */ @Getter public enum RouteCheckStatusEnum { + /** * 同意 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java index 0a65b5a4..27b6cb55 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java @@ -13,6 +13,7 @@ import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordImportDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordInfoSaveDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordSaveDto; import com.xinelu.manage.service.patientvisitrecord.IPatientVisitRecordService; +import com.xinelu.manage.vo.patientvisitrecord.PatientVisitRecordVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -79,6 +80,15 @@ public class PatientVisitRecordController extends BaseController { return AjaxResult.success(patientVisitRecordService.selectPatientVisitRecordById(id)); } + /** + * 查询患者最新一次就诊记录信息 + */ + @PreAuthorize("@ss.hasPermi('manage:visit:query')") + @GetMapping(value = "/getByPatientId/{patientId}") + public R getByPatientId(@PathVariable("patientId") Long patientId) { + return R.ok(patientVisitRecordService.getByPatientId(patientId)); + } + /** * 新增患者就诊记录基本信息 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questioninfo/QuestionInfoController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questioninfo/QuestionInfoController.java index bc5f659c..c52684f9 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questioninfo/QuestionInfoController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questioninfo/QuestionInfoController.java @@ -62,7 +62,7 @@ public class QuestionInfoController extends BaseController { if (Objects.isNull(id)) { return AjaxResult.success(); } - return questionInfoService.selectQuestionInfoById(id); + return AjaxResult.success(questionInfoService.selectQuestionInfoById(id)); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java index bda7141e..fa79bb05 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java @@ -3,6 +3,7 @@ package com.xinelu.manage.controller.signpatientmanageroute; import com.xinelu.common.annotation.Log; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.domain.R; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; @@ -12,12 +13,18 @@ import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitRe import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - +import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.util.List; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * 签约患者管理任务路径Controller @@ -119,5 +126,11 @@ public class SignPatientManageRouteController extends BaseController { return signPatientManageRouteService.addPatientQuestionResult(dto); } - + /** + * 患者详情--康复计划及记录 + */ + @GetMapping("/getRouteList") + public R> getRouteList(SignPatientManageRoute signPatientManageRoute) { + return R.ok(signPatientManageRouteService.getRouteList(signPatientManageRoute)); + } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java index 803ca5d7..0a277d16 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java @@ -54,9 +54,9 @@ public class SignPatientManageRouteNodeController extends BaseController { } /** - * 查询管理任务路径及节点 + * 任务审核--查询患者任务路径及节点 */ - @ApiOperation("查询管理任务路径及节点") + @ApiOperation("任务审核--查询患者任务路径及节点") @GetMapping("/getRouteNodeList") public R> getRouteNodeList(PatientTaskDto patientTaskDto) { List list = signNodeService.getRouteNodeList(patientTaskDto); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientrecord/SignPatientRecord.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientrecord/SignPatientRecord.java index cd030ed7..c5324ff5 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientrecord/SignPatientRecord.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientrecord/SignPatientRecord.java @@ -123,6 +123,12 @@ public class SignPatientRecord extends BaseEntity { @ApiModelProperty(value = "签约时所属病区名称") private String wardName; + /** + * 就诊记录表主键 + */ + @ApiModelProperty(value = "就诊记录表主键") + private Long patientVisitRecordId; + /** * 就诊流水号 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordDto.java index 6de4d3e2..1fa95d80 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordDto.java @@ -14,15 +14,27 @@ import org.springframework.format.annotation.DateTimeFormat; @Data public class PatientVisitRecordDto { - /** 居民信息表id */ + /** + * 居民信息表id + * */ @ApiModelProperty(value = "居民信息表id") private Long residentId; - /** 患者表id */ + /** + * 患者表id + * */ @ApiModelProperty(value = "患者表id") private Long patientId; - /** 所属医院id */ + /** + * 居民身份证号 + * */ + @ApiModelProperty(value = "居民身份证号") + private String cardNo; + + /** + * 所属医院id + * */ @ApiModelProperty(value = "所属医院id") @Excel(name = "所属医院id") private Long hospitalAgencyId; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java index 9ed18b8e..7d01d3ef 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java @@ -56,7 +56,7 @@ public class PatientTaskDto { private Long wardId; /** 节点审核状态,同意:AGREE,不同意:DISAGREE */ - @ApiModelProperty(value = "节点审核状态,同意:AGREE,不同意:DISAGREE") + @ApiModelProperty(value = "节点审核状态,未审核:UNAUDITED,同意:AGREE,不同意:DISAGREE") private String routeCheckStatus; /** 主要诊断 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/RouteNodeCheckDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/RouteNodeCheckDto.java index f46598ac..d27dccd9 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/RouteNodeCheckDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/RouteNodeCheckDto.java @@ -2,6 +2,7 @@ package com.xinelu.manage.dto.signpatientmanageroutenode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.util.List; import lombok.Data; /** @@ -13,9 +14,9 @@ import lombok.Data; @Data public class RouteNodeCheckDto { - /** 签约患者管理任务表id */ - @ApiModelProperty(value = "签约患者管理任务表id") - private Long manageRouteId; + /** 签约患者管理任务节点表id列表 */ + @ApiModelProperty(value = "签约患者管理任务节点表id列表") + private List manageRouteNodeIds; /** 节点审核状态,同意:AGREE,不同意:DISAGREE */ @ApiModelProperty(value = "节点审核状态,同意:AGREE,不同意:DISAGREE") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientvisitrecord/PatientVisitRecordMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientvisitrecord/PatientVisitRecordMapper.java index 0f90a271..3a8f34c7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientvisitrecord/PatientVisitRecordMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientvisitrecord/PatientVisitRecordMapper.java @@ -2,6 +2,7 @@ package com.xinelu.manage.mapper.patientvisitrecord; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; +import com.xinelu.manage.vo.patientvisitrecord.PatientVisitRecordVo; import java.util.Collection; import java.util.List; import org.apache.ibatis.annotations.Param; @@ -19,7 +20,14 @@ public interface PatientVisitRecordMapper { * @param id 患者就诊记录基本信息主键 * @return 患者就诊记录基本信息 */ - public PatientVisitRecord selectPatientVisitRecordById(Long id); + PatientVisitRecord selectPatientVisitRecordById(Long id); + + /** + * 查询患者最新一条就诊记录信息 + * @param patientId 患者记录表主键 + * @return 患者就诊信息视图类 + */ + PatientVisitRecordVo getByPatientId(Long patientId); /** * 查询患者就诊记录基本信息列表 @@ -27,7 +35,7 @@ public interface PatientVisitRecordMapper { * @param patientVisitRecord 患者就诊记录基本信息 * @return 患者就诊记录基本信息集合 */ - public List selectPatientVisitRecordList(PatientVisitRecordDto patientVisitRecord); + List selectPatientVisitRecordList(PatientVisitRecordDto patientVisitRecord); /** * 新增患者就诊记录基本信息 @@ -35,7 +43,7 @@ public interface PatientVisitRecordMapper { * @param patientVisitRecord 患者就诊记录基本信息 * @return 结果 */ - public int insertPatientVisitRecord(PatientVisitRecord patientVisitRecord); + int insertPatientVisitRecord(PatientVisitRecord patientVisitRecord); int insertBatch(@Param("patientVisitRecordList") Collection patientVisitRecordList); /** @@ -44,7 +52,7 @@ public interface PatientVisitRecordMapper { * @param patientVisitRecord 患者就诊记录基本信息 * @return 结果 */ - public int updatePatientVisitRecord(PatientVisitRecord patientVisitRecord); + int updatePatientVisitRecord(PatientVisitRecord patientVisitRecord); /** * 删除患者就诊记录基本信息 @@ -52,7 +60,7 @@ public interface PatientVisitRecordMapper { * @param id 患者就诊记录基本信息主键 * @return 结果 */ - public int deletePatientVisitRecordById(Long id); + int deletePatientVisitRecordById(Long id); /** * 批量删除患者就诊记录基本信息 @@ -60,16 +68,13 @@ public interface PatientVisitRecordMapper { * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deletePatientVisitRecordByIds(Long[] ids); - - PatientVisitRecord judgeRepeat(@Param("hospitalAgencyId") Long hospitalAgencyId, @Param("cardNo") String cardNo, - @Param("inHospitalNumber") String inHospitalNumber); + int deletePatientVisitRecordByIds(Long[] ids); /** - * 获取居民在当前机构最新一条就诊记录 - * @param hospitalAgencyId 机构id - * @param patientId 患者id - * @return 结果 + * 根据查询条件获取最新一条就诊记录 + * @param patientVisitRecordDto 患者就诊记录查询传输对象 + * @return 就诊记录信息 */ - PatientVisitRecord getLastRecord(@Param("hospitalAgencyId") Long hospitalAgencyId, @Param("patientId") Long patientId); + PatientVisitRecord getLastRecord(PatientVisitRecordDto patientVisitRecordDto); + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java index f0953e16..3ea6473b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java @@ -144,8 +144,9 @@ public class PatientInfoServiceImpl implements IPatientInfoService { patientVisitRecordService.deletePatientVisitRecordById(patientInfo.getPatientVisitRecordId()); // 根据患者最新一条就诊记录修改患者状态 PatientVisitRecordDto patientVisitRecordDto = new PatientVisitRecordDto(); + patientVisitRecordDto.setHospitalAgencyId(patientInfo.getHospitalAgencyId()); patientVisitRecordDto.setPatientId(id); - PatientVisitRecord patientVisitRecord = patientVisitRecordService.getLastRecord(patientInfo.getHospitalAgencyId(), id); + PatientVisitRecord patientVisitRecord = patientVisitRecordService.getLastRecord(patientVisitRecordDto); if (ObjectUtils.isEmpty(patientVisitRecord)) { setVisitInfoNull(patientInfo); } else { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java index 0e0b1bc3..c61f8d93 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java @@ -14,6 +14,7 @@ import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.patientprehospitalization.PatientPreHospitalization; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.dto.patientinfo.PatientInfoDto; +import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; import com.xinelu.manage.mapper.agency.AgencyMapper; import com.xinelu.manage.mapper.department.DepartmentMapper; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; @@ -120,7 +121,10 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital // 将患者状态还原为上一个状态 PatientPreHospitalization patientPreHospitalization = preHospitalizationMapper.selectByPrimaryKey(id); PatientInfo patientInfo = patientInfoService.selectPatientInfoById(patientPreHospitalization.getPatientId()); - PatientVisitRecord patientVisitRecord = patientVisitRecordService.getLastRecord(patientPreHospitalization.getHospitalAgencyId(), patientPreHospitalization.getPatientId()); + PatientVisitRecordDto patientVisitRecordDto = new PatientVisitRecordDto(); + patientVisitRecordDto.setHospitalAgencyId(patientPreHospitalization.getHospitalAgencyId()); + patientVisitRecordDto.setPatientId(patientPreHospitalization.getPatientId()); + PatientVisitRecord patientVisitRecord = patientVisitRecordService.getLastRecord(patientVisitRecordDto); if (ObjectUtils.isEmpty(patientVisitRecord)) { // 患者的预住院信息置空 setPreHospitalizationInfoNull(patientInfo); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java index 107f55e0..26d85380 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java @@ -7,6 +7,7 @@ import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordImportDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordInfoSaveDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordSaveDto; +import com.xinelu.manage.vo.patientvisitrecord.PatientVisitRecordVo; import java.util.List; import org.springframework.web.bind.annotation.RequestBody; @@ -26,6 +27,13 @@ public interface IPatientVisitRecordService { */ PatientVisitRecord selectPatientVisitRecordById(Long id); + /** + * 查询患者最新一次就诊记录信息 + * @param patientId 患者记录表主键 + * @return 患者就诊信息视图类 + */ + PatientVisitRecordVo getByPatientId(Long patientId); + /** * 查询患者就诊记录基本信息列表 * @@ -91,5 +99,5 @@ public interface IPatientVisitRecordService { void setPatientType(PatientInfo patientInfo, PatientVisitRecord patientVisitRecord); - PatientVisitRecord getLastRecord(Long hospitalAgencyId, Long patientId); + PatientVisitRecord getLastRecord(PatientVisitRecordDto patientVisitRecordDto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java index 09d9ff8b..bd74a814 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java @@ -27,6 +27,7 @@ import com.xinelu.manage.mapper.patientvisitrecord.PatientVisitRecordMapper; import com.xinelu.manage.service.patientinfo.IPatientInfoService; import com.xinelu.manage.service.patientvisitrecord.IPatientVisitRecordService; import com.xinelu.manage.vo.patientinfo.PatientBaseInfoVo; +import com.xinelu.manage.vo.patientvisitrecord.PatientVisitRecordVo; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -71,7 +72,11 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService return patientVisitRecordMapper.selectPatientVisitRecordById(id); } - /** + @Override public PatientVisitRecordVo getByPatientId(Long patientId) { + return patientVisitRecordMapper.getByPatientId(patientId); + } + + /** * 查询患者就诊记录基本信息列表 * * @param patientVisitRecord 患者就诊记录基本信息 @@ -92,7 +97,11 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService @Transactional(rollbackFor = Exception.class) public void insertPatientVisitRecord(PatientVisitRecordSaveDto saveDto) { // 根据机构id、患者身份证号判断门诊/住院号是否重复 - PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.judgeRepeat(saveDto.getHospitalAgencyId(), saveDto.getCardNo(), saveDto.getInHospitalNumber()); + PatientVisitRecordDto patientVisitRecordDto = new PatientVisitRecordDto(); + patientVisitRecordDto.setHospitalAgencyId(saveDto.getHospitalAgencyId()); + patientVisitRecordDto.setCardNo(saveDto.getCardNo()); + patientVisitRecordDto.setInHospitalNumber(saveDto.getInHospitalNumber()); + PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.getLastRecord(patientVisitRecordDto); if (ObjectUtils.isNotEmpty(patientVisitRecord)) { throw new ServiceException("门诊/住院号重复,请确认后重新输入!"); } @@ -158,7 +167,11 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService @Transactional(rollbackFor = Exception.class) public int updatePatientVisitRecord(PatientVisitRecord patientVisitRecord) { // 根据机构id、患者身份证号判断门诊/住院号是否重复 - PatientVisitRecord object = patientVisitRecordMapper.judgeRepeat(patientVisitRecord.getHospitalAgencyId(), patientVisitRecord.getCardNo(), patientVisitRecord.getInHospitalNumber()); + PatientVisitRecordDto patientVisitRecordDto = new PatientVisitRecordDto(); + patientVisitRecordDto.setHospitalAgencyId(patientVisitRecord.getHospitalAgencyId()); + patientVisitRecordDto.setCardNo(patientVisitRecord.getCardNo()); + patientVisitRecordDto.setInHospitalNumber(patientVisitRecord.getInHospitalNumber()); + PatientVisitRecord object = patientVisitRecordMapper.getLastRecord(patientVisitRecordDto); if (ObjectUtils.isNotEmpty(object)) { throw new ServiceException("门诊/住院号重复,请确认后重新输入!"); } @@ -183,7 +196,11 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService PatientBaseInfoVo patientBaseInfo = patientMapper.getPatientBaseInfo(saveDto.getPatientId()); BeanUtils.copyBeanProp(patientVisitRecord, patientBaseInfo); // 根据机构id、患者身份证号判断门诊/住院号是否重复 - PatientVisitRecord object = patientVisitRecordMapper.judgeRepeat(patientVisitRecord.getHospitalAgencyId(), patientVisitRecord.getCardNo(), patientVisitRecord.getInHospitalNumber()); + PatientVisitRecordDto patientVisitRecordDto = new PatientVisitRecordDto(); + patientVisitRecordDto.setHospitalAgencyId(patientVisitRecord.getHospitalAgencyId()); + patientVisitRecordDto.setCardNo(patientVisitRecord.getCardNo()); + patientVisitRecordDto.setInHospitalNumber(patientVisitRecord.getInHospitalNumber()); + PatientVisitRecord object = patientVisitRecordMapper.getLastRecord(patientVisitRecordDto); if (ObjectUtils.isNotEmpty(object)) { throw new ServiceException("门诊/住院号重复,请确认后重新输入!"); } @@ -404,8 +421,8 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService } } - @Override public PatientVisitRecord getLastRecord(Long hospitalAgencyId, Long patientId) { - return patientVisitRecordMapper.getLastRecord(hospitalAgencyId, patientId); + @Override public PatientVisitRecord getLastRecord(PatientVisitRecordDto patientVisitRecordDto) { + return patientVisitRecordMapper.getLastRecord(patientVisitRecordDto); } private void setVisitDate(PatientVisitRecord patientVisitRecord) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/IQuestionInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/IQuestionInfoService.java index e36fc62a..7ef1b0b8 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/IQuestionInfoService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/IQuestionInfoService.java @@ -19,7 +19,7 @@ public interface IQuestionInfoService { * @param id 问卷基本信息主键 * @return 问卷基本信息 */ - AjaxResult selectQuestionInfoById(Long id); + QuestionVO selectQuestionInfoById(Long id); /** * 查询问卷基本信息列表 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java index 75775b5e..a6fed741 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java @@ -15,17 +15,16 @@ import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.questionInfo.QuestionVO; import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO; import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import javax.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 问卷基本信息Service业务层处理 @@ -45,29 +44,32 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService { @Override - public AjaxResult selectQuestionInfoById(Long id) { + public QuestionVO selectQuestionInfoById(Long id) { //查询问卷表 QuestionInfo questionInfo = questionInfoMapper.selectQuestionInfoById(id); - if (Objects.isNull(questionInfo)) { - return AjaxResult.error("该问卷信息已不存在!"); - } - //查询题目表 - QuestionVO questionVO = new QuestionVO(); - BeanUtils.copyBeanProp(questionVO, questionInfo); - List questionSubjects = questionSubjectMapper.selectQuestionSubjectBy(id); - List questionSubjectIds = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId())).map(QuestionSubject::getId).collect(Collectors.toList()); - if (questionSubjectIds.size() == 0) { - questionVO.setQuestionSubjectList(questionSubjects); - return AjaxResult.success(questionVO); - } - //查询选项表 - List questionSubjectOptions = questionSubjectOptionMapper.selectQuestionSubjectOptions(questionSubjectIds); - for (QuestionSubjectVO questionSubject : questionSubjects) { - List collect = questionSubjectOptions.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionnaireSubjectId()) && questionSubject.getId().equals(item.getQuestionnaireSubjectId())).collect(Collectors.toList()); - questionSubject.setQuestionSubjectOptionList(collect); - } - questionVO.setQuestionSubjectList(questionSubjects); - return AjaxResult.success(questionVO); + //if (Objects.isNull(questionInfo)) { + // throw new ServiceException("该问卷信息已不存在!"); + //} + QuestionVO questionVO = new QuestionVO(); + // 查询题目表 + if (Objects.nonNull(questionInfo)) { + BeanUtils.copyBeanProp(questionVO, questionInfo); + List questionSubjects = questionSubjectMapper.selectQuestionSubjectBy(id); + List questionSubjectIds = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getId())).map(QuestionSubject::getId).collect(Collectors.toList()); + if (questionSubjectIds.size() == 0) { + questionVO.setQuestionSubjectList(questionSubjects); + return questionVO; + } + // 查询选项表 + List questionSubjectOptions = questionSubjectOptionMapper.selectQuestionSubjectOptions(questionSubjectIds); + for (QuestionSubjectVO questionSubject : questionSubjects) { + List collect = questionSubjectOptions.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionnaireSubjectId()) && questionSubject.getId().equals(item.getQuestionnaireSubjectId())).collect(Collectors.toList()); + questionSubject.setQuestionSubjectOptionList(collect); + } + questionVO.setQuestionSubjectList(questionSubjects); + } + + return questionVO; } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java index b825b915..35103c00 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java @@ -6,10 +6,8 @@ import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO; import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; - import java.util.List; - /** * 签约患者管理任务路径Service接口 * @@ -85,4 +83,11 @@ public interface ISignPatientManageRouteService { * @return 结果 */ AjaxResult addPatientQuestionResult(PatientQuestionSubmitResultDTO dto); + + /** + * 根据患者主键查询患者任务列表 + * @param signPatientManageRoute 签约患者管理任务路径 + * @return 任务列表 + */ + List getRouteList(SignPatientManageRoute signPatientManageRoute); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index f41efcdc..9965a111 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -8,6 +8,7 @@ import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.AgeUtil; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.bean.BeanUtils; +import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; @@ -19,6 +20,7 @@ import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO; import com.xinelu.manage.dto.patientquestionoptionresult.PatientQuestionOptionResultDTO; import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO; import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; +import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper; import com.xinelu.manage.mapper.patientquestionsubjectresult.PatientQuestionSubjectResultMapper; import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; @@ -65,6 +67,8 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout private PatientQuestionOptionResultMapper patientQuestionOptionResultMapper; @Resource private SignRouteTriggerConditionMapper signRouteTriggerConditionMapper; + @Resource + private PatientInfoMapper patientInfoMapper; /** * 查询签约患者管理任务路径 @@ -299,7 +303,21 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout return AjaxResult.success(); } - /** + @Override public List getRouteList(SignPatientManageRoute signPatientManageRoute) { + // 查询患者最新一条签约记录 + if (signPatientManageRoute.getPatientId() == null) { + throw new ServiceException("请选择正确的患者"); + } + PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(signPatientManageRoute.getPatientId()); + if (ObjectUtils.isEmpty(patientInfo)) { + throw new ServiceException("请选择正确的患者"); + } + SignPatientManageRoute routeQuery = new SignPatientManageRoute(); + routeQuery.setSignPatientRecordId(patientInfo.getSignPatientRecordId()); + return signPatientManageRouteMapper.selectSignPatientManageRouteList(routeQuery); + } + + /** * 新增患者管理任务执行记录 */ private Long insertPatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java index f41ee0b6..300ff2e4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java @@ -1,21 +1,35 @@ package com.xinelu.manage.service.signpatientmanageroutenode.impl; +import com.alibaba.fastjson2.JSONObject; +import com.xinelu.common.constant.TaskContentConstants; import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.StringUtils; +import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.domain.scriptInfo.ScriptInfo; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; import com.xinelu.manage.dto.signpatientmanageroutenode.RouteNodeCheckDto; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; +import com.xinelu.manage.mapper.scriptInfo.ScriptInfoMapper; import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; +import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService; +import com.xinelu.manage.service.questioninfo.IQuestionInfoService; import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService; +import com.xinelu.manage.vo.propagandainfo.PropagandaMaterialsVo; +import com.xinelu.manage.vo.questionInfo.QuestionVO; import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; +import com.xinelu.manage.vo.signpatientmanageroutenode.SignPatientManageRouteNodeInfoVo; import com.xinelu.manage.vo.signpatientmanageroutenode.SignPatientManageRouteNodeVo; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,6 +48,12 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage private PatientInfoMapper patientInfoMapper; @Resource private SignPatientManageRouteMapper signRouteMapper; + @Resource + private ScriptInfoMapper scriptInfoMapper; + @Resource + private IQuestionInfoService questionInfoService; + @Resource + private IPropagandaInfoService propagandaInfoService; /** * 查询签约患者管理任务路径节点 @@ -59,23 +79,55 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage if (patientTaskDto.getPatientId() == null || ObjectUtils.isEmpty(patientInfo)) { throw new ServiceException("请选择患者!"); } - // 查询任务列表 - SignPatientManageRoute signPatientManageRoute = new SignPatientManageRoute(); - signPatientManageRoute.setSignPatientRecordId(patientTaskDto.getSignPatientRecordId()); - signPatientManageRoute.setPatientId(patientTaskDto.getPatientId()); - signPatientManageRoute.setTaskCreateType(patientTaskDto.getTaskCreateType()); - List signRoutes = signRouteMapper.selectSignPatientManageRouteList(signPatientManageRoute); - for (SignPatientManageRoute route : signRoutes) { - SignPatientManageRouteNode nodeQuery = new SignPatientManageRouteNode(); - nodeQuery.setManageRouteId(route.getId()); - List nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(nodeQuery); - retList.add(SignPatientManageRouteNodeVo.builder().manageRouteId(route.getId()) - .routeName(route.getRouteName()) - .taskCreateType(route.getTaskCreateType()) - .suitRange(route.getSuitRange()) - .nodeList(nodeList).build()); + if (StringUtils.isBlank(patientTaskDto.getRouteCheckStatus())) { + throw new ServiceException("请选择审核状态!"); + } + if (StringUtils.isBlank(patientTaskDto.getTaskCreateType())) { + throw new ServiceException("请选择任务创建类型!"); + } + // 根据任务创建类型、审核状态查询节点列表 + List allNodeList = signPatientManageRouteNodeMapper.getNodeList(patientTaskDto); + // 根据任务id进行分组 + Map> groupByRoute = allNodeList.stream().collect(Collectors.groupingBy(SignPatientManageRouteNode::getManageRouteId)); + List nodeInfoVoList = new ArrayList<>(); + for (Long manageRouteId : groupByRoute.keySet()) { + List nodeList = groupByRoute.get(manageRouteId); + SignPatientManageRoute manageRoute = signRouteMapper.selectSignPatientManageRouteById(manageRouteId); + // 查询模板内容 + for (SignPatientManageRouteNode node : nodeList) { + SignPatientManageRouteNodeInfoVo signNodeInfo = new SignPatientManageRouteNodeInfoVo(); + BeanUtils.copyBeanProp(signNodeInfo, node); + JSONObject detailInfo = new JSONObject(); + switch (node.getTaskType()) { + case TaskContentConstants.PHONE_OUTBOUND: // 电话外呼-查询话术表 + if (node.getPhoneId() != null) { + ScriptInfo scriptInfo = scriptInfoMapper.selectScriptInfoById(node.getPhoneId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo)); + } + break; + case (TaskContentConstants.QUESTIONNAIRE_SCALE): // 问卷量表-返回问卷信息 + case (TaskContentConstants.ARTIFICIAL_FOLLOW_UP): // 人工随访-返回问卷信息 + if (node.getQuestionInfoId() != null) { + QuestionVO questionVO = questionInfoService.selectQuestionInfoById(node.getQuestionInfoId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(questionVO)); + } + break; + case (TaskContentConstants.PROPAGANDA_ARTICLE): // 宣教文章-返回宣教库信息 + if (node.getPropagandaInfoId() != null) { + PropagandaMaterialsVo propagandaMaterialsVo = propagandaInfoService.selectPropagandaInfoById(node.getPropagandaInfoId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(propagandaMaterialsVo)); + } + break; + } + signNodeInfo.setDetailInfo(detailInfo); + nodeInfoVoList.add(signNodeInfo); + } + retList.add(SignPatientManageRouteNodeVo.builder().manageRouteId(manageRouteId) + .routeName(manageRoute.getRouteName()) + .taskCreateType(manageRoute.getTaskCreateType()) + .suitRange(manageRoute.getSuitRange()) + .nodeList(nodeInfoVoList).build()); } - return retList; } @@ -149,11 +201,13 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage @Transactional public int audit(RouteNodeCheckDto routeNodeCheckDto) { int flag = 0; + if (CollectionUtils.isEmpty(routeNodeCheckDto.getManageRouteNodeIds())) { + throw new ServiceException("没有要审核的任务"); + } // 根据manageRouteId查询所有节点 - SignPatientManageRouteNode nodeQuery = new SignPatientManageRouteNode(); - nodeQuery.setManageRouteId(routeNodeCheckDto.getManageRouteId()); - List nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(nodeQuery); - for (SignPatientManageRouteNode node : nodeList) { + for (Long nodeId : routeNodeCheckDto.getManageRouteNodeIds()) { + SignPatientManageRouteNode node = new SignPatientManageRouteNode(); + node.setId(nodeId); node.setRouteCheckStatus(routeNodeCheckDto.getRouteCheckStatus()); node.setRouteCheckPerson(routeNodeCheckDto.getRouteCheckPerson()); node.setRouteCheckDate(LocalDateTime.now()); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java index 309843ba..fe61ab65 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java @@ -142,6 +142,7 @@ public class SignPatientRecordServiceImpl implements ISignPatientRecordService { flag = signPatientRecordMapper.updateByPrimaryKeySelective(signPatientRecord); } else { signPatientRecord.setId(null); + signPatientRecord.setPatientVisitRecordId(patient.getPatientVisitRecordId()); flag = signPatientRecordMapper.insert(signPatientRecord); } // 签约信息保存到患者表 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientvisitrecord/PatientVisitRecordVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientvisitrecord/PatientVisitRecordVo.java new file mode 100644 index 00000000..d3b4b145 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientvisitrecord/PatientVisitRecordVo.java @@ -0,0 +1,173 @@ +package com.xinelu.manage.vo.patientvisitrecord; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDate; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @description: 患者就诊记录信息查询返回视图类 + * @author: haown + * @create: 2024-04-12 13:41 + **/ +@Data +public class PatientVisitRecordVo { + + /** + * 患者主键 + */ + @ApiModelProperty(value = "患者信息表id") + private Long patientId; + + /** + * 居民信息表id + */ + @ApiModelProperty(value = "居民信息表id") + private Long residentId; + + /** + * 患者姓名 + */ + @ApiModelProperty(value = "患者姓名") + @Excel(name = "患者姓名") + private String patientName; + + /** + * 患者电话 + */ + @ApiModelProperty(value = "患者电话") + @Excel(name = "患者电话") + private String patientPhone; + + /** + * 家属电话 + */ + @ApiModelProperty(value = "家属电话") + private String familyMemberPhone; + + /** + * 出生日期,格式:yyyy-MM-dd + */ + @ApiModelProperty(value = "出生日期,格式:yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + + /** + * 身份证号 + */ + @ApiModelProperty(value = "身份证号") + private String cardNo; + + /** + * 性别,男:MALE,女:FEMALE + */ + @ApiModelProperty(value = "性别,男:MALE,女:FEMALE") + private String sex; + + /** + * 住址 + */ + @ApiModelProperty(value = "住址") + private String address; + + /** + * 所属医院id + */ + @ApiModelProperty(value = "所属医院id") + private Long hospitalAgencyId; + + /** + * 所属医院名称 + */ + @ApiModelProperty(value = "所属医院名称") + private String hospitalAgencyName; + + /** + * 所属院区id + */ + @ApiModelProperty(value = "所属院区id") + private Long campusAgencyId; + + /** + * 所属院区名称 + */ + @ApiModelProperty(value = "所属院区名称") + private String campusAgencyName; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + private String departmentName; + + /** + * 所属病区id + */ + @ApiModelProperty(value = "所属病区id") + private Long wardId; + + /** + * 所属病区名称 + */ + @ApiModelProperty(value = "所属病区名称") + private String wardName; + + /** + * 患者来源,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END + */ + @ApiModelProperty(value = "患者来源,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END") + private String patientSource; + + /** + * 就诊记录表主键 + * */ + @ApiModelProperty(value = "就诊记录表主键") + private Long patientVisitRecordId; + + /** 就诊类型,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL */ + @ApiModelProperty(value = "就诊类型,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL") + private String visitMethod; + + /** 就诊时间,格式:yyyy-MM-dd HH:mm:ss */ + @ApiModelProperty(value = "就诊时间,格式:yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime visitDate; + + /** 主要诊断 */ + @ApiModelProperty(value = "主要诊断") + private String mainDiagnosis; + + /** 入院时间 */ + @ApiModelProperty(value = "入院时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime admissionTime; + + /** 出院时间 */ + @ApiModelProperty(value = "出院时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime dischargeTime; + + /** 入院病历信息,存储患者入院的整个病历信息 */ + @ApiModelProperty(value = "入院病历信息,存储患者入院的整个病历信息") + private String inHospitalInfo; + + /** 出院病历信息,存储患者出院的整个病历信息 */ + @ApiModelProperty(value = "出院病历信息,存储患者出院的整个病历信息") + private String outHospitalInfo; + + /** 手术名称 */ + @ApiModelProperty(value = "手术名称") + private String surgicalName; + + /** 手术记录 */ + @ApiModelProperty(value = "手术记录") + private String surgicalRecord; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java index 77d82c27..901d6309 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java @@ -112,6 +112,12 @@ public class PatientTaskVo { @Excel(name = "所属病区名称") private String wardName; + /** + * 最新一条就诊记录id + */ + @ApiModelProperty(value = "最新一条就诊记录id") + private Long patientVisitRecordId; + /** 门诊/住院号 */ @ApiModelProperty(value = "门诊/住院号 ") private String inHospitalNumber; @@ -128,6 +134,9 @@ public class PatientTaskVo { @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime dischargeTime; + @ApiModelProperty(value = "患者来源,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END") + private String patientSource; + /** 手术名称 */ @ApiModelProperty(value = "手术名称") private String surgicalName; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeInfoVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeInfoVo.java new file mode 100644 index 00000000..917c8bfe --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeInfoVo.java @@ -0,0 +1,206 @@ +package com.xinelu.manage.vo.signpatientmanageroutenode; + +import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalTime; +import lombok.Data; + +/** + * @description: 任务节点详细信息视图类 + * @author: haown + * @create: 2024-04-12 17:15 + **/ +@ApiModel("任务节点详细信息视图类") +@Data +public class SignPatientManageRouteNodeInfoVo { + /** 主键id */ + private Long id; + + /** 签约患者管理任务表id */ + @ApiModelProperty(value = "签约患者管理任务表id") + @Excel(name = "签约患者管理任务表id") + private Long manageRouteId; + + /** 路径名称(任务名称) */ + @ApiModelProperty(value = "路径名称") + @Excel(name = "路径名称", readConverterExp = "任=务名称") + private String manageRouteName; + + /** 管理路径节点名称 */ + @ApiModelProperty(value = "管理路径节点名称") + @Excel(name = "管理路径节点名称") + private String routeNodeName; + + /** 管理路径节点时间,时间单位为:天 */ + @ApiModelProperty(value = "管理路径节点时间,时间单位为:天") + @Excel(name = "管理路径节点时间,时间单位为:天") + private Integer routeNodeDay; + + /** 任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,宣教文章:PROPAGANDA_ARTICLE,文字提醒:TEXT_REMIND,人工随访:ARTIFICIAL_FOLLOW_UP */ + @ApiModelProperty(value = "任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,宣教文章:PROPAGANDA_ARTICLE,文字提醒:TEXT_REMIND,人工随访:ARTIFICIAL_FOLLOW_UP") + @Excel(name = "任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,宣教文章:PROPAGANDA_ARTICLE,文字提醒:TEXT_REMIND,人工随访:ARTIFICIAL_FOLLOW_UP") + private String taskType; + + /** 任务状态 */ + @ApiModelProperty(value = "任务状态") + @Excel(name = "任务状态") + private String taskStatus; + + /** 任务细分 */ + @ApiModelProperty(value = "任务细分") + @Excel(name = "任务细分") + private String taskSubdivision; + + /** 二级分类描述 */ + @ApiModelProperty(value = "二级分类描述") + @Excel(name = "二级分类描述") + private String secondClassifyDescribe; + + /** 执行时间,格式:HH:mm */ + @ApiModelProperty(value = "执行时间,格式:HH:mm") + @JsonFormat(pattern = "HH:mm") + @Excel(name = "执行时间,格式:HH:mm", width = 30, dateFormat = "yyyy-MM-dd") + private LocalTime executeTime; + + /** 电话推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "电话推送标识,0:未开启,1:已开启") + @Excel(name = "电话推送标识,0:未开启,1:已开启") + private Integer phonePushSign; + + /** 电话话术表id */ + @ApiModelProperty(value = "电话话术表id") + @Excel(name = "电话话术表id") + private Long phoneId; + + /** 电话模板ID */ + @ApiModelProperty(value = "电话模板ID") + @Excel(name = "电话模板ID") + private String phoneTemplateId; + + /** 问卷表id */ + @ApiModelProperty(value = "问卷表id") + @Excel(name = "问卷表id") + private Long questionInfoId; + + /** 问卷模板名称 */ + @ApiModelProperty(value = "问卷模板名称") + @Excel(name = "问卷模板名称") + private String questionnaireName; + + /** 问卷模板内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "问卷模板内容") + @Excel(name = "问卷模板内容", readConverterExp = "富=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") + private String questionnaireContent; + + /** 问卷有效期,单位:天 */ + @ApiModelProperty(value = "问卷有效期,单位:天") + @Excel(name = "问卷有效期,单位:天") + private Integer questionExpirationDate; + + /** 宣教文章表id */ + @ApiModelProperty(value = "宣教文章表id") + @Excel(name = "宣教文章表id") + private Long propagandaInfoId; + + /** 宣教文章模板标题(宣教模板名称) */ + @ApiModelProperty(value = "宣教文章模板标题") + @Excel(name = "宣教文章模板标题", readConverterExp = "宣=教模板名称") + private String propagandaTitle; + + /** 宣教文章内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "宣教文章内容") + @Excel(name = "宣教文章内容", readConverterExp = "富=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") + private String propagandaContent; + + /** 短信推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "短信推送标识,0:未开启,1:已开启") + @Excel(name = "短信推送标识,0:未开启,1:已开启") + private Integer messagePushSign; + + /** 短信模板表id */ + @ApiModelProperty(value = "短信模板表id") + @Excel(name = "短信模板表id") + private Long messageTemplateId; + + /** 公众号推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "公众号推送标识,0:未开启,1:已开启") + @Excel(name = "公众号推送标识,0:未开启,1:已开启") + private Integer officialPushSign; + + /** 公众号模板表id */ + @ApiModelProperty(value = "公众号模板表id") + @Excel(name = "公众号模板表id") + private Long officialTemplateId; + + /** 公众号模板名称 */ + @ApiModelProperty(value = "公众号模板名称") + @Excel(name = "公众号模板名称") + private String officialTemplateName; + + /** 公众号提醒内容 */ + @ApiModelProperty(value = "公众号提醒内容") + @Excel(name = "公众号提醒内容") + private String officialRemindContent; + + /** 公众号节点内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "公众号节点内容") + @Excel(name = "公众号节点内容", readConverterExp = "富=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") + private String officialNodeContent; + + /** 小程序推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "小程序推送标识,0:未开启,1:已开启") + @Excel(name = "小程序推送标识,0:未开启,1:已开启") + private Integer appletPushSign; + + /** 小程序模板表id */ + @ApiModelProperty(value = "小程序模板表id") + @Excel(name = "小程序模板表id") + private Long appletTemplateId; + + /** 小程序模板名称 */ + @ApiModelProperty(value = "小程序模板名称") + @Excel(name = "小程序模板名称") + private String appletTemplateName; + + /** 小程序提醒内容 */ + @ApiModelProperty(value = "小程序提醒内容") + @Excel(name = "小程序提醒内容") + private String appletRemindContent; + + /** 小程序提示说明 */ + @ApiModelProperty(value = "小程序提示说明") + @Excel(name = "小程序提示说明") + private String appletPromptDescription; + + /** 小程序节点内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "小程序节点内容") + @Excel(name = "小程序节点内容", readConverterExp = "富=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") + private String appletNodeContent; + + /** 人工随访模板表id */ + @ApiModelProperty(value = "人工随访模板表id") + @Excel(name = "人工随访模板表id") + private Long followTemplateId; + + /** 人工随访模板名称 */ + @ApiModelProperty(value = "人工随访模板名称") + @Excel(name = "人工随访模板名称") + private String followTemplateName; + + /** 人工随访模板内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "人工随访模板内容") + @Excel(name = "人工随访模板内容", readConverterExp = "富=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") + private String followContent; + + /** 文字提醒内容 */ + @ApiModelProperty(value = "文字提醒内容") + @Excel(name = "文字提醒内容") + private String textRemindContent; + + /** 详细信息 */ + @ApiModelProperty(value = "详细信息") + private JSONObject detailInfo; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java index d3c35ca5..e467323e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java @@ -1,6 +1,5 @@ package com.xinelu.manage.vo.signpatientmanageroutenode; -import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; @@ -41,5 +40,5 @@ public class SignPatientManageRouteNodeVo { * 节点列表 */ @ApiModelProperty(value = "节点列表") - List nodeList; + List nodeList; } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientvisitrecord/PatientVisitRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientvisitrecord/PatientVisitRecordMapper.xml index 30bc02e3..0a4c1268 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientvisitrecord/PatientVisitRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientvisitrecord/PatientVisitRecordMapper.xml @@ -90,11 +90,24 @@ order by visit_date desc - + + + @@ -463,21 +476,22 @@ #{item.updateTime,jdbcType=TIMESTAMP}) - - \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 5a0eedf8..204f98fe 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -124,8 +124,21 @@ and node.task_type = #{taskType} + + and route.task_create_type = #{taskCreateType} + + + + and node.route_check_status is null + + + and node.route_check_status = #{routeCheckStatus} + + + and node.route_check_status = #{routeCheckStatus} + + - order by node.id desc - + + and node.route_check_status is null + + + and node.route_check_status = #{routeCheckStatus} + + and node.route_check_status = #{routeCheckStatus} - - and node.route_check_status is null - and patient.hospital_agency_id = #{hospitalAgencyId} @@ -648,6 +664,6 @@ and date_format(patient.discharge_time,'%y%m%d') <= date_format(#{dischargeTimeEnd},'%y%m%d') - group by patient_id + group by patient.hospital_agency_id, patient.id \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientrecord/SignPatientRecordMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientrecord/SignPatientRecordMapper.xml index 6e203f56..a5f12134 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientrecord/SignPatientRecordMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientrecord/SignPatientRecordMapper.xml @@ -21,6 +21,7 @@ + @@ -48,7 +49,7 @@ patient_phone,card_no,sex,birth_date,sign_time, hospital_agency_id,hospital_agency_name,campus_agency_id, campus_agency_name,department_id,department_name, - ward_id,ward_name,visit_serial_number, + ward_id,ward_name,patient_visit_record_id,visit_serial_number, visit_method,in_hospital_number,sign_diagnosis,review_diagnosis, service_status,sign_status,intentional_source, intentional_time,billing_doctor_id,billing_doctor_name, @@ -74,7 +75,7 @@ ,patient_phone,card_no,sex,birth_date,sign_time ,hospital_agency_id,hospital_agency_name,campus_agency_id ,campus_agency_name,department_id,department_name - ,ward_id,ward_name,visit_serial_number + ,ward_id,ward_name,patient_visit_record_id,visit_serial_number ,visit_method,in_hospital_number,sign_diagnosis,review_diagnosis ,service_status,sign_status,intentional_source ,intentional_time,billing_doctor_id,billing_doctor_name From 09c3317f19682542bc2dcf53c9009b0ce5cb1d3b Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Tue, 16 Apr 2024 14:23:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=82=A3=E8=80=85?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SignPatientManageRouteController.java | 12 +-- .../SignPatientManageRouteNodeController.java | 20 +++- .../ISignPatientManageRouteService.java | 6 -- .../SignPatientManageRouteServiceImpl.java | 26 +----- .../ISignPatientManageRouteNodeService.java | 2 +- ...SignPatientManageRouteNodeServiceImpl.java | 91 +++++++++++-------- .../SignPatientManageRouteNodeVo.java | 7 ++ .../SignPatientManageRouteNodeMapper.xml | 13 ++- 8 files changed, 92 insertions(+), 85 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java index fa79bb05..cb60f408 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java @@ -3,7 +3,6 @@ package com.xinelu.manage.controller.signpatientmanageroute; import com.xinelu.common.annotation.Log; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; -import com.xinelu.common.core.domain.R; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; @@ -13,6 +12,7 @@ import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitRe import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; +import io.swagger.annotations.Api; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -27,11 +27,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * 签约患者管理任务路径Controller + * 签约患者管理任务路径控制器 * * @author haown * @date 2024-03-18 */ +@Api(tags = "签约患者管理任务路径控制器") @RestController @RequestMapping("/manage/signroute") public class SignPatientManageRouteController extends BaseController { @@ -126,11 +127,4 @@ public class SignPatientManageRouteController extends BaseController { return signPatientManageRouteService.addPatientQuestionResult(dto); } - /** - * 患者详情--康复计划及记录 - */ - @GetMapping("/getRouteList") - public R> getRouteList(SignPatientManageRoute signPatientManageRoute) { - return R.ok(signPatientManageRouteService.getRouteList(signPatientManageRoute)); - } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java index 0a277d16..abce10be 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java @@ -3,7 +3,8 @@ package com.xinelu.manage.controller.signpatientmanageroutenode; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.R; import com.xinelu.common.core.page.TableDataInfo; -import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; import com.xinelu.manage.dto.signpatientmanageroutenode.RouteNodeCheckDto; import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService; @@ -44,12 +45,12 @@ public class SignPatientManageRouteNodeController extends BaseController { } /** - * 查询患者任务节点列表 + * 患者详情--查询患者手动创建的任务节点列表 */ - @ApiOperation("查询患者任务节点列表") + @ApiOperation("患者详情--查询患者手动创建的任务节点列表") @GetMapping("/getNodeList") - public R> getNodeList(PatientTaskDto patientTaskDto) { - List list = signNodeService.getNodeList(patientTaskDto); + public R> getNodeList(PatientTaskDto patientTaskDto) { + List list = signNodeService.getNodeList(patientTaskDto); return R.ok(list); } @@ -59,6 +60,15 @@ public class SignPatientManageRouteNodeController extends BaseController { @ApiOperation("任务审核--查询患者任务路径及节点") @GetMapping("/getRouteNodeList") public R> getRouteNodeList(PatientTaskDto patientTaskDto) { + if (patientTaskDto.getPatientId() == null) { + throw new ServiceException("请选择患者!"); + } + if (StringUtils.isBlank(patientTaskDto.getRouteCheckStatus())) { + throw new ServiceException("请选择审核状态!"); + } + if (StringUtils.isBlank(patientTaskDto.getTaskCreateType())) { + throw new ServiceException("请选择任务创建类型!"); + } List list = signNodeService.getRouteNodeList(patientTaskDto); return R.ok(list); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java index 35103c00..a2e9733c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java @@ -84,10 +84,4 @@ public interface ISignPatientManageRouteService { */ AjaxResult addPatientQuestionResult(PatientQuestionSubmitResultDTO dto); - /** - * 根据患者主键查询患者任务列表 - * @param signPatientManageRoute 签约患者管理任务路径 - * @return 任务列表 - */ - List getRouteList(SignPatientManageRoute signPatientManageRoute); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index 8f723944..d20f4d71 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -9,7 +9,6 @@ import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.AgeUtil; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.bean.BeanUtils; -import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; @@ -34,16 +33,15 @@ import com.xinelu.manage.vo.manualfollowup.ManualFollowPatientVO; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import com.xinelu.manage.vo.signroutetriggercondition.SignRouteTriggerConditionVO; -import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import javax.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** @@ -308,20 +306,6 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout return AjaxResult.success(); } - @Override public List getRouteList(SignPatientManageRoute signPatientManageRoute) { - // 查询患者最新一条签约记录 - if (signPatientManageRoute.getPatientId() == null) { - throw new ServiceException("请选择正确的患者"); - } - PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(signPatientManageRoute.getPatientId()); - if (ObjectUtils.isEmpty(patientInfo)) { - throw new ServiceException("请选择正确的患者"); - } - SignPatientManageRoute routeQuery = new SignPatientManageRoute(); - routeQuery.setSignPatientRecordId(patientInfo.getSignPatientRecordId()); - return signPatientManageRouteMapper.selectSignPatientManageRouteList(routeQuery); - } - /** * 新增患者管理任务执行记录 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java index c05252e9..521f193c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java @@ -28,7 +28,7 @@ public interface ISignPatientManageRouteNodeService { * @param patientTaskDto 任务查询传输对象 * @return 患者管理任务路径节点 */ - List getNodeList(PatientTaskDto patientTaskDto); + List getNodeList(PatientTaskDto patientTaskDto); /** * 查询患者管理路径节点 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java index 300ff2e4..eb050708 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java @@ -2,8 +2,8 @@ package com.xinelu.manage.service.signpatientmanageroutenode.impl; import com.alibaba.fastjson2.JSONObject; import com.xinelu.common.constant.TaskContentConstants; +import com.xinelu.common.constant.TaskCreateTypeConstant; import com.xinelu.common.exception.ServiceException; -import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.scriptInfo.ScriptInfo; @@ -18,11 +18,13 @@ import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRout import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService; import com.xinelu.manage.service.questioninfo.IQuestionInfoService; import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService; +import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; import com.xinelu.manage.vo.propagandainfo.PropagandaMaterialsVo; import com.xinelu.manage.vo.questionInfo.QuestionVO; import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; import com.xinelu.manage.vo.signpatientmanageroutenode.SignPatientManageRouteNodeInfoVo; import com.xinelu.manage.vo.signpatientmanageroutenode.SignPatientManageRouteNodeVo; +import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -54,6 +56,8 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage private IQuestionInfoService questionInfoService; @Resource private IPropagandaInfoService propagandaInfoService; + @Resource + private ISpecialDiseaseRouteService specialDiseaseRouteService; /** * 查询签约患者管理任务路径节点 @@ -66,63 +70,74 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage return signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(id); } - @Override public List getNodeList(PatientTaskDto patientTaskDto) { + @Override public List getNodeList(PatientTaskDto patientTaskDto) { if (patientTaskDto.getPatientId() == null) { throw new ServiceException("患者信息有误"); } - return signPatientManageRouteNodeMapper.getNodeList(patientTaskDto); + PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientTaskDto.getPatientId()); + if (ObjectUtils.isEmpty(patientInfo)) { + throw new ServiceException("患者信息有误!"); + } + patientTaskDto.setSignPatientRecordId(patientInfo.getSignPatientRecordId()); + return getRouteNodeList(patientTaskDto); } @Override public List getRouteNodeList(PatientTaskDto patientTaskDto) { List retList = new ArrayList<>(); PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientTaskDto.getPatientId()); - if (patientTaskDto.getPatientId() == null || ObjectUtils.isEmpty(patientInfo)) { + if (ObjectUtils.isEmpty(patientInfo)) { throw new ServiceException("请选择患者!"); } - if (StringUtils.isBlank(patientTaskDto.getRouteCheckStatus())) { - throw new ServiceException("请选择审核状态!"); - } - if (StringUtils.isBlank(patientTaskDto.getTaskCreateType())) { - throw new ServiceException("请选择任务创建类型!"); - } // 根据任务创建类型、审核状态查询节点列表 List allNodeList = signPatientManageRouteNodeMapper.getNodeList(patientTaskDto); // 根据任务id进行分组 Map> groupByRoute = allNodeList.stream().collect(Collectors.groupingBy(SignPatientManageRouteNode::getManageRouteId)); List nodeInfoVoList = new ArrayList<>(); + SpecialDiseaseRouteVO specialDiseaseRoute = null; for (Long manageRouteId : groupByRoute.keySet()) { List nodeList = groupByRoute.get(manageRouteId); SignPatientManageRoute manageRoute = signRouteMapper.selectSignPatientManageRouteById(manageRouteId); - // 查询模板内容 - for (SignPatientManageRouteNode node : nodeList) { - SignPatientManageRouteNodeInfoVo signNodeInfo = new SignPatientManageRouteNodeInfoVo(); - BeanUtils.copyBeanProp(signNodeInfo, node); - JSONObject detailInfo = new JSONObject(); - switch (node.getTaskType()) { - case TaskContentConstants.PHONE_OUTBOUND: // 电话外呼-查询话术表 - if (node.getPhoneId() != null) { - ScriptInfo scriptInfo = scriptInfoMapper.selectScriptInfoById(node.getPhoneId()); - detailInfo = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo)); + // 判断手动创建或自动生成 + switch (manageRoute.getTaskCreateType()) { + case TaskCreateTypeConstant.MANUAL_CREATE: + // 查询模板内容 + for (SignPatientManageRouteNode node : nodeList) { + SignPatientManageRouteNodeInfoVo signNodeInfo = new SignPatientManageRouteNodeInfoVo(); + BeanUtils.copyBeanProp(signNodeInfo, node); + JSONObject detailInfo = new JSONObject(); + switch (node.getTaskType()) { + case TaskContentConstants.PHONE_OUTBOUND: // 电话外呼-查询话术表 + if (node.getPhoneId() != null) { + ScriptInfo scriptInfo = scriptInfoMapper.selectScriptInfoById(node.getPhoneId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo)); + } + break; + case (TaskContentConstants.QUESTIONNAIRE_SCALE): // 问卷量表-返回问卷信息 + case (TaskContentConstants.ARTIFICIAL_FOLLOW_UP): // 人工随访-返回问卷信息 + if (node.getQuestionInfoId() != null) { + QuestionVO questionVO = questionInfoService.selectQuestionInfoById(node.getQuestionInfoId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(questionVO)); + } + break; + case (TaskContentConstants.PROPAGANDA_ARTICLE): // 宣教文章-返回宣教库信息 + if (node.getPropagandaInfoId() != null) { + PropagandaMaterialsVo propagandaMaterialsVo = propagandaInfoService.selectPropagandaInfoById(node.getPropagandaInfoId()); + detailInfo = JSONObject.parseObject(JSONObject.toJSONString(propagandaMaterialsVo)); + } + break; } - break; - case (TaskContentConstants.QUESTIONNAIRE_SCALE): // 问卷量表-返回问卷信息 - case (TaskContentConstants.ARTIFICIAL_FOLLOW_UP): // 人工随访-返回问卷信息 - if (node.getQuestionInfoId() != null) { - QuestionVO questionVO = questionInfoService.selectQuestionInfoById(node.getQuestionInfoId()); - detailInfo = JSONObject.parseObject(JSONObject.toJSONString(questionVO)); - } - break; - case (TaskContentConstants.PROPAGANDA_ARTICLE): // 宣教文章-返回宣教库信息 - if (node.getPropagandaInfoId() != null) { - PropagandaMaterialsVo propagandaMaterialsVo = propagandaInfoService.selectPropagandaInfoById(node.getPropagandaInfoId()); - detailInfo = JSONObject.parseObject(JSONObject.toJSONString(propagandaMaterialsVo)); - } - break; - } - signNodeInfo.setDetailInfo(detailInfo); - nodeInfoVoList.add(signNodeInfo); + signNodeInfo.setDetailInfo(detailInfo); + nodeInfoVoList.add(signNodeInfo); + } + break; + case TaskCreateTypeConstant.MANUAL_MATCHE: + // 查询专病路径 + specialDiseaseRoute = specialDiseaseRouteService.selectSpecialDiseaseRouteById(manageRoute.getRouteId()); + break; } - retList.add(SignPatientManageRouteNodeVo.builder().manageRouteId(manageRouteId) + + retList.add(SignPatientManageRouteNodeVo.builder().specialDiseaseRoute(specialDiseaseRoute) + .manageRouteId(manageRouteId) .routeName(manageRoute.getRouteName()) .taskCreateType(manageRoute.getTaskCreateType()) .suitRange(manageRoute.getSuitRange()) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java index e467323e..9d075e7c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/SignPatientManageRouteNodeVo.java @@ -1,5 +1,6 @@ package com.xinelu.manage.vo.signpatientmanageroutenode; +import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; @@ -20,6 +21,12 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class SignPatientManageRouteNodeVo { + /** + * 专病管理路径信息 + * */ + @ApiModelProperty(value = "签约患者管理任务表id") + private SpecialDiseaseRouteVO specialDiseaseRoute; + /** 签约患者管理任务表id */ @ApiModelProperty(value = "签约患者管理任务表id") private Long manageRouteId; diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 204f98fe..623c2bc5 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -33,7 +33,7 @@ - + @@ -69,7 +69,7 @@ - select id, manage_route_id, manage_route_name, route_node_name, route_node_day, task_type, task_status, task_subdivision, second_classify_describe, execute_time, phone_push_sign, phone_id, phone_template_id, phone_template_name, phone_node_content, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, phone_message_template_name, question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, message_template__id, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_name, official_remind_content, official_node_content, applet_push_sign, applet_template_id, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, follow_template_id, follow_template_name, follow_content, route_check_status, route_check_person, route_check_date, route_check_remark, route_node_remark, node_execute_status, route_handle_remark, route_handle_id, route_handle_person, route_link,text_remind_content, create_by, create_time, update_by, update_time from sign_patient_manage_route_node + select id, manage_route_id, manage_route_name, route_node_name, route_node_day, task_type, task_status, task_subdivision, second_classify_describe, execute_time, phone_push_sign, phone_id, phone_template_id, phone_template_name, phone_node_content, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, phone_message_template_name, question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, message_template_id, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_name, official_remind_content, official_node_content, applet_push_sign, applet_template_id, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, follow_template_id, follow_template_name, follow_content, route_check_status, route_check_person, route_check_date, route_check_remark, route_node_remark, node_execute_status, route_handle_remark, route_handle_id, route_handle_person, route_link,text_remind_content, create_by, create_time, update_by, update_time from sign_patient_manage_route_node @@ -199,7 +202,7 @@ message_push_sign, - message_template__id, + message_template_id, message_template_name, @@ -393,7 +396,7 @@ insert into sign_patient_manage_route_node(manage_route_id, manage_route_name, route_node_name, route_node_day, task_type, task_status, task_subdivision, second_classify_describe, execute_time, phone_push_sign, phone_id, phone_template_id, phone_template_name, phone_node_content, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, phone_message_template_name, question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, - message_template__id, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_name, official_remind_content, + message_template_id, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_name, official_remind_content, official_node_content, applet_push_sign, applet_template_id, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, follow_template_id, follow_template_name, follow_content, route_check_status, route_check_person, route_check_date, route_check_remark, route_node_remark, node_execute_status, route_handle_remark, route_handle_id, route_handle_person, route_link, text_remind_content,create_by, create_time, update_by, update_time) @@ -492,7 +495,7 @@ message_push_sign = #{messagePushSign}, - message_template__id = + message_template_id = #{messageTemplateId}, message_template_name = From e2522d824545fecf49c68a705bf96aa06783256e Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Tue, 16 Apr 2024 15:14:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=93=E7=97=85=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpecialDiseaseRouteController.java | 7 +- .../SpecialDiseaseRouteDTO.java | 17 +++++ .../SpecialDiseaseRouteMapper.java | 5 +- .../ISpecialDiseaseRouteService.java | 5 +- .../impl/SpecialDiseaseRouteServiceImpl.java | 7 +- .../SpecialDiseaseRouteMapper.xml | 75 +++++++++++-------- 6 files changed, 74 insertions(+), 42 deletions(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/specialdiseaseroute/SpecialDiseaseRouteDTO.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java index 981bf2df..3a34b463 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java @@ -6,6 +6,7 @@ import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import org.springframework.security.access.prepost.PreAuthorize; @@ -31,7 +32,7 @@ public class SpecialDiseaseRouteController extends BaseController { */ @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:list')") @GetMapping("/list") - public TableDataInfo list(SpecialDiseaseRoute specialDiseaseRoute) { + public TableDataInfo list(SpecialDiseaseRouteDTO specialDiseaseRoute) { startPage(); List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); return getDataTable(list); @@ -80,8 +81,8 @@ public class SpecialDiseaseRouteController extends BaseController { * 科室路径数量 */ @GetMapping("/departmentRouteCount") - public AjaxResult departmentRouteCount(String departmentName) { - return specialDiseaseRouteService.departmentRouteCount(departmentName); + public AjaxResult departmentRouteCount(String departmentName, String releaseStatus, Long servicePackageId) { + return specialDiseaseRouteService.departmentRouteCount(departmentName, releaseStatus, servicePackageId); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/specialdiseaseroute/SpecialDiseaseRouteDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/specialdiseaseroute/SpecialDiseaseRouteDTO.java new file mode 100644 index 00000000..5ad1e388 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/specialdiseaseroute/SpecialDiseaseRouteDTO.java @@ -0,0 +1,17 @@ +package com.xinelu.manage.dto.specialdiseaseroute; + +import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 专病路径信息对象 special_disease_route + * + * @author xinelu + * @date 2024-03-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SpecialDiseaseRouteDTO extends SpecialDiseaseRoute { + private Long servicePackageId; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java index 8036fc8f..57e2a5b7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java @@ -1,6 +1,7 @@ package com.xinelu.manage.mapper.specialdiseaseroute; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO; import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import org.apache.ibatis.annotations.Param; @@ -36,7 +37,7 @@ public interface SpecialDiseaseRouteMapper { * @param specialDiseaseRoute 专病路径信息 * @return 专病路径信息集合 */ - List selectDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + List selectDiseaseRouteList(SpecialDiseaseRouteDTO specialDiseaseRoute); /** * 新增专病路径信息 @@ -76,7 +77,7 @@ public interface SpecialDiseaseRouteMapper { * @param departmentName 科室名称 * @return DepartmentVO */ - List departmentRouteByDepartmentName(String departmentName); + List departmentRouteByDepartmentName(@Param("departmentName") String departmentName, @Param("releaseStatus") String releaseStatus, @Param("servicePackageId") Long servicePackageId); /** * 查询专病路径信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java index c9cc8deb..b1972aa7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java @@ -2,6 +2,7 @@ package com.xinelu.manage.service.specialdiseaseroute; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import java.util.List; @@ -27,7 +28,7 @@ public interface ISpecialDiseaseRouteService { * @param specialDiseaseRoute 专病路径信息 * @return 专病路径信息集合 */ - List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + List selectSpecialDiseaseRouteList(SpecialDiseaseRouteDTO specialDiseaseRoute); /** * 新增专病路径信息 @@ -67,7 +68,7 @@ public interface ISpecialDiseaseRouteService { * @param departmentName 科室名称 * @return AjaxResult */ - AjaxResult departmentRouteCount(String departmentName); + AjaxResult departmentRouteCount(String departmentName,String releaseStatus,Long servicePackageId); /** * 专病路径发布 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java index bb6a904c..dbc4adef 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java @@ -10,6 +10,7 @@ import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.domain.specialdiseaseroutepackage.SpecialDiseaseRoutePackage; +import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO; import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper; import com.xinelu.manage.mapper.specialdiseaseroutepackage.SpecialDiseaseRoutePackageMapper; @@ -67,7 +68,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @return 专病路径信息 */ @Override - public List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute) { + public List selectSpecialDiseaseRouteList(SpecialDiseaseRouteDTO specialDiseaseRoute) { return specialDiseaseRouteMapper.selectDiseaseRouteList(specialDiseaseRoute); } @@ -190,12 +191,12 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @return AjaxResult */ @Override - public AjaxResult departmentRouteCount(String departmentName) { + public AjaxResult departmentRouteCount(String departmentName,String releaseStatus,Long servicePackageId) { DepartmentVO departmentVO = new DepartmentVO(); List department = new ArrayList<>(); departmentVO.setDepartmentName("全部"); departmentVO.setCountNum(0); - List departmentVOS = specialDiseaseRouteMapper.departmentRouteByDepartmentName(departmentName); + List departmentVOS = specialDiseaseRouteMapper.departmentRouteByDepartmentName(departmentName,releaseStatus,servicePackageId); if (CollectionUtils.isNotEmpty(departmentVOS)) { Integer result = departmentVOS.stream().mapToInt(DepartmentVO::getCountNum).sum(); departmentVO.setCountNum(result); diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml index ccdef691..41de00d0 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml @@ -132,67 +132,71 @@ @@ -350,10 +354,17 @@ dt.department_code, count(sdr.id) AS countNum from department dt left join special_disease_route sdr on dt.id = sdr.department_id + left join special_disease_route_package sdrp ON sdr.id = sdrp.route_id dt.department_name like concat('%',#{departmentName},'%') + + AND sdr.release_status= #{releaseStatus} + + + AND sdrp.service_package_id= #{servicePackageId} + GROUP BY dt.id