Browse Source

alteams 上线版本 2022年10月26日 sxm

master
[li_she] 3 years ago
parent
commit
d714b9deb3
  1. 107
      src/main/java/com/alteams/common/aop/RepeatSubmitAspect.java
  2. 22
      src/main/java/com/alteams/modules/shoporder/service/impl/OrderTimeHistServiceImpl.java

107
src/main/java/com/alteams/common/aop/RepeatSubmitAspect.java

@ -1,11 +1,9 @@
package com.alteams.common.aop;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alteams.common.exception.XJException;
import com.alteams.modules.sys.entity.SysUserEntity;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.aspectj.lang.ProceedingJoinPoint;
@ -16,61 +14,58 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.TimeUnit;
/**
* @ClassName: RepeatSubmitAspect
* @Description: 自定义注释切点
* @author LR
* @date 2020年4月17日
* @version V1.0
/**
* @author LR
* @version V1.0
* @ClassName: RepeatSubmitAspect
* @Description: 自定义注释切点
* @date 2020年4月17日
*/
@Component
@Aspect
public class RepeatSubmitAspect {
//缓存数据存放
private static final Cache<String, Object> caches = CacheBuilder.newBuilder()
.maximumSize(10000).expireAfterWrite(10, TimeUnit.SECONDS).build();
//切点
@Pointcut("@annotation(com.alteams.common.annotation.RepeatSubmit)")
public void pointCut() {}
//处理业务逻辑
@Around("pointCut()")
public Object submitAop(ProceedingJoinPoint pjp) throws Exception {
//获取request
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String url = request.getRequestURI();
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
//判断是否是否null
if(null == currentUser) {
HttpServletResponse response = attributes.getResponse();
response.sendError(HttpServletResponse.SC_FORBIDDEN, "Session is expired!");
return response;
}
String username = currentUser.getUsername();
//根据用户id+url作为唯一识别的请求
String key = username + "-" + url;
//空值校验
if(!StringUtils.isEmpty(key)) {
//判断是否患有当前的key
if(caches.getIfPresent(key) == null) {
caches.put(key, key);
}else {
HttpServletResponse response = attributes.getResponse();
response.sendError(500, "重复提交!");
return response;
}
}
//通过检验继续操作
try {
return pjp.proceed();
} catch (Throwable e) {
throw new RuntimeException(e.getMessage());
}
}
//缓存数据存放 后续要改小时间 目前十秒钟
private static final Cache<String, Object> caches = CacheBuilder.newBuilder()
.maximumSize(10000).expireAfterWrite(5, TimeUnit.SECONDS).build();
//切点
@Pointcut("@annotation(com.alteams.common.annotation.RepeatSubmit)")
public void pointCut() {
}
//处理业务逻辑
@Around("pointCut()")
public Object submitAop(ProceedingJoinPoint pjp) throws Exception {
//获取request
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String url = request.getRequestURI();
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
//判断是否是否null
if (null == currentUser) {
throw new XJException("Session is expired!", 500);
}
String username = currentUser.getUsername();
//根据用户id+url作为唯一识别的请求
String key = username + "-" + url;
//空值校验
if (!StringUtils.isEmpty(key)) {
//判断是否患有当前的key
if (caches.getIfPresent(key) == null) {
caches.put(key, key);
} else {
throw new XJException("重复提交!", 500);
}
}
//通过检验继续操作
try {
return pjp.proceed();
} catch (Throwable e) {
throw new XJException(e.getMessage());
}
}
}

22
src/main/java/com/alteams/modules/shoporder/service/impl/OrderTimeHistServiceImpl.java

@ -109,7 +109,7 @@ public class OrderTimeHistServiceImpl extends ServiceImpl<OrderTimeHistDao, Orde
shopOrderHist.setOrderRef1(orderTimeHist.getOrderref1());
shopOrderHist.setOrderRef2(orderTimeHist.getOrderref2());
shopOrderHist.setItemNo(orderTimeHist.getItemno());
// 工序历史生产数量+ 本次生产数量
// 工序历史生产数量 + 本次生产数量
shopOrderHist.setTotalQty(orderTimeHist.getQtyprd());
shopOrderHist.setTotalTime(orderTimeHist.getTotaltime());
// 累计成本
@ -244,7 +244,7 @@ public class OrderTimeHistServiceImpl extends ServiceImpl<OrderTimeHistDao, Orde
if (OrderTimeHistConstant.ORDER_TYPE_F.equals(orderTimeHistInfo.getEventtype())
&& OrderTimeHistConstant.ORDER_TYPE_R.equals(orderTimeHist.getEventtype())) {
// 不允许修改第一条常规生产记录 生产类型
if(orderTimeHist.getHistseqno() == 1){
if (orderTimeHist.getHistseqno() == 1) {
throw new XJException(ResponseEnum.ORDER_NOT_ALLOWED_FIRST_MODIFIED);
}
//
@ -313,8 +313,6 @@ public class OrderTimeHistServiceImpl extends ServiceImpl<OrderTimeHistDao, Orde
}
public OrderTimeHistEntity getTotalOrderTimeHist(OrderTimeHistEntity orderTimeHistQuery) {
return this.baseMapper.getTotalOrderTimeHist(orderTimeHistQuery);
}
@ -438,13 +436,13 @@ public class OrderTimeHistServiceImpl extends ServiceImpl<OrderTimeHistDao, Orde
}
public int getOrderTimeHistCountF(OrderTimeHistEntity orderTimeHistInfo) {
return lambdaQuery()
.eq(OrderTimeHistEntity::getSite, orderTimeHistInfo.getSite())
.eq(OrderTimeHistEntity::getOrderno, orderTimeHistInfo.getOrderno())
.eq(OrderTimeHistEntity::getItemno, orderTimeHistInfo.getItemno())
.eq(OrderTimeHistEntity::getOrderref1, orderTimeHistInfo.getOrderref1())
.eq(OrderTimeHistEntity::getOrderref2, orderTimeHistInfo.getOrderref2())
.eq(OrderTimeHistEntity::getEventtype,OrderTimeHistConstant.ORDER_TYPE_F)
.count();
return lambdaQuery()
.eq(OrderTimeHistEntity::getSite, orderTimeHistInfo.getSite())
.eq(OrderTimeHistEntity::getOrderno, orderTimeHistInfo.getOrderno())
.eq(OrderTimeHistEntity::getItemno, orderTimeHistInfo.getItemno())
.eq(OrderTimeHistEntity::getOrderref1, orderTimeHistInfo.getOrderref1())
.eq(OrderTimeHistEntity::getOrderref2, orderTimeHistInfo.getOrderref2())
.eq(OrderTimeHistEntity::getEventtype, OrderTimeHistConstant.ORDER_TYPE_F)
.count();
}
}
Loading…
Cancel
Save