From 6ace9f4ba616909b986c6de276dff735de2f33b8 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Tue, 26 Nov 2024 20:27:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E4=BA=8B=E7=94=B1?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/config/MyPostgreSQLDialect.java | 2 ++ .../service/WarehouseReceiptService.java | 31 +++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/spring/config/MyPostgreSQLDialect.java b/src/main/java/cn/lihongjie/coal/spring/config/MyPostgreSQLDialect.java index 3dbf27e7..934f4f8b 100644 --- a/src/main/java/cn/lihongjie/coal/spring/config/MyPostgreSQLDialect.java +++ b/src/main/java/cn/lihongjie/coal/spring/config/MyPostgreSQLDialect.java @@ -79,6 +79,8 @@ public class MyPostgreSQLDialect extends PostgreSQLDialect { functionContributions.getFunctionRegistry().registerPattern( "anyString", "any(?1)", stringType); + functionContributions.getFunctionRegistry().registerPattern("pg_array_length", "array_length(?1, 1)", functionContributions.getTypeConfiguration() + .getBasicTypeRegistry().resolve(StandardBasicTypes.INTEGER)); } diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java index 0400157c..4d3826c8 100644 --- a/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java @@ -1,14 +1,12 @@ package cn.lihongjie.coal.warehouseReceipt.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.NumberUtil; import cn.lihongjie.coal.base.dto.CommonQuery; import cn.lihongjie.coal.base.dto.IdRequest; import cn.lihongjie.coal.base.service.BaseService; -import cn.lihongjie.coal.common.Ctx; -import cn.lihongjie.coal.common.FreeMakerUtils; -import cn.lihongjie.coal.common.JpaUtils; -import cn.lihongjie.coal.common.NumberUtils; +import cn.lihongjie.coal.common.*; import cn.lihongjie.coal.exception.BizException; import cn.lihongjie.coal.orderNoRule.dto.GenOrderNoRequest; import cn.lihongjie.coal.orderNoRule.service.OrderNoRuleService; @@ -312,7 +310,6 @@ public class WarehouseReceiptService Map map = (Map) content.get(0); return NumberUtil.parseInt(map.get("currNumber").toString()); - } private void handleType3Create(WarehouseReceiptEntity entity) { @@ -510,9 +507,25 @@ public class WarehouseReceiptService } public Page list(CommonQuery query) { + Specification specification = query.specification(conversionService); + + if (MapUtil.getBool(query.getExtras(), "excludeEmptyFileIds", false)) { + + specification = + specification.and( + (root, criteriaQuery, criteriaBuilder) -> { + return criteriaBuilder.greaterThan( + criteriaBuilder.function( + "pg_array_length", + Integer.class, + root.get("fileIds")), + 0); + }); + } + Page page = repository.findAll( - query.specification(conversionService), + specification, PageRequest.of( query.getPageNo(), query.getPageSize(), @@ -576,7 +589,7 @@ public class WarehouseReceiptService with bq as (select distinct on ( gs.id, w.id - + <#if shelveSummary> , d.shelve_id @@ -624,7 +637,7 @@ public class WarehouseReceiptService w.code as warehouse_code, gc.code as category_code, gc.name as category_name, - + <#if shelveSummary> ws.id as shelve_id, ws.name as shelve_name, @@ -670,7 +683,7 @@ public class WarehouseReceiptService left join t_warehouse_goods_unit gu on gs.unit_id = gu.id left join t_warehouse_goods_brand gb on gs.brand_id = gb.id left join t_warehouse_goods_category gc on gs.category_id = gc.id - + <#if shelveSummary> left join t_warehouse_shelve ws on d.shelve_id = ws.id