TASK:mixi;

This commit is contained in:
shahaibo
2025-05-08 15:30:55 +08:00
parent 0814c1d07f
commit 4c03a89e65
3 changed files with 219 additions and 197 deletions

View File

@@ -98,7 +98,7 @@ public class MiTuExportScheduledTask {
private TProductStockService tProductStockService;
// 更新商品库存
@Scheduled(cron = "0 * * * * ?")
// @Scheduled(cron = "0 * * * * ?")
private void updateProductStock() {
log.info(String.valueOf(LocalDateTime.now()));
@@ -188,7 +188,7 @@ public class MiTuExportScheduledTask {
}
}
@Scheduled(cron = "0 0 1 * * ?")
// @Scheduled(cron = "0 0 1 * * ?")
private void getBestSell1Day() {
LocalDate today = LocalDate.now();
for (int i = 0; i < 1; i++) {
@@ -358,7 +358,7 @@ public class MiTuExportScheduledTask {
* Customer purchase report
*/
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "0 0 23 28-31 * ?")
// @Scheduled(cron = "0 0 23 28-31 * ?")
public void customerPurchaseReport() {
final Calendar c = Calendar.getInstance();
// 如果是最后一天 则执行定时任务
@@ -481,7 +481,7 @@ public class MiTuExportScheduledTask {
* New Join VIP report
*/
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "0 0 23 ? * 7")
// @Scheduled(cron = "0 0 23 ? * 7")
public void NewJoinVIPReport() {
MiTuExport miTuExport = createMiTuExport("New join vip report", "week");
try {
@@ -557,7 +557,7 @@ public class MiTuExportScheduledTask {
* Weekly Sell Through Report
*/
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "0 0 23 ? * 7")
// @Scheduled(cron = "0 0 23 ? * 7")
public void weeklySellThrReport() {
MiTuExport miTuExport = createMiTuExport("Weekly sell thr report", "week");
try {
@@ -687,7 +687,7 @@ public class MiTuExportScheduledTask {
* WeeklyHeavyStockReport
*/
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "0 0 23 ? * 7")
// @Scheduled(cron = "0 0 23 ? * 7")
public void WeeklyHeavyStockReport() {
MiTuExport miTuExport = createMiTuExport("Weekly heavy stock report", "week");
try {
@@ -833,7 +833,7 @@ public class MiTuExportScheduledTask {
* Quarterly Product Grouping Report
*/
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "#{@calculateLastDayOfQuarterCron}")
// @Scheduled(cron = "#{@calculateLastDayOfQuarterCron}")
public void QuarterlyProductGroupingReport() {
MiTuExport miTuExport = createMiTuExport("Quarterly product grouping report", "quarter");
try {
@@ -2144,7 +2144,7 @@ public class MiTuExportScheduledTask {
}
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000))
@Scheduled(cron = "#{@calculateLastDayOfQuarterCron}")
// @Scheduled(cron = "#{@calculateLastDayOfQuarterCron}")
public void customerTypeAnalysis() {
try {
// 根据近三个月购买记录获取顾客member_code
@@ -2606,7 +2606,7 @@ public class MiTuExportScheduledTask {
dailySalesIncentiveStatistics(today);
}
}
@Scheduled(cron = "0 0 23 * * ?")
// @Scheduled(cron = "0 0 23 * * ?")
private void runDailySalesIncentiveStatistics() {
LocalDate today = LocalDate.now();
for (int i = 0; i < 1; i++) {

View File

@@ -414,6 +414,9 @@ public class MinioUtil {
public String getMinioPath(Long accountId, String itemGroup, String subGroup, String originalFilename) {
return accountId + "/" + itemGroup+ "/" + subGroup;
}
public String getMinioPath(Long accountId, String originalFilename) {
return accountId + "";
}
}

View File

@@ -100,12 +100,12 @@ public class TProductService extends ServiceImpl<TProductMapper, TProduct> {
@Resource
private TStoreMapper tStoreMapper;
// JDBC 驱动器名称以及数据库 URL
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://118.142.0.178:1550;databaseName=Hayman_prod";
// static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// static final String DB_URL = "jdbc:sqlserver://118.142.0.178:1550;databaseName=Hayman_prod";
// 数据库凭据
static final String USER = "user01";
static final String PASS = "haySIS-0522";
// static final String USER = "user01";
// static final String PASS = "haySIS-0522";
@Resource
private MinioUtil minioUtil;
@@ -787,232 +787,251 @@ public class TProductService extends ServiceImpl<TProductMapper, TProduct> {
if (originalFilename == null) {
throw new BusinessException("file name is null.");
}
String itemNameColorCode = originalFilename.substring(0, originalFilename.lastIndexOf('.'));
// String itemNameColorCode = originalFilename.substring(0, originalFilename.lastIndexOf('.'));
// 根据itemName查询mi-tu商品信息
// 根据最后一个"_"分割itemNameColorCode
int lastUnderscoreIndex = itemNameColorCode.lastIndexOf("_");
// int lastUnderscoreIndex = itemNameColorCode.lastIndexOf("_");
String itemName = itemNameColorCode.substring(0, lastUnderscoreIndex);
String colorCode = itemNameColorCode.substring(lastUnderscoreIndex + 1);
List<MiTuProduct> miTuProductList = getMiTuProductList(itemName, colorCode);
// String itemName = itemNameColorCode.substring(0, lastUnderscoreIndex);
// String colorCode = itemNameColorCode.substring(lastUnderscoreIndex + 1);
// List<MiTuProduct> miTuProductList = getMiTuProductList(itemName, colorCode);
int total = 0;
// for (MiTuProduct miTuProduct : miTuProductList) {
// total = total + miTuProduct.getQtyOnHand();
// }
if (CollectionUtils.isEmpty(miTuProductList)) {
throw new BusinessException("Mi-Tu Product not found.");
}
String minioPath = minioUtil.getMinioPath(accountId,miTuProductList.get(0).getItemGroup(), miTuProductList.get(0).getSubGroup(), originalFilename);
// if (CollectionUtils.isEmpty(miTuProductList)) {
// throw new BusinessException("Mi-Tu Product not found.");
// }
String minioPath = minioUtil.getMinioPath(accountId, originalFilename);
String minioFullPath = minioUtil.upload(MI_TU_BUCKET_NAME, minioPath, file);
TProduct saveProduct = new TProduct();
saveProduct.setAccountId(accountId);
saveProduct.setPrice(BigDecimal.valueOf(miTuProductList.get(0).getPriceSales()));
saveProduct.setPrice(BigDecimal.valueOf(1000.0d));
saveProduct.setOnSaleState(1);
//上传中
saveProduct.setUploadState(0);
saveProduct.setPictureUrl(minioFullPath);
saveProduct.setPictureName(itemNameColorCode);
// saveProduct.setPictureName(itemNameColorCode);
saveProduct.setMd5(md5);
//按时区计算
saveProduct.setCreateDate(DateUtil.getByTimeZone(timeZone));
saveProduct.setColor(colorCode);
// saveProduct.setColor(colorCode);
// 根据当前已有店铺查询商品店铺库存
List<MiTuProductStock> miTuProductStock = new ArrayList<>();
List<TStore> storeList = storeService.list();
HashMap<String, Long> storeMap = new HashMap<>();
for (TStore tStore : storeList) {
storeMap.put(tStore.getName(), tStore.getId());
}
List<String> storeNameList = storeList.stream().map(TStore::getName).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(storeNameList)) {
miTuProductStock = getMiTuProductStock(miTuProductList.get(0).getPluCode(), miTuProductList.get(0).getColor());
miTuProductStock = miTuProductStock.stream().filter(o -> storeNameList.contains(o.getWhCode())).collect(Collectors.toList());
}
for (MiTuProductStock tuProductStock : miTuProductStock) {
total = total + tuProductStock.getNum();
}
saveProduct.setTotal(total);
// List<MiTuProductStock> miTuProductStock = new ArrayList<>();
// List<TStore> storeList = storeService.list();
// HashMap<String, Long> storeMap = new HashMap<>();
// for (TStore tStore : storeList) {
// storeMap.put(tStore.getName(), tStore.getId());
// }
// List<String> storeNameList = storeList.stream().map(TStore::getName).collect(Collectors.toList());
// if (!CollectionUtils.isEmpty(storeNameList)) {
// miTuProductStock = getMiTuProductStock(miTuProductList.get(0).getPluCode(), miTuProductList.get(0).getColor());
// miTuProductStock = miTuProductStock.stream().filter(o -> storeNameList.contains(o.getWhCode())).collect(Collectors.toList());
// }
// for (MiTuProductStock tuProductStock : miTuProductStock) {
// total = total + tuProductStock.getNum();
// }
saveProduct.setTotal(10);
tProductMapper.insert(saveProduct);
// List<TProductStock> productStockList = new ArrayList<>();
HashMap<String, List<BatchUploadProductStoreStockDTO>> map = new HashMap<>();
for (MiTuProductStock mituProductStock : miTuProductStock) {
if (map.containsKey(mituProductStock.getWhCode())) {
BatchUploadProductStoreStockDTO dto = new BatchUploadProductStoreStockDTO();
dto.setSize(mituProductStock.getSize());
dto.setNum(mituProductStock.getNum());
map.get(mituProductStock.getWhCode()).add(dto);
}else {
List<BatchUploadProductStoreStockDTO> dtoList = new ArrayList<>();
BatchUploadProductStoreStockDTO dto = new BatchUploadProductStoreStockDTO();
dto.setSize(mituProductStock.getSize());
dto.setNum(mituProductStock.getNum());
dtoList.add(dto);
map.put(mituProductStock.getWhCode(), dtoList);
}
}
for (String whCode : map.keySet()) {
Long storeId = storeMap.get(whCode);
List<BatchUploadProductStoreStockDTO> batchUploadProductStoreStockDTOS = map.get(whCode);
String jsonString = JSON.toJSONString(batchUploadProductStoreStockDTOS);
// HashMap<String, List<BatchUploadProductStoreStockDTO>> map = new HashMap<>();
// for (MiTuProductStock mituProductStock : miTuProductStock) {
// if (map.containsKey(mituProductStock.getWhCode())) {
// BatchUploadProductStoreStockDTO dto = new BatchUploadProductStoreStockDTO();
// dto.setSize(mituProductStock.getSize());
// dto.setNum(mituProductStock.getNum());
// map.get(mituProductStock.getWhCode()).add(dto);
// }else {
// List<BatchUploadProductStoreStockDTO> dtoList = new ArrayList<>();
// BatchUploadProductStoreStockDTO dto = new BatchUploadProductStoreStockDTO();
// dto.setSize(mituProductStock.getSize());
// dto.setNum(mituProductStock.getNum());
// dtoList.add(dto);
// map.put(mituProductStock.getWhCode(), dtoList);
// }
// }
// for (String whCode : map.keySet()) {
//// Long storeId = storeMap.get(whCode);
//// List<BatchUploadProductStoreStockDTO> batchUploadProductStoreStockDTOS = map.get(whCode);
// String jsonString = "[{\"num\":4,\"size\":\"00F\"}]";
// TProductStock tProductStock = TProductStock.builder()
// .productId(saveProduct.getId())
// .storeId(25L)
// .stockContent(jsonString)
// .createDate(new Date())
// .build();
// tProductStockService.save(tProductStock);
// }
for (int i = 0; i < 1; i++) {
String jsonString = "[{\"num\":4,\"size\":\"00F\"}]";
TProductStock tProductStock = TProductStock.builder()
.productId(saveProduct.getId())
.storeId(storeId)
.storeId(25L)
.stockContent(jsonString)
.createDate(new Date())
.build();
tProductStockService.save(tProductStock);
}
for (MiTuProduct miTuProduct : miTuProductList) {
miTuProduct.setProductId(saveProduct.getId());
miTuProductMapper.insert(miTuProduct);
}
return new TProductSingleUploadVo(saveProduct.getId().toString(), minioUtil.getPresignedUrl(minioFullPath, 24 * 60), itemNameColorCode, md5);
// for (MiTuProduct miTuProduct : miTuProductList) {
// miTuProduct.setProductId(saveProduct.getId());
// miTuProductMapper.insert(miTuProduct);
// }
return new TProductSingleUploadVo(saveProduct.getId().toString(), minioUtil.getPresignedUrl(minioFullPath, 24 * 60), "", md5);
}
public List<MiTuProductStock> getMiTuProductStock(String pluCode, String color) {
List<MiTuProductStock> miTuProductStockList = new ArrayList<>();
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动器
Class.forName(JDBC_DRIVER);
// 打开一个连接
// log.info("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
// log.info("创建声明...");
stmt = conn.createStatement();
String sql;
// 构建完整的 SQL 查询语句
sql = "SELECT\n" +
"WHCODE,\n" +
"SIZE,\n" +
"SUM(ONLINE_QTY) as num\n" +
"FROM v_MZG003A\n" +
"WHERE plu_code = '" + pluCode + "'\n" +
"AND COLOR = '" + color + "'\n" +
"GROUP BY WHCODE,SIZE\n" +
"ORDER BY WHCODE,SIZE";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
// Connection conn = null;
// Statement stmt = null;
// try {
// // 注册 JDBC 驱动器
// Class.forName(JDBC_DRIVER);
//
// // 打开一个连接
//// log.info("连接数据库...");
// conn = DriverManager.getConnection(DB_URL, USER, PASS);
//
// // 执行查询
//// log.info("创建声明...");
// stmt = conn.createStatement();
// String sql;
//
// // 构建完整的 SQL 查询语句
// sql = "SELECT\n" +
// "WHCODE,\n" +
// "SIZE,\n" +
// "SUM(ONLINE_QTY) as num\n" +
// "FROM v_MZG003A\n" +
// "WHERE plu_code = '" + pluCode + "'\n" +
// "AND COLOR = '" + color + "'\n" +
// "GROUP BY WHCODE,SIZE\n" +
// "ORDER BY WHCODE,SIZE";
// ResultSet rs = stmt.executeQuery(sql);
//
// // 处理结果集
// while (rs.next()) {
// MiTuProductStock stock = new MiTuProductStock();
// // 根据结果集设置 MiTuProduct 的属性
// stock.setWhCode(rs.getString("WHCODE"));
// stock.setSize(rs.getString("SIZE"));
// stock.setNum(rs.getInt("num"));
// // 添加到列表中
// miTuProductStockList.add(stock);
// }
//
// // 清理环境
// rs.close();
// stmt.close();
// conn.close();
// } catch (SQLException se) {
// // 处理 JDBC 错误
// se.printStackTrace();
// } catch (Exception e) {
// // 处理 Class.forName 错误
// e.printStackTrace();
// } finally {
// // 关闭资源
// try {
// if (stmt != null) stmt.close();
// } catch (SQLException se2) {
// se2.printStackTrace();
// }
// try {
// if (conn != null) conn.close();
// } catch (SQLException se) {
// se.printStackTrace();
// }
// }
// System.out.println("mi-tu商品查询执行完成");
for (int i = 0; i < 2; i++) {
MiTuProductStock stock = new MiTuProductStock();
// 根据结果集设置 MiTuProduct 的属性
stock.setWhCode(rs.getString("WHCODE"));
stock.setSize(rs.getString("SIZE"));
stock.setNum(rs.getInt("num"));
stock.setWhCode("MAS ");
stock.setSize("L");
stock.setNum(1);
// 添加到列表中
miTuProductStockList.add(stock);
}
// 清理环境
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
se2.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
// System.out.println("mi-tu商品查询执行完成");
return miTuProductStockList;
}
private List<MiTuProduct> getMiTuProductList(String itemName, String colorCode) {
List<MiTuProduct> miTuProductList = new ArrayList<>();
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动器
Class.forName(JDBC_DRIVER);
// 打开一个连接
log.info("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
log.info("创建声明...");
stmt = conn.createStatement();
String sql;
// 构建完整的 SQL 查询语句
sql = "SELECT * FROM v_item_1A\n" +
"WHERE item_name = '" + itemName + "'\n" +
"AND Color = '" + colorCode + "'";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
MiTuProduct miTuProduct = new MiTuProduct();
// 根据结果集设置 MiTuProduct 的属性
miTuProduct.setPluCode(rs.getString("plu_code"));
miTuProduct.setItemCode(rs.getString("item_code"));
miTuProduct.setItemName(rs.getString("item_name"));
miTuProduct.setItemBarcode(rs.getString("item_barcode"));
miTuProduct.setUnit(rs.getString("unit"));
miTuProduct.setItemType(rs.getString("item_type"));
miTuProduct.setQtyOnHand(rs.getInt("qty_on_hand"));
miTuProduct.setQtyOnOrd(rs.getInt("qty_on_ord"));
miTuProduct.setPriceSales(rs.getDouble("price_sales"));
miTuProduct.setBrand(rs.getString("Brand"));
miTuProduct.setGender(rs.getString("Gender"));
miTuProduct.setYear(rs.getString("Year"));
miTuProduct.setSeason(rs.getString("Season"));
miTuProduct.setSampleNon(rs.getString("Sample/non"));
miTuProduct.setItemGroup(rs.getString("Item_group"));
miTuProduct.setSubGroup(rs.getString("Sub_gruop"));
miTuProduct.setCountry(rs.getString("Country"));
miTuProduct.setSupplier(rs.getString("Supplier"));
miTuProduct.setSize(rs.getString("Size"));
miTuProduct.setColor(rs.getString("Color"));
miTuProduct.setImage(rs.getString("Image"));
// 添加到列表中
miTuProductList.add(miTuProduct);
}
// 清理环境
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
se2.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("mi-tu商品查询执行完成");
// Connection conn = null;
// Statement stmt = null;
// try {
// // 注册 JDBC 驱动器
// Class.forName(JDBC_DRIVER);
//
// // 打开一个连接
// log.info("连接数据库...");
// conn = DriverManager.getConnection(DB_URL, USER, PASS);
//
// // 执行查询
// log.info("创建声明...");
// stmt = conn.createStatement();
// String sql;
//
// // 构建完整的 SQL 查询语句
// sql = "SELECT * FROM v_item_1A\n" +
// "WHERE item_name = '" + itemName + "'\n" +
// "AND Color = '" + colorCode + "'";
// ResultSet rs = stmt.executeQuery(sql);
//
// // 处理结果集
// while (rs.next()) {
// MiTuProduct miTuProduct = new MiTuProduct();
// // 根据结果集设置 MiTuProduct 的属性
// miTuProduct.setPluCode(rs.getString("plu_code"));
// miTuProduct.setItemCode(rs.getString("item_code"));
// miTuProduct.setItemName(rs.getString("item_name"));
// miTuProduct.setItemBarcode(rs.getString("item_barcode"));
// miTuProduct.setUnit(rs.getString("unit"));
// miTuProduct.setItemType(rs.getString("item_type"));
// miTuProduct.setQtyOnHand(rs.getInt("qty_on_hand"));
// miTuProduct.setQtyOnOrd(rs.getInt("qty_on_ord"));
// miTuProduct.setPriceSales(rs.getDouble("price_sales"));
// miTuProduct.setBrand(rs.getString("Brand"));
// miTuProduct.setGender(rs.getString("Gender"));
// miTuProduct.setYear(rs.getString("Year"));
// miTuProduct.setSeason(rs.getString("Season"));
// miTuProduct.setSampleNon(rs.getString("Sample/non"));
// miTuProduct.setItemGroup(rs.getString("Item_group"));
// miTuProduct.setSubGroup(rs.getString("Sub_gruop"));
// miTuProduct.setCountry(rs.getString("Country"));
// miTuProduct.setSupplier(rs.getString("Supplier"));
// miTuProduct.setSize(rs.getString("Size"));
// miTuProduct.setColor(rs.getString("Color"));
// miTuProduct.setImage(rs.getString("Image"));
// // 添加到列表中
// miTuProductList.add(miTuProduct);
// }
//
// // 清理环境
// rs.close();
// stmt.close();
// conn.close();
// } catch (SQLException se) {
// // 处理 JDBC 错误
// se.printStackTrace();
// } catch (Exception e) {
// // 处理 Class.forName 错误
// e.printStackTrace();
// } finally {
// // 关闭资源
// try {
// if (stmt != null) stmt.close();
// } catch (SQLException se2) {
// se2.printStackTrace();
// }
// try {
// if (conn != null) conn.close();
// } catch (SQLException se) {
// se.printStackTrace();
// }
// }
// System.out.println("mi-tu商品查询执行完成");
return miTuProductList;
}