From dd301742784e570ec01098907f56e5c9c19b5a99 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 23 七月 2024 17:26:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java |   81 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 78 insertions(+), 3 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index 9b7ce3c..d8609a0 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -1,19 +1,30 @@
 package com.yuanchu.mom.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.DeviceDto;
+import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.DeviceMapper;
+import com.yuanchu.mom.mapper.StructureItemParameterMapper;
+import com.yuanchu.mom.pojo.DataConfig;
 import com.yuanchu.mom.pojo.Device;
+import com.yuanchu.mom.pojo.StructureItemParameter;
+import com.yuanchu.mom.service.DataConfigService;
 import com.yuanchu.mom.service.DeviceService;
+import com.yuanchu.mom.utils.DataAcquisition;
 import com.yuanchu.mom.utils.QueryWrappers;
+import com.yuanchu.mom.vo.Result;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -28,6 +39,11 @@
     private GetLook getLook;
 
     private DeviceMapper deviceMapper;
+
+    private StructureItemParameterMapper structureItemParameterMapper;
+
+    @Autowired
+    private DataConfigService dataConfigService;
 
     @Override
     public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) {
@@ -76,8 +92,67 @@
     }
 
     @Override
-    public List<Device> selectDeviceByCategory(String category) {
-        return deviceMapper.selectList(Wrappers.<Device>lambdaQuery().eq(Device::getLargeCategory, category).eq(Device::getDeviceStatus, 0));
+    public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) {
+        Integer id;
+        try {
+            if (ObjectUtils.isEmpty(inspectionItemSubclass)) {
+                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
+                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+            }else {
+                id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery()
+                        .eq(StructureItemParameter::getInspectionItem, inspectionItem)
+                        .eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass)
+                        .last("limit 1").select(StructureItemParameter::getId)).getId();
+            }
+        } catch (Exception e) {
+            return null;
+        }
+        List<Device> devices = deviceMapper.selectList(Wrappers.<Device>lambdaQuery()
+                .eq(Device::getDeviceStatus, 0)
+                .isNotNull(Device::getInsProductIds));
+        List<Device> devices2 = new ArrayList<>();
+        for (Device device : devices) {
+            String[] ids = device.getInsProductIds().split(",");
+            for (String i : ids) {
+                if (i.equals(id + "")) {
+                    devices2.add(device);
+                    break;
+                }
+            }
+        }
+        return devices2;
+    }
+
+    @Override
+    public Device selectDeviceByCode(String code) {
+        return deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getFactoryNo, code).last("limit 1"));
+    }
+
+    @Override
+    public Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode) {
+        String ipAddress = request.getRemoteAddr();
+        // 闃叉鍥炵幆鍦板潃鍙樹负IPv6
+        String ip =  ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
+        List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
+                .eq(Device::getIp, ip));
+        if (ObjectUtils.isEmpty(device)) {
+            throw new ErrorException("鏈粰璇P锛�" + ip + "閰嶇疆璁惧锛屾棤娉曡繘琛屾暟閲囷紒");
+        }
+        List<String> inspectionItemSubclass = baseMapper.getInspectionItemSubclass(id);
+        Map<String, String> hashMap = new HashMap<>();
+        device.forEach(i -> {
+            if (ObjectUtils.isEmpty(i.getFileType()) || ObjectUtils.isEmpty(i.getCollectUrl())) {
+                throw new ErrorException("鏈粰璇ワ細" + i.getDeviceName() + "璁惧閰嶇疆閲囬泦璺緞鎴栨枃浠跺悗缂�锛�");
+            }
+            List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery()
+                    .eq(DataConfig::getDeviceId, i.getId())
+                    .in(DataConfig::getInsProductItem, inspectionItemSubclass)
+                    .orderBy(false, false, DataConfig::getId));
+            hashMap.putAll(DataAcquisition.dataAcquisitionEntrance(request, list, i, entrustCode, sampleCode, ip));
+        });
+        String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode);
+        hashMap.put("frequency", frequency);
+        return Result.success(hashMap);
     }
 }
-

--
Gitblit v1.9.3