From 75b2904fbaf4fab6a9fb3baf065d2c927cc7a7a2 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 27 九月 2023 18:16:34 +0800
Subject: [PATCH] 基础数据-物料清单维护-导出

---
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java |   85 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 73 insertions(+), 12 deletions(-)

diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
index 956c217..4f61f64 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -1,28 +1,38 @@
 package com.yuanchu.mom.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.Task.SyncOrder;
+import com.yuanchu.mom.mapper.SaleMapper;
 import com.yuanchu.mom.mapper.SaleMaterialMapper;
 import com.yuanchu.mom.pojo.Sale;
-import com.yuanchu.mom.mapper.SaleMapper;
 import com.yuanchu.mom.pojo.SaleMaterial;
-import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
-import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
-import com.yuanchu.mom.pojo.dto.SaleDto;
-import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
+import com.yuanchu.mom.pojo.dto.*;
 import com.yuanchu.mom.pojo.vo.SaleVo;
 import com.yuanchu.mom.service.SaleMaterialService;
 import com.yuanchu.mom.service.SaleService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.vo.Result;
+import com.yuanchu.mom.utils.easyexcel.CustemHandler;
+import com.yuanchu.mom.utils.easyexcel.EasyExcelUtils;
+import com.yuanchu.mom.utils.easyexcel.converter.LocalDateConverter;
+import com.yuanchu.mom.utils.easyexcel.template.ExportSaleTemplate;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -59,6 +69,7 @@
         Sale sale = new Sale();
         BeanUtils.copyProperties(saleDto, sale);
         sale.setSaleman(saleman);
+        sale.setOrderType("鎵嬪伐璁㈠崟");
         saleMapper.insert(sale);
         //娣诲姞閿�鍞骇鍝佸崟
         List<SaleMaterialDto> saleMaterialDtoList = saleDto.getSaleMaterialList();
@@ -182,9 +193,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 +202,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 +219,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 +245,49 @@
         }
         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;
+    }
+
+    @Override
+    public void exportSale(ExportSaleDto dto, HttpServletResponse response) {
+        try{
+            List<ExportSaleTemplate> exportSaleTemplates = saleMapper.selectSaleListByExport(dto.getOrderNumber(), dto.getName(), dto.getType(), dto.getDelTime());
+            for (int i = 0; i < exportSaleTemplates.size(); i++) {
+                exportSaleTemplates.get(i).setId(i+1);
+            }
+            EasyExcel.write(EasyExcelUtils.getResponse(response,"閿�鍞鍗�").getOutputStream())
+                    .head(ExportSaleTemplate.class)
+                    .registerConverter(new LocalDateConverter())
+                    .autoCloseStream(true)
+                    .excelType(ExcelTypeEnum.XLS)
+                    .registerWriteHandler(new CustemHandler())
+                    .registerWriteHandler(EasyExcelUtils.getStyleStrategy())
+                    .sheet("Sheet1")
+                    .doWrite(exportSaleTemplates);
+        }catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                response.getOutputStream().close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
 }

--
Gitblit v1.9.3