From b61eb0f0522d2ff208e596f12d34e79145a12d4b Mon Sep 17 00:00:00 2001 From: zhuangyuanke Date: Mon, 6 Jan 2025 13:34:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=8A=E5=90=8E=E5=90=8E=E9=99=A2=E5=90=8E?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=80=A7BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 6 ++++ .../LabelFieldContentMapper.java | 8 +++++ .../impl/SystemHomePageServiceImpl.java | 32 +++++++++++++------ .../ILabelFieldContentService.java | 7 ++++ .../impl/LabelFieldContentServiceImpl.java | 10 ++++++ .../SignPatientManageRouteServiceImpl.java | 4 +-- .../manage/vo/homepage/PatientAndNode.java | 15 ++++++--- .../LabelFieldContentMapper.xml | 8 +++-- 8 files changed, 71 insertions(+), 19 deletions(-) diff --git a/postdischarge-admin/src/main/resources/application.yml b/postdischarge-admin/src/main/resources/application.yml index 87bb28de..69f2e517 100644 --- a/postdischarge-admin/src/main/resources/application.yml +++ b/postdischarge-admin/src/main/resources/application.yml @@ -293,4 +293,10 @@ aiob: secretKey: 4287bfa1d5a34c229aacb5e056c94682 # 任务执行回调地址--测试 callBackUrl: http://182.92.166.109:9707/api/taskCallBack +# callBackUrl: http://182.92.166.109:19090/api/taskCallBack +# callBackUrl: http://101.200.89.70:19090/api/taskCallBack # callBackUrl: http://8.131.93.145:54011/api/taskCallBack + +xinyilu-database: + # 公共机构ID(新医路,用于宣教库公共库查询) + id: 46 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java index 470c54b9..056d70cc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java @@ -23,6 +23,14 @@ public interface LabelFieldContentMapper { */ public LabelFieldContent selectLabelFieldContentById(Long id); + /** + * + * @param patientId + * @return + */ + public List selectLabelFieldContentByPatientId(Long patientId); + + /** * 查询标签字段内容信息列表 * diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java index ad7466ec..a91efd41 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java @@ -15,6 +15,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; import java.util.List; @@ -162,17 +164,27 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { if (CollectionUtils.isNotEmpty(patientAndNodes)) { allCount = patientAndNodes.size(); for (PatientAndNode patientAndNode : patientAndNodes) { - LocalDate localDate = null; - if (Objects.nonNull(patientAndNode.getDischargeTime()) && Objects.nonNull(patientAndNode.getRouteNodeDay())) { - localDate = patientAndNode.getDischargeTime().plusDays(patientAndNode.getRouteNodeDay()); + LocalDateTime localDateTime = null; + //如果有计划执行时间,则直接获取 + if (patientAndNode.getNodePlanTime() != null) { + localDateTime = patientAndNode.getNodePlanTime(); } - if (Objects.isNull(patientAndNode.getDischargeTime()) && Objects.nonNull(patientAndNode.getVisitDate()) && Objects.nonNull(patientAndNode.getRouteNodeDay())) { - localDate = patientAndNode.getVisitDate().plusDays(patientAndNode.getRouteNodeDay()); + // 否则 ,则根据诊后/院后 第几天 计算 + else { + LocalTime et = LocalTime.of(8,0,0); + + if (Objects.nonNull(patientAndNode.getDischargeTime()) && Objects.nonNull(patientAndNode.getRouteNodeDay()) ) { + localDateTime = LocalDateTime.of(patientAndNode.getDischargeTime().plusDays(patientAndNode.getRouteNodeDay()).toLocalDate(), et); + + } + if (Objects.isNull(patientAndNode.getDischargeTime()) && Objects.nonNull(patientAndNode.getVisitDate()) && Objects.nonNull(patientAndNode.getRouteNodeDay())) { + localDateTime = LocalDateTime.of(patientAndNode.getVisitDate().plusDays(patientAndNode.getRouteNodeDay()).toLocalDate(), et); + } + if (Objects.isNull(localDateTime)) { + continue; + } } - if (Objects.isNull(localDate)) { - continue; - } - boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now()); + boolean before = localDateTime.isBefore(LocalDateTime.now()) || localDateTime.isEqual(LocalDateTime.now()); if (before) { //未执行 if (!NodeExecuteStatusEnum.EXECUTED.getInfo().equals(patientAndNode.getNodeExecuteStatus())) { @@ -185,4 +197,4 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { taskSituations.add(new TaskSituation("人工随访", unExecutedCount, allCount)); return taskSituations; } -} \ No newline at end of file +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/ILabelFieldContentService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/ILabelFieldContentService.java index f75ea3b0..1c002a23 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/ILabelFieldContentService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/ILabelFieldContentService.java @@ -22,6 +22,13 @@ public interface ILabelFieldContentService { */ LabelFieldContent selectLabelFieldContentById(Long id); + /** + * + * @param patientId + * @return + */ + List selectLabelFieldContentByPatientId(Long patientId); + /** * 查询标签字段内容信息列表 * 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 13fd18af..468fad8f 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 @@ -68,6 +68,16 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { return labelFieldContentMapper.selectLabelFieldContentById(id); } + /** + * + * @param patientId + * @return + */ + @Override + public List selectLabelFieldContentByPatientId(Long patientId){ + return labelFieldContentMapper.selectLabelFieldContentByPatientId(patientId); + } + /** * 查询标签字段内容信息列表 * 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 f34a042a..bf1fdcba 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 @@ -278,8 +278,8 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout return AjaxResult.error(901, "修改签约患者管理任务路径失败!请联系管理员!"); } } - //适用场景:对未签约患者 手动创建任务 - else { + //适用场景:对未签约患者 手动创建任务, 或已签约但尚未审核画像的 + if(labelFieldContentService.selectLabelFieldContentByPatientId(signPatientManageRoute.getPatientId()).size()==0) { //获取画像信息 List labelFieldAndPartitionDictList = labelFieldContentService.groupingValue(0L, signPatientManageRoute.getPatientId()); // 画像信息保存 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java index a20fa1ce..a9f1fc38 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDate; +import java.time.LocalDateTime; /** * 患者节点任务参数对象 @@ -18,15 +19,19 @@ public class PatientAndNode { private Long signPatientManageRouteNodeIds; @ApiModelProperty(value = "出院时间(出院患者)") - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate dischargeTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime dischargeTime; @ApiModelProperty(value = "就诊时间,格式:yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate visitDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime visitDate; @ApiModelProperty(value = "管理路径节点时间,时间单位为:天") private Integer routeNodeDay; + @ApiModelProperty(value = "计划时间(手动创建的任务指定时间的有值),格式:yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime nodePlanTime; + private String nodeExecuteStatus; -} \ No newline at end of file +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml index 18eb30fb..56a8cf39 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml @@ -114,7 +114,11 @@ where id = #{id} - + - \ No newline at end of file +