|
|
@ -1,22 +1,34 @@
|
|
|
|
package com.supervision.manage.service.impl;
|
|
|
|
package com.supervision.manage.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.supervision.manage.service.DiseasePhysicalManageService;
|
|
|
|
import com.supervision.manage.service.DiseasePhysicalManageService;
|
|
|
|
|
|
|
|
import com.supervision.manage.service.PhysicalLocationManageService;
|
|
|
|
|
|
|
|
import com.supervision.manage.service.PhysicalToolManageService;
|
|
|
|
|
|
|
|
import com.supervision.model.ConfigPhysicalLocation;
|
|
|
|
import com.supervision.model.DiseaseAncillary;
|
|
|
|
import com.supervision.model.DiseaseAncillary;
|
|
|
|
import com.supervision.model.DiseasePhysical;
|
|
|
|
import com.supervision.model.DiseasePhysical;
|
|
|
|
|
|
|
|
import com.supervision.service.ConfigPhysicalLocationService;
|
|
|
|
import com.supervision.service.DiseasePhysicalService;
|
|
|
|
import com.supervision.service.DiseasePhysicalService;
|
|
|
|
|
|
|
|
import com.supervision.vo.manage.DiseasePhysicalLocationNodeVo;
|
|
|
|
import com.supervision.vo.manage.DiseasePhysicalResVo;
|
|
|
|
import com.supervision.vo.manage.DiseasePhysicalResVo;
|
|
|
|
|
|
|
|
import com.supervision.vo.manage.PhysicalLocationNode;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageService {
|
|
|
|
public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageService {
|
|
|
|
|
|
|
|
|
|
|
|
private final DiseasePhysicalService diseasePhysicalService;
|
|
|
|
private final DiseasePhysicalService diseasePhysicalService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final PhysicalLocationManageService physicalToolManageService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) {
|
|
|
|
public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) {
|
|
|
@ -57,6 +69,40 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe
|
|
|
|
return diseasePhysicalService.lambdaUpdate().eq(DiseasePhysical::getDiseaseId,diseaseId).remove();
|
|
|
|
return diseasePhysicalService.lambdaUpdate().eq(DiseasePhysical::getDiseaseId,diseaseId).remove();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<DiseasePhysicalLocationNodeVo> queryTree(String diseaseId) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<PhysicalLocationNode> physicalLocationNodes = physicalToolManageService.queryTree();
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(physicalLocationNodes)){
|
|
|
|
|
|
|
|
return CollectionUtil.newArrayList();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PhysicalLocationNode physicalLocationNode = new PhysicalLocationNode();
|
|
|
|
|
|
|
|
physicalLocationNode.setChild(physicalLocationNodes);
|
|
|
|
|
|
|
|
DiseasePhysicalLocationNodeVo bean = BeanUtil.toBean(physicalLocationNode, DiseasePhysicalLocationNodeVo.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(diseasePhysicalResVos)){
|
|
|
|
|
|
|
|
return bean.getChild();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> toolIds = diseasePhysicalResVos.stream().map(DiseasePhysical::getToolId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
populateDiseasePhysicalLocationNodeFlag(bean,toolIds);
|
|
|
|
|
|
|
|
return bean.getChild();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void populateDiseasePhysicalLocationNodeFlag(DiseasePhysicalLocationNodeVo node,List<String> toolIds) {
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(node.getId())){
|
|
|
|
|
|
|
|
node.setFlag(toolIds.stream().anyMatch(id->node.getId().equals(id)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(node.getChild())){
|
|
|
|
|
|
|
|
for (DiseasePhysicalLocationNodeVo childNode : node.getChild()) {
|
|
|
|
|
|
|
|
populateDiseasePhysicalLocationNodeFlag(childNode,toolIds);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void assertDiseasePhysical(DiseasePhysical diseasePhysical){
|
|
|
|
private void assertDiseasePhysical(DiseasePhysical diseasePhysical){
|
|
|
|
|
|
|
|
|
|
|
|