zss
2025-01-13 8d85246f061e3da623c7b9eb4e323ee724b4de0b
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -1,8 +1,7 @@
package com.yuanchu.mom.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -57,12 +56,18 @@
    private DataConfigService dataConfigService;
    @Override
    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) {
    public List<User> selectUserList() {
        List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getDepartLimsId, "1"));
        return users;
    }
    @Override
    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter,Boolean laboratoryNameIsNull) {
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(DeviceDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter");
        if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId"));
        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter));
        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter),laboratoryNameIsNull);
        map.put("body", iPage);
        return map;
    }
@@ -107,17 +112,25 @@
    @Override
    public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) {
        Integer id;
        List<Integer> id;
        try {
            if (ObjectUtils.isEmpty(inspectionItemSubclass)) {
                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
            }else {
                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
//                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
//                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
//                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                id = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
                        .last("limit 1").select(StructureItemParameter::getId)).getId();
                        .select(StructureItemParameter::getId)).stream().map(StructureItemParameter::getId).collect(Collectors.toList());
            }
        } catch (Exception e) {
            return null;
@@ -129,9 +142,11 @@
        for (Device device : devices) {
            String[] ids = device.getInsProductIds().split(",");
            for (String i : ids) {
                if (i.equals(id + "")) {
                    devices2.add(device);
                    break;
                if (ObjectUtils.isNotEmpty(i)) {
                    if (id.contains(Integer.parseInt(i))) {
                        devices2.add(device);
                        break;
                    }
                }
            }
        }
@@ -149,6 +164,7 @@
        String ip = DataAcquisition.getIp(request);
        List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
                .eq(Device::getIp, ip));
        // 1、检验
        if(device.size() > 1) {
            String str = "";
            for (Device device1 : device) {
@@ -163,6 +179,7 @@
        if (ObjectUtils.isEmpty(device.get(0).getFileType()) || ObjectUtils.isEmpty(device.get(0).getCollectUrl())) {
            throw new ErrorException("未给该:" + device.get(0).getDeviceName() + "设备配置采集路径或文件后缀!");
        }
        // 2、取设备关联的检验项,检验子项
        List<DataConfig> list1 = new ArrayList<>();
        inspectionItemSubclass.forEach(i -> {
             List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery()
@@ -172,12 +189,16 @@
                .orderBy(false, false, DataConfig::getId));
            list1.addAll(list);
        });
        Map<String, String> map = DataAcquisition.dataAcquisitionEntrance(list1, device.get(0), entrustCode, sampleCode, ip);
        List<DataConfig> collect = list1.stream().distinct().collect(Collectors.toList());
        // 3、采集,取数据
        Map<String, Object> map = DataAcquisition.dataAcquisitionEntrance(collect, device.get(0), entrustCode, sampleCode, ip);
        // 4、造循环次数,参与公式计算
        if (ObjectUtils.isNotEmpty(map)) {
            String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode);
            map.put("frequency", frequency);
            Map<String, Object> frequency = DataAcquisition.createFrequency(entrustCode, sampleCode, map);
            return Result.success(frequency);
        } else {
            return Result.success(null);
        }
        return Result.success(map);
    }
    @Override
@@ -960,10 +981,21 @@
    @Override
    public List<Map<String, Object>> treeDevice(String deviceName) {
        List<Map<String, Object>>  listMap = deviceMapper.treeDevice(deviceName);
       /* Map<String, List<Device>> listMap = devices.stream()
                .collect(Collectors.groupingBy(device ->
                        device.getLargeCategory() != null ? device.getLargeCategory() : "其他"
                ));*/
        return listMap;
    }
    @Override
    public Result<?> determineWhetherToCollectData(String managementNumber, HttpServletRequest request) {
        String ip = DataAcquisition.getIp(request);
        Device device = baseMapper.selectOne(Wrappers.<Device>lambdaQuery()
                .eq(Device::getIp, ip));
        if (ObjectUtils.isEmpty(device)) {
            return Result.success(false);
        }
        if (ObjectUtils.isEmpty(device.getFileType()) || ObjectUtils.isEmpty(device.getCollectUrl())) {
            return Result.success(false);
        } else {
            return Result.success(true);
        }
    }
}