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 queryWrapper = new QueryWrapper<>(); queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date())); List 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 wrapper = new QueryWrapper<>(); wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date())); wrapper.eq("orderId",original.getId()); List 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 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 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 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 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 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"; } }