Browse Source

执法端-分页修改

dev-V1.0.1
niujiyi 5 months ago
parent
commit
c6fab88364
  1. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfSystemController.java
  2. 40
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementRegistrationController.java
  3. 126
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java

10
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfSystemController.java

@ -29,10 +29,7 @@ import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -214,9 +211,8 @@ public class AppEnfSystemController extends BaseController {
* @return
*/
@SaIgnore
@PostMapping("/queryUsersByPage")
@ResponseBody
public TableDataInfo<SysUserVo> queryUsersByPage(@RequestBody SysUserBo bo, PageQuery pageQuery) {
@GetMapping("/queryUsersByPage")
public TableDataInfo<SysUserVo> queryUsersByPage(SysUserBo bo, PageQuery pageQuery) {
if (null != bo.getNotUserId()) {
Map<String, Object> params = bo.getParams();
params.put("notUserIds", Convert.toStrArray(bo.getNotUserId()));

40
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnforcementRegistrationController.java

@ -2,7 +2,11 @@ package com.zdxt.enforcementcode.controller.app.enforcement;
import cn.dev33.satoken.annotation.SaIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zdxt.enforcementcode.common.util.CommonUtil;
import com.zdxt.enforcementcode.domain.EnforcementRegistration;
import com.zdxt.enforcementcode.domain.bo.EnforcementRegistrationBo;
import com.zdxt.enforcementcode.domain.bo.EnterpriseLawEnforcementBo;
import com.zdxt.enforcementcode.domain.bo.enterprise.AppEnterpriseComplaintBo;
@ -458,22 +462,26 @@ public class AppEnforcementRegistrationController extends BaseController {
* 查询执法端-执法登记列表
*/
@SaIgnore
@PostMapping("/list")
@ResponseBody
public TableDataInfo<EnforcementRegistrationVo> list(@RequestBody EnforcementRegistrationBo bo, PageQuery pageQuery) {
@GetMapping("/list")
public TableDataInfo<EnforcementRegistrationVo> list(EnforcementRegistrationBo bo, PageQuery pageQuery) {
long startTime = System.currentTimeMillis();
// 使用 DataPermissionHelper.ignore() 跳过数据权限检查,避免 token 冻结导致的认证错误
List<EnforcementRegistrationVo> list = DataPermissionHelper.ignore(() ->
enforcementRegistrationService.selectEnforcementRegistrationList(bo, pageQuery)
// 校验分页参数,防止全量查询
if (pageQuery.getPageSize() == null || pageQuery.getPageSize() <= 0) {
pageQuery.setPageSize(10);
}
if (pageQuery.getPageNum() == null || pageQuery.getPageNum() <= 0) {
pageQuery.setPageNum(1);
}
// 使用标准的分页查询方法
TableDataInfo<EnforcementRegistrationVo> pageResult = DataPermissionHelper.ignore(() ->
enforcementRegistrationService.queryPageList(bo, pageQuery)
);
List<EnforcementRegistrationVo> list = pageResult.getRows();
if (list == null || list.isEmpty()) {
TableDataInfo<EnforcementRegistrationVo> emptyResult = new TableDataInfo<>();
emptyResult.setCode(0);
emptyResult.setRows(new ArrayList<>());
emptyResult.setTotal(0L);
return emptyResult;
return pageResult;
}
// 1. 批量获取字典数据(只查询一次)
@ -496,15 +504,11 @@ public class AppEnforcementRegistrationController extends BaseController {
fillOutTimeDayNum(vo);
}
TableDataInfo<EnforcementRegistrationVo> rspData = new TableDataInfo<>();
rspData.setCode(0);
rspData.setRows(list);
rspData.setTotal(list.size());
long endTime = System.currentTimeMillis();
log.info("执法登记列表查询耗时: {}ms, 数据量: {}", (endTime - startTime), list.size());
log.info("执法登记列表查询耗时: {}ms, 数据量: {}, 总数: {}",
(endTime - startTime), list.size(), pageResult.getTotal());
return rspData;
return pageResult;
}
/**

126
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java

@ -86,7 +86,8 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
*/
@Override
public TableDataInfo<EnforcementRegistrationVo> queryPageList(EnforcementRegistrationBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EnforcementRegistration> lqw = buildQueryWrapper(bo);
// 使用App端专用的查询条件构建器
LambdaQueryWrapper<EnforcementRegistration> lqw = buildAppListQueryWrapper(bo);
Page<EnforcementRegistrationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@ -728,9 +729,126 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
@DataScope(deptField = "bureau_dept_id", extraDeptField = "entrust_dept_id")
public List<EnforcementRegistrationVo> selectEnforcementRegistrationList(EnforcementRegistrationBo bo, PageQuery pageQuery)
{
Page<EnforcementRegistrationVo> page = pageQuery.build();
List<EnforcementRegistrationVo> vo = baseMapper.selectEnforcementRegistrationList(bo, page);
return vo;
// 使用MyBatis-Plus标准分页查询,避免复杂SQL导致分页失效
LambdaQueryWrapper<EnforcementRegistration> lqw = buildAppListQueryWrapper(bo);
Page<EnforcementRegistrationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return result.getRecords();
}
/**
* 构建App端执法登记列表查询条件
* 用于替代XML中的复杂SQL,使分页拦截器能正常工作
*/
private LambdaQueryWrapper<EnforcementRegistration> buildAppListQueryWrapper(EnforcementRegistrationBo bo) {
LambdaQueryWrapper<EnforcementRegistration> lqw = Wrappers.lambdaQuery();
// 已提交的数据
lqw.eq(EnforcementRegistration::getIsSubmit, 1L);
// 企业ID
lqw.eq(StringUtils.isNotBlank(bo.getEnterpriseId()),
EnforcementRegistration::getEnterpriseId, bo.getEnterpriseId());
// 企业名称模糊查询
lqw.like(StringUtils.isNotBlank(bo.getEnterpriseName()),
EnforcementRegistration::getEnterpriseName, bo.getEnterpriseName());
// 企业税号
lqw.eq(StringUtils.isNotBlank(bo.getEnterpriseNumber()),
EnforcementRegistration::getEnterpriseNumber, bo.getEnterpriseNumber());
// 删除标记
lqw.eq(bo.getIsDelete() != null, EnforcementRegistration::getIsDelete, bo.getIsDelete());
// 状态
lqw.eq(bo.getStatus() != null, EnforcementRegistration::getStatus, bo.getStatus());
// 联合执法编号
lqw.eq(StringUtils.isNotBlank(bo.getUnionNo()),
EnforcementRegistration::getUnionNo, bo.getUnionNo());
// 是否联合执法
lqw.eq(bo.getHasUnion() != null, EnforcementRegistration::getHasUnion, bo.getHasUnion());
// 是否真实联合执法
lqw.eq(bo.getIsRealUnion() != null, EnforcementRegistration::getIsRealUnion, bo.getIsRealUnion());
// 是否自动
lqw.eq(bo.getHasAuto() != null, EnforcementRegistration::getHasAuto, bo.getHasAuto());
// 搜索值(企业名称)
lqw.like(StringUtils.isNotBlank(bo.getSearchValue()),
EnforcementRegistration::getEnterpriseName, bo.getSearchValue());
// 日期搜索(年月)
if (StringUtils.isNotBlank(bo.getDateSearch())) {
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m') = {0}", bo.getDateSearch());
}
// dateType: 1-本月, 2-本季度, 3-本年
if (bo.getDateType() != null) {
if (bo.getDateType() == 1) {
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')");
} else if (bo.getDateType() == 2) {
int month = java.time.LocalDate.now().getMonthValue();
int quarter = (month - 1) / 3 + 1;
int startMonth = (quarter - 1) * 3 + 1;
int endMonth = quarter * 3;
String year = String.valueOf(java.time.LocalDate.now().getYear());
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m') >= CONCAT({0}, '-', LPAD({1}, 2, '0'))", year, startMonth);
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m') <= CONCAT({0}, '-', LPAD({1}, 2, '0'))", year, endMonth);
} else if (bo.getDateType() == 3) {
lqw.apply("DATE_FORMAT(enforcement_time, '%Y') = DATE_FORMAT(CURDATE(), '%Y')");
}
}
// 开始时间
if (StringUtils.isNotBlank(bo.getBeginTime())) {
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m-%d') >= {0}", bo.getBeginTime());
}
// 结束时间
if (StringUtils.isNotBlank(bo.getEndTime())) {
lqw.apply("DATE_FORMAT(enforcement_time, '%Y-%m-%d') <= {0}", bo.getEndTime());
}
// params中的时间 - 修复类型转换问题
if (bo.getParams() != null) {
Object beginTimeObj = bo.getParams().get("beginTime");
if (beginTimeObj != null) {
String beginTime = String.valueOf(beginTimeObj);
if (StringUtils.isNotBlank(beginTime)) {
lqw.ge(EnforcementRegistration::getEnforcementTime, beginTime);
}
}
Object endTimeObj = bo.getParams().get("endTime");
if (endTimeObj != null) {
String endTime = String.valueOf(endTimeObj);
if (StringUtils.isNotBlank(endTime)) {
lqw.le(EnforcementRegistration::getEnforcementTime, endTime);
}
}
}
// 用户权限过滤
if (StringUtils.isNotBlank(bo.getUserId()) &&
(StringUtils.isBlank(bo.getBureauDeptId()))) {
lqw.and(wrapper -> wrapper
.eq(EnforcementRegistration::getLawEnforcerId, bo.getUserId())
.or().eq(EnforcementRegistration::getUserId, bo.getUserId())
.or().apply("FIND_IN_SET({0}, law_enforcer_id_two)", bo.getUserId())
);
}
// 局部门ID过滤
lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()),
EnforcementRegistration::getBureauDeptId, bo.getBureauDeptId());
// 按执法时间倒序
lqw.orderByDesc(EnforcementRegistration::getEnforcementTime);
return lqw;
}
/**

Loading…
Cancel
Save