Browse Source

优化代码,新增得分规则查询接口

‘xugp 2 years ago
parent
commit
d793e1bb9f

+ 69 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/config/MyJsonConfig.java

@@ -0,0 +1,69 @@
+package com.ims.eval.config;
+
+import com.alibaba.fastjson.serializer.NameFilter;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.alibaba.fastjson.support.config.FastJsonConfig;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TimeZone;
+
+/**
+ * @description:
+ * @auther: xugp
+ * @date: 2023-03-07
+ */
+@Configuration
+public class MyJsonConfig implements WebMvcConfigurer {
+    //springboot 默认通过jackson来转化json,@JSONField(....)是fastjson的注解,因此要添加如下配置
+    //Long类型在前端js中会丢失精度
+
+    public FastJsonHttpMessageConverter fastJsonHttpMessageConverters() {
+        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
+        FastJsonConfig fastJsonConfig = new FastJsonConfig();
+        NameFilter nameFilter = (object, name, value) -> name;
+        SerializeConfig serializeConfig = fastJsonConfig.getSerializeConfig();
+        // serializeConfig .addFilter(SwaggerWelcomeWebMvc.class, nameFilter);
+        // serializeConfig.put(String.class,MyStringSerializer.instance);
+        fastJsonConfig.setSerializeConfig(serializeConfig);
+
+        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");    //自定义时间格式
+        fastJsonConfig.setSerializerFeatures(
+                SerializerFeature.DisableCircularReferenceDetect
+                ,SerializerFeature.WriteMapNullValue
+                ,SerializerFeature.WriteDateUseDateFormat
+        );  //关闭循环引用,正常转换null值,格式化
+
+        fastConverter.setFastJsonConfig(fastJsonConfig);
+        List<MediaType> fastMediaTypes = new ArrayList<>();
+        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+        fastConverter.setSupportedMediaTypes(fastMediaTypes);
+        // HttpMessageConverter<?> converter = fastConverter;
+        return fastConverter;
+    }
+    public HttpMessageConverter<String> stringConverter() {
+        StringHttpMessageConverter converter = new StringHttpMessageConverter(
+                Charset.forName("UTF-8"));
+        return converter;
+    }
+    @Override
+    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
+
+        // converters.clear();
+         converters.add(stringConverter());
+//        List<HttpMessageConverter<?>> collect = converters.stream().filter(s ->s instanceof StringHttpMessageConverter).collect(Collectors.toList());
+//        converters.removeAll(collect);
+        converters.add( fastJsonHttpMessageConverters());
+
+    }
+
+}

+ 1 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/controller/IndicatorController.java

@@ -99,6 +99,7 @@ public class IndicatorController {
 		return R.ok().data(list);
 	}
 
+
 	/**
 	 * 添加
 	 *

+ 34 - 10
ims-service/ims-eval/src/main/java/com/ims/eval/entity/EvaluationScoringRule.java

@@ -2,6 +2,7 @@ package com.ims.eval.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.ims.eval.cache.CacheContext;
 import com.ims.eval.service.IIndicatorService;
 import lombok.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,11 @@ public class EvaluationScoringRule extends Model {
      */
     private String id;
 
+	/**
+	 * 得分规则名称
+	 */
+	private String ScoreRuleName;
+
     /**
      * 指标项ID
      */
@@ -74,15 +80,15 @@ public class EvaluationScoringRule extends Model {
 	@TableField(exist = false)
 	private List<String> indicatorNames;
 
-    /**
+    /*
      * 业务阶段
-     *//*
+	 */
     private String type;
 
-    *//**
+    /*
      * 部门ID
-     *//*
-    private String departid;*/
+     */
+    private String departid;
 
     /**
      * 描述
@@ -95,14 +101,32 @@ public class EvaluationScoringRule extends Model {
     private String parttitionInterval;
 
 	/**
-	 * 业务板块
-	 *//*
+	 * 业务板块code
+	 */
 	private String businessPhase;
 
-	*//**
+	/**
+	 * 业务板块name
+	 */
+	@TableField(exist = false)
+	@Getter(AccessLevel.NONE)
+	@Setter(AccessLevel.NONE)
+	private String businessName;
+
+	public String getBusinessName(){
+		List<DataDictionary> ddList = CacheContext.ddList;
+		for (DataDictionary dictionary : ddList){
+			if (businessPhase.equals(dictionary.getDataKey())){
+				return dictionary.getKeyName();
+			}
+		}
+		return "";
+	}
+
+	/**
 	 * 指标单位
-	 *//*
-	private String indicatorUnit;*/
+	 */
+	private String indicatorUnit;
 
 
 

+ 2 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/entity/IntervalScoringTable.java

@@ -34,6 +34,7 @@ public class IntervalScoringTable extends Model {
     /**
      * 区间范围
      */
+	@JSONField(serialize=false,deserialize = false)//不序列化
     private String range;
 
     /**
@@ -42,7 +43,7 @@ public class IntervalScoringTable extends Model {
     private String ruleDescription;
 
     /**
-     * 规则表达
+     * 规则
      */
     private String regularExpression;
 

+ 18 - 12
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluationScoringRuleServiceImpl.java

@@ -63,17 +63,21 @@ public class EvaluationScoringRuleServiceImpl extends ServiceImpl<EvaluationScor
 		}
 
 		IPage<EvaluationScoringRule> evaluationScoringRules = baseMapper.selectPage(page,qw);
-		//设置指标和指标项名称
-		List<EvaluationScoringRule> records = evaluationScoringRules.getRecords();
-		for (EvaluationScoringRule evaluationScoringRule : records){
-			//设置指标名称
-			List<String> list = new ArrayList<>();
-			List<String> indicatorIds = evaluationScoringRule.getIndicatorIds();
-			for (String code : indicatorIds){
-				Indicator indicator = indicatorMapper.selectByCode(code);
-				list.add(indicator.getIndicatorName());
-			}
-			evaluationScoringRule.setIndicatorNames(list);
+
+		try{
+			//设置指标和指标项名称
+			List<EvaluationScoringRule> records = evaluationScoringRules.getRecords();
+			for (EvaluationScoringRule evaluationScoringRule : records){
+				//设置指标名称
+				List<String> list = new ArrayList<>();
+				List<String> indicatorIds = evaluationScoringRule.getIndicatorIds();
+				for (String code : indicatorIds){
+					Indicator indicator = indicatorMapper.selectByCode(code);
+					if(indicator !=null){
+						list.add(indicator.getIndicatorName());
+					}
+				}
+				evaluationScoringRule.setIndicatorNames(list);
 			/*//设置指标项名称
 			List<Map<String,String>> maps = new ArrayList<>();
 			List<String> indicatorItemIds = evaluationScoringRule.getIndicatorItemIds();
@@ -84,8 +88,10 @@ public class EvaluationScoringRuleServiceImpl extends ServiceImpl<EvaluationScor
 				maps.add(map);
 			}
 			evaluationScoringRule.setIndicatorItemNames(maps);*/
+			}
+		}catch (Exception e){
+			e.printStackTrace();
 		}
-
 		return evaluationScoringRules;
 	}