TASK: 批量生成 获取任务序号
This commit is contained in:
@@ -27,4 +27,6 @@ public interface ProjectService extends IService<Project> {
|
||||
Set<Long> getChildProjectIdSet(Long projectId);
|
||||
|
||||
List<Project> getByProjectNameLike(String projectName);
|
||||
|
||||
Integer getNextSequence();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user