LAPTOP-KB9HII50\70708 2 gadi atpakaļ
vecāks
revīzija
805f5f9b53

+ 25 - 43
svr/svr-basic/src/main/java/com/yihu/jw/basic/agadmin/controller/resource/ResourceBrowseController.java

@ -2,9 +2,13 @@ package com.yihu.jw.basic.agadmin.controller.resource;
import com.yihu.jw.basic.agadmin.service.ResourceBrowseControllerService;
import com.yihu.jw.basic.resource.service.ResourceBrowseService;
import com.yihu.jw.basic.resource.service.RsResourceService;
import com.yihu.jw.entity.ehr.resource.RsResource;
import com.yihu.jw.restmodel.ehr.resource.MRsColumnsModel;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.network.HttpResponse;
@ -21,8 +25,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.OutputStream;
import java.util.*;
@ -42,10 +48,14 @@ public class ResourceBrowseController extends EnvelopRestEndpoint {
    private static final Integer SINGLE_REQUEST_SIZE = 5000; //导出Excel时的单次请求量
    private static final Integer SINGLE_EXCEL_SIZE = 50000; //导出Excel时的单个文件数据量
    @Autowired
    @Resource
    ResourceBrowseControllerService resourceBrowseControllerService;
    @Autowired
    @Resource
    private ResourceIntegratedController resourceIntegratedController;
    @Resource
    private RsResourceService rsResourceService;
    @Resource
    private ResourceBrowseService resourceBrowseService;
//    @RequestMapping("/searchResourceList")
//    public Object searchResourceList() throws Exception {
@ -76,46 +86,18 @@ public class ResourceBrowseController extends EnvelopRestEndpoint {
//        return envelop.getDetailModelList();
//    }
//
//    /**
//     * 动态获取GRID的列名
//     * @param dictId 资源编码
//     * @param request
//     * @return
//     */
//    @RequestMapping("/getGridCloumnNames")
//    @ResponseBody
//    public List<MRsColumnsModel> getGridColumnNames(String dictId, HttpServletRequest request) throws Exception {
//        return getColumns(dictId, request);
//    }
//
//    /**
//     * zuul
//     * @param resourceCode
//     * @param request
//     * @return
//     * @throws Exception
//     */
//    public  List<MRsColumnsModel> getColumns(String resourceCode, HttpServletRequest request) throws Exception {
//        List<MRsColumnsModel> result = new ArrayList<>();
//        //从Session中获取用户的角色信息作为查询参数
//        // 获取资源拥着信息
//        String urlGet = "/resource/api/v1.0/resources/byCode";
//        Map<String, Object> getParams = new HashMap<>();
//        getParams.put("code", resourceCode);
//        HttpResponse response = HttpUtils.doGet(adminInnerUrl + urlGet, getParams);
//        if (!response.isSuccessFlg()) {
//            return result;
//        }
//        Map<String, Object> rsObj = objectMapper.readValue(response.getContent(), Map.class);
//        String url = "/resource/api/v1.0/resources/query/getResourceMetadata";
//        Map<String, Object> params = new HashMap<>();
//        String userId = String.valueOf(request.getSession().getAttribute("userId"));
//        String creator = String.valueOf(rsObj.get("creator"));
//        params.put("roleId", "*");
//        params.put("resourcesCode", resourceCode);
//        response = HttpUtils.doGet(adminInnerUrl + url, params);
//        return toModel(response.getContent(), List.class);
//    }
    /**
     * 动态获取GRID的列名
     * @param dictId 资源编码
     * @return
     */
    @GetMapping("/getGridCloumnNames")
    public Envelop getGridColumnNames(String dictId) throws Exception {
        List<MRsColumnsModel> list = resourceBrowseService.getResourceMetadata(dictId, "*");
        return ListEnvelop.getSuccess("查询成功",list);
    }
//
//    /**
//     * 获取字典值
@ -168,7 +150,7 @@ public class ResourceBrowseController extends EnvelopRestEndpoint {
        Envelop envelop = resourceBrowseControllerService.getResourceData(resourcesCode,"*","*","*",queryCondition,page,rows,null);
        if (envelop.getStatus()==200) {
            ListEnvelop listEnvelop = (ListEnvelop) envelop;
            PageEnvelop listEnvelop = (PageEnvelop) envelop;
            List<Map<String, Object>> envelopList = listEnvelop.getDetailModelList();
            List<Map<String, Object>> middleList = new ArrayList<>();
            for (Map<String, Object> envelopMap : envelopList) {

+ 176 - 171
svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/dao/ResourceBrowseDao.java

@ -18,6 +18,7 @@ import com.yihu.jw.redis.schema.StdDataSetKeySchema;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.entity.ehr.resource.*;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -194,70 +195,70 @@ public class ResourceBrowseDao {
     * @return
     * @throws Exception
     */
//    public Envelop getEhrCenter (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
//        //获取Saas权限
//        StringBuilder q = new StringBuilder();
//        if (saas != null && !"*".equals(saas)) {
//            q.append(saas);
//        }
//        String fq = "";
//        final Map<String, String> sort = new HashMap<>();
//        Map<String, String> query = new HashMap<>();
//        if (queryParams != null) {
//            query = objectMapper.readValue(queryParams, Map.class);
//            if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
//                if (q.length() > 0) {
//                    q.append(" AND (");
//                    q.append(query.get("q"));
//                    q.append(")");
//                } else {
//                    q.append(query.get("q"));
//                }
//            }
//            if (query.containsKey("fq")) {
//                fq = query.get("fq");
//            }
//            if (query.containsKey("sort")) {
//                Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
//                temp.forEach((key, value) -> {
//                    sort.put(key, value);
//                });
//            }
//        }
//        //通过资源代码获取默认参数
//        List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
//        for (RsResourceDefaultParam param : paramsList) {
//            if (param.getParamKey().equals("sort")) {
//                Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
//                temp.forEach((key, value) -> {
//                    sort.put(key, value);
//                });
//            }
//            if (param.getParamKey().equals("q")) {
//                List<QueryCondition> ql = parseCondition(param.getParamValue());
//                if (q.length() > 0) {
//                    q.append(" AND ");
    public Envelop getEhrCenter (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
        //获取Saas权限
        StringBuilder q = new StringBuilder();
        if (saas != null && !"*".equals(saas)) {
            q.append(saas);
        }
        String fq = "";
        final Map<String, String> sort = new HashMap<>();
        Map<String, String> query = new HashMap<>();
        if (queryParams != null) {
            query = objectMapper.readValue(queryParams, Map.class);
            if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
                if (q.length() > 0) {
                    q.append(" AND (");
                    q.append(query.get("q"));
                    q.append(")");
                } else {
                    q.append(query.get("q"));
                }
            }
            if (query.containsKey("fq")) {
                fq = query.get("fq");
            }
            if (query.containsKey("sort")) {
                Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
                temp.forEach((key, value) -> {
                    sort.put(key, value);
                });
            }
        }
        //通过资源代码获取默认参数
        List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
        for (RsResourceDefaultParam param : paramsList) {
            if (param.getParamKey().equals("sort")) {
                Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
                temp.forEach((key, value) -> {
                    sort.put(key, value);
                });
            }
            if (param.getParamKey().equals("q")) {
                List<QueryCondition> ql = parseCondition(param.getParamValue());
                if (q.length() > 0) {
                    q.append(" AND ");
//                    q.append(solrQuery.conditionToString(ql));
//                } else {
                } else {
//                    q.append(solrQuery.conditionToString(ql));
//                }
//            }
//        }
//        if (resourcesCode != null) {
//            RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
//            //获取资源结构权限,该部分新增其他标准数据集的判断
//            List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
//            if (metadataList != null && metadataList.size() > 0) {
//                //数据元信息字段
//                List<String> metadataIdList = new ArrayList<>();
//                for (DtoResourceMetadata metadata : metadataList) {
//                    String id = metadata.getId();
//                    metadataIdList.add(id);
//                    String dictCode = metadata.getDictCode();
//                    if (!StringUtils.isEmpty(dictCode)) {
//                        metadataIdList.add(id + "_VALUE");
//                    }
//                }
                }
            }
        }
        if (resourcesCode != null) {
            RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
            //获取资源结构权限,该部分新增其他标准数据集的判断
            List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
            if (metadataList != null && metadataList.size() > 0) {
                //数据元信息字段
                List<String> metadataIdList = new ArrayList<>();
                for (DtoResourceMetadata metadata : metadataList) {
                    String id = metadata.getId();
                    metadataIdList.add(id);
                    String dictCode = metadata.getDictCode();
                    if (!StringUtils.isEmpty(dictCode)) {
                        metadataIdList.add(id + "_VALUE");
                    }
                }
//                Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.MasterTable, q.toString(), objectMapper.writeValueAsString(sort), fq, StringUtils.join(ResourceCells.getMasterBasicCell(ProfileType.Standard), ","), StringUtils.join(metadataIdList, ","), page, size);
//                Envelop envelop = new Envelop();
//                envelop.setStatus(200);
@ -265,17 +266,17 @@ public class ResourceBrowseDao {
//                envelop.setPageSize(result.getSize());
//                envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
//                envelop.setDetailModelList(result.getContent());
//                return envelop;
//            }
//        } else {
//            String basicFl = "";
//            String dFl = "";
//            if (query.containsKey("basicFl")) {
//                basicFl = query.get("basicFl");
//            }
//            if (query.containsKey("dFl")) {
//                dFl = query.get("dFl");
//            }
                return PageEnvelop.getSuccess("");
            }
        } else {
            String basicFl = "";
            String dFl = "";
            if (query.containsKey("basicFl")) {
                basicFl = query.get("basicFl");
            }
            if (query.containsKey("dFl")) {
                dFl = query.get("dFl");
            }
//            Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.MasterTable, q.toString(), objectMapper.writeValueAsString(sort), fq, basicFl, dFl, page, size);
//            Envelop envelop = new Envelop();
//            envelop.setStatus(200);
@ -283,10 +284,10 @@ public class ResourceBrowseDao {
//            envelop.setPageSize(result.getSize());
//            envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
//            envelop.setDetailModelList(result.getContent());
//            return envelop;
//        }
//        throw new ApiException("资源无相关数据元");
//    }
            return PageEnvelop.getSuccess("");
        }
        throw new ApiException("资源无相关数据元");
    }
    /**
     * @param resourcesCode 资源编码
@ -298,77 +299,77 @@ public class ResourceBrowseDao {
     * @return
     * @throws Exception
     */
//    public Envelop getEhrCenterSub (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
//        //获取Saas权限
//        StringBuilder q = new StringBuilder();
//        if (saas != null && !"*".equals(saas)) {
//            q.append(saas);
//        }
//        String fq = "";
//        final Map<String, String> sort = new HashMap<>();
//        Map<String, String> query = new HashMap<>();
//        if (queryParams != null) {
//            query = objectMapper.readValue(queryParams, Map.class);
//            if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
//                if (q.length() > 0) {
//                    q.append(" AND (");
//                    q.append(query.get("q"));
//                    q.append(")");
//                } else {
//                    q.append(query.get("q"));
//                }
//            }
//            if (query.containsKey("fq")) {
//                fq = query.get("fq");
//            }
//            if (query.containsKey("sort")) {
//                Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
//                temp.forEach((key, value) -> {
//                    sort.put(key, value);
//                });
//            }
//        }
//        //通过资源代码获取默认参数
//        List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
//        for (RsResourceDefaultParam param : paramsList) {
//            if (param.getParamKey().equals("sort")) {
//                Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
//                temp.forEach((key, value) -> {
//                    sort.put(key, value);
//                });
//            }
//            if (param.getParamKey().equals("table")) {
//                if (q.length() > 0) {
//                    q.append(" AND (rowkey:*$" + param.getParamValue() + "$*)");
//                } else {
//                    q.append("rowkey:*$" + param.getParamValue() + "$*");
//                }
//            }
//            if (param.getParamKey().equals("q")) {
//                List<QueryCondition> ql = parseCondition(param.getParamValue());
//                if (q.length() > 0) {
//                    q.append(" AND ");
    public Envelop getEhrCenterSub (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
        //获取Saas权限
        StringBuilder q = new StringBuilder();
        if (saas != null && !"*".equals(saas)) {
            q.append(saas);
        }
        String fq = "";
        final Map<String, String> sort = new HashMap<>();
        Map<String, String> query = new HashMap<>();
        if (queryParams != null) {
            query = objectMapper.readValue(queryParams, Map.class);
            if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
                if (q.length() > 0) {
                    q.append(" AND (");
                    q.append(query.get("q"));
                    q.append(")");
                } else {
                    q.append(query.get("q"));
                }
            }
            if (query.containsKey("fq")) {
                fq = query.get("fq");
            }
            if (query.containsKey("sort")) {
                Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
                temp.forEach((key, value) -> {
                    sort.put(key, value);
                });
            }
        }
        //通过资源代码获取默认参数
        List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
        for (RsResourceDefaultParam param : paramsList) {
            if (param.getParamKey().equals("sort")) {
                Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
                temp.forEach((key, value) -> {
                    sort.put(key, value);
                });
            }
            if (param.getParamKey().equals("table")) {
                if (q.length() > 0) {
                    q.append(" AND (rowkey:*$" + param.getParamValue() + "$*)");
                } else {
                    q.append("rowkey:*$" + param.getParamValue() + "$*");
                }
            }
            if (param.getParamKey().equals("q")) {
                List<QueryCondition> ql = parseCondition(param.getParamValue());
                if (q.length() > 0) {
                    q.append(" AND ");
//                    q.append(solrQuery.conditionToString(ql));
//                } else {
                } else {
//                    q.append(solrQuery.conditionToString(ql));
//                }
//            }
//        }
//        if (resourcesCode != null) {
//            RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
//            //获取资源结构权限,该部分新增其他标准数据集的判断
//            List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
//            if (metadataList != null && metadataList.size() > 0) {
//                //数据元信息字段
//                List<String> metadataIdList = new ArrayList<>();
//                for (DtoResourceMetadata metadata : metadataList) {
//                    String id = metadata.getId();
//                    metadataIdList.add(id);
//                    String dictCode = metadata.getDictCode();
//                    if (!StringUtils.isEmpty(dictCode)) {
//                        metadataIdList.add(id + "_VALUE");
//                    }
//                }
                }
            }
        }
        if (resourcesCode != null) {
            RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
            //获取资源结构权限,该部分新增其他标准数据集的判断
            List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
            if (metadataList != null && metadataList.size() > 0) {
                //数据元信息字段
                List<String> metadataIdList = new ArrayList<>();
                for (DtoResourceMetadata metadata : metadataList) {
                    String id = metadata.getId();
                    metadataIdList.add(id);
                    String dictCode = metadata.getDictCode();
                    if (!StringUtils.isEmpty(dictCode)) {
                        metadataIdList.add(id + "_VALUE");
                    }
                }
//                Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.SubTable, q.toString(), objectMapper.writeValueAsString(sort), fq, StringUtils.join(ResourceCells.getSubBasicCell(ProfileType.Standard), ","), StringUtils.join(metadataIdList, ","), page, size);
//                Envelop envelop = new Envelop();
//                envelop.setStatus(200);
@ -376,17 +377,17 @@ public class ResourceBrowseDao {
//                envelop.setPageSize(result.getSize());
//                envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
//                envelop.setDetailModelList(result.getContent());
//                return envelop;
//            }
//        } else {
//            String basicFl = "";
//            String dFl = "";
//            if (query.containsKey("basicFl")) {
//                basicFl = query.get("basicFl");
//            }
//            if (query.containsKey("dFl")) {
//                dFl = query.get("dFl");
//            }
                return PageEnvelop.getSuccess("");
            }
        } else {
            String basicFl = "";
            String dFl = "";
            if (query.containsKey("basicFl")) {
                basicFl = query.get("basicFl");
            }
            if (query.containsKey("dFl")) {
                dFl = query.get("dFl");
            }
//            Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.SubTable, q.toString(), objectMapper.writeValueAsString(sort), fq, basicFl, dFl, page, size);
//            Envelop envelop = new Envelop();
//            envelop.setStatus(200);
@ -394,10 +395,10 @@ public class ResourceBrowseDao {
//            envelop.setPageSize(result.getSize());
//            envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
//            envelop.setDetailModelList(result.getContent());
//            return envelop;
//        }
//        throw new ApiException("资源无相关数据元");
//    }
            return PageEnvelop.getSuccess("");
        }
        throw new ApiException("资源无相关数据元");
    }
    /**
     * habse主表的solr分组统计
@ -409,9 +410,11 @@ public class ResourceBrowseDao {
     * @return
     * @throws Exception
     */
//    public Page<Map<String, Object>> countEhrCenter(String queryParams, Integer page, Integer size) throws Exception {
//        String core = ResourceCore.MasterTable;
//        ObjectMapper objectMapper = new ObjectMapper();
    public Page<Map<String, Object>> countEhrCenter(String queryParams, Integer page, Integer size) throws Exception {
        String core = ResourceCore.MasterTable;
        ObjectMapper objectMapper = new ObjectMapper();
        List<Map<String, Object>> list = new ArrayList<>();
        return new PageImpl(list);
//        Map<String, Object> params = objectMapper.readValue(queryParams, Map.class);
//        String q = "";
//        String fq = "";
@ -481,8 +484,8 @@ public class ResourceBrowseDao {
//                return solr.getGroupMult(core, groupFields, customGroup, q, fq);
//            }
//        }
//
//    }
    }
    /**
     * habse细表的solr分组统计
@ -493,9 +496,11 @@ public class ResourceBrowseDao {
     * @return
     * @throws Exception
     */
//    public Page<Map<String, Object>> countEhrCenterSub (String queryParams, Integer page, Integer size) throws Exception {
//        String core = ResourceCore.SubTable;
//        ObjectMapper objectMapper = new ObjectMapper();
    public Page<Map<String, Object>> countEhrCenterSub (String queryParams, Integer page, Integer size) throws Exception {
        String core = ResourceCore.SubTable;
        ObjectMapper objectMapper = new ObjectMapper();
        List<Map<String, Object>> list = new ArrayList<>();
        return new PageImpl(list);
//        Map<String, String> params = objectMapper.readValue(queryParams, Map.class);
//
//        String q = "";
@ -553,8 +558,8 @@ public class ResourceBrowseDao {
//                return solr.getGroupCount(core, groupFields, q, fq, page, size);
//            }
//        }
//
//    }
    }
    /**
     * 获取指标数据

+ 6 - 9
svr/svr-basic/src/main/java/com/yihu/jw/basic/standard/service/standard/StdIndexService.java

@ -8,12 +8,12 @@ import com.yihu.jw.basic.standard.model.standard.StdIndex;
import com.yihu.jw.basic.standard.model.standard.resultModel.MStdIndex;
import com.yihu.jw.basic.standard.service.bo.StandardVersion;
import com.yihu.jw.util.sql.SqlCreator;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.hibernate.query.NativeQuery;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
@ -21,7 +21,7 @@ import java.util.List;
@Transactional
@Service
public class StdIndexService extends SQLGeneralDAO {
    @Autowired
    @Resource
    private StdDatasetService stdDatasetService;
    public void save(String indexJson) throws Exception {
@ -38,7 +38,7 @@ public class StdIndexService extends SQLGeneralDAO {
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(mStdIndex));
        SqlCreator sqlCreator = new SqlCreator(StdIndex.class);
        String sql = sqlCreator.insertData("std_index_"+version, jsonNode);
        Query query = getExeuteQuery(sqlCreator, sql);
        NativeQuery query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    }
@ -48,17 +48,14 @@ public class StdIndexService extends SQLGeneralDAO {
        JsonNode jsonNode = objectMapper.readTree(indexJson);
        SqlCreator sqlCreator = new SqlCreator(StdIndex.class);
        String sql = sqlCreator.updateDataByTableKey("std_index_"+version, jsonNode);
        Query query = getExeuteQuery(sqlCreator, sql);
        NativeQuery query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    }
    public boolean isUnique(String filters, String version) throws IOException {
        List<StdIndex> list = searchPage(StdIndex.class, StandardVersion.StdIndexTable,version, filters, null, null, null,true);
        if(CollectionUtils.isEmpty(list)){
            return false;
        }
        return true;
        return !CollectionUtils.isEmpty(list);
    }
}