From 21dedbb10f307260ac6fd77b826fc9158160c2bb Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期三, 24 七月 2024 15:20:22 +0800
Subject: [PATCH] 数采bug调整
---
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java | 3
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java | 35 +++++++----
cnas-server/src/main/resources/mapper/DeviceMapper.xml | 8 +-
cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 50 +++++-----------
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java | 2
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 12 +++-
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java | 13 +++-
cnas-server/src/main/resources/mapper/DataConfigMapper.xml | 3
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 5 -
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java | 4 +
cnas-server/src/main/java/com/yuanchu/mom/pojo/DataConfig.java | 10 +++
11 files changed, 79 insertions(+), 66 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 96f6c17..262ec8b 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
@@ -8,6 +8,7 @@
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.DataConfigDto;
import com.yuanchu.mom.dto.DeviceDto;
+import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DataConfig;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.service.DataConfigService;
@@ -194,7 +195,11 @@
@PostMapping("/saveDataAcquisitionConfiguration")
public Result<?> saveDataAcquisitionConfiguration(@RequestParam(value = "deviceId") Integer deviceId, @RequestBody DataConfigDto dataConfigList) {
if (dataConfigList.getIsDevice()) {
- System.out.println();
+ Device one = deviceService.getOne(Wrappers.<Device>lambdaQuery()
+ .eq(Device::getIp, dataConfigList.getIp()));
+ if (ObjectUtils.isNotEmpty(one)) {
+ throw new ErrorException("璇P锛�" + dataConfigList.getIp() + "宸茬粡缁戝畾浜嗚澶囷細" + one.getDeviceName());
+ }
Device device = new Device();
device.setId(deviceId);
device.setCollectUrl(dataConfigList.getCollectUrl());
@@ -223,11 +228,13 @@
@GetMapping("/queryDataAcquisitionConfiguration")
public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId,
@RequestParam("isDevice") Boolean isDevice,
- @RequestParam(value = "insProductItem", required = false) String insProductItem) {
+ @RequestParam(value = "inspectionItem", required = false) String inspectionItem,
+ @RequestParam(value = "inspectionItemSubclass", required = false) String inspectionItemSubclass) {
if (isDevice) {
List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery()
.eq(DataConfig::getDeviceId, deviceId)
- .eq(DataConfig::getInsProductItem, insProductItem));
+ .eq(DataConfig::getInspectionItem, inspectionItem)
+ .eq(DataConfig::getInspectionItemSubclass, inspectionItemSubclass));
return Result.success(list);
} else {
return Result.success(dataConfigService.selectDataConfigList(deviceId));
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 779fce1..311ff58 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
@@ -40,7 +40,7 @@
@ValueTableShow(8)
@ApiModelProperty(value = "妫�楠岄」瀛愰」")
- private String inspectionItemSubClass;
+ private String inspectionItemSubclass;
@ValueTableShow(9)
@ApiModelProperty(value = "鍏紡")
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
index 8635854..572a1aa 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
@@ -9,6 +9,7 @@
import org.apache.ibatis.annotations.Param;
import java.util.List;
+import java.util.Map;
/**
* 璁惧(Device)琛ㄦ暟鎹簱璁块棶灞�
@@ -33,6 +34,6 @@
IPage<DeviceDto> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceDto> queryWrappers);
- List<String> getInspectionItemSubclass(@Param("id") Integer id);
+ List<Map<String, Object>> getInspectionItemSubclass(@Param("id") Integer id);
}
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 a501281..50ac66b 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
@@ -1,6 +1,7 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -50,6 +51,13 @@
@ApiModelProperty("璁惧id")
private Integer deviceId;
- @ApiModelProperty("妫�楠岄」鐩悕绉�")
+ @ApiModelProperty("妫�楠岄」鐩�")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠岄」瀛愰」")
+ private String inspectionItemSubclass;
+
+ @TableField(exist = false)
+ @ApiModelProperty("妫�楠岄」瀛愰」")
private String insProductItem;
}
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 d8609a0..453ff9a 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
@@ -136,23 +136,30 @@
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(device.size() > 1) {
+ throw new ErrorException("IP锛�" + 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));
+ 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);
});
- String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode);
- hashMap.put("frequency", frequency);
- return Result.success(hashMap);
+ 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);
}
}
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 d4e249a..3f15b84 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,7 +10,6 @@
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;
@@ -30,12 +29,11 @@
/**
* 鏁伴噰鍏ュ彛
*
- * @param request
* @param dataConfig
* @param device
* @return
*/
- public static Map<String, String> dataAcquisitionEntrance(HttpServletRequest request, List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip) {
+ public static Map<String, String> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip) {
String http = HTTP + ip + GETFILE + "?filePath=" + device.getCollectUrl() + "&fileExtension=" + device.getFileType();
String result = null;
try {
@@ -54,7 +52,11 @@
} else {
String data = jsonObject.get("data").toString();
// 鑰冭檻鍒颁竴涓娴嬮」鍙兘浼氬瓨鍦ㄥ涓暟閲囬厤缃紝鎵�浠ラ渶瑕佽繘琛屽垎缁�
- Map<String, List<DataConfig>> userMap = dataConfig.stream().collect(Collectors.groupingBy(DataConfig::getInsProductItem));
+ Map<String, List<DataConfig>> userMap = dataConfig.stream()
+ .peek(i -> i.setInsProductItem(
+ i.getInspectionItem().equals(i.getInspectionItemSubclass()) ? i.getInspectionItem() + "," : i.getInspectionItem() + "," + i.getInspectionItemSubclass()
+ ))
+ .collect(Collectors.groupingBy(DataConfig::getInsProductItem));
Map<String, String> map;
switch (device.getFileType()) {
case ".docx":
@@ -73,7 +75,7 @@
map = analysisMdb(data, userMap, entrustCode, sampleCode);
break;
case ".db":
- map = analysisDb(data, userMap);
+ map = analysisDb(data, userMap, entrustCode, sampleCode);
break;
case ".png":
map = readPngString(data, userMap);
@@ -113,7 +115,7 @@
* @param dataConfig
* @return
*/
- private static Map<String, String> analysisDb(String data, Map<String, List<DataConfig>> dataConfig) {
+ private static Map<String, String> analysisDb(String data, Map<String, List<DataConfig>> dataConfig, String entrustCode, String sampleCode) {
JSONObject jsonObject = JSON.parseObject(data);
JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString());
JSONArray columnList = JSONArray.parseArray(jsonObject.get("column").toString());
@@ -122,27 +124,14 @@
List<Object> list = new ArrayList<>();
for (int config = 0; config < v.size(); config++) {
String referx = getRefer(v.get(config).getReferx());
- int x = getXOrY(v.get(config).getX(), k, "X");
- int y = getXOrY(v.get(config).getY(), k, "Y");
- String key = "";
- for (int i = 0; i < columnList.size(); i++) {
- if (columnList.get(i).equals(referx)) {
- key = columnList.get(i + x).toString();
+ for (int i = 0; i < dataList.size(); i++) {
+ JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
+ if (entrustCode.equals(jsonObject1.get("ExtInfo_Value1"))) {
+ Object o = jsonObject1.get(referx);
+ if (ObjectUtils.isNotEmpty(o)) {
+ list.add(o);
+ }
}
- }
- JSONObject jsonObject1 = JSON.parseObject(dataList.get(y).toString());
- Object o = jsonObject1.get(key);
- if (ObjectUtils.isNotEmpty(o)) {
- // 灏忔暟鐐硅繘涓変綅
- double v1 = 0;
- try {
- v1 = Double.parseDouble(o.toString());
- double v2 = v1 / 1000;
- list.add(v2);
- } catch (NumberFormatException e) {
- list.add(o);
- }
-
}
}
// 杩涜鍏紡璁$畻
@@ -168,17 +157,10 @@
List<Object> list = new ArrayList<>();
for (int config = 0; config < v.size(); config++) {
String referx = getRefer(v.get(config).getReferx());
- int x = getXOrY(v.get(config).getX(), k, "X");
- String key = "";
- for (int i = 0; i < columnList.size(); i++) {
- if (columnList.get(i).equals(referx)) {
- key = columnList.get(i + x).toString();
- }
- }
for (int i = 0; i < dataList.size(); i++) {
JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString());
if (entrustCode.equals(jsonObject1.get("OrderNumber")) && sampleCode.equals(jsonObject1.get("SampleNumber"))) {
- Object o = jsonObject1.get(key);
+ Object o = jsonObject1.get(referx);
if (ObjectUtils.isNotEmpty(o)) {
list.add(o);
}
diff --git a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
index 7701b02..e8b009f 100644
--- a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml
@@ -32,7 +32,8 @@
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.ins_product_item
+ ip.inspection_item) = ddc.inspection_item_subclass and
+ ip.inspection_item = ddc.inspection_item
where d.id = #{deviceId}
</select>
</mapper>
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index 60660a3..be1391a 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -3,7 +3,6 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMapper">
-
<select id="selectDeviceParameter" resultType="com.yuanchu.mom.pojo.Device">
select * from(
select id,
@@ -118,9 +117,10 @@
</if>
</select>
- <select id="getInspectionItemSubclass" resultType="java.lang.String">
- SELECT if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '',
- ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass FROM ins_product ip
+ <select id="getInspectionItemSubclass" resultType="map">
+ SELECT 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
+ FROM ins_product ip
where ip.ins_sample_id = #{id}
</select>
</mapper>
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
index 57a0348..a093759 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
@@ -54,5 +54,7 @@
String seldepLimsId(int depLimsId);
- Map<String, Object> getDeviceMessage(@Param("ip")String ip, @Param("inspectionItem") String inspectionItem);
+ Map<String, Object> getDeviceMessage(@Param("ip")String ip,
+ @Param("inspectionItem") String inspectionItem,
+ @Param("inspectionItemSubclass") String inspectionItemSubclass);
}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 8c51007..1042321 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -219,8 +219,8 @@
// 闃叉鍥炵幆鍦板潃鍙樹负IPv6
String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress;
insProducts.forEach(i -> {
- Map<String, Object> devices = baseMapper.getDeviceMessage(ip, i.getInspectionItem());
- if (ObjectUtils.isNotEmpty(devices)) {
+ Map<String, Object> devices = baseMapper.getDeviceMessage(ip, i.getInspectionItem(), i.getInspectionItemSubclass());
+ if (ObjectUtils.isNotEmpty(devices) && (ObjectUtils.isNotEmpty(devices.get("file_type")) || ObjectUtils.isNotEmpty(devices.get("collect_url")))) {
InsProductResult insProductResult = i.getInsProductResult();
List<Object> list = new ArrayList<>();
Map<Object, Object> hashMap = new HashMap<>();
@@ -237,7 +237,6 @@
});
return insProducts;
}
-
@Override
public List<String> checkSubmitPlan(Integer orderId, String laboratory) {
List<String> collect = new ArrayList<>();
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 6f450e0..d17440c 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -458,10 +458,16 @@
</select>
<select id="getDeviceMessage" resultType="java.util.Map">
- select d.*
- from device d, structure_item_parameter sip
+ select d.device_name, d.management_number
+ FROM
+ device d,
+ structure_item_parameter sip
where d.ip = #{ip}
and sip.inspection_item = #{inspectionItem}
- limit 1
+ <if test="inspectionItemSubclass != '' and inspectionItemSubclass != null">
+ and sip.inspection_item_subclass = #{inspectionItemSubclass}
+ </if>
+ and d.device_status = 0
+ and d.ins_product_ids is not null
</select>
</mapper>
--
Gitblit v1.9.3