【工艺路线】编号生成规则
This commit is contained in:
parent
f6c5072ee4
commit
ff4d34744f
|
|
@ -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.query.ProcessRouteTaskQuery;
|
||||||
import com.nflg.product.technology.pojo.vo.*;
|
import com.nflg.product.technology.pojo.vo.*;
|
||||||
import nflg.product.common.constant.STATE;
|
import nflg.product.common.constant.STATE;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
|
@ -32,6 +33,7 @@ import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ForkJoinPool;
|
import java.util.concurrent.ForkJoinPool;
|
||||||
import java.util.concurrent.ForkJoinTask;
|
import java.util.concurrent.ForkJoinTask;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -46,6 +48,8 @@ import java.util.stream.Collectors;
|
||||||
@Service
|
@Service
|
||||||
public class ProcessRouteTaskService extends ServiceImpl<ProcessRouteTaskMapper, ProcessRouteTaskEntity> {
|
public class ProcessRouteTaskService extends ServiceImpl<ProcessRouteTaskMapper, ProcessRouteTaskEntity> {
|
||||||
|
|
||||||
|
private static final String TASK_CODE_KEY = "processRouteTaskCode";
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessRouteTaskProcessesService processRouteTaskProcessesService;
|
private ProcessRouteTaskProcessesService processRouteTaskProcessesService;
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -60,6 +64,8 @@ public class ProcessRouteTaskService extends ServiceImpl<ProcessRouteTaskMapper,
|
||||||
private ProcessRouteTaskProcessesMapper processRouteTaskProcessesMapper;
|
private ProcessRouteTaskProcessesMapper processRouteTaskProcessesMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessRouteTaskAssemblyMapper processRouteTaskAssemblyMapper;
|
private ProcessRouteTaskAssemblyMapper processRouteTaskAssemblyMapper;
|
||||||
|
@Resource
|
||||||
|
private RedisTemplate<String, List<String>> redisTemplate;
|
||||||
|
|
||||||
public IPage<ProcessRouteTaskVO> selectPageByCondition(ProcessRouteTaskQuery query) {
|
public IPage<ProcessRouteTaskVO> selectPageByCondition(ProcessRouteTaskQuery query) {
|
||||||
//设置分页
|
//设置分页
|
||||||
|
|
@ -185,7 +191,7 @@ public class ProcessRouteTaskService extends ServiceImpl<ProcessRouteTaskMapper,
|
||||||
// 新增
|
// 新增
|
||||||
if (ObjectUtil.isEmpty(processRouteTaskVO.getRowId())) {
|
if (ObjectUtil.isEmpty(processRouteTaskVO.getRowId())) {
|
||||||
taskEntity.setRowId(IdWorker.getId());
|
taskEntity.setRowId(IdWorker.getId());
|
||||||
taskEntity.setTaskCode(RandomUtil.randomString(8));
|
taskEntity.setTaskCode(generateRandomTaskCode());
|
||||||
taskEntity.setCreatedByName(SessionUtil.getRealName());
|
taskEntity.setCreatedByName(SessionUtil.getRealName());
|
||||||
taskEntity.setExpireStartTime(firstDay);
|
taskEntity.setExpireStartTime(firstDay);
|
||||||
taskEntity.setExpireEndTime(lastDay);
|
taskEntity.setExpireEndTime(lastDay);
|
||||||
|
|
@ -245,6 +251,42 @@ public class ProcessRouteTaskService extends ServiceImpl<ProcessRouteTaskMapper,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 随机不重复编号,格式:yymmdd随机四位数字
|
||||||
|
* @return 随机编号
|
||||||
|
*/
|
||||||
|
private synchronized String generateRandomTaskCode() {
|
||||||
|
List<String> processRouteTaskCode = redisTemplate.opsForValue().get(TASK_CODE_KEY);
|
||||||
|
// 第一次生成
|
||||||
|
if (CollUtil.isEmpty(processRouteTaskCode)) {
|
||||||
|
String randomNumbers = getRandomNumbers();
|
||||||
|
List<String> 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<String> 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<BomNewPBomVO> getPBomAllTree(ProcessRouteTaskQuery query) {
|
public List<BomNewPBomVO> getPBomAllTree(ProcessRouteTaskQuery query) {
|
||||||
if (ObjectUtil.isEmpty(query.getMaterialNo())) {
|
if (ObjectUtil.isEmpty(query.getMaterialNo())) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue