|
|
@@ -1,49 +1,110 @@
|
|
|
package com.tzld.piaoquan.supply.demand.engine.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.common.base.CommonRequest;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.common.base.Constant;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.common.enums.ExceptionEnum;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.common.enums.IsDeleteEnum;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.common.enums.TaskStatusEnum;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.common.enums.TaskTypeEnum;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.common.exception.CommonException;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.dao.mapper.SdStrategyMapper;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.dao.mapper.SdTaskMapper;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.model.param.TaskCreateParam;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.model.param.TaskGetParam;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.model.param.TaskListParam;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.model.po.SdStrategy;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.model.po.SdTask;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.service.TaskService;
|
|
|
+import com.tzld.piaoquan.supply.demand.engine.util.DateUtil;
|
|
|
import com.tzld.piaoquan.supply.demand.engine.util.IdGeneratorUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
* @author supeng
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
public class TaskServiceImpl implements TaskService {
|
|
|
|
|
|
+ private static final String PREFIX_TASK_NAME = "供给需求任务";
|
|
|
+
|
|
|
+ private static final String TASK_NAME_DATETIME_PATTEN = "yyyyMMddHHmmss";
|
|
|
+
|
|
|
@Autowired
|
|
|
private SdTaskMapper sdTaskMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SdStrategyMapper sdStrategyMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void create(CommonRequest<TaskCreateParam> request) {
|
|
|
TaskCreateParam params = request.getParams();
|
|
|
SdTask sdTask = new SdTask();
|
|
|
sdTask.setTaskNo(IdGeneratorUtil.generateTaskNo());
|
|
|
- sdTaskMapper.insert(sdTask);
|
|
|
-
|
|
|
+ String taskName = params.getTaskName();
|
|
|
+ if (Objects.isNull(taskName) || taskName.trim().isEmpty()) {
|
|
|
+ taskName = PREFIX_TASK_NAME + Constant.LINE + DateUtil.formatLocalDateTime(LocalDateTime.now(), TASK_NAME_DATETIME_PATTEN);
|
|
|
+ }
|
|
|
+ sdTask.setTaskName(taskName);
|
|
|
+ //校验策略是否存在
|
|
|
+ Long strategyId = params.getStrategyId();
|
|
|
+ LambdaQueryWrapper<SdStrategy> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(SdStrategy::getId, strategyId).eq(SdStrategy::getIsDeleted, IsDeleteEnum.NORMAL.getValue());
|
|
|
+ boolean strategyIdExists = sdStrategyMapper.exists(wrapper);
|
|
|
+ if (!strategyIdExists) {
|
|
|
+ throw new CommonException(ExceptionEnum.DATA_NOT_EXIST, "该策略不存在");
|
|
|
+ }
|
|
|
+ sdTask.setStrategyId(params.getStrategyId());
|
|
|
+ TaskTypeEnum taskTypeEnum = TaskTypeEnum.getInstance(params.getTaskType());
|
|
|
+ if (Objects.isNull(taskTypeEnum)) {
|
|
|
+ throw new CommonException(ExceptionEnum.NOT_SUPPORT_TASK_TYPE);
|
|
|
+ }
|
|
|
+ sdTask.setTaskType(params.getTaskType());
|
|
|
+ sdTask.setTaskStatus(TaskStatusEnum.INIT.getValue());
|
|
|
+ int flag = sdTaskMapper.insert(sdTask);
|
|
|
+ if (flag <= 0) {
|
|
|
+ throw new CommonException(ExceptionEnum.DATA_INSERT_ERROR);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void schedule(Object object) {
|
|
|
-
|
|
|
+ public Page<SdTask> list(CommonRequest<TaskListParam> request) {
|
|
|
+ TaskListParam params = request.getParams();
|
|
|
+ int pageNo = params.getPageNo();
|
|
|
+ int pageSize = params.getPageSize();
|
|
|
+ String taskNo = params.getTaskNo();
|
|
|
+ String taskName = params.getTaskName();
|
|
|
+ Integer taskType = params.getTaskType();
|
|
|
+ Long strategyId = params.getStrategyId();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<SdTask> wrapper = Wrappers.lambdaQuery(SdTask.class)
|
|
|
+ .eq(Objects.nonNull(taskNo), SdTask::getTaskNo, taskNo)
|
|
|
+ .eq(Objects.nonNull(taskType), SdTask::getTaskType, taskType)
|
|
|
+ .eq(Objects.nonNull(strategyId), SdTask::getStrategyId, strategyId)
|
|
|
+ .like(Objects.nonNull(taskName) && !taskName.isEmpty(), SdTask::getTaskName, taskName)
|
|
|
+ .eq(SdTask::getIsDeleted, IsDeleteEnum.NORMAL.getValue())
|
|
|
+ .orderByDesc(SdTask::getId)
|
|
|
+ .select(SdTask::getId, SdTask::getTaskNo, SdTask::getTaskName, SdTask::getTaskType);
|
|
|
+
|
|
|
+ Page<SdTask> page = new Page<>(pageNo, pageSize);
|
|
|
+ return sdTaskMapper.selectPage(page, wrapper);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void get(Object object) {
|
|
|
-
|
|
|
+ public SdTask get(CommonRequest<TaskGetParam> request) {
|
|
|
+ Long id = request.getParams().getId();
|
|
|
+ return sdTaskMapper.selectById(id);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void subTaskSubmitHandler() {
|
|
|
|