diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index 32b3e3a..c0c8bae 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -149,8 +149,6 @@ public class CommonUtil { return xmAlarmdetailMapper.getXmAlarmdetail(yq, xmdh); } - ; - //服务器时间方法 public Date getCurrentTime() { @@ -212,6 +210,15 @@ public class CommonUtil { return comDictMapper.getComDictIdByName(zdlb, zdmc); } + public List getComDictList(String zdlb){ + List dictCacheList = getDictCache(zdlb); + if(dictCacheList != null){ + return dictCacheList; + }else{ + return comDictMapper.getComDictListByZdlb(zdlb); + } + } + public String getComOptValue(String yq, String xxdh) { ComOpt comOpt = getOptCache(yq, xxdh); if (comOpt != null) { @@ -226,6 +233,11 @@ public class CommonUtil { } + public void setDictCache(String zdlb, List dictDatas){ + ComDictUtils.setDictCache(zdlb,dictDatas); + } + + public List getLabReqdetailList(String sqh) { return labReqdetailMapper.getLabReqdetailList(sqh); } diff --git a/lis-quartz/src/main/java/com/czlis/quartz/service/impl/SysJobServiceImpl.java b/lis-quartz/src/main/java/com/czlis/quartz/service/impl/SysJobServiceImpl.java index 2be54be..44dae11 100644 --- a/lis-quartz/src/main/java/com/czlis/quartz/service/impl/SysJobServiceImpl.java +++ b/lis-quartz/src/main/java/com/czlis/quartz/service/impl/SysJobServiceImpl.java @@ -33,8 +33,9 @@ public class SysJobServiceImpl implements ISysJobService { /** * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据) + * 统一在applicationconfig类中进行异步调用 */ - @PostConstruct + //@PostConstruct public void init() throws SchedulerException, TaskException { scheduler.clear(); List jobList = jobMapper.selectJobAll(); diff --git a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java index 7ee50ef..b25d553 100644 --- a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java +++ b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java @@ -1,15 +1,26 @@ package com.czlis.system.config; +import com.czlis.common.asyncmanager.AsyncManager; +import com.czlis.common.utils.ComDictUtils; +import com.czlis.interfaceCommon.mapper.ComDictMapper; +import com.czlis.quartz.service.impl.SysJobServiceImpl; +import com.czlis.system.service.impl.SysConfigServiceImpl; +import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; 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 java.util.Arrays; +import java.util.List; import java.util.TimeZone; +import java.util.TimerTask; /** * 程序注解配置 + * 项目初始化运行逻辑 * * @author admin */ @@ -18,7 +29,19 @@ import java.util.TimeZone; @EnableAspectJAutoProxy(exposeProxy = true) // 指定要扫描的Mapper类的包的路径 @MapperScan("com.czlis.**.mapper") +@Slf4j public class ApplicationConfig { + + @Autowired + private ComDictMapper comDictMapper; + @Autowired + private SysConfigServiceImpl sysConfigService; + @Autowired + private SysJobServiceImpl sysJobService; + + //选择性提供缓存的字典类别 + private List list = Arrays.asList("GROUP","AU","BT","DG", "DP", "FT", "HOS","LG","PT","PW","SRD","SX","UT","CM","VF"); + /** * 时区配置 */ @@ -26,4 +49,67 @@ public class ApplicationConfig { public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); } + + /** + * 加载字典缓存数据 + */ + @Bean + public void loadingDictCache() { + TimerTask task = new TimerTask(){ + @Override + public void run() { + try { + //清空所有com_dict缓存 + ComDictUtils.clearDictCache(); + list.stream().forEach(zdlb -> ComDictUtils.setDictCache(zdlb, comDictMapper.getComDictListByZdlb(zdlb))); + } catch (Exception e) { + log.error("获取lis代码字典失败,异步执行{}方法失败",this, e); + } + } + }; + AsyncManager.me().execute(task); + + } + + /** + * 加载系统配置缓存 + */ + @Bean + public void loadingSysConfigCache() { + TimerTask task = new TimerTask(){ + @Override + public void run() { + try { + sysConfigService.loadingConfigCache(); + } catch (Exception e) { + log.error("获取系统配置字典失败,异步执行{}方法失败",this, e); + } + } + }; + AsyncManager.me().execute(task); + + } + + /** + * 加载定时任务列表 + */ + @Bean + public void loadingSysJobCache() { + TimerTask task = new TimerTask(){ + @Override + public void run() { + try { + sysJobService.init(); + } catch (Exception e) { + log.error("获取系统配置字典失败,异步执行{}方法失败",this, e); + } + } + }; + AsyncManager.me().execute(task); + } + + + + + } diff --git a/lis-system/src/main/java/com/czlis/system/service/impl/SysConfigServiceImpl.java b/lis-system/src/main/java/com/czlis/system/service/impl/SysConfigServiceImpl.java index 5fcb499..977a25d 100644 --- a/lis-system/src/main/java/com/czlis/system/service/impl/SysConfigServiceImpl.java +++ b/lis-system/src/main/java/com/czlis/system/service/impl/SysConfigServiceImpl.java @@ -34,10 +34,10 @@ public class SysConfigServiceImpl implements ISysConfigService { /** * 项目启动时,初始化参数到缓存 */ - @PostConstruct - public void init() { - loadingConfigCache(); - } +// @PostConstruct +// public void init() { +// loadingConfigCache(); +// } /** * 查询参数配置信息 diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/ComDictServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/ComDictServiceImpl.java index 631f69b..6cea42f 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/ComDictServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/ComDictServiceImpl.java @@ -1,14 +1,13 @@ package com.czlis.liswork.service.impl; -import java.util.Arrays; + import cn.hutool.extra.pinyin.PinyinUtil; -import com.czlis.common.asyncmanager.AsyncManager; import com.czlis.common.core.domain.Result; -import com.czlis.common.utils.ComDictUtils; import com.czlis.common.utils.StringUtils; import com.czlis.interfaceCommon.mapper.ComDictMapper; import com.czlis.common.core.domain.entity.lis.ComDict; +import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.liswork.service.ComDictService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -16,65 +15,35 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; -import java.util.List; -import java.util.TimerTask; +import java.util.List; /** * lis字典管理 */ @Service @Slf4j public class ComDictServiceImpl implements ComDictService { - //选择性提供缓存的字典类别 - private List list = Arrays.asList("GROUP","AU","BT","DG", "DP", "FT", "HOS","LG","PT","PW","SRD","SX","UT","CM","VF"); + @Autowired private ComDictMapper comDictMapper; - @PostConstruct - public void init() { - TimerTask task = new TimerTask(){ - @Override - public void run() { - try { - // 异步执行目标方法 - loadingDictCache(); - } catch (Exception e) { - log.error("获取lis代码字典失败,异步执行{}方法失败","loadingDictCache", e); - } - } - }; - AsyncManager.me().execute(task); - } - /** - * 加载字典缓存数据 - */ - private void loadingDictCache() { - //清空所有com_dict缓存 - ComDictUtils.clearDictCache(); - list.stream().forEach(zdlb -> ComDictUtils.setDictCache(zdlb, comDictMapper.getComDictListByZdlb(zdlb))); - } - private void setDictCache(String zdlb,List comDictList) { - boolean isPresent = list.contains(zdlb); - if(isPresent)ComDictUtils.setDictCache(zdlb,comDictList); - } - private List getDictCache(String zdlb) { - boolean isPresent = list.contains(zdlb); - if(isPresent) return ComDictUtils.getDictCache(zdlb); - else return comDictMapper.getComDictListByZdlb(zdlb); - } + @Autowired + private CommonUtil commonUtil; + + + @Override public List getComDictList(ComDict comDict) { - return getDictCache(comDict.getZdlb()); + return commonUtil.getComDictList(comDict.getZdlb()); } @Override public Result getComDicts(String zdlb) { - List comDictList = getDictCache(zdlb); + List comDictList = commonUtil.getComDictList(zdlb); return new Result("0", "成功!",comDictList); } //根据编号查名称 public Result getComDictNameById(String zdlb,String zddh) { - List comDictList =getDictCache(zdlb); + List comDictList =commonUtil.getComDictList(zdlb); for (ComDict dict : comDictList) { if (zddh.equals(dict.getZddh())) { return new Result("0", "成功!",dict.getZdmc()); @@ -84,7 +53,7 @@ public class ComDictServiceImpl implements ComDictService { } //根据名称查编号 public Result getComDictIdByName(String zdlb,String zdmc) { - List comDictList =getDictCache(zdlb); + List comDictList =commonUtil.getComDictList(zdlb); for (ComDict dict : comDictList) { if (zdmc.equals(dict.getZdmc())) { return new Result("0", "成功!",dict.getZddh()); @@ -109,7 +78,7 @@ public class ComDictServiceImpl implements ComDictService { int row = comDictMapper.insertComDict(comDict); if (row > 0) { List comDictList = comDictMapper.getComDictList(comDict); - setDictCache(comDict.getZdlb(), comDictList); + commonUtil.setDictCache(comDict.getZdlb(), comDictList); } return null; } @@ -158,7 +127,7 @@ public class ComDictServiceImpl implements ComDictService { ComDict comDict0 = new ComDict(); comDict0.setZdlb(zdlb); List comDictList1 = comDictMapper.getComDictList(comDict0); - setDictCache(comDict0.getZdlb(), comDictList1); + commonUtil.setDictCache(comDict0.getZdlb(), comDictList1); if (failureNum == comDictList.size()) { return new Result("0", "数据已全部导入成功!共 " + comDictList.size() + " 条"); } else { @@ -196,7 +165,7 @@ public class ComDictServiceImpl implements ComDictService { if (zddh == null || zddh.equals("")) return new Result("-1", "字典代号不能为空!"); if (yljg == null || yljg.equals("")) return new Result("-1", "医疗机构不能为空!"); int row = comDictMapper.delComDict(comDict); - if (row > 0) setDictCache(zdlb, comDictMapper.getComDictListByZdlb(zdlb)); + if (row > 0) commonUtil.setDictCache(zdlb,comDictMapper.getComDictListByZdlb(zdlb)); return new Result("0", "删除成功!"); } @@ -206,7 +175,7 @@ public class ComDictServiceImpl implements ComDictService { int row = comDictMapper.updateComDict(comDict); if (row > 0) { List comDictList = comDictMapper.getComDictList(comDict); - setDictCache(comDict.getZdlb(), comDictList); + commonUtil.setDictCache(comDict.getZdlb(), comDictList); } return new Result("0", "修改成功!"); }