TASK: 批量生成 获取任务序号

This commit is contained in:
2025-06-30 15:11:31 +08:00
parent 68311e1d8b
commit 9a25e8ce4a
5 changed files with 85 additions and 34 deletions

View File

@@ -27,4 +27,6 @@ public interface ProjectService extends IService<Project> {
Set<Long> getChildProjectIdSet(Long projectId);
List<Project> getByProjectNameLike(String projectName);
Integer getNextSequence();
}

View File

@@ -1,52 +1,22 @@
package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.exceptions.ExceptionUtil;
import com.ai.da.common.config.FileProperties;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.constant.CommonConstant;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
import com.ai.da.common.enums.DesignTypeEnum;
import com.ai.da.common.enums.SingleOverallEnum;
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
import com.ai.da.common.utils.*;
import com.ai.da.mapper.primary.*;
import com.ai.da.mapper.primary.entity.Collection;
import com.ai.da.mapper.primary.entity.*;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
import com.ai.da.python.PythonService;
import com.ai.da.python.vo.*;
import com.ai.da.service.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.ai.da.python.vo.DesignPythonItem.*;
@Slf4j
@Service
@@ -72,4 +42,32 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
qw.lambda().like(Project::getName, projectName);
return projectMapper.selectList(qw);
}
@Resource
private BatchTaskSequenceMapper batchTaskSequenceMapper;
@Transactional(rollbackFor = Exception.class)
public Integer getNextSequence() {
Long accountId = UserContext.getUserHolder().getId();
// 1. 尝试插入新记录(如果用户不存在)
BatchTaskSequence newCounter = new BatchTaskSequence();
newCounter.setAccountId(accountId);
newCounter.setCurrentSequence(1);
newCounter.setCreateTime(LocalDateTime.now());
try {
batchTaskSequenceMapper.insert(newCounter);
return 1;
} catch (DuplicateKeyException e) {
// 2. 用户已存在,执行递增操作
batchTaskSequenceMapper.incrementSequence(accountId);
Integer sequence = batchTaskSequenceMapper.getLastInsertId();
// 3. 验证获取的序号
if (sequence == null) {
throw new RuntimeException("获取序号失败");
}
return sequence;
}
}
}