Bladeren bron

Merge branch 'master' of http://47.92.161.104:10080/fulonglong/chargeing-parking

chenwen 3 weken geleden
bovenliggende
commit
8a8d6d21cc

+ 76 - 0
src/main/java/com/charging/chargingparking/entity/ParkingArea.java

@@ -0,0 +1,76 @@
+package com.charging.chargingparking.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 车位区域信息
+ * @TableName base_parking_area
+ */
+@TableName(value ="base_parking_area")
+@Data
+public class ParkingArea implements Serializable {
+    /**
+     *
+     */
+    @TableId
+    private String id;
+    private String parkId;
+
+    @TableField(value = "area_")
+    private String area;
+    private String areaName;
+    private Integer totalParkingNumber;
+    private Integer surplusParkingNumber;
+
+
+    /**
+     * 是否删除
+     */
+    private Boolean delFlag = false;
+    /**
+     *
+     */
+    private String createBy;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     *
+     */
+    private String updateBy;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+    /**
+     * 时间段-开始时间(格式-------17:00:00)
+     */
+    private String cdStartTime;
+
+    /**
+     * 时间段-结束时间(格式-------23:00:00)
+     */
+    private String cdEndTime;
+
+
+
+
+
+}

+ 1 - 0
src/main/java/com/charging/chargingparking/entity/ParkingInfo.java

@@ -149,4 +149,5 @@ public class ParkingInfo implements Serializable {
     private Integer startYear;
     private Integer startYear;
     private Integer endYear;
     private Integer endYear;
     private Boolean starTimeFlag;//开启时间设置标志
     private Boolean starTimeFlag;//开启时间设置标志
+
 }
 }

+ 16 - 0
src/main/java/com/charging/chargingparking/mapper/ParkingAreaMapper.java

@@ -0,0 +1,16 @@
+package com.charging.chargingparking.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.charging.chargingparking.entity.ParkingArea;
+import com.charging.chargingparking.modules.common.dto.Sort;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ParkingAreaMapper extends BaseMapper<ParkingArea> {
+    List<ParkingArea> search(Map<String, Object> searchParams, List<Sort> sortList);
+}
+
+
+
+

+ 31 - 4
src/main/java/com/charging/chargingparking/modules/backController/BackParkingRecordController.java

@@ -136,7 +136,7 @@ public class BackParkingRecordController {
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
     public MessageResult<Map> pageList(
             String carNum, String parkId, String inParkingTimeRange,
             String carNum, String parkId, String inParkingTimeRange,
-            String outParkingTimeRange,
+            String outParkingTimeRange,String area,
             String status,
             String status,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
@@ -160,7 +160,20 @@ public class BackParkingRecordController {
         if (StringUtils.isNotEmpty(parkId)) {
         if (StringUtils.isNotEmpty(parkId)) {
             searchParams.put("parkId", parkId);
             searchParams.put("parkId", parkId);
         }
         }
+        if (StringUtils.isNotEmpty(area)&&"1".equals(parkId)) {
+
+            QueryWrapper<ParkingChannel> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("park_id", parkId);
+            queryWrapper.eq("area_", area);
+            queryWrapper.eq("channel_type", "1");
+            queryWrapper.last("LIMIT 2");
+            List<ParkingChannel> listParkingChannel= parkingChannelService.list(queryWrapper);
+           // ParkingChannel parkingChannel = parkingChannelService.getOne(queryWrapper);
+            if(listParkingChannel!=null&&listParkingChannel.size()>0){
+                searchParams.put("listParkingChannel", listParkingChannel);
+            }
 
 
+        }
         if (StringUtils.isNotEmpty(status)) {
         if (StringUtils.isNotEmpty(status)) {
             searchParams.put("status", status);
             searchParams.put("status", status);
         }
         }
@@ -205,9 +218,9 @@ public class BackParkingRecordController {
             searchParams.put("filterParkingList", parkingUserRelationService.findByUserId(subject));
             searchParams.put("filterParkingList", parkingUserRelationService.findByUserId(subject));
         }
         }
 
 
-        com.github.pagehelper.Page<ParkingRecord> page = parkingRecordService.pageSearch(searchParams, pageIndex, pageSize, sortList);
-
+         com.github.pagehelper.Page<ParkingRecord> page = parkingRecordService.pageSearch(searchParams, pageIndex, pageSize, sortList);
 
 
+        // com.github.pagehelper.Page<ParkingRecord> page ="";
         for (ParkingRecord parkingRecord : page) {
         for (ParkingRecord parkingRecord : page) {
             DataDictionary dataDictionary = dataDictionaryService.findByValue(parkingRecord.getCarType());
             DataDictionary dataDictionary = dataDictionaryService.findByValue(parkingRecord.getCarType());
             parkingRecord.setCarTypeN(dataDictionary.getName());
             parkingRecord.setCarTypeN(dataDictionary.getName());
@@ -243,7 +256,8 @@ public class BackParkingRecordController {
         return msgResult;
         return msgResult;
     }
     }
 
 
-
+    @Autowired
+    private ParkingAreaService parkingAreaService;
     @ApiOperation(value = "pc端手动出场")
     @ApiOperation(value = "pc端手动出场")
     @PostMapping("manualOutParking")
     @PostMapping("manualOutParking")
     public MessageResult<ParkingRecord> manualOutParking(String id,String channelId) {
     public MessageResult<ParkingRecord> manualOutParking(String id,String channelId) {
@@ -277,6 +291,19 @@ public class BackParkingRecordController {
                 parkingRecordInfo.setOutType("1");
                 parkingRecordInfo.setOutType("1");
                 //同时开门
                 //同时开门
                 parkingChannelService.remoteOpen(channelId);
                 parkingChannelService.remoteOpen(channelId);
+                if("1".equals(parkingChannel.getParkId())){
+                    QueryWrapper<ParkingArea> parkingAreaQueryWrapper = new QueryWrapper<>();
+                    parkingAreaQueryWrapper.eq("park_id", parkingChannel.getParkId());
+                    parkingAreaQueryWrapper.eq("area_", parkingChannel.getArea());
+                    parkingAreaQueryWrapper.last("LIMIT 1");
+                    ParkingArea parkingArea =parkingAreaService.getOne(parkingAreaQueryWrapper);
+                    parkingArea.setSurplusParkingNumber(parkingArea.getSurplusParkingNumber()+ 1);
+                    if(parkingArea.getSurplusParkingNumber()>parkingArea.getTotalParkingNumber()){
+                        parkingArea.setSurplusParkingNumber(parkingArea.getTotalParkingNumber());
+                    }
+                    parkingAreaService.updateById(parkingArea);
+                }
+
             }else{
             }else{
                 parkingRecordInfo.setOutType("2");
                 parkingRecordInfo.setOutType("2");
             }
             }

+ 65 - 7
src/main/java/com/charging/chargingparking/modules/backController/ParkingInfoController.java

@@ -2,15 +2,12 @@ package com.charging.chargingparking.modules.backController;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.charging.chargingparking.dto.MessageResult;
 import com.charging.chargingparking.dto.MessageResult;
-import com.charging.chargingparking.entity.ParkingFee;
-import com.charging.chargingparking.entity.ParkingInfo;
-import com.charging.chargingparking.entity.ParkingMerchant;
+import com.charging.chargingparking.dto.PojoUtils;
+import com.charging.chargingparking.entity.*;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.common.dto.Sort;
-import com.charging.chargingparking.service.ParkingFeeService;
-import com.charging.chargingparking.service.ParkingInfoService;
-import com.charging.chargingparking.service.ParkingMerchantService;
-import com.charging.chargingparking.service.ParkingUserRelationService;
+import com.charging.chargingparking.service.*;
 import com.charging.chargingparking.sys.service.UserService;
 import com.charging.chargingparking.sys.service.UserService;
+import com.github.pagehelper.Page;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -307,6 +304,67 @@ public class ParkingInfoController {
         msgResult.setResult(true);
         msgResult.setResult(true);
         msgResult.setData(parkingInfoList);
         msgResult.setData(parkingInfoList);
 
 
+        return msgResult;
+    }
+    @Autowired
+    private ParkingAreaService parkingAreaService;
+    @ApiOperation(value = "停车场区域列表")
+    @RequestMapping(value = "pageAreaSetList", method = RequestMethod.POST)
+    public MessageResult<Map> pageSingleSetList(
+            String parkId,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize
+    ) {
+        // @RequestAttribute String subject
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String, Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("a.create_time", "desc"));
+
+        if (com.charging.chargingparking.utils.StringUtils.isNotEmpty(parkId)) {
+            searchParams.put("parkId", parkId);
+        }
+
+        Page<ParkingArea> page = parkingAreaService.pageSearch(searchParams, pageIndex, pageSize, sortList);
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "停车场区域设置")
+    @RequestMapping(value = "saveAreaSet", method = RequestMethod.POST)
+    public void saveAreaSet(@RequestBody ParkingArea parkingArea, @RequestAttribute String subject) {
+        parkingArea.setCreateTime(new Date());
+        parkingArea.setCreateBy(subject);
+        parkingArea.setUpdateTime(new Date());
+        parkingArea.setUpdateBy(subject);
+        parkingAreaService.save(parkingArea);
+    }
+    //删除
+    @ApiOperation(value = "删除")
+    @PostMapping("deleteAreaSet/{id}")
+    public MessageResult<Boolean> deleteAreaSet(@PathVariable("id") String id) {
+
+        MessageResult<Boolean> msgResult = new MessageResult<>();
+        try {
+            ParkingArea parkingArea = parkingAreaService.getById(id);
+            parkingArea.setDelFlag(true);
+            boolean flag = parkingAreaService.removeById(parkingArea);
+
+
+            msgResult.setResult(true);
+            msgResult.setData(flag);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
         return msgResult;
         return msgResult;
     }
     }
 }
 }

+ 4 - 1
src/main/java/com/charging/chargingparking/modules/backController/ParkingMemberInfoController.java

@@ -199,7 +199,7 @@ public class ParkingMemberInfoController {
     @ApiOperation(value = "列表")
     @ApiOperation(value = "列表")
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
     public MessageResult<Map> pageList(
-            String parkId, String memberCarNum, String rangeDate, String cloudDelFlag,String memberName,
+            String parkId, String memberCarNum, String rangeDate, String cloudDelFlag,String memberName,String area,
             Integer memberType,
             Integer memberType,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
@@ -218,6 +218,9 @@ public class ParkingMemberInfoController {
         if (StringUtils.isNotEmpty(parkId)) {
         if (StringUtils.isNotEmpty(parkId)) {
             searchParams.put("parkId", parkId);
             searchParams.put("parkId", parkId);
         }
         }
+        if (StringUtils.isNotEmpty(area)&&"1".equals(parkId)) {
+            searchParams.put("area", area);
+        }
         if (StringUtils.isNotEmpty(memberName)) {
         if (StringUtils.isNotEmpty(memberName)) {
             searchParams.put("memberName", "%" + memberName + "%");
             searchParams.put("memberName", "%" + memberName + "%");
         }
         }

+ 20 - 0
src/main/java/com/charging/chargingparking/service/ParkingAreaService.java

@@ -0,0 +1,20 @@
+package com.charging.chargingparking.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.charging.chargingparking.dto.AddCoupon;
+import com.charging.chargingparking.entity.EcCoupon;
+import com.charging.chargingparking.entity.ParkingArea;
+import com.charging.chargingparking.entity.ParkingTime;
+import com.charging.chargingparking.modules.common.dto.Sort;
+import com.github.pagehelper.Page;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ */
+public interface ParkingAreaService extends IService<ParkingArea> {
+    Page<ParkingArea> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList);
+
+}

+ 44 - 0
src/main/java/com/charging/chargingparking/service/impl/ParkingAreaServiceImpl.java

@@ -0,0 +1,44 @@
+package com.charging.chargingparking.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.ParkingArea;
+import com.charging.chargingparking.mapper.ParkingAreaMapper;
+import com.charging.chargingparking.modules.common.dto.Sort;
+import com.charging.chargingparking.service.ParkingAreaService;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ParkingAreaServiceImpl extends ServiceImpl<ParkingAreaMapper, ParkingArea>
+    implements ParkingAreaService {
+
+    @Resource
+    private ParkingAreaMapper parkingAreaMapper;
+
+
+
+    @Override
+    public Page<ParkingArea> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList) {
+        Page<ParkingArea> page = PageHelper.startPage(pageNumber, pageSize).doSelectPage(() -> {
+            parkingAreaMapper.search(searchParams, sortList);
+        });
+        return page;
+    }
+
+}
+
+
+
+

+ 51 - 19
src/main/java/com/charging/chargingparking/service/impl/ParkingInfoServiceImpl.java

@@ -9,11 +9,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.charging.chargingparking.constant.ParkingConstant;
 import com.charging.chargingparking.constant.ParkingConstant;
 import com.charging.chargingparking.dto.ResponseAlarmInfoPlate;
 import com.charging.chargingparking.dto.ResponseAlarmInfoPlate;
-import com.charging.chargingparking.entity.ParkingChannel;
-import com.charging.chargingparking.entity.ParkingInfo;
-import com.charging.chargingparking.entity.ParkingMember;
-import com.charging.chargingparking.entity.ParkingRecord;
+import com.charging.chargingparking.entity.*;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.common.dto.Sort;
+import com.charging.chargingparking.service.ParkingAreaService;
 import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.mapper.ParkingInfoMapper;
 import com.charging.chargingparking.mapper.ParkingInfoMapper;
 import com.charging.chargingparking.service.ParkingRecordService;
 import com.charging.chargingparking.service.ParkingRecordService;
@@ -38,7 +36,8 @@ public class ParkingInfoServiceImpl extends ServiceImpl<ParkingInfoMapper, Parki
 
 
     @Autowired
     @Autowired
     private ParkingRecordService parkingRecordService;
     private ParkingRecordService parkingRecordService;
-
+    @Autowired
+    private ParkingAreaService parkingAreaService;
     @Override
     @Override
     public ParkingInfo get(String id) {
     public ParkingInfo get(String id) {
         // TODO Auto-generated method stub
         // TODO Auto-generated method stub
@@ -103,23 +102,56 @@ public class ParkingInfoServiceImpl extends ServiceImpl<ParkingInfoMapper, Parki
                     if (ParkingConstant.OK.equals(result)) {
                     if (ParkingConstant.OK.equals(result)) {
 
 
                         if (!"9ed79fdf-6519-4b7e-a325-e4c297cabac8".equals(parkingInfo.getId())){
                         if (!"9ed79fdf-6519-4b7e-a325-e4c297cabac8".equals(parkingInfo.getId())){
-                            //入口车位数减少
-                            if ("1".equals(parkingChannel.getChannelType())) {
-                                parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber() - 1);
-                                //剩余车位不能小于停车场最小车位数
-                                if (parkingInfo.getSurplusParkingNumber() < parkingInfo.getMinParkingNumber()) {
-                                    parkingInfo.setSurplusParkingNumber(parkingInfo.getMinParkingNumber());
+                            //add by hbjzws 2025-6-7增加对荆鹏停车场按照区域查询的修改
+                            if(!"1".equals(parkingInfo.getId())){
+                                //入口车位数减少
+                                if ("1".equals(parkingChannel.getChannelType())) {
+                                    parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber() - 1);
+                                    //剩余车位不能小于停车场最小车位数
+                                    if (parkingInfo.getSurplusParkingNumber() < parkingInfo.getMinParkingNumber()) {
+                                        parkingInfo.setSurplusParkingNumber(parkingInfo.getMinParkingNumber());
+                                    }
                                 }
                                 }
-                            }
-                            //出口车位数增加
-                            else {
-                                parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber() + 1);
-                                //最大车位不能大于总车位数
-                                if (parkingInfo.getSurplusParkingNumber() > parkingInfo.getTotalParkingNumber()) {
-                                    parkingInfo.setSurplusParkingNumber(parkingInfo.getTotalParkingNumber());
+                                //出口车位数增加
+                                else {
+                                    parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber() + 1);
+                                    //最大车位不能大于总车位数
+                                    if (parkingInfo.getSurplusParkingNumber() > parkingInfo.getTotalParkingNumber()) {
+                                        parkingInfo.setSurplusParkingNumber(parkingInfo.getTotalParkingNumber());
+                                    }
+                                }
+                            }else{
+                                //荆鹏停车场特殊处理
+                                //入口车位数减少
+                                if ("1".equals(parkingChannel.getChannelType())) {
+                                    //根据区域和停车场ID找记录
+                                    QueryWrapper<ParkingArea> parkingAreaQueryWrapper = new QueryWrapper<>();
+                                    parkingAreaQueryWrapper.eq("park_id", parkingChannel.getParkId());
+                                    parkingAreaQueryWrapper.eq("area_", parkingChannel.getArea());
+                                    parkingAreaQueryWrapper.last("LIMIT 1");
+                                    ParkingArea parkingArea =parkingAreaService.getOne(parkingAreaQueryWrapper);
+                                    parkingArea.setSurplusParkingNumber(parkingArea.getSurplusParkingNumber()-1);
+                                    if(parkingArea.getSurplusParkingNumber()<1){
+                                        parkingArea.setSurplusParkingNumber(1);
+                                    }
+                                    parkingAreaService.updateById(parkingArea);
+                                }
+                                //出口车位数增加
+                                else{
+                                    QueryWrapper<ParkingArea> parkingAreaQueryWrapper = new QueryWrapper<>();
+                                    parkingAreaQueryWrapper.eq("park_id", parkingChannel.getParkId());
+                                    parkingAreaQueryWrapper.eq("area_", parkingChannel.getArea());
+                                    parkingAreaQueryWrapper.last("LIMIT 1");
+                                    ParkingArea parkingArea =parkingAreaService.getOne(parkingAreaQueryWrapper);
+                                    parkingArea.setSurplusParkingNumber(parkingArea.getSurplusParkingNumber()+ 1);
+                                    if(parkingArea.getSurplusParkingNumber()>parkingArea.getTotalParkingNumber()){
+                                        parkingArea.setSurplusParkingNumber(parkingArea.getTotalParkingNumber());
+                                    }
+                                    parkingAreaService.updateById(parkingArea);
                                 }
                                 }
                             }
                             }
-                            updateById(parkingInfo);
+
+
                     }
                     }
                     }
                     }
                 }
                 }

+ 19 - 4
src/main/java/com/charging/chargingparking/service/impl/ParkingRecordServiceImpl.java

@@ -20,10 +20,7 @@ import com.charging.chargingparking.modules.pay.properties.WxPayProperties;
 import com.charging.chargingparking.modules.vo.*;
 import com.charging.chargingparking.modules.vo.*;
 import com.charging.chargingparking.service.*;
 import com.charging.chargingparking.service.*;
 import com.charging.chargingparking.mapper.ParkingRecordMapper;
 import com.charging.chargingparking.mapper.ParkingRecordMapper;
-import com.charging.chargingparking.utils.BetweenTimeUtil;
-import com.charging.chargingparking.utils.FileUtil;
-import com.charging.chargingparking.utils.LedTcProtocol;
-import com.charging.chargingparking.utils.StringUtils;
+import com.charging.chargingparking.utils.*;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -88,6 +85,8 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
     private ValueOperations<String, Object> valueOperations;
     private ValueOperations<String, Object> valueOperations;
     @Autowired
     @Autowired
     private ParkingTimeService parkingTimeService;
     private ParkingTimeService parkingTimeService;
+    @Autowired
+    private ParkingAreaService parkingAreaService;
     @Override
     @Override
     public Map<String, Object> plateRecord(AlarmInfoPlate alarmInfoPlate) throws Exception {
     public Map<String, Object> plateRecord(AlarmInfoPlate alarmInfoPlate) throws Exception {
         JSONObject result = new JSONObject();
         JSONObject result = new JSONObject();
@@ -211,6 +210,22 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                         }
                         }
                     }
                     }
                 }
                 }
+
+                //add by hbjzws 2025-6-9增加非会员荆鹏停车场-停车区域-前后门充电的时间限制
+                if("1".equals(parkingInfo.getId())&&!"1".equals(memberType)){
+                    QueryWrapper<ParkingArea> parkingAreaQueryWrapper = new QueryWrapper<>();
+                    parkingAreaQueryWrapper.eq("park_id", parkingInfo.getId());
+                    parkingAreaQueryWrapper.eq("area_", parkingChannel.getArea());
+                    parkingAreaQueryWrapper.last("LIMIT 1");
+                    ParkingArea parkingArea =parkingAreaService.getOne(parkingAreaQueryWrapper);
+                    if(parkingArea!=null&& org.apache.commons.lang3.StringUtils.isNotEmpty(parkingArea.getCdStartTime())
+                            && org.apache.commons.lang3.StringUtils.isNotEmpty(parkingArea.getCdEndTime())){
+                        boolean isInRange =TimeRangeChecker.isNowTimeInRange(parkingArea.getCdStartTime(),parkingArea.getCdEndTime());
+                        if(!isInRange){
+                            throw new Exception(StrUtil.format("非会员车不准进场,道闸:{},车牌:{},记录:{}", parkingChannel.getChannelName(), license));
+                        }
+                    }
+                }
                 //2023-12-22 add by hbjzws 荆鹏停车场会员增加区域(大楼和创客公寓),控制车辆只能在大楼和公寓的停车场进出
                 //2023-12-22 add by hbjzws 荆鹏停车场会员增加区域(大楼和创客公寓),控制车辆只能在大楼和公寓的停车场进出
                 if("1".equals(parkingInfo.getId())&&"1".equals(memberType)){
                 if("1".equals(parkingInfo.getId())&&"1".equals(memberType)){
                     String msg="";
                     String msg="";

+ 82 - 0
src/main/java/com/charging/chargingparking/utils/TimeRangeChecker.java

@@ -0,0 +1,82 @@
+package com.charging.chargingparking.utils;
+
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+
+public class TimeRangeChecker {
+
+    //抽一个方法出来,传入2个时间点,然后判断当前时间是否在时间范围内
+    public static void main(String[] args) {
+        String startStr = "19:00";
+        String endStr = "07:00";
+        isNowTimeInRange(startStr,endStr);
+//        // 定义时间格式
+//        DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
+//
+//        try {
+//            // 测试时间点
+////            String testTimeStr = "08:00";
+////            LocalTime testTime = LocalTime.parse(testTimeStr, timeFormatter);
+//            LocalTime currentTime = LocalTime.now();
+//
+//            // 将当前时间格式化为字符串
+//            String testTime = currentTime.format(timeFormatter);
+//            // 时间区间
+//            String startStr = "19:00";
+//            String endStr = "07:00";
+//            LocalTime startTime = LocalTime.parse(startStr, timeFormatter);
+//            LocalTime endTime = LocalTime.parse(endStr, timeFormatter);
+//
+//            // 检查时间点是否在区间内
+//            boolean isInRange = isTimeInRange(currentTime, startTime, endTime);
+//
+//            // 输出结果
+//            System.out.println("时间点 " + testTime + " 是否在 " + startStr + "-" + endStr + " 区间内: " + isInRange);
+//
+//        } catch (DateTimeParseException e) {
+//            System.err.println("时间格式不正确,请使用 HH:mm 格式");
+//        }
+    }
+    public static boolean isNowTimeInRange( String start, String end) {
+        DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
+        boolean isInRange =false;
+        try {
+
+            LocalTime currentTime = LocalTime.now();
+            // 将当前时间格式化为字符串
+            String testTime = currentTime.format(timeFormatter);
+            // 时间区间
+
+            LocalTime startTime = LocalTime.parse(start, timeFormatter);
+            LocalTime endTime = LocalTime.parse(end, timeFormatter);
+
+            // 检查时间点是否在区间内
+             isInRange = isTimeInRange(currentTime, startTime, endTime);
+
+            // 输出结果
+            System.out.println("时间点 " + testTime + " 是否在 " + start + "-" + end + " 区间内: " + isInRange);
+
+        } catch (DateTimeParseException e) {
+            System.err.println("时间格式不正确,请使用 HH:mm 格式");
+        }
+        return isInRange;
+    }
+    /**
+     * 检查给定时间是否在指定的时间区间内
+     * @param time 要检查的时间点
+     * @param start 区间开始时间
+     * @param end 区间结束时间
+     * @return 如果时间在区间内返回true,否则返回false
+     */
+    public static boolean isTimeInRange(LocalTime time, LocalTime start, LocalTime end) {
+        // 处理跨天的情况(如23:00-01:00)
+        if (start.isAfter(end)) {
+            // 如果开始时间大于结束时间,表示跨天
+            return time.isAfter(start) || time.isBefore(end);
+        } else {
+            // 正常情况
+            return !time.isBefore(start) && !time.isAfter(end);
+        }
+    }
+}

+ 35 - 0
src/main/resources/mapper/ParkingAreaMapper.xml

@@ -0,0 +1,35 @@
+<?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.charging.chargingparking.mapper.ParkingAreaMapper">
+
+    <resultMap id="BaseResultMap" type="com.charging.chargingparking.entity.ParkingArea">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="parkId" column="park_id" jdbcType="VARCHAR"/>
+            <result property="area" column="area_" jdbcType="VARCHAR"/>
+            <result property="areaName" column="area_name" jdbcType="VARCHAR"/>
+            <result property="totalParkingNumber" column="total_parking_number" jdbcType="INTEGER"/>
+            <result property="surplusParkingNumber" column="surplus_parking_number" jdbcType="INTEGER"/>
+            <result property="cdStartTime" column="cd_start_time" jdbcType="VARCHAR"/>
+            <result property="cdEndTime" column="cd_end_time" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="BIT"/>
+    </resultMap>
+
+        <select id="search" parameterType="hashmap" resultMap="BaseResultMap">
+                <![CDATA[
+			select * from base_parking_area a
+		]]>
+                where a.del_flag=false
+                <if test="searchParams.parkId != null">
+                        and a.park_id = #{searchParams.parkId}
+                </if>
+                <foreach item="sort" collection="sortList" open="order by" separator=",">
+                        ${sort.name} ${sort.order}
+                </foreach>
+        </select>
+</mapper>

+ 3 - 0
src/main/resources/mapper/ParkingMemberMapper.xml

@@ -42,6 +42,9 @@
         <if test="searchParams.parkId != null">
         <if test="searchParams.parkId != null">
             and a.park_id = #{searchParams.parkId}
             and a.park_id = #{searchParams.parkId}
         </if>
         </if>
+        <if test="searchParams.area != null">
+            and a.area_ = #{searchParams.area}
+        </if>
         <if test="searchParams.memberName != null">
         <if test="searchParams.memberName != null">
             and a.member_name like #{searchParams.memberName}
             and a.member_name like #{searchParams.memberName}
         </if>
         </if>

+ 10 - 0
src/main/resources/mapper/ParkingRecordMapper.xml

@@ -109,6 +109,16 @@
                 and park_id=''
                 and park_id=''
             </if>
             </if>
         </if>
         </if>
+        <if test="searchParams.listParkingChannel!=null">
+            <if test="searchParams.listParkingChannel.size>0">
+                <foreach item="item" collection="searchParams.listParkingChannel"  open=" and in_channel_id in(" separator="," close=")">
+                    #{item.id}
+                </foreach>
+            </if>
+            <if test="searchParams.listParkingChannel.size==0">
+                and in_channel_id=''
+            </if>
+        </if>
         <foreach item="sort" collection="sortList" open="order by" separator=",">
         <foreach item="sort" collection="sortList" open="order by" separator=",">
             ${sort.name} ${sort.order}
             ${sort.name} ${sort.order}
         </foreach>
         </foreach>

+ 37 - 7
src/test/java/com/charging/chargingparking/ChargingParkingApplicationTests.java

@@ -106,16 +106,46 @@ class ChargingParkingApplicationTests {
     private TimeSetService timeSetService;
     private TimeSetService timeSetService;
     @Autowired
     @Autowired
     private EcCouponService ecCouponService;
     private EcCouponService ecCouponService;
+    @Autowired
+    private ParkingAreaService parkingAreaService;
     @Test
     @Test
     void testService() throws Exception {
     void testService() throws Exception {
+//        ParkingArea parkingArea = new ParkingArea();
+//        parkingArea.setArea("1");
+//        parkingArea.setAreaName("121");
+//        parkingArea.setParkId("11111");
+//        parkingArea.setSurplusParkingNumber(10);
+//        parkingArea.setTotalParkingNumber(100);
+//        parkingArea.setCreateBy("admin");
+//        parkingArea.setCreateTime(new Date());
+//        parkingArea.setUpdateBy("updater");
+//        parkingArea.setUpdateTime(new Date());
+       // parkingAreaService.save(parkingArea);
+
+//        ParkingArea parkingAreaBG = parkingAreaService.getById(1931167050676056066l);
+//        parkingAreaBG.setSurplusParkingNumber(9);
+//        parkingAreaBG.setUpdateTime(new Date());
+//        parkingAreaService.updateById(parkingAreaBG);
+
+        QueryWrapper<ParkingArea> parkingAreaQueryWrapper = new QueryWrapper<>();
+        parkingAreaQueryWrapper.eq("park_id", "1");
+        parkingAreaQueryWrapper.eq("area_", "1");
+        parkingAreaQueryWrapper.last("LIMIT 1");
+        ParkingArea parkingArea =parkingAreaService.getOne(parkingAreaQueryWrapper);
+        parkingArea.setSurplusParkingNumber(parkingArea.getSurplusParkingNumber()-1);
+        if(parkingArea.getSurplusParkingNumber()<1){
+            parkingArea.setSurplusParkingNumber(1);
+        }
+        parkingAreaService.updateById(parkingArea);
+
         //temporaryCarNumInPark
         //temporaryCarNumInPark
-        TemporaryVo temporaryVo = new TemporaryVo();
-        temporaryVo.setOpenId("oSruR6X9d6KRfkxT5HJH-lgl1ClY");
-        temporaryVo.setChannelId("1699950640833335297");
-        temporaryVo.setId("1865260254398353410");
-        log.warn(temporaryVo.getOpenId()+"---"+temporaryVo.getChannelId()+"----"+temporaryVo.getCompanyId()+"---"+temporaryVo.getId()+"---"+temporaryVo.getParkId());
-//oSruR6X9d6KRfkxT5HJH-lgl1ClY---1699950640833335297----null---1865260254398353410---null
-        parkingRecordService.temporaryCarNumInPark(temporaryVo);
+//        TemporaryVo temporaryVo = new TemporaryVo();
+//        temporaryVo.setOpenId("oSruR6X9d6KRfkxT5HJH-lgl1ClY");
+//        temporaryVo.setChannelId("1699950640833335297");
+//        temporaryVo.setId("1865260254398353410");
+//        log.warn(temporaryVo.getOpenId()+"---"+temporaryVo.getChannelId()+"----"+temporaryVo.getCompanyId()+"---"+temporaryVo.getId()+"---"+temporaryVo.getParkId());
+////oSruR6X9d6KRfkxT5HJH-lgl1ClY---1699950640833335297----null---1865260254398353410---null
+//        parkingRecordService.temporaryCarNumInPark(temporaryVo);
 
 
 
 
 //        ParkingInfo parkingInfo =parkingInfoService.get("1");
 //        ParkingInfo parkingInfo =parkingInfoService.get("1");