package cn.exrick.xboot.your.schedulings;
|
import cn.exrick.xboot.your.entity.*;
|
import cn.exrick.xboot.your.service.*;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
//订单处理
|
@Component
|
public class OrderSynScheduleImpl {
|
|
@Autowired
|
private IOrderTaskOriginalService iOrderTaskOriginalService;
|
|
@Autowired
|
private IOrderDetailOriginalService iOrderDetailOriginalService;
|
|
@Autowired
|
private IOrderTaskService iOrderTaskService;
|
|
@Autowired
|
private IOrderDetailService iOrderDetailService;
|
|
@Autowired
|
private IAreaService iAreaService;
|
|
@Autowired
|
private IAreaSectionService iAreaSectionService;
|
|
@Autowired
|
private ICustomerService iCustomerService;
|
|
@Autowired
|
private ICarService iCarService;
|
|
@Autowired
|
private ICustomerReceiveService iCustomerReceiveService;
|
|
@Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行
|
public void execute(){
|
QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
|
queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
|
List<OrderTaskOriginal> list = iOrderTaskOriginalService.list();
|
|
for(OrderTaskOriginal original:list){
|
OrderTask orderTask = new OrderTask();
|
orderTask.setCode(original.getCode());
|
orderTask.setAreaId(getArea(original.getAreaName()));
|
orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
|
orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId()));
|
orderTask.setEndDate(original.getPacketDate());
|
orderTask.setSendDate(original.getSendDate());
|
orderTask.setOrderDate(original.getOrderDate());
|
orderTask.setSeq(original.getSeq());
|
orderTask.setNum(original.getNum());
|
orderTask.setCarId(orderTask.getAreaId());
|
iOrderTaskService.saveOrUpdate(orderTask);
|
|
updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
|
|
QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
|
wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
|
wrapper.eq("order_id",original.getId());
|
List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
|
for(OrderDetailOriginal o:list1){
|
OrderDetail orderDetail = new OrderDetail();
|
orderDetail.setNum(o.getNum());
|
orderDetail.setOrderId(orderTask.getId());
|
orderDetail.setProduct(o.getProductName());
|
iOrderDetailService.saveOrUpdate(orderDetail);
|
}
|
|
}
|
|
}
|
|
public void updateCustomerRecive(String customerId,String linker,String phone){
|
QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
|
wrapper.eq("customer_id",customerId);
|
wrapper.eq("name",linker);
|
CustomerReceive one = iCustomerReceiveService.getOne(wrapper);
|
if(one==null){
|
one = new CustomerReceive();
|
one.setCustomerId(customerId);
|
one.setFstatus(0);
|
one.setStatus(1);
|
one.setName(linker);
|
one.setPhone(phone);
|
iCustomerReceiveService.saveOrUpdate(one);
|
}
|
}
|
|
public String getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){
|
QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("licence",customerCode);
|
Customer one = iCustomerService.getOne(queryWrapper);
|
if(one==null){
|
Customer customer = new Customer();
|
customer.setLicence(customerCode);
|
customer.setName(customerName);
|
customer.setPhone(customerPhone);
|
customer.setLinker(linker);
|
customer.setAreaId(areaId);
|
customer.setAreaSectionId(areaSectionId);
|
customer.setKstatus(1);
|
iCustomerService.saveOrUpdate(customer);
|
return customer.getId();
|
}
|
one.setAreaId(areaId);
|
one.setAreaSectionId(areaSectionId);
|
iCustomerService.saveOrUpdate(one);
|
return one.getId();
|
}
|
|
public String getArea(String name){
|
QueryWrapper<Area> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("name",name);
|
Area one = iAreaService.getOne(queryWrapper);
|
if(one==null){
|
Area area = new Area();
|
area.setName(name);
|
iAreaService.saveOrUpdate(area);
|
return area.getId();
|
}
|
return one.getId();
|
}
|
|
public String getAreaSection(String areaId,String name){
|
QueryWrapper<AreaSection> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("name",name);
|
queryWrapper.eq("area_id",areaId);
|
AreaSection one = iAreaSectionService.getOne(queryWrapper);
|
if(one==null){
|
AreaSection area = new AreaSection();
|
area.setName(name);
|
area.setAreaId(areaId);
|
iAreaSectionService.saveOrUpdate(area);
|
return area.getId();
|
}
|
return one.getId();
|
}
|
|
public String getCarId(String areaId){
|
Area area = iAreaService.getById(areaId);
|
String userId = area.getUserId();
|
if(StrUtil.isNotEmpty(userId)){
|
QueryWrapper<Car> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("follow_user_id",userId);
|
Car one = iCarService.getOne(queryWrapper);
|
return one.getId();
|
}else{
|
return null;
|
}
|
}
|
|
public String dateStringFormat(Date strDate) {
|
if (strDate == null)
|
return "";
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
return sdf.format(strDate)+" 00:00:00";
|
}
|
|
public String dateStringFormat2(Date strDate) {
|
if (strDate == null)
|
return "";
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
return sdf.format(strDate)+" 23:59:59";
|
}
|
}
|