zss
2023-09-25 d1ea726be5628c46fb6be700a0197002d55d39f1
inventory-server/src/main/java/com/yuanchu/mom/Task/DataPullTask.java
@@ -1,6 +1,8 @@
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;
@@ -10,6 +12,8 @@
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;
@@ -25,8 +29,12 @@
    @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());//订单编号
@@ -38,11 +46,15 @@
            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()); //产品名称