Crunchy
2024-08-03 12ecef99059f411e802c6fbc6f9a641c422b1747
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -1,8 +1,6 @@
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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -149,8 +147,13 @@
        String ip = DataAcquisition.getIp(request);
        List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
                .eq(Device::getIp, ip));
        // 1、检验
        if(device.size() > 1) {
            throw new ErrorException("IP:" + ip + "配置了设备多个设备,无法进行数采!");
            String str = "";
            for (Device device1 : device) {
                str += device1.getDeviceName() + ",";
            }
            throw new ErrorException("IP:" + ip + "配置了设备多个设备:" + str + ",无法进行数采!");
        }
        if (ObjectUtils.isEmpty(device)) {
            throw new ErrorException("未给该IP:" + ip + "配置设备,无法进行数采!");
@@ -159,6 +162,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()
@@ -168,12 +172,21 @@
                .orderBy(false, false, DataConfig::getId));
            list1.addAll(list);
        });
        Map<String, String> map = DataAcquisition.dataAcquisitionEntrance(list1, device.get(0), entrustCode, sampleCode, ip);
        // 3、采集,取数据
        Map<String, Object> map = DataAcquisition.dataAcquisitionEntrance(list1, device.get(0), entrustCode, sampleCode, ip);
        // 4、造循环次数,参与公式计算
        if (ObjectUtils.isNotEmpty(map)) {
            String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode);
            map.put("frequency", frequency);
            Object result;
            Map<String, Object> frequency = DataAcquisition.createFrequency(entrustCode, sampleCode, map);
//            if (ObjectUtils.isEmpty(device.get(0).getEntrustCode()) && ObjectUtils.isEmpty(device.get(0).getSampleCode())) {
//                result = formulaCalculation(frequency, true);
//            } else {
//                result = formulaCalculation(frequency, false);
//            }
            return Result.success(frequency);
        } else {
            return Result.success(null);
        }
        return Result.success(map);
    }
    @Override
@@ -952,4 +965,30 @@
        return aDtos;
    }
    @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::getManagementNumber, managementNumber)
                .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);
        }
    }
}