TASK:mixi;

This commit is contained in:
shahaibo
2024-09-14 21:30:42 +08:00
parent b080b47644
commit cf0b45ae7f

View File

@@ -76,9 +76,9 @@ public class MiTuExportScheduledTask {
public void executeWeeklyHeavyStockReport() {
// customerPurchaseReport();
// NewJoinVIPReport();
// weeklySellThrReport();
// WeeklyHeavyStockReport();
// QuarterlyProductGroupingReport();
weeklySellThrReport();
WeeklyHeavyStockReport();
QuarterlyProductGroupingReport();
// customerTypeAnalysis();
// getBestSell30Days();
// getData();
@@ -655,8 +655,10 @@ public class MiTuExportScheduledTask {
}
// 处理最后一个PLU_CODE的数据
if (startRow < rowNum) {
mergeCells(sheet, startRow, rowNum - 1);
linkImageToCell(workbook, sheet, startRow, rowNum - 1, headers.length - 1, imagePath, channelSftp);
String currentPluCode = transactionSummaryList.get(transactionSummaryList.size() - 1).getPLU_CODE();
imagePath = getImagePath(currentPluCode);
mergeCells(sheet, startRow, rowNum);
linkImageToCell(workbook, sheet, startRow, rowNum, headers.length - 1, imagePath, channelSftp);
}
}
@@ -719,7 +721,6 @@ public class MiTuExportScheduledTask {
int rowNum = 1;
int startRow = rowNum;
String previousPluCode = "";
String imagePath = "";
// 创建并配置SFTP连接
@@ -737,53 +738,60 @@ public class MiTuExportScheduledTask {
channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
String currentPluCode = weeklyHeavyStock.getPLU_CODE();
if (!currentPluCode.equals(previousPluCode)) {
imagePath = getImagePath(currentPluCode);
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1);
if (imagePath != null && !imagePath.isEmpty()) {
if (weeklyHeavyStockList.size() > 0) {
String previousPluCode = weeklyHeavyStockList.get(0).getPLU_CODE();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
String currentPluCode = weeklyHeavyStock.getPLU_CODE();
// 当 PLU_CODE 改变时处理图片和单元格合并
if (!currentPluCode.equals(previousPluCode)) {
imagePath = getImagePath(previousPluCode);
// 合并单元格并插入图片
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1);
linkImageToCell(workbook, sheet, startRow, rowNum - 1, headers.length - 1, imagePath, channelSftp);
}
startRow = rowNum;
previousPluCode = currentPluCode;
}
startRow = rowNum;
previousPluCode = currentPluCode;
Row row = sheet.createRow(rowNum);
row.createCell(0).setCellValue(weeklyHeavyStock.getPLU_CODE());
// 填充其他列的数据
row.createCell(1).setCellValue(weeklyHeavyStock.getItem_name());
row.createCell(2).setCellValue(weeklyHeavyStock.getItem_barcode());
row.createCell(3).setCellValue(weeklyHeavyStock.getCat());
row.createCell(4).setCellValue(weeklyHeavyStock.getSub_cat());
row.createCell(5).setCellValue(weeklyHeavyStock.getCol());
row.createCell(6).setCellValue(weeklyHeavyStock.getPrice_sales());
row.createCell(7).setCellValue(weeklyHeavyStock.getMAS());
row.createCell(8).setCellValue(weeklyHeavyStock.getMEL());
row.createCell(9).setCellValue(weeklyHeavyStock.getMPC());
row.createCell(10).setCellValue(weeklyHeavyStock.getMPS());
row.createCell(11).setCellValue(weeklyHeavyStock.getMTF());
row.createCell(12).setCellValue(weeklyHeavyStock.getMWP());
row.createCell(13).setCellValue(weeklyHeavyStock.getMYO());
row.createCell(14).setCellValue(weeklyHeavyStock.getMHZ());
row.createCell(15).setCellValue(weeklyHeavyStock.getMRT());
row.createCell(16).setCellValue(weeklyHeavyStock.getMBZ());
row.createCell(17).setCellValue(weeklyHeavyStock.getTLT());
row.createCell(18).setCellValue(weeklyHeavyStock.getSubtotal());
row.createCell(19).setCellValue(weeklyHeavyStock.getG_TLT());
rowNum++;
}
Row row = sheet.createRow(rowNum);
row.createCell(0).setCellValue(weeklyHeavyStock.getPLU_CODE());
// 填充其他列的数据
row.createCell(1).setCellValue(weeklyHeavyStock.getItem_name());
row.createCell(2).setCellValue(weeklyHeavyStock.getItem_barcode());
row.createCell(3).setCellValue(weeklyHeavyStock.getCat());
row.createCell(4).setCellValue(weeklyHeavyStock.getSub_cat());
row.createCell(5).setCellValue(weeklyHeavyStock.getCol());
row.createCell(6).setCellValue(weeklyHeavyStock.getPrice_sales());
row.createCell(7).setCellValue(weeklyHeavyStock.getMAS());
row.createCell(8).setCellValue(weeklyHeavyStock.getMEL());
row.createCell(9).setCellValue(weeklyHeavyStock.getMPC());
row.createCell(10).setCellValue(weeklyHeavyStock.getMPS());
row.createCell(11).setCellValue(weeklyHeavyStock.getMTF());
row.createCell(12).setCellValue(weeklyHeavyStock.getMWP());
row.createCell(13).setCellValue(weeklyHeavyStock.getMYO());
row.createCell(14).setCellValue(weeklyHeavyStock.getMHZ());
row.createCell(15).setCellValue(weeklyHeavyStock.getMRT());
row.createCell(16).setCellValue(weeklyHeavyStock.getMBZ());
row.createCell(17).setCellValue(weeklyHeavyStock.getTLT());
row.createCell(18).setCellValue(weeklyHeavyStock.getSubtotal());
row.createCell(19).setCellValue(weeklyHeavyStock.getG_TLT());
rowNum++;
}
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1);
if (imagePath != null && !imagePath.isEmpty()) {
linkImageToCell(workbook, sheet, startRow, rowNum - 1, headers.length - 1, imagePath, channelSftp);
if (startRow < rowNum) {
String currentPluCode = weeklyHeavyStockList.get(weeklyHeavyStockList.size() - 1).getPLU_CODE();
imagePath = getImagePath(currentPluCode);
mergeCells(sheet, startRow, rowNum);
if (imagePath != null && !imagePath.isEmpty()) {
linkImageToCell(workbook, sheet, startRow, rowNum, headers.length - 1, imagePath, channelSftp);
}
}
}
} catch (Exception e) {
log.info(imagePath);
throw new RuntimeException("Error while processing the report", e);
@@ -898,7 +906,6 @@ public class MiTuExportScheduledTask {
int rowNum = 3; // 数据从第四行开始
int startRow = rowNum;
String previousPluCode = "";
String imagePath = "";
// 创建并配置SFTP连接
@@ -916,75 +923,77 @@ public class MiTuExportScheduledTask {
channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
if (!weeklyHeavyStock.getPLU_CODE().equals(previousPluCode)) {
imagePath = getImagePath(weeklyHeavyStock.getPLU_CODE());
// 新的PLU_CODE合并之前的单元格并插入图片
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1);
if (imagePath != null && !imagePath.isEmpty()) {
linkImageToCell(workbook, sheet, startRow, rowNum - 1, 0, imagePath, channelSftp); // 插入图片到合并单元格
if (weeklyHeavyStockList.size() > 0) {
String previousPluCode = weeklyHeavyStockList.get(0).getPLU_CODE();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
String currentPluCode = weeklyHeavyStock.getPLU_CODE();
if (!currentPluCode.equals(previousPluCode)) {
imagePath = getImagePath(previousPluCode);
// 新的PLU_CODE合并之前的单元格并插入图片
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1);
linkImageToCell(workbook, sheet, startRow, rowNum - 1, 0, imagePath, channelSftp);
}
startRow = rowNum;
previousPluCode = weeklyHeavyStock.getPLU_CODE();
}
startRow = rowNum;
previousPluCode = weeklyHeavyStock.getPLU_CODE();
// 计算“Shop total Sold”
int shopTotalSold = weeklyHeavyStock.getMASSOLD() + weeklyHeavyStock.getMELSOLD() +
weeklyHeavyStock.getMPCSOLD() + weeklyHeavyStock.getMPSSOLD() +
weeklyHeavyStock.getMTFSOLD() + weeklyHeavyStock.getMWPSOLD() +
weeklyHeavyStock.getMYOSOLD();
// 计算“HK Sell-thru”
int stockOnHand = weeklyHeavyStock.getMAS() + weeklyHeavyStock.getMEL() +
weeklyHeavyStock.getMPC() + weeklyHeavyStock.getMPS() +
weeklyHeavyStock.getMTF() + weeklyHeavyStock.getMWP() +
weeklyHeavyStock.getMYO() + weeklyHeavyStock.getMRT() +
weeklyHeavyStock.getMBZ() + weeklyHeavyStock.getMHZ();
String hkSellThru = stockOnHand > 0 ? String.format("%.0f%%", (double) shopTotalSold / stockOnHand * 100) : "0%";
Row row = sheet.createRow(rowNum);
row.createCell(1).setCellValue(weeklyHeavyStock.getPLU_CODE());
row.createCell(2).setCellValue(weeklyHeavyStock.getCol());
row.createCell(3).setCellValue(weeklyHeavyStock.getSize());
row.createCell(4).setCellValue(weeklyHeavyStock.getItem_barcode());
row.createCell(5).setCellValue(weeklyHeavyStock.getItem_name());
row.createCell(6).setCellValue(weeklyHeavyStock.getCat());
row.createCell(7).setCellValue(weeklyHeavyStock.getSub_cat());
row.createCell(8).setCellValue(weeklyHeavyStock.getPrice_sales());
row.createCell(9).setCellValue(hkSellThru); // 填入计算的HK Sell-thru
row.createCell(10).setCellValue(shopTotalSold); // 填入计算的Shop total Sold
row.createCell(11).setCellValue(weeklyHeavyStock.getMASSOLD());
row.createCell(12).setCellValue(weeklyHeavyStock.getMELSOLD());
row.createCell(13).setCellValue(weeklyHeavyStock.getMPCSOLD());
row.createCell(14).setCellValue(weeklyHeavyStock.getMPSSOLD());
row.createCell(15).setCellValue(weeklyHeavyStock.getMTFSOLD());
row.createCell(16).setCellValue(weeklyHeavyStock.getMWPSOLD());
row.createCell(17).setCellValue(weeklyHeavyStock.getMYOSOLD());
row.createCell(18).setCellValue(weeklyHeavyStock.getMAS());
row.createCell(19).setCellValue(weeklyHeavyStock.getMEL());
row.createCell(20).setCellValue(weeklyHeavyStock.getMPC());
row.createCell(21).setCellValue(weeklyHeavyStock.getMPS());
row.createCell(22).setCellValue(weeklyHeavyStock.getMTF());
row.createCell(23).setCellValue(weeklyHeavyStock.getMWP());
row.createCell(24).setCellValue(weeklyHeavyStock.getMYO());
row.createCell(25).setCellValue(weeklyHeavyStock.getMRT());
row.createCell(26).setCellValue(weeklyHeavyStock.getMBZ());
row.createCell(27).setCellValue(weeklyHeavyStock.getMHZ());
rowNum++;
}
// 计算“Shop total Sold”
int shopTotalSold = weeklyHeavyStock.getMASSOLD() + weeklyHeavyStock.getMELSOLD() +
weeklyHeavyStock.getMPCSOLD() + weeklyHeavyStock.getMPSSOLD() +
weeklyHeavyStock.getMTFSOLD() + weeklyHeavyStock.getMWPSOLD() +
weeklyHeavyStock.getMYOSOLD();
// 计算“HK Sell-thru”
int stockOnHand = weeklyHeavyStock.getMAS() + weeklyHeavyStock.getMEL() +
weeklyHeavyStock.getMPC() + weeklyHeavyStock.getMPS() +
weeklyHeavyStock.getMTF() + weeklyHeavyStock.getMWP() +
weeklyHeavyStock.getMYO() + weeklyHeavyStock.getMRT() +
weeklyHeavyStock.getMBZ() + weeklyHeavyStock.getMHZ();
String hkSellThru = stockOnHand > 0 ? String.format("%.0f%%", (double) shopTotalSold / stockOnHand * 100) : "0%";
Row row = sheet.createRow(rowNum);
row.createCell(1).setCellValue(weeklyHeavyStock.getPLU_CODE());
row.createCell(2).setCellValue(weeklyHeavyStock.getCol());
row.createCell(3).setCellValue(weeklyHeavyStock.getSize());
row.createCell(4).setCellValue(weeklyHeavyStock.getItem_barcode());
row.createCell(5).setCellValue(weeklyHeavyStock.getItem_name());
row.createCell(6).setCellValue(weeklyHeavyStock.getCat());
row.createCell(7).setCellValue(weeklyHeavyStock.getSub_cat());
row.createCell(8).setCellValue(weeklyHeavyStock.getPrice_sales());
row.createCell(9).setCellValue(hkSellThru); // 填入计算的HK Sell-thru
row.createCell(10).setCellValue(shopTotalSold); // 填入计算的Shop total Sold
row.createCell(11).setCellValue(weeklyHeavyStock.getMASSOLD());
row.createCell(12).setCellValue(weeklyHeavyStock.getMELSOLD());
row.createCell(13).setCellValue(weeklyHeavyStock.getMPCSOLD());
row.createCell(14).setCellValue(weeklyHeavyStock.getMPSSOLD());
row.createCell(15).setCellValue(weeklyHeavyStock.getMTFSOLD());
row.createCell(16).setCellValue(weeklyHeavyStock.getMWPSOLD());
row.createCell(17).setCellValue(weeklyHeavyStock.getMYOSOLD());
row.createCell(18).setCellValue(weeklyHeavyStock.getMAS());
row.createCell(19).setCellValue(weeklyHeavyStock.getMEL());
row.createCell(20).setCellValue(weeklyHeavyStock.getMPC());
row.createCell(21).setCellValue(weeklyHeavyStock.getMPS());
row.createCell(22).setCellValue(weeklyHeavyStock.getMTF());
row.createCell(23).setCellValue(weeklyHeavyStock.getMWP());
row.createCell(24).setCellValue(weeklyHeavyStock.getMYO());
row.createCell(25).setCellValue(weeklyHeavyStock.getMRT());
row.createCell(26).setCellValue(weeklyHeavyStock.getMBZ());
row.createCell(27).setCellValue(weeklyHeavyStock.getMHZ());
rowNum++;
}
// 确保处理最后一个Plu Code
if (startRow < rowNum - 1 || previousPluCode != null) {
mergeCells(sheet, startRow, rowNum - 1);
if (imagePath != null && !imagePath.isEmpty()) {
linkImageToCell(workbook, sheet, startRow, rowNum - 1, 0, imagePath, channelSftp); // 插入图片到合并单元格
// 确保处理最后一个Plu Code
if (startRow < rowNum) {
String currentPluCode = weeklyHeavyStockList.get(weeklyHeavyStockList.size() - 1).getPLU_CODE();
imagePath = getImagePath(currentPluCode);
mergeCells(sheet, startRow, rowNum);
linkImageToCell(workbook, sheet, startRow, rowNum, 0, imagePath, channelSftp);
}
}
}
} catch (Exception e) {
throw new RuntimeException("Error while processing the report", e);
} finally {