标签修改
This commit is contained in:
parent
e353564d0f
commit
b33491a04b
@ -96,4 +96,20 @@ public interface LabelFieldContentMapper {
|
|||||||
* @return 患者标签字段列表
|
* @return 患者标签字段列表
|
||||||
*/
|
*/
|
||||||
List<LabelFieldInfoContentVo> selectByPatientId(Long patientId);
|
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.labelfieldcontent.LabelFieldContentMapper;
|
||||||
import com.xinelu.manage.mapper.labelfieldinfo.LabelFieldInfoMapper;
|
import com.xinelu.manage.mapper.labelfieldinfo.LabelFieldInfoMapper;
|
||||||
import com.xinelu.manage.mapper.patientinfo.PatientAllInfoViewMapper;
|
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.service.labelfieldcontent.ILabelFieldContentService;
|
||||||
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
|
import com.xinelu.manage.vo.labelfieldcontent.GroupingValue;
|
||||||
import com.xinelu.manage.vo.labelfieldcontent.LabelField;
|
import com.xinelu.manage.vo.labelfieldcontent.LabelField;
|
||||||
|
import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -34,6 +30,7 @@ import java.time.format.DateTimeFormatter;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -250,8 +247,41 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService {
|
|||||||
return retObj;
|
return retObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult insertLabelField(LabelField labelField) {
|
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
|
@Data
|
||||||
public class LabelField {
|
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
|
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'
|
where content.patient_id = #{patientId} and content.portrait_status='INUSE'
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user