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