Browse Source

后台管理员查询车牌登记历史记录显示新增查询条件

xlq 5 days ago
parent
commit
3a7cb0c24a

+ 5 - 0
src/main/java/com/qmrb/system/mapper/ContractPlaceNumberRelHisMapper.java

@@ -1,7 +1,11 @@
 package com.qmrb.system.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmrb.system.pojo.entity.ContractPlaceNumberRelHis;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmrb.system.pojo.entity.SysUser;
+import com.qmrb.system.pojo.query.ContractPlaceNumberRelHisQuery;
+import com.qmrb.system.pojo.vo.ContractPlaceNumberRelHisVO;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -15,4 +19,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface ContractPlaceNumberRelHisMapper extends BaseMapper<ContractPlaceNumberRelHis> {
 
+    Page<ContractPlaceNumberRelHisVO> getPageByRole(Page<Object> objectPage, String role, SysUser sysUser, ContractPlaceNumberRelHisQuery queryParams);
 }

+ 5 - 0
src/main/java/com/qmrb/system/pojo/query/ContractPlaceNumberRelHisQuery.java

@@ -22,6 +22,11 @@ public class ContractPlaceNumberRelHisQuery extends BasePageQuery{
     private String startTimeEnd;
     private String endTimeBegin;
     private String endTimeEnd;
+    /**
+     * 协议名称
+     */
+    @Schema(description = "协议名称",type="String")
+    private String contractName;
 
  	@Schema(description="关键字")
     private String keywords;

+ 12 - 0
src/main/java/com/qmrb/system/pojo/vo/ContractPlaceNumberRelHisVO.java

@@ -20,6 +20,18 @@ import java.util.Date;
  */
 @Data
 public class ContractPlaceNumberRelHisVO {
+
+    /**
+     * 角色
+     */
+    @Schema(description = "角色",type="String")
+    private String role;
+    /**
+     * 协议名称
+     */
+    @Schema(description = "协议名称",type="String")
+    private String contractName;
+
     /**
      * 覆盖时间
      */

+ 22 - 14
src/main/java/com/qmrb/system/service/impl/ContractPlaceNumberRelHisServiceImpl.java

@@ -28,6 +28,7 @@ import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Date;
+import java.util.Set;
 
 /**
  * <p>
@@ -55,23 +56,30 @@ public class ContractPlaceNumberRelHisServiceImpl extends ServiceImpl<ContractPl
 		// 获取当前登录角色
 		SysUser sysUser = userService.getOne(new LambdaQueryWrapper<SysUser>()
 						.eq(SysUser::getId, SecurityUtils.getUserId()));
+		// 获取用户角色信息
+		Set<String> roles = SecurityUtils.getRoles();
+		String role = "";
+		if (roles.contains("ADMIN")) {
+			role = "ADMIN";
+		}
+		Page<ContractPlaceNumberRelHisVO> pageResult = baseMapper.getPageByRole(new Page<>(pageNum, pageSize), role, sysUser,queryParams);
 		// 查询数据
-		LambdaQueryWrapper<ContractPlaceNumberRelHis> queryWrapper = new LambdaQueryWrapper<>();
-		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getStartTimeBegin()), ContractPlaceNumberRelHis::getStartTime, queryParams.getStartTimeBegin()).le(StrUtil.isNotBlank(queryParams.getStartTimeEnd()), ContractPlaceNumberRelHis::getStartTime, queryParams.getStartTimeEnd());
-		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getEndTimeBegin()), ContractPlaceNumberRelHis::getEndTime, queryParams.getEndTimeBegin()).le(StrUtil.isNotBlank(queryParams.getEndTimeEnd()), ContractPlaceNumberRelHis::getEndTime, queryParams.getEndTimeEnd());
-		queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPhone()), ContractPlaceNumberRelHis::getPhone, queryParams.getPhone());
-		queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPlateNumber()), ContractPlaceNumberRelHis::getPlateNumber, queryParams.getPlateNumber());
-		queryWrapper.eq(("3").equals(sysUser.getUserType()), ContractPlaceNumberRelHis::getContractId, sysUser.getContractId());
-		queryWrapper.orderByDesc(ContractPlaceNumberRelHis::getUpdateTime);
-
-        // 查询数据
-        Page<ContractPlaceNumberRelHis> dictItemPage = this.page(
-                new Page<>(pageNum, pageSize),
-				queryWrapper
-        );
+		// LambdaQueryWrapper<ContractPlaceNumberRelHis> queryWrapper = new LambdaQueryWrapper<>();
+		// queryWrapper.ge(StrUtil.isNotBlank(queryParams.getStartTimeBegin()), ContractPlaceNumberRelHis::getStartTime, queryParams.getStartTimeBegin()).le(StrUtil.isNotBlank(queryParams.getStartTimeEnd()), ContractPlaceNumberRelHis::getStartTime, queryParams.getStartTimeEnd());
+		// queryWrapper.ge(StrUtil.isNotBlank(queryParams.getEndTimeBegin()), ContractPlaceNumberRelHis::getEndTime, queryParams.getEndTimeBegin()).le(StrUtil.isNotBlank(queryParams.getEndTimeEnd()), ContractPlaceNumberRelHis::getEndTime, queryParams.getEndTimeEnd());
+		// queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPhone()), ContractPlaceNumberRelHis::getPhone, queryParams.getPhone());
+		// queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPlateNumber()), ContractPlaceNumberRelHis::getPlateNumber, queryParams.getPlateNumber());
+		// queryWrapper.eq(("3").equals(sysUser.getUserType()), ContractPlaceNumberRelHis::getContractId, sysUser.getContractId());
+		// queryWrapper.orderByDesc(ContractPlaceNumberRelHis::getUpdateTime);
+		//
+        // // 查询数据
+        // Page<ContractPlaceNumberRelHis> dictItemPage = this.page(
+        //         new Page<>(pageNum, pageSize),
+		// 		queryWrapper
+        // );
 
         // 实体转换
-        Page<ContractPlaceNumberRelHisVO> pageResult = converter.entity2Page(dictItemPage);
+        // Page<ContractPlaceNumberRelHisVO> pageResult = converter.entity2Page(dictItemPage);
 		for (ContractPlaceNumberRelHisVO record : pageResult.getRecords()) {
 			Date startTime = record.getStartTime();
 			Date endTime = record.getEndTime();

+ 9 - 2
src/main/java/com/qmrb/system/service/impl/ContractPlaceNumberRelServiceImpl.java

@@ -40,6 +40,7 @@ import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -91,7 +92,7 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
         if (roles.contains("ADMIN")) {
             role = "ADMIN";
         }
-        pageResult = baseMapper.getAdminPage(new Page<>(pageNum, pageSize), role, sysUser,queryParams);
+        pageResult = baseMapper.getAdminPage(new Page<>(pageNum, pageSize), role, sysUser, queryParams);
         // 管理员查看所有车牌登记情况
         if (StringUtils.isNotBlank(role)) {
             List<ContractPlaceNumberRelVO> records = pageResult.getRecords();
@@ -115,7 +116,10 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
             // pageResult = converter.entity2Page(dictItemPage);
             // 获取车位上限
             Contract contract = contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getId, sysUser.getContractId()));
+            // 获取分页结果的记录列表
             List<ContractPlaceNumberRelVO> records = pageResult.getRecords();
+            // 创建一个新的可变列表,并将原列表元素复制进去
+            List<ContractPlaceNumberRelVO> mutableRecords = new ArrayList<>(records);
             if (CollectionUtil.isEmpty(records)) {
                 ContractPlaceNumberRelVO contractPlaceNumberRelVO = new ContractPlaceNumberRelVO();
                 contractPlaceNumberRelVO.setContractId(sysUser.getContractId());
@@ -125,7 +129,10 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
                 contractPlaceNumberRelVO.setMaxParkingLotNum(contract.getMaxParkingLotNum());
                 contractPlaceNumberRelVO.setBigParkingLotNum(contract.getBigParkingLotNum());
                 contractPlaceNumberRelVO.setSmallParkingLotNum(contract.getSmallParkingLotNum());
-                records.add(contractPlaceNumberRelVO);
+                // 向可变列表中添加元素
+                mutableRecords.add(contractPlaceNumberRelVO);
+                // 将可变列表重新设置回分页结果中
+                pageResult.setRecords(mutableRecords);
             } else {
                 for (ContractPlaceNumberRelVO record : records) {
                     record.setAbledNum(String.valueOf(list.size()));

+ 30 - 0
src/main/resources/mapper/ContractPlaceNumberRelHisMapper.xml

@@ -2,4 +2,34 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmrb.system.mapper.ContractPlaceNumberRelHisMapper">
 
+    <select id="getPageByRole" resultType="com.qmrb.system.pojo.vo.ContractPlaceNumberRelHisVO">
+        SELECT
+        cpnr.*,
+        c.contract_name
+        FROM
+        contract_place_number_rel_his cpnr
+        LEFT JOIN
+        contract c ON cpnr.contract_id = c.id
+        <where>
+            <if test="role == 'ADMIN'">
+                <!-- 当role为ADMIN时,不添加额外条件,查询所有 -->
+            </if>
+            <if test="role != 'ADMIN'">
+                cpnr.contract_id = #{sysUser.contractId}
+            </if>
+            <if test="queryParams.contractName != null and queryParams.contractName != ''">
+                c.contract_name like concat('%', #{queryParams.contractName}, '%')
+            </if>
+            <if test="queryParams.plateNumber != null and queryParams.plateNumber != ''">
+                c.contract_name like concat('%', #{queryParams.contractName}, '%')
+            </if>
+            <if test="queryParams.startTimeBegin != null and queryParams.startTimeBegin != '' and queryParams.startTimeEnd != null and queryParams.startTimeEnd != ''">
+                cpnr.create_time between #{queryParams.startTimeBegin} and #{queryParams.startTimeEnd}
+            </if>
+            <if test="queryParams.endTimeBegin != null and queryParams.endTimeBegin != '' and queryParams.endTimeEnd != null and queryParams.endTimeEnd != ''">
+                cpnr.create_time between #{queryParams.endTimeBegin} and #{queryParams.endTimeEnd}
+            </if>
+        </where>
+        order by cpnr.update_time desc
+    </select>
 </mapper>