1、9宫格汇总计算定时器

This commit is contained in:
llllon 2025-09-25 13:21:57 +08:00
parent ca7fc95faa
commit fd9f5942eb
3 changed files with 65 additions and 5 deletions

View File

@ -0,0 +1,60 @@
package com.awspaas.user.apps.bnbm.datalinkup.job;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.schedule.IJob;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.sdk.local.SDK;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
* @ClassName: NineGridCountJob
* @Description: 九宫格展示计算汇总
* @date: 2025/9/25 10:30
* @Blog: https://
*/
public class NineGridCountJob implements IJob {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
LocalDate now = LocalDate.now();
String nowStr = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String nowYearMonthStr = now.format(DateTimeFormatter.ofPattern("yyyy-MM"));
LocalDate nowYearFirstDay = now.withDayOfYear(1);
String nowYearFirstDayStr = nowYearFirstDay.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
BO bo = new BO();
bo.set("YEARMONTH",nowYearMonthStr);
//查询销售数据
RowMap map = DBSql.getMap("SELECT (SUM(SSJERMB)/10000) AS total_sales_rmb," +
" CASE" +
" WHEN SUM(CASE WHEN LB_1 = '石膏板' THEN XSSL ELSE 0 END) > 0" +
" THEN SUM(CASE WHEN LB_1 = '石膏板' THEN SSJERMB ELSE 0 END) /" +
" SUM(CASE WHEN LB_1 = '石膏板' THEN XSSL ELSE 0 END)" +
" ELSE 0" +
" END AS gypsum_board_avg_price," +
" CASE" +
" WHEN SUM(CASE WHEN LB_1 = '轻钢龙骨' THEN ZSSL ELSE 0 END) > 0" +
" THEN SUM(CASE WHEN LB_1 = '轻钢龙骨' THEN SSJERMB ELSE 0 END) /" +
" SUM(CASE WHEN LB_1 = '轻钢龙骨' THEN ZSSL ELSE 0 END)" +
" ELSE 0" +
" END AS steel_keel_avg_price" +
" FROM BO_EU_BNBM_DATALINKUP_XS_XSL_HZ" +
" WHERE LB_1 IN ('石膏板', '轻钢龙骨') AND DZRQ >= '"+nowYearFirstDayStr+" 00:00:00'");
bo.set("ZB1",map.getString("total_sales_rmb"));// 销售总额
//查询采购数据
RowMap cgsj = DBSql.getMap("SELECT (SUM(DHJE)/10000) AS JSHJHYF FROM BO_EU_DWD_ORDER_RKD_HZ WHERE DJRQ >= '" + nowYearFirstDayStr + " 00:00:00'");
bo.set("ZB2",cgsj.getString("JSHJHYF"));//采购总额
bo.set("ZB3","");//利润总额
bo.set("ZB4","");//预算完成率
bo.set("ZB5","");//石膏板产量
bo.set("ZB6","");//龙骨产量
bo.set("ZB7",map.getString("gypsum_board_avg_price"));// 石膏板均价
bo.set("ZB8",map.getString("steel_keel_avg_price"));// 龙骨均价
bo.set("ZB9","");//总运费
SDK.getBOAPI().createDataBO("BO_EU_OA_NINE_GRID",bo, UserContext.fromUID("admin"));
}
}

View File

@ -149,7 +149,7 @@ public class WaterproofPaintAccountsReceivableJob implements IJob {
// 计算应收余额
BigDecimal ysye = qcye.add(ljxs).subtract(ljhk);
// LOGGER.info("计算应收余额={}",ysye.doubleValue());
LOGGER.info("计算应收余额={}",ysye.doubleValue());
// 计算账龄分析需要查询历史数据
Map<String, BigDecimal> zlfx = calculateMonthlyAgingAnalysis(section, saleOrgUnit, custName, monthEndDate, ysye);
@ -308,8 +308,8 @@ public class WaterproofPaintAccountsReceivableJob implements IJob {
" WHERE XSZZ = ? AND FCUSTNAME = ? AND DZRQ >= ? AND DZRQ < ?",
saleOrgUnit, custName, startDateStr, endDateStr
);
// LOGGER.info("计算累计销售SELECT SUM(SSJERMB) as total FROM " + section.getYsdTable() +
// " WHERE XSZZ = "+saleOrgUnit+" AND FCUSTNAME = "+custName+" AND DZRQ >= "+startDateStr+" AND DZRQ < "+endDateStr+"");
LOGGER.info("计算累计销售SELECT SUM(SSJERMB) as total FROM " + section.getYsdTable() +
" WHERE XSZZ = "+saleOrgUnit+" AND FCUSTNAME = "+custName+" AND DZRQ >= "+startDateStr+" AND DZRQ < "+endDateStr+"");
// LOGGER.info("累计销售={}",result != null && result.get("total") != null ?
// new BigDecimal(result.get("total").toString()) : BigDecimal.ZERO);
@ -336,8 +336,8 @@ public class WaterproofPaintAccountsReceivableJob implements IJob {
" WHERE FSALEORGUNIT = ? AND FCUSTNAME = ? AND FBILLDATE >= ? AND FBILLDATE < ?",
saleOrgUnit, custName, startDateStr, endDateStr
);
// LOGGER.info("计算累计还款:SELECT SUM(FSALEAMOUNTRMB) as total FROM " + section.getSkdTable() +
// " WHERE FSALEORGUNIT = "+saleOrgUnit+" AND FCUSTNAME = "+custName+" AND FBILLDATE >= "+startDateStr+" AND FBILLDATE < "+endDateStr+"");
LOGGER.info("计算累计还款:SELECT SUM(FSALEAMOUNTRMB) as total FROM " + section.getSkdTable() +
" WHERE FSALEORGUNIT = "+saleOrgUnit+" AND FCUSTNAME = "+custName+" AND FBILLDATE >= "+startDateStr+" AND FBILLDATE < "+endDateStr+"");
BigDecimal skTotal = skResult != null && skResult.get("total") != null ?
new BigDecimal(skResult.get("total").toString()) : BigDecimal.ZERO;