From fc7e6b2b5ee9b36e6069e563a6e49f10a25be6d5 Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Tue, 5 Nov 2024 18:14:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=BA=93=E5=AD=98=E7=9B=98?= =?UTF-8?q?=E7=82=B9=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yb/lb/webapp/excel/stock/StockExcel.java | 7 +- .../webapp/stock/StockReportController.java | 7 +- .../stock/ClientStockReportMapper.xml | 200 +++++++++++------- 3 files changed, 136 insertions(+), 78 deletions(-) diff --git a/crm-admin/src/main/java/com/yb/lb/webapp/excel/stock/StockExcel.java b/crm-admin/src/main/java/com/yb/lb/webapp/excel/stock/StockExcel.java index c023193..ca218ec 100644 --- a/crm-admin/src/main/java/com/yb/lb/webapp/excel/stock/StockExcel.java +++ b/crm-admin/src/main/java/com/yb/lb/webapp/excel/stock/StockExcel.java @@ -90,6 +90,7 @@ public class StockExcel { @ApiOperation(value = "导出客户库存盘点明细") @GetMapping(value = "/exportClientStockReport") public void exportClientStockReport( + @ApiParam(required = true, value = "客户是否盘点过 1.是 0.否") @RequestParam(required = true) String existFlag, @ApiParam(required = true, value = "开始日期") @RequestParam(required = true) String startDate, @ApiParam(required = true, value = "结束日期") @RequestParam(required = true) String endDate, @ApiParam(required = false, value = "客户id") @RequestParam(required = false) String clientId, @@ -113,7 +114,11 @@ public class StockExcel { params.put("uecode", uecode); params.put("clientName", clientName); params.put("staffName", staffName); - List list = clientStockReportService.findList(params, ".getClientStockReportSql"); + String sqlId = ".getClientStockReportSql"; + if ("0".equals(existFlag)) { + sqlId = ".getNoClientStockSql"; + } + List list = clientStockReportService.findList(params, sqlId); EasyPoiUtils.exportExcel(list, ClientStockReport.class, "客户库存盘点明细导出", response); } diff --git a/crm-admin/src/main/java/com/yb/lb/webapp/stock/StockReportController.java b/crm-admin/src/main/java/com/yb/lb/webapp/stock/StockReportController.java index c6cdb93..8640d3c 100644 --- a/crm-admin/src/main/java/com/yb/lb/webapp/stock/StockReportController.java +++ b/crm-admin/src/main/java/com/yb/lb/webapp/stock/StockReportController.java @@ -132,6 +132,7 @@ public class StockReportController extends BaseController { @ApiOperation("客户库存盘点明细") @PostMapping(value = "/getClientStockReport") public Map getClientStockReport( + @ApiParam(required = true, value = "客户是否盘点过 1.是 0.否") @RequestParam(required = true) String existFlag, @ApiParam(required = true, value = "开始日期") @RequestParam(required = true) String startDate, @ApiParam(required = true, value = "结束日期") @RequestParam(required = true) String endDate, @ApiParam(required = false, value = "客户id") @RequestParam(required = false) String clientId, @@ -160,7 +161,11 @@ public class StockReportController extends BaseController { params.put("staffName", staffName); params.put("page", pageNum); params.put("pageSize", pageSize); - return toPage(clientStockReportService.pageList(params, ".getClientStockReportSql")); + String sqlId = ".getClientStockReportSql"; + if ("0".equals(existFlag)) { + sqlId = ".getNoClientStockSql"; + } + return toPage(clientStockReportService.pageList(params, sqlId)); } /** diff --git a/crm-common/src/main/resources/mapper/mapper_oracle/stock/ClientStockReportMapper.xml b/crm-common/src/main/resources/mapper/mapper_oracle/stock/ClientStockReportMapper.xml index 552b0fe..a4be6f9 100644 --- a/crm-common/src/main/resources/mapper/mapper_oracle/stock/ClientStockReportMapper.xml +++ b/crm-common/src/main/resources/mapper/mapper_oracle/stock/ClientStockReportMapper.xml @@ -26,82 +26,8 @@ TO_CHAR(TO_DATE(SUBSTR(#{endDate},1,10),'yyyy-MM-dd'),'yyyy-MM-dd') - - - + SELECT + t0.id "clientId", + t0.uecode "uecode", + t0.distributor_name "clientName", + csui.name "staffName", + cmai.area_name "areaName", + NVL(t1.bill_date, '---') "billDate", + NVL(t1.count_num, 0) "countNum", + NVL(t1.goods_num, 0) "goodsNum", + NVL(t2.bill_num, 0) "billNum" + FROM ( SELECT + cdui.id, + cdui.uecode, + cdui.distributor_name, + cdui.ancestors, + cdui.marketing_area_id, + cdui.region, + cdui.service_id, + cdui.company_id + FROM ( + SELECT client_id + FROM crm_inventory_info + WHERE confirm_status = '1' AND company_id = #{companyId} + + GROUP BY client_id + ) table_client + LEFT JOIN crm_distributor_user_info cdui ON table_client.client_id = cdui.id + WHERE cdui.status = '1' AND cdui.documents_status = '1' + AND cdui.uecode IS NOT NULL AND cdui.company_id = #{companyId} + ) t0 + LEFT JOIN ( + SELECT * + FROM ( + SELECT tt1.*, + ROW_NUMBER() OVER ( PARTITION BY tt1.client_id ORDER BY tt1.bill_date DESC, tt1.create_time DESC ) AS rn + FROM ( + SELECT a.bill_no, + a.bill_date, + a.client_id, + a.create_time, + b.count_num, + b.goods_num + FROM crm_inventory_info a + LEFT JOIN client_pd_num_view b ON a.id = b.bill_id + WHERE a.confirm_status = '1' AND a.company_id = #{companyId} + + ) tt1 + ) temp + WHERE rn = 1 + ) t1 ON t0.id = t1.client_id + LEFT JOIN (SELECT client_id, COUNT(1) bill_num + FROM crm_inventory_info + WHERE confirm_status = '1' AND company_id = #{companyId} + + GROUP BY client_id) t2 ON t0.id = t2.client_id + LEFT JOIN crm_servicer_user_info csui ON t0.service_id = csui.id + LEFT JOIN crm_marketing_area_info cmai ON t0.marketing_area_id = cmai.id + WHERE 1=1 + + AND t0.id = #{clientId} + + + AND t0.uecode LIKE '%' || #{uecode} || '%' + + + AND t0.distributor_name LIKE '%' || #{clientName} || '%' + + + AND csui.name LIKE '%' || #{staffName} || '%' + + + AND cmai.area_name LIKE '%' || #{areaName} || '%' + + + + + +