数据分割

master
bynt 1 year ago
parent fbe13f5da5
commit 4e43e3cce9

@ -181,6 +181,11 @@ public class DefaultNumberConstants {
*/ */
public static final int FIVE_THOUSAND = 5000; public static final int FIVE_THOUSAND = 5000;
/**
*
*/
public static final int FIFTY_THOUSAND = 50000;
/** /**
* *
*/ */

@ -149,28 +149,33 @@ public class DownRecordServiceImpl implements DownRecordService {
if (dtoArrayList.size() < DefaultNumberConstants.ONE_HUNDRED) { if (dtoArrayList.size() < DefaultNumberConstants.ONE_HUNDRED) {
throw new BadRequestException(ResponseCode.SEND_MAIL_NUM_FRIEND.getDesc()); throw new BadRequestException(ResponseCode.SEND_MAIL_NUM_FRIEND.getDesc());
} }
String uuid = IdUtil.fastSimpleUUID(); // 每次100000 数据
String format = DateUtil.format(DateUtil.date(), DatePattern.PURE_DATE_PATTERN); List<List<ImeiDTO>> partition = Lists.partition
String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid); (dtoArrayList, DefaultNumberConstants.FIFTY_THOUSAND);
Integer num = (Integer) redisUtils.get(CacheKey.DMP_MANUAL_ID.concat(format)); for (List<ImeiDTO> list : partition) {
Integer batch = ObjectUtil.isNull(num) ? DefaultNumberConstants.ONE_NUMBER : num + DefaultNumberConstants.ONE_NUMBER; String uuid = IdUtil.fastSimpleUUID();
String taskImeiName = FileConstant.MM.concat(StrPool.UNDERLINE).concat(format).concat(StrPool.UNDERLINE).concat(String.valueOf(batch)); String format = DateUtil.format(DateUtil.date(), DatePattern.PURE_DATE_PATTERN);
// 保存文件 String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid);
String csvPath = file.concat(StrPool.DOT).concat(FileConstant.CSV_FILE_SUB_NAME); Integer num = (Integer) redisUtils.get(CacheKey.DMP_MANUAL_ID.concat(format));
CSVFileUtil.createCsvFile(dtoArrayList, csvPath); Integer batch = ObjectUtil.isNull(num) ? DefaultNumberConstants.ONE_NUMBER : num + DefaultNumberConstants.ONE_NUMBER;
String zipPath = file.concat(FileConstant.ZIP_FILE_SUB_NAME); String taskImeiName = FileConstant.MM.concat(StrPool.UNDERLINE).concat(format).concat(StrPool.UNDERLINE).concat(String.valueOf(batch));
// 设置压缩文件 // 保存文件
CompressUtil.decryptionCompression String csvPath = file.concat(StrPool.DOT).concat(FileConstant.CSV_FILE_SUB_NAME);
(zipPath, csvPath, deliveryProperties.getZipPassword()); CSVFileUtil.createCsvFile(list, csvPath);
// 发送邮件 String zipPath = file.concat(FileConstant.ZIP_FILE_SUB_NAME);
MailUtil.sendMail(deliveryProperties.getEmailAddress(), // 设置压缩文件
deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), zipPath, taskImeiName); CompressUtil.decryptionCompression
// 保存批次号 (zipPath, csvPath, deliveryProperties.getZipPassword());
redisUtils.set(CacheKey.DMP_MANUAL_ID.concat(format), batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); // 发送邮件
Long recordId = deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, dtoArrayList.size(), null, MailUtil.sendMail(deliveryProperties.getEmailAddress(),
SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER); deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), zipPath, taskImeiName);
String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME); // 保存批次号
this.createRecord(dtoArrayList.size(), "超级管理员", taskName, zipPath, filePath, recordId, DefaultNumberConstants.TWO_NUMBER); redisUtils.set(CacheKey.DMP_MANUAL_ID.concat(format), batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS);
Long recordId = deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, list.size(), null,
SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER);
String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME);
this.createRecord(list.size(), "超级管理员", taskName, zipPath, filePath, recordId, DefaultNumberConstants.TWO_NUMBER);
}
return Boolean.TRUE; return Boolean.TRUE;
} }
} }

@ -32,7 +32,7 @@
<properties> <properties>
<jwt.version>3.9.0</jwt.version> <jwt.version>3.9.0</jwt.version>
<poi.version>4.0.0</poi.version> <poi.version>4.1.2</poi.version>
<mail.version>1.6.2</mail.version> <mail.version>1.6.2</mail.version>
<oshi.version>5.7.1</oshi.version> <oshi.version>5.7.1</oshi.version>
<guava.version>23.0</guava.version> <guava.version>23.0</guava.version>

Loading…
Cancel
Save