diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java index 0cdb76f1..512909e8 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java @@ -73,6 +73,8 @@ public class DepotHeadService { @Resource private SequenceService sequenceService; @Resource + private RedisService redisService; + @Resource DepotItemMapperEx depotItemMapperEx; @Resource private LogService logService; @@ -1107,6 +1109,17 @@ public class DepotHeadService { HttpServletRequest request) throws Exception { /**处理单据主表数据*/ DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); + //判断用户是否已经登录过,登录过不再处理 + User userInfo=userService.getCurrentUser(); + //通过redis去校验重复 + String keyNo = userInfo.getLoginName() + "_" + depotHead.getNumber(); + String keyValue = redisService.getCacheObject(keyNo); + if(StringUtil.isNotEmpty(keyValue)) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_MSG)); + } else { + redisService.storageKeyWithTime(keyNo, depotHead.getNumber(), 10L); + } //校验单号是否重复 if(checkIsBillNumberExist(0L, depotHead.getNumber())>0) { throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, @@ -1125,8 +1138,6 @@ public class DepotHeadService { String.format(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_MSG)); } } - //判断用户是否已经登录过,登录过不再处理 - User userInfo=userService.getCurrentUser(); depotHead.setCreator(userInfo==null?null:userInfo.getId()); depotHead.setCreateTime(new Timestamp(System.currentTimeMillis())); if(StringUtil.isEmpty(depotHead.getStatus())) { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java index be78f094..4ccd1b2b 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java @@ -104,6 +104,16 @@ public class RedisService { redisTemplate.opsForValue().set(verifyKey, codeNum, BusinessConstants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); } + /** + * 带有效时间缓存数据 + * @param key + * @param value + * @param time 单位秒 + */ + public void storageKeyWithTime(String key, String value, Long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } + /** * 删除单个对象 *