package com.zy.third.erp.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.zy.asrs.entity.Order;
|
import com.zy.asrs.entity.OrderDetl;
|
import com.zy.asrs.service.OrderDetlService;
|
import com.zy.asrs.service.OrderService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Optional;
|
|
@Slf4j
|
@Component
|
public class ERPInOrOutCancelService {
|
|
@Autowired
|
private OrderService orderService;
|
|
@Autowired
|
private OrderDetlService orderDetlService;
|
|
|
public com.zy.third.lk.entity.InCancelTB tryCancel(String orderNo) {
|
com.zy.third.lk.entity.InCancelTB lkCancel = new com.zy.third.lk.entity.InCancelTB();
|
|
List<Order> targets = orderService.selectList(new EntityWrapper<Order>()
|
.eq("order_no",orderNo));
|
log.info("要取消的订单:{}", targets);
|
if (targets.isEmpty()) {
|
lkCancel.setBillNo(orderNo);
|
//erp方要求,订单找不到,返回1
|
lkCancel.setOpFlag(1);
|
lkCancel.setMakeDate(new Date());
|
return lkCancel;
|
} else {
|
//默认订单id不能重复
|
Order order = targets.get(0);
|
List<OrderDetl> detlList = orderDetlService.selectItem(order.getOrderNo());
|
log.info("要取消的订单详情:{}", detlList);
|
Optional<OrderDetl> any = detlList.stream().filter(s -> s.getQty().compareTo(0D) > 0).findAny();
|
if (order.getSettle() > 1L || any.isPresent()) {
|
lkCancel.setBillNo(orderNo);
|
lkCancel.setOpFlag(2);
|
lkCancel.setMakeDate(new Date());
|
return lkCancel;
|
}
|
orderService.addToLogTable(order);
|
orderService.delete(new EntityWrapper<Order>()
|
.eq("order_no", order.getOrderNo()));
|
detlList.stream().forEach(d -> orderDetlService.addToLogTable(d));
|
orderDetlService.delete(new EntityWrapper<OrderDetl>()
|
.eq("order_no", order.getOrderNo()));
|
lkCancel.setBillNo(orderNo);
|
lkCancel.setOpFlag(1);
|
lkCancel.setMakeDate(new Date());
|
return lkCancel;
|
}
|
|
}
|
|
|
}
|