From 763dbb5eb70f6b17790395c21a466993663609e2 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Wed, 3 Apr 2024 17:52:02 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=B8=93=E7=97=85=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpecialDiseaseNodeController.java | 4 +++ .../SpecialDiseaseRouteController.java | 6 ++-- .../manage/dto/department/DepartmentDTO.java | 10 ++++++ .../dto/manualfollowup/ManualFollowUpDTO.java | 21 +++++++---- .../SpecialDiseaseNodeMapper.java | 7 ++++ .../impl/SpecialDiseaseNodeServiceImpl.java | 32 +++++++++++++++++ .../ISpecialDiseaseRouteService.java | 2 +- .../impl/SpecialDiseaseRouteServiceImpl.java | 25 +++++++++++-- ...ialDiseaseTriggerConditionServiceImpl.java | 1 + .../PatientTaskExecuteRecordVO.java | 3 ++ .../manage/department/DepartmentMapper.xml | 14 ++++---- .../propagandainfo/PropagandaInfoMapper.xml | 2 +- .../SpecialDiseaseNodeMapper.xml | 36 +++++++++++++++++-- 13 files changed, 140 insertions(+), 23 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java index b0906816..818a91bf 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Objects; /** * 专病路径-管理节点信息Controller @@ -95,6 +96,9 @@ public class SpecialDiseaseNodeController extends BaseController { */ @GetMapping("/selectSpecialDisease") public AjaxResult selectSpecialDisease(Long specialDiseaseRouteId) { + if (Objects.isNull(specialDiseaseRouteId)) { + return AjaxResult.error("请选择查询的专病路径信息!"); + } return specialDiseaseNodeService.selectSpecialDisease(specialDiseaseRouteId); } } 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 22ccdf40..290c5f9d 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 @@ -84,9 +84,9 @@ public class SpecialDiseaseRouteController extends BaseController { */ @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:remove')") @Log(title = "专病路径信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) { - return toAjax(specialDiseaseRouteService.deleteSpecialDiseaseRouteByIds(ids)); + @DeleteMapping("/{id}") + public AjaxResult remove(@PathVariable Long id) { + return specialDiseaseRouteService.deleteSpecialDiseaseRouteById(id); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java index b55b16e6..334a68fc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java @@ -40,6 +40,16 @@ public class DepartmentDTO extends BaseEntity { @ApiModelProperty(value = "科室代码") private String departmentCode; + /** + * 短信上下架 + */ + private String textMessageStatus; + + /** + * 微信状态 + */ + private String templateSource; + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java index 0e4e3e08..6c2d9407 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java @@ -3,7 +3,9 @@ package com.xinelu.manage.dto.manualfollowup; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -15,14 +17,15 @@ import java.time.LocalDateTime; @Data public class ManualFollowUpDTO { - + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "随访开始时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime followStartTime; + private LocalDate followStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "随访结束时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime followEndTime; + private LocalDate followEndTime; @ApiModelProperty(value = "患者姓名") private String patientName; @@ -48,21 +51,25 @@ public class ManualFollowUpDTO { @ApiModelProperty(value = "就诊流水号") private String visitSerialNumber; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "入院开始时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime admissionStartTime; + private LocalDate admissionStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "入院结束时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime admissionEndTime; + private LocalDate admissionEndTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "门诊(门诊患者)开始时间") - private LocalDateTime clinicalStartTime; + private LocalDate clinicalStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "门诊(门诊患者)结束时间") - private LocalDateTime clinicalEndTime; + private LocalDate clinicalEndTime; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "出院时间(出院患者)开始时间") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java index cf792f8f..a2f8598c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java @@ -62,6 +62,13 @@ public interface SpecialDiseaseNodeMapper { */ int deleteSpecialDiseaseNodeByIds(Long[] ids); + + /** + * 批量新增专病路径 + * + * @param specialDiseaseNodeList 数据集合 + * @return int + */ int insertSpecialDiseaseNodeList(List specialDiseaseNodeList); /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java index 616eceb6..5d8cb826 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java @@ -6,8 +6,10 @@ import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition; import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper; +import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper; import com.xinelu.manage.service.specialdiseasenode.ISpecialDiseaseNodeService; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import lombok.extern.slf4j.Slf4j; @@ -16,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; /** @@ -31,6 +34,8 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; @Resource private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; + @Resource + private SpecialDiseaseTriggerConditionMapper triggerConditionMapper; /** @@ -81,6 +86,17 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService if (insertNodeCount < 0) { throw new ServiceException("新增专病路径管理节点信息失败"); } + List specialDiseaseTriggerConditions = new ArrayList<>(); + for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) { + triggerCondition.setRouteId(specialDiseaseRoute.getId()); + triggerCondition.setCreateTime(LocalDateTime.now()); + triggerCondition.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseTriggerConditions.add(triggerCondition); + } + int triggerConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseTriggerConditions); + if (triggerConditionCount < 0) { + throw new ServiceException("新增专病路径管理节点信息失败"); + } return AjaxResult.success(); } @@ -117,6 +133,22 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService log.info("新增管理节点信息失败"); throw new ServiceException("修改专病路径管理节点信息失败"); } + int deleteCondition = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(specialDiseaseRoute.getId()); + if (deleteCondition < 0) { + log.info("删除管理节点信息失败"); + throw new ServiceException("修改专病路径管理节点信息失败"); + } + List specialDiseaseTriggerConditions = new ArrayList<>(); + for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) { + triggerCondition.setRouteId(specialDiseaseRoute.getId()); + triggerCondition.setCreateTime(LocalDateTime.now()); + triggerCondition.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseTriggerConditions.add(triggerCondition); + } + int triggerConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseTriggerConditions); + if (triggerConditionCount < 0) { + throw new ServiceException("修改专病路径管理节点信息失败"); + } return AjaxResult.success(); } 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 ec6433a0..c2697742 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 @@ -59,7 +59,7 @@ public interface ISpecialDiseaseRouteService { * @param id 专病路径信息主键 * @return 结果 */ - int deleteSpecialDiseaseRouteById(Long id); + AjaxResult deleteSpecialDiseaseRouteById(Long id); /** * 科室路径数量 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 a6b94cc8..dfa5d60c 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 @@ -1,13 +1,17 @@ package com.xinelu.manage.service.specialdiseaseroute.impl; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; +import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper; +import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; 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; @@ -24,6 +28,10 @@ import java.util.List; public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteService { @Resource private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; + @Resource + private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; + @Resource + private SpecialDiseaseTriggerConditionMapper triggerConditionMapper; /** * 查询专病路径信息 @@ -88,9 +96,22 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @param id 专病路径信息主键 * @return 结果 */ + @Transactional(rollbackFor = Exception.class) @Override - public int deleteSpecialDiseaseRouteById(Long id) { - return specialDiseaseRouteMapper.deleteSpecialDiseaseRouteById(id); + public AjaxResult deleteSpecialDiseaseRouteById(Long id) { + int deleteRouteCount = specialDiseaseRouteMapper.deleteSpecialDiseaseRouteById(id); + if (deleteRouteCount < 0) { + throw new ServiceException("删除专病路径管理信息失败"); + } + int deleteNodeCount = specialDiseaseNodeMapper.deleteSpecialDiseaseNodeByRouteId(id); + if (deleteNodeCount < 0) { + throw new ServiceException("删除专病路径管理信息失败"); + } + int deleteTriggerConditionCount = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(id); + if (deleteTriggerConditionCount < 0) { + throw new ServiceException("删除专病路径管理信息失败"); + } + return AjaxResult.success(); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java index b6f5f42c..992501ae 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java @@ -67,6 +67,7 @@ public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseas @Override public int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) { specialDiseaseTriggerCondition.setUpdateTime(LocalDateTime.now()); + specialDiseaseTriggerCondition.setUpdateBy(SecurityUtils.getUsername()); return specialDiseaseTriggerConditionMapper.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java index 87fc4990..cab744d2 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java @@ -7,6 +7,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; /** @@ -69,9 +70,11 @@ public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord { @ApiModelProperty(value = "就诊方式,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL") private String visitMethod; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate startDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate endDate; diff --git a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml index a45d51f9..c9c2d1a4 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml @@ -218,14 +218,13 @@ from department d left join wechat_template wt on d.id = wt.department_id - and d.department_code = - #{departmentCode} + and d.department_code =#{departmentCode} - and d.department_name like concat('%', - #{departmentName}, - '%' - ) + and d.department_name like concat('%',#{departmentName},'%') + + + and wt.template_source =#{templateSource} GROUP BY d.id, @@ -245,6 +244,9 @@ and d.department_name like concat('%',#{departmentName},'%') + + and tm.text_message_status = #{textMessageStatus} + GROUP BY d.id, d.department_name, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml index 3b8e69d2..22c2a259 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml @@ -74,7 +74,7 @@ and department_id = #{departmentId} - and propaganda_title = #{propagandaTitle} + and propaganda_title like concat('%', #{propagandaTitle}, '%') and propaganda_type = #{propagandaType} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml index a0184146..f698c374 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml @@ -20,6 +20,8 @@ + @@ -71,6 +73,18 @@ + + + + + + + + + + + + select id, route_id, @@ -704,7 +718,7 @@ + + + + + + \ No newline at end of file From 25a9c3dd667953bc810cc614a8da0025c43cf7c5 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Sun, 7 Apr 2024 13:27:01 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=B8=93=E7=97=85=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xinelu/common/constant/Constants.java | 5 ++ .../SpecialDiseaseRouteController.java | 17 +---- .../SpecialDiseaseRouteMapper.java | 8 +++ .../ISpecialDiseaseRouteService.java | 2 +- .../impl/SpecialDiseaseRouteServiceImpl.java | 13 +++- .../SpecialDiseaseRouteMapper.xml | 67 +++++++++++++++++++ 6 files changed, 94 insertions(+), 18 deletions(-) diff --git a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java index 38f7bd83..34293690 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java @@ -223,4 +223,9 @@ public class Constants { * 字段内容编码前缀 */ public static final String CONTENT_ENCODING = "CE"; + + /** + * 路径编码 + */ + public static final String ROUTE_CODE = "RC"; } 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 290c5f9d..364f5363 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 @@ -5,14 +5,13 @@ import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; -import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; +import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -34,22 +33,10 @@ public class SpecialDiseaseRouteController extends BaseController { @GetMapping("/list") public TableDataInfo list(SpecialDiseaseRoute specialDiseaseRoute) { startPage(); - List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); + List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); return getDataTable(list); } - /** - * 导出专病路径信息列表 - */ - @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:export')") - @Log(title = "专病路径信息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SpecialDiseaseRoute specialDiseaseRoute) { - List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); - ExcelUtil util = new ExcelUtil(SpecialDiseaseRoute.class); - util.exportExcel(response, list, "专病路径信息数据"); - } - /** * 获取专病路径信息详细信息 */ 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 4a822937..9d1d04ce 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 @@ -29,6 +29,14 @@ public interface SpecialDiseaseRouteMapper { */ List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + /** + * 查询专病路径信息列表 + * + * @param specialDiseaseRoute 专病路径信息 + * @return 专病路径信息集合 + */ + List selectDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + /** * 新增专病路径信息 * 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 c2697742..724c29e8 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 @@ -27,7 +27,7 @@ public interface ISpecialDiseaseRouteService { * @param specialDiseaseRoute 专病路径信息 * @return 专病路径信息集合 */ - List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); /** * 新增专病路径信息 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 dfa5d60c..6bd890d4 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 @@ -1,7 +1,10 @@ package com.xinelu.manage.service.specialdiseaseroute.impl; +import com.xinelu.common.constant.Constants; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper; @@ -32,6 +35,9 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; @Resource private SpecialDiseaseTriggerConditionMapper triggerConditionMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + /** * 查询专病路径信息 @@ -51,8 +57,8 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @return 专病路径信息 */ @Override - public List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute) { - return specialDiseaseRouteMapper.selectSpecialDiseaseRouteList(specialDiseaseRoute); + public List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute) { + return specialDiseaseRouteMapper.selectDiseaseRouteList(specialDiseaseRoute); } /** @@ -64,6 +70,8 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi @Override public int insertSpecialDiseaseRoute(SpecialDiseaseRoute specialDiseaseRoute) { specialDiseaseRoute.setCreateTime(LocalDateTime.now()); + specialDiseaseRoute.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseRoute.setRouteCode(Constants.ROUTE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.ROUTE_CODE)); return specialDiseaseRouteMapper.insertSpecialDiseaseRoute(specialDiseaseRoute); } @@ -76,6 +84,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi @Override public int updateSpecialDiseaseRoute(SpecialDiseaseRoute specialDiseaseRoute) { specialDiseaseRoute.setUpdateTime(LocalDateTime.now()); + specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername()); return specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute); } 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 f78aedb9..0fa13398 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml @@ -120,6 +120,73 @@ + + select pqsm.id submitResulId, pqsm.questionnaire_name, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml index d2ae084d..46b75c11 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml @@ -113,10 +113,14 @@ pvr.surgical_name, pi.attending_physician_id, pi.attending_physician_name, - pi.visit_method, + pi.patient_type, IF(pi.visit_method = 'OUTPATIENT_SERVICE',NULL,pi.admission_time) AS 'admissionTime', IF(pi.visit_method = 'OUTPATIENT_SERVICE',pi.visit_date,pi.discharge_time) AS 'visitOrDischargeTime', pter.execute_time AS 'executeTime', + spmr.id AS 'manageRouteId', + spmrn.id AS 'manageRouteNodeId', + spmrn.manage_route_name AS 'manageRouteName', + spmrn.route_node_name AS 'routeNodeName', spmrn.task_type, CASE WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_template_name @@ -135,7 +139,8 @@ LEFT JOIN patient_info pi ON spmr.patient_id = pi.id LEFT JOIN patient_visit_record pvr ON pi.patient_visit_record_id = pvr.id - pi.del_flag = '0' AND spmrn.node_execute_status = 'UNEXECUTED' + pi.del_flag = '0' AND spmr.task_create_type = 'MANUAL_CREATE' + AND spmrn.node_execute_status = 'UNEXECUTED' AND spmrn.task_type in ('PHONE_OUTBOUND','QUESTIONNAIRE_SCALE','ARTIFICIAL_FOLLOW_UP') AND pi.patient_name LIKE concat('%', #{patientName}, '%') @@ -155,8 +160,8 @@ AND pi.ward_id = #{wardId} - - AND pi.visit_method = #{visitMethod} + + AND pi.patient_type = #{patientType} AND pi.visit_serial_number LIKE concat('%', #{visitSerialNumber}, '%') @@ -191,6 +196,30 @@ + + insert into sign_patient_manage_route From 684ff5498809ed99a49ed7e8ce53f8e319f51ddb Mon Sep 17 00:00:00 2001 From: youxilong Date: Sun, 7 Apr 2024 17:14:44 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E9=9A=8F=E8=AE=BF?= =?UTF-8?q?=E4=BB=A3=E5=8A=9E=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PatientTaskExecuteRecord.java | 4 +- .../dto/manualfollowup/ManualFollowUpDTO.java | 7 +- .../PatientQuestionOptionResultDTO.java | 21 +++ .../PatientQuestionSubjectResultDTO.java | 4 +- .../PatientQuestionSubmitResultDTO.java | 10 +- .../PatientQuestionOptionResultMapper.java | 6 + .../PatientQuestionSubjectResultMapper.java | 6 + .../impl/LabelFieldContentServiceImpl.java | 3 + .../SignPatientManageRouteServiceImpl.java | 129 +++++++++++++++++- .../manualfollowup/ManualFollowPatientVO.java | 5 - .../vo/manualfollowup/ManualFollowUpVO.java | 8 ++ .../PatientQuestionOptionResultMapper.xml | 33 +++++ .../PatientQuestionSubjectResultMapper.xml | 44 ++++++ .../SignPatientManageRouteMapper.xml | 2 + 14 files changed, 267 insertions(+), 15 deletions(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java index 6bbd0bdf..86e455d5 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import java.util.Date; +import java.time.LocalDateTime; /** @@ -89,7 +89,7 @@ public class PatientTaskExecuteRecord extends BaseEntity { @ApiModelProperty(value = "任务执行时间,格式:yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "任务执行时间,格式:yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd") - private Date executeTime; + private LocalDateTime executeTime; /** * 执行人姓名,手动执行时记录 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java index 9b53cdf7..9cc18b43 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java @@ -6,7 +6,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; -import java.time.LocalDateTime; /** * 人工随访查询DTO @@ -71,13 +70,15 @@ public class ManualFollowUpDTO { @ApiModelProperty(value = "门诊(门诊患者)结束时间") private LocalDate clinicalEndTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "出院时间(出院患者)开始时间") - private LocalDateTime dischargeStartTime; + private LocalDate dischargeStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "出院时间(出院患者)结束时间") - private LocalDateTime dischargeEndTime; + private LocalDate dischargeEndTime; @ApiModelProperty(value = "主要诊断") private String mainDiagnosis; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java new file mode 100644 index 00000000..f9266f95 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java @@ -0,0 +1,21 @@ +package com.xinelu.manage.dto.patientquestionoptionresult; + +import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 患者问卷题目选项提交结果DTO + * + * @author : youxilong + * @date : 2024/4/7 14:52 + */ +@Data +public class PatientQuestionOptionResultDTO extends PatientQuestionOptionResult { + + /** + * 题目序号 + */ + private BigDecimal questionNumber; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java index a972ccad..0e302770 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java @@ -1,7 +1,7 @@ package com.xinelu.manage.dto.patientquestionsubjectresult; -import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; +import com.xinelu.manage.dto.patientquestionoptionresult.PatientQuestionOptionResultDTO; import lombok.Data; import java.util.List; @@ -18,5 +18,5 @@ public class PatientQuestionSubjectResultDTO extends PatientQuestionSubjectResul /** * 患者问卷题目选项提交结果信息 */ - private List optionResultList; + private List optionResultList; } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java index abafddd4..de1a9c66 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java @@ -2,7 +2,6 @@ package com.xinelu.manage.dto.patientquestionsubmitresult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,6 +19,15 @@ public class PatientQuestionSubmitResultDTO extends PatientQuestionSubmitResult @ApiModelProperty(value = "任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,人工随访:ARTIFICIAL_FOLLOW_UP") private String taskType; + @ApiModelProperty(value = "任务处理人id") + private Long routeHandleId; + + @ApiModelProperty(value = "任务处理人姓名") + private String routeHandlePerson; + + @ApiModelProperty(value = "任务处理信息") + private String routeHandleRemark; + /** * 患者问卷题目提交结果信息 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java index ed712d3a..3432c323 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java @@ -58,4 +58,10 @@ public interface PatientQuestionOptionResultMapper { * @return 结果 */ int deletePatientQuestionOptionResultByIds(Long[] ids); + + /** + *批量新增问卷题目选项提交结果 + */ + int saveQuestionOptionList(List saveQuestionSubjectOptions); + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java index ad7264a4..7038751f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java @@ -58,4 +58,10 @@ public interface PatientQuestionSubjectResultMapper { * @return 结果 */ int deletePatientQuestionSubjectResultByIds(Long[] ids); + + + /** + * 批量新增患者问卷题目提交结果信息 + */ + int saveQuestionSubjectList(List patientQuestionSubjectResults); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java index b5c665fe..92b30227 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java @@ -12,6 +12,7 @@ import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper; import com.xinelu.manage.service.labelfieldcontent.ILabelFieldContentService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -72,6 +73,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int updateLabelFieldContent(LabelFieldContent labelFieldContent) { if (ObjectUtils.isEmpty(labelFieldContentMapper.selectLabelFieldContentById(labelFieldContent.getId()))) { throw new ServiceException("当前字段内容不存在,无法修改,请联系管理员"); @@ -112,6 +114,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { * 批量新增标签字段内容信息 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertLabelFieldContents(LabelFieldContentAddDTO labelFieldContentAddDTO) { // 获取到标签字段内容信息集合 List fieldContentList = labelFieldContentAddDTO.getFieldContentList(); 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 2bfe22b0..2d807e04 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 @@ -1,12 +1,27 @@ package com.xinelu.manage.service.signpatientmanageroute.impl; +import com.xinelu.common.constant.TaskCreateTypeConstant; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.enums.NodeExecuteStatusEnum; +import com.xinelu.common.enums.TaskContentEnum; +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.patientquestionoptionresult.PatientQuestionOptionResult; +import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; +import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; +import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; 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.patientquestionoptionresult.PatientQuestionOptionResultMapper; +import com.xinelu.manage.mapper.patientquestionsubjectresult.PatientQuestionSubjectResultMapper; +import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; +import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper; import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; @@ -15,10 +30,13 @@ import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; import org.apache.commons.lang3.ObjectUtils; 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; /** @@ -33,6 +51,14 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout private SignPatientManageRouteMapper signPatientManageRouteMapper; @Resource private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper; + @Resource + private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper; + @Resource + private PatientQuestionSubmitResultMapper patientQuestionSubmitResultMapper; + @Resource + private PatientQuestionSubjectResultMapper patientQuestionSubjectResultMapper; + @Resource + private PatientQuestionOptionResultMapper patientQuestionOptionResultMapper; /** * 查询签约患者管理任务路径 @@ -149,6 +175,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout /** * 查询人工随访患者基本信息 + * * @param id 签约患者管理任务表id * @return 人工随访患者基本信息VO */ @@ -157,7 +184,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout ManualFollowPatientVO patientVO = signPatientManageRouteMapper.selectFollowPatientInfo(id); // 设置年龄 patientVO.setAge(AgeUtil.getAgeMonth(patientVO.getBirthDate().toString())); - if (ObjectUtils.isEmpty(patientVO)){ + if (ObjectUtils.isEmpty(patientVO)) { return AjaxResult.error("患者信息不存在!"); } return AjaxResult.success(patientVO); @@ -165,12 +192,110 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout /** * 人工随访代办处理 + * * @param dto 患者问卷提交结果信息表DTO * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult addPatientQuestionResult(PatientQuestionSubmitResultDTO dto) { + String routeHandlePerson = dto.getRouteHandlePerson(); + LocalDateTime time = LocalDateTime.now(); + // 如果任务类型是电话外呼,更新节点任务表,新增患者管理任务执行记录 + if (dto.getTaskType().equals(TaskContentEnum.PHONE_OUTBOUND.getInfo())) { + // 更新节点任务表 + updateSignPatientManageRouteNode(dto, routeHandlePerson, time); + // 新增患者管理任务执行记录 + insertPatientTaskExecuteRecord(dto, routeHandlePerson, time); + } else { + // 如果任务类型不是电话外呼(人工随访,问卷量表),新增问卷提交结果表(题目,选项表),更新节点任务表,新增患者管理任务执行记录 + PatientQuestionSubmitResult patientQuestionSubmitResult = new PatientQuestionSubmitResult(); + BeanUtils.copyBeanProp(patientQuestionSubmitResult, dto); + patientQuestionSubmitResult.setCreateBy(routeHandlePerson); + patientQuestionSubmitResult.setCreateTime(time); + // 新增患者问卷提交结果 + if (patientQuestionSubmitResultMapper.insertPatientQuestionSubmitResult(patientQuestionSubmitResult) <= 0) { + throw new ServiceException("新增患者问卷提交结果失败"); + } + // 获取到患者问卷题目提交结果信息DTO + List subjectResultList = dto.getSubjectResultDTOList(); + // 初始化患者问卷题目提交结果信息 + List patientQuestionSubjectResults = new ArrayList<>(); + // 获取到患者问卷题目选项提交结果DTO + List patientQuestionOptionResults = new ArrayList<>(); + for (PatientQuestionSubjectResultDTO questionSubjectResult : subjectResultList) { + PatientQuestionSubjectResult saveQuestionSubject = new PatientQuestionSubjectResult(); + BeanUtils.copyBeanProp(saveQuestionSubject, questionSubjectResult); + saveQuestionSubject.setQuestionSubmitResultId(patientQuestionSubmitResult.getId()); + saveQuestionSubject.setCreateBy(routeHandlePerson); + saveQuestionSubject.setCreateTime(time); + patientQuestionSubjectResults.add(saveQuestionSubject); + patientQuestionOptionResults.addAll(questionSubjectResult.getOptionResultList()); + } + // 新增患者问卷题目提交结果 + if (patientQuestionSubjectResultMapper.saveQuestionSubjectList(patientQuestionSubjectResults) <= 0) { + throw new ServiceException("新增患者问卷题目提交结果失败"); + } + // 初始化患者问卷题目选项提交结果 + List saveQuestionSubjectOptions = new ArrayList<>(); + for (PatientQuestionOptionResultDTO patientQuestionOptionResult : patientQuestionOptionResults) { + PatientQuestionOptionResult saveQuestionOption = new PatientQuestionOptionResult(); + BeanUtils.copyBeanProp(saveQuestionOption, patientQuestionOptionResult); + // 从已保存的患者问卷题目结果列表中查找当前选项所对应的题目结果 + PatientQuestionSubjectResult patientQuestionSubjectResult = patientQuestionSubjectResults.stream(). + filter(Objects::nonNull). + filter(item -> Objects.nonNull(item.getQuestionNumber()) && patientQuestionOptionResult.getQuestionNumber(). + compareTo(item.getQuestionNumber()) == 0).findFirst().orElse(new PatientQuestionSubjectResult()); + saveQuestionOption.setQuestionSubjectResultId(patientQuestionSubjectResult.getId()); + saveQuestionOption.setCreateTime(time); + saveQuestionOption.setCreateBy(routeHandlePerson); + saveQuestionSubjectOptions.add(saveQuestionOption); + } + // 新增患者问卷题目选项提交结果 + if (patientQuestionOptionResultMapper.saveQuestionOptionList(saveQuestionSubjectOptions) <= 0) { + throw new ServiceException("新增患者问卷题目选项提交结果失败"); + } + // 更新节点任务表 + updateSignPatientManageRouteNode(dto, routeHandlePerson, time); + // 新增患者管理任务执行记录 + insertPatientTaskExecuteRecord(dto, routeHandlePerson, time); - return null; + } + return AjaxResult.success(); } + + /** + * 新增患者管理任务执行记录 + */ + private void insertPatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) { + PatientTaskExecuteRecord patientTaskExecuteRecord = new PatientTaskExecuteRecord(); + BeanUtils.copyProperties(dto, patientTaskExecuteRecord); + patientTaskExecuteRecord.setTaskContent(dto.getTaskType()); + patientTaskExecuteRecord.setExecuteTime(time); + patientTaskExecuteRecord.setExecutePerson(routeHandlePerson); + patientTaskExecuteRecord.setExecuteType(TaskCreateTypeConstant.MANUAL_CREATE); + patientTaskExecuteRecord.setCreateBy(routeHandlePerson); + patientTaskExecuteRecord.setCreateTime(time); + if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) <= 0) { + throw new ServiceException("新增患者管理任务记录失败"); + } + } + + /** + * 更新节点任务表 + */ + private void updateSignPatientManageRouteNode(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) { + SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(dto.getManageRouteNodeId()); + signPatientManageRouteNode.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTED.toString()); + signPatientManageRouteNode.setRouteHandleRemark(dto.getRouteHandleRemark()); + signPatientManageRouteNode.setRouteHandleId(dto.getRouteHandleId()); + signPatientManageRouteNode.setRouteHandlePerson(routeHandlePerson); + signPatientManageRouteNode.setCreateBy(routeHandlePerson); + signPatientManageRouteNode.setCreateTime(time); + // 更新节点任务表 + if (signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode) <= 0) { + throw new ServiceException("更新节点任务表失败"); + } + } + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java index 5e65f904..abd63a31 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java @@ -19,11 +19,6 @@ public class ManualFollowPatientVO { */ private Long id; - /** - * 患者信息表id - */ - private Long patientId; - @ApiModelProperty(value = "姓名") private String patientName; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java index 060c41cf..d5dc1fed 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java @@ -15,6 +15,11 @@ import java.time.LocalDateTime; @Data public class ManualFollowUpVO { + /** + * 患者信息表id + */ + private Long patientId; + /** * 签约患者管理任务id */ @@ -31,6 +36,9 @@ public class ManualFollowUpVO { @ApiModelProperty(value = "管理路径节点名称,出院后:AFTER_DISCHARGE,入院后:AFTER_ADMISSION,就诊后:AFTER_CONSULTATION,就诊/出院后:AFTER_VISIT_DISCHARGE,术前:PREOPERATIVE,术后:POSTOPERATIVE") private String routeNodeName; + @ApiModelProperty(value = "患者就诊记录基本信息表id") + private Long visitRecordId; + @ApiModelProperty(value = "患者姓名") private String patientName; diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml index b6b66f60..9e525634 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml @@ -149,6 +149,39 @@ + + insert into patient_question_option_result( + question_subject_result_id, + questionnaire_subject_id, + question_name, + option_name, + option_answer, + option_score, + option_choose_sign, + option_submit_answer, + option_sort, + option_remark, + create_by, + create_time + ) values + + ( + #{QuestionSubjectOption.questionSubjectResultId}, + #{QuestionSubjectOption.questionnaireSubjectId}, + #{QuestionSubjectOption.questionName}, + #{QuestionSubjectOption.optionName}, + #{QuestionSubjectOption.optionAnswer}, + #{QuestionSubjectOption.optionScore}, + #{QuestionSubjectOption.optionChooseSign}, + #{QuestionSubjectOption.optionSubmitAnswer}, + #{QuestionSubjectOption.optionSort}, + #{QuestionSubjectOption.optionRemark}, + #{QuestionSubjectOption.createBy}, + #{QuestionSubjectOption.createTime} + ) + + + update patient_question_option_result diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml index afd43561..1805cc62 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml @@ -194,6 +194,50 @@ + + insert into patient_question_subject_result( + question_submit_result_id, + question_info_id, + question_number, + question_type, + question_name, + question_description, + write_description, + fill_blanks_answer, + option_count, + whether_score, + scoring_method, + scoring_description, + question_score, + question_sort, + question_remark, + create_by, + create_time + ) values + + ( + #{QuestionSubject.questionSubmitResultId}, + #{QuestionSubject.questionInfoId}, + #{QuestionSubject.questionNumber}, + #{QuestionSubject.questionType}, + #{QuestionSubject.questionName}, + #{QuestionSubject.questionDescription}, + #{QuestionSubject.writeDescription}, + #{QuestionSubject.fillBlanksAnswer}, + #{QuestionSubject.optionCount}, + #{QuestionSubject.whetherScore}, + #{QuestionSubject.scoringMethod}, + #{QuestionSubject.scoringDescription}, + #{QuestionSubject.questionScore}, + #{QuestionSubject.questionSort}, + #{QuestionSubject.questionRemark}, + #{QuestionSubject.createBy}, + #{QuestionSubject.createTime} + ) + + + update patient_question_subject_result diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml index 46b75c11..45e9fd8e 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml @@ -96,6 +96,7 @@