package com.crm.manager.service.job; import com.crm.manager.service.VaultodyService; import com.crm.rely.backend.model.config.VaultodyConfig; import com.crm.rely.backend.model.dto.vaultody.vaults.TransactionItemDto; import com.crm.rely.backend.model.pojo.table.TransactionItemTable; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map; @Service @Slf4j public class VaultsJob { @Autowired private VaultodyService vaultodyService; @Scheduled(cron = "0 0 1 * * ?") public void vaultsJob() throws Exception{ //TODO: 获取保险箱列表 // List vaultsList = (List)vaultodyService.vaultsList().getData(); // if(CollectionUtils.isEmpty(vaultsList)){ // log.info("没有获取到保险箱列表"); // return; // } VaultodyConfig vaultodyConfig = vaultodyService.getVaultodyConfig(); List vaultodyList = vaultodyConfig.getVaultodyList(); List tables = new LinkedList<>(); //TODO: 获取保险箱交易记录 for (VaultodyConfig config : vaultodyList) { List list = vaultodyService.queryWithFilter(config); if(CollectionUtils.isEmpty(list)){ continue; } for (TransactionItemDto transactionItemDto : list) { TransactionItemTable table = new TransactionItemTable() ; BeanUtils.copyProperties(transactionItemDto, table); table.setVaultId(config.getVaultId()); table.setItemId(transactionItemDto.getId()); if(StringUtils.isNotBlank(table.getTransactionId())){ List transactionIds = new ArrayList<>(); transactionIds.add(table.getTransactionId()); Map orderSerialByTransactionIds = vaultodyService.getOrderSerialByTransactionIds(transactionIds); if(!CollectionUtils.isEmpty(orderSerialByTransactionIds)){ table.setOrderId(orderSerialByTransactionIds.get(table.getTransactionId())); } } tables.add(table); } } if(CollectionUtils.isEmpty(tables)){ log.info("没有获取到保险箱交易记录:{},定时任务结束",tables); return; } vaultodyService.batchSave(tables); } }