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() { public void executeWeeklyHeavyStockReport() {
// customerPurchaseReport(); // customerPurchaseReport();
// NewJoinVIPReport(); // NewJoinVIPReport();
// weeklySellThrReport(); weeklySellThrReport();
// WeeklyHeavyStockReport(); WeeklyHeavyStockReport();
// QuarterlyProductGroupingReport(); QuarterlyProductGroupingReport();
// customerTypeAnalysis(); // customerTypeAnalysis();
// getBestSell30Days(); // getBestSell30Days();
// getData(); // getData();
@@ -655,8 +655,10 @@ public class MiTuExportScheduledTask {
} }
// 处理最后一个PLU_CODE的数据 // 处理最后一个PLU_CODE的数据
if (startRow < rowNum) { if (startRow < rowNum) {
mergeCells(sheet, startRow, rowNum - 1); String currentPluCode = transactionSummaryList.get(transactionSummaryList.size() - 1).getPLU_CODE();
linkImageToCell(workbook, sheet, startRow, rowNum - 1, headers.length - 1, imagePath, channelSftp); 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 rowNum = 1;
int startRow = rowNum; int startRow = rowNum;
String previousPluCode = "";
String imagePath = ""; String imagePath = "";
// 创建并配置SFTP连接 // 创建并配置SFTP连接
@@ -737,53 +738,60 @@ public class MiTuExportScheduledTask {
channelSftp = (ChannelSftp) session.openChannel("sftp"); channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect(); channelSftp.connect();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) { if (weeklyHeavyStockList.size() > 0) {
String currentPluCode = weeklyHeavyStock.getPLU_CODE(); String previousPluCode = weeklyHeavyStockList.get(0).getPLU_CODE();
if (!currentPluCode.equals(previousPluCode)) { for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
imagePath = getImagePath(currentPluCode); String currentPluCode = weeklyHeavyStock.getPLU_CODE();
if (startRow < rowNum - 1) {
mergeCells(sheet, startRow, rowNum - 1); // 当 PLU_CODE 改变时处理图片和单元格合并
if (imagePath != null && !imagePath.isEmpty()) { 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); 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); if (startRow < rowNum) {
row.createCell(0).setCellValue(weeklyHeavyStock.getPLU_CODE()); String currentPluCode = weeklyHeavyStockList.get(weeklyHeavyStockList.size() - 1).getPLU_CODE();
// 填充其他列的数据 imagePath = getImagePath(currentPluCode);
row.createCell(1).setCellValue(weeklyHeavyStock.getItem_name()); mergeCells(sheet, startRow, rowNum);
row.createCell(2).setCellValue(weeklyHeavyStock.getItem_barcode()); if (imagePath != null && !imagePath.isEmpty()) {
row.createCell(3).setCellValue(weeklyHeavyStock.getCat()); linkImageToCell(workbook, sheet, startRow, rowNum, headers.length - 1, imagePath, channelSftp);
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);
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.info(imagePath); log.info(imagePath);
throw new RuntimeException("Error while processing the report", e); throw new RuntimeException("Error while processing the report", e);
@@ -898,7 +906,6 @@ public class MiTuExportScheduledTask {
int rowNum = 3; // 数据从第四行开始 int rowNum = 3; // 数据从第四行开始
int startRow = rowNum; int startRow = rowNum;
String previousPluCode = "";
String imagePath = ""; String imagePath = "";
// 创建并配置SFTP连接 // 创建并配置SFTP连接
@@ -916,75 +923,77 @@ public class MiTuExportScheduledTask {
channelSftp = (ChannelSftp) session.openChannel("sftp"); channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect(); channelSftp.connect();
for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) { if (weeklyHeavyStockList.size() > 0) {
if (!weeklyHeavyStock.getPLU_CODE().equals(previousPluCode)) { String previousPluCode = weeklyHeavyStockList.get(0).getPLU_CODE();
imagePath = getImagePath(weeklyHeavyStock.getPLU_CODE()); for (WeeklyHeavyStock weeklyHeavyStock : weeklyHeavyStockList) {
// 新的PLU_CODE合并之前的单元格并插入图片 String currentPluCode = weeklyHeavyStock.getPLU_CODE();
if (startRow < rowNum - 1) { if (!currentPluCode.equals(previousPluCode)) {
mergeCells(sheet, startRow, rowNum - 1); imagePath = getImagePath(previousPluCode);
if (imagePath != null && !imagePath.isEmpty()) { // 新的PLU_CODE合并之前的单元格并插入图片
linkImageToCell(workbook, sheet, startRow, rowNum - 1, 0, imagePath, channelSftp); // 插入图片到合并单元格 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” // 确保处理最后一个Plu Code
int shopTotalSold = weeklyHeavyStock.getMASSOLD() + weeklyHeavyStock.getMELSOLD() + if (startRow < rowNum) {
weeklyHeavyStock.getMPCSOLD() + weeklyHeavyStock.getMPSSOLD() + String currentPluCode = weeklyHeavyStockList.get(weeklyHeavyStockList.size() - 1).getPLU_CODE();
weeklyHeavyStock.getMTFSOLD() + weeklyHeavyStock.getMWPSOLD() + imagePath = getImagePath(currentPluCode);
weeklyHeavyStock.getMYOSOLD(); mergeCells(sheet, startRow, rowNum);
linkImageToCell(workbook, sheet, startRow, rowNum, 0, imagePath, channelSftp);
// 计算“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); // 插入图片到合并单元格
} }
}
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("Error while processing the report", e); throw new RuntimeException("Error while processing the report", e);
} finally { } finally {