From 527cbd85e37842d93d081f33916dca5c6f7156e0 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期日, 24 九月 2023 09:53:58 +0800
Subject: [PATCH] 修改   9.22

---
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java |   82 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 78 insertions(+), 4 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 3e7a1d7..85abcc8 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,8 +1,11 @@
 package com.yuanchu.mom.service.impl;
 
+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;
 import com.yuanchu.mom.mapper.SaleMaterialMapper;
 import com.yuanchu.mom.pojo.Sale;
 import com.yuanchu.mom.mapper.SaleMapper;
@@ -12,6 +15,7 @@
 import com.yuanchu.mom.pojo.dto.SaleDto;
 import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
 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;
@@ -20,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;
 
@@ -38,6 +45,9 @@
     SaleMapper saleMapper;
 
     @Resource
+    SaleMaterialService saleMaterialService;
+
+    @Resource
     SaleMaterialMapper saleMaterialMapper;
 
     //鏌ヨ閿�鍞崟鍒楄〃
@@ -53,6 +63,7 @@
         Sale sale = new Sale();
         BeanUtils.copyProperties(saleDto, sale);
         sale.setSaleman(saleman);
+        sale.setOrderType("鎵嬪伐璁㈠崟");
         saleMapper.insert(sale);
         //娣诲姞閿�鍞骇鍝佸崟
         List<SaleMaterialDto> saleMaterialDtoList = saleDto.getSaleMaterialList();
@@ -113,7 +124,7 @@
         List<SaleMaterialDto> saleMaterialList = saleVo.getSaleMaterialList();
         // 浣跨敤鍝堝笇闆嗗悎鏉ュ垽鏂槸鍚﹀瓨鍦ㄧ浉鍚屽瓧娈靛�肩粍鍚�
         Set<String> seen = new HashSet<>();
-        for (SaleMaterialDto saleMaterial: saleMaterialList) {
+        for (SaleMaterialDto saleMaterial : saleMaterialList) {
             String key = saleMaterial.getName() + "," + saleMaterial.getSpecifications();
             if (seen.contains(key)) {
                 return "鍚屼竴涓骇鍝佺殑瑙勬牸鍨嬪彿涓嶈兘鐩稿悓";
@@ -176,11 +187,74 @@
                 .orderCode(orderNumber)
                 .customerCode(sale.getCode())
                 .proname(sale.getProname())
-                .adress(sale.getAdress())
-                .username(sale.getUsername())
-                .phone(sale.getPhone())
                 .messages(dto2List)
                 .build();
         return consignmentDto1;
     }
+
+    //鍚屾閿�鍞暟鎹�
+    @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(dateTime);
+        List<Sale> list = order.stream().map(orde -> {
+            Sale sale = new Sale();
+            sale.setOrderNumber(orde.get("orderNo").toString());//璁㈠崟缂栧彿
+            sale.setCode(String.valueOf(orde.get("customerContractNumber")));//瀹㈡埛鍚堝悓缂栧彿
+            sale.setName(orde.get("projectName").toString());//宸ョ▼鍚嶇О
+            sale.setProname(orde.get("customerName").toString());//瀹㈡埛鍚嶇О
+            sale.setOrderName(orde.get("createdName").toString());//涓嬪崟浜�
+            sale.setSaleman(orde.get("salesmanName").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"));  //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(dateTime, sale.getOrderNumber());
+            List<SaleMaterial> saleMaterials = innerOrder.stream().map(inorder -> {
+                SaleMaterial saleMaterial = new SaleMaterial();
+                saleMaterial.setName(inorder.get("productName").toString()); //浜у搧鍚嶇О
+                saleMaterial.setSpecifications(inorder.get("specificationModel").toString()); //浜у搧瑙勬牸鍨嬪彿
+                saleMaterial.setUnit(inorder.get("unit").toString());   //鍗曚綅
+                saleMaterial.setNumber((int) Double.parseDouble(inorder.get("quantity").toString()));  //鏁伴噺
+                saleMaterial.setPrice(inorder.get("unitPriceInclTax").toString());  //鍗曚环
+                saleMaterial.setSaleId(sale.getId());  //鍏宠仈 閿�鍞崟id
+                saleMaterial.setAdress(String.valueOf(inorder.get("shippingAddress")));  //鏀惰揣鍦板潃
+                saleMaterial.setUsername(String.valueOf(inorder.get("receivingContact")));  //鑱旂郴浜�
+                saleMaterial.setPhone(String.valueOf(inorder.get("receivingContactPhone")));  //鎵嬫満鍙�
+                return saleMaterial;
+            }).collect(Collectors.toList());
+            saleMaterialService.saveBatch(saleMaterials);
+        }
+        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;
+    }
 }

--
Gitblit v1.9.3