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.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; @Scheduled(cron="0 40 15 * * ?")//每晚凌晨1点执行 //@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行 public void execute(){ System.out.println("开始处理订单"); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date())); List 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 wrapper = new QueryWrapper<>(); wrapper.eq("order_id",original.getId()); List list1 = iOrderDetailOriginalService.list(wrapper); List 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){ } } 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 wrapper = new QueryWrapper<>(); wrapper.eq("customer_id",customerId); wrapper.eq("name",linker); List 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 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 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 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 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"; } }