采购BI汇总sql优化,setBO逻辑优化
This commit is contained in:
parent
3fdce1dddd
commit
d6db22bc49
@ -150,7 +150,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
||||
int offset = page * pageSize;
|
||||
LOGGER.debug("正在处理第{}页入库数据,偏移量:{}", page + 1, offset);
|
||||
String querySql = "SELECT BKGS, YEARMONTH, DJRQ, DJH, WLMC, WLBM, GGXH, SLGC, SUM(RKSL) AS RKSL, " +
|
||||
" JLDW, HSDJHYF, SUM(JSHJHYF) AS JSHJHYF, GYSNAME, CGDDH, DHJE " +
|
||||
" JLDW, HSDJHYF, SUM(JSHJHYF) AS JSHJHYF, GYSNAME, CGDDH, SUM(DHJE) AS DHJE " +
|
||||
" FROM "+BO_EU_DWD_ORDER_RKD_HZ+" WHERE BKGS = ? AND DATE(DJRQ) >= ? " +
|
||||
" GROUP BY YEARMONTH,DJH,WLMC " +
|
||||
" ORDER BY DJRQ LIMIT ? OFFSET ?";
|
||||
@ -334,193 +334,51 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
||||
int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth});
|
||||
LOGGER.info("采购_基地_年月采购明细:{}年月物料采购月度汇总数据,板块公司:{},删除了{}条数据", yearMonth, bkgs, update);
|
||||
|
||||
String currentMonthSql = "SELECT c.BKGS,c.DJRQ,c.YEARMONTH,c.WLMC,c.SLGC,c.tstotalAmount,c.lptotalAmount,c.totalQuantity," +
|
||||
" ly.tstotalAmount AS ly_tstotalAmount,ly.lptotalAmount AS ly_lptotalAmount,ly.totalQuantity AS ly_totalQuantity," +
|
||||
" lm.tstotalAmount AS lm_tstotalAmount,lm.lptotalAmount AS lm_lptotalAmount,lm.totalQuantity AS lm_totalQuantity " +
|
||||
String currentMonthSql = "SELECT " +
|
||||
" CONCAT(c.Year, '-', LPAD(c.Month, 2, '0')) AS ny, " +
|
||||
" c.Year AS year, " +
|
||||
" c.Month AS month, " +
|
||||
" c.WLMC AS WLMC, " +
|
||||
" c.SLGC AS SLGC,, " +
|
||||
" c.tstotalAmount AS tstotalAmount, " +
|
||||
" c.totalQuantity AS totalQuantity, " +
|
||||
" tstotalAmount/totalQuantity AS PJDJ " +
|
||||
" FROM (" +
|
||||
" SELECT BKGS,MAX(DJRQ) AS DJRQ,YEARMONTH,WLMC,SLGC,SUM(DHJE) AS tstotalAmount," +
|
||||
" SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity,YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month " +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ " +
|
||||
" WHERE BKGS = ? AND DJRQ >= ? " +
|
||||
" GROUP BY WLMC, SLGC, YEARMONTH" +
|
||||
" ) c LEFT JOIN (" +
|
||||
" SELECT WLMC,SLGC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount, " +
|
||||
" SUM(RKSL) AS totalQuantity,YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month " +
|
||||
" SELECT " +
|
||||
" WLMC, " +
|
||||
" SUM(DHJE) AS tstotalAmount, " +
|
||||
" SUM(RKSL) AS totalQuantity, " +
|
||||
" SLGC, " +
|
||||
" YEAR(DJRQ) AS Year, " +
|
||||
" MONTH(DJRQ) AS Month " +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ " +
|
||||
" WHERE BKGS = ? AND DJRQ >= DATE_SUB(?, INTERVAL 1 YEAR)" +
|
||||
" GROUP BY WLMC, SLGC, YEAR(DJRQ), MONTH(DJRQ) " +
|
||||
" ) ly ON c.WLMC = ly.WLMC AND c.SLGC = ly.SLGC AND c.Month = ly.Month AND ly.Year = c.Year - 1 " +
|
||||
" LEFT JOIN ( " +
|
||||
" SELECT WLMC,SLGC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity, " +
|
||||
" YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month " +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ " +
|
||||
" WHERE BKGS = ? AND DJRQ >= DATE_SUB(?, INTERVAL 1 MONTH)" +
|
||||
" GROUP BY WLMC, SLGC, YEAR(DJRQ), MONTH(DJRQ) " +
|
||||
" ) lm ON c.WLMC = lm.WLMC AND c.SLGC = lm.SLGC " +
|
||||
" AND ((c.Month > 1 AND c.Year = lm.Year AND c.Month = lm.Month + 1) OR (c.Month = 1 AND c.Year = lm.Year + 1 AND lm.Month = 12)) " +
|
||||
" ORDER BY c.YEARMONTH";
|
||||
List<RowMap> currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate, bkgs, startDate,bkgs, startDate);
|
||||
|
||||
" WHERE BKGS = ? " +
|
||||
" AND DJRQ >= DATE_SUB(?, INTERVAL 2 YEAR) " +
|
||||
" GROUP BY WLMC, YEAR(DJRQ), MONTH(DJRQ),SLGC " +
|
||||
" ) c " +
|
||||
" WHERE c.Year IN (YEAR(?), YEAR(?) + 1) " +
|
||||
" ORDER BY c.Year, c.Month";
|
||||
List<RowMap> currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate,startDate,startDate);
|
||||
if (currentMonthData==null){
|
||||
return;
|
||||
}
|
||||
|
||||
// 5. 批量插入
|
||||
List<BO> bos = new ArrayList<>();
|
||||
for (RowMap currentMonthRow : currentMonthData) {
|
||||
String base = currentMonthRow.getString("SLGC");
|
||||
String wlmc = currentMonthRow.getString("WLMC");
|
||||
String bkgs1 = currentMonthRow.getString("BKGS");
|
||||
YearMonth yearMonths = YearMonth.parse(currentMonthRow.getString("YEARMONTH"), DateTimeFormatter.ofPattern("yyyyMM"));
|
||||
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||
String yearmonth1 = yearMonths.format(outputFormatter);
|
||||
BO summaryBO = new BO();
|
||||
summaryBO.set("BKGS", bkgs1);
|
||||
summaryBO.set("JD", base);
|
||||
summaryBO.set("WLMC",wlmc);
|
||||
summaryBO.set("YEARMONTH", yearmonth1);
|
||||
double avgPrice = 0.0;
|
||||
double lyavgPrice = 0.0;
|
||||
double lmavgPrice = 0.0;
|
||||
if (bkgs1.equals("泰山石膏")) {
|
||||
double totalAmount = currentMonthRow.getDouble("tstotalAmount");
|
||||
double lytotalAmount = currentMonthRow.getDouble("ly_tstotalAmount");
|
||||
double lmtotalAmount = currentMonthRow.getDouble("lm_tstotalAmount");
|
||||
double totalQuantity = 0.00;
|
||||
double lytotalQuantity = 0.00;
|
||||
double lmtotalQuantity = 0.00;
|
||||
if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) {
|
||||
double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.00:currentMonthRow.getDouble("totalQuantity");
|
||||
if (Quantity==0.0){
|
||||
totalQuantity=0.0;
|
||||
}else {
|
||||
totalQuantity = BigDecimal.valueOf(Quantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("ly_totalQuantity");
|
||||
if (lyQuantity==0.0){
|
||||
lytotalQuantity = 0.0;
|
||||
}else {
|
||||
lytotalQuantity = BigDecimal.valueOf(lyQuantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("lm_totalQuantity");
|
||||
if (lmQuantity==0.0){
|
||||
lmQuantity = 0.0;
|
||||
}else {
|
||||
lmtotalQuantity = BigDecimal.valueOf(lmQuantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
summaryBO.set("CGZL", totalQuantity);
|
||||
summaryBO.set("TQCGZL", lytotalQuantity);
|
||||
summaryBO.set("SQCGZL", lmtotalQuantity);
|
||||
}else {
|
||||
double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.00:currentMonthRow.getDouble("totalQuantity");
|
||||
totalQuantity = BigDecimal.valueOf(Quantity).doubleValue();
|
||||
double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("ly_totalQuantity");
|
||||
lytotalQuantity = BigDecimal.valueOf(lyQuantity).doubleValue();
|
||||
double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("lm_totalQuantity");
|
||||
lmtotalQuantity = BigDecimal.valueOf(lmQuantity).doubleValue();
|
||||
summaryBO.set("CGZL", totalQuantity);
|
||||
summaryBO.set("TQCGZL", lytotalQuantity);
|
||||
summaryBO.set("SQCGZL", lmtotalQuantity);
|
||||
}
|
||||
// 添加除数非零检查
|
||||
if (totalAmount != 0 && totalQuantity != 0) {
|
||||
avgPrice = BigDecimal.valueOf(totalAmount)
|
||||
.divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
avgPrice = 0;
|
||||
}
|
||||
//同期
|
||||
if (lytotalAmount != 0 && lytotalQuantity != 0) {
|
||||
lyavgPrice = BigDecimal.valueOf(lytotalAmount)
|
||||
.divide(BigDecimal.valueOf(lytotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
lyavgPrice = 0;
|
||||
}
|
||||
//上期
|
||||
if (lmtotalAmount != 0 && lmtotalQuantity != 0) {
|
||||
lmavgPrice = BigDecimal.valueOf(lmtotalAmount)
|
||||
.divide(BigDecimal.valueOf(lmtotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
lmavgPrice = 0;
|
||||
}
|
||||
summaryBO.set("CGZE", totalAmount);
|
||||
summaryBO.set("TQCGZE", lytotalAmount);
|
||||
summaryBO.set("SQCGZE", lmtotalAmount);
|
||||
}
|
||||
else {
|
||||
double totalAmount = currentMonthRow.getDouble("lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("lptotalAmount");
|
||||
double lytotalAmount = currentMonthRow.getDouble("ly_lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("ly_lptotalAmount");
|
||||
double lmtotalAmount = currentMonthRow.getDouble("lm_lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("lm_lptotalAmount");
|
||||
double totalQuantity = 0.00;
|
||||
double lytotalQuantity = 0.00;
|
||||
double lmtotalQuantity = 0.00;
|
||||
if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) {
|
||||
double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.0:currentMonthRow.getDouble("totalQuantity");
|
||||
if (Quantity==0.00) {
|
||||
totalQuantity = 0.0;
|
||||
}else {
|
||||
totalQuantity = BigDecimal.valueOf(Quantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("ly_totalQuantity");
|
||||
if (lyQuantity==0.0){
|
||||
lytotalQuantity = 0.0;
|
||||
}else {
|
||||
lytotalQuantity = BigDecimal.valueOf(lyQuantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("lm_totalQuantity");
|
||||
if (lmQuantity==0.0){
|
||||
lmtotalQuantity = 0.0;
|
||||
}else {
|
||||
lmtotalQuantity = BigDecimal.valueOf(lmQuantity)
|
||||
.divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
summaryBO.set("CGZL", totalQuantity);
|
||||
summaryBO.set("TQCGZL", lytotalQuantity);
|
||||
summaryBO.set("SQCGZL", lmtotalQuantity);
|
||||
}else {
|
||||
double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.0:currentMonthRow.getDouble("totalQuantity");
|
||||
double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("ly_totalQuantity");
|
||||
double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("lm_totalQuantity");
|
||||
totalQuantity = BigDecimal.valueOf(Quantity).doubleValue();
|
||||
lytotalQuantity = BigDecimal.valueOf(lyQuantity).doubleValue();
|
||||
lmtotalQuantity = BigDecimal.valueOf(lmQuantity).doubleValue();
|
||||
summaryBO.set("CGZL", totalQuantity);
|
||||
summaryBO.set("TQCGZL", lytotalQuantity);
|
||||
summaryBO.set("SQCGZL", lmtotalQuantity);
|
||||
}
|
||||
// 添加除数非零检查
|
||||
if (totalAmount != 0 && totalQuantity != 0) {
|
||||
avgPrice = BigDecimal.valueOf(totalAmount)
|
||||
.divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
avgPrice = 0;
|
||||
}
|
||||
//同期
|
||||
if (lytotalAmount != 0 && lytotalQuantity != 0) {
|
||||
lyavgPrice = BigDecimal.valueOf(lytotalAmount)
|
||||
.divide(BigDecimal.valueOf(lytotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
lyavgPrice = 0;
|
||||
}
|
||||
//上期
|
||||
if (lmtotalAmount != 0 && lmtotalQuantity != 0) {
|
||||
lmavgPrice = BigDecimal.valueOf(lmtotalAmount)
|
||||
.divide(BigDecimal.valueOf(lmtotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
} else {
|
||||
lmavgPrice = 0;
|
||||
}
|
||||
summaryBO.set("CGZE", totalAmount);
|
||||
summaryBO.set("TQCGZE", lytotalAmount);
|
||||
summaryBO.set("SQCGZE", lmtotalAmount);
|
||||
}
|
||||
summaryBO.set("PJDJ", avgPrice);
|
||||
summaryBO.set("SQPJDJ", lmavgPrice);
|
||||
summaryBO.set("TQPJDJ", lyavgPrice);
|
||||
summaryBO.set("YEARMONTH",currentMonthRow.getString("ny"));//年月(YYYYMM)
|
||||
Double tstotalAmount = currentMonthRow.getDouble("tstotalAmount");
|
||||
Double totalQuantity = currentMonthRow.getDouble("totalQuantity");
|
||||
summaryBO.set("CGZE", tstotalAmount);//采购总额
|
||||
summaryBO.set("CGZL",totalQuantity);//采购总量
|
||||
summaryBO.set("SLGC",currentMonthRow.getString("SLGC"));//收料工厂
|
||||
summaryBO.set("PJDJ",currentMonthRow.getDouble("PJDJ"));
|
||||
bos.add(summaryBO);
|
||||
}
|
||||
if (!bos.isEmpty()) {
|
||||
@ -555,39 +413,32 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
||||
" WHERE BKGS = ? AND YEARMONTH >= ?";
|
||||
int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth});
|
||||
LOGGER.info("采购_年月采购明细:{}年月物料采购月度汇总数据,板块公司:{},删除了{}条数据",yearMonth, bkgs, update);
|
||||
String currentMonthSql = "SELECT CONCAT(c.Year, '-', LPAD(c.Month, 2, '0')) ASyear_month,c.Year AS year,c.Month AS month,c.WLMC AS WLMC," +
|
||||
" c.tstotalAmount AS tstotalAmount,c.lptotalAmount AS lptotalAmount,c.totalQuantity AS totalQuantity," +
|
||||
" ly.tstotalAmount AS LY_tstotalAmount,ly.lptotalAmount AS LY_lptotalAmount,ly.totalQuantity AS LY_totalQuantity," +
|
||||
" lm.tstotalAmount AS LM_tstotalAmount,lm.lptotalAmount AS LM_lptotalAmount,lm.totalQuantity AS LM_totalQuantity" +
|
||||
String currentMonthSql = "SELECT " +
|
||||
" CONCAT(c.Year, '-', LPAD(c.Month, 2, '0')) AS ny, " +
|
||||
" c.Year AS year, " +
|
||||
" c.Month AS month, " +
|
||||
" c.WLMC AS WLMC, " +
|
||||
" c.tstotalAmount AS tstotalAmount, " +
|
||||
" c.totalQuantity AS totalQuantity, " +
|
||||
" tstotalAmount/totalQuantity AS PJDJ " +
|
||||
" FROM (" +
|
||||
" SELECT WLMC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity," +
|
||||
" YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month" +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ" +
|
||||
" WHERE BKGS = ? AND DJRQ >= DATE_SUB( ? , INTERVAL 1 YEAR)" +
|
||||
" GROUP BY WLMC, YEAR(DJRQ), MONTH(DJRQ)" +
|
||||
" ) c LEFT JOIN (" +
|
||||
" SELECT WLMC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity," +
|
||||
" YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month" +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ" +
|
||||
" WHERE BKGS = ? AND DJRQ >= DATE_SUB( ? , INTERVAL 2 YEAR)" +
|
||||
" GROUP BY WLMC, YEAR(DJRQ), MONTH(DJRQ)" +
|
||||
" ) ly ON c.WLMC = ly.WLMC AND c.Month = ly.Month AND ly.Year = c.Year - 1" +
|
||||
" LEFT JOIN (" +
|
||||
" SELECT WLMC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity," +
|
||||
" YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month" +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ" +
|
||||
" WHERE BKGS = ? AND DJRQ >= DATE_SUB(?, INTERVAL 1 YEAR)" +
|
||||
" GROUP BY WLMC, YEAR(DJRQ), MONTH(DJRQ)" +
|
||||
" ) lm ON c.WLMC = lm.WLMC" +
|
||||
" AND ((c.Month > 1 AND c.Year = lm.Year AND c.Month = lm.Month + 1)" +
|
||||
" OR (c.Month = 1 AND c.Year = lm.Year + 1 AND lm.Month = 12))" +
|
||||
" WHERE c.Year = YEAR(?) ORDER BY c.Year, c.Month";
|
||||
List<RowMap> currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate,bkgs,startDate,bkgs,startDate,startDate);
|
||||
|
||||
" SELECT " +
|
||||
" WLMC, " +
|
||||
" SUM(DHJE) AS tstotalAmount, " +
|
||||
" SUM(RKSL) AS totalQuantity, " +
|
||||
" YEAR(DJRQ) AS Year, " +
|
||||
" MONTH(DJRQ) AS Month " +
|
||||
" FROM BO_EU_DWD_ORDER_RKD_HZ " +
|
||||
" WHERE BKGS = ? " +
|
||||
" AND DJRQ >= DATE_SUB(?, INTERVAL 2 YEAR) " +
|
||||
" GROUP BY WLMC, YEAR(DJRQ), MONTH(DJRQ) " +
|
||||
" ) c " +
|
||||
" WHERE c.Year IN (YEAR(?), YEAR(?) + 1) " +
|
||||
" ORDER BY c.Year, c.Month";
|
||||
List<RowMap> currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate,startDate,startDate);
|
||||
if (currentMonthData==null){
|
||||
return;
|
||||
}
|
||||
|
||||
// 4. 批量插入
|
||||
List<BO> bos = new ArrayList<>();
|
||||
for (RowMap currentMonthRow : currentMonthData) {
|
||||
@ -595,50 +446,16 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService {
|
||||
BO bo = new BO();
|
||||
bo.set("BKGS",bkgs);//板块
|
||||
bo.set("WLMC",wlmc);//物料名称
|
||||
bo.set("YEARMONTH",currentMonthRow.getString("ASyear_month"));//年月(YYYYMM)
|
||||
if (bkgs.equals("泰山石膏")) {
|
||||
Double tstotalAmount = currentMonthRow.getDouble("tstotalAmount");
|
||||
double tstotalAmount1 = tstotalAmount==null?0.0: tstotalAmount;
|
||||
Double totalQuantity = currentMonthRow.getDouble("totalQuantity");
|
||||
double totalQuantity1 = totalQuantity==null?0.0: totalQuantity;
|
||||
bo.set("CGZE", tstotalAmount1);//采购总额
|
||||
bo.set("CGZL",totalQuantity1);//采购总量
|
||||
if (tstotalAmount1!=0 && totalQuantity1!=0) {
|
||||
bo.set("PJDJ", tstotalAmount1/totalQuantity1);//平均单价
|
||||
}else {
|
||||
bo.set("PJDJ", 0);//平均单价
|
||||
}
|
||||
bo.set("TQCGZE",currentMonthRow.getString("LY_tstotalAmount"));//同期采购总额
|
||||
bo.set("SQCGZE",currentMonthRow.getString("LM_tstotalAmount"));//上期采购总额
|
||||
}
|
||||
else {
|
||||
Double tstotalAmount = currentMonthRow.getDouble("lptotalAmount");
|
||||
double tstotalAmount1 = tstotalAmount==null?0.0: tstotalAmount;
|
||||
Double totalQuantity = currentMonthRow.getDouble("totalQuantity");
|
||||
double totalQuantity1 = totalQuantity==null?0.0: totalQuantity;
|
||||
bo.set("CGZE", tstotalAmount1);//采购总额
|
||||
bo.set("CGZL",totalQuantity1);//采购总量
|
||||
if (tstotalAmount1!=0 && totalQuantity1!=0) {
|
||||
bo.set("PJDJ", tstotalAmount1/totalQuantity1);//平均单价
|
||||
}else {
|
||||
bo.set("PJDJ", 0);//平均单价
|
||||
}
|
||||
bo.set("TQCGZE",currentMonthRow.getString("LY_lptotalAmount"));//同期采购总额
|
||||
bo.set("SQCGZE",currentMonthRow.getString("LM_lptotalAmount"));//上期采购总额
|
||||
}
|
||||
bo.set("TQCGZL",currentMonthRow.getString("LY_totalQuantity"));//同期采购总量
|
||||
bo.set("SQCGZL",currentMonthRow.getString("LM_totalQuantity"));//上期采购总量
|
||||
bo.set("YEARMONTH",currentMonthRow.getString("ny"));//年月(YYYYMM)
|
||||
Double tstotalAmount = currentMonthRow.getDouble("tstotalAmount");
|
||||
Double totalQuantity = currentMonthRow.getDouble("totalQuantity");
|
||||
bo.set("CGZE", tstotalAmount);//采购总额
|
||||
bo.set("CGZL",totalQuantity);//采购总量
|
||||
bo.set("PJDJ",currentMonthRow.getDouble("PJDJ"));
|
||||
bos.add(bo);
|
||||
}
|
||||
|
||||
if (!bos.isEmpty()) {
|
||||
// 批量插入数据
|
||||
// int batchSize = 1000;
|
||||
// for (int i = 0; i < bos.size(); i += batchSize) {
|
||||
// int end = Math.min(i + batchSize, bos.size());
|
||||
// List<BO> batch = bos.subList(i, end);
|
||||
SDK.getBOAPI().createDataBO(PROCUREMENT_DETAILS_YEAR_MONTH, bos, UserContext.fromUID("admin"));
|
||||
// }
|
||||
SDK.getBOAPI().createDataBO(PROCUREMENT_DETAILS_YEAR_MONTH, bos, UserContext.fromUID("admin"));
|
||||
}
|
||||
|
||||
LOGGER.info("成功保存{}条月度汇总数据,板块:{}", bos.size(), bkgs);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user