diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT - + ,monitorName,DEPT_ID,lineName FROM bus_plan bp + JOIN ( + SELECT line_name AS lineName,monitor_id + FROM bus_obserpoi_info + WHERE 1=1 + + and LINE_NUM = #{busPlan.lineNum} + + + and MONITOR_ID = #{busPlan.monitorId} + + )boi ON bp.monitor_id=boi.monitor_id AND bp.LINE_NUM=boi.lineName + JOIN ( + SELECT MONITOR_NAME AS monitorName,station_id,id + FROM bus_monipoi_info + WHERE VALID=1 + + and MONITOR_ID = #{busPlan.monitorId} + + )bmi ON bp.monitor_id=bmi.id + JOIN( + SELECT DEPT_ID,id + FROM bus_station_info + WHERE VALID=1 + )bsi ON bsi.id=bmi.station_id WHERE 1=1 and bp.LINE_NUM = #{busPlan.lineNum} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java index 2f3b874..d7b572b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java @@ -98,6 +98,12 @@ @TableField(exist = false) private String statusName; + @TableField(exist = false) + private String monitorName; + + @TableField(exist = false) + private String lineName; + @Override public String toString() { diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT - + ,monitorName,DEPT_ID,lineName FROM bus_plan bp + JOIN ( + SELECT line_name AS lineName,monitor_id + FROM bus_obserpoi_info + WHERE 1=1 + + and LINE_NUM = #{busPlan.lineNum} + + + and MONITOR_ID = #{busPlan.monitorId} + + )boi ON bp.monitor_id=boi.monitor_id AND bp.LINE_NUM=boi.lineName + JOIN ( + SELECT MONITOR_NAME AS monitorName,station_id,id + FROM bus_monipoi_info + WHERE VALID=1 + + and MONITOR_ID = #{busPlan.monitorId} + + )bmi ON bp.monitor_id=bmi.id + JOIN( + SELECT DEPT_ID,id + FROM bus_station_info + WHERE VALID=1 + )bsi ON bsi.id=bmi.station_id WHERE 1=1 and bp.LINE_NUM = #{busPlan.lineNum} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java index 2f3b874..d7b572b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusPlan.java @@ -98,6 +98,12 @@ @TableField(exist = false) private String statusName; + @TableField(exist = false) + private String monitorName; + + @TableField(exist = false) + private String lineName; + @Override public String toString() { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index fe7df27..75c1df2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -136,7 +136,6 @@ @Override public List pageList(Page page, BusPlan busPlan) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); List busPlanList =this.baseMapper.pageList(page,busPlan,dataScope); diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml index 00be05f..278c4ef 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusStationInfoMapper.xml @@ -19,6 +19,7 @@ diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT id,station_name AS "stationName" FROM bus_station_info + WHERE valid=0 diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java index bf8ba12..71d5e34 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java @@ -15,7 +15,7 @@ // 监控点Id - private Long monitorId; + private String monitorId; // 路线编号 private Long lineNum; diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT id,station_name AS "stationName" FROM bus_station_info + WHERE valid=0 diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java index bf8ba12..71d5e34 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java @@ -15,7 +15,7 @@ // 监控点Id - private Long monitorId; + private String monitorId; // 路线编号 private Long lineNum; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java index 676c08c..4b1c511 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; import com.casic.missiles.modular.system.dto.station.StationPointList; import com.casic.missiles.modular.system.dto.station.StationStateStatisticsVO; import com.casic.missiles.modular.system.model.BusStationInfo; import com.casic.missiles.modular.system.dao.BusStationInfoMapper; +import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.modular.system.service.IBusStationInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; @@ -30,8 +34,10 @@ public class BusStationInfoServiceImpl extends ServiceImpl implements IBusStationInfoService { private final AbstractPermissionContext permissionContext; + private final IBusMonipoiInfoService busMonipoiInfoService; @Override + public List stationList() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); @@ -68,6 +74,10 @@ @Override public ResponseData deleteStation(Long busStationInfoId) { + List monitorPointLists=busMonipoiInfoService.monitorList(busStationInfoId); + if(CollectionUtils.isNotEmpty(monitorPointLists)){ + throw new BusinessException(BusinessExceptionEnum.DEVICE_BOUND_FAILED); + } int deleteFlag = this.baseMapper.deleteById(busStationInfoId); if (deleteFlag > 0) { return ResponseData.success(); @@ -76,7 +86,7 @@ } @Override - public List statisticsStatus(){ + public List statisticsStatus() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); List stateStatisticsVOS = this.baseMapper.statisticsStatus(dataScope); diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT id,station_name AS "stationName" FROM bus_station_info + WHERE valid=0 diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java index bf8ba12..71d5e34 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java @@ -15,7 +15,7 @@ // 监控点Id - private Long monitorId; + private String monitorId; // 路线编号 private Long lineNum; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java index 676c08c..4b1c511 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; import com.casic.missiles.modular.system.dto.station.StationPointList; import com.casic.missiles.modular.system.dto.station.StationStateStatisticsVO; import com.casic.missiles.modular.system.model.BusStationInfo; import com.casic.missiles.modular.system.dao.BusStationInfoMapper; +import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.modular.system.service.IBusStationInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; @@ -30,8 +34,10 @@ public class BusStationInfoServiceImpl extends ServiceImpl implements IBusStationInfoService { private final AbstractPermissionContext permissionContext; + private final IBusMonipoiInfoService busMonipoiInfoService; @Override + public List stationList() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); @@ -68,6 +74,10 @@ @Override public ResponseData deleteStation(Long busStationInfoId) { + List monitorPointLists=busMonipoiInfoService.monitorList(busStationInfoId); + if(CollectionUtils.isNotEmpty(monitorPointLists)){ + throw new BusinessException(BusinessExceptionEnum.DEVICE_BOUND_FAILED); + } int deleteFlag = this.baseMapper.deleteById(busStationInfoId); if (deleteFlag > 0) { return ResponseData.success(); @@ -76,7 +86,7 @@ } @Override - public List statisticsStatus(){ + public List statisticsStatus() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); List stateStatisticsVOS = this.baseMapper.statisticsStatus(dataScope); diff --git a/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java new file mode 100644 index 0000000..378a21b --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -0,0 +1,144 @@ +package com.casic.missiles.config; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.serializer.SerializeConfig; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ToStringSerializer; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.alibaba.fastjson.support.config.FastJsonConfig; +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import com.casic.missiles.config.properties.CasicProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + + +@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) +@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +@Configuration +class WebMvcConfig extends WebMvcConfigurationSupport { + @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") + private String locale; + + public WebMvcConfig() { + } + + @Autowired + private CasicProperties casicProperties; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 + registry.addResourceHandler("swagger-ui.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations( + "classpath:/META-INF/resources/webjars/"); + registry.addResourceHandler("doc.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/favicon.ico").addResourceLocations( + "classpath:/META-INF/resources/"); + if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { + registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); + } + super.addResourceHandlers(registry); + } + + @Override + public LocaleResolver localeResolver() { + CookieLocaleResolver slr = new CookieLocaleResolver(); + //设置默认区域,Locale.SIMPLIFIED_CHINESE + switch (locale) { + case "US": + slr.setDefaultLocale(Locale.US); + break; + default: + slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); + } + //设置cookie有效期. + slr.setCookieMaxAge(3600); + return slr; + } + + @Override + public void configureMessageConverters(List> converters) { + Iterator> iterator = converters.iterator(); + //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 + while (iterator.hasNext()) { + HttpMessageConverter converter = iterator.next(); + if (converter instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + } + } + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + converter.setFastJsonConfig(fastjsonConfig()); + converter.setSupportedMediaTypes(getSupportedMediaType()); + converters.add(converter); + } + + /** + * fastjson的配置 + */ + public FastJsonConfig fastjsonConfig() { + FastJsonConfig fastJsonConfig = new FastJsonConfig(); + fastJsonConfig.setSerializerFeatures( + SerializerFeature.PrettyFormat, + SerializerFeature.WriteMapNullValue, + SerializerFeature.WriteEnumUsingToString + ); + //修改,设置全局时间为精确到天,页面列表显示不带时分秒 + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +// fastJsonConfig.setDateFormat("yyyy-MM-dd"); + ValueFilter valueFilter = new ValueFilter() { + @Override + public Object process(Object o, String s, Object o1) { + if (null == o1) { + o1 = ""; + } + return o1; + } + }; + fastJsonConfig.setCharset(Charset.forName("utf-8")); + fastJsonConfig.setSerializeFilters(valueFilter); + + //解决Long转json精度丢失的问题 + SerializeConfig serializeConfig = SerializeConfig.globalInstance; + serializeConfig.put(BigInteger.class, ToStringSerializer.instance); + serializeConfig.put(Long.class, ToStringSerializer.instance); + serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); + fastJsonConfig.setSerializeConfig(serializeConfig); + return fastJsonConfig; + } + + /** + * 支持的mediaType类型 + */ + public List getSupportedMediaType() { + ArrayList mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + + return mediaTypes; + } + +} + diff --git a/casic-common/pom.xml b/casic-common/pom.xml index a47c616..189aaef 100644 --- a/casic-common/pom.xml +++ b/casic-common/pom.xml @@ -16,13 +16,6 @@ casic 的工具包 - - - com.casic - casic-core - ${core.version} - provided - com.casic casic-admin-support @@ -40,6 +33,13 @@ ${boot.version} provided + + + com.casic + casic-core + ${core.version} + provided + org.apache.mina diff --git a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java index 4f4ec87..ad28b5e 100644 --- a/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java +++ b/casic-common/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -1,143 +1,146 @@ -package com.casic.missiles.config; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.serializer.ToStringSerializer; -import com.alibaba.fastjson.serializer.ValueFilter; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.casic.missiles.config.properties.CasicProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; -import org.springframework.web.servlet.i18n.CookieLocaleResolver; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - - -@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) -@ConditionalOnClass(com.alibaba.fastjson.JSON.class) -@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) -@Configuration -class WebMvcConfig extends WebMvcConfigurationSupport { - @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") - private String locale; - - public WebMvcConfig() { - } - - @Autowired - private CasicProperties casicProperties; - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 - registry.addResourceHandler("swagger-ui.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/webjars/**").addResourceLocations( - "classpath:/META-INF/resources/webjars/"); - registry.addResourceHandler("doc.html").addResourceLocations( - "classpath:/META-INF/resources/"); - registry.addResourceHandler("/favicon.ico").addResourceLocations( - "classpath:/META-INF/resources/"); - if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { - registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); - } - super.addResourceHandlers(registry); - } - - @Override - public LocaleResolver localeResolver() { - CookieLocaleResolver slr = new CookieLocaleResolver(); - //设置默认区域,Locale.SIMPLIFIED_CHINESE - switch (locale) { - case "US": - slr.setDefaultLocale(Locale.US); - break; - default: - slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); - } - //设置cookie有效期. - slr.setCookieMaxAge(3600); - return slr; - } - - @Override - public void configureMessageConverters(List> converters) { - Iterator> iterator = converters.iterator(); - //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 - while (iterator.hasNext()) { - HttpMessageConverter converter = iterator.next(); - if (converter instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(fastjsonConfig()); - converter.setSupportedMediaTypes(getSupportedMediaType()); - converters.add(converter); - } - - /** - * fastjson的配置 - */ - public FastJsonConfig fastjsonConfig() { - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setSerializerFeatures( - SerializerFeature.PrettyFormat, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteEnumUsingToString - ); - //修改,设置全局时间为精确到天,页面列表显示不带时分秒 - fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); -// fastJsonConfig.setDateFormat("yyyy-MM-dd"); - ValueFilter valueFilter = new ValueFilter() { - @Override - public Object process(Object o, String s, Object o1) { - if (null == o1) { - o1 = ""; - } - return o1; - } - }; - fastJsonConfig.setCharset(Charset.forName("utf-8")); - fastJsonConfig.setSerializeFilters(valueFilter); - - //解决Long转json精度丢失的问题 - SerializeConfig serializeConfig = SerializeConfig.globalInstance; - serializeConfig.put(BigInteger.class, ToStringSerializer.instance); - serializeConfig.put(Long.class, ToStringSerializer.instance); - serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); -// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); - fastJsonConfig.setSerializeConfig(serializeConfig); - return fastJsonConfig; - } - - /** - * 支持的mediaType类型 - */ - public List getSupportedMediaType() { - ArrayList mediaTypes = new ArrayList<>(); - mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - - return mediaTypes; - } - -} - +//package com.casic.missiles.config; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.serializer.SerializeConfig; +//import com.alibaba.fastjson.serializer.SerializerFeature; +//import com.alibaba.fastjson.serializer.ToStringSerializer; +//import com.alibaba.fastjson.serializer.ValueFilter; +//import com.alibaba.fastjson.support.config.FastJsonConfig; +//import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +//import com.casic.missiles.config.properties.CasicProperties; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +//import org.springframework.web.servlet.i18n.CookieLocaleResolver; +// +//import java.math.BigDecimal; +//import java.math.BigInteger; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.List; +//import java.util.Locale; +// +// +//@ServletComponentScan("com.casic.missiles.config") +//@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +//@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +//@Configuration +//class WebMvcConfig extends WebMvcConfigurationSupport { +// @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") +// private String locale; +// +// public WebMvcConfig() { +// } +// +// @Autowired +// private CasicProperties casicProperties; +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 +// registry.addResourceHandler("swagger-ui.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/webjars/**").addResourceLocations( +// "classpath:/META-INF/resources/webjars/"); +// registry.addResourceHandler("doc.html").addResourceLocations( +// "classpath:/META-INF/resources/"); +// registry.addResourceHandler("/favicon.ico").addResourceLocations( +// "classpath:/META-INF/resources/"); +// if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { +// registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); +// } +// System.out.println("-----------2-------"); +// super.addResourceHandlers(registry); +// } +// +// @Override +// public LocaleResolver localeResolver() { +// CookieLocaleResolver slr = new CookieLocaleResolver(); +// //设置默认区域,Locale.SIMPLIFIED_CHINESE +// switch (locale) { +// case "US": +// slr.setDefaultLocale(Locale.US); +// break; +// default: +// slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); +// } +// //设置cookie有效期. +// slr.setCookieMaxAge(3600); +// return slr; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// Iterator> iterator = converters.iterator(); +// //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 +// while (iterator.hasNext()) { +// HttpMessageConverter converter = iterator.next(); +// if (converter instanceof MappingJackson2HttpMessageConverter) { +// iterator.remove(); +// } +// } +// System.out.println("-----------1-------"); +// FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); +// converter.setFastJsonConfig(fastjsonConfig()); +// converter.setSupportedMediaTypes(getSupportedMediaType()); +// converters.add(converter); +// } +// +// /** +// * fastjson的配置 +// */ +// public FastJsonConfig fastjsonConfig() { +// FastJsonConfig fastJsonConfig = new FastJsonConfig(); +// fastJsonConfig.setSerializerFeatures( +// SerializerFeature.PrettyFormat, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteEnumUsingToString +// ); +// //修改,设置全局时间为精确到天,页面列表显示不带时分秒 +// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +//// fastJsonConfig.setDateFormat("yyyy-MM-dd"); +// ValueFilter valueFilter = new ValueFilter() { +// @Override +// public Object process(Object o, String s, Object o1) { +// if (null == o1) { +// o1 = ""; +// } +// return o1; +// } +// }; +// fastJsonConfig.setCharset(Charset.forName("utf-8")); +// fastJsonConfig.setSerializeFilters(valueFilter); +// +// //解决Long转json精度丢失的问题 +// SerializeConfig serializeConfig = SerializeConfig.globalInstance; +// serializeConfig.put(BigInteger.class, ToStringSerializer.instance); +// serializeConfig.put(Long.class, ToStringSerializer.instance); +// serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +//// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); +// fastJsonConfig.setSerializeConfig(serializeConfig); +// return fastJsonConfig; +// } +// +// /** +// * 支持的mediaType类型 +// */ +// public List getSupportedMediaType() { +// ArrayList mediaTypes = new ArrayList<>(); +// mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); +// +// return mediaTypes; +// } +// +//} +// diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index d76bfa8..98d07b2 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -9,6 +9,8 @@ ID_NULL(2400, "主键不能为空"), HANDLE_FAILED(500, "操作失败"), + + DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), CRUISE_NAME_DUPLICATE(2502, "巡航路径名称重复"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java index eb2d04d..27085b5 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/controller/BusPatrolLogController.java @@ -1,14 +1,18 @@ package com.casic.missiles.modular.system.controller; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusPatrolLogDTO; import com.casic.missiles.modular.system.model.BusPatrolLog; import com.casic.missiles.modular.system.service.IBusPatrolLogService; import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +39,10 @@ * 获取巡检日志分页列表 */ @RequestMapping(value = "/listPage") - public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO) throws IOException { + public Object listPage(@RequestBody @Valid BusPatrolLogDTO busPatrolLogDTO, BindingResult bindingResult) throws IOException { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ResponseData.success(super.packForBT(busPatrolLogService.patrolLogListPage(page, busPatrolLogDTO.getMonitorId(), busPatrolLogDTO.getStartTime(), busPatrolLogDTO.getEndTime()))); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java index d4edd84..e4aa1eb 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/service/impl/BusPatrolLogServiceImpl.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; @@ -33,12 +34,15 @@ * @since 2023-04-18 */ @Service -@AllArgsConstructor public class BusPatrolLogServiceImpl extends ServiceImpl implements IBusPatrolLogService { - private final AbstractPermissionContext permissionContext; - private final BusObserpoiInfoMapper obserpoiInfoMapper; + @Value("${casic.error-point}") + private Float endpoint; + @Autowired + private AbstractPermissionContext permissionContext; + @Autowired + private BusObserpoiInfoMapper obserpoiInfoMapper; @Override public Page patrolLogListPage(Page page, Long monitorId, String startTime, String endTime) throws IOException { @@ -49,11 +53,12 @@ if (CollectionUtils.isNotEmpty(obserpoiInfoList)) { for (BusObserpoiInfo busObserpoiInfo : obserpoiInfoList) { ElasticSearchQuery mustQuery = new ElasticSearchQuery(); - elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - 0.5, busObserpoiInfo.getDirection() + 0.5) - .rangeBool("pitch", busObserpoiInfo.getPitch() - 0.5, busObserpoiInfo.getPitch() + 0.5).builder()); + elasticSearchQuery.should(mustQuery.build().rangeBool("direction", busObserpoiInfo.getDirection() - endpoint, busObserpoiInfo.getDirection() + endpoint) + .rangeBool("pitch", busObserpoiInfo.getPitch() - endpoint, busObserpoiInfo.getPitch() + endpoint).builder()); } } elasticSearchQuery.endShould(); + elasticSearchQuery.term("monitorId", monitorId); elasticSearchQuery.range("logTime", startTime, endTime); elasticSearchQuery.sort("logTime", "DESC"); elasticSearchQuery.size(Integer.valueOf(String.valueOf(page.getSize()))); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java index ba81213..7462765 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusPlanController.java @@ -51,7 +51,6 @@ @RequestMapping(value = "/listPage") @ResponseBody public Object listPage(@RequestBody @Valid BusPlan busPlan) { - Page page = PageFactory.defaultPage(); List busPlanList = busPlanService.pageList(page, busPlan); page = page.setRecords(busPlanList); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml index 46ee10b..5ce849f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusPlanMapper.xml @@ -19,13 +19,37 @@ - ID AS id, MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts + bp.ID AS id, bp.MONITOR_ID AS monitorId, LINE_NUM AS lineNum, TASK_NAME AS taskName, BEGIN_DATE AS beginDate, END_DATE AS endDate, BEGIN_TIME AS beginTime, END_TIME AS endTime, STATUS AS status,TASK_STATUS AS taskStatus, UPDATE_TIME AS updateTime, TS AS ts SELECT id,station_name AS "stationName" FROM bus_station_info + WHERE valid=0 diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java index bf8ba12..71d5e34 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/BusObserpoiRequest.java @@ -15,7 +15,7 @@ // 监控点Id - private Long monitorId; + private String monitorId; // 路线编号 private Long lineNum; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java index 676c08c..4b1c511 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusStationInfoServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.monitor.MonitorPointList; import com.casic.missiles.modular.system.dto.station.StationPointList; import com.casic.missiles.modular.system.dto.station.StationStateStatisticsVO; import com.casic.missiles.modular.system.model.BusStationInfo; import com.casic.missiles.modular.system.dao.BusStationInfoMapper; +import com.casic.missiles.modular.system.service.IBusMonipoiInfoService; import com.casic.missiles.modular.system.service.IBusStationInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; @@ -30,8 +34,10 @@ public class BusStationInfoServiceImpl extends ServiceImpl implements IBusStationInfoService { private final AbstractPermissionContext permissionContext; + private final IBusMonipoiInfoService busMonipoiInfoService; @Override + public List stationList() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); @@ -68,6 +74,10 @@ @Override public ResponseData deleteStation(Long busStationInfoId) { + List monitorPointLists=busMonipoiInfoService.monitorList(busStationInfoId); + if(CollectionUtils.isNotEmpty(monitorPointLists)){ + throw new BusinessException(BusinessExceptionEnum.DEVICE_BOUND_FAILED); + } int deleteFlag = this.baseMapper.deleteById(busStationInfoId); if (deleteFlag > 0) { return ResponseData.success(); @@ -76,7 +86,7 @@ } @Override - public List statisticsStatus(){ + public List statisticsStatus() { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); dataScope.setScopeName("DEPT_ID"); List stateStatisticsVOS = this.baseMapper.statisticsStatus(dataScope); diff --git a/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java new file mode 100644 index 0000000..378a21b --- /dev/null +++ b/casic-web/src/main/java/com/casic/missiles/config/WebMvcConfig.java @@ -0,0 +1,144 @@ +package com.casic.missiles.config; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.serializer.SerializeConfig; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ToStringSerializer; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.alibaba.fastjson.support.config.FastJsonConfig; +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import com.casic.missiles.config.properties.CasicProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + + +@ServletComponentScan(basePackageClasses = {DefaultFastjsonConfig.class}) +@ConditionalOnClass(com.alibaba.fastjson.JSON.class) +@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) +@Configuration +class WebMvcConfig extends WebMvcConfigurationSupport { + @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") + private String locale; + + public WebMvcConfig() { + } + + @Autowired + private CasicProperties casicProperties; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 + registry.addResourceHandler("swagger-ui.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**").addResourceLocations( + "classpath:/META-INF/resources/webjars/"); + registry.addResourceHandler("doc.html").addResourceLocations( + "classpath:/META-INF/resources/"); + registry.addResourceHandler("/favicon.ico").addResourceLocations( + "classpath:/META-INF/resources/"); + if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { + registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); + } + super.addResourceHandlers(registry); + } + + @Override + public LocaleResolver localeResolver() { + CookieLocaleResolver slr = new CookieLocaleResolver(); + //设置默认区域,Locale.SIMPLIFIED_CHINESE + switch (locale) { + case "US": + slr.setDefaultLocale(Locale.US); + break; + default: + slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); + } + //设置cookie有效期. + slr.setCookieMaxAge(3600); + return slr; + } + + @Override + public void configureMessageConverters(List> converters) { + Iterator> iterator = converters.iterator(); + //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 + while (iterator.hasNext()) { + HttpMessageConverter converter = iterator.next(); + if (converter instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + } + } + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + converter.setFastJsonConfig(fastjsonConfig()); + converter.setSupportedMediaTypes(getSupportedMediaType()); + converters.add(converter); + } + + /** + * fastjson的配置 + */ + public FastJsonConfig fastjsonConfig() { + FastJsonConfig fastJsonConfig = new FastJsonConfig(); + fastJsonConfig.setSerializerFeatures( + SerializerFeature.PrettyFormat, + SerializerFeature.WriteMapNullValue, + SerializerFeature.WriteEnumUsingToString + ); + //修改,设置全局时间为精确到天,页面列表显示不带时分秒 + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); +// fastJsonConfig.setDateFormat("yyyy-MM-dd"); + ValueFilter valueFilter = new ValueFilter() { + @Override + public Object process(Object o, String s, Object o1) { + if (null == o1) { + o1 = ""; + } + return o1; + } + }; + fastJsonConfig.setCharset(Charset.forName("utf-8")); + fastJsonConfig.setSerializeFilters(valueFilter); + + //解决Long转json精度丢失的问题 + SerializeConfig serializeConfig = SerializeConfig.globalInstance; + serializeConfig.put(BigInteger.class, ToStringSerializer.instance); + serializeConfig.put(Long.class, ToStringSerializer.instance); + serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); +// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); + fastJsonConfig.setSerializeConfig(serializeConfig); + return fastJsonConfig; + } + + /** + * 支持的mediaType类型 + */ + public List getSupportedMediaType() { + ArrayList mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + + return mediaTypes; + } + +} + diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 705671d..11924bc 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -30,6 +30,7 @@ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 no-login-urls: /user/login,/kaptcha,/config/baseConfig + error-point: 0.5 config: export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\