From 8db78cbba8c13935d835296a43d9968a991e81a8 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Tue, 2 Jul 2024 14:31:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=9D=E6=9C=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/termbank/TermBankMapper.java | 8 +++++++ .../impl/LabelFieldContentServiceImpl.java | 22 +++++++++++++++++++ .../termbank/impl/TermBankServiceImpl.java | 12 ++++++---- .../SignPatientManageRouteMapper.xml | 4 ++-- .../mapper/manage/termbank/TermBankMapper.xml | 9 ++++++++ 5 files changed, 49 insertions(+), 6 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/termbank/TermBankMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/termbank/TermBankMapper.java index fd15fa23..ee5d0d86 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/termbank/TermBankMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/termbank/TermBankMapper.java @@ -64,4 +64,12 @@ public interface TermBankMapper { * @return 结果 */ int deleteTermBankByIds(Long[] ids); + + /** + * 查询父级信息 + * + * @param parentTermCode 父级编号 + * @return TermBank + */ + TermBank selectTermBankByParentTermCode(String parentTermCode); } 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 f7bad8fd..df50dc23 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,16 +12,23 @@ import com.xinelu.manage.domain.labelfieldcontent.LabelFieldContent; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; import com.xinelu.manage.domain.patientinfo.PatientAllInfoView; import com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase; +import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; import com.xinelu.manage.dto.labelfieldcontent.LabelFieldContentAddDTO; import com.xinelu.manage.dto.labelfieldcontent.LabelFieldContentDTO; +import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper; import com.xinelu.manage.mapper.labelfieldinfo.LabelFieldInfoMapper; import com.xinelu.manage.mapper.patientinfo.PatientAllInfoViewMapper; +import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.labelfieldcontent.ILabelFieldContentService; import com.xinelu.manage.vo.labelfieldcontent.*; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,6 +57,8 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { private LabelFieldInfoMapper labelFieldInfoMapper; @Resource private PatientAllInfoViewMapper patientAllInfoViewMapper; + @Resource + private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper; /** * 查询标签字段内容信息 @@ -193,6 +202,19 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { if (ObjectUtils.isEmpty(patientId)) { throw new ServiceException("请选择患者!"); } + PatientTaskDto patientTaskDto = new PatientTaskDto(); + patientTaskDto.setPatientId(patientId); + List nodeList = signPatientManageRouteNodeMapper.getNodeList(patientTaskDto); + List nodeContentList = nodeList.stream().filter(Objects::nonNull).map(SignPatientManageRouteNode::getNodeContent).filter(Objects::nonNull).collect(Collectors.toList()); + String nodeContentListJoin = String.join(",", nodeContentList); + Document document = Jsoup.parse(nodeContentListJoin); + // 需要提取的span + List string = new ArrayList<>(); + Elements spanList = document.select("span[data-w-e-type]"); + for (Element span : spanList) { + String paramKey = span.attr("data-fieldMark"); + string.add(paramKey); + } //根据patientId查询是否有已经维护的参数 List labelFieldContents = labelFieldContentMapper.labelFieldAndPartitionDict(taskPartitionDictId, patientId, null); if (CollectionUtils.isNotEmpty(labelFieldContents)) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/termbank/impl/TermBankServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/termbank/impl/TermBankServiceImpl.java index 802051d3..1732cb7f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/termbank/impl/TermBankServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/termbank/impl/TermBankServiceImpl.java @@ -92,13 +92,17 @@ public class TermBankServiceImpl implements ITermBankService { */ @Override public AjaxResult updateTermBank(TermBank termBank) { - if (Objects.nonNull(termBank) && Objects.nonNull(termBank.getTermLevel()) && termBank.getTermLevel() < Constants.TERM_MAX_LEVEL) { - termBank.setTermLevel(termBank.getTermLevel() + 1); + termBank.setTermLevel(1L); + if (StringUtils.isNotBlank(termBank.getParentTermCode())) { + TermBank parentTermCode = termBankMapper.selectTermBankByParentTermCode(termBank.getParentTermCode()); + if (Objects.nonNull(parentTermCode) && Objects.nonNull(parentTermCode.getTermLevel())) { + termBank.setTermLevel(parentTermCode.getTermLevel() + 1); + } } - if (Objects.nonNull(termBank) && Objects.nonNull(termBank.getTermLevel()) && termBank.getTermLevel() > (Constants.TERM_MAX_LEVEL)) { + if (Objects.nonNull(termBank.getTermLevel()) && termBank.getTermLevel() > (Constants.TERM_MAX_LEVEL)) { return AjaxResult.error("常用话术层数最大值为" + Constants.TERM_MAX_LEVEL + "层"); } - if (Objects.nonNull(termBank) && StringUtils.isBlank(termBank.getParentTermCode())) { + if (StringUtils.isBlank(termBank.getParentTermCode())) { termBank.setTermLevel(Constants.TERM_MIN_LEVEL); } termBank.setUpdateTime(LocalDateTime.now()); 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 dfa19f8c..3a5be893 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroute/SignPatientManageRouteMapper.xml @@ -331,12 +331,12 @@ spmrn.route_node_name AS 'routeNodeName', spmrn.task_type, CASE - WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN COALESCE(spmrn.phone_template_name, spmrn.follow_template_name) + WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_template_name WHEN spmrn.task_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.questionnaire_name WHEN spmrn.task_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_name END AS 'templateName', CASE - WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN COALESCE(spmrn.phone_id, spmrn.follow_template_id) + WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_id WHEN spmrn.task_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.question_info_id WHEN spmrn.task_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_id END AS 'templateId', diff --git a/postdischarge-manage/src/main/resources/mapper/manage/termbank/TermBankMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/termbank/TermBankMapper.xml index 49b11ae2..cbb13cff 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/termbank/TermBankMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/termbank/TermBankMapper.xml @@ -185,4 +185,13 @@ #{id} + + \ No newline at end of file