From 74205424049d169a8d3bbabb74b4c8c9adf1ec99 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期六, 15 二月 2025 16:05:51 +0800
Subject: [PATCH] 设备列表查询接口修改

---
 cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java            |    2 +
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java |   38 ++++++++++++++++++-
 cnas-server/src/main/resources/mapper/DeviceMapper.xml                        |   18 +++++++++
 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java                  |   20 ++++++++++
 cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java    |    4 +-
 cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java          |    2 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java                    |    9 ++++
 7 files changed, 88 insertions(+), 5 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 a266330..959a9a5 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
@@ -153,8 +153,8 @@
     @ApiOperation(value = "閫氳繃璁惧缂栧彿鑾峰彇璁惧鍒楄〃")
     @GetMapping("/selectDeviceByCode")
     @ValueAuth
-    public Result selectDeviceByCode(String code) {
-        return Result.success(deviceService.selectDeviceByCode(code));
+    public Result selectDeviceByCode(Integer id) {
+        return Result.success(deviceService.selectDeviceByCode(id));
     }
 
     @ValueAuth
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
index 5963016..2295cbf 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
@@ -7,6 +7,8 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.time.LocalDateTime;
+
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
@@ -23,4 +25,22 @@
     @ValueTableShow(13)
     @ApiModelProperty(value = "妫�楠岄」鐩�")
     private String insProductItem;
+
+
+    @ApiModelProperty(value = "绠$悊浜哄鍚�")
+    private String equipmentManagerName;
+
+    @ApiModelProperty(value = "琚巿鏉冧汉濮撳悕")
+    private String authorizedPersonName;
+
+    @ApiModelProperty(value = "鏍稿噯璇佷功缂栧彿")
+    private String calibrateNo;
+
+    @ValueTableShow(value = 15, name = "鏈�杩戞牎鍑嗘棩鏈�")
+    @ApiModelProperty(value = "鏈�杩戞牎鍑嗘棩鏈�")
+    private LocalDateTime lastCalibrationDateTwo;
+
+    @ValueTableShow(value = 16, name = "涓嬫鏍″噯鏃ユ湡")
+    @ApiModelProperty(value = "涓嬫鏍″噯鏃ユ湡")
+    private LocalDateTime nextCalibrationDateTwo;
 }
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 74c00ee..f7e0f7d 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
@@ -37,5 +37,7 @@
     List<Map<String, Object>> getInspectionItemSubclass(@Param("id") Integer id);
 
     List<Map<String, Object>> treeDevice(@Param("deviceName") String deviceName);
+
+    DeviceDto selectDeviceByCode(Integer id);
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
index 2237bc8..5f2b5b1 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
@@ -143,4 +143,13 @@
 
     @ApiModelProperty("鏁伴噰-db锛宮db鏂囦欢鍚嶇О")
     private String dbFileName;
+
+    @ApiModelProperty("琚巿鏉冧汉")
+    private String authorizedPerson;
+
+    @ApiModelProperty("璧勪骇缂栫爜")
+    private String assetCode;
+
+    @ApiModelProperty("浜у湴")
+    private String origin;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
index 972f6d8..707b560 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -38,7 +38,7 @@
 
     List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass);
 
-    Device selectDeviceByCode(String code);
+    Device selectDeviceByCode(Integer id);
 
     Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode);
 
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 9d198bb..f1723fd 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,6 +1,7 @@
 package com.yuanchu.mom.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -23,6 +24,7 @@
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.vo.Result;
 import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,6 +36,7 @@
 import java.io.OutputStream;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -52,12 +55,16 @@
 
     private DeviceMapper deviceMapper;
 
+    private EnumServiceImpl enumService;
+
     private UserMapper userMapper;
 
     private StructureItemParameterMapper structureItemParameterMapper;
 
     @Autowired
     private DataConfigService dataConfigService;
+
+    private QrShowServiceImpl qrShowService;
 
     private InsSampleMapper insSampleMapper;
 
@@ -166,8 +173,35 @@
     }
 
     @Override
-    public Device selectDeviceByCode(String code) {
-        return deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getFactoryNo, code).last("limit 1"));
+    public Device selectDeviceByCode(Integer id) {
+        DeviceDto deviceDto = deviceMapper.selectDeviceByCode(id);
+        List<Integer> ids = new ArrayList<>();
+        if (Strings.isNotEmpty(deviceDto.getAuthorizedPerson())) {
+            if (deviceDto.getAuthorizedPerson().equals("null")) {
+                deviceDto.setAuthorizedPerson("[]");
+            }
+            ids = JSON.parseArray(deviceDto.getAuthorizedPerson(), Integer.class);
+        }
+        String name = "";
+        if (!ids.isEmpty()) {
+            name = userMapper.selectBatchIds(ids).stream().map(User::getName).collect(Collectors.joining(","));
+        }
+        deviceDto.setAuthorizedPersonName(name);
+        //鏌ヨ璁惧鏍″噯淇℃伅
+        DeviceMetricRecord calibrate = qrShowService.getDeviceMetricRecord(id, "calibrate");
+        //deviceDto.setCalibrationDate(qrShowService.formatDate(calibrate.getCalibrationDate(),"yyyy-MM-dd"));
+        deviceDto.setCalibrateNo(calibrate.getCertificateSerialNumber());
+
+        // 鍒颁簡鍋滅敤鏃ユ湡锛岃嚜鍔ㄥ皢鐘舵�佹敼涓哄仠鐢�
+        if (deviceDto.getNextCalibrationDate() != null) {
+            if (LocalDateTime.now().isAfter(deviceDto.getNextCalibrationDate())) {
+                List<Enums> enums = enumService.selectEnumByCategory("璁惧鐘舵��");
+                List<Enums> status = enums.stream().filter(item -> item.getLabel().equals("鍋滅敤")).collect(Collectors.toList());
+                deviceDto.setDeviceStatus(Integer.parseInt(status.get(0).getValue()));
+                deviceMapper.updateById(deviceDto);
+            }
+        }
+        return deviceDto;
     }
 
     @Override
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index f4c9e77..6d1de4a 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -165,4 +165,22 @@
         </where>
         order by l.laboratory_name desc, d.large_category desc
     </select>
+    <select id="selectDeviceByCode" resultType="com.yuanchu.mom.dto.DeviceDto">
+        SELECT d.*,
+               GROUP_CONCAT(DISTINCT inspection_item SEPARATOR ';') AS ins_product_item,
+               l.laboratory_name,
+               u1.name                                                 equipmentManager_name,
+               u2.name                                                 authorized_person_name
+        FROM device d
+                 LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids)
+                 LEFT JOIN laboratory l ON d.subordinate_departments_id = l.id
+                 LEFT JOIN user u1 ON u1.id = d.equipment_manager
+                 LEFT JOIN user u2 ON u2.id = d.authorized_person
+        WHERE d.id = #{id}
+
+        GROUP BY d.id,
+                 l.laboratory_name,
+                 u1.name,
+                 u2.name
+    </select>
 </mapper>

--
Gitblit v1.9.3