ソースを参照

字段标准化修改-台州邵逸夫入北仑

rengb 4 年 前
コミット
cbb1adf88d

+ 171 - 1
dbanaly/src/main/java/com/lantone/qc/dbanaly/config/RedisConfig.java

@@ -8,20 +8,190 @@ package com.lantone.qc.dbanaly.config;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.CachingConfigurerSupport;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.interceptor.KeyGenerator;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
+import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
+import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
 import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
 
 import java.net.UnknownHostException;
+import java.time.Duration;
 
 
 @Configuration
-public class RedisConfig {
+@EnableCaching
+@Slf4j
+public class RedisConfig extends CachingConfigurerSupport {
+    @Value("${spring.redis.database.cache}")
+    private String databaseCache;
+    @Value("${spring.redis.database.token}")
+    private String databaseMr;
+    @Value("${spring.redis.host}")
+    private String host;
+    @Value("${spring.redis.password}")
+    private String password;
+    @Value("${spring.redis.port}")
+    private int port;
+    @Value("${spring.redis.timeout}")
+    private int timeout;
+    @Value("${spring.redis.lettuce.pool.max-active}")
+    private int maxActive;
+    @Value("${spring.redis.lettuce.pool.max-idle}")
+    private int maxIdle;
+    @Value("${spring.redis.lettuce.pool.max-wait}")
+    private long maxWaitMillis;
+    @Value("${spring.redis.lettuce.pool.min-idle}")
+    private int minIdle;
+
+    @Autowired
+    @Qualifier("factoryForCache")
+    private LettuceConnectionFactory lettuceConnectionFactory;
+
+    @Bean
+    public GenericObjectPoolConfig getRedisConfig() {
+        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
+        poolConfig.setMaxTotal(maxActive);
+        poolConfig.setMaxIdle(maxIdle);
+        poolConfig.setMaxWaitMillis(maxWaitMillis);
+        poolConfig.setMinIdle(minIdle);
+        return poolConfig;
+    }
+
+    @Bean
+    @Override
+    public CacheManager cacheManager() {
+        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
+                // 设置 key为string序列化
+                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
+                // 设置value为json序列化
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(getSerializer()))
+                // 不缓存空值
+                .disableCachingNullValues();
+        RedisCacheManager cacheManager = RedisCacheManager.builder(lettuceConnectionFactory)
+                .cacheDefaults(redisCacheConfiguration)
+                .transactionAware()
+                .build();
+        cacheManager.afterPropertiesSet();
+        log.info("RedisCacheManager config success");
+        return cacheManager;
+    }
+
+    @Bean(name = "springSessionDefaultRedisSerializer")
+    public GenericJackson2JsonRedisSerializer getGenericJackson2JsonRedisSerializer() {
+        return new GenericJackson2JsonRedisSerializer();
+    }
+
+    /**
+     * 缓存使用的redis
+     *
+     * @return
+     */
+    @Bean(name = "factoryForCache")
+    @Primary
+    public LettuceConnectionFactory redisConnectionFactory() {
+        return getRedisConnectionFactory(Integer.valueOf(databaseCache));
+    }
+
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate() {
+        return getRedisTemplate(lettuceConnectionFactory);
+    }
+
+    private Jackson2JsonRedisSerializer getSerializer() {
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+        return jackson2JsonRedisSerializer;
+    }
+
+    @Bean
+    @Override
+    public KeyGenerator keyGenerator() {
+        //  设置自动key的生成规则,配置spring boot的注解,进行方法级别的缓存
+        // 使用:进行分割,可以很多显示出层级关系
+        // 这里其实就是new了一个KeyGenerator对象
+        return (target, method, params) -> {
+            StringBuilder sb = new StringBuilder();
+            sb.append(target.getClass().getName());
+            sb.append(":");
+            sb.append(method.getName());
+            for (Object obj : params) {
+                sb.append(":" + String.valueOf(obj));
+            }
+            String rsToUse = String.valueOf(sb);
+            log.info("自动生成Redis Key -> [{}]", rsToUse);
+            return rsToUse;
+        };
+    }
+
+    /**
+     * Token使用的redis
+     *
+     * @return
+     */
+    @Bean(name = "factoryForToken")
+    public LettuceConnectionFactory redisConnectionFactoryForToken() {
+        return getRedisConnectionFactory(Integer.valueOf(databaseMr));
+    }
+
+    @Bean(name = "redisTemplateForToken")
+    public RedisTemplate<String, Object> redisTemplateForToken(@Qualifier("factoryForToken") LettuceConnectionFactory factory) {
+        return getRedisTemplate(factory);
+    }
+
+
+    private LettuceConnectionFactory getRedisConnectionFactory(Integer database) {
+        RedisStandaloneConfiguration connection = new RedisStandaloneConfiguration();
+        connection.setHostName(host);
+        connection.setPort(port);
+        connection.setPassword(password);
+        connection.setDatabase(database);
+        GenericObjectPoolConfig poolConfig = getRedisConfig();
+        LettuceClientConfiguration builder = LettucePoolingClientConfiguration.builder()
+                .commandTimeout(Duration.ofMillis(timeout))
+                .poolConfig(poolConfig)
+                .shutdownTimeout(Duration.ZERO)
+                .build();
+        LettuceConnectionFactory factory = new LettuceConnectionFactory(connection, builder);
+        return factory;
+    }
+
+    private RedisTemplate<String, Object> getRedisTemplate(LettuceConnectionFactory factory) {
+        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(factory);
+
+        // value值的序列化
+        redisTemplate.setValueSerializer(getSerializer());
+        redisTemplate.setHashValueSerializer(getSerializer());
+        // key的序列化采用StringRedisSerializer
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+        redisTemplate.afterPropertiesSet();
+        return redisTemplate;
+    }
 
     @Bean
     @ConditionalOnMissingBean(name = "redisTemplate")

+ 1 - 1
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/shaoyf/ShaoyfXmlUtil.java

@@ -44,7 +44,7 @@ public class ShaoyfXmlUtil {
                     if (StringUtil.isBlank(text)) {
                         retMap.put(ename, setnomark);
                     } else {
-                        retMap.put(ename, text);
+                        retMap.put(ename, text + setnomark);
                     }
                 }
             }

+ 5 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/taizhou/TzXmlUtil.java

@@ -40,6 +40,11 @@ public class TzXmlUtil {
                 setnomark = setnomark == null ? "" : setnomark;
                 setnomark = setnomark.trim().replaceAll("&nbsp;", "");
                 text = emrTermElement.getStringValue().trim().replaceAll("&nbsp;", "");
+                /* 台州查房类别个性化处理 */
+                if ("查房类别".equals(ename) && StringUtil.isNotBlank(setnomark) && StringUtil.isNotBlank(text)){
+                    retMap.put(ename, text + setnomark);
+                    continue;
+                }
                 if (StringUtil.isBlank(retMap.get(ename))) {
                     if (StringUtil.isBlank(text)) {
                         retMap.put(ename, setnomark);

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -293,6 +293,7 @@ public class Content {
             "yyyy/MM/ddHH:m",
             "yyyy/MM/ddH:mm",
             "yyyy/MM/ddH:m",
+            "yyyy/MM/ddHH:mm:",
             "yyyy/M/ddHH:mm",
             "yyyy/M/ddHH:m",
             "yyyy/M/ddH:mm",
@@ -310,5 +311,6 @@ public class Content {
             "yyyy-MM-ddHH:mm:ss.000",
             "yyyyMMddHH:mm",
             "yyyy-MM-dd'T'HH:mm:ss",
+            "yyyy-MM-ddTHH:mm:ss",
     };
 }

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/model/InputInfo.java

@@ -59,6 +59,8 @@ public class InputInfo {
     private List<DoctorAdviceDoc> doctorAdviceDocs = new ArrayList<>();
     //化验信息
     private List<LisDoc> lisDocs = new ArrayList<>();
+    //辅检信息
+    private List<PacsDoc> pacsDocs = new ArrayList<>();
     //值班交接制度
     private List<DutyShiftSystemDoc> dutyShiftSystemDocs = new ArrayList<>();
     //首次病程录

+ 1 - 1
public/src/main/java/com/lantone/qc/pub/model/OutputInfo.java

@@ -21,7 +21,7 @@ public class OutputInfo {
      * "BEH001":{"status":"-1", "info": "发热"}
      * }
      */
-    private Map<String, Map<String, String>> result = new HashMap<>();
+    private Map<String, Map<String, Object>> result = new HashMap<>();
     //后结构化数据
     private Map<String, Object> pageData = new HashMap<>();
 

+ 3 - 4
public/src/main/java/com/lantone/qc/pub/model/doc/FirstCourseRecordDoc.java

@@ -1,9 +1,6 @@
 package com.lantone.qc.pub.model.doc;
 
-import com.lantone.qc.pub.model.label.CaseCharacteristicLabel;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.model.label.DiagnosisLabel;
-import com.lantone.qc.pub.model.label.TreatPlanLabel;
+import com.lantone.qc.pub.model.label.*;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -26,4 +23,6 @@ public class FirstCourseRecordDoc extends ModelDoc {
     private DiagLabel differentialDiagLabel;
     //诊疗计划
     private TreatPlanLabel treatPlanLabel;
+    //药品-抗生素
+    private DrugLabel drugLabel;
 }

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/consultation/ConsultationResultsDoc.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.pub.model.doc.consultation;
 
 import com.lantone.qc.pub.model.doc.ModelDoc;
+import com.lantone.qc.pub.model.label.ConsultationResultLabel;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -13,4 +14,5 @@ import lombok.Setter;
 @Setter
 public class ConsultationResultsDoc extends ModelDoc {
     private String consultationName;
+    private ConsultationResultLabel consultationResultLabel;
 }

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/operation/OperationRecordDoc.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.pub.model.doc.operation;
 
 import com.lantone.qc.pub.model.doc.ModelDoc;
+import com.lantone.qc.pub.model.label.OperationRecordLabel;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -13,4 +14,5 @@ import lombok.Setter;
 @Setter
 public class OperationRecordDoc extends ModelDoc {
     private String operationName;
+    private OperationRecordLabel operationRecordLabel;
 }

+ 2 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/Pacs.java

@@ -3,6 +3,7 @@ package com.lantone.qc.pub.model.entity;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -19,4 +20,5 @@ public class Pacs extends General{
     private PacsValue pacsValues;
     private BodyPart bodyPart;
     private OuterCourtyard outerCourtyard; //外院
+    private List<Diag> diags = new ArrayList<>();//疾病
 }

+ 3 - 0
public/src/main/java/com/lantone/qc/pub/model/label/GeneralLabel.java

@@ -1,5 +1,6 @@
 package com.lantone.qc.pub.model.label;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Maps;
 import lombok.Getter;
 import lombok.Setter;
@@ -19,6 +20,8 @@ public class GeneralLabel {
     private String text;
     private String aiText;
     private boolean crfLabel = true;
+    //CRF返回信息存储
+    private JSONObject crfOutput = new JSONObject();
     protected  <T> void add(List<T> list, T obj) {
         list.add(obj);
     }

+ 10 - 17
public/src/main/java/com/lantone/qc/pub/model/label/LeaveHospitalLabel.java

@@ -1,14 +1,6 @@
 package com.lantone.qc.pub.model.label;
 
-import com.lantone.qc.pub.model.entity.BetterFinding;
-import com.lantone.qc.pub.model.entity.Chief;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.entity.DoctorAdvice;
-import com.lantone.qc.pub.model.entity.Notes;
-import com.lantone.qc.pub.model.entity.Outcome;
-import com.lantone.qc.pub.model.entity.OutcomeCure;
-import com.lantone.qc.pub.model.entity.OutcomeToBetter;
-import com.lantone.qc.pub.model.entity.PositiveFinding;
+import com.lantone.qc.pub.model.entity.*;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -24,12 +16,13 @@ import java.util.List;
 @Getter
 @Setter
 public class LeaveHospitalLabel {
-    List<Chief> chiefs = new ArrayList<>();   //主诉
-    List<Notes> noteses = new ArrayList<>();   //注意事项
-    DoctorAdvice doctorAdvices;   //医嘱信息
-    List<Diag> diags = new ArrayList<>();   //出院诊断
-    List<BetterFinding> betterFindings = new ArrayList<>();   //好转表现
-    List<OutcomeToBetter> outcomeToBetters = new ArrayList<>();   //转归情况-好转
-    List<OutcomeCure> outcomeCures = new ArrayList<>();   //转归情况-治愈
-    List<PositiveFinding> positiveFindings = new ArrayList<>();   //阳性表现
+    private List<Chief> chiefs = new ArrayList<>();   //主诉
+    private List<Notes> noteses = new ArrayList<>();   //注意事项
+    private DoctorAdvice doctorAdvices;   //医嘱信息
+    private List<Diag> diags = new ArrayList<>();   //出院诊断
+    private List<BetterFinding> betterFindings = new ArrayList<>();   //好转表现
+    private List<OutcomeToBetter> outcomeToBetters = new ArrayList<>();   //转归情况-好转
+    private List<OutcomeCure> outcomeCures = new ArrayList<>();   //转归情况-治愈
+    private List<PositiveFinding> positiveFindings = new ArrayList<>();   //阳性表现
+    private List<Drug> drugs = new ArrayList<>();  //药物
 }

+ 7 - 10
public/src/main/java/com/lantone/qc/pub/model/label/OperationDiscussionLabel.java

@@ -1,10 +1,6 @@
 package com.lantone.qc.pub.model.label;
 
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.entity.Sign;
-import com.lantone.qc.pub.model.entity.TreatmentPlan;
-import com.lantone.qc.pub.model.entity.Vital;
+import com.lantone.qc.pub.model.entity.*;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -20,9 +16,10 @@ import java.util.List;
 @Getter
 @Setter
 public class OperationDiscussionLabel {
-    String operativeFindings;   //手术经过文本(术中所见)
-    String riskAfterOp;    //术后风险文本
-    String attentionAfterOp;    //术后注意事项文本(处理及注意事项)
-    String measuresAfterOp;    //术后处理措施文本(处理及注意事项)
-    List<Vital> vitals = new ArrayList<>();   //生命体征实体
+    private String operativeFindings;   //手术经过文本(术中所见)
+    private String riskAfterOp;    //术后风险文本
+    private String attentionAfterOp;    //术后注意事项文本(处理及注意事项)
+    private String measuresAfterOp;    //术后处理措施文本(处理及注意事项)
+    private List<Vital> vitals = new ArrayList<>();   //生命体征实体
+    private List<Drug> drugs = new ArrayList<>();  //药物
 }

+ 20 - 23
public/src/main/java/com/lantone/qc/pub/model/label/ThreeLevelWardLabel.java

@@ -1,13 +1,6 @@
 package com.lantone.qc.pub.model.label;
 
-import com.lantone.qc.pub.model.entity.BetterFinding;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.entity.OutcomeCure;
-import com.lantone.qc.pub.model.entity.OutcomeToBetter;
-import com.lantone.qc.pub.model.entity.PositiveFinding;
-import com.lantone.qc.pub.model.entity.Sign;
-import com.lantone.qc.pub.model.entity.TreatmentPlan;
+import com.lantone.qc.pub.model.entity.*;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -23,19 +16,23 @@ import java.util.List;
 @Getter
 @Setter
 public class ThreeLevelWardLabel {
-    int serious = 0;    //0:不严重患者,1:危重患者,2:疑难患者,3:抢救患者
-    String title;   //医师职称
-    List<Clinical> clinicals = new ArrayList<>();   //病史(临床表现)
-    List<Sign> signs = new ArrayList<>();   //查体
-    List<Diag> diffDiag = new ArrayList<>();   //鉴别诊断
-    String diagBasisText;   //诊断依据文本
-    String diffDiagText;    //鉴别诊断文本
-    String diagText;    //诊断文本
-    List<Diag> diags = new ArrayList<>();   //补充诊断/初步诊断/修正诊断
-    String dischargeMode;  //离院方式
-    List<TreatmentPlan> treatmentPlans = new ArrayList<>();   //诊疗计划
-    List<BetterFinding> betterFindings = new ArrayList<>();   //好转表现
-    List<OutcomeToBetter> outcomeToBetters = new ArrayList<>();   //转归情况-好转
-    List<OutcomeCure> outcomeCures = new ArrayList<>();   //转归情况-治愈
-    List<PositiveFinding> positiveFindings = new ArrayList<>();   //阳性表现
+    private int serious = 0;    //0:不严重患者,1:危重患者,2:疑难患者,3:抢救患者
+    private String title;   //医师职称
+    private List<Clinical> clinicals = new ArrayList<>();   //病史(临床表现)
+    private List<Sign> signs = new ArrayList<>();   //查体
+    private List<Diag> diffDiag = new ArrayList<>();   //鉴别诊断
+    private String diagBasisText;   //诊断依据文本
+    private String diffDiagText;    //鉴别诊断文本
+    private String diagText;    //诊断文本
+    private List<Diag> diags = new ArrayList<>();   //补充诊断/初步诊断/修正诊断
+    private String dischargeMode;  //离院方式
+    private List<TreatmentPlan> treatmentPlans = new ArrayList<>();   //诊疗计划
+    private List<BetterFinding> betterFindings = new ArrayList<>();   //好转表现
+    private List<OutcomeToBetter> outcomeToBetters = new ArrayList<>();   //转归情况-好转
+    private List<OutcomeCure> outcomeCures = new ArrayList<>();   //转归情况-治愈
+    private List<PositiveFinding> positiveFindings = new ArrayList<>();   //阳性表现
+    private List<LaboratoryPackage> laboratoryPackages = new ArrayList<>();  //实验室检查套餐
+    private List<Laboratory> laboratories = new ArrayList<>();  //实验室检查
+    private List<AuxiliaryExamination> auxiliaryExaminations = new ArrayList<>();  //辅助检查
+    private List<Drug> drugs = new ArrayList<>();  //药物
 }

+ 48 - 0
public/src/main/java/com/lantone/qc/pub/model/label/VitalLabelSpecial.java

@@ -1,10 +1,58 @@
 package com.lantone.qc.pub.model.label;
 
+import com.lantone.qc.pub.model.entity.BeHospitalizedWay;
+import com.lantone.qc.pub.model.entity.Cause;
+import com.lantone.qc.pub.model.entity.Clinical;
+import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.model.entity.General;
+import com.lantone.qc.pub.model.entity.GeneralDesc;
+import com.lantone.qc.pub.model.entity.Lis;
+import com.lantone.qc.pub.model.entity.Medicine;
+import com.lantone.qc.pub.model.entity.Operation;
+import com.lantone.qc.pub.model.entity.PD;
+import com.lantone.qc.pub.model.entity.Pacs;
+import com.lantone.qc.pub.model.entity.Treat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @ClassName : VatilLabel
  * @Description : 体格检查(专科检查)
  * @Author : 楼辉荣
  * @Date: 2020-03-03 18:49
  */
+@Getter
+@Setter
 public class VitalLabelSpecial extends GeneralLabel {
+    //临床表现
+    private List<Clinical> clinicals = new ArrayList<>();
+    //辅助检查
+    private List<Pacs> pacses;
+    //化验
+    private List<Lis> lises;
+    //治疗
+    private List<Treat> treats;
+    //药物
+    private List<Medicine> medicines;
+    //一般情况
+    private List<General> gens = new ArrayList<>();
+    //一般情况描述
+    private List<GeneralDesc> generals = new ArrayList<>();
+    //诱因
+    private List<Cause> causes;
+    //疾病信息
+    private List<Diag> diags = new ArrayList<>();
+    //手术信息
+    private List<Operation> operations = new ArrayList<>();
+    //入院途径
+    private BeHospitalizedWay beHospitalizedWay;
+    //现病史中所有时间实体存入
+    private List<PD> pds = new ArrayList<>();
+
+    public <T> void add(List<T> list, T obj) {
+        list.add(obj);
+    }
 }

+ 5 - 1
trans/src/main/java/com/lantone/qc/trans/comsis/OrdinaryAssistant.java

@@ -6,7 +6,11 @@ import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.pub.util.StringUtil;
 
-import java.util.*;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * @Description: