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)); } 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)); } } 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> { } 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; // ç±»å } 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> { } 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 { } 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, 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); // }; // } //} 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); } }