瀏覽代碼

1、停车场新增剩余车位
2、显屏修改

fulonglong 3 年之前
父節點
當前提交
d5aaa8c497

+ 2 - 0
src/main/java/com/charging/chargingparking/constant/ParkingConstant.java

@@ -22,4 +22,6 @@ public class ParkingConstant {
     public static final String MEMBERCAR = "月租车";
     public static final String MEMBERCAR = "月租车";
 
 
     public static final String TEMPORARYCAR = "临时车";
     public static final String TEMPORARYCAR = "临时车";
+
+    public static final String SURPLUSPARKINGNUMBER = "剩余车位";
 }
 }

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

@@ -130,5 +130,7 @@ public class ParkingInfo implements Serializable {
     @TableField(value = "welcome_words")
     @TableField(value = "welcome_words")
     private String welcomeWords;
     private String welcomeWords;
 
 
-    private String totalParkingNumber;
+    private Integer totalParkingNumber;
+
+    private Integer surplusParkingNumber;
 }
 }

+ 3 - 0
src/main/java/com/charging/chargingparking/mapper/ParkingInfoMapper.java

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.common.dto.Sort;
+import org.springframework.stereotype.Repository;
+
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
  * @Entity com.charging.chargingparking.entity.ParkingInfo
  * @Entity com.charging.chargingparking.entity.ParkingInfo
  */
  */
+@Repository
 public interface ParkingInfoMapper extends BaseMapper<ParkingInfo> {
 public interface ParkingInfoMapper extends BaseMapper<ParkingInfo> {
     int insert(ParkingInfo entity);
     int insert(ParkingInfo entity);
     int update(ParkingInfo entity);
     int update(ParkingInfo entity);

+ 3 - 0
src/main/java/com/charging/chargingparking/service/ParkingInfoService.java

@@ -3,6 +3,7 @@ package com.charging.chargingparking.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.charging.chargingparking.entity.ParkingRecord;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -18,4 +19,6 @@ public interface ParkingInfoService extends IService<ParkingInfo> {
     List<ParkingInfo> list();
     List<ParkingInfo> list();
     List<ParkingInfo> findByUserId(String userId);
     List<ParkingInfo> findByUserId(String userId);
     IPage<ParkingInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
     IPage<ParkingInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+
+    void updateSurplusParkingNumber(ParkingRecord parkingRecord);
 }
 }

+ 2 - 2
src/main/java/com/charging/chargingparking/service/impl/ParkingChannelServiceImpl.java

@@ -126,7 +126,7 @@ public class ParkingChannelServiceImpl extends ServiceImpl<ParkingChannelMapper,
                     CarTypeVo carType = parkingMemberService.getCarType(parkingRecord.getCarNum(),parkingRecord.getParkId());
                     CarTypeVo carType = parkingMemberService.getCarType(parkingRecord.getCarNum(),parkingRecord.getParkId());
 
 
                     responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
                     responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
-                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+parkingRecord.getCarNum()+ParkingConstant.OUTMESSAGE, carType.getCarType()+parkingRecord.getCarNum()+ParkingConstant.OUTMESSAGE, parkingChannel.getId(),true,true));
+                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+parkingRecord.getCarNum()+ParkingConstant.OUTMESSAGE, carType.getCarType()+parkingRecord.getCarNum()+ParkingConstant.OUTMESSAGE, parkingChannel.getId(),true,true,10L));
 
 
                     //出停车场检测是否需要删除临时会员
                     //出停车场检测是否需要删除临时会员
                     if (map.get(ParkingConstant.RESPONSEKEY) !=null && "1".equals(parkingRecord.getReleaseStatus())){
                     if (map.get(ParkingConstant.RESPONSEKEY) !=null && "1".equals(parkingRecord.getReleaseStatus())){
@@ -158,7 +158,7 @@ public class ParkingChannelServiceImpl extends ServiceImpl<ParkingChannelMapper,
                 if (StrUtil.isNotBlank(parkingInfo.getWelcomeWords())){
                 if (StrUtil.isNotBlank(parkingInfo.getWelcomeWords())){
                     message = parkingInfo.getWelcomeWords();
                     message = parkingInfo.getWelcomeWords();
                 }
                 }
-                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(message, null, parkingChannel.getId(),true,false));
+                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(message, null, parkingChannel.getId(),true,false,20L));
             }
             }
 
 
         }
         }

+ 32 - 0
src/main/java/com/charging/chargingparking/service/impl/ParkingInfoServiceImpl.java

@@ -5,6 +5,7 @@ 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.entity.ParkingInfo;
 import com.charging.chargingparking.entity.ParkingInfo;
 import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingMember;
+import com.charging.chargingparking.entity.ParkingRecord;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.mapper.ParkingInfoMapper;
 import com.charging.chargingparking.mapper.ParkingInfoMapper;
@@ -73,6 +74,37 @@ public class ParkingInfoServiceImpl extends ServiceImpl<ParkingInfoMapper, Parki
 
 
         return parkingInfoMapper.search(searchParams,sortList,page);
         return parkingInfoMapper.search(searchParams,sortList,page);
     }
     }
+
+    @Override
+    public synchronized void updateSurplusParkingNumber(ParkingRecord parkingRecord) {
+        try{
+            ParkingInfo parkingInfo = getById(parkingRecord.getParkId());
+            if (parkingInfo.getSurplusParkingNumber() ==null){
+                parkingInfo.setSurplusParkingNumber(parkingInfo.getTotalParkingNumber());
+                updateById(parkingInfo);
+            }
+            //车位减少
+            if (parkingRecord.getInParkingTime() != null && "0".equals(parkingRecord.getReleaseStatus()) && parkingRecord.getOutParkingTime() == null){
+
+                parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber()-1);
+                //剩余车位不能小于1
+                if (parkingInfo.getSurplusParkingNumber() <1){
+                    parkingInfo.setSurplusParkingNumber(1);
+                }
+            }
+            //车位新增
+            if (parkingRecord.getOutParkingTime() != null && "1".equals(parkingRecord.getReleaseStatus())){
+                parkingInfo.setSurplusParkingNumber(parkingInfo.getSurplusParkingNumber()+1);
+                //最大车位不能大于总车位数
+                if (parkingInfo.getSurplusParkingNumber()>parkingInfo.getTotalParkingNumber()){
+                    parkingInfo.setSurplusParkingNumber(parkingInfo.getTotalParkingNumber());
+                }
+            }
+            updateById(parkingInfo);
+        }catch (Exception ex){
+            log.error(ex.getMessage()+"剩余车位计算错误",ex);
+        }
+    }
 }
 }
 
 
 
 

+ 1 - 3
src/main/java/com/charging/chargingparking/service/impl/ParkingMemberServiceImpl.java

@@ -254,10 +254,8 @@ public class ParkingMemberServiceImpl extends ServiceImpl<ParkingMemberMapper, P
             parkingMemberQueryWrapper.last("LIMIT 1");
             parkingMemberQueryWrapper.last("LIMIT 1");
             ParkingMember parkingMember = getOne(parkingMemberQueryWrapper);
             ParkingMember parkingMember = getOne(parkingMemberQueryWrapper);
             if (parkingMember != null) {
             if (parkingMember != null) {
-                if (Convert.toInt(DateUtil.between(parkingMember.getMemberStartTime(), parkingMember.getMemberEndTime(), DateUnit.HOUR)) >= 48) {
+                if (parkingMember.getMemberType() == 1){
                     result = ParkingConstant.MEMBERCAR;
                     result = ParkingConstant.MEMBERCAR;
-                    days = Convert.toInt(DateUtil.between(new Date(), parkingMember.getMemberEndTime(), DateUnit.DAY));
-
                 }
                 }
             }
             }
             carTypeVo.setCarType(result);
             carTypeVo.setCarType(result);

+ 15 - 5
src/main/java/com/charging/chargingparking/service/impl/ParkingRecordServiceImpl.java

@@ -80,6 +80,8 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
             throw new Exception(StrUtil.format("设备号{},不存在",alarmInfoPlate.getSerialno()));
             throw new Exception(StrUtil.format("设备号{},不存在",alarmInfoPlate.getSerialno()));
         }
         }
 
 
+
+
         ParkingInfo parkingInfo = parkingInfoService.getById(parkingChannel.getParkId());
         ParkingInfo parkingInfo = parkingInfoService.getById(parkingChannel.getParkId());
 
 
         //传递的时间参数
         //传递的时间参数
@@ -95,7 +97,7 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
         //入口
         //入口
         if ("1".equals(parkingChannel.getChannelType())){
         if ("1".equals(parkingChannel.getChannelType())){
 
 
-            responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(license,null,null,true,false));
+         //   responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(license,null,null,true,false));
             boolean open = false;
             boolean open = false;
             if (parkingMemberService.parkingMemberStatus(license,parkingChannel.getParkId())){
             if (parkingMemberService.parkingMemberStatus(license,parkingChannel.getParkId())){
                 open = true;
                 open = true;
@@ -142,6 +144,9 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                     parkingRecord.setInImage(fileUrl);
                     parkingRecord.setInImage(fileUrl);
                 }
                 }
                 save(parkingRecord);
                 save(parkingRecord);
+                //车辆进场修改停车场剩余车位
+                parkingInfoService.updateSurplusParkingNumber(parkingRecord);
+
 
 
 
 
                 CarTypeVo carType = parkingMemberService.getCarType(license,parkingChannel.getParkId());
                 CarTypeVo carType = parkingMemberService.getCarType(license,parkingChannel.getParkId());
@@ -153,7 +158,7 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
 
 
                 responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
                 responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
                 responseAlarmInfoPlate.setPlateid(parkingRecord.getPlateId());
                 responseAlarmInfoPlate.setPlateid(parkingRecord.getPlateId());
-                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+license+ParkingConstant.INMESSAGE + sendContentAdd,carType.getCarType()+license+ParkingConstant.INMESSAGE+ sendContentAdd,parkingChannel.getId(),true,true));
+                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+license+ParkingConstant.INMESSAGE + sendContentAdd,carType.getCarType()+license+ParkingConstant.INMESSAGE+ sendContentAdd,parkingChannel.getId(),true,true,10L));
 
 
 
 
 
 
@@ -194,13 +199,16 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                 }
                 }
                 parkingRecord.setReleaseStatus("1");
                 parkingRecord.setReleaseStatus("1");
                 save(parkingRecord);
                 save(parkingRecord);
+                //车辆进场修改停车场剩余车位
+                parkingInfoService.updateSurplusParkingNumber(parkingRecord);
+
 
 
 
 
                 CarTypeVo carType = parkingMemberService.getCarType(license,parkingChannel.getParkId());
                 CarTypeVo carType = parkingMemberService.getCarType(license,parkingChannel.getParkId());
 
 
                 responseAlarmInfoPlate.setInfo("ok");
                 responseAlarmInfoPlate.setInfo("ok");
                 responseAlarmInfoPlate.setPlateid(parkingRecord.getPlateId());
                 responseAlarmInfoPlate.setPlateid(parkingRecord.getPlateId());
-                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+license+ParkingConstant.OUTMESSAGE,carType.getCarType()+license+ParkingConstant.OUTMESSAGE,parkingChannel.getId(),true,true));
+                responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType()+license+ParkingConstant.OUTMESSAGE,carType.getCarType()+license+ParkingConstant.OUTMESSAGE,parkingChannel.getId(),true,true,10L));
                 map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
                 map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
             }
             }
             //已存在记录,计算缴费金额
             //已存在记录,计算缴费金额
@@ -234,12 +242,12 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
 
 
                     responseAlarmInfoPlate.setInfo("ok");
                     responseAlarmInfoPlate.setInfo("ok");
                     responseAlarmInfoPlate.setPlateid(parkingRecord0.getPlateId());
                     responseAlarmInfoPlate.setPlateid(parkingRecord0.getPlateId());
-                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carTypeVo.getCarType()+license+ParkingConstant.OUTMESSAGE,carTypeVo.getCarType()+license+ParkingConstant.OUTMESSAGE,parkingChannel.getId(),true,true));
+                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carTypeVo.getCarType()+license+ParkingConstant.OUTMESSAGE,carTypeVo.getCarType()+license+ParkingConstant.OUTMESSAGE,parkingChannel.getId(),true,true,10L));
                     map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
                     map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
                     parkingRecord0.setReleaseStatus("1");
                     parkingRecord0.setReleaseStatus("1");
                 }else {
                 }else {
                     parkingRecord0.setTotalAmount(parkingCost);
                     parkingRecord0.setTotalAmount(parkingCost);
-                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(StrUtil.format("{}本次停车时间:{},停车费用:{}元",license,StringUtils.getParkingTimeStr(parkingRecord0.getParkingTime()),parkingCost.subtract(parkingRecord0.getPayAmount())),StrUtil.format("{}本次停车时间:{},停车费用:{}元",license,StringUtils.getParkingTimeStr(parkingRecord0.getParkingTime()),parkingCost.subtract(parkingRecord0.getPayAmount())),parkingChannel.getId(),true,true));
+                    responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(StrUtil.format("{}本次停车时间:{},停车费用:{}元",license,StringUtils.getParkingTimeStr(parkingRecord0.getParkingTime()),parkingCost.subtract(parkingRecord0.getPayAmount())),StrUtil.format("{}本次停车时间:{},停车费用:{}元",license,StringUtils.getParkingTimeStr(parkingRecord0.getParkingTime()),parkingCost.subtract(parkingRecord0.getPayAmount())),parkingChannel.getId(),true,true,60L));
                     map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
                     map.put(ParkingConstant.RESPONSEKEY,responseAlarmInfoPlate);
                 }
                 }
 
 
@@ -248,6 +256,8 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                 if (map.get(ParkingConstant.RESPONSEKEY) !=null && "1".equals(parkingRecord0.getReleaseStatus())){
                 if (map.get(ParkingConstant.RESPONSEKEY) !=null && "1".equals(parkingRecord0.getReleaseStatus())){
                     parkingMemberService.cloudDelete(null,parkingChannel.getParkId(),license);
                     parkingMemberService.cloudDelete(null,parkingChannel.getParkId(),license);
                 }
                 }
+                //车辆进场修改停车场剩余车位
+                parkingInfoService.updateSurplusParkingNumber(parkingRecord0);
             }
             }
 
 
 
 

+ 30 - 4
src/main/java/com/charging/chargingparking/utils/StringUtils.java

@@ -4,10 +4,15 @@ import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.charging.chargingparking.config.OSSConfig;
 import com.charging.chargingparking.config.OSSConfig;
+import com.charging.chargingparking.constant.ParkingConstant;
 import com.charging.chargingparking.dto.SerialData;
 import com.charging.chargingparking.dto.SerialData;
 import com.charging.chargingparking.dto.Timeval;
 import com.charging.chargingparking.dto.Timeval;
+import com.charging.chargingparking.entity.ParkingChannel;
 import com.charging.chargingparking.entity.ParkingChannelVoice;
 import com.charging.chargingparking.entity.ParkingChannelVoice;
+import com.charging.chargingparking.entity.ParkingInfo;
+import com.charging.chargingparking.service.ParkingChannelService;
 import com.charging.chargingparking.service.ParkingChannelVoiceService;
 import com.charging.chargingparking.service.ParkingChannelVoiceService;
+import com.charging.chargingparking.service.ParkingInfoService;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.data.redis.core.ValueOperations;
@@ -36,6 +41,12 @@ public final class StringUtils extends StrUtil {
     @Autowired
     @Autowired
     private ValueOperations<String, Object> valueOperations;
     private ValueOperations<String, Object> valueOperations;
 
 
+    @Autowired
+    private ParkingInfoService parkingInfoService;
+
+    @Autowired
+    private ParkingChannelService parkingChannelService;
+
 
 
     /**
     /**
      * 获取停车数据的时间
      * 获取停车数据的时间
@@ -103,25 +114,40 @@ public final class StringUtils extends StrUtil {
         return sb.toString();
         return sb.toString();
     }
     }
 
 
-    public List<SerialData> getSerialData(String SendContent,String VoiceContent, String channelId,Boolean sendFlag,Boolean voiceFlag){
+    public List<SerialData> getSerialData(String sendContent,String voiceContent, String channelId,Boolean sendFlag,Boolean voiceFlag,Long sendSecond){
         List<SerialData> serialData = new ArrayList<>();
         List<SerialData> serialData = new ArrayList<>();
         SerialData serialData0 = new SerialData();
         SerialData serialData0 = new SerialData();
         try{
         try{
 
 
             if (sendFlag){
             if (sendFlag){
+                int surplusParkingNumber = 1;
+                ParkingChannel parkingChannel = parkingChannelService.getById(channelId);
+                //车位数
+                ParkingInfo parkingInfo  = parkingInfoService.getById(parkingChannel.getParkId());
+                if (parkingInfo != null){
+                    if (parkingInfo.getSurplusParkingNumber() != null){
+                        surplusParkingNumber = parkingInfo.getSurplusParkingNumber();
+                    }else {
+                        parkingInfo.setSurplusParkingNumber(parkingInfo.getTotalParkingNumber());
+                        parkingInfoService.updateById(parkingInfo);
+                    }
+                }
+
                 //显屏内容
                 //显屏内容
-                byte[] data = LedTcProtocol.sendText(SendContent);
+                String[] arr = {sendContent, ParkingConstant.SURPLUSPARKINGNUMBER,Convert.toStr(surplusParkingNumber)};
+                int[] displayModes = {1,0,0};
+                byte[] data = LedTcProtocol.sendMultilineText(arr,displayModes);
                 serialData0.setSerialChannel(0);
                 serialData0.setSerialChannel(0);
                 serialData0.setData(com.charging.chargingparking.utils.Base64.encode(data));
                 serialData0.setData(com.charging.chargingparking.utils.Base64.encode(data));
                 serialData0.setDataLen(data.length);
                 serialData0.setDataLen(data.length);
                 serialData.add(serialData0);
                 serialData.add(serialData0);
-                valueOperations.set(channelId+"xp", new Date(), 20, TimeUnit.SECONDS);
+                valueOperations.set(channelId+"xp", new Date(), sendSecond, TimeUnit.SECONDS);
             }
             }
             if (voiceFlag){
             if (voiceFlag){
                 //保存要语音播报的内容
                 //保存要语音播报的内容
                 ParkingChannelVoice parkingChannelVoice = new ParkingChannelVoice();
                 ParkingChannelVoice parkingChannelVoice = new ParkingChannelVoice();
                 parkingChannelVoice.setChannelId(channelId);
                 parkingChannelVoice.setChannelId(channelId);
-                parkingChannelVoice.setVoiceContent(VoiceContent);
+                parkingChannelVoice.setVoiceContent(voiceContent);
                 parkingChannelVoice.setCreateTime(new Date());
                 parkingChannelVoice.setCreateTime(new Date());
                 parkingChannelVoiceService.save(parkingChannelVoice);
                 parkingChannelVoiceService.save(parkingChannelVoice);
             }
             }

+ 7 - 2
src/main/resources/mapper/ParkingInfoMapper.xml

@@ -23,19 +23,20 @@
             <result property="address" column="address_" jdbcType="VARCHAR"/>
             <result property="address" column="address_" jdbcType="VARCHAR"/>
             <result property="welcomeWords" column="welcome_words" jdbcType="VARCHAR"/>
             <result property="welcomeWords" column="welcome_words" jdbcType="VARCHAR"/>
             <result property="totalParkingNumber" column="total_parking_number" jdbcType="VARCHAR"/>
             <result property="totalParkingNumber" column="total_parking_number" jdbcType="VARCHAR"/>
+            <result property="surplusParkingNumber" column="surplus_parking_number" jdbcType="INTEGER"/>
     </resultMap>
     </resultMap>
     <sql id="Base_Parking_Info">
     <sql id="Base_Parking_Info">
         id,merchant_id,park_uname,park_key,
         id,merchant_id,park_uname,park_key,
         password_,company_name,parking_name,
         password_,company_name,parking_name,
         pic_url,charging_free_duration,oil_car_enable,new_energy_car_enable,del_flag,create_by,
         pic_url,charging_free_duration,oil_car_enable,new_energy_car_enable,del_flag,create_by,
         create_time,update_by,update_time,
         create_time,update_by,update_time,
-        address_,welcome_words,total_parking_number
+        address_,welcome_words,total_parking_number,surplus_parking_number
     </sql>
     </sql>
     <insert id="insert" parameterType="com.charging.chargingparking.entity.ParkingInfo">
     <insert id="insert" parameterType="com.charging.chargingparking.entity.ParkingInfo">
         <![CDATA[
         <![CDATA[
 		insert into base_parking_info
 		insert into base_parking_info
 	    (id,merchant_id,park_uname,park_key,password_,company_name,parking_name,pic_url,charging_free_duration,oil_car_enable,
 	    (id,merchant_id,park_uname,park_key,password_,company_name,parking_name,pic_url,charging_free_duration,oil_car_enable,
-	    new_energy_car_enable,del_flag,create_by,create_time,update_by,update_time,address_,welcome_words,total_parking_number)
+	    new_energy_car_enable,del_flag,create_by,create_time,update_by,update_time,address_,welcome_words,total_parking_number,surplus_parking_number)
 		values
 		values
 		(
 		(
 			#{id,jdbcType=VARCHAR}
 			#{id,jdbcType=VARCHAR}
@@ -57,6 +58,7 @@
             ,#{address,jdbcType=VARCHAR}
             ,#{address,jdbcType=VARCHAR}
             ,#{welcomeWords,jdbcType=VARCHAR}
             ,#{welcomeWords,jdbcType=VARCHAR}
             ,#{totalParkingNumber,jdbcType=INTEGER}
             ,#{totalParkingNumber,jdbcType=INTEGER}
+            ,#{surplusParkingNumber,jdbcType=INTEGER}
 		)
 		)
 	]]>
 	]]>
     </insert>
     </insert>
@@ -117,6 +119,9 @@
             <if test="totalParkingNumber!=null">
             <if test="totalParkingNumber!=null">
                 total_parking_number=#{totalParkingNumber,jdbcType=VARCHAR},
                 total_parking_number=#{totalParkingNumber,jdbcType=VARCHAR},
             </if>
             </if>
+            <if test="surplusParkingNumber!=null">
+                surplus_parking_number=#{surplusParkingNumber,jdbcType=VARCHAR},
+            </if>
         </set>
         </set>
         where id=#{id}
         where id=#{id}
     </update>
     </update>