TASK: 批量生成 获取任务序号
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
package com.ai.da.controller;
|
package com.ai.da.controller;
|
||||||
|
|
||||||
|
import com.ai.da.common.config.MyTaskScheduler;
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
import com.ai.da.common.response.PageBaseResponse;
|
||||||
import com.ai.da.common.response.Response;
|
import com.ai.da.common.response.Response;
|
||||||
import com.ai.da.mapper.primary.entity.LibraryModelPoint;
|
|
||||||
import com.ai.da.mapper.primary.entity.ThreeDLayout;
|
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.enums.MannequinType;
|
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
|
import com.ai.da.service.ProjectService;
|
||||||
import com.ai.da.service.UserLikeGroupService;
|
import com.ai.da.service.UserLikeGroupService;
|
||||||
import com.ai.da.service.WorkspaceService;
|
import com.ai.da.service.WorkspaceService;
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||||
@@ -33,6 +32,9 @@ public class ProjectController {
|
|||||||
@Resource
|
@Resource
|
||||||
private UserLikeGroupService userLikeGroupService;
|
private UserLikeGroupService userLikeGroupService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProjectService projectService;
|
||||||
|
|
||||||
@PostMapping("/saveOrUpdate")
|
@PostMapping("/saveOrUpdate")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@ApiOperation(value = "新增或编辑", notes = "传入project")
|
@ApiOperation(value = "新增或编辑", notes = "传入project")
|
||||||
@@ -131,4 +133,21 @@ public class ProjectController {
|
|||||||
public Response<Boolean> delete(@RequestParam("projectId") Long projectId) {
|
public Response<Boolean> delete(@RequestParam("projectId") Long projectId) {
|
||||||
return Response.success(userLikeGroupService.delete(projectId));
|
return Response.success(userLikeGroupService.delete(projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*@Resource
|
||||||
|
private MyTaskScheduler myTaskScheduler;
|
||||||
|
|
||||||
|
@GetMapping("/dataMigration")
|
||||||
|
public String dataMigration(){
|
||||||
|
myTaskScheduler.projectDataCreate();
|
||||||
|
return "success";
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@GetMapping("/getNextSequence")
|
||||||
|
public Response<Integer> getNextSequence(){
|
||||||
|
return Response.success(projectService.getNextSequence());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.ai.da.mapper.primary;
|
||||||
|
|
||||||
|
import com.ai.da.mapper.primary.entity.BatchTaskSequence;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
|
public interface BatchTaskSequenceMapper extends BaseMapper<BatchTaskSequence> {
|
||||||
|
|
||||||
|
@Update("UPDATE t_batch_task_sequence SET current_sequence = LAST_INSERT_ID(current_sequence + 1) WHERE account_id = #{userId}")
|
||||||
|
int incrementSequence(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
@Select("SELECT LAST_INSERT_ID()")
|
||||||
|
Integer getLastInsertId();
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("t_batch_task_sequence")
|
||||||
|
@Data
|
||||||
|
public class BatchTaskSequence extends BaseEntity{
|
||||||
|
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
private Integer currentSequence;
|
||||||
|
}
|
||||||
@@ -27,4 +27,6 @@ public interface ProjectService extends IService<Project> {
|
|||||||
Set<Long> getChildProjectIdSet(Long projectId);
|
Set<Long> getChildProjectIdSet(Long projectId);
|
||||||
|
|
||||||
List<Project> getByProjectNameLike(String projectName);
|
List<Project> getByProjectNameLike(String projectName);
|
||||||
|
|
||||||
|
Integer getNextSequence();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,52 +1,22 @@
|
|||||||
package com.ai.da.service.impl;
|
package com.ai.da.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
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.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.*;
|
||||||
import com.ai.da.mapper.primary.entity.Collection;
|
|
||||||
import com.ai.da.mapper.primary.entity.*;
|
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.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.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import okhttp3.*;
|
import org.springframework.dao.DuplicateKeyException;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.ai.da.python.vo.DesignPythonItem.*;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@@ -72,4 +42,32 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|||||||
qw.lambda().like(Project::getName, projectName);
|
qw.lambda().like(Project::getName, projectName);
|
||||||
return projectMapper.selectList(qw);
|
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