This commit is contained in:
zhangheng 2024-06-26 18:28:40 +08:00
parent 9ddba6243d
commit 6061b870b1
7 changed files with 92 additions and 65 deletions

View File

@ -6,7 +6,7 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://192.168.16.64:3306/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://192.168.16.64:3306/post-discharge?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root username: root
password: 1qaz!@#$ password: 1qaz!@#$
# 从库数据源 # 从库数据源

View File

@ -4,9 +4,10 @@ import com.xinelu.manage.domain.labelfieldcontent.LabelFieldContent;
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue; import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO; import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldInfoContentVo; import com.xinelu.manage.vo.labelfieldcontent.LabelFieldInfoContentVo;
import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 标签字段内容信息Mapper接口 * 标签字段内容信息Mapper接口
* *
@ -81,7 +82,7 @@ public interface LabelFieldContentMapper {
List<LabelFieldContentVO> selectLabelFieldContent(@Param("labelFieldIds") List<Long> labelFieldIds); List<LabelFieldContentVO> selectLabelFieldContent(@Param("labelFieldIds") List<Long> labelFieldIds);
/** /**
* 画像查询 * 画像内容查询
* *
* @param taskPartitionDictId 细分id * @param taskPartitionDictId 细分id
* @param patientId 患者id * @param patientId 患者id
@ -106,10 +107,10 @@ public interface LabelFieldContentMapper {
int insertLabelFieldContentList(List<GroupingValue> labelFieldContentList); int insertLabelFieldContentList(List<GroupingValue> labelFieldContentList);
/** /**
* 批量修改 * 批量修改 (dev.yml url &allowMultiQueries=true)
* *
* @param labelFieldContentList * @param labelFieldContentList 标签内容
* @return * @return int
*/ */
int updateContentRemarkLabelFieldContentList(List<GroupingValue> labelFieldContentList); int updateContentRemarkLabelFieldContentList(List<GroupingValue> labelFieldContentList);
} }

View File

@ -1,6 +1,7 @@
package com.xinelu.manage.mapper.labelfieldinfo; package com.xinelu.manage.mapper.labelfieldinfo;
import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo;
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
import com.xinelu.manage.vo.labelfieldinfo.LabelFieldVO; import com.xinelu.manage.vo.labelfieldinfo.LabelFieldVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -86,4 +87,12 @@ public interface LabelFieldInfoMapper {
* @return LabelFieldInfo * @return LabelFieldInfo
*/ */
List<LabelFieldInfo> taskPartitionDictIdList(String taskPartitionDictName); List<LabelFieldInfo> taskPartitionDictIdList(String taskPartitionDictName);
/**
* 查询标签
*
* @param taskPartitionDictId 标签
* @return GroupingValue
*/
List<GroupingValue> selectLabelFieldInfoByTaskPartitionDictId(Long taskPartitionDictId);
} }

View File

@ -197,7 +197,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
return new ArrayList<>(collect.values()); return new ArrayList<>(collect.values());
} }
//查询未维护标签及从患者表取值 //查询未维护标签及从患者表取值
List<GroupingValue> labelFieldContentList = labelFieldContentMapper.groupingValue(taskPartitionDictId, null, null); List<GroupingValue> labelFieldContentList = labelFieldInfoMapper.selectLabelFieldInfoByTaskPartitionDictId(taskPartitionDictId);
JSONObject paramsValue = getParamsValue(patientId); JSONObject paramsValue = getParamsValue(patientId);
if (CollectionUtils.isEmpty(labelFieldContentList)) { if (CollectionUtils.isEmpty(labelFieldContentList)) {
return new ArrayList<>(); return new ArrayList<>();
@ -211,6 +211,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
} }
List<String> strings1 = Arrays.asList(strings); List<String> strings1 = Arrays.asList(strings);
for (GroupingValue groupingValue : labelFieldContentList) { for (GroupingValue groupingValue : labelFieldContentList) {
groupingValue.setPatientId(patientId);
String s = strings1.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).findFirst().orElse(new String()); String s = strings1.stream().filter(Objects::nonNull).filter(item -> item.equals(groupingValue.getFieldCode())).findFirst().orElse(new String());
groupingValue.setFieldValue(paramsValue.getOrDefault(s, "").toString()); groupingValue.setFieldValue(paramsValue.getOrDefault(s, "").toString());
} }
@ -219,25 +220,6 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
return lists; return lists;
} }
/**
* 根据任务细分类型获取患者的真实信息
*
* @param patientId 患者主键
* @return 实际信息
*/
private JSONObject getParamsValue(Long patientId) {
JSONObject retObj;
List<PatientAllInfoViewUppercase> patientAllInfoViews = patientAllInfoViewMapper.selectPatientAllInfoListViewByPatientId(patientId);
if (CollectionUtils.isEmpty(patientAllInfoViews) || ObjectUtils.isEmpty(patientAllInfoViews.get(0))) {
throw new ServiceException("患者信息获取错误,请联系管理员!");
}
PatientAllInfoViewUppercase patientAllInfoView = patientAllInfoViews.get(0);
retObj = JSONObject.parseObject(JSONObject.toJSONString(patientAllInfoView));
// 性别转换成中文计算年龄
retObj.fluentPut("SEX", PatientSexEnum.getInfoByCode(patientAllInfoView.getSEX()).getInfo()).fluentPut("AGE", BaseUtil.getAge(patientAllInfoView.getBIRTHDATE()));
return retObj;
}
/** /**
* 画像内容新增 * 画像内容新增
* *
@ -298,4 +280,23 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
} }
return AjaxResult.success(); return AjaxResult.success();
} }
/**
* 根据任务细分类型获取患者的真实信息
*
* @param patientId 患者主键
* @return 实际信息
*/
private JSONObject getParamsValue(Long patientId) {
JSONObject retObj;
List<PatientAllInfoViewUppercase> patientAllInfoViews = patientAllInfoViewMapper.selectPatientAllInfoListViewByPatientId(patientId);
if (CollectionUtils.isEmpty(patientAllInfoViews) || ObjectUtils.isEmpty(patientAllInfoViews.get(0))) {
throw new ServiceException("患者信息获取错误,请联系管理员!");
}
PatientAllInfoViewUppercase patientAllInfoView = patientAllInfoViews.get(0);
retObj = JSONObject.parseObject(JSONObject.toJSONString(patientAllInfoView));
// 性别转换成中文计算年龄
retObj.fluentPut("SEX", PatientSexEnum.getInfoByCode(patientAllInfoView.getSEX()).getInfo()).fluentPut("AGE", BaseUtil.getAge(patientAllInfoView.getBIRTHDATE()));
return retObj;
}
} }

View File

@ -104,10 +104,6 @@ public class LabelFieldInfoServiceImpl implements ILabelFieldInfoService {
if (ObjectUtils.isEmpty(fieldInfo)) { if (ObjectUtils.isEmpty(fieldInfo)) {
throw new ServiceException("当前标签信息不存在,无法修改,请联系管理员"); throw new ServiceException("当前标签信息不存在,无法修改,请联系管理员");
} }
// 检查除当前记录外有没有重复的标签信息名称
if (labelFieldInfoMapper.countByFieldNameExcludingId(labelFieldInfo.getId(), labelFieldInfo.getFieldType(), labelFieldInfo.getFieldName()) > 0) {
throw new ServiceException("当前字段类型下字段名称已存在");
}
// 执行修改操作 // 执行修改操作
labelFieldInfo.setUpdateBy(SecurityUtils.getUsername()); labelFieldInfo.setUpdateBy(SecurityUtils.getUsername());
labelFieldInfo.setUpdateTime(LocalDateTime.now()); labelFieldInfo.setUpdateTime(LocalDateTime.now());

View File

@ -246,6 +246,7 @@
lfi.task_type_name, lfi.task_type_name,
lfc.id labelFieldContentId, lfc.id labelFieldContentId,
lfc.field_id, lfc.field_id,
lfc.patient_id,
lfc.field_name, lfc.field_name,
lfc.field_code, lfc.field_code,
lfc.field_value, lfc.field_value,
@ -313,42 +314,38 @@
</insert> </insert>
<update id="updateContentRemarkLabelFieldContentList"> <update id="updateContentRemarkLabelFieldContentList">
<foreach collection="list" item="item" index="index" open="" close="" separator=";"> <foreach collection="list" item="labelFieldContentList" index="index" open="" close="" separator=";">
update label_field_content update label_field_content
<if test="item.fieldId != null">field_id = <trim prefix="SET" suffixOverrides=",">
#{item.fieldId}, <if test="labelFieldContentList.fieldId != null">field_id =
#{labelFieldContentList.fieldId},
</if> </if>
<if test="item.fieldName != null">field_name = <if test="labelFieldContentList.fieldName != null">field_name =
#{item.fieldName}, #{labelFieldContentList.fieldName},
</if> </if>
<if test="item.fieldCode != null">field_code = <if test="labelFieldContentList.fieldCode != null">field_code =
#{item.fieldCode}, #{labelFieldContentList.fieldCode},
</if> </if>
<if test="item.fieldValue != null">field_value = <if test="labelFieldContentList.fieldValue != null">field_value =
#{item.fieldValue}, #{labelFieldContentList.fieldValue},
</if> </if>
<if test="item.portraitSn != null">portrait_sn = <if test="labelFieldContentList.portraitSn != null">portrait_sn =
#{item.portraitSn}, #{labelFieldContentList.portraitSn},
</if> </if>
<if test="item.patientId != null">patient_id = <if test="labelFieldContentList.patientId != null">patient_id =
#{item.patientId}, #{labelFieldContentList.patientId},
</if> </if>
<if test="item.portraitStatus != null">portrait_status = <if test="labelFieldContentList.portraitStatus != null">portrait_status =
#{item.portraitStatus}, #{labelFieldContentList.portraitStatus},
</if> </if>
<if test="item.contentSort != null">content_sort = <if test="labelFieldContentList.updateBy != null">update_by =
#{item.contentSort}, #{labelFieldContentList.updateBy},
</if> </if>
<if test="item.contentRemark != null">content_remark = <if test="labelFieldContentList.updateTime != null">update_time =
#{item.contentRemark}, #{labelFieldContentList.updateTime},
</if> </if>
<if test="item.updateBy != null">update_by = </trim>
#{item.updateBy}, where id = #{labelFieldContentList.labelFieldContentId}
</if>
<if test="item.updateTime != null">update_time =
#{item.updateTime},
</if>
where id = #{item.labelFieldContentId}
</foreach> </foreach>
</update> </update>
</mapper> </mapper>

View File

@ -225,4 +225,27 @@
</if> </if>
</where> </where>
</select> </select>
<select id="selectLabelFieldInfoByTaskPartitionDictId"
resultType="com.xinelu.manage.vo.labelfieldcontent.GroupingValue">
select id labelFieldInfoId,
field_name,
field_code,
field_type,
field_sort,
field_remark,
task_partition_dict_id,
task_partition_dict_name,
task_type_id,
task_type_name
from label_field_info
<where>
<if test="taskPartitionDictId != null and taskPartitionDictId != 0">
and task_partition_dict_id = #{taskPartitionDictId}
</if>
<if test="taskPartitionDictId == null">
and task_partition_dict_id is null
</if>
</where>
</select>
</mapper> </mapper>