From a427a998e42c30817da54fd8ae9dc1a1f7072f5f Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 03 三月 2025 10:27:30 +0800
Subject: [PATCH] 修改设备问题

---
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java       |    2 
 cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml                       |    2 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java               |   39 +++++++++
 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java                           |   29 +++++++
 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java                   |    9 ++
 cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java                |    7 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java |   72 +++++++++---------
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java        |   11 ++
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java           |   35 ++++++++
 9 files changed, 168 insertions(+), 38 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
index d77575d..183ede5 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceAcceptanceController.java
@@ -126,7 +126,7 @@
      * @return
      */
     @ApiOperation(value = "璁惧楠屾敹闄勪欢鍒犻櫎")
-    @GetMapping("/delDeviceAcceptanceFileList")
+    @DeleteMapping("/delDeviceAcceptanceFileList")
     public Result delDeviceAcceptanceFileList(Integer acceptanceFileId){
         return Result.success(deviceAcceptanceFileService.removeById(acceptanceFileId));
     }
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java
new file mode 100644
index 0000000..82dcefd
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricController.java
@@ -0,0 +1,35 @@
+package com.ruoyi.device.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.device.pojo.DeviceMetric;
+import com.ruoyi.device.service.IDeviceMetricService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/deviceMetrics")
+public class DeviceMetricController {
+
+    @Autowired
+    private IDeviceMetricService deviceMetricService;
+
+    @PostMapping("/saveOrUpdateDeviceMetric")
+    public Result create(@RequestBody DeviceMetric deviceMetric) {
+        return Result.success(deviceMetricService.saveOrUpdate(deviceMetric));
+    }
+
+    @GetMapping("/selectDeviceMetric")
+    public Result read(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type) {
+        return Result.success(deviceMetricService.list(Wrappers.<DeviceMetric>lambdaQuery()
+                .eq(DeviceMetric::getDeviceId,deviceId)
+                .eq(DeviceMetric::getType,type)));
+    }
+
+    @DeleteMapping("/deleteDeviceMetrics")
+    public Result delete(@RequestParam("id") Integer id) {
+      return   Result.success(deviceMetricService.removeById(id));
+    }
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java
new file mode 100644
index 0000000..6304f16
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.device.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.device.pojo.DeviceMetric;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DeviceMetricMapper extends BaseMapper<DeviceMetric> {
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java
new file mode 100644
index 0000000..d7a5869
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetric.java
@@ -0,0 +1,29 @@
+package com.ruoyi.device.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("device_metrics")
+public class DeviceMetric implements Serializable {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id; //id
+    private Integer deviceId;            // 璁惧ID
+    private String measurementParameter; // 璁¢噺鍙傛暟
+    private String rangeOfMeasurement;   // 閲忕▼鑼冨洿
+    private String maxPermissibleError;  // 鏈�澶у厑璁歌宸�
+    private String judgmentCriteria;     // 鍒ゅ畾鏍囧噯
+    private String createdBy;           // 鍒涘缓浜�
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime creationTime;      // 鍒涘缓鏃堕棿
+
+    @ApiModelProperty("calibrate锛氭牎鍑嗭紱examine锛氭牳鏌�")
+    private String type; // 绫诲瀷
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java b/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java
new file mode 100644
index 0000000..fc6ed49
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/IDeviceMetricService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.device.pojo.DeviceMetric;
+
+public interface IDeviceMetricService extends IService<DeviceMetric> {
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java
new file mode 100644
index 0000000..adfffd7
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricServiceImpl.java
@@ -0,0 +1,11 @@
+package com.ruoyi.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.device.mapper.DeviceMetricMapper;
+import com.ruoyi.device.pojo.DeviceMetric;
+import com.ruoyi.device.service.IDeviceMetricService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DeviceMetricServiceImpl extends ServiceImpl<DeviceMetricMapper, DeviceMetric> implements IDeviceMetricService {
+}
diff --git a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
index fca2d48..2f8aac5 100644
--- a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
@@ -11,7 +11,7 @@
             ${ew.customSqlSegment}
         </if>
     </select>
-    <select id="selectMaintenancePlanById" resultType="com.ruoyi.device.pojo.DeviceMaintenancePlan">
+    <select id="selectMaintenancePlanById" resultType="com.ruoyi.device.dto.DeviceMaintenancePlanDto">
         select
             dmp.*,
             date_format(dmp.date_preparation, '%Y-%m-%d') as datePreparationStr,
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
index f6c966a..98a8763 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDateTimeSerializerConfig.java
@@ -1,36 +1,36 @@
-package com.ruoyi.framework.config;
-
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-@Configuration
-public class LocalDateTimeSerializerConfig {
-    @Value("${spring.jackson.date-format}")
-    private String pattern;
-
-    @Bean
-    public LocalDateTimeSerializer localDateTimeSerializer() {
-        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
-    }
-
-    @Bean
-    public LocalDateTimeDeserializer localDateTimeDeserializer() {
-        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(pattern));
-    }
-
-    @Bean
-    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
-        return builder -> {
-            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
-            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
-            builder.simpleDateFormat(pattern);
-        };
-    }
-}
+//package com.ruoyi.framework.config;
+//
+//import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+//import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import java.time.LocalDateTime;
+//import java.time.format.DateTimeFormatter;
+//
+//@Configuration
+//public class LocalDateTimeSerializerConfig {
+//    @Value("${spring.jackson.date-format}")
+//    private String pattern;
+//
+//    @Bean
+//    public LocalDateTimeSerializer localDateTimeSerializer() {
+//        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
+//    }
+//
+//    @Bean
+//    public LocalDateTimeDeserializer localDateTimeDeserializer() {
+//        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(pattern));
+//    }
+//
+//    @Bean
+//    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+//        return builder -> {
+//            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
+//            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
+//            builder.simpleDateFormat(pattern);
+//        };
+//    }
+//}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
index fb42e5f..d6e6f9e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
@@ -1,12 +1,25 @@
 package com.ruoyi.framework.config;
 
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.CacheControl;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 import org.springframework.web.filter.CorsFilter;
@@ -82,4 +95,30 @@
         // 杩斿洖鏂扮殑CorsFilter
         return new CorsFilter(source);
     }
+
+    // 鍏ㄥ眬鏍煎紡鍖栧鐞�
+    @Override
+    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
+        String dateFormat = "yyyy-MM-dd HH:mm:ss";
+
+        Jackson2ObjectMapperBuilder json = Jackson2ObjectMapperBuilder.json();
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+
+        //localDateTime鏍煎紡鍖�
+        JavaTimeModule module = new JavaTimeModule();
+        LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateFormat));
+        LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateFormat));
+        module.addDeserializer(LocalDateTime.class, dateTimeDeserializer);
+        module.addSerializer(LocalDateTime.class, dateTimeSerializer);
+        ObjectMapper objectMapper = json.modules(module)
+                .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build();
+
+        //date鏃堕棿鏍煎紡鍖�
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        objectMapper.setDateFormat(new SimpleDateFormat(dateFormat.split(" ")[0]));
+
+        // 璁剧疆鏍煎紡鍖栧唴瀹�
+        converter.setObjectMapper(objectMapper);
+        converters.add(0, converter);
+    }
 }

--
Gitblit v1.9.3