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;