Browse Source

计费规则

guoshuai 1 month ago
parent
commit
d392a9e3d9
25 changed files with 1171 additions and 11 deletions
  1. 111 0
      src/main/java/com/qmrb/system/controller/BarnRecordController.java
  2. 108 0
      src/main/java/com/qmrb/system/controller/CarParkChargingRulesController.java
  3. 7 4
      src/main/java/com/qmrb/system/controller/CarParkStoredCardController.java
  4. 22 3
      src/main/java/com/qmrb/system/controller/MyCarPlateNumberController.java
  5. 10 4
      src/main/java/com/qmrb/system/controller/SysUserController.java
  6. 29 0
      src/main/java/com/qmrb/system/converter/BarnRecordConverter.java
  7. 29 0
      src/main/java/com/qmrb/system/converter/CarParkChargingRulesConverter.java
  8. 18 0
      src/main/java/com/qmrb/system/mapper/BarnRecordMapper.java
  9. 18 0
      src/main/java/com/qmrb/system/mapper/CarParkChargingRulesMapper.java
  10. 70 0
      src/main/java/com/qmrb/system/pojo/entity/BarnRecord.java
  11. 72 0
      src/main/java/com/qmrb/system/pojo/entity/CarParkChargingRules.java
  12. 50 0
      src/main/java/com/qmrb/system/pojo/form/BarnRecordForm.java
  13. 57 0
      src/main/java/com/qmrb/system/pojo/form/CarParkChargingRulesForm.java
  14. 57 0
      src/main/java/com/qmrb/system/pojo/query/BarnRecordQuery.java
  15. 63 0
      src/main/java/com/qmrb/system/pojo/query/CarParkChargingRulesQuery.java
  16. 57 0
      src/main/java/com/qmrb/system/pojo/vo/BarnRecordVO.java
  17. 60 0
      src/main/java/com/qmrb/system/pojo/vo/CarParkChargingRulesVO.java
  18. 41 0
      src/main/java/com/qmrb/system/service/IBarnRecordService.java
  19. 41 0
      src/main/java/com/qmrb/system/service/ICarParkChargingRulesService.java
  20. 2 0
      src/main/java/com/qmrb/system/service/SysUserService.java
  21. 114 0
      src/main/java/com/qmrb/system/service/impl/BarnRecordServiceImpl.java
  22. 100 0
      src/main/java/com/qmrb/system/service/impl/CarParkChargingRulesServiceImpl.java
  23. 25 0
      src/main/java/com/qmrb/system/service/impl/SysUserServiceImpl.java
  24. 5 0
      src/main/resources/mapper/BarnRecordMapper.xml
  25. 5 0
      src/main/resources/mapper/CarParkChargingRulesMapper.xml

+ 111 - 0
src/main/java/com/qmrb/system/controller/BarnRecordController.java

@@ -0,0 +1,111 @@
+package com.qmrb.system.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.springdoc.core.annotations.ParameterObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.common.result.PageResult;
+import com.qmrb.system.common.result.Result;
+import com.qmrb.system.common.result.ResultCode;
+import com.qmrb.system.framework.resubmit.Resubmit;
+import com.qmrb.system.service.IBarnRecordService;
+import com.qmrb.system.pojo.form.BarnRecordForm;
+import com.qmrb.system.pojo.vo.BarnRecordVO;
+import com.qmrb.system.pojo.query.BarnRecordQuery;
+import com.qmrb.system.pojo.vo.Option;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.web.bind.annotation.RestController;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 岗亭端停车记录 前端控制器
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Tag(name = "岗亭端停车记录接口")
+@RestController
+@RequestMapping("/api/v1/record")
+@CrossOrigin
+public class BarnRecordController{
+
+    @Autowired
+    private IBarnRecordService barnRecordService;
+
+	@Operation(summary = "岗亭端停车记录分页列表", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/page")
+    public PageResult<BarnRecordVO> getPage(
+            @ParameterObject BarnRecordQuery queryParams
+    ) {
+        Page<BarnRecordVO> result = barnRecordService.getPage(queryParams);
+        return PageResult.success(result);
+    }
+    
+    @Operation(summary = "新增岗亭端停车记录", security = {@SecurityRequirement(name = "Authorization")})
+    @PostMapping
+    @PreAuthorize("@ss.hasPerm('record:add')")
+    @Resubmit
+    public Result<BarnRecordForm> saveForm(
+            @RequestBody @Valid BarnRecordForm form
+    ) {
+        BarnRecordForm result = barnRecordService.saveForm(form);
+        return Result.success(result);
+    }
+
+    @Operation(summary = "岗亭端停车记录表单数据", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/{id}/form")
+    public Result<BarnRecordForm> getForm(
+            @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id
+    ) {
+    	BarnRecordForm formData = barnRecordService.getFormData(id);
+        return Result.success(formData);
+    }
+
+    @Operation(summary = "修改岗亭端停车记录", security = {@SecurityRequirement(name = "Authorization")})
+    @PutMapping(value = "/{id}")
+    @PreAuthorize("@ss.hasPerm('record:edit')")
+    public Result<?> updateForm(
+            @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id,
+            @RequestBody @Validated BarnRecordForm form) {
+    	
+        boolean result = barnRecordService.updateForm(id,form);
+        return Result.judge(result);
+    }
+
+    @Operation(summary = "删除岗亭端停车记录", security = {@SecurityRequirement(name = "Authorization")})
+    @DeleteMapping("/{ids}")
+    @PreAuthorize("@ss.hasPerm('record:delete')")
+    public Result<?> deleteUsers(
+            @Parameter(description = "岗亭端停车记录ID,多个以英文逗号(,)分割") @PathVariable String ids
+    ) {
+    	if(StrUtil.isBlank(ids)) {
+    		 return Result.failed(ResultCode.PARAM_ERROR, "删除的岗亭端停车记录数据为空");
+    	}
+        // 逻辑删除
+        List<Long> idList = Arrays.asList(ids.split(",")).stream()
+                .map(idStr -> Long.parseLong(idStr)).collect(Collectors.toList());
+        boolean result = barnRecordService.removeByIds(idList);
+        return Result.judge(result);
+    }
+
+}

+ 108 - 0
src/main/java/com/qmrb/system/controller/CarParkChargingRulesController.java

@@ -0,0 +1,108 @@
+package com.qmrb.system.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.springdoc.core.annotations.ParameterObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.common.result.PageResult;
+import com.qmrb.system.common.result.Result;
+import com.qmrb.system.common.result.ResultCode;
+import com.qmrb.system.framework.resubmit.Resubmit;
+import com.qmrb.system.service.ICarParkChargingRulesService;
+import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
+import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
+import com.qmrb.system.pojo.query.CarParkChargingRulesQuery;
+import com.qmrb.system.pojo.vo.Option;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.web.bind.annotation.RestController;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 停车场计费规则表 前端控制器
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Tag(name = "停车场计费规则表接口")
+@RestController
+@RequestMapping("/api/v1/park_charging_rules")
+@CrossOrigin
+public class CarParkChargingRulesController{
+
+    @Autowired
+    private ICarParkChargingRulesService carParkChargingRulesService;
+
+	@Operation(summary = "停车场计费规则表分页列表", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/page")
+    public PageResult<CarParkChargingRulesVO> getPage(
+            @ParameterObject CarParkChargingRulesQuery queryParams
+    ) {
+        Page<CarParkChargingRulesVO> result = carParkChargingRulesService.getPage(queryParams);
+        return PageResult.success(result);
+    }
+    
+    @Operation(summary = "新增停车场计费规则表", security = {@SecurityRequirement(name = "Authorization")})
+    @PostMapping
+    @Resubmit
+    public Result<CarParkChargingRulesForm> saveForm(
+            @RequestBody @Valid CarParkChargingRulesForm form
+    ) {
+        CarParkChargingRulesForm result = carParkChargingRulesService.saveForm(form);
+        return Result.success(result);
+    }
+
+    @Operation(summary = "停车场计费规则表表单数据", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/{id}/form")
+    public Result<CarParkChargingRulesForm> getForm(
+            @Parameter(description = "停车场计费规则表ID") @PathVariable Long id
+    ) {
+    	CarParkChargingRulesForm formData = carParkChargingRulesService.getFormData(id);
+        return Result.success(formData);
+    }
+
+    @Operation(summary = "修改停车场计费规则表", security = {@SecurityRequirement(name = "Authorization")})
+    @PutMapping(value = "/{id}")
+    public Result<?> updateForm(
+            @Parameter(description = "停车场计费规则表ID") @PathVariable Long id,
+            @RequestBody @Validated CarParkChargingRulesForm form) {
+    	
+        boolean result = carParkChargingRulesService.updateForm(id,form);
+        return Result.judge(result);
+    }
+
+    @Operation(summary = "删除停车场计费规则表", security = {@SecurityRequirement(name = "Authorization")})
+    @DeleteMapping("/{ids}")
+    public Result<?> deleteUsers(
+            @Parameter(description = "停车场计费规则表ID,多个以英文逗号(,)分割") @PathVariable String ids
+    ) {
+    	if(StrUtil.isBlank(ids)) {
+    		 return Result.failed(ResultCode.PARAM_ERROR, "删除的停车场计费规则表数据为空");
+    	}
+        // 逻辑删除
+        List<Long> idList = Arrays.asList(ids.split(",")).stream()
+                .map(idStr -> Long.parseLong(idStr)).collect(Collectors.toList());
+        boolean result = carParkChargingRulesService.removeByIds(idList);
+        return Result.judge(result);
+    }
+    
+}

+ 7 - 4
src/main/java/com/qmrb/system/controller/CarParkStoredCardController.java

@@ -4,7 +4,9 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qmrb.system.common.exception.BusinessException;
+import com.qmrb.system.pojo.entity.CarParkStoredCard;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -64,14 +66,15 @@ public class CarParkStoredCardController{
     
     @Operation(summary = "停车储值卡分页列表", security = {@SecurityRequirement(name = "Authorization")})
     @GetMapping("/getPageByUserId")
-    public PageResult<CarParkStoredCardVO> getPageByUserId(
+    public Result<?> getPageByUserId(
             @ParameterObject CarParkStoredCardQuery queryParams
     ) {
         if(queryParams.getUserId() == null){
-            throw new BusinessException("用户id不能为空");
+            return Result.failed("用户id不能为空");
         }
-        Page<CarParkStoredCardVO> result = carParkStoredCardService.getPage(queryParams);
-        return PageResult.success(result);
+        List<CarParkStoredCard> list = carParkStoredCardService.list(new LambdaQueryWrapper<CarParkStoredCard>().eq(CarParkStoredCard::getUserId,queryParams.getUserId())
+                .eq(StrUtil.isNotBlank(queryParams.getPlateNumber()),CarParkStoredCard::getPlateNumber,queryParams.getPlateNumber()));
+        return Result.success(list);
     }
     
     @Operation(summary = "新增停车储值卡", security = {@SecurityRequirement(name = "Authorization")})

+ 22 - 3
src/main/java/com/qmrb/system/controller/MyCarPlateNumberController.java

@@ -4,7 +4,10 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qmrb.system.common.exception.BusinessException;
+import com.qmrb.system.pojo.entity.MyCarPlateNumber;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -77,11 +80,17 @@ public class MyCarPlateNumberController{
     
     @Operation(summary = "新增我的车牌", security = {@SecurityRequirement(name = "Authorization")})
     @PostMapping
-    @PreAuthorize("@ss.hasPerm('car_plate_number:add')")
     @Resubmit
     public Result<MyCarPlateNumberForm> saveForm(
             @RequestBody @Valid MyCarPlateNumberForm form
     ) {
+        if(form.getUserId() == null){
+            return Result.failed("用户id不能为空");
+        }
+        List<MyCarPlateNumber> list = myCarPlateNumberService.list(new LambdaQueryWrapper<MyCarPlateNumber>().eq(MyCarPlateNumber::getUserId, form.getUserId()));
+        if(CollectionUtil.isNotEmpty(list)){
+            return Result.failed("用户已存在车牌");
+        }
         MyCarPlateNumberForm result = myCarPlateNumberService.saveForm(form);
         return Result.success(result);
     }
@@ -94,10 +103,21 @@ public class MyCarPlateNumberController{
     	MyCarPlateNumberForm formData = myCarPlateNumberService.getFormData(id);
         return Result.success(formData);
     }
+    
+    @Operation(summary = "我的车牌表单数据", security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/{userId}/formByUserId")
+    public Result<?> getFormByUserId(
+            @Parameter(description = "用户ID") @PathVariable Long userId
+    ) {
+        if(userId == null){
+            return Result.failed("用户id不能为空");
+        }
+        List<MyCarPlateNumber> list = myCarPlateNumberService.list(new LambdaQueryWrapper<MyCarPlateNumber>().eq(MyCarPlateNumber::getUserId, userId));
+        return Result.success(list);
+    }
 
     @Operation(summary = "修改我的车牌", security = {@SecurityRequirement(name = "Authorization")})
     @PutMapping(value = "/{id}")
-    @PreAuthorize("@ss.hasPerm('car_plate_number:edit')")
     public Result<?> updateForm(
             @Parameter(description = "我的车牌ID") @PathVariable Long id,
             @RequestBody @Validated MyCarPlateNumberForm form) {
@@ -108,7 +128,6 @@ public class MyCarPlateNumberController{
 
     @Operation(summary = "删除我的车牌", security = {@SecurityRequirement(name = "Authorization")})
     @DeleteMapping("/{ids}")
-    @PreAuthorize("@ss.hasPerm('car_plate_number:delete')")
     public Result<?> deleteUsers(
             @Parameter(description = "我的车牌ID,多个以英文逗号(,)分割") @PathVariable String ids
     ) {

+ 10 - 4
src/main/java/com/qmrb/system/controller/SysUserController.java

@@ -11,13 +11,10 @@ import com.qmrb.system.common.result.Result;
 import com.qmrb.system.common.util.ExcelUtils;
 import com.qmrb.system.framework.resubmit.Resubmit;
 import com.qmrb.system.listener.UserImportListener;
-import com.qmrb.system.pojo.vo.UserImportVO;
+import com.qmrb.system.pojo.vo.*;
 import com.qmrb.system.pojo.form.UserForm;
 import com.qmrb.system.pojo.entity.SysUser;
 import com.qmrb.system.pojo.query.UserPageQuery;
-import com.qmrb.system.pojo.vo.UserExportVO;
-import com.qmrb.system.pojo.vo.UserInfoVO;
-import com.qmrb.system.pojo.vo.UserPageVO;
 import com.qmrb.system.service.SysUserService;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -100,6 +97,15 @@ public class SysUserController {
         boolean result = userService.updateUser(userId, userForm);
         return Result.judge(result);
     }
+    
+    @Operation(summary = "修改用户", security = {@SecurityRequirement(name = "Authorization")})
+    @PutMapping(value = "/{userId}/updateUserForm")
+    public Result<?> updateUserForm(
+            @Parameter(description = "用户ID") @PathVariable Long userId,
+            @RequestBody @Validated SysUser user) {
+        boolean result = userService.updateUserForm(userId, user);
+        return Result.judge(result);
+    }
 
     @Operation(summary = "删除用户", security = {@SecurityRequirement(name = "Authorization")})
     @DeleteMapping("/{ids}")

+ 29 - 0
src/main/java/com/qmrb/system/converter/BarnRecordConverter.java

@@ -0,0 +1,29 @@
+package com.qmrb.system.converter;
+
+import org.mapstruct.InheritInverseConfiguration;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.pojo.entity.BarnRecord;
+import com.qmrb.system.pojo.form.BarnRecordForm;
+import com.qmrb.system.pojo.vo.BarnRecordVO;
+
+/**
+ * 岗亭端停车记录数据项对象转换器
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface BarnRecordConverter {
+
+    Page<BarnRecordVO> entity2Page(Page<BarnRecord> page);
+
+    BarnRecordForm entity2Form(BarnRecord entity);
+
+    @InheritInverseConfiguration(name="entity2Form")
+    BarnRecord form2Entity(BarnRecordForm form);
+    
+    BarnRecordVO entity2Vo(BarnRecord entity);
+}

+ 29 - 0
src/main/java/com/qmrb/system/converter/CarParkChargingRulesConverter.java

@@ -0,0 +1,29 @@
+package com.qmrb.system.converter;
+
+import org.mapstruct.InheritInverseConfiguration;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.pojo.entity.CarParkChargingRules;
+import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
+import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
+
+/**
+ * 停车场计费规则表数据项对象转换器
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface CarParkChargingRulesConverter {
+
+    Page<CarParkChargingRulesVO> entity2Page(Page<CarParkChargingRules> page);
+
+    CarParkChargingRulesForm entity2Form(CarParkChargingRules entity);
+
+    @InheritInverseConfiguration(name="entity2Form")
+    CarParkChargingRules form2Entity(CarParkChargingRulesForm form);
+    
+    CarParkChargingRulesVO entity2Vo(CarParkChargingRules entity);
+}

+ 18 - 0
src/main/java/com/qmrb/system/mapper/BarnRecordMapper.java

@@ -0,0 +1,18 @@
+package com.qmrb.system.mapper;
+
+import com.qmrb.system.pojo.entity.BarnRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 岗亭端停车记录 Mapper 接口
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Mapper
+public interface BarnRecordMapper extends BaseMapper<BarnRecord> {
+
+}

+ 18 - 0
src/main/java/com/qmrb/system/mapper/CarParkChargingRulesMapper.java

@@ -0,0 +1,18 @@
+package com.qmrb.system.mapper;
+
+import com.qmrb.system.pojo.entity.CarParkChargingRules;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 停车场计费规则表 Mapper 接口
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Mapper
+public interface CarParkChargingRulesMapper extends BaseMapper<CarParkChargingRules> {
+
+}

+ 70 - 0
src/main/java/com/qmrb/system/pojo/entity/BarnRecord.java

@@ -0,0 +1,70 @@
+package com.qmrb.system.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.qmrb.system.common.base.BaseEntity;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 岗亭端停车记录
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("barn_record")
+public class BarnRecord extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("barn_id")
+    private Long barnId;
+
+    @TableField("place_no")
+    private String placeNo;
+
+    @TableField("car_number")
+    private String carNumber;
+
+    /**
+     * 车辆进入时间
+     */
+    @TableField("in_time")
+    private Date inTime;
+
+    /**
+     * 进场图片
+     */
+    @TableField("in_image")
+    private String inImage;
+
+    /**
+     * 进口ID
+     */
+    @TableField("in_channel_id")
+    private Integer inChannelId;
+
+    /**
+     * 车辆出场时间
+     */
+    @TableField("out_time")
+    private Date outTime;
+
+    /**
+     * 出口ID
+     */
+    @TableField("out_channel_id")
+    private Integer outChannelId;
+
+
+}

+ 72 - 0
src/main/java/com/qmrb/system/pojo/entity/CarParkChargingRules.java

@@ -0,0 +1,72 @@
+package com.qmrb.system.pojo.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.qmrb.system.common.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 停车场计费规则表
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("car_park_charging_rules")
+public class CarParkChargingRules extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 停车场id
+     */
+    @TableField("car_park_id")
+    private Long carParkId;
+
+    /**
+     * 免费时长单位分钟
+     */
+    @TableField("free_time")
+    private Integer freeTime;
+
+    /**
+     * 计费周期,每几分钟计一次费用
+     */
+    @TableField("billing_cycle")
+    private Integer billingCycle;
+
+    /**
+     * 计时停车计费金额
+     */
+    @TableField("fee")
+    private BigDecimal fee;
+
+    /**
+     * 24小时最高计费金额
+     */
+    @TableField("fee_upper_limit")
+    private BigDecimal feeUpperLimit;
+
+    /**
+     * 首期周期时长
+     */
+    @TableField("first_cycle")
+    private Integer firstCycle;
+    /**
+     * 首周期计费金额
+     */
+    @TableField("first_fee")
+    private BigDecimal firstFee;
+
+}

+ 50 - 0
src/main/java/com/qmrb/system/pojo/form/BarnRecordForm.java

@@ -0,0 +1,50 @@
+package com.qmrb.system.pojo.form;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 岗亭端停车记录表单
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+public class BarnRecordForm {
+
+    private Long id;
+    private Long barnId;
+    private String placeNo;
+    private String carNumber;
+    /**
+     * 车辆进入时间
+     */
+	@Schema(description = "车辆进入时间",type="Date")
+    private Date inTime;
+    /**
+     * 进场图片
+     */
+	@Schema(description = "进场图片",type="String")
+    private String inImage;
+    /**
+     * 进口ID
+     */
+	@Schema(description = "进口ID",type="Integer")
+    private Integer inChannelId;
+    /**
+     * 车辆出场时间
+     */
+	@Schema(description = "车辆出场时间",type="Date")
+    private Date outTime;
+    /**
+     * 出口ID
+     */
+	@Schema(description = "出口ID",type="Integer")
+    private Integer outChannelId;
+
+
+}

+ 57 - 0
src/main/java/com/qmrb/system/pojo/form/CarParkChargingRulesForm.java

@@ -0,0 +1,57 @@
+package com.qmrb.system.pojo.form;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 停车场计费规则表表单
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+public class CarParkChargingRulesForm {
+
+    private Long id;
+    /**
+     * 停车场id
+     */
+	@Schema(description = "停车场id",type="Long")
+    private Long carParkId;
+    /**
+     * 免费时长单位分钟
+     */
+	@Schema(description = "免费时长单位分钟",type="Integer")
+    private Integer freeTime;
+    /**
+     * 计费周期,每几分钟计一次费用
+     */
+	@Schema(description = "计费周期,每几分钟计一次费用",type="Integer")
+    private Integer billingCycle;
+    /**
+     * 计时停车计费金额
+     */
+	@Schema(description = "计时停车计费金额",type="BigDecimal")
+    private BigDecimal fee;
+    /**
+     * 24小时最高计费金额
+     */
+	@Schema(description = "24小时最高计费金额",type="BigDecimal")
+    private BigDecimal feeUpperLimit;    
+    /**
+     * 首期周期时长
+     */
+	@Schema(description = "首期周期时长",type="Integer")
+    private Integer firstCycle;    
+    /**
+     * 首周期计费金额
+     */
+	@Schema(description = "首周期计费金额",type="BigDecimal")
+    private BigDecimal firstFee;
+
+
+}

+ 57 - 0
src/main/java/com/qmrb/system/pojo/query/BarnRecordQuery.java

@@ -0,0 +1,57 @@
+package com.qmrb.system.pojo.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.qmrb.system.common.base.BasePageQuery;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 岗亭端停车记录查询对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class BarnRecordQuery extends BasePageQuery{
+
+ 	@Schema(description="关键字")
+    private String keywords;
+
+    private Long id;
+    private Long barnId;
+    private Long userId;
+    private String placeNo;
+    private String carNumber;
+    /**
+     * 车辆进入时间
+     */
+	@Schema(description = "车辆进入时间",type="Date")
+    private Date inTime;
+    /**
+     * 进场图片
+     */
+	@Schema(description = "进场图片",type="String")
+    private String inImage;
+    /**
+     * 进口ID
+     */
+	@Schema(description = "进口ID",type="Integer")
+    private Integer inChannelId;
+    /**
+     * 车辆出场时间
+     */
+	@Schema(description = "车辆出场时间",type="Date")
+    private Date outTime;
+    /**
+     * 出口ID
+     */
+	@Schema(description = "出口ID",type="Integer")
+    private Integer outChannelId;
+
+
+}

+ 63 - 0
src/main/java/com/qmrb/system/pojo/query/CarParkChargingRulesQuery.java

@@ -0,0 +1,63 @@
+package com.qmrb.system.pojo.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.qmrb.system.common.base.BasePageQuery;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 停车场计费规则表查询对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CarParkChargingRulesQuery extends BasePageQuery{
+
+ 	@Schema(description="关键字")
+    private String keywords;
+
+    private Long id;
+    /**
+     * 停车场id
+     */
+	@Schema(description = "停车场id",type="Long")
+    private Long carParkId;
+    /**
+     * 免费时长单位分钟
+     */
+	@Schema(description = "免费时长单位分钟",type="Integer")
+    private Integer freeTime;
+    /**
+     * 计费周期,每几分钟计一次费用
+     */
+	@Schema(description = "计费周期,每几分钟计一次费用",type="Integer")
+    private Integer billingCycle;
+    /**
+     * 计时停车计费金额
+     */
+	@Schema(description = "计时停车计费金额",type="BigDecimal")
+    private BigDecimal fee;
+    /**
+     * 24小时最高计费金额
+     */
+	@Schema(description = "24小时最高计费金额",type="BigDecimal")
+    private BigDecimal feeUpperLimit;
+
+    /**
+     * 首期周期时长
+     */
+    @Schema(description = "首期周期时长",type="Integer")
+    private Integer firstCycle;
+    /**
+     * 首周期计费金额
+     */
+    @Schema(description = "首周期计费金额",type="BigDecimal")
+    private BigDecimal firstFee;
+
+}

+ 57 - 0
src/main/java/com/qmrb/system/pojo/vo/BarnRecordVO.java

@@ -0,0 +1,57 @@
+package com.qmrb.system.pojo.vo;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * <p>
+ * 岗亭端停车记录视图对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+public class BarnRecordVO {
+
+    private Long id;
+    private Long barnId;
+    private String placeNo;
+    private String carNumber;
+    /**
+     * 车辆进入时间
+     */
+	@Schema(description = "车辆进入时间",type="Date")
+    @JsonFormat(pattern = "yyyy-MM-DD HH:mm:ss")
+    private Date inTime;
+    /**
+     * 进场图片
+     */
+	@Schema(description = "进场图片",type="String")
+    private String inImage;
+    /**
+     * 进口ID
+     */
+	@Schema(description = "进口ID",type="Integer")
+    private Integer inChannelId;
+    /**
+     * 车辆出场时间
+     */
+	@Schema(description = "车辆出场时间",type="Date")
+    @JsonFormat(pattern = "yyyy-MM-DD HH:mm:ss")
+    private Date outTime;
+    /**
+     * 出口ID
+     */
+	@Schema(description = "出口ID",type="Integer")
+    private Integer outChannelId;
+
+	@Schema(description = "子分类")
+    private List<BarnRecordVO> children;
+
+
+}

+ 60 - 0
src/main/java/com/qmrb/system/pojo/vo/CarParkChargingRulesVO.java

@@ -0,0 +1,60 @@
+package com.qmrb.system.pojo.vo;
+
+import java.math.BigDecimal;
+import java.util.List;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * <p>
+ * 停车场计费规则表视图对象
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Data
+public class CarParkChargingRulesVO {
+
+    private Long id;
+    /**
+     * 停车场id
+     */
+	@Schema(description = "停车场id",type="Long")
+    private Long carParkId;
+    /**
+     * 免费时长单位分钟
+     */
+	@Schema(description = "免费时长单位分钟",type="Integer")
+    private Integer freeTime;
+    /**
+     * 计费周期,每几分钟计一次费用
+     */
+	@Schema(description = "计费周期,每几分钟计一次费用",type="Integer")
+    private Integer billingCycle;
+    /**
+     * 计时停车计费金额
+     */
+	@Schema(description = "计时停车计费金额",type="BigDecimal")
+    private BigDecimal fee;
+    /**
+     * 24小时最高计费金额
+     */
+	@Schema(description = "24小时最高计费金额",type="BigDecimal")
+    private BigDecimal feeUpperLimit;
+
+	@Schema(description = "子分类")
+    private List<CarParkChargingRulesVO> children;
+
+    /**
+     * 首期周期时长
+     */
+    @Schema(description = "首期周期时长",type="Integer")
+    private Integer firstCycle;
+    /**
+     * 首周期计费金额
+     */
+    @Schema(description = "首周期计费金额",type="BigDecimal")
+    private BigDecimal firstFee;
+
+}

+ 41 - 0
src/main/java/com/qmrb/system/service/IBarnRecordService.java

@@ -0,0 +1,41 @@
+package com.qmrb.system.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.pojo.entity.BarnRecord;
+import com.qmrb.system.pojo.form.BarnRecordForm;
+import com.qmrb.system.pojo.vo.BarnRecordVO;
+import com.qmrb.system.pojo.query.BarnRecordQuery;
+import com.qmrb.system.pojo.vo.Option;
+import com.baomidou.mybatisplus.extension.service.IService;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 岗亭端停车记录 服务类
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+public interface IBarnRecordService extends IService<BarnRecord> {
+	
+	/**分页查询
+	 * */
+	public Page<BarnRecordVO> getPage(BarnRecordQuery queryParams);
+
+	/**
+	 * 保存表单
+	 * */
+	public BarnRecordForm saveForm(@Valid BarnRecordForm form);
+	
+	/**更新
+	 * */
+	public boolean updateForm(Long id, BarnRecordForm form);
+	
+	/**获取表单数据
+	 * */
+	public BarnRecordForm getFormData(Long id);
+	
+}

+ 41 - 0
src/main/java/com/qmrb/system/service/ICarParkChargingRulesService.java

@@ -0,0 +1,41 @@
+package com.qmrb.system.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmrb.system.pojo.entity.CarParkChargingRules;
+import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
+import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
+import com.qmrb.system.pojo.query.CarParkChargingRulesQuery;
+import com.qmrb.system.pojo.vo.Option;
+import com.baomidou.mybatisplus.extension.service.IService;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 停车场计费规则表 服务类
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+public interface ICarParkChargingRulesService extends IService<CarParkChargingRules> {
+	
+	/**分页查询
+	 * */
+	public Page<CarParkChargingRulesVO> getPage(CarParkChargingRulesQuery queryParams);
+
+	/**
+	 * 保存表单
+	 * */
+	public CarParkChargingRulesForm saveForm(@Valid CarParkChargingRulesForm form);
+	
+	/**更新
+	 * */
+	public boolean updateForm(Long id, CarParkChargingRulesForm form);
+	
+	/**获取表单数据
+	 * */
+	public CarParkChargingRulesForm getFormData(Long id);
+	
+}

+ 2 - 0
src/main/java/com/qmrb/system/service/SysUserService.java

@@ -114,4 +114,6 @@ public interface SysUserService extends IService<SysUser> {
     void syncDoctorInfo(String reqMsg,String serviceId);
 
     public void saveHisUserBatch(List<SysUser> userList);
+
+    boolean updateUserForm(Long userId, SysUser user);
 }

+ 114 - 0
src/main/java/com/qmrb/system/service/impl/BarnRecordServiceImpl.java

@@ -0,0 +1,114 @@
+package com.qmrb.system.service.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.qmrb.system.pojo.entity.MyCarPlateNumber;
+import com.qmrb.system.service.IMyCarPlateNumberService;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qmrb.system.common.enums.StatusEnum;
+import com.qmrb.system.pojo.vo.Option;
+import com.qmrb.system.converter.BarnRecordConverter;
+import com.qmrb.system.pojo.entity.BarnRecord;
+import com.qmrb.system.pojo.form.BarnRecordForm;
+import com.qmrb.system.pojo.vo.BarnRecordVO;
+import com.qmrb.system.pojo.query.BarnRecordQuery;
+import com.qmrb.system.mapper.BarnRecordMapper;
+import com.qmrb.system.service.IBarnRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.lang.Assert;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 岗亭端停车记录 服务实现类
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Service
+public class BarnRecordServiceImpl extends ServiceImpl<BarnRecordMapper, BarnRecord> implements IBarnRecordService {
+
+	@Autowired
+	private BarnRecordConverter converter;
+	
+	@Autowired
+	private IMyCarPlateNumberService myCarPlateNumberService;
+
+	/**分页查询
+	 * */
+	@Override
+	public Page<BarnRecordVO> getPage(BarnRecordQuery queryParams) {
+		// 查询参数
+        int pageNum = queryParams.getPageNum();
+        int pageSize = queryParams.getPageSize();
+        //String keywords = queryParams.getKeywords();
+		LambdaQueryWrapper<BarnRecord> queryWrapper = new LambdaQueryWrapper<>();
+		if(queryParams.getUserId() != null){
+			// 根据用户id查找最新的车牌
+			List<MyCarPlateNumber> list = myCarPlateNumberService.list(new LambdaQueryWrapper<MyCarPlateNumber>().eq(MyCarPlateNumber::getUserId, queryParams.getUserId()).orderByDesc(MyCarPlateNumber::getCreateTime));
+			Assert.isTrue(CollectionUtil.isNotEmpty(list), "用户暂未绑定车牌!");
+			if(CollectionUtil.isNotEmpty(list)){
+				queryWrapper.eq(BarnRecord::getCarNumber,list.get(0).getPlateNumber());
+			}
+			
+		}
+		queryWrapper.orderByDesc(BarnRecord::getCreateTime);
+        // 查询数据
+        Page<BarnRecord> dictItemPage = this.page(
+                new Page<>(pageNum, pageSize),
+				queryWrapper
+				
+        );
+
+        // 实体转换
+        Page<BarnRecordVO> pageResult = converter.entity2Page(dictItemPage);
+        return pageResult;
+	}
+
+	/**
+	 * 保存表单
+	 * */
+	@Override
+	public BarnRecordForm saveForm(@Valid BarnRecordForm form) {
+		// 实体对象转换 form->entity
+		BarnRecord entity = converter.form2Entity(form);
+        // 持久化
+        this.save(entity);
+        BarnRecordForm result = converter.entity2Form(entity);
+        return result;
+	}
+
+	/**更新
+	 * */
+	@Override
+	public boolean updateForm(Long id, BarnRecordForm form) {
+		BarnRecord entity = converter.form2Entity(form);
+		entity.setId(id);
+        boolean result = this.updateById(entity);
+        return result;
+	}
+
+	/**获取表单数据
+	 * */
+	@Override
+	public BarnRecordForm getFormData(Long id) {
+		// 获取entity
+		BarnRecord entity = this.getById(id);
+        Assert.isTrue(entity != null, "岗亭端停车记录不存在");
+
+        // 实体转换
+        BarnRecordForm form = converter.entity2Form(entity);
+        return form;
+	}
+}

+ 100 - 0
src/main/java/com/qmrb/system/service/impl/CarParkChargingRulesServiceImpl.java

@@ -0,0 +1,100 @@
+package com.qmrb.system.service.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qmrb.system.common.enums.StatusEnum;
+import com.qmrb.system.pojo.vo.Option;
+import com.qmrb.system.converter.CarParkChargingRulesConverter;
+import com.qmrb.system.pojo.entity.CarParkChargingRules;
+import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
+import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
+import com.qmrb.system.pojo.query.CarParkChargingRulesQuery;
+import com.qmrb.system.mapper.CarParkChargingRulesMapper;
+import com.qmrb.system.service.ICarParkChargingRulesService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.lang.Assert;
+import jakarta.validation.Valid;
+
+/**
+ * <p>
+ * 停车场计费规则表 服务实现类
+ * </p>
+ *
+ * @author gs
+ * @since 2025-02-26
+ */
+@Service
+public class CarParkChargingRulesServiceImpl extends ServiceImpl<CarParkChargingRulesMapper, CarParkChargingRules> implements ICarParkChargingRulesService {
+
+	@Autowired
+	private CarParkChargingRulesConverter converter;
+
+	/**分页查询
+	 * */
+	@Override
+	public Page<CarParkChargingRulesVO> getPage(CarParkChargingRulesQuery queryParams) {
+		// 查询参数
+        int pageNum = queryParams.getPageNum();
+        int pageSize = queryParams.getPageSize();
+        //String keywords = queryParams.getKeywords();
+
+        // 查询数据
+        Page<CarParkChargingRules> dictItemPage = this.page(
+                new Page<>(pageNum, pageSize),
+                new LambdaQueryWrapper<CarParkChargingRules>()
+                	//.like(StrUtil.isNotBlank(keywords), CarParkChargingRules::getCategoryName, keywords)
+        );
+
+        // 实体转换
+        Page<CarParkChargingRulesVO> pageResult = converter.entity2Page(dictItemPage);
+        return pageResult;
+	}
+
+	/**
+	 * 保存表单
+	 * */
+	@Override
+	public CarParkChargingRulesForm saveForm(@Valid CarParkChargingRulesForm form) {
+		// 实体对象转换 form->entity
+		CarParkChargingRules entity = converter.form2Entity(form);
+        // 持久化
+        this.save(entity);
+        CarParkChargingRulesForm result = converter.entity2Form(entity);
+        return result;
+	}
+
+	/**更新
+	 * */
+	@Override
+	public boolean updateForm(Long id, CarParkChargingRulesForm form) {
+		CarParkChargingRules entity = converter.form2Entity(form);
+		entity.setId(id);
+        boolean result = this.updateById(entity);
+        return result;
+	}
+
+	/**获取表单数据
+	 * */
+	@Override
+	public CarParkChargingRulesForm getFormData(Long id) {
+		// 获取entity
+		CarParkChargingRules entity = this.getById(id);
+        Assert.isTrue(entity != null, "停车场计费规则表不存在");
+
+        // 实体转换
+        CarParkChargingRulesForm form = converter.entity2Form(entity);
+        return form;
+	}
+	
+}

+ 25 - 0
src/main/java/com/qmrb/system/service/impl/SysUserServiceImpl.java

@@ -324,4 +324,29 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         userRoleService.saveBatch(defaultUserRoleList);
     }
+
+    @Override
+    public boolean updateUserForm(Long userId, SysUser user) {
+        String username = user.getUsername();
+
+        SysUser entity = this.getOne(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getId, userId)
+        );
+        Assert.isTrue(entity != null, "用户名已存在");
+
+        // form -> entity
+        if(StrUtil.isNotBlank(user.getAvatar())){
+            entity.setAvatar(user.getAvatar());
+        }
+        if(StrUtil.isNotBlank(user.getMobile())){
+            entity.setMobile(user.getMobile());
+        }
+
+       
+
+        // 修改用户
+        boolean result = this.updateById(entity);
+        
+        return result;
+    }
 }

+ 5 - 0
src/main/resources/mapper/BarnRecordMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmrb.system.mapper.BarnRecordMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/CarParkChargingRulesMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmrb.system.mapper.CarParkChargingRulesMapper">
+
+</mapper>