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.IntegrationAuth;
|
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.domain.type.NamespaceType;
|
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.IntegrationRecord;
|
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;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* 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")
|
@IntegrationAuth(name = NamespaceType.RCS_BUS_RECEIVE)
|
public R submit(@RequestBody OpenBusSubmitParam param, HttpServletRequest request) {
|
IntegrationRecord integrationRecord = new IntegrationRecord(
|
null, // 编号
|
null, // 名称空间
|
null, // 接口地址
|
null, // 平台密钥
|
null, // 调用方标识
|
null, // 方向[非空]
|
null, // 时间戳
|
null, // 客户端IP
|
null, // 请求内容
|
null, // 响应内容
|
null, // 异常内容
|
null, // 结果
|
null, // 耗时
|
null, // 状态
|
null, // 添加时间[非空]
|
null, // 修改时间[非空]
|
null // 备注
|
);
|
request.setAttribute("integrationRecord", integrationRecord);
|
|
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);
|
}
|
|
}
|