TASK:mixi;
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user