Browse Source

opt: 库区,仓库,仓位分页查询优化

master
yanps 4 months ago
parent
commit
9da5387b3a
  1. 3
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/controller/SectattrController.java
  2. 3
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/SectattrService.java
  3. 3
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/dao/mapper/SectattrMapper.java
  4. 6
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/dao/mapper/SectattrMapper.xml
  5. 12
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/impl/SectattrServiceImpl.java
  6. 4
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/controller/StorattrController.java
  7. 3
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/StorattrService.java
  8. 4
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/dao/mapper/StorattrMapper.java
  9. 8
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/dao/mapper/StorattrMapper.xml
  10. 20
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/impl/StorattrServiceImpl.java
  11. BIN
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls

3
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/controller/SectattrController.java

@ -4,6 +4,7 @@ package org.nl.wms.basedata.master.sectattr.controller;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.basedata.master.sectattr.service.SectattrService;
import org.nl.wms.basedata.master.sectattr.service.dto.SectattrDto;
@ -29,7 +30,7 @@ public class SectattrController {
@GetMapping
@Log("查询库区")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(sectattrService.queryAll(whereJson, page), HttpStatus.OK);
}

3
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/SectattrService.java

@ -3,6 +3,7 @@ package org.nl.wms.basedata.master.sectattr.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata.master.sectattr.service.dao.Sectattr;
import org.nl.wms.basedata.master.sectattr.service.dto.SectattrDto;
import org.springframework.data.domain.Pageable;
@ -25,7 +26,7 @@ public interface SectattrService extends IService<Sectattr> {
* @param page 分页参数
* @return Map<String, Object>
*/
HashMap<String, Object> queryAll(Map whereJson, Pageable page);
HashMap<String, Object> queryAll(Map whereJson, PageQuery page);
/**
* 查询所有数据不分页

3
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/dao/mapper/SectattrMapper.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.nl.common.domain.query.PageQuery;
import org.nl.modules.common.annotation.Query;
import org.nl.wms.basedata.master.sectattr.service.dao.Sectattr;
import org.springframework.data.domain.Pageable;
@ -22,7 +23,7 @@ public interface SectattrMapper extends BaseMapper<Sectattr> {
* @param jo
* @return
*/
List<Sectattr> queryAll(@Param("jo")JSONObject jo, @Param("page") Pageable page);
IPage<Sectattr> queryAll(@Param("jo")JSONObject jo, @Param("page") IPage<Sectattr> page);
int getTatol(@Param("jo")JSONObject jsonObject);
}

6
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/dao/mapper/SectattrMapper.xml

@ -16,16 +16,16 @@
#{code}
</foreach>
</if>
<if test="jo.search != null and jo.search != ' '">
and sect.search like concat('%',#{jo.search},'%')
<if test="jo.search != null">
and sect.sect_name like concat('%',#{jo.search},'%') or sect.sect_code like concat('%',#{jo.search},'%')
</if>
<if test="jo.stor_id != null and jo.stor_id != ' '">
and stor.stor_id = #{jo.stor_id}
</if>
</where>
ORDER BY sect.update_time DESC
limit #{page.offset},#{page.size}
</select>
<select id="getTatol" resultType="java.lang.Integer">
select
COUNT(*)

12
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/sectattr/service/impl/SectattrServiceImpl.java

@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
@ -25,6 +26,7 @@ import org.nl.system.service.logicflow.dao.StageImage;
import org.nl.wms.basedata.master.sectattr.service.dao.Sectattr;
import org.nl.wms.basedata.master.sectattr.service.dao.mapper.SectattrMapper;
import org.nl.wms.basedata.master.sectattr.service.SectattrService;
import org.nl.wms.basedata.master.storattr.service.dao.Storattr;
import org.nl.wms.basedata.master.structattr.service.StructattrService;
import org.nl.wms.basedata.master.structattr.service.dao.Structattr;
import org.nl.wms.basedata.master.structattr.service.impl.StructattrServiceImpl;
@ -60,7 +62,7 @@ public class SectattrServiceImpl extends ServiceImpl<SectattrMapper, Sectattr> i
private StructattrService structattrServiceImpl;
@Override
public HashMap<String, Object> queryAll(Map whereJson, Pageable page) {
public HashMap<String, Object> queryAll(Map whereJson, PageQuery page) {
String search = (String) whereJson.get("search");
JSONObject jsonObject = new JSONObject();
if (!StrUtil.isEmpty(search)) {
@ -78,11 +80,11 @@ public class SectattrServiceImpl extends ServiceImpl<SectattrMapper, Sectattr> i
List<String> strings = CollUtil.toList(split);
jsonObject.put("in_stor_id", strings);
}
List<Sectattr> sectattrs = sectattrMapper.queryAll(jsonObject, page);
int tatol = sectattrMapper.getTatol(jsonObject);
IPage<Sectattr> pages = new Page<>(page.getPage() + 1, page.getSize());
IPage<Sectattr> sectattrs = sectattrMapper.queryAll(jsonObject, pages);
HashMap<String, Object> sectattrPage = new HashMap<>();
sectattrPage.put("totalElements", tatol);
sectattrPage.put("content", sectattrs);
sectattrPage.put("totalElements", sectattrs.getTotal());
sectattrPage.put("content", sectattrs.getRecords());
return sectattrPage;
}

4
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/controller/StorattrController.java

@ -4,6 +4,7 @@ package org.nl.wms.basedata.master.storattr.controller;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.basedata.master.storattr.service.StorattrService;
import org.nl.wms.basedata.master.storattr.service.dao.Storattr;
@ -31,9 +32,8 @@ public class StorattrController {
@GetMapping
@Log("查询仓库")
//@PreAuthorize("@el.check('Storattr:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(storattrService.queryAll(whereJson, page), HttpStatus.OK);
}

3
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/StorattrService.java

@ -2,6 +2,7 @@ package org.nl.wms.basedata.master.storattr.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata.master.storattr.service.dao.Storattr;
import org.nl.wms.basedata.master.storattr.service.dto.StorattrDto;
import org.springframework.data.domain.Pageable;
@ -23,7 +24,7 @@ public interface StorattrService extends IService<Storattr> {
* @param page 分页参数
* @return Map<String, Object>
*/
Map<String, Object> queryAll(Map whereJson, Pageable page);
Map<String, Object> queryAll(Map whereJson, PageQuery page);
/**
* 查询所有数据不分页

4
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/dao/mapper/StorattrMapper.java

@ -1,7 +1,9 @@
package org.nl.wms.basedata.master.storattr.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.basedata.master.materialbase.service.dao.Materialbase;
import org.nl.wms.basedata.master.storattr.service.dao.Storattr;
import org.nl.wms.basedata.master.structattr.service.dao.Structattr;
import org.springframework.data.domain.Pageable;
@ -16,7 +18,7 @@ public interface StorattrMapper extends BaseMapper<Storattr> {
* @param map
* @return
*/
List<Storattr> queryAll(@Param("map")HashMap<String, String> map,@Param("page") Pageable page);
IPage<Storattr> queryAll(@Param("search")String search,@Param("page") IPage<Storattr> page);
int queryAllTotal(@Param("map")HashMap<String, String> map);
}

8
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/dao/mapper/StorattrMapper.xml

@ -9,12 +9,13 @@
LEFT JOIN sys_dict detail ON detail.value = stor.stor_type_scode AND detail.code = 'st_stor_type'
<where>
stor.is_delete = '0'
<if test="map.search != null">
stor.stor_name like concat('%',#{map.search},'%') or stor.stor_code like concat('%',#{map.search},'%')
<if test="search != null">
stor.stor_name like concat('%',#{search},'%') or stor.stor_code like concat('%',#{search},'%')
</if>
</where>
LIMIT #{page.offset},#{page.size}
</select>
<select id="queryAllTotal" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM st_ivt_bsrealstorattr stor
@ -26,4 +27,5 @@
</if>
</where>
</select>
</mapper>

20
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/storattr/service/impl/StorattrServiceImpl.java

@ -8,16 +8,20 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.mica.core.utils.BeanUtil;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.basedata.master.materialbase.service.dao.Materialbase;
import org.nl.wms.basedata.master.sectattr.service.SectattrService;
import org.nl.wms.basedata.master.sectattr.service.dao.Sectattr;
import org.nl.wms.basedata.master.storattr.service.StorattrService;
@ -54,17 +58,13 @@ public class StorattrServiceImpl extends ServiceImpl<StorattrMapper, Storattr> i
private SectattrService sectattrServiceImpl;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
public Map<String, Object> queryAll(Map whereJson, PageQuery page) {
String search = (String) whereJson.get("search");
HashMap<String, String> map = new HashMap<>();
if (!StrUtil.isEmpty(search)) {
map.put("search", search);
}
List<Storattr> storattrList = storattrMapper.queryAll(map, page);
int tatol = storattrMapper.queryAllTotal(map);
IPage<Storattr> pages = new Page<>(page.getPage() + 1, page.getSize());
IPage<Storattr> storattrList = storattrMapper.queryAll(search, pages);
JSONObject jsonObject = new JSONObject();
jsonObject.put("totalElements", tatol);
jsonObject.put("content", storattrList);
jsonObject.put("totalElements", storattrList.getTotal());
jsonObject.put("content", storattrList.getRecords());
return jsonObject;
}
@ -198,7 +198,7 @@ public class StorattrServiceImpl extends ServiceImpl<StorattrMapper, Storattr> i
.eq(StrUtil.isNotEmpty(map.get("is_attachment")), Storattr::getIs_attachment, map.get("is_attachment"))
.orderByDesc(Storattr::getUpdate_time)
);
JSONArray ja = WQL.getWO("QST_STOR_ATTR").addParamMap(map).process().getResultJSONArray(0);
//JSONArray ja = WQL.getWO("QST_STOR_ATTR").addParamMap(map).process().getResultJSONArray(0);
JSONObject jo = new JSONObject();
jo.put("content", storattrs);
return jo;

BIN
lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls

Binary file not shown.
Loading…
Cancel
Save