标签修改
This commit is contained in:
parent
e353564d0f
commit
b33491a04b
@ -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);
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,5 +7,5 @@ import java.util.List;
|
||||
@Data
|
||||
public class LabelField {
|
||||
|
||||
private List<GroupingValue> groupingValues;
|
||||
private List<List<GroupingValue>> groupingValues;
|
||||
}
|
||||
|
||||
@ -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>
|
||||
Loading…
Reference in New Issue
Block a user