标签修改

This commit is contained in:
zhangheng 2024-06-26 11:34:32 +08:00
parent e353564d0f
commit b33491a04b
4 changed files with 125 additions and 7 deletions

View File

@ -96,4 +96,20 @@ public interface LabelFieldContentMapper {
* @return 患者标签字段列表
*/
List<LabelFieldInfoContentVo> selectByPatientId(Long patientId);
/**
* 批量新增
*
* @param labelFieldContentList 标签内容
* @return int
*/
int insertLabelFieldContentList(List<GroupingValue> labelFieldContentList);
/**
* 批量修改
*
* @param labelFieldContentList
* @return
*/
int updateContentRemarkLabelFieldContentList(List<GroupingValue> labelFieldContentList);
}

View File

@ -15,14 +15,10 @@ import com.xinelu.manage.dto.labelfieldcontent.LabelFieldContentDTO;
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.patientinfo.PatientInfoMapper;
import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper;
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper;
import com.xinelu.manage.mapper.taskpartitiondict.TaskPartitionDictMapper;
import com.xinelu.manage.service.labelfieldcontent.ILabelFieldContentService;
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
import com.xinelu.manage.vo.labelfieldcontent.LabelField;
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
@ -34,6 +30,7 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -250,8 +247,41 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
return retObj;
}
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult insertLabelField(LabelField labelField) {
return null;
if (CollectionUtils.isEmpty(labelField.getGroupingValues())) {
return AjaxResult.success();
}
List<GroupingValue> groupingValues = new ArrayList<>();
for (List<GroupingValue> groupingValue : labelField.getGroupingValues()) {
groupingValues.addAll(groupingValue);
}
List<GroupingValue> updateGroupingValues = new ArrayList<>();
List<GroupingValue> insertGroupingValues = new ArrayList<>();
//传入标签ids
List<Long> afferentLabelFieldInfoIds = groupingValues.stream().filter(Objects::nonNull).map(GroupingValue::getLabelFieldInfoId).filter(Objects::nonNull).collect(Collectors.toList());
//传入标签内容ids
List<Long> afferentLabelFieldContentIds = groupingValues.stream().filter(Objects::nonNull).map(GroupingValue::getLabelFieldContentId).filter(Objects::nonNull).collect(Collectors.toList());
//数据库标签内容ids
List<LabelFieldContentVO> databaseLabelFieldContents = labelFieldContentMapper.selectLabelFieldContent(afferentLabelFieldInfoIds);
List<Long> databaseLabelFieldContentIds = databaseLabelFieldContents.stream().filter(Objects::nonNull).map(LabelFieldContentVO::getLabelFieldContentId).filter(Objects::nonNull).collect(Collectors.toList());
//做差集
List<Long> subtractLabelFieldContentIds = (List<Long>) CollectionUtils.subtract(databaseLabelFieldContentIds, afferentLabelFieldContentIds);
if (CollectionUtils.isNotEmpty(subtractLabelFieldContentIds)) {
labelFieldContentMapper.deleteLabelFieldContentByIds(subtractLabelFieldContentIds.toArray(new Long[0]));
}
for (GroupingValue groupingValue : groupingValues) {
if (Objects.isNull(groupingValue.getLabelFieldContentId())) {
groupingValue.setPortraitSn(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
insertGroupingValues.add(groupingValue);
}
if (Objects.nonNull(groupingValue.getLabelFieldContentId())) {
updateGroupingValues.add(groupingValue);
}
}
int insert = labelFieldContentMapper.insertLabelFieldContentList(insertGroupingValues);
int update = labelFieldContentMapper.updateContentRemarkLabelFieldContentList(updateGroupingValues);
return AjaxResult.success();
}
}

View File

@ -7,5 +7,5 @@ import java.util.List;
@Data
public class LabelField {
private List<GroupingValue> groupingValues;
private List<List<GroupingValue>> groupingValues;
}

View File

@ -279,4 +279,76 @@
from label_field_content content left join label_field_info info on content.field_id = info.id
where content.patient_id = #{patientId} and content.portrait_status='INUSE'
</select>
<insert id="insertLabelFieldContentList">
insert into label_field_content(
field_id,
field_name,
field_code,
field_value,
portrait_sn,
patient_id,
portrait_status,
content_sort,
content_remark,
create_by,
create_time
)
values
<foreach item="GroupingValue" index="index" collection="list" separator=",">
(
#{GroupingValue.fieldId},
#{GroupingValue.fieldName},
#{GroupingValue.fieldCode},
#{GroupingValue.fieldValue},
#{GroupingValue.portraitSn},
#{GroupingValue.patientId},
#{GroupingValue.portraitStatus},
#{GroupingValue.contentSort},
#{GroupingValue.contentRemark},
#{GroupingValue.create_by},
#{GroupingValue.create_time}
)
</foreach>
</insert>
<update id="updateContentRemarkLabelFieldContentList">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update label_field_content
<if test="item.fieldId != null">field_id =
#{item.fieldId},
</if>
<if test="item.fieldName != null">field_name =
#{item.fieldName},
</if>
<if test="item.fieldCode != null">field_code =
#{item.fieldCode},
</if>
<if test="item.fieldValue != null">field_value =
#{item.fieldValue},
</if>
<if test="item.portraitSn != null">portrait_sn =
#{item.portraitSn},
</if>
<if test="item.patientId != null">patient_id =
#{item.patientId},
</if>
<if test="item.portraitStatus != null">portrait_status =
#{item.portraitStatus},
</if>
<if test="item.contentSort != null">content_sort =
#{item.contentSort},
</if>
<if test="item.contentRemark != null">content_remark =
#{item.contentRemark},
</if>
<if test="item.updateBy != null">update_by =
#{item.updateBy},
</if>
<if test="item.updateTime != null">update_time =
#{item.updateTime},
</if>
where id = #{item.id}
</foreach>
</update>
</mapper>