Merge branch '0418_小程序开发' of http://182.92.166.109:3000/zhuangyuanke/PostDischargePatientManage into 0418_小程序开发

This commit is contained in:
haown 2024-07-16 14:57:30 +08:00
commit 395d2be780
47 changed files with 217 additions and 62 deletions

View File

@ -2,7 +2,6 @@ package com.xinelu.manage.mapper.labelfieldcontent;
import com.xinelu.manage.domain.labelfieldcontent.LabelFieldContent;
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldAndPartitionDict;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldInfoContentVo;
import org.apache.ibatis.annotations.Param;
@ -90,7 +89,7 @@ public interface LabelFieldContentMapper {
* @param portraitStatus 状态
* @return GroupingValue
*/
List<LabelFieldAndPartitionDict> labelFieldAndPartitionDict(@Param("taskPartitionDictId") Long taskPartitionDictId, @Param("patientId") Long patientId, @Param("portraitStatus") String portraitStatus);
List<GroupingValue> labelFieldAndPartitionDict(@Param("taskPartitionDictId") Long taskPartitionDictId, @Param("patientId") Long patientId, @Param("portraitStatus") String portraitStatus);
List<GroupingValue> groupingValue(@Param("taskPartitionDictId") Long taskPartitionDictId, @Param("patientId") Long patientId, @Param("portraitStatus") String portraitStatus);

View File

@ -117,4 +117,12 @@ public interface SignPatientManageRouteNodeMapper {
* @return 节点列表
*/
List<SignPatientManageRouteNode> selectNodesByManageIds(@Param("manageRouteIds") List<Long> manageRouteIds);
/**
* 查询患者管理路径节点内容
*
* @param patientId 患者id
* @return 患者管理任务路径节点
*/
List<SignPatientManageRouteNode> getRouteNodeContentList(Long patientId);
}

View File

@ -36,10 +36,7 @@ import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@ -214,6 +211,10 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
patientTaskDto.setPatientId(patientId);
//根据患者id查询节点富文本所需标签
List<SignPatientManageRouteNode> nodeList = signPatientManageRouteNodeMapper.getNodeList(patientTaskDto);
List<SignPatientManageRouteNode> routeNodeContentList = signPatientManageRouteNodeMapper.getRouteNodeContentList(patientId);
if (CollectionUtils.isNotEmpty(routeNodeContentList)) {
nodeList.addAll(routeNodeContentList);
}
List<String> 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);
@ -225,14 +226,44 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
string.add(paramKey);
}
//根据patientId查询是否有已经维护的参数有维护数据返回已维护数据没有维护数据查询视图数据
List<LabelFieldAndPartitionDict> labelFieldContents = labelFieldContentMapper.labelFieldAndPartitionDict(taskPartitionDictId, patientId, null);
if (CollectionUtils.isNotEmpty(labelFieldContents)) {
return labelFieldContents;
List<GroupingValue> groupingValues;
groupingValues = labelFieldContentMapper.labelFieldAndPartitionDict(taskPartitionDictId, patientId, null);
if (CollectionUtils.isNotEmpty(groupingValues)) {
for (GroupingValue groupingValue : groupingValues) {
groupingValue.setPatientId(patientId);
List<String> collect = string.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).collect(Collectors.toList());
//判断星标
if (CollectionUtils.isNotEmpty(collect)) {
groupingValue.setSign(1);
} else {
groupingValue.setSign(0);
}
}
//组装数据
List<Long> taskPartitionDictIds = groupingValues.stream().filter(Objects::nonNull).map(LabelFieldInfo::getTaskPartitionDictId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
List<LabelFieldAndPartitionDict> labelFieldAndPartitionDictList = new ArrayList<>();
for (Long aLong : taskPartitionDictIds) {
List<PortraitSnVO> PortraitSnVOS = new ArrayList<>();
LabelFieldAndPartitionDict labelFieldAndPartitionDict = new LabelFieldAndPartitionDict();
List<GroupingValue> collect = groupingValues.stream().filter(Objects::nonNull).filter(item -> aLong.equals(item.getTaskPartitionDictId())).collect(Collectors.toList());
Map<String, List<GroupingValue>> collect1 = collect.stream().filter(Objects::nonNull).collect(Collectors.groupingBy(GroupingValue::getPortraitSn));
collect1.forEach((Key, value) -> {
PortraitSnVO portraitSnVO = new PortraitSnVO();
portraitSnVO.setPortraitSn(Key);
portraitSnVO.setGroupingValues(value);
PortraitSnVOS.add(portraitSnVO);
});
labelFieldAndPartitionDict.setTaskPartitionDictId(aLong);
labelFieldAndPartitionDict.setTaskPartitionDictName(collect.get(0).getTaskPartitionDictName());
labelFieldAndPartitionDict.setPortraitSnVOList(PortraitSnVOS);
labelFieldAndPartitionDictList.add(labelFieldAndPartitionDict);
}
return labelFieldAndPartitionDictList;
}
//查询未维护标签及从患者表取值患者视图无值返回分组有值根据属性名遍历塞入
List<GroupingValue> labelFieldContentList = labelFieldInfoMapper.selectLabelFieldInfoByTaskPartitionDictId(taskPartitionDictId);
groupingValues = labelFieldInfoMapper.selectLabelFieldInfoByTaskPartitionDictId(taskPartitionDictId);
JSONObject paramsValue = getParamsValue(patientId);
if (CollectionUtils.isEmpty(labelFieldContentList)) {
if (CollectionUtils.isEmpty(groupingValues)) {
return new ArrayList<>();
}
//取患者表视图属性名
@ -244,19 +275,27 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
}
//遍历分组根据属性名塞入视图值
List<String> asListStrings = Arrays.asList(strings);
for (GroupingValue groupingValue : labelFieldContentList) {
for (GroupingValue groupingValue : groupingValues) {
groupingValue.setPatientId(patientId);
String s = asListStrings.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).findFirst().orElse(new String());
List<String> collect = string.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).collect(Collectors.toList());
//判断星标
if (CollectionUtils.isNotEmpty(collect)) {
groupingValue.setSign(1);
} else {
groupingValue.setSign(0);
}
//塞入视图数据
groupingValue.setFieldValue(paramsValue.getOrDefault(s, "").toString());
}
//遍历任务细分id组装数据
List<Long> collect = labelFieldContentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getTaskPartitionDictId())).map(LabelFieldInfo::getTaskPartitionDictId).distinct().collect(Collectors.toList());
List<Long> collect = groupingValues.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getTaskPartitionDictId())).map(LabelFieldInfo::getTaskPartitionDictId).distinct().collect(Collectors.toList());
List<LabelFieldAndPartitionDict> labelFieldAndPartitionDictList = new ArrayList<>();
for (Long aLong : collect) {
List<PortraitSnVO> PortraitSnVOS = new ArrayList<>();
LabelFieldAndPartitionDict labelFieldAndPartitionDict = new LabelFieldAndPartitionDict();
PortraitSnVO portraitSnVO = new PortraitSnVO();
List<GroupingValue> collect1 = labelFieldContentList.stream().filter(Objects::nonNull).filter(item -> aLong.equals(item.getTaskPartitionDictId())).collect(Collectors.toList());
List<GroupingValue> collect1 = groupingValues.stream().filter(Objects::nonNull).filter(item -> aLong.equals(item.getTaskPartitionDictId())).collect(Collectors.toList());
portraitSnVO.setGroupingValues(collect1);
PortraitSnVOS.add(portraitSnVO);
labelFieldAndPartitionDict.setTaskPartitionDictId(aLong);

View File

@ -244,6 +244,7 @@ public class ScriptInfoServiceImpl implements IScriptInfoService {
int i = 0;
for (Node node : scriptVO.getNodes()) {
node.setScriptInfoId(scriptVO.getScriptInfoId());
if (Objects.nonNull(node.getLabel())){
String[] split = node.getLabel().split("\\n");
int i1 = node.getLabel().indexOf("\n");
if (split.length > 0) {
@ -252,6 +253,7 @@ public class ScriptInfoServiceImpl implements IScriptInfoService {
if (split.length > 1) {
node.setScriptContent(node.getLabel().substring(i1 + 1));
}
}
node.setScriptNodeType(node.getType());
node.setCreateBy(SecurityUtils.getUsername());
node.setCreateTime(LocalDateTime.now());

View File

@ -9,7 +9,7 @@ import java.util.stream.Collectors;
/**
* 机构树图信息对象vo agency
*
* @author xinelu
* @author zh
* @date 2024-02-26
*/
public class AgencyTreeVO implements Serializable {

View File

@ -10,7 +10,7 @@ import java.util.List;
/**
* 机构树图信息对象vo agency
*
* @author xinelu
* @author zh
* @date 2024-02-26
*/

View File

@ -6,6 +6,12 @@ import lombok.Data;
import java.util.List;
/**
* 医院科室联动vo agency
*
* @author zh
* @date 2024-02-26
*/
@Data
public class HospitalVO {

View File

@ -6,6 +6,12 @@ import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* 机构类型树图信息对象vo agency
*
* @author zh
* @date 2024-02-27
*/
public class AgencyCategoryTreeVO implements Serializable {
private static final long serialVersionUID = 1L;

View File

@ -7,6 +7,12 @@ import lombok.EqualsAndHashCode;
import java.util.ArrayList;
import java.util.List;
/**
* 机构类型树图信息对象vo agency
*
* @author zh
* @date 2024-02-27
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class AgencyCategoryVO extends AgencyCategory {

View File

@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
/**
* 标签字段内容信息对象
*
* @author xinelu
* @author zh
* @date 2024-03-11
*/
@EqualsAndHashCode(callSuper = true)

View File

@ -4,9 +4,11 @@ import lombok.Data;
import java.util.List;
/**
* 画像编辑传值反值
*
* @author zh
* @date 2024-06-15
*/
@Data
public class LabelField {

View File

@ -5,6 +5,12 @@ import lombok.Data;
import java.util.List;
/**
* 画像编辑传值反值
*
* @author zh
* @date 2024-06-15
*/
@Data
public class LabelFieldAndPartitionDict {

View File

@ -7,8 +7,8 @@ import lombok.EqualsAndHashCode;
/**
* 标签字段内容信息对象 label_field_content
*
* @author xinelu
* @date 2024-03-11
* @author zh
* @date 2024-04-1
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -4,6 +4,12 @@ import lombok.Data;
import java.util.List;
/**
* 画像编辑传值反值
*
* @author zh
* @date 2024-07-01
*/
@Data
public class PortraitSnVO {

View File

@ -10,7 +10,7 @@ import java.util.stream.Collectors;
/**
* 画像树图信息对象vo
*
* @author xinelu
* @author zh
* @date 2024-06-27
*/
@Data

View File

@ -10,8 +10,8 @@ import java.util.List;
/**
* 标签字段信息对象 label_field_info
*
* @author xinelu
* @date 2024-03-11
* @author zh
* @date 2024-04-01
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -10,7 +10,7 @@ import java.util.List;
/**
* 患者问卷题目提交结果信息对象 patient_question_subject_result
*
* @author xinelu
* @author zh
* @date 2024-03-28
*/
@EqualsAndHashCode(callSuper = true)

View File

@ -10,7 +10,7 @@ import java.util.List;
/**
* 患者问卷提交结果信息对象 patient_question_submit_result
*
* @author xinelu
* @author zh
* @date 2024-03-28
*/
@Data

View File

@ -15,7 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat;
/**
* 患者管理任务执行记录对象 patient_task_execute_record
*
* @author xinelu
* @author zh
* @date 2024-03-25
*/
@EqualsAndHashCode(callSuper = true)

View File

@ -1,6 +1,5 @@
package com.xinelu.manage.vo.questionInfo;
import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO;
import lombok.Data;
@ -11,7 +10,7 @@ import java.util.List;
/**
* 问卷基本信息VO
*
* @author xinelu
* @author zh
* @date 2024-02-28
*/
@EqualsAndHashCode(callSuper = true)

View File

@ -10,7 +10,7 @@ import java.util.List;
/**
* 问卷题目信息对象 question_subject
*
* @author xinelu
* @author zh
* @date 2024-02-29
*/
@EqualsAndHashCode(callSuper = true)

View File

@ -9,7 +9,7 @@ import java.math.BigDecimal;
/**
* 问卷题目选项答案对象 question_subject_option
*
* @author xinelu
* @author zh
* @date 2024-02-29
*/
@Data

View File

@ -4,6 +4,9 @@ import lombok.Data;
/**
* 话术信息分支表VO
*
* @author zh
* @date 2024-06-13
*/
@Data
public class Edge {

View File

@ -4,6 +4,12 @@ import com.xinelu.manage.domain.scriptinfonode.ScriptInfoNode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 话术信息分支表VO
*
* @author zh
* @date 2024-06-13
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class Node extends ScriptInfoNode {

View File

@ -3,6 +3,12 @@ package com.xinelu.manage.vo.signpatientmanageroute;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 话术类型代办处理详情返回VO
*
* @author zh
* @date 2024-06-12
*/
@Data
public class PhonePush {

View File

@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 签约患者管理任务路径触发条件关系对象 sign_route_trigger_condition
*
* @author haown
* @author zh
* @date 2024-03-18
*/
@Data

View File

@ -8,8 +8,8 @@ import lombok.EqualsAndHashCode;
/**
* 专病路径-管理节点信息对象 special_disease_node
*
* @author xinelu
* @date 2024-03-13
* @author zh
* @date 2024-03-29
*/
@EqualsAndHashCode(callSuper = true)
@Data

View File

@ -12,8 +12,8 @@ import java.util.List;
/**
* 专病路径信息对象 special_disease_route
*
* @author xinelu
* @date 2024-03-13
* @author zh
* @date 2024-03-29
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -49,5 +49,8 @@ public class SpecialDiseaseRouteVO extends SpecialDiseaseRoute {
*/
List<TriggerConditionVO> triggerConditionList;
/**
* 服务包集合
*/
List<SpecialDiseaseRoutePackageVO> routePackageList;
}

View File

@ -7,12 +7,15 @@ import lombok.EqualsAndHashCode;
/**
* 专病路径-服务包关系多对多关系对象 special_disease_route_package
*
* @author xinelu
* @author zh
* @date 2024-04-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SpecialDiseaseRoutePackageVO extends SpecialDiseaseRoutePackage {
/**
* 专病路径-服务包关系id
*/
private Long specialDiseaseRoutePackageId;
}

View File

@ -7,8 +7,8 @@ import lombok.EqualsAndHashCode;
/**
* 触发条件关系DTO
*
* @author xinelu
* @date 2024-03-18
* @author zh
* @date 2024-03-29
*/
@EqualsAndHashCode(callSuper = true)
@Data

View File

@ -5,9 +5,10 @@ import lombok.Data;
import java.io.Serializable;
/**
* @author ljh
* @version 1.0
* Create by 2022/9/20 17:58
* 区域信息VO
*
* @author zh
* @date 2024-03-29
*/
@Data
public class SysAreaVO implements Serializable {

View File

@ -9,8 +9,8 @@ import java.util.List;
/**
* 任务类型字典对象 task_type_dict
*
* @author xinelu
* @date 2024-03-11
* @author ZH
* @date 2024-07-03
*/
@Data
public class TaskTypeDictVO {
@ -26,5 +26,8 @@ public class TaskTypeDictVO {
@ApiModelProperty(value = "任务类型名称")
private String taskTypeName;
/**
* 细分集合
*/
private List<TaskPartitionDict> taskPartitionDictList;
}

View File

@ -10,8 +10,8 @@ import java.util.stream.Collectors;
/**
* 知识库树图信息对象vo
*
* @author xinelu
* @date 2024-02-26
* @author zh
* @date 2024-06-13
*/
@Data
public class TermBankTreeVO implements Serializable {

View File

@ -8,17 +8,23 @@ import java.util.ArrayList;
import java.util.List;
/**
* 常用术语(知识库)对象 term_bank
* 常用术语(知识库)树图对象 term_bank
*
* @author xinelu
* @date 2024-06-07
* @date 2024-06-11
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class TermBankVO extends TermBank {
/**
* 标识
*/
private String value;
/**
* 子集合
*/
private List<TermBankVO> children = new ArrayList<TermBankVO>();
public List<TermBankVO> getChildren() {

View File

@ -325,7 +325,7 @@
where content.patient_id = #{patientId} and content.portrait_status='INUSE'
</select>
<select id="labelFieldAndPartitionDict" resultType="com.xinelu.manage.vo.labelfieldcontent.LabelFieldAndPartitionDict" resultMap="LabelFieldAndPartitionDictResult">
<select id="labelFieldAndPartitionDict" resultType="com.xinelu.manage.vo.labelfieldcontent.GroupingValue" >
select
lfi.id labelFieldInfoId,
lfi.field_name,

View File

@ -814,4 +814,13 @@
#{manageRouteId}
</foreach>
</select>
<select id="getRouteNodeContentList"
resultType="com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode">
select node_content
from sign_patient_manage_route spmr
LEFT JOIN special_disease_route sdr ON spmr.route_id = sdr.id
LEFT JOIN special_disease_node sdn ON sdn.route_id = sdr.id
where spmr.patient_id = #{patientId}
</select>
</mapper>

View File

@ -17,7 +17,7 @@ import java.util.Objects;
/**
* 小程序首页Controller
*
* @author xinelu
* @author zh
* @date 2024-04-18
*/
@RestController

View File

@ -14,7 +14,6 @@ import java.util.List;
* @Description 院后小程序首页Mapper层
* @Author zh
* @Date 2024-04-18
* @Version 1.0
*/
public interface HomePageMapper {

View File

@ -10,6 +10,12 @@ import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO;
import java.util.List;
/**
* 小程序首页Service
*
* @author zh
* @date 2024-04-18
*/
public interface HomePageService {
/**

View File

@ -52,6 +52,12 @@ import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 小程序首页ServiceImpl
*
* @author zh
* @date 2024-04-18
*/
@Service
@Slf4j
public class HomePageServiceImpl implements HomePageService {
@ -61,8 +67,6 @@ public class HomePageServiceImpl implements HomePageService {
@Resource
private PageServiceUtil pageServiceUtil;
@Resource
private ScriptInfoMapper scriptInfoMapper;
@Resource
private QuestionInfoMapper questionInfoMapper;
@Resource
private QuestionSubjectMapper questionSubjectMapper;

View File

@ -6,6 +6,9 @@ import lombok.Data;
/**
* 消息内容返回实体类
*
* @Author zh
* @Date 2024-07-8
*/
@Data
public class MessageContentVO {

View File

@ -4,6 +4,9 @@ import lombok.Data;
/**
* 消息列表返回VO
*
* @Author zh
* @Date 2024-07-8
*/
@Data
public class MessageTabulationVO {

View File

@ -8,7 +8,7 @@ import java.time.LocalDate;
/**
* 我的随访对象vo
*
* @author xinelu
* @author zh
* @date 2024-04-18
*/
@Data

View File

@ -5,6 +5,12 @@ import lombok.Data;
import java.time.LocalDateTime;
/**
* 居民满意度vo
*
* @author zh
* @date 2024-04-18
*/
@Data
public class SatisfactionQuestionnaire {
@ -24,10 +30,13 @@ public class SatisfactionQuestionnaire {
*/
private Long templateId;
/**
* 是否参加满意度 completed完成incomplete未完成
*/
private String sign;
/***
*
* 患者问卷id
*/
private Long patientQuestionSubmitResultId;
}

View File

@ -5,6 +5,13 @@ import lombok.Data;
import java.time.LocalDate;
/**
* 居民信息vo
*
* @author zh
* @date 2024-04-18
*/
@Data
public class PatientVO {

View File

@ -10,7 +10,7 @@ import javax.annotation.Resource;
/**
* 消息推送
*
* @author xinelu
* @author zh
*/
@RestController
@RequestMapping("/monitor/messageSubscription")

View File

@ -19,6 +19,11 @@ import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description 消息推送定时任务业务层
* @Author zh
* @Date 2024-05-24
*/
@Service
@Slf4j
public class subscribeTaskServiceImpl implements SubscribeTaskService {