From ff4d34744f7f958b9ae7cf6931e9f6d344d8b1db Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Thu, 5 Dec 2024 16:02:27 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=B7=A5=E8=89=BA=E8=B7=AF=E7=BA=BF?= =?UTF-8?q?=E3=80=91=E7=BC=96=E5=8F=B7=E7=94=9F=E6=88=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProcessRouteTaskService.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java index 289c63e1..42ee924b 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java @@ -23,6 +23,7 @@ import com.nflg.product.technology.pojo.entity.*; import com.nflg.product.technology.pojo.query.ProcessRouteTaskQuery; import com.nflg.product.technology.pojo.vo.*; import nflg.product.common.constant.STATE; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +33,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -46,6 +48,8 @@ import java.util.stream.Collectors; @Service public class ProcessRouteTaskService extends ServiceImpl { + private static final String TASK_CODE_KEY = "processRouteTaskCode"; + @Resource private ProcessRouteTaskProcessesService processRouteTaskProcessesService; @Resource @@ -60,6 +64,8 @@ public class ProcessRouteTaskService extends ServiceImpl> redisTemplate; public IPage selectPageByCondition(ProcessRouteTaskQuery query) { //设置分页 @@ -185,7 +191,7 @@ public class ProcessRouteTaskService extends ServiceImpl processRouteTaskCode = redisTemplate.opsForValue().get(TASK_CODE_KEY); + // 第一次生成 + if (CollUtil.isEmpty(processRouteTaskCode)) { + String randomNumbers = getRandomNumbers(); + List randomList = new ArrayList<>(); + randomList.add(randomNumbers); + redisTemplate.opsForValue().set(TASK_CODE_KEY, randomList); + redisTemplate.expire(TASK_CODE_KEY, 1, TimeUnit.DAYS); // 有效期1天 + return randomNumbers; + } else { + String randomNumbers = loopGenerate(processRouteTaskCode); + processRouteTaskCode.add(randomNumbers); + redisTemplate.opsForValue().set(TASK_CODE_KEY, processRouteTaskCode); + return randomNumbers; + } + } + + private String loopGenerate(List processRouteTaskCode) { + String randomNumbers = getRandomNumbers(); + if (processRouteTaskCode.contains(randomNumbers)) { + randomNumbers = loopGenerate(processRouteTaskCode); + } + return randomNumbers; + } + + private String getRandomNumbers() { + String today = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMdd")); + String randomNumbers = RandomUtil.randomNumbers(4); + return today + randomNumbers; + } + public List getPBomAllTree(ProcessRouteTaskQuery query) { if (ObjectUtil.isEmpty(query.getMaterialNo())) { return null;