zss
2023-09-20 608fa275864c7cb4353e5e030e4a1304e56529ac
inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.Task.SyncOrder;
@@ -23,6 +24,9 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -194,8 +198,12 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String synchronization() {
        //当天时间的凌晨4点开始同步
        String pattern = "yyyy-MM-dd HH:mm:ss";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        String dateTime = LocalDateTime.now().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());//订单编号
@@ -209,9 +217,11 @@
            sale.setNote(String.valueOf(orde.get("comment")));//备注
            return sale;
        }).collect(Collectors.toList());
        //去重
        list.removeIf(sale -> ObjectUtils.isNotEmpty(saleMapper.selectOne(Wrappers.<Sale>query().eq("order_number", sale.getOrderNumber()))));
        this.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()); //产品名称