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