|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.supervision.model.ConfigAncillaryItem;
|
|
|
|
import com.supervision.service.ConfigAncillaryItemService;
|
|
|
|
import com.supervision.mapper.ConfigAncillaryItemMapper;
|
|
|
|
import com.supervision.service.DiagnosisAncillaryRecordService;
|
|
|
|
import com.supervision.vo.ask.AncillaryItemReqVo;
|
|
|
|
import com.supervision.vo.ask.AskAncillaryHistoryResVO;
|
|
|
|
import com.supervision.vo.ask.ConfigAncillaryItemResVO;
|
|
|
|
import com.supervision.vo.result.ConfigAncillaryItemVo;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Set;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author flevance
|
|
|
|
* @description 针对表【vp_config_ancillary_item(辅助检查项目配置表)】的数据库操作Service实现
|
|
|
|
* @createDate 2023-10-20 17:19:21
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
public class ConfigAncillaryItemServiceImpl extends ServiceImpl<ConfigAncillaryItemMapper, ConfigAncillaryItem>
|
|
|
|
implements ConfigAncillaryItemService{
|
|
|
|
|
|
|
|
private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<ConfigAncillaryItemVo> queryVoList(AncillaryItemReqVo ancillaryItemReqVo) {
|
|
|
|
|
|
|
|
List<ConfigAncillaryItem> configAncillaryItems = findByKeyWord(ancillaryItemReqVo.getKeyWord());
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(configAncillaryItems)){
|
|
|
|
return CollUtil.newArrayList();
|
|
|
|
}
|
|
|
|
|
|
|
|
final Set<String> recordItemIds = new HashSet<>();
|
|
|
|
if (StrUtil.isNotEmpty(ancillaryItemReqVo.getProcessId())){
|
|
|
|
List<AskAncillaryHistoryResVO> askAncillaryHistoryResVOS = diagnosisAncillaryRecordService.queryAncillaryRecord(ancillaryItemReqVo.getProcessId());
|
|
|
|
recordItemIds.addAll(askAncillaryHistoryResVOS.stream().map(AskAncillaryHistoryResVO::getItemId).collect(Collectors.toSet()));
|
|
|
|
}
|
|
|
|
|
|
|
|
return configAncillaryItems.stream().map(e->{
|
|
|
|
ConfigAncillaryItemVo itemVo = new ConfigAncillaryItemVo(e);
|
|
|
|
itemVo.setExecStatus(recordItemIds.contains(itemVo.getId()) ? 1 : 0 );
|
|
|
|
return itemVo;
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<ConfigAncillaryItemResVO> queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo) {
|
|
|
|
|
|
|
|
List<ConfigAncillaryItemVo> list = this.queryVoList(ancillaryItemReqVo);
|
|
|
|
return list.stream().collect(Collectors.groupingBy(ConfigAncillaryItem::getType)).entrySet().stream().map(e -> {
|
|
|
|
ConfigAncillaryItemResVO item = new ConfigAncillaryItemResVO();
|
|
|
|
item.setItemName(e.getKey());
|
|
|
|
item.setItemList(e.getValue());
|
|
|
|
return item;
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
|
|
|
|
private List<ConfigAncillaryItem> findByKeyWord(String keyWord){
|
|
|
|
keyWord = StrUtil.trim(keyWord);
|
|
|
|
return super.lambdaQuery().like(StrUtil.isNotEmpty(keyWord), ConfigAncillaryItem::getItemName, keyWord)
|
|
|
|
.or().like(StrUtil.isNotEmpty(keyWord), ConfigAncillaryItem::getType, keyWord).list();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|