增加按钮CMD计算销售数据时进行分线程同步,修改采购基地没有物料名称问题

This commit is contained in:
llllon 2025-08-25 10:25:43 +08:00
parent a90df695a4
commit a74b12f055
8 changed files with 81 additions and 7 deletions

View File

@ -181,6 +181,80 @@ public class DataLinkUpController {
* @return 响应结果
*/
@Mapping("com.awspaas.user.apps.bnbm.datalinkup.controller.DataLinkUpController_calculateSummary")
// public ResponseObject calculateSummary(String dataStr, String sid, String formattedDate) {
// long methodStartTime = System.currentTimeMillis();
// LOGGER.info("【开始】数据计算汇总操作,开始时间:{}", new Date(methodStartTime));
// ResponseObject ro = ResponseObject.newOkResponse();
// JSONArray configArray = new JSONArray(dataStr);
//
// Calendar cal = Calendar.getInstance();
// cal.add(Calendar.DATE, -1); // 昨天
// Date endDate = cal.getTime();
//
// // 解析formattedDate为日期对象并计算时间范围
// DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// LocalDate date = LocalDate.parse(formattedDate, dateFormatter);
// LocalDateTime startDateTime = date.atStartOfDay(); // 当天00:00:00
// Date startDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
// DataSummaryService summaryService = null;
// SaleCountDimensionImpl saleCountDimension = null;
// try {
// LOGGER.info("开始执行销售数据多维度汇总计算");
//
// DateRange dateRange = new DateRange();
// dateRange.setStartDate(startDate);
// dateRange.setEndDate(endDate);
// LOGGER.info("汇总计算开始时间为:{},结束时间为:{}",startDate,endDate);
// // 2. 执行汇总计算
// for (int i = 0; i < configArray.length(); i++) {
// JSONObject config = configArray.getJSONObject(i);
// String timeField = config.getString("SJZD");
// String ccId = config.getString("CC_ID");
// String targetTable = config.getString("LDB");
// String partitionField = config.getString("FQBZD");
// String tableName = config.getString("TBB");
// String bkgs = config.getString("SSBK");
// String ssyw = config.getString("SSYW");
//
// // 1. 创建数据汇总服务实例
// if ("销售".equals(ssyw)) {
// summaryService = new SaleDataSummaryServiceImpl();
// saleCountDimension = new SaleCountDimensionImpl();
// LOGGER.info("销售销售的接口");
// }else {
// summaryService = new PurchaseDataSummaryServiceImpl();
// LOGGER.info("采购销售的接口");
// }
//
// List<RowMap> bkgsMaps = DBSql.getMaps("SELECT BKGS FROM " + targetTable + " GROUP BY BKGS");
// if (bkgsMaps!=null) {
// for (RowMap map : bkgsMaps) {
// BO bo = new BO();
// bo.set("BKGS", map.getString("BKGS"));
//// summaryService.calculateSummary(dateRange, bo);
//// if (saleCountDimension!=null){
//// //计算销售的维度
//// LOGGER.info("======== 开始执行销售数据汇总计算 ========");
// saleCountDimension.calculateSummary(dateRange, bo);
//// LOGGER.info("======== 销售数据汇总计算完成 ========");
//// }
// }
// }
// }
//
// ro.put("success", true);
// ro.put("message", "数据汇总计算完成");
// LOGGER.info("销售数据多维度汇总计算完成");
// } catch (Exception e) {
// String errorMsg = "数据汇总计算失败: " + e.getMessage();
// LOGGER.error(errorMsg, e);
// ro.put("success", false);
// ro.put("message", errorMsg);
// }
// long methodEndTime = System.currentTimeMillis();
// LOGGER.info("【完成】数据计算汇总操作,总耗时:{}ms", methodEndTime - methodStartTime);
// return ro;
// }
public ResponseObject calculateSummary(String dataStr, String sid, String formattedDate) {
long methodStartTime = System.currentTimeMillis();
LOGGER.info("【开始】数据计算汇总操作,开始时间:{}", new Date(methodStartTime));

View File

@ -379,12 +379,12 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
summaryBO.set("JD", base);
List<BO> bnbmCgPzwlfl = SDK.getBOAPI().query("BO_EU_BNBM_CG_PZWLFL").
addQuery("BKMC = ", bkgs).addQuery("WLMC LIKE '%" + wlmc + "%'", null).list();
if (bnbmCgPzwlfl!=null){
String wlfl = bnbmCgPzwlfl.stream().map(o -> o.getString("WLFL")).collect(Collectors.joining("|"));
summaryBO.set("WLMC", wlfl);
}else {
// if (bnbmCgPzwlfl!=null){
// String wlfl = bnbmCgPzwlfl.stream().map(o -> o.getString("WLFL")).collect(Collectors.joining("|"));
// summaryBO.set("WLMC", wlfl);
// }else {
summaryBO.set("WLMC", wlmc);
}
// }
summaryBO.set("YEARMONTH", yearMonth);
summaryBO.set("CGZE", currentMonthRow.getDouble("totalAmount"));
summaryBO.set("CGZL", currentMonthRow.getDouble("totalQuantity"));

View File

@ -287,7 +287,7 @@ public class SaleCountDimensionImpl implements DataSummaryService {
while (hasMore) {
int offset = page * PAGE_SIZE;
String querySql = "SELECT QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, " +
"SUM(ZSSL) as XL, SUM(SSJERMB) as XE ,(SUM(XSSL))/10000 AS TSXL " +
"SUM(ZSSL) as XL, SUM(SSJERMB) as XE ,SUM(XSSL) AS TSXL " +
"FROM " + SALES_DETAIL_TABLE + " " +
"WHERE YEARMONTH = ? AND BKGS = ? " +
"GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY " +
@ -319,7 +319,7 @@ public class SaleCountDimensionImpl implements DataSummaryService {
bo.set("JD", location.getLongitude());
bo.set("WD", location.getLatitude());
}
if (bkgs.equals("泰山石膏") && "石膏板".equals(map.getString("LB_1"))){
if ("石膏板".equals(map.getString("LB_1"))){
bo.set("XL", map.getDouble("TSXL"));
}else {
bo.set("XL", map.getDouble("XL"));