Browse Source

添加字典表缓存和添加更新时间和新增时间

wangchangsheng 2 years ago
parent
commit
1885df3334

+ 61 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/cache/CacheContext.java

@@ -0,0 +1,61 @@
+package com.ims.eval.cache;
+
+import com.ims.eval.entity.DataDictionary;
+import com.ims.eval.service.IDataDictionaryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 初始化缓存类
+ */
+@Component
+public class CacheContext implements CommandLineRunner {
+
+	@Autowired
+	private IDataDictionaryService dataDictionaryService;
+
+
+	//初始化字典表
+	public static List<DataDictionary> ddList = new ArrayList<>();
+	public static Map<String, DataDictionary> ddMap = new HashMap<>();
+	public static Map<String, String> ddNameMap = new HashMap<>();
+	public static Map<String, String> ddValueMap = new HashMap<>();
+	public static Map<String, List<DataDictionary>> ddSuperKeyMap  = new HashMap<>();
+
+
+	@Override
+	public void run(String... args) throws Exception {
+		initDataDictionary();
+
+	}
+
+
+	/**
+	 * 初始化集团表
+	 */
+	public void initDataDictionary(){
+		//清理集合中的数据
+		ddList.clear();
+		ddMap.clear();
+		ddNameMap.clear();
+		ddValueMap.clear();
+		ddSuperKeyMap.clear();
+		//重新加载集合数据
+		ddList = dataDictionaryService.list();
+		ddList.stream().forEach(d -> {
+			ddMap.put(d.getDataKey(), d);
+			ddNameMap.put(d.getDataKey(), d.getKeyName());
+			ddValueMap.put(d.getDataKey(), d.getKeyValue());
+		});
+		ddSuperKeyMap = ddList.stream().collect(Collectors.groupingBy(DataDictionary::getSuperKey));
+	}
+
+
+}

+ 18 - 4
ims-service/ims-eval/src/main/java/com/ims/eval/controller/DataDictionaryController.java

@@ -1,6 +1,7 @@
 package com.ims.eval.controller;
 
 
+import com.ims.eval.cache.CacheContext;
 import com.ims.eval.dao.result.R;
 import com.ims.eval.entity.DataDictionary;
 import com.ims.eval.service.IDataDictionaryService;
@@ -26,20 +27,32 @@ public class DataDictionaryController {
 	@Autowired
 	private IDataDictionaryService dataDictionaryService;
 
+	@Autowired
+	private CacheContext cache;
 
+	/**
+	 * 查询
+	 *
+	 * @param id       主键ID
+	 * @param dataKey  数据key
+	 * @param keyName  名称
+	 * @param superKey 父类key
+	 * @return
+	 */
 	//@ImsPreAuth("eval:dataDictionary:view")
 	@GetMapping(value = "list")
-	public R list( @RequestParam(value = "id", required = false) String id,
+	public R list(@RequestParam(value = "id", required = false) String id,
 				  @RequestParam(value = "dataKey", required = false) String dataKey,
 				  @RequestParam(value = "keyName", required = false) String keyName,
-				  @RequestParam(value = "superKey", required = false) String superKey ) {
-		List<DataDictionary> list = dataDictionaryService.list(id,dataKey,keyName,superKey);
+				  @RequestParam(value = "superKey", required = false) String superKey) {
+		List<DataDictionary> list = dataDictionaryService.list(id, dataKey, keyName, superKey);
 		return R.ok().data(list);
 	}
 
 
 	/**
 	 * 添加
+	 *
 	 * @param dictionary
 	 * @return
 	 */
@@ -51,6 +64,7 @@ public class DataDictionaryController {
 
 		boolean b = dataDictionaryService.saveOrUpdate(dictionary);
 		if (b) {
+			cache.initDataDictionary();
 			return R.ok().data(b);
 		} else {
 			return R.error().data("保存失败!");
@@ -71,6 +85,7 @@ public class DataDictionaryController {
 		String[] strings = ids.split(",");
 		boolean b = dataDictionaryService.removeByIds(Arrays.asList(strings));
 		if (b) {
+			cache.initDataDictionary();
 			return R.ok().data(b);
 		} else {
 			return R.error().data("删除失败!");
@@ -78,5 +93,4 @@ public class DataDictionaryController {
 	}
 
 
-
 }

+ 3 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/controller/EvaluateRuleController.java

@@ -31,6 +31,8 @@ public class EvaluateRuleController {
 	private IEvaluateRuleService evaluateRuleService;
 
 	/**
+	 * 查询 list
+	 *
 	 * @param id             主键
 	 * @param des            描述
 	 * @param indicatorId    指标ID
@@ -45,7 +47,7 @@ public class EvaluateRuleController {
 				  @RequestParam(value = "des", required = false) String des,
 				  @RequestParam(value = "indicatorId", required = false) String indicatorId,
 				  @RequestParam(value = "evaluateMethod", required = false) String evaluateMethod) {
-		IPage<EvaluateRule> list = evaluateRuleService.list(pageNum,pageSize,id, des, indicatorId, evaluateMethod);
+		IPage<EvaluateRule> list = evaluateRuleService.list(pageNum, pageSize, id, des, indicatorId, evaluateMethod);
 		return R.ok().data(list);
 	}
 

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

@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.sql.Date;
-import java.time.LocalDate;
+import java.util.Date;
+
 
 /**
  * <p>

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

@@ -2,8 +2,7 @@ package com.ims.eval.entity;
 
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
-import java.sql.Date;
-import java.time.LocalDate;
+import java.util.Date;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 

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

@@ -2,7 +2,7 @@ package com.ims.eval.entity;
 
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 
-import java.sql.Date;
+import java.util.Date;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 

+ 0 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/entity/Indicator.java

@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
 import java.util.Date;
 
 /**

+ 1 - 3
ims-service/ims-eval/src/main/java/com/ims/eval/entity/IndicatorDictionary.java

@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.math.BigDecimal;
-import java.sql.Date;
-import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * <p>

+ 6 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DataDictionaryServiceImpl.java

@@ -11,6 +11,7 @@ import com.ims.eval.entity.Indicator;
 import com.ims.eval.service.IDataDictionaryService;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -58,6 +59,11 @@ public class DataDictionaryServiceImpl extends ServiceImpl<DataDictionaryMapper,
 		if (null != list && list.size() > 0) {
 			throw new RuntimeException("当前字典key已存在");
 		}
+		if (null != entity &&  (null == entity.getId() || "".equals(entity.getId().trim()))){
+			entity.setUpdateTime(new Date());
+		}else {
+			entity.setCreateTime(new Date());
+		}
 		return super.saveOrUpdate(entity);
 	}
 }

+ 6 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluateRuleServiceImpl.java

@@ -11,6 +11,7 @@ import com.ims.eval.service.IEvaluateRuleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -66,6 +67,11 @@ public class EvaluateRuleServiceImpl extends ServiceImpl<EvaluateRuleMapper, Eva
 		if (null !=list && list.size()>0){
 			throw  new RuntimeException("当前指标评分规则已存在");
 		}
+		if (null != entity &&  (null == entity.getId() || "".equals(entity.getId().trim()))){
+			entity.setUpdateTime(new Date());
+		}else {
+			entity.setCreateTime(new Date());
+		}
 		return super.saveOrUpdate(entity);
 	}
 }

+ 11 - 3
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorDictionaryServiceImpl.java

@@ -3,14 +3,15 @@ package com.ims.eval.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ims.common.utils.StringUtils;
+import com.ims.eval.cache.CacheContext;
 import com.ims.eval.dao.IndicatorDictionaryMapper;
-import com.ims.eval.entity.Indicator;
 import com.ims.eval.entity.IndicatorDictionary;
 import com.ims.eval.service.IIndicatorDictionaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Collection;
+
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -24,6 +25,8 @@ import java.util.List;
 @Service
 public class IndicatorDictionaryServiceImpl extends ServiceImpl<IndicatorDictionaryMapper, IndicatorDictionary> implements IIndicatorDictionaryService {
 
+	@Autowired
+	private CacheContext cache;
 
 	public  List<IndicatorDictionary>  list(String id,String indicatorId,String optionCode,String optionName){
 		QueryWrapper<IndicatorDictionary> qw = new QueryWrapper<>();
@@ -56,7 +59,12 @@ public class IndicatorDictionaryServiceImpl extends ServiceImpl<IndicatorDiction
 		if (null != list && list.size() > 0) {
 			throw new RuntimeException("当前属性code已存在");
 		}
-
+		if (null != entity &&  (null == entity.getId() || "".equals(entity.getId().trim()))){
+			entity.setUpdateTime(new Date());
+		}else {
+			entity.setCreateTime(new Date());
+		}
+		entity.setOptionName(null == CacheContext.ddNameMap.get(entity.getOptionCode())?"未知属性":CacheContext.ddNameMap.get(entity.getOptionCode()));
 		return super.saveOrUpdate(entity);
 	}
 

+ 6 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.Serializable;
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -83,7 +84,11 @@ public class IndicatorServiceImpl extends ServiceImpl<IndicatorMapper, Indicator
 		if (null != list && list.size() > 0) {
 			throw new RuntimeException("当前指标code已存在");
 		}
-
+		if (null != entity &&  (null == entity.getId() || "".equals(entity.getId().trim()))){
+			entity.setUpdateTime(new Date());
+		}else {
+			entity.setCreateTime(new Date());
+		}
 		return super.saveOrUpdate(entity);
 	}