From f0453b11947a7bfc8e7a29b72c42544cdbde29ea Mon Sep 17 00:00:00 2001 From: zhangzq Date: Wed, 12 Feb 2025 14:41:26 +0800 Subject: [PATCH] =?UTF-8?q?opt:wql=E5=88=86=E5=88=87=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/config/mybatis/MybatisPlusConfig.java | 10 +++++----- .../org/nl/modules/wql/core/bean/ResultBean.java | 2 +- .../modules/wql/core/engine/syntax/wqlSELECT.java | 7 +++++-- .../java/org/nl/wms/sch/service/RegionService.java | 2 +- .../nl/wms/sch/service/impl/PointServiceImpl.java | 13 ++++++++++++- .../nl/wms/sch/service/impl/RegionServiceImpl.java | 4 ++-- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java index 707dddce6..3e97fae34 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/mybatis/MybatisPlusConfig.java @@ -32,16 +32,16 @@ public class MybatisPlusConfig { public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); -// // 分页插件 +//// // 分页插件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //乐观锁插件 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } - @Bean - ConfigurationCustomizer mybatisConfigurationCustomizer() { - return configuration -> configuration.addInterceptor(new PageInterceptor()); - } +// @Bean +// ConfigurationCustomizer mybatisConfigurationCustomizer() { +// return configuration -> configuration.addInterceptor(new PageInterceptor()); +// } } diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java index e51e343eb..f84183697 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java @@ -257,7 +257,7 @@ public class ResultBean implements Serializable, Cloneable { int nTotalSize = 0; if (null != rows2 && rows2.size() > 0) { JSONObject jrow2 = this.row2jsonobject((BasicDynaBean) rows2.get(0)); - nTotalSize = jrow2.getInteger("page_totalrecordnum"); + nTotalSize = jrow2.getInteger("count(0)"); } jres.put("totalElements", nTotalSize); return jres; diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/syntax/wqlSELECT.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/syntax/wqlSELECT.java index 435359dc2..0c53c4bb9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/syntax/wqlSELECT.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/syntax/wqlSELECT.java @@ -1,5 +1,6 @@ package org.nl.modules.wql.core.engine.syntax; +import com.github.pagehelper.parser.CountSqlParser; import lombok.extern.slf4j.Slf4j; import org.nl.modules.wql.WQLCore; import org.nl.modules.wql.core.DataType; @@ -410,7 +411,9 @@ public class wqlSELECT extends IWQL { //对sql进行特殊处理,找出和第一个select配对的from,并把中间全部换为1 // String page_sql = change_1(wo.wp.sSQL); String page_sql = wo.wp.sSQL; - wo.wp.sSQL = "select count(*) PAGE_TOTALRECORDNUM from ( " + page_sql + ") TOTALRECORDVIEW"; + CountSqlParser countSqlParser = new CountSqlParser(); + String countSql = countSqlParser.getSmartCountSql(page_sql, "0"); + wo.wp.sSQL = countSql; } } //2.3、加session并执行 @@ -658,7 +661,7 @@ public class wqlSELECT extends IWQL { // this.wo = wo; // this.cmdLine = cmdLine; // this.list = list; -// +// // } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java index 1da65aa83..6f1406ab8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/RegionService.java @@ -29,7 +29,7 @@ public interface RegionService { * @param whereJson 条件参数 * @return List */ - List queryAll(Map whereJson); + List queryAll(String whereJson); /** * 根据ID查询 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index efcc5e1ea..632813e1e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; @@ -27,6 +28,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; /** * @author ldjun @@ -59,13 +62,21 @@ public class PointServiceImpl implements PointService { } JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc"); JSONArray content = json.getJSONArray("content"); + List regionIds = new ArrayList<>(); + for (int i = 0; i < content.size(); i++) { + JSONObject object = content.getJSONObject(i); + String region_id = object.getString("region_id"); + regionIds.add(region_id); + } + List regionDtos = regionService.queryAll("region_id in ('" + regionIds.stream().collect(Collectors.joining(",")) + "')"); + Map attrMap = regionDtos.stream().collect(HashMap::new, (m, o) -> m.put(o.getRegion_id(), o), HashMap::putAll); JSONArray res = new JSONArray(); for (int i = 0; i < content.size(); i++) { JSONObject object = content.getJSONObject(i); Long region_id = object.getLong("region_id"); String point_status = object.getString("point_status"); String point_type = object.getString("point_type"); - RegionDto regionDto = regionService.findById(region_id); + RegionDto regionDto = attrMap.get(region_id); String point_status_explain = regionDto.getPoint_status_explain(); String point_type_explain = regionDto.getPoint_type_explain(); // 获取点位状态名称 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java index d0c01dd67..5572770a0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/RegionServiceImpl.java @@ -50,9 +50,9 @@ public class RegionServiceImpl implements RegionService { } @Override - public List queryAll(Map whereJson) { + public List queryAll(String whereJson) { WQLObject wo = WQLObject.getWQLObject("sch_base_region"); - JSONArray arr = wo.query().getResultJSONArray(0); + JSONArray arr = wo.query(whereJson).getResultJSONArray(0); if (ObjectUtil.isNotEmpty(arr)) { return arr.toJavaList(RegionDto.class); }