From 0087434cc70ca8cee692be654d9e1c6ec82c3da7 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期三, 24 七月 2024 21:09:21 +0800
Subject: [PATCH] 数采bug调整

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java     |    7 ++-
 cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java              |    7 +++
 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java            |    6 +++
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                       |    6 +-
 cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java        |    9 +++-
 cnas-server/src/main/resources/mapper/DataConfigMapper.xml                        |   17 +++++---
 cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java            |    2 +
 cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java          |    2 +
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java |    5 ++
 cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java                    |    3 +
 10 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
index 262ec8b..71f8b14 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -13,6 +13,7 @@
 import com.yuanchu.mom.pojo.Device;
 import com.yuanchu.mom.service.DataConfigService;
 import com.yuanchu.mom.service.DeviceService;
+import com.yuanchu.mom.utils.DataAcquisition;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
@@ -177,11 +178,13 @@
     @ValueAuth
     @ApiOperation(value = "鍒ゆ柇璇ヨ澶囨槸鍚﹀彲浠ユ暟閲�")
     @GetMapping("/determineWhetherToCollectData")
-    public Result<?> determineWhetherToCollectData(@RequestParam("managementNumber") String managementNumber) {
+    public Result<?> determineWhetherToCollectData(@RequestParam("managementNumber") String managementNumber, HttpServletRequest request) {
+        String ip = DataAcquisition.getIp(request);
         Device device = deviceService.getOne(Wrappers.<Device>lambdaQuery()
-                .eq(Device::getManagementNumber, managementNumber));
+                .eq(Device::getManagementNumber, managementNumber)
+                .eq(Device::getIp, ip));
         if (ObjectUtils.isEmpty(device)) {
-            return Result.fail("璁惧缂栧彿閿欒锛�");
+            return Result.success(false);
         }
         if (ObjectUtils.isEmpty(device.getFileType()) || ObjectUtils.isEmpty(device.getCollectUrl())) {
             return Result.success(false);
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java
index 311ff58..73ad6d8 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java
@@ -63,4 +63,10 @@
     private String y;
 
     private Integer id;
+
+    @ApiModelProperty(value = "妫�楠屽璞�")
+    private String sample;
+
+    @ApiModelProperty(value = "妫�楠岄」鐩甶d")
+    private Integer structureItemParameterId;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java
index 277160f..56572b2 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java
@@ -17,4 +17,6 @@
 public interface DataConfigMapper extends BaseMapper<DataConfig> {
 
     List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId);
+
+    List<DataConfig> deleteDataConfig();
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java
index 50ac66b..6c4c769 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java
@@ -60,4 +60,7 @@
     @TableField(exist = false)
     @ApiModelProperty("妫�楠岄」瀛愰」")
     private String insProductItem;
+
+    @ApiModelProperty("妫�楠岄」id")
+    private Integer structureItemParameterId;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java
index 96133f1..32959f0 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java
@@ -17,4 +17,6 @@
 public interface DataConfigService extends IService<DataConfig> {
 
     List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId);
+
+    List<DataConfig> deleteDataConfig();
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java
index 8035161..7c8c492 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java
@@ -30,4 +30,9 @@
     public List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId) {
         return dataConfigMapper.selectDataConfigList(deviceId);
     }
+
+    @Override
+    public List<DataConfig> deleteDataConfig() {
+        return dataConfigMapper.deleteDataConfig();
+    }
 }
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 453ff9a..b9adeff 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
@@ -22,6 +22,7 @@
 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;
@@ -66,8 +67,11 @@
         return deviceMapper.deleteById(id);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public int upDeviceParameter(Device itemParameter) {
+        // 鍒犻櫎鏁伴噰闆嗛厤缃暟鎹�
+        dataConfigService.deleteDataConfig();
         return deviceMapper.updateById(itemParameter);
     }
 
@@ -131,9 +135,8 @@
 
     @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;
+        String ip = DataAcquisition.getIp(request);
         List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery()
                 .eq(Device::getIp, ip));
         if(device.size() > 1) {
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
index 5a2126d..066c05a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
@@ -10,6 +10,7 @@
 import com.yuanchu.mom.pojo.DataConfig;
 import com.yuanchu.mom.pojo.Device;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -390,4 +391,10 @@
             return value;
         }
     }
+
+    public static String getIp(HttpServletRequest request) {
+        String ipAddress = request.getRemoteAddr();
+        // 闃叉鍥炵幆鍦板潃鍙樹负IPv6
+        return ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
+    }
 }
diff --git a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
index e8b009f..592af80 100644
--- a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
@@ -21,19 +21,24 @@
                ip.inspection_item,
                if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '',
                   ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass,
+               TRIM(BOTH '["]' FROM SUBSTRING_INDEX(REPLACE(ip.sample, '[["', ''), '"]]', 1)) sample,
                ddc.formula,
                ddc.referx,
                ddc.refery,
                ddc.x,
                ddc.y,
-               ddc.id
+               ddc.id,
+               ip.id structureItemParameterId
         FROM device d
                  left join structure_item_parameter ip on FIND_IN_SET(ip.id, d.ins_product_ids)
-                 left join device_data_config ddc on ddc.device_id = d.id and
-                                                     if(ip.inspection_item_subclass is not null and
-                                                        ip.inspection_item_subclass != '', ip.inspection_item_subclass,
-                                                        ip.inspection_item) = ddc.inspection_item_subclass and
-                                                     ip.inspection_item = ddc.inspection_item
+                 left join device_data_config ddc on ddc.device_id = d.id and ddc.structure_item_parameter_id = ip.id
         where d.id = #{deviceId}
     </select>
+
+    <select id="deleteDataConfig" resultType="com.yuanchu.mom.pojo.DataConfig">
+        SELECT ddc.*
+        FROM device d
+                 left join structure_item_parameter ip on not FIND_IN_SET(ip.id, d.ins_product_ids)
+                 inner join device_data_config ddc on ddc.device_id = d.id and ddc.structure_item_parameter_id = ip.id
+    </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index ca5e74e..af29ddc 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -461,11 +461,11 @@
         select d.device_name, d.management_number, d.file_type, d.collect_url
         FROM
             device d,
-            structure_item_parameter sip
+            device_data_config ddc
         where d.ip = #{ip}
-          and sip.inspection_item = #{inspectionItem}
+          and ddc.inspection_item = #{inspectionItem}
             <if test="inspectionItemSubclass != '' and inspectionItemSubclass != null">
-                and sip.inspection_item_subclass = #{inspectionItemSubclass}
+                and ddc.inspection_item_subclass = #{inspectionItemSubclass}
             </if>
           and d.device_status = 0
           and d.ins_product_ids is not null

--
Gitblit v1.9.3