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