zss
2023-09-24 527cbd85e37842d93d081f33916dca5c6f7156e0
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;
@@ -59,6 +63,7 @@
        Sale sale = new Sale();
        BeanUtils.copyProperties(saleDto, sale);
        sale.setSaleman(saleman);
        sale.setOrderType("手工订单");
        saleMapper.insert(sale);
        //添加销售产品单
        List<SaleMaterialDto> saleMaterialDtoList = saleDto.getSaleMaterialList();
@@ -182,9 +187,6 @@
                .orderCode(orderNumber)
                .customerCode(sale.getCode())
                .proname(sale.getProname())
                //.adress(sale.getAdress())
                //.username(sale.getUsername())
                //.phone(sale.getPhone())
                .messages(dto2List)
                .build();
        return consignmentDto1;
@@ -194,8 +196,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());//订单编号
@@ -207,11 +213,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"));  //otc订单id
            sale.setOrderType(orde.get("orderClassification").toString()); //订单类型
            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()); //产品名称
@@ -229,4 +239,22 @@
        }
        return "同步成功!";
    }
    //下载附件
    @Override
    public List<String> download(Integer id) {
        Integer orderId = saleMapper.selectById(id).getOrderId();
        List<Map<String, Object>> attachment = SyncOrder.getAttachmentByOrderId(orderId);
        List<String> list = new ArrayList<>();
        if (ObjectUtils.isEmpty(attachment)) {
            list.add("该订单没有附件");
            return list;
        }
        for (Map<String, Object> attch : attachment) {
            String path = attch.get("path").toString();
            list.add(path);
        }
        return list;
    }
}