Browse Source

后台管理员支持查询每个协议的车牌登记情况

xlq 3 days ago
parent
commit
1ee7419d5f

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

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

+ 20 - 0
src/main/java/com/qmrb/system/pojo/vo/ContractPlaceNumberRelVO.java

@@ -20,6 +20,26 @@ import java.util.Date;
  */
 @Data
 public class ContractPlaceNumberRelVO {
+    private String startTimeBegin;
+    private String startTimeEnd;
+    /**
+     * 角色
+     */
+    @Schema(description = "角色",type="String")
+    private String role;
+    /**
+     * 协议名称
+     */
+    @Schema(description = "协议名称",type="String")
+    private String contractName;
+
+    /**
+     * 登记日期
+     */
+    @Schema(description = "登记日期",type="Date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
     /**
      * 启用状态数量
      */

+ 1 - 0
src/main/java/com/qmrb/system/service/impl/ContractPlaceNumberRelHisServiceImpl.java

@@ -60,6 +60,7 @@ public class ContractPlaceNumberRelHisServiceImpl extends ServiceImpl<ContractPl
 		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);
 

+ 71 - 60
src/main/java/com/qmrb/system/service/impl/ContractPlaceNumberRelServiceImpl.java

@@ -8,6 +8,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qmrb.system.common.constant.SystemConstants;
 import com.qmrb.system.common.result.PageResult;
 import com.qmrb.system.converter.ContractPlaceNumberRelConverter;
 import com.qmrb.system.framework.security.util.SecurityUtils;
@@ -20,6 +21,7 @@ import com.qmrb.system.pojo.vo.ContractPlaceNumberRelHisVO;
 import com.qmrb.system.pojo.vo.ContractPlaceNumberRelVO;
 import com.qmrb.system.pojo.query.ContractPlaceNumberRelQuery;
 import com.qmrb.system.mapper.ContractPlaceNumberRelMapper;
+import com.qmrb.system.pojo.vo.PayOrderVO;
 import com.qmrb.system.service.IContractPlaceNumberRelHisService;
 import com.qmrb.system.service.IContractPlaceNumberRelService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -41,6 +43,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -58,7 +61,7 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
 
     @Autowired
     SysUserService userService;
-    
+
     @Autowired
     BarnRecordMapper barnRecordMapper;
 
@@ -72,56 +75,64 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
      */
     @Override
     public Page<ContractPlaceNumberRelVO> getPage(ContractPlaceNumberRelQuery queryParams) {
+        Page<ContractPlaceNumberRelVO> pageResult = new Page<>();
         // 查询参数
         int pageNum = queryParams.getPageNum();
         int pageSize = queryParams.getPageSize();
-        // Integer status = queryParams.getStatus();
-        // String keywords = queryParams.getKeywords();
+        // 获取用户信息
         SysUser sysUser = userService.getOne(new LambdaQueryWrapper<SysUser>()
-                .eq(SysUser::getId, SecurityUtils.getUserId())
+                        .eq(SysUser::getId, SecurityUtils.getUserId())
                 // .eq(SysUser::getUserType, "3")//用户类型 1 系统用户 2扫码协议用户  3 包租协议用户
         );
-        // 获取启用状态的车牌数据
-        List<ContractPlaceNumberRel> list = this.list(new LambdaQueryWrapper<ContractPlaceNumberRel>()
-                .eq(ContractPlaceNumberRel::getContractId, sysUser.getContractId())
-                .eq(ContractPlaceNumberRel::getStatus, "1")
-        );
-        // 查询数据
-        Page<ContractPlaceNumberRel> dictItemPage = this.page(
-                new Page<>(pageNum, pageSize),
-                new LambdaQueryWrapper<ContractPlaceNumberRel>()
-                        .eq(sysUser != null, ContractPlaceNumberRel::getContractId, sysUser.getContractId())
-                        .orderByDesc(ContractPlaceNumberRel::getStartTime)
-
-                //.like(StrUtil.isNotBlank(keywords), ContractPlaceNumberRel::getCategoryName, keywords)
-        );
-
-        // 实体转换
-        Page<ContractPlaceNumberRelVO> pageResult = converter.entity2Page(dictItemPage);
-        // 获取车位上限
-        Contract contract = contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getId, sysUser.getContractId()));
-        List<ContractPlaceNumberRelVO> records = pageResult.getRecords();
-        // 空值创建一个信息
-        if (CollectionUtil.isEmpty(records)) {
-            ContractPlaceNumberRelVO contractPlaceNumberRelVO = new ContractPlaceNumberRelVO();
-            contractPlaceNumberRelVO.setContractId(sysUser.getContractId());
-            contractPlaceNumberRelVO.setAbledNum("1");
-            contractPlaceNumberRelVO.setStatus("1");
-            // 车位上限 大型车位 小型车位
-            contractPlaceNumberRelVO.setMaxParkingLotNum(contract.getMaxParkingLotNum());
-            contractPlaceNumberRelVO.setBigParkingLotNum(contract.getBigParkingLotNum());
-            contractPlaceNumberRelVO.setSmallParkingLotNum(contract.getSmallParkingLotNum());
-            records.add(contractPlaceNumberRelVO);
-        }else{
-            for (ContractPlaceNumberRelVO record : records) {
-                record.setAbledNum(String.valueOf(list.size()));
+        // 获取用户角色信息
+        Set<String> roles = SecurityUtils.getRoles();
+        String role = "";
+        // 管理员查看所有车牌登记情况
+        if (roles.contains("ADMIN")) {
+            role = "ADMIN";
+            pageResult = baseMapper.getAdminPage(new Page<>(pageNum, pageSize), role, sysUser,queryParams);
+            List<ContractPlaceNumberRelVO> records = pageResult.getRecords();
+            if (CollectionUtil.isNotEmpty(records)) {
+                records.get(0).setRole(role);
+            }
+        } else {
+            // 获取启用状态的车牌数据
+            List<ContractPlaceNumberRel> list = this.list(new LambdaQueryWrapper<ContractPlaceNumberRel>()
+                    .eq(ContractPlaceNumberRel::getContractId, sysUser.getContractId())
+                    .eq(ContractPlaceNumberRel::getStatus, "1")
+            );
+            // 查询数据
+            Page<ContractPlaceNumberRel> dictItemPage = this.page(
+                    new Page<>(pageNum, pageSize),
+                    new LambdaQueryWrapper<ContractPlaceNumberRel>()
+                            .eq(sysUser != null, ContractPlaceNumberRel::getContractId, sysUser.getContractId())
+                            .orderByDesc(ContractPlaceNumberRel::getStartTime)
+            );
+            // 实体转换
+            pageResult = converter.entity2Page(dictItemPage);
+            // 获取车位上限
+            Contract contract = contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getId, sysUser.getContractId()));
+            List<ContractPlaceNumberRelVO> records = pageResult.getRecords();
+            if (CollectionUtil.isEmpty(records)) {
+                ContractPlaceNumberRelVO contractPlaceNumberRelVO = new ContractPlaceNumberRelVO();
+                contractPlaceNumberRelVO.setContractId(sysUser.getContractId());
+                contractPlaceNumberRelVO.setAbledNum("1");
+                contractPlaceNumberRelVO.setStatus("1");
                 // 车位上限 大型车位 小型车位
-                record.setMaxParkingLotNum(contract.getMaxParkingLotNum());
-                record.setBigParkingLotNum(contract.getBigParkingLotNum());
-                record.setSmallParkingLotNum(contract.getSmallParkingLotNum());
+                contractPlaceNumberRelVO.setMaxParkingLotNum(contract.getMaxParkingLotNum());
+                contractPlaceNumberRelVO.setBigParkingLotNum(contract.getBigParkingLotNum());
+                contractPlaceNumberRelVO.setSmallParkingLotNum(contract.getSmallParkingLotNum());
+                records.add(contractPlaceNumberRelVO);
+            } else {
+                for (ContractPlaceNumberRelVO record : records) {
+                    record.setAbledNum(String.valueOf(list.size()));
+                    // 车位上限 大型车位 小型车位
+                    record.setMaxParkingLotNum(contract.getMaxParkingLotNum());
+                    record.setBigParkingLotNum(contract.getBigParkingLotNum());
+                    record.setSmallParkingLotNum(contract.getSmallParkingLotNum());
+                }
             }
         }
-
         return pageResult;
     }
 
@@ -139,8 +150,8 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
         if (save) {
             // 更新历史记录表
             ContractPlaceNumberRelHis contractPlaceNumberRelHis = new ContractPlaceNumberRelHis();
-            BeanUtils.copyProperties(form,contractPlaceNumberRelHis,"id");
-            contractPlaceNumberRelHis.setStatus("3");//0停用1启用 2到期 3新增 4删除 5修改
+            BeanUtils.copyProperties(form, contractPlaceNumberRelHis, "id");
+            contractPlaceNumberRelHis.setStatus("3");// 0停用1启用 2到期 3新增 4删除 5修改
             contractPlaceNumberRelHisService.save(contractPlaceNumberRelHis);
         }
         ContractPlaceNumberRelForm result = converter.entity2Form(entity);
@@ -155,11 +166,11 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
         ContractPlaceNumberRel entity = converter.form2Entity(form);
         entity.setId(id);
         boolean result = this.updateById(entity);
-        if (result){
+        if (result) {
             // 更新历史记录表
             ContractPlaceNumberRelHis contractPlaceNumberRelHis = new ContractPlaceNumberRelHis();
-            BeanUtils.copyProperties(form,contractPlaceNumberRelHis,"id");
-            contractPlaceNumberRelHis.setStatus(form.getUpdateStatus());//0停用1启用 2到期 3新增 4删除 5修改
+            BeanUtils.copyProperties(form, contractPlaceNumberRelHis, "id");
+            contractPlaceNumberRelHis.setStatus(form.getUpdateStatus());// 0停用1启用 2到期 3新增 4删除 5修改
             boolean save = contractPlaceNumberRelHisService.save(contractPlaceNumberRelHis);
 
         }
@@ -228,27 +239,27 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
     }
 
     @Override
-    public Map<String,Object> getDenomination(Long recordId) {
+    public Map<String, Object> getDenomination(Long recordId) {
         BarnRecord barnRecord = barnRecordMapper.selectById(recordId);
-        if(barnRecord == null || barnRecord.getOutTime() != null){
-            return  null;
+        if (barnRecord == null || barnRecord.getOutTime() != null) {
+            return null;
         }
         // 将 Date 转换为 Instant
         Instant instant = barnRecord.getInTime().toInstant();
 
         // 将 Instant 转换为 LocalDateTime(假设使用系统默认时区)
         LocalDateTime inDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
-        
+
         LambdaQueryWrapper<ContractPlaceNumberRel> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ContractPlaceNumberRel::getPlateNumber,barnRecord.getPlaceNo());
-        queryWrapper.eq(ContractPlaceNumberRel::getStatus,"1");//0停用1启用 2到期
-        
-        //当前时间应大于包租协议开始日,小于结束日
+        queryWrapper.eq(ContractPlaceNumberRel::getPlateNumber, barnRecord.getPlaceNo());
+        queryWrapper.eq(ContractPlaceNumberRel::getStatus, "1");// 0停用1启用 2到期
+
+        // 当前时间应大于包租协议开始日,小于结束日
         LocalDateTime now = LocalDateTime.now();
-        queryWrapper.lt(ContractPlaceNumberRel::getEndTime,inDateTime);//0停用1启用 2到期
-        queryWrapper.gt(ContractPlaceNumberRel::getStartTime,now);//0停用1启用 2到期
+        queryWrapper.lt(ContractPlaceNumberRel::getEndTime, inDateTime);// 0停用1启用 2到期
+        queryWrapper.gt(ContractPlaceNumberRel::getStartTime, now);// 0停用1启用 2到期
         List<ContractPlaceNumberRel> list = this.list(queryWrapper);
-        if(CollectionUtil.isNotEmpty(list)){
+        if (CollectionUtil.isNotEmpty(list)) {
             ContractPlaceNumberRel contractPlaceNumberRel = list.get(0);
             long between = DateUtil.between(contractPlaceNumberRel.getStartTime(), new Date(), DateUnit.MINUTE);
             HashMap<String, Object> map = new HashMap<>();
@@ -258,8 +269,8 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
 
             // 将 Instant 转换为 LocalDateTime(假设使用系统默认时区)
             LocalDateTime endTime = endTimeinstant.atZone(ZoneId.systemDefault()).toLocalDateTime();
-            map.put("denomination",Double.valueOf(between));
-            map.put("expireTime",endTime);
+            map.put("denomination", Double.valueOf(between));
+            map.put("expireTime", endTime);
             return map;
         }
         return null;

+ 15 - 0
src/main/resources/mapper/ContractPlaceNumberRelMapper.xml

@@ -2,4 +2,19 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmrb.system.mapper.ContractPlaceNumberRelMapper">
 
+    <select id="getAdminPage" resultType="com.qmrb.system.pojo.vo.ContractPlaceNumberRelVO">
+        SELECT
+        cpnr.*,
+        c.contract_name
+        FROM
+        contract_place_number_rel cpnr
+        LEFT JOIN
+        contract c ON cpnr.contract_id = c.id
+        <where>
+            <if test="role != 'ADMIN'">
+                cpnr.contract_id = #{sysUser.contractId}
+            </if>
+        </where>
+        order by cpnr.update_time desc
+    </select>
 </mapper>