package cn.exrick.xboot.your.schedulings;
|
import cn.exrick.xboot.your.entity.*;
|
import cn.exrick.xboot.your.service.*;
|
import cn.hutool.core.date.DateUtil;
|
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.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
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 ICustomerReceiveService iCustomerReceiveService;
|
|
@Autowired
|
private IOrderLogService iOrderLogService;
|
|
/**
|
* 每天15:59分处理
|
* 在原始订单数据(t_order_task_original)获取订单日期为今天的原始订单,转换成订单数据存入订单任务数据表(t_order_task)
|
*/
|
|
@Scheduled(cron="0 59 15 * * ?")//每晚凌晨1点执行
|
//@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行
|
public void execute(){
|
System.out.println("开始处理订单");
|
QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
|
queryWrapper.between("order_date",DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date()));
|
List<OrderTaskOriginal> list = iOrderTaskOriginalService.list(queryWrapper);
|
|
int sumNum = 0;
|
for(OrderTaskOriginal original:list){
|
try {
|
OrderTask orderTask = new OrderTask();
|
orderTask.setCode(original.getCode());
|
Area area = getArea(original.getAreaName());
|
orderTask.setAreaId(area.getId());
|
orderTask.setCarId(area.getCarId());
|
orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
|
Customer customer = getCustomer(original.getCustomerCode(), original.getCustomerName(), original.getCustomerPhone(), original.getLinker(), orderTask.getAreaId(), orderTask.getAreaSectionId());
|
orderTask.setCustomerId(customer.getId());
|
orderTask.setCustomerName(customer.getName());
|
orderTask.setLinker(customer.getLinker());
|
orderTask.setEndDate(original.getPacketDate());
|
//orderTask.setSendDate(original.getSendDate());
|
orderTask.setSendDate(DateUtil.offsetDay(original.getOrderDate(),1));
|
orderTask.setOrderDate(original.getOrderDate());
|
if(original.getSeq()!=null){
|
orderTask.setSeq(original.getSeq());
|
}else{
|
orderTask.setSeq(999);
|
}
|
|
orderTask.setNum(original.getNum());
|
sumNum+=original.getNum();
|
|
iOrderTaskService.saveOrUpdate(orderTask);
|
|
updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
|
|
QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
|
wrapper.eq("order_id",original.getId());
|
List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
|
|
List<OrderDetail> detailList = new ArrayList<>();
|
for(OrderDetailOriginal o:list1){
|
OrderDetail orderDetail = new OrderDetail();
|
orderDetail.setNum(o.getNum());
|
orderDetail.setOrderId(orderTask.getId());
|
orderDetail.setProduct(o.getProductName());
|
detailList.add(orderDetail);
|
}
|
iOrderDetailService.saveBatch(detailList);
|
}catch (Exception e){
|
System.out.println(original.getId()+"定时转换报错");
|
}
|
}
|
|
OrderLog orderLog = new OrderLog();
|
orderLog.setNum(sumNum);
|
orderLog.setType(0);
|
iOrderLogService.save(orderLog);
|
System.out.println("处理订单结束");
|
|
}
|
|
public void updateCustomerRecive(String customerId,String linker,String phone){
|
QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
|
wrapper.eq("customer_id",customerId);
|
wrapper.eq("name",linker);
|
List<CustomerReceive> list = iCustomerReceiveService.list(wrapper);
|
if(list.size()==0){
|
CustomerReceive one = new CustomerReceive();
|
one.setCustomerId(customerId);
|
one.setFstatus(0);
|
one.setStatus(1);
|
one.setName(linker);
|
one.setPhone(phone);
|
iCustomerReceiveService.saveOrUpdate(one);
|
}
|
}
|
|
public Customer 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;
|
}
|
one.setAreaId(areaId);
|
one.setAreaSectionId(areaSectionId);
|
iCustomerService.saveOrUpdate(one);
|
return one;
|
}
|
|
public Area 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;
|
}
|
return one;
|
}
|
|
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);
|
return area.getCarId();
|
// 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;
|
// }
|
//return iAreaService.getCarId(areaId);
|
}
|
|
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";
|
}
|
}
|