package com.zy.asrs.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.zy.asrs.entity.AgvBasDevp;
|
import com.zy.asrs.entity.Order;
|
import com.zy.asrs.mapper.OrderDetlMapper;
|
import com.zy.asrs.service.AgvBasDevpService;
|
import com.zy.asrs.service.OrderDetlService;
|
import com.zy.asrs.service.OrderService;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.asrs.task.handler.AutoOrderHandler;
|
import com.zy.system.entity.Config;
|
import com.zy.system.service.ConfigService;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
|
/**
|
* Created by vincent on 2020/7/7
|
*/
|
@Component
|
public class AutoOrderScheduler {
|
|
private static final Logger log = LoggerFactory.getLogger(AutoOrderScheduler.class);
|
|
|
@Autowired
|
private OrderDetlMapper orderDetlMapper;
|
|
@Autowired
|
private OrderService orderService;
|
|
@Autowired
|
private OrderDetlService orderDetlService;
|
|
@Autowired
|
private AgvBasDevpService agvBasDevpService;
|
|
@Autowired
|
private ConfigService configService;
|
|
@Autowired
|
private AutoOrderHandler autoOrderHandler;
|
|
|
public void execute() {
|
Config auto = configService.selectOne(new EntityWrapper<Config>().eq("code", "AUTO_ORDER"));
|
if (auto != null && "NO".equals(auto.getValue())) {
|
return;
|
}
|
List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().isNotNull("barcode").or().eq("barcode", ""));
|
for (AgvBasDevp agvBasDevp : agvBasDevps) {
|
List<String> listAutoDetl = orderDetlMapper.listAutoDetl(agvBasDevp.getDevNo());
|
if (listAutoDetl != null && !listAutoDetl.isEmpty()) {
|
for (String orderNo : listAutoDetl) {
|
Order order = orderService.selectByNo(orderNo);
|
if (order == null) {
|
continue;
|
}
|
ReturnT<String> start = autoOrderHandler.start(order);
|
if (start.getCode() == ReturnT.FAIL_CODE) {
|
log.error("自动接单失败,订单号:" + order.getOrderNo() + ",失败原因:" + start.getMsg());
|
} else {
|
log.info("自动接单成功,订单号:" + order.getOrderNo());
|
break;
|
}
|
}
|
}
|
}
|
}
|
|
|
}
|