package com.yuanchu.mom.Task; import cn.hutool.core.date.DateUtil; import com.yuanchu.mom.pojo.Sale; import com.yuanchu.mom.pojo.SaleMaterial; import com.yuanchu.mom.service.SaleMaterialService; import com.yuanchu.mom.service.SaleService; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Component public class DataPullTask { @Resource SaleService saleService; @Resource SaleMaterialService saleMaterialService; @Scheduled(cron = "0 0 4 * * ?") // 每天凌晨4点触发 public void pullDataFromOtherSystem() { //获取主销售数据 List> order = SyncOrder.getMainOrder("2023-08-01 10:00:00 "); List 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")));//备注 return sale; }).collect(Collectors.toList()); saleService.saveBatch(list); for (Sale sale : list) { List> innerOrder = SyncOrder.getInnerOrder("2023-08-01 10:00:00", sale.getOrderNumber()); List 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); } } }