缓存异步处理
This commit is contained in:
parent
9cde711a53
commit
eaadfe2eeb
@ -1,4 +1,4 @@
|
|||||||
package com.czlis.system.manager;
|
package com.czlis.common.asyncmanager;
|
||||||
|
|
||||||
import com.czlis.common.utils.Threads;
|
import com.czlis.common.utils.Threads;
|
||||||
import com.czlis.common.utils.spring.SpringUtils;
|
import com.czlis.common.utils.spring.SpringUtils;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.czlis.system.manager;
|
package com.czlis.common.asyncmanager;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -29,7 +29,7 @@ public class ComDictUtils {
|
|||||||
* 清空字典缓存
|
* 清空字典缓存
|
||||||
*/
|
*/
|
||||||
public static void clearDictCache() {
|
public static void clearDictCache() {
|
||||||
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys("com_dict:" + "*");
|
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.COM_DICT_KEY + "*");
|
||||||
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
|
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.czlis.system.aspectj;
|
package com.czlis.system.aspectj;
|
||||||
|
|
||||||
import com.czlis.common.annotation.Async;
|
import com.czlis.common.annotation.Async;
|
||||||
import com.czlis.system.manager.AsyncManager;
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Around;
|
||||||
@ -42,7 +42,7 @@ public class AsyncAspect {
|
|||||||
// 异步执行目标方法
|
// 异步执行目标方法
|
||||||
targetMethod.invoke(targetObject, methodArgs);
|
targetMethod.invoke(targetObject, methodArgs);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("异步执行方法失败", e);
|
log.error("异步执行{}方法失败",targetMethod, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import com.czlis.common.utils.SecurityUtils;
|
|||||||
import com.czlis.common.utils.ServletUtils;
|
import com.czlis.common.utils.ServletUtils;
|
||||||
import com.czlis.common.utils.StringUtils;
|
import com.czlis.common.utils.StringUtils;
|
||||||
import com.czlis.common.utils.ip.IpUtils;
|
import com.czlis.common.utils.ip.IpUtils;
|
||||||
import com.czlis.system.manager.AsyncManager;
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import com.czlis.system.manager.factory.AsyncFactory;
|
import com.czlis.system.manager.factory.AsyncFactory;
|
||||||
import com.czlis.system.domain.SysOperLog;
|
import com.czlis.system.domain.SysOperLog;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -23,8 +23,6 @@ import org.aspectj.lang.annotation.AfterReturning;
|
|||||||
import org.aspectj.lang.annotation.AfterThrowing;
|
import org.aspectj.lang.annotation.AfterThrowing;
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
import org.aspectj.lang.annotation.Before;
|
import org.aspectj.lang.annotation.Before;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.core.NamedThreadLocal;
|
import org.springframework.core.NamedThreadLocal;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import com.czlis.common.core.domain.model.LoginUser;
|
|||||||
import com.czlis.common.utils.MessageUtils;
|
import com.czlis.common.utils.MessageUtils;
|
||||||
import com.czlis.common.utils.ServletUtils;
|
import com.czlis.common.utils.ServletUtils;
|
||||||
import com.czlis.common.utils.StringUtils;
|
import com.czlis.common.utils.StringUtils;
|
||||||
import com.czlis.system.manager.AsyncManager;
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import com.czlis.system.manager.factory.AsyncFactory;
|
import com.czlis.system.manager.factory.AsyncFactory;
|
||||||
import com.czlis.system.web.service.TokenService;
|
import com.czlis.system.web.service.TokenService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@ -3,9 +3,13 @@ package com.czlis.system.service.impl;
|
|||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.TimerTask;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
|
import com.czlis.common.annotation.Async;
|
||||||
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -25,6 +29,7 @@ import com.czlis.system.service.ISysDictTypeService;
|
|||||||
* @author admin
|
* @author admin
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class SysDictTypeServiceImpl implements ISysDictTypeService {
|
public class SysDictTypeServiceImpl implements ISysDictTypeService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysDictTypeMapper dictTypeMapper;
|
private SysDictTypeMapper dictTypeMapper;
|
||||||
@ -37,7 +42,18 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService {
|
|||||||
*/
|
*/
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
|
TimerTask task = new TimerTask(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
// 异步执行目标方法
|
||||||
loadingDictCache();
|
loadingDictCache();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取系统字典失败,异步执行{}方法失败","loadingDictCache", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
AsyncManager.me().execute(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -123,8 +139,10 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService {
|
|||||||
/**
|
/**
|
||||||
* 加载字典缓存数据
|
* 加载字典缓存数据
|
||||||
*/
|
*/
|
||||||
|
@Async
|
||||||
@Override
|
@Override
|
||||||
public void loadingDictCache() {
|
public void loadingDictCache() {
|
||||||
|
System.out.println("异步执行线程:" + Thread.currentThread().getName()); // 新增此行
|
||||||
SysDictData dictData = new SysDictData();
|
SysDictData dictData = new SysDictData();
|
||||||
dictData.setStatus("0");
|
dictData.setStatus("0");
|
||||||
Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType));
|
Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType));
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import com.czlis.common.utils.DateUtils;
|
|||||||
import com.czlis.common.utils.MessageUtils;
|
import com.czlis.common.utils.MessageUtils;
|
||||||
import com.czlis.common.utils.StringUtils;
|
import com.czlis.common.utils.StringUtils;
|
||||||
import com.czlis.common.utils.ip.IpUtils;
|
import com.czlis.common.utils.ip.IpUtils;
|
||||||
import com.czlis.system.manager.AsyncManager;
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import com.czlis.system.manager.factory.AsyncFactory;
|
import com.czlis.system.manager.factory.AsyncFactory;
|
||||||
import com.czlis.system.security.context.AuthenticationContextHolder;
|
import com.czlis.system.security.context.AuthenticationContextHolder;
|
||||||
import com.czlis.system.service.ISysConfigService;
|
import com.czlis.system.service.ISysConfigService;
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import com.czlis.common.exception.user.CaptchaExpireException;
|
|||||||
import com.czlis.common.utils.MessageUtils;
|
import com.czlis.common.utils.MessageUtils;
|
||||||
import com.czlis.common.utils.SecurityUtils;
|
import com.czlis.common.utils.SecurityUtils;
|
||||||
import com.czlis.common.utils.StringUtils;
|
import com.czlis.common.utils.StringUtils;
|
||||||
import com.czlis.system.manager.AsyncManager;
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import com.czlis.system.manager.factory.AsyncFactory;
|
import com.czlis.system.manager.factory.AsyncFactory;
|
||||||
import com.czlis.system.service.ISysConfigService;
|
import com.czlis.system.service.ISysConfigService;
|
||||||
import com.czlis.system.service.ISysUserService;
|
import com.czlis.system.service.ISysUserService;
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.czlis.liswork.service.impl;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import cn.hutool.extra.pinyin.PinyinUtil;
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
||||||
|
import com.czlis.common.asyncmanager.AsyncManager;
|
||||||
import com.czlis.common.core.domain.Result;
|
import com.czlis.common.core.domain.Result;
|
||||||
import com.czlis.common.utils.ComDictUtils;
|
import com.czlis.common.utils.ComDictUtils;
|
||||||
import com.czlis.common.utils.StringUtils;
|
import com.czlis.common.utils.StringUtils;
|
||||||
@ -17,6 +18,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lis字典管理
|
* lis字典管理
|
||||||
*/
|
*/
|
||||||
@ -29,7 +32,18 @@ public class ComDictServiceImpl implements ComDictService {
|
|||||||
private ComDictMapper comDictMapper;
|
private ComDictMapper comDictMapper;
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
|
TimerTask task = new TimerTask(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
// 异步执行目标方法
|
||||||
loadingDictCache();
|
loadingDictCache();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取lis代码字典失败,异步执行{}方法失败","loadingDictCache", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
AsyncManager.me().execute(task);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 加载字典缓存数据
|
* 加载字典缓存数据
|
||||||
|
|||||||
@ -41,6 +41,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
LabReqmainMapper labReqmainMapper;
|
LabReqmainMapper labReqmainMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
LabReqdetailMapper labReqdetailMapper;
|
LabReqdetailMapper labReqdetailMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result newPatInfo(Date jyrq, String ybh, String sqh, String yq, Long userId) {
|
public Result newPatInfo(Date jyrq, String ybh, String sqh, String yq, Long userId) {
|
||||||
|
|
||||||
@ -192,6 +193,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核报告单全流程
|
* 审核报告单全流程
|
||||||
|
*
|
||||||
* @param jyrq
|
* @param jyrq
|
||||||
* @param yq
|
* @param yq
|
||||||
* @param ybh
|
* @param ybh
|
||||||
@ -215,6 +217,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
//if("0".equals(result.getCode()))return result;
|
//if("0".equals(result.getCode()))return result;
|
||||||
return new Result("0", "保存成功!");
|
return new Result("0", "保存成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Result beforecheck2(Date jyrq, String yq, String ybh, String hdys) {
|
public Result beforecheck2(Date jyrq, String yq, String ybh, String hdys) {
|
||||||
if (hdys == null || "".equals(hdys)) new Result("-1", "审核者为空,无法审核!");
|
if (hdys == null || "".equals(hdys)) new Result("-1", "审核者为空,无法审核!");
|
||||||
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
|
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
|
||||||
@ -247,6 +250,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新
|
* 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新
|
||||||
|
*
|
||||||
* @param jyrq
|
* @param jyrq
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -269,19 +273,23 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 结果表补充申请单项目代码
|
* 结果表补充申请单项目代码
|
||||||
|
*
|
||||||
* @param jyrq
|
* @param jyrq
|
||||||
* @param yq
|
* @param yq
|
||||||
* @param ybh
|
* @param ybh
|
||||||
*/
|
*/
|
||||||
public void setItemSqxmdh(Date jyrq, String yq, String ybh) {
|
public void setItemSqxmdh(Date jyrq, String yq, String ybh) {
|
||||||
String sqh = commonUtil.getSqhByKey(jyrq, yq, ybh);
|
String sqh = commonUtil.getSqhByKey(jyrq, yq, ybh);
|
||||||
if (sqh==null || "".equals(sqh)) {}else{
|
if (sqh == null || "".equals(sqh)) {
|
||||||
|
} else {
|
||||||
setItemSqxmdh(jyrq, yq, ybh, sqh);
|
setItemSqxmdh(jyrq, yq, ybh, sqh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//内部使用
|
//内部使用
|
||||||
private void setItemSqxmdh(Date jyrq, String yq, String ybh, String sqh) {
|
private void setItemSqxmdh(Date jyrq, String yq, String ybh, String sqh) {
|
||||||
if (sqh==null || "".equals(sqh)) {}else{
|
if (sqh == null || "".equals(sqh)) {
|
||||||
|
} else {
|
||||||
int sl = labReqdetailMapper.getCountByKey(sqh);
|
int sl = labReqdetailMapper.getCountByKey(sqh);
|
||||||
if (sl == 1) {
|
if (sl == 1) {
|
||||||
String sqxmdh = lisWorkOperMapper.selectSqxmdh(sqh);
|
String sqxmdh = lisWorkOperMapper.selectSqxmdh(sqh);
|
||||||
@ -291,8 +299,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算项目增加及重新计算
|
* 计算项目增加及重新计算
|
||||||
|
*
|
||||||
* @param jyrq
|
* @param jyrq
|
||||||
* @param yq
|
* @param yq
|
||||||
* @param ybh
|
* @param ybh
|
||||||
@ -302,6 +312,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
calcsample(labPat);
|
calcsample(labPat);
|
||||||
return new Result("0", "保存成功!");
|
return new Result("0", "保存成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
//内部使用
|
//内部使用
|
||||||
private void calcsample(LabPat labPat) {
|
private void calcsample(LabPat labPat) {
|
||||||
Date jyrq = labPat.getJyrq();
|
Date jyrq = labPat.getJyrq();
|
||||||
@ -341,8 +352,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算项目参考值结果异常标志
|
* 计算项目参考值结果异常标志
|
||||||
|
*
|
||||||
* @param jyrq
|
* @param jyrq
|
||||||
* @param yq
|
* @param yq
|
||||||
* @param ybh
|
* @param ybh
|
||||||
@ -355,6 +368,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算项目参考值结果异常标志(内部使用)
|
* 计算项目参考值结果异常标志(内部使用)
|
||||||
|
*
|
||||||
* @param labPat
|
* @param labPat
|
||||||
* @return 返回值0正常, 1有危急值明细存在
|
* @return 返回值0正常, 1有危急值明细存在
|
||||||
*/
|
*/
|
||||||
@ -409,7 +423,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
String brxm = labPat.getBrxm();
|
String brxm = labPat.getBrxm();
|
||||||
if (brxm.contains("质控") || brxm.contains("复查") || brxm.contains("QC") || brxm.contains("qc") || brxm.contains("软化水") || brxm.contains("锅炉水")) {
|
if (brxm.contains("质控") || brxm.contains("复查") || brxm.contains("QC") || brxm.contains("qc") || brxm.contains("软化水") || brxm.contains("锅炉水")) {
|
||||||
lb_wjz = false;
|
lb_wjz = false;
|
||||||
};
|
}
|
||||||
|
;
|
||||||
String brly = labPat.getBrly();
|
String brly = labPat.getBrly();
|
||||||
brly = commonUtil.getComDictNameById("PT", brly);
|
brly = commonUtil.getComDictNameById("PT", brly);
|
||||||
if (brly.contains("质控")) lb_wjz = false;
|
if (brly.contains("质控")) lb_wjz = false;
|
||||||
@ -432,6 +447,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 明细结果计算参考值异常标志危急值标志并更新
|
* 明细结果计算参考值异常标志危急值标志并更新
|
||||||
|
*
|
||||||
* @param labPat
|
* @param labPat
|
||||||
* @param labResult
|
* @param labResult
|
||||||
* @return
|
* @return
|
||||||
@ -524,7 +540,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
//文字型结果判断
|
//文字型结果判断
|
||||||
String jgbzold = labResult.getJgbz();
|
String jgbzold = labResult.getJgbz();
|
||||||
String lmtflag = getitemlmtflag(yq, xmdh, csjg);
|
String lmtflag = getitemlmtflag(yq, xmdh, csjg);
|
||||||
if("P".equals(jgbzold) && (csjg.indexOf("阳")>=0 || csjg.indexOf("+")>=0 || csjg.indexOf(":")>=0 ) && (lmtflag == null || lmtflag.trim().isEmpty())) lmtflag="P";
|
if ("P".equals(jgbzold) && (csjg.indexOf("阳") >= 0 || csjg.indexOf("+") >= 0 || csjg.indexOf(":") >= 0) && (lmtflag == null || lmtflag.trim().isEmpty()))
|
||||||
|
lmtflag = "P";
|
||||||
resultflag = lmtflag;
|
resultflag = lmtflag;
|
||||||
if ("J".equals(lmtflag)) wjzflag = "H";
|
if ("J".equals(lmtflag)) wjzflag = "H";
|
||||||
}
|
}
|
||||||
@ -546,8 +563,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
if (!"".equals(wjzflag)) wjz = 1;
|
if (!"".equals(wjzflag)) wjz = 1;
|
||||||
return wjz;
|
return wjz;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 特定条件危急值判断
|
* 特定条件危急值判断
|
||||||
|
*
|
||||||
* @param labPat
|
* @param labPat
|
||||||
* @param labResult
|
* @param labResult
|
||||||
* @return
|
* @return
|
||||||
@ -617,6 +636,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取常用取值结果标志
|
* 获取常用取值结果标志
|
||||||
|
*
|
||||||
* @param yq
|
* @param yq
|
||||||
* @param xmdh
|
* @param xmdh
|
||||||
* @param csjg
|
* @param csjg
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user