瀏覽代碼

优化sql语句

18339543638 1 年之前
父節點
當前提交
5bdf66354d

+ 14 - 4
nb-common/config-common/src/main/java/com/nb/common/config/ConfigAutoConfiguration.java

@@ -1,9 +1,8 @@
 package com.nb.common.config;
 
-import com.nb.common.config.mybatisplus.MybatisPlusConfig;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.*;
 
 /**
  * @author lifang
@@ -15,4 +14,15 @@ import org.springframework.context.annotation.Import;
 @Configuration
 @ComponentScan("com.nb.common.config")
 public class ConfigAutoConfiguration {
+
+    @Bean
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper objectMapper(){
+        return new ObjectMapper();
+    }
+
+    @Bean(initMethod = "init")
+    public ObjectMapperConfig objectMapperConfig(ObjectMapper objectMapper){
+        return new ObjectMapperConfig(objectMapper);
+    }
 }

+ 79 - 0
nb-common/config-common/src/main/java/com/nb/common/config/ObjectMapperConfig.java

@@ -0,0 +1,79 @@
+package com.nb.common.config;
+
+import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.StringSerializer;
+import com.nb.common.config.serializer.BooleanToIntegerSerializer;
+import com.nb.common.config.serializer.EnumDeserializer;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+
+/**
+ * @ClassName : ObjectMapperConfig
+ * @Description :
+ * @Author : LF
+ * @Date: 2023年02月21日
+ */
+@Slf4j
+@AllArgsConstructor
+public class ObjectMapperConfig implements BeanPostProcessor {
+    private ObjectMapper objectMapper;
+
+    public void init(){
+        // 时间格式化
+        SerializerProvider serializerProvider = objectMapper.getSerializerProvider();
+        serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() {
+            @Override
+            public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+                gen.writeNull();
+            }
+        });
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+
+        SimpleModule booleanSimpleModule = new SimpleModule();
+        booleanSimpleModule.addSerializer(Boolean.class, new BooleanToIntegerSerializer());
+        booleanSimpleModule.addDeserializer(Boolean.class, new StdScalarDeserializer<Boolean>(Object.class) {
+            @Override
+            public Boolean deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+                String text = p.getText();
+                if (StrUtil.isBlank(text)) {
+                    return null;
+                }
+                String lowerCase = text.toLowerCase();
+                if("true".equals(lowerCase)||"1".equals(lowerCase)){
+                    return Boolean.TRUE;
+                }else if("false".equals(lowerCase)||"0".equals(lowerCase)){
+                    return Boolean.FALSE;
+                }
+                return null;
+            }
+        });
+
+        SimpleModule stringModule = new SimpleModule();
+        stringModule.addSerializer(String.class,new StringSerializer());
+        stringModule.addDeserializer(String.class, new StdScalarDeserializer<String>(String.class) {
+            @Override
+            public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+                String text = p.getText();
+                return StrUtil.isBlankIfStr(text)?null:text;
+            }
+        });
+        SimpleModule enumModule = new SimpleModule();
+        enumModule.addDeserializer(Enum.class, new EnumDeserializer());
+
+        objectMapper.registerModule(enumModule);
+        objectMapper.registerModule(stringModule);
+        objectMapper.registerModule(booleanSimpleModule);
+        log.info("初始化 objectMapper 自动配置");
+    }
+}

+ 5 - 75
nb-common/config-common/src/main/java/com/nb/common/config/WebAppMvcConfig.java

@@ -1,32 +1,18 @@
 package com.nb.common.config;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.StrUtil;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import com.fasterxml.jackson.databind.ser.std.StringSerializer;
-import com.nb.common.config.serializer.BooleanToIntegerSerializer;
-import com.nb.common.config.serializer.EnumDeserializer;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.AllArgsConstructor;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -35,16 +21,13 @@ import java.util.*;
  * @Date 2021/3/2 15:27
  * @Created by jianxiapc
  */
-@Configuration
+@AllArgsConstructor
 @EnableAutoConfiguration
-//@EnableAspectJAutoProxy(exposeProxy = true)
+@Configuration
 public class WebAppMvcConfig implements WebMvcConfigurer {
-    @Autowired
-    @Lazy
-    private ObjectMapper objectMapper;
+    private final ObjectMapper objectMapper;
 
-    @Autowired(required = false)
-    private List<HandlerInterceptor> interceptors;
+    private final List<HandlerInterceptor> interceptors;
 
 
     @Bean
@@ -55,59 +38,6 @@ public class WebAppMvcConfig implements WebMvcConfigurer {
     @Override
     public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
-        // 时间格式化
-        SerializerProvider serializerProvider = objectMapper.getSerializerProvider();
-        serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() {
-            @Override
-            public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
-                gen.writeNull();
-            }
-        });
-        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
-
-        SimpleModule booleanSimpleModule = new SimpleModule();
-        booleanSimpleModule.addSerializer(Boolean.class, new BooleanToIntegerSerializer());
-        booleanSimpleModule.addDeserializer(Boolean.class, new StdScalarDeserializer<Boolean>(Object.class) {
-            @Override
-            public Boolean deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
-                String text = p.getText();
-                if (StrUtil.isBlank(text)) {
-                    return null;
-                }
-                String lowerCase = text.toLowerCase();
-                if("true".equals(lowerCase)||"1".equals(lowerCase)){
-                    return Boolean.TRUE;
-                }else if("false".equals(lowerCase)||"0".equals(lowerCase)){
-                    return Boolean.FALSE;
-                }
-                return null;
-            }
-        });
-
-        SimpleModule stringModule = new SimpleModule();
-        stringModule.addSerializer(String.class,new StringSerializer());
-        stringModule.addDeserializer(String.class, new StdScalarDeserializer<String>(String.class) {
-            @Override
-            public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
-                String text = p.getText();
-                return StrUtil.isBlankIfStr(text)?null:text;
-            }
-        });
-        SimpleModule enumModule = new SimpleModule();
-        enumModule.addDeserializer(Enum.class, new EnumDeserializer());
-
-//        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
-//            @Override
-//            public void serialize(Object param, JsonGenerator jsonGenerator,
-//                                  SerializerProvider paramSerializerProvider) throws IOException {
-//                jsonGenerator.writeString("");
-//            }
-//        });
-
-        objectMapper.registerModule(enumModule);
-        objectMapper.registerModule(stringModule);
-        objectMapper.registerModule(booleanSimpleModule);
         // 设置格式化内容
         converter.setObjectMapper(objectMapper);
         converters.add(0, converter);

+ 1 - 1
nb-common/config-common/src/main/java/com/nb/common/config/web/CorsConfig.java

@@ -13,7 +13,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  * @createTime 2022年03月23日 14:49:00
  */
 //@Configuration
-@Profile("dev")
+//@Profile("dev")
 public class CorsConfig implements WebMvcConfigurer {
     @Override
     public void addCorsMappings(CorsRegistry registry) {

+ 11 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusInfusionHistoryService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -349,7 +350,16 @@ public class LocalBusInfusionHistoryService extends BaseService<BusInfusionHisto
         if(CollectionUtil.isEmpty(clinicIds)){
             return;
         }
-        List<BusClinicEntity> clinics = clinicService.listByIds(clinicIds);
+        List<BusClinicEntity> clinics = clinicService.list(new LambdaQueryWrapper<BusClinicEntity>()
+                .select(BusClinicEntity::getId,
+                        BusClinicEntity::getStartTime,
+                        BusClinicEntity::getPatientId,
+                        BusClinicEntity::getPatientCode,
+                        BusClinicEntity::getPatientGender,
+                        BusClinicEntity::getPatientName,
+                        BusClinicEntity::getPatientAge,
+                        BusClinicEntity::getSurgeryName)
+        .in(BusClinicEntity::getId,clinicIds));
         if(CollectionUtil.isEmpty(clinics)){
             return;
         }