NeoFacade.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. package com.diagbot.facade;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.diagbot.client.StandConvertServiceClient;
  5. import com.diagbot.dto.BaseDiagnoseDTO;
  6. import com.diagbot.dto.BaseRegulationDTO;
  7. import com.diagbot.dto.DrugNameDTO;
  8. import com.diagbot.dto.DrugTypeCacheDTO;
  9. import com.diagbot.dto.DrugTypeDTO;
  10. import com.diagbot.dto.NeoPushDTO;
  11. import com.diagbot.dto.RuleDTO;
  12. import com.diagbot.entity.KlDiseaseCorresponding;
  13. import com.diagbot.entity.SymptomFeature;
  14. import com.diagbot.entity.TranHospitalFilter;
  15. import com.diagbot.enums.IsDeleteEnum;
  16. import com.diagbot.enums.PushRelationTypeEnum;
  17. import com.diagbot.enums.RedisEnum;
  18. import com.diagbot.exception.CommonErrorCode;
  19. import com.diagbot.exception.CommonException;
  20. import com.diagbot.model.entity.PD;
  21. import com.diagbot.service.KlDiseaseCorrespondingService;
  22. import com.diagbot.service.SymptomFeatureService;
  23. import com.diagbot.service.TranHospitalFilterService;
  24. import com.diagbot.util.ListUtil;
  25. import com.diagbot.util.NeoUtil;
  26. import com.diagbot.util.RedisUtil;
  27. import com.diagbot.util.StringUtil;
  28. import com.diagbot.vo.DiseaseItemVO;
  29. import com.diagbot.vo.NeoPushVO;
  30. import com.diagbot.vo.neoPushEntity.ChiefPushVo;
  31. import com.diagbot.vo.neoPushEntity.Diag;
  32. import com.diagbot.vo.neoPushEntity.PresentPushVo;
  33. import com.diagbot.vo.neoPushEntity.Symptom;
  34. import com.google.common.collect.Lists;
  35. import com.google.common.collect.Maps;
  36. import io.github.lvyahui8.spring.facade.DataFacade;
  37. import lombok.extern.slf4j.Slf4j;
  38. import org.apache.commons.collections.MapUtils;
  39. import org.springframework.beans.factory.annotation.Autowired;
  40. import org.springframework.stereotype.Component;
  41. import java.util.ArrayList;
  42. import java.util.HashMap;
  43. import java.util.LinkedHashMap;
  44. import java.util.List;
  45. import java.util.Map;
  46. import java.util.function.Function;
  47. import java.util.stream.Collectors;
  48. import static com.diagbot.util.StringUtil.permutationNoRepeat;
  49. /**
  50. * @Description: 缓存等相关装饰层
  51. * @author: Mark
  52. * @time: 2018/8/6 9:11
  53. */
  54. @Component
  55. @Slf4j
  56. public class NeoFacade {
  57. @Autowired
  58. NeoFacade self;
  59. @Autowired
  60. StandConvertServiceClient standConvertServiceClient;
  61. @Autowired
  62. RedisUtil redisUtil;
  63. @Autowired
  64. SymptomFeatureService symptomFeatureService;
  65. @Autowired
  66. KlDiseaseCorrespondingService klDiseaseCorrespondingService;
  67. @Autowired
  68. TranHospitalFilterService tranHospitalFilterService;
  69. @Autowired
  70. private KlRuleFacade klRuleFacade;
  71. @Autowired
  72. private KlRelationFacade klRelationFacade;
  73. @Autowired
  74. private KlDiagnoseBaseFacade klDiagnoseBaseFacade;
  75. @Autowired
  76. private KlRegulationBaseFacade klRegulationBaseFacade;
  77. /**
  78. * 返回药品缓存信息
  79. *
  80. * @return
  81. */
  82. public void getDrugCache() {
  83. List<DrugTypeDTO> list = klRelationFacade.getDrugType();
  84. List<DrugTypeCacheDTO> cacheDTOList = new ArrayList<>();
  85. for (DrugTypeDTO drugTypeDTO : list) {
  86. DrugTypeCacheDTO drugTypeCacheDTO = new DrugTypeCacheDTO();
  87. drugTypeCacheDTO.setDrugType(drugTypeDTO.getDrugType());
  88. drugTypeCacheDTO.setDrugs(drugTypeDTO.getDrugs().stream().map(DrugNameDTO::getDrug).collect(Collectors.toList()));
  89. cacheDTOList.add(drugTypeCacheDTO);
  90. }
  91. Map redisMap = cacheDTOList.stream().collect(
  92. Collectors.toMap(k -> RedisEnum.drugType.getName() + k.getDrugType(),
  93. v -> v.getDrugs(), (v1, v2) -> (v2)));
  94. if (redisMap != null && redisMap.size() > 0) {
  95. redisUtil.multiSet(redisMap);
  96. }
  97. }
  98. public void diseaseCorrespondCache() {
  99. List<KlDiseaseCorresponding> symptomFeatures = klDiseaseCorrespondingService.list(null);
  100. if (ListUtil.isNotEmpty(symptomFeatures)) {
  101. Map map = symptomFeatures.stream().collect(Collectors.toMap(
  102. k -> RedisEnum.diseaseCorrespond.getName() + k.getDiagPingan(),
  103. v -> {
  104. Map<String, Object> desc = new HashMap<>();
  105. desc.put("diag_icd", v.getDiagIcd());
  106. desc.put("sign", v.getHighRiskSign());
  107. return desc;
  108. },
  109. (v1, v2) -> (v2)
  110. ));
  111. redisUtil.multiSet(map);
  112. }
  113. }
  114. public void diseaseFilterCache() {
  115. Map<String, Map> data = new HashMap<>();
  116. QueryWrapper<TranHospitalFilter> queryWrapper = new QueryWrapper<>();
  117. queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
  118. List<TranHospitalFilter> tranHospitalFilters = tranHospitalFilterService.list(queryWrapper);
  119. if (ListUtil.isNotEmpty(tranHospitalFilters)) {
  120. Map<Long, List<TranHospitalFilter>> longListMap = tranHospitalFilters.stream().collect(Collectors.groupingBy(TranHospitalFilter::getHospitalId));
  121. longListMap.forEach((x, y) -> {
  122. Map<String, Long> collect = y.stream().collect(Collectors.toMap(TranHospitalFilter::getUniqueName, TranHospitalFilter::getDocNum, (existing, replacement) -> replacement));
  123. data.put(RedisEnum.diseaseFilter.getName() + x.toString(), collect);
  124. });
  125. redisUtil.multiSet(data);
  126. }
  127. }
  128. public void symptomFeatureCache() {
  129. List<SymptomFeature> symptomFeatures = symptomFeatureService.list(null);
  130. if (ListUtil.isNotEmpty(symptomFeatures)) {
  131. Map map = symptomFeatures.stream().collect(Collectors.toMap(
  132. k -> RedisEnum.symptomFeature.getName() + k.getMinCombineElement(),
  133. v -> {
  134. Map<String, String> desc = new HashMap<>();
  135. desc.put("minCombineElement", v.getMinCombineElement());
  136. desc.put("bodyPart", v.getBodyPart());
  137. desc.put("change", v.getVariety());
  138. desc.put("color", v.getColor());
  139. desc.put("degree", v.getDegree());
  140. desc.put("frequency", v.getFrequency());
  141. desc.put("position", v.getPosition());
  142. desc.put("radiationSituation", v.getRadiationSituation());
  143. desc.put("shapePropety", v.getShapePropety());
  144. return desc;
  145. },
  146. (v1, v2) -> (v2)
  147. ));
  148. redisUtil.multiSet(map);
  149. }
  150. }
  151. /**
  152. * 图谱反推的数据
  153. *
  154. * @param pushVO
  155. * @return
  156. */
  157. public NeoPushDTO getReversePush(NeoPushVO pushVO) {
  158. NeoPushDTO neoPushDTO = new NeoPushDTO();
  159. // 如果有诊断名称,则通过诊断反推
  160. if (null != pushVO.getDiagVo() && pushVO.getDiagVo().getDiags().size() > 0) {
  161. neoPushDTO = getDiagInfo(pushVO);
  162. }
  163. return neoPushDTO;
  164. }
  165. private List<String> getDiseaseByChief(NeoPushVO pushVO) {
  166. List<String> chiefDiags = Lists.newArrayList();
  167. ChiefPushVo chiefPushVo = pushVO.getChiefPushVo();
  168. if (chiefPushVo != null) {
  169. List<Diag> diags = chiefPushVo.getDiags();
  170. if (ListUtil.isNotEmpty(diags)) {
  171. chiefDiags = diags.stream().map(x -> x.getName()).collect(Collectors.toList());
  172. }
  173. }
  174. return chiefDiags;
  175. }
  176. private List<String> getDisByPresent(NeoPushVO pushVO) {
  177. List<String> presentDiags = Lists.newArrayList();
  178. PresentPushVo presentPushVo = pushVO.getPresentPushVo();
  179. if (presentPushVo != null) {
  180. List<Diag> diags = presentPushVo.getDiags();
  181. if (ListUtil.isNotEmpty(diags)) {
  182. presentDiags = diags.stream().map(x -> x.getName()).collect(Collectors.toList());
  183. }
  184. }
  185. return presentDiags;
  186. }
  187. private List<String> getDisByDiag(NeoPushVO pushVO) {
  188. List<String> diags = Lists.newArrayList();
  189. if (pushVO.getDiagVo() != null && ListUtil.isNotEmpty(pushVO.getDiagVo().getDiags())) {
  190. diags = pushVO.getDiagVo().getDiags().stream().map(x -> x.getName()).collect(Collectors.toList());
  191. }
  192. return diags;
  193. }
  194. /**
  195. * 把现病史中的诊断添加到推送诊断中
  196. *
  197. * @param lis_dis
  198. * @param presentDiags
  199. */
  200. public List<String> addDiagFromPresent(List<String> lis_dis, List<String> presentDiags) {
  201. List<String> lis_dis_new = Lists.newArrayList();
  202. if (ListUtil.isNotEmpty(lis_dis) && ListUtil.isNotEmpty(presentDiags)) {
  203. // if (lis_dis.size() >= 10) {
  204. if (lis_dis.size() >= 1) {
  205. for (int i = 0; i < lis_dis.size(); i++) {
  206. // if (i == 10 - presentDiags.size()) {
  207. if (i == 1) {
  208. for (String dis : presentDiags) {
  209. if (!lis_dis_new.contains(dis)) {
  210. lis_dis_new.add(dis);
  211. }
  212. }
  213. lis_dis_new.add(lis_dis.get(i));
  214. } else {
  215. lis_dis_new.add(lis_dis.get(i));
  216. }
  217. }
  218. } else {
  219. lis_dis_new.addAll(lis_dis);
  220. lis_dis_new.addAll(presentDiags);
  221. }
  222. lis_dis_new = lis_dis_new.stream().distinct().collect(Collectors.toList());
  223. } else {
  224. lis_dis.addAll(presentDiags);
  225. lis_dis_new = lis_dis;
  226. }
  227. return lis_dis_new;
  228. }
  229. private Map<Integer, List<String>> splitSymptom(String s_m, List<String> redis_key) {
  230. List<String> filter_keys = redis_key.stream().filter(x -> s_m.contains(x)).collect(Collectors.toList());
  231. List<Map<String, String>> redisDatas = redisUtil.getSf(filter_keys, RedisEnum.symptomFeature.getName());
  232. Map<String, List<String>> min_filds = Maps.newHashMap();
  233. if (ListUtil.isNotEmpty(redisDatas)) {
  234. redisDatas.forEach(x -> {
  235. List<String> datas = Lists.newArrayList();
  236. String minCombineElement = x.get("minCombineElement");
  237. String radiationSituation = x.get("radiationSituation");
  238. String color = x.get("color");
  239. String change = x.get("change");
  240. String degree = x.get("degree");
  241. String shapePropety = x.get("shapePropety");
  242. String position = x.get("position");
  243. String bodyPart = x.get("bodyPart");
  244. String frequency = x.get("frequency");
  245. searchWord(radiationSituation, s_m, "、", datas);
  246. searchWord(color, s_m, "、", datas);
  247. searchWord(change, s_m, "、", datas);
  248. searchWord(degree, s_m, "、", datas);
  249. searchWord(shapePropety, s_m, "、", datas);
  250. searchWord(position, s_m, "、", datas);
  251. searchWord(bodyPart, s_m, "、", datas);
  252. searchWord(frequency, s_m, "、", datas);
  253. min_filds.put(minCombineElement, datas);
  254. });
  255. }
  256. Map<Integer, List<String>> fild_pailie = Maps.newHashMap();
  257. if (MapUtils.isNotEmpty(min_filds)) {
  258. min_filds.forEach((k, v) -> {
  259. v.add(k);
  260. for (int i = v.size(); i > 0; i--) {
  261. List<String> datad = permutationNoRepeat(v, i);
  262. if (fild_pailie.containsKey(i)) {
  263. List<String> strings = fild_pailie.get(i);
  264. datad.removeAll(strings);
  265. strings.addAll(datad);
  266. fild_pailie.put(i, strings);
  267. } else {
  268. fild_pailie.put(i, datad);
  269. }
  270. }
  271. });
  272. }
  273. return fild_pailie;
  274. }
  275. public void searchWord(String color, String regionWord, String patternFild, List<String> datas) {
  276. if (StringUtil.isNotEmpty(color)) {
  277. String[] splitsData = color.split(patternFild);
  278. for (String fils : splitsData) {
  279. if (regionWord.contains(fils)) {
  280. datas.add(fils);
  281. }
  282. }
  283. }
  284. }
  285. public List<String> getSymptoms(NeoPushVO pushVO) {
  286. List<String> symptom_chief = Lists.newArrayList();
  287. List<String> symptom_present = Lists.newArrayList();
  288. ChiefPushVo chiefPushVo = pushVO.getChiefPushVo();
  289. PresentPushVo presentPushVo = pushVO.getPresentPushVo();
  290. if (chiefPushVo != null) {
  291. List<Symptom> symptoms = chiefPushVo.getSymptoms();
  292. if (ListUtil.isNotEmpty(symptoms)) {
  293. symptom_chief = symptoms.stream().map(x -> x.getName()).collect(Collectors.toList());
  294. }
  295. }
  296. if (presentPushVo != null) {
  297. List<Symptom> symptoms = presentPushVo.getSymptoms();
  298. if (ListUtil.isNotEmpty(symptoms)) {
  299. symptom_present = symptoms.stream().map(x -> x.getName()).collect(Collectors.toList());
  300. }
  301. }
  302. symptom_present.removeAll(symptom_chief);
  303. symptom_chief.addAll(symptom_present);
  304. return symptom_chief;
  305. }
  306. public void filterAndSort(List<String> dises, List<String> allDis, int gender_code, double age, PD pd, List<String> depts) {
  307. //推送出的所有疾病进行性别和年龄的过滤
  308. List<Map<String, String>> diseases = null;
  309. Map<String, Double> dis_fbl = new HashMap<>();
  310. if (ListUtil.isNotEmpty(allDis)) {
  311. diseases = redisUtil.geth(allDis);
  312. allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
  313. && NeoUtil.matchDept(x, depts)).map(x -> x.get("name")).collect(Collectors.toList());
  314. diseases.forEach(x -> {
  315. String name = x.get("name");
  316. double clafy = Double.parseDouble(x.get("clafy"));
  317. dis_fbl.put(name, clafy);
  318. });
  319. }
  320. Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
  321. //根据发病率排序
  322. // Map<String, Double> disdistributionCache = self.getDisdistributionCache();
  323. Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
  324. numberDiseasesMap.forEach((x, y) -> {
  325. Map<String, Double> collect = y.stream()
  326. .collect(Collectors.toMap(v -> v, v -> dis_fbl.get(v), (e1, e2) -> e2));
  327. disPack.put(x, collect);
  328. });
  329. disPack.forEach((x, y) -> {
  330. //倒序排序
  331. // Map<String, Double> collect = y.entrySet().stream()
  332. // .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
  333. // .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
  334. //正序排序
  335. Map<String, Double> collect = y.entrySet().stream()
  336. .sorted(Map.Entry.comparingByValue())
  337. .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
  338. disPack.put(x, collect);
  339. collect.forEach((k, n) -> {
  340. dises.add(k);
  341. });
  342. });
  343. }
  344. /**
  345. * 推送的疾病计数排序
  346. *
  347. * @param allDis
  348. * @return
  349. */
  350. public Map<Long, List<String>> disCountSort(List<String> allDis) {
  351. Map<String, Long> dis_count = allDis.stream().collect(
  352. Collectors.groupingBy(Function.identity(), Collectors.counting())
  353. );
  354. if (dis_count != null && dis_count.size() > 0) {
  355. dis_count = dis_count.entrySet().stream().sorted((o1, o2) -> o2.getValue().compareTo(o1.getValue()))
  356. .map(entry -> {
  357. Map<String, Long> result = new LinkedHashMap();
  358. result.put(entry.getKey(), entry.getValue());
  359. return result;
  360. }).reduce((map1, map2) -> {
  361. map2.entrySet().forEach(entry -> map1.put(entry.getKey(), entry.getValue()));
  362. return map1;
  363. }).get();
  364. }
  365. Map<Long, List<String>> number_diseases = new LinkedHashMap<>();
  366. dis_count.forEach((x, y) -> {
  367. if (number_diseases.containsKey(y)) {
  368. List<String> diseases = number_diseases.get(y);
  369. diseases.add(x);
  370. number_diseases.put(y, diseases);
  371. } else {
  372. List<String> diseases = Lists.newArrayList();
  373. diseases.add(x);
  374. number_diseases.put(y, diseases);
  375. }
  376. });
  377. return number_diseases;
  378. }
  379. /**
  380. * 反推信息
  381. *
  382. * @param dis
  383. * @return
  384. */
  385. public NeoPushDTO reverseInfoMySql(String dis, NeoPushVO neoPushVO) {
  386. NeoPushDTO neoPushDTO = new NeoPushDTO();
  387. //查询疾病相关的项目
  388. DiseaseItemVO diseaseItemVO = new DiseaseItemVO();
  389. diseaseItemVO.setDiseaseName(dis);
  390. diseaseItemVO.setAge(neoPushVO.getAgeNum());
  391. diseaseItemVO.setSexType(neoPushVO.getSex());
  392. Map<Long, List<String>> items = klRelationFacade.getItemByDiseaseMap(diseaseItemVO);
  393. if (MapUtils.isNotEmpty(items)) {
  394. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.SYMPTOMMAIN.getKey()))) {
  395. neoPushDTO.setSymptoms(items.get(PushRelationTypeEnum.SYMPTOMMAIN.getKey())
  396. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  397. }
  398. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.VITAL.getKey()))) {
  399. neoPushDTO.setVitals(items.get(PushRelationTypeEnum.VITAL.getKey())
  400. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  401. }
  402. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.LIS.getKey()))) {
  403. neoPushDTO.setLis(items.get(PushRelationTypeEnum.LIS.getKey())
  404. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  405. }
  406. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.PACS.getKey()))) {
  407. neoPushDTO.setPacs(items.get(PushRelationTypeEnum.PACS.getKey())
  408. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  409. }
  410. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.DIFFDIAGNOSE.getKey()))) {
  411. neoPushDTO.setDifferentialDis(items.get(PushRelationTypeEnum.DIFFDIAGNOSE.getKey())
  412. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  413. }
  414. if (ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.SCALE.getKey()))) {
  415. neoPushDTO.setScales(items.get(PushRelationTypeEnum.SCALE.getKey())
  416. .stream().map(x -> NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
  417. }
  418. }
  419. return neoPushDTO;
  420. }
  421. /**
  422. * 推送疾病信息
  423. *
  424. * @param neoPushVO
  425. * @return
  426. */
  427. public NeoPushDTO getDiagInfo(NeoPushVO neoPushVO) {
  428. NeoPushDTO pushDTO = new NeoPushDTO();
  429. String term = neoPushVO.getDiagVo().getDiags().get(0).getName();
  430. pushDTO = this.reverseInfoMySql(term, neoPushVO);
  431. return pushDTO;
  432. }
  433. /**
  434. * 提取方法
  435. *
  436. * @param jsonArray
  437. * @param originName
  438. * @param map
  439. */
  440. public void putMap(JSONArray jsonArray, String originName, Map<String, String> map) {
  441. if (jsonArray.size() == 2) {
  442. double likeRate = jsonArray.getDoubleValue(1);
  443. // System.out.println(originName + " " + likeRate);
  444. if (likeRate > 0.9) {
  445. String standName = jsonArray.getString(0);
  446. map.put(originName, standName);
  447. } else {
  448. map.put(originName, originName);
  449. }
  450. }
  451. }
  452. public void allRuleCache() {
  453. // List<RuleDTO> ruleDTOList = klRuleFacade.getAllRule();
  454. // if (ListUtil.isNotEmpty(ruleDTOList)) {
  455. // Map map = ruleDTOList.stream().collect(Collectors.toMap(
  456. // k -> RedisEnum.allRule.getName() + k.getLibType() + "_" + k.getLibName() + "_" + k.getRuleType(),
  457. // v -> v,
  458. // (v1, v2) -> (v2)
  459. // ));
  460. // redisTemplate.opsForValue().multiSet(map);
  461. // }
  462. try {
  463. Map<String, Object> invokeParams = new HashMap<>();
  464. Map<String, RuleDTO> map = DataFacade.get("getAllRules", invokeParams, Map.class);
  465. redisUtil.multiSet(map);
  466. } catch (Exception e) {
  467. throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有规则失败" + e.getMessage());
  468. }
  469. }
  470. public void allBaseDiagnose() {
  471. List<BaseDiagnoseDTO> list = klDiagnoseBaseFacade.getAllBaseDiagnose();
  472. if (ListUtil.isNotEmpty(list)) {
  473. redisUtil.set(RedisEnum.allBaseDiagnose.getName(), list);
  474. }
  475. }
  476. public void allBaseRegulation() {
  477. List<BaseRegulationDTO> list = klRegulationBaseFacade.getSelectBase(new ArrayList<>());
  478. if (ListUtil.isNotEmpty(list)) {
  479. redisUtil.set(RedisEnum.allBaseRegulation.getName(), list);
  480. }
  481. }
  482. }