| | |
| | | package com.yuanchu.mom.Task; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.yuanchu.mom.pojo.Sale; |
| | | import com.yuanchu.mom.pojo.SaleMaterial; |
| | | import com.yuanchu.mom.service.SaleMaterialService; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @Scheduled(cron = "0 0 4 * * ?") // 每天凌晨4点触发 |
| | | public void pullDataFromOtherSystem() { |
| | | //获取前一天凌晨时间 |
| | | String pattern = "yyyy-MM-dd HH:mm:ss"; |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); |
| | | String dateTime = LocalDateTime.now().minusDays(1).with(LocalTime.of(4, 0, 0)).format(formatter); |
| | | //获取主销售数据 |
| | | List<Map<String, Object>> order = SyncOrder.getMainOrder("2023-08-01 10:00:00 "); |
| | | List<Map<String, Object>> order = SyncOrder.getMainOrder(dateTime); |
| | | List<Sale> list = order.stream().map(orde -> { |
| | | Sale sale = new Sale(); |
| | | sale.setOrderNumber(orde.get("orderNo").toString());//订单编号 |
| | |
| | | sale.setDelTime(DateUtil.parseDate(orde.get("wantedDeliveryDate").toString()));//交货日期 |
| | | sale.setCreateTime(DateUtil.parseDate(orde.get("orderDate").toString()));//下单日期 |
| | | sale.setNote(String.valueOf(orde.get("comment")));//备注 |
| | | sale.setOrderId((Integer) orde.get("id")); |
| | | sale.setOrderType(orde.get("orderClassification").toString()); |
| | | return sale; |
| | | }).collect(Collectors.toList()); |
| | | //去重 |
| | | list.removeIf(sale -> ObjectUtils.isNotEmpty(saleService.getOne(Wrappers.<Sale>query().eq("order_number", sale.getOrderNumber())))); |
| | | saleService.saveBatch(list); |
| | | for (Sale sale : list) { |
| | | List<Map<String, Object>> innerOrder = SyncOrder.getInnerOrder("2023-08-01 10:00:00", sale.getOrderNumber()); |
| | | List<Map<String, Object>> innerOrder = SyncOrder.getInnerOrder(dateTime, sale.getOrderNumber()); |
| | | List<SaleMaterial> saleMaterials = innerOrder.stream().map(inorder -> { |
| | | SaleMaterial saleMaterial = new SaleMaterial(); |
| | | saleMaterial.setName(inorder.get("productName").toString()); //产品名称 |