package com.zy.acs.manager.core.integrate.wms;
|
|
import com.zy.acs.framework.common.Cools;
|
import com.zy.acs.framework.common.R;
|
import com.zy.acs.manager.common.annotation.OperationLog;
|
import com.zy.acs.manager.common.constant.Constants;
|
import com.zy.acs.manager.common.domain.TaskBoolDto;
|
import com.zy.acs.manager.core.integrate.dto.OpenBusCancelParam;
|
import com.zy.acs.manager.core.integrate.dto.OpenBusCancelResult;
|
import com.zy.acs.manager.core.integrate.dto.OpenBusSubmitParam;
|
import com.zy.acs.manager.core.service.MainService;
|
import com.zy.acs.manager.manager.entity.Bus;
|
import com.zy.acs.manager.manager.entity.Task;
|
import com.zy.acs.manager.manager.enums.TaskStsType;
|
import com.zy.acs.manager.manager.service.BusService;
|
import com.zy.acs.manager.manager.service.TaskService;
|
import io.swagger.annotations.Api;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
/**
|
* Created by vincent on 2023/6/12
|
*/
|
@Slf4j
|
@Api(tags = "Open Api")
|
@RestController
|
@RequestMapping("/api/open")
|
public class OpenController {
|
|
@Autowired
|
private MainService mainService;
|
@Autowired
|
private TaskService taskService;
|
@Autowired
|
private BusService busService;
|
|
@PostMapping("/bus/submit")
|
@OperationLog("generate task from open api")
|
public R submit(@RequestBody OpenBusSubmitParam param) {
|
mainService.generateBusAndTask(param, null);
|
return R.ok("generate tasks success");
|
}
|
|
@PostMapping("/task/cancel")
|
@OperationLog("cancel task from open api")
|
public R cancel(@RequestBody OpenBusCancelParam param) {
|
if (Cools.isEmpty(param.getBatchNo())) {
|
return R.error("batchNo is empty");
|
}
|
if (Cools.isEmpty(param.getTasks())) {
|
return R.error("tasks is empty");
|
}
|
Bus bus = busService.selectByBusNo(param.getBatchNo());
|
if (null == bus) {
|
return R.error("batchNo is not exist");
|
}
|
OpenBusCancelResult result = new OpenBusCancelResult();
|
result.setBatchNo(param.getBatchNo());
|
for (String taskNo : param.getTasks()) {
|
Task task = taskService.selectBySeqNum(bus.getId(), taskNo);
|
if (null == task) {
|
result.getTasks().add(new TaskBoolDto(taskNo, Boolean.FALSE, "task " + taskNo + " is not exist"));
|
continue;
|
}
|
if (!task.getTaskSts().equals(TaskStsType.INIT.val())) {
|
result.getTasks().add(new TaskBoolDto(taskNo, Boolean.FALSE, "task " + taskNo + " has already been assigned"));
|
continue;
|
}
|
Boolean cancel = false;
|
try {
|
cancel = taskService.cancel(task.getId(), null, Constants.UPLINK);
|
} catch (Exception e) {
|
log.error("failed to cancel task {}", taskNo, e);
|
}
|
result.getTasks().add(new TaskBoolDto(taskNo, cancel, "failed to cancel task " + taskNo));
|
}
|
return R.ok("cancel tasks success").add(result);
|
}
|
|
}
|