From ca6378961df6d8723d40868917f9e97bcb80b76a Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Fri, 24 Oct 2025 17:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B6=85=E5=B8=82=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8quantity=E8=B4=9F=E6=95=B0=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supermarket/dto/StockWarnQueryDTO.java | 1 + .../vo/mall/MallProductSkuAppVo.java | 1 + .../service/impl/SalesReportServiceImpl.java | 17 ++++- .../mapper/InventoryReportMapper.xml | 56 +++++++-------- .../resources/mapper/ProfitReportMapper.xml | 72 +++++++++---------- .../resources/mapper/SalesReportMapper.xml | 34 ++++----- 6 files changed, 98 insertions(+), 83 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/StockWarnQueryDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/StockWarnQueryDTO.java index 3821e52d7..91a321431 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/StockWarnQueryDTO.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/StockWarnQueryDTO.java @@ -44,3 +44,4 @@ public class StockWarnQueryDTO { private Long categoryId; } + diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/mall/MallProductSkuAppVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/mall/MallProductSkuAppVo.java index 43c8b20e7..06f83f888 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/mall/MallProductSkuAppVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/mall/MallProductSkuAppVo.java @@ -70,3 +70,4 @@ public class MallProductSkuAppVo { private String status; } + diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SalesReportServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SalesReportServiceImpl.java index b4f5946b5..dea5be535 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SalesReportServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SalesReportServiceImpl.java @@ -29,8 +29,21 @@ public class SalesReportServiceImpl implements SalesReportService { @Override public Page page(Page page, SalesReportQueryDTO queryDTO) { - log.info("分页查询销售报表,查询条件:{}", queryDTO); - return salesReportMapper.selectSalesReportPage(page, queryDTO, DataScope.of()); + log.info("========== 销售报表查询参数 =========="); + log.info("分页参数 - current: {}, size: {}", page.getCurrent(), page.getSize()); + log.info("查询条件 - productName: {}", queryDTO != null ? queryDTO.getProductName() : null); + log.info("查询条件 - productCode: {}", queryDTO != null ? queryDTO.getProductCode() : null); + log.info("查询条件 - categoryId: {}", queryDTO != null ? queryDTO.getCategoryId() : null); + log.info("查询条件 - startDate: {}", queryDTO != null ? queryDTO.getStartDate() : null); + log.info("查询条件 - endDate: {}", queryDTO != null ? queryDTO.getEndDate() : null); + log.info("查询条件 - sortBy: {}", queryDTO != null ? queryDTO.getSortBy() : null); + + Page result = salesReportMapper.selectSalesReportPage(page, queryDTO, DataScope.of()); + + log.info("查询结果数量: {} / 总数: {}", result.getRecords().size(), result.getTotal()); + log.info("======================================"); + + return result; } @Override diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/InventoryReportMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/InventoryReportMapper.xml index 71de46520..20133f11b 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/InventoryReportMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/InventoryReportMapper.xml @@ -57,82 +57,82 @@ base.purchase_price / 100.0 AS purchase_price, base.retail_price / 100.0 AS retail_price, COALESCE(SUM(CASE WHEN r.inventory_type = '3' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS purchase_in_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '3' THEN item.total_amount END), 0) / 100.0 AS purchase_in_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '3' THEN item.total_amount END), 0)) / 100.0 AS purchase_in_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '4' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS purchase_return_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '4' THEN item.total_amount END), 0) / 100.0 AS purchase_return_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '4' THEN item.total_amount END), 0)) / 100.0 AS purchase_return_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS sales_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 AS sales_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 AS sales_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS sales_return_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0 AS sales_return_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0 AS sales_return_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS actual_sales_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0 AS actual_sales_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0 AS actual_sales_amount, (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) * COALESCE(base.purchase_price / 100.0, 0) AS sales_cost, COALESCE(stock.current_stock, 0) AS closing_qty, COALESCE(stock.current_stock, 0) * COALESCE(base.purchase_price / 100.0, 0) AS closing_amount, COALESCE(stock.current_stock, 0) * COALESCE(base.retail_price / 100.0, 0) AS closing_retail_amount, - (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) + (ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) - ((COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) * COALESCE(base.purchase_price / 100.0, 0)) AS gross_profit, MIN(CASE WHEN r.inventory_type = '3' THEN r.inventory_date END) AS first_purchase_date, COALESCE(stock.base_stock, 0) AS opening_qty, diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ProfitReportMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ProfitReportMapper.xml index 21a4609ea..6cd106768 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ProfitReportMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ProfitReportMapper.xml @@ -39,98 +39,98 @@ base.spec AS spec, base.unit AS unit, COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS sales_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0 AS sales_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0 AS sales_amount, COALESCE(base.purchase_price / 100.0, 0) AS cost_price, CASE WHEN (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) > 0 - THEN (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) + THEN (ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) / (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) ELSE 0 END AS sales_price, (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) * COALESCE(base.purchase_price / 100.0, 0) AS sales_cost, - (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) + (ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) - ((COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) * COALESCE(base.purchase_price / 100.0, 0)) AS gross_profit, - CASE WHEN (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) > 0 - THEN ((COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) + CASE WHEN (ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) > 0 + THEN ((ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) - ((COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0)) * COALESCE(base.purchase_price / 100.0, 0))) - / (COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0) * 100 + / (ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0) * 100 ELSE 0 END AS profit_margin, COUNT(DISTINCT CASE WHEN r.inventory_type IN ('5', '6') THEN r.id END) AS sales_count diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SalesReportMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SalesReportMapper.xml index f5698c744..3928d33e2 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SalesReportMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SalesReportMapper.xml @@ -36,50 +36,50 @@ base.spec AS spec, base.unit AS unit, COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS sales_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 AS sales_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 AS sales_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS return_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0 AS return_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0 AS return_amount, COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) AS actual_sales_qty, - COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 - - COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0) / 100.0 AS actual_sales_amount, + ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 + - ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '6' THEN item.total_amount END), 0)) / 100.0 AS actual_sales_amount, CASE WHEN COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) > 0 - THEN COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0) / 100.0 + THEN ABS(COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN item.total_amount END), 0)) / 100.0 / COALESCE(SUM(CASE WHEN r.inventory_type = '5' THEN - CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id + ABS(CASE WHEN u.id IS NOT NULL AND base.id IS NOT NULL AND u.id != base.id AND u.package_num IS NOT NULL AND u.package_num > 0 THEN item.quantity * u.package_num ELSE item.quantity - END + END) END), 0) ELSE 0 END AS sales_price,