From 2de0bc2174bbec2a48db059d3850f0529c0539fc Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期四, 25 七月 2024 23:09:05 +0800
Subject: [PATCH] 数采bug调整

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 75 insertions(+), 10 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 3286e6b..a6554fd 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,20 +1,30 @@
 package com.yuanchu.mom.service.impl;
 
-import com.alibaba.fastjson.JSON;
+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 org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -33,13 +43,17 @@
 
     private StructureItemParameterMapper structureItemParameterMapper;
 
+    @Autowired
+    private DataConfigService dataConfigService;
+
     @Override
-    public Map<String, Object> selectDeviceParameter(Page page, Device itemParameter) {
+    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) {
         Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(Device.class));
+        map.put("head", PrintChina.printChina(DeviceDto.class));
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter");
         if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId"));
-        map.put("body", deviceMapper.selectPage(page, QueryWrappers.queryWrappers(itemParameter)));
+        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter));
+        map.put("body", iPage);
         return map;
     }
 
@@ -53,8 +67,11 @@
         return deviceMapper.deleteById(id);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public int upDeviceParameter(Device itemParameter) {
+        // 鍒犻櫎鏁伴噰闆嗛厤缃暟鎹�
+        dataConfigService.deleteDataConfig();
         return deviceMapper.updateById(itemParameter);
     }
 
@@ -82,17 +99,29 @@
     public List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) {
         Integer id;
         try {
-            id = structureItemParameterMapper.selectOne(Wrappers.<StructureItemParameter>lambdaQuery().eq(StructureItemParameter::getInspectionItem, inspectionItem).eq(StructureItemParameter::getInspectionItemSubclass, inspectionItemSubclass).last("limit 1").select(StructureItemParameter::getId)).getId();
+            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> devices = deviceMapper.selectList(Wrappers.<Device>lambdaQuery()
+                .eq(Device::getDeviceStatus, 0)
+                .isNotNull(Device::getInsProductIds));
         List<Device> devices2 = new ArrayList<>();
         for (Device device : devices) {
-            List<Integer> ids = JSON.parseArray(device.getInsProductIds(), Integer.class);
-            for (Integer i : ids) {
-                if (i == id) {
+            String[] ids = device.getInsProductIds().split(",");
+            for (String i : ids) {
+                if (i.equals(id + "")) {
                     devices2.add(device);
+                    break;
                 }
             }
         }
@@ -103,5 +132,41 @@
     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) {
+        // 闃叉鍥炵幆鍦板潃鍙樹负IPv6
+        String ip = DataAcquisition.getIp(request);
+        List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
+                .eq(Device::getIp, ip));
+        if(device.size() > 1) {
+            String str = "";
+            for (Device device1 : device) {
+                str += device1.getDeviceName() + "锛�";
+            }
+            throw new ErrorException("IP锛�" + ip + "閰嶇疆浜嗚澶囧涓澶囷細" + str + "锛屾棤娉曡繘琛屾暟閲囷紒");
+        }
+        if (ObjectUtils.isEmpty(device)) {
+            throw new ErrorException("鏈粰璇P锛�" + ip + "閰嶇疆璁惧锛屾棤娉曡繘琛屾暟閲囷紒");
+        }
+        List<Map<String, Object>> inspectionItemSubclass = baseMapper.getInspectionItemSubclass(id);
+        if (ObjectUtils.isEmpty(device.get(0).getFileType()) || ObjectUtils.isEmpty(device.get(0).getCollectUrl())) {
+            throw new ErrorException("鏈粰璇ワ細" + device.get(0).getDeviceName() + "璁惧閰嶇疆閲囬泦璺緞鎴栨枃浠跺悗缂�锛�");
+        }
+        List<DataConfig> list1 = new ArrayList<>();
+        inspectionItemSubclass.forEach(i -> {
+             List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery()
+                .eq(DataConfig::getDeviceId, device.get(0).getId())
+                .eq(DataConfig::getInspectionItem, i.get("inspection_item"))
+                .eq(DataConfig::getInspectionItemSubclass, i.get("inspection_item_subclass"))
+                .orderBy(false, false, DataConfig::getId));
+            list1.addAll(list);
+        });
+        Map<String, String> map = DataAcquisition.dataAcquisitionEntrance(list1, device.get(0), entrustCode, sampleCode, ip);
+        if (ObjectUtils.isNotEmpty(map)) {
+            String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode);
+            map.put("frequency", frequency);
+        }
+        return Result.success(map);
+    }
+}

--
Gitblit v1.9.3