VaultsJob.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.crm.manager.service.job;
  2. import com.crm.manager.service.VaultodyService;
  3. import com.crm.rely.backend.model.config.VaultodyConfig;
  4. import com.crm.rely.backend.model.dto.vaultody.vaults.TransactionItemDto;
  5. import com.crm.rely.backend.model.pojo.table.TransactionItemTable;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.BeanUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.scheduling.annotation.Scheduled;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.util.CollectionUtils;
  13. import java.util.ArrayList;
  14. import java.util.LinkedList;
  15. import java.util.List;
  16. import java.util.Map;
  17. @Service
  18. @Slf4j
  19. public class VaultsJob {
  20. @Autowired
  21. private VaultodyService vaultodyService;
  22. @Scheduled(cron = "0 0 1 * * ?")
  23. public void vaultsJob() throws Exception{
  24. //TODO: 获取保险箱列表
  25. // List<VaultodyVaultsListDto> vaultsList = (List<VaultodyVaultsListDto>)vaultodyService.vaultsList().getData();
  26. // if(CollectionUtils.isEmpty(vaultsList)){
  27. // log.info("没有获取到保险箱列表");
  28. // return;
  29. // }
  30. VaultodyConfig vaultodyConfig = vaultodyService.getVaultodyConfig();
  31. List<VaultodyConfig> vaultodyList = vaultodyConfig.getVaultodyList();
  32. List<TransactionItemTable> tables = new LinkedList<>();
  33. //TODO: 获取保险箱交易记录
  34. for (VaultodyConfig config : vaultodyList) {
  35. List<TransactionItemDto> list = vaultodyService.queryWithFilter(config);
  36. if(CollectionUtils.isEmpty(list)){
  37. continue;
  38. }
  39. for (TransactionItemDto transactionItemDto : list) {
  40. TransactionItemTable table = new TransactionItemTable() ;
  41. BeanUtils.copyProperties(transactionItemDto, table);
  42. table.setVaultId(config.getVaultId());
  43. table.setItemId(transactionItemDto.getId());
  44. if(StringUtils.isNotBlank(table.getTransactionId())){
  45. List<String> transactionIds = new ArrayList<>();
  46. transactionIds.add(table.getTransactionId());
  47. Map<String, String> orderSerialByTransactionIds = vaultodyService.getOrderSerialByTransactionIds(transactionIds);
  48. if(!CollectionUtils.isEmpty(orderSerialByTransactionIds)){
  49. table.setOrderId(orderSerialByTransactionIds.get(table.getTransactionId()));
  50. }
  51. }
  52. tables.add(table);
  53. }
  54. }
  55. if(CollectionUtils.isEmpty(tables)){
  56. log.info("没有获取到保险箱交易记录:{},定时任务结束",tables);
  57. return;
  58. }
  59. vaultodyService.batchSave(tables);
  60. }
  61. }