Parcourir la source

添加配置:无进场记录时车辆出场策略

fulonglong il y a 2 ans
Parent
commit
ab1a019a31

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

@@ -13,6 +13,8 @@ public class ParkingConstant {
 
     public static final String OUTMESSAGE = "一路顺风";
 
+    public static final String OUTPOLICY = "无进场记录,请联系管理员";
+
     public static final String INMESSAGE = "欢迎光临";
 
     public static final String NEEDPAY = "请付款";

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

@@ -139,4 +139,9 @@ public class ParkingInfo implements Serializable {
     private Integer minParkingNumber = 0;
 
     private Boolean minParkingNumberEnable = true;
+
+    /**
+     * 无进场记录时车辆的出场策略(1:直接放行,2:不放行)
+     */
+    private String noInParkingOutPolicy = "1";
 }

+ 45 - 37
src/main/java/com/charging/chargingparking/service/impl/ParkingRecordServiceImpl.java

@@ -170,7 +170,7 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
             }
         }
 
-        //是否开闸
+        //是否开闸,验证黑白名单和道闸权限
         ParkingEnableVo parkingEnableVo = parkingMemberService.parkingMemberStatus(license, parkingChannel);
 
         if (!parkingEnableVo.getOpen()) {
@@ -357,7 +357,6 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                         }
                     }
 
-
                     if (parkingRecord0 == null) {
 
                         QueryWrapper<ParkingRecord> parkingRecordQueryWrapper1 = new QueryWrapper<>();
@@ -374,46 +373,55 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
                             throw new Exception(StrUtil.format("摄像头重复拍摄{}", license));
                         }
 
-
-                        //无记录默认放行,数据库记录
-                        ParkingRecord parkingRecord = new ParkingRecord();
-                        parkingRecord.setParkId(parkingChannel.getParkId());
-                        parkingRecord.setCarNum(license);
-                        parkingRecord.setOutPlateId(plateId);
-                        parkingRecord.setOutParkingTime(DateUtil.parse(dataStr));
-                        parkingRecord.setProductTheme("停车费");
-                        parkingRecord.setCarType(alarmInfoPlate.getResult().getPlateResult().getType().toString());
-                        parkingRecord.setCType(alarmInfoPlate.getResult().getPlateResult().getTriggerType().toString());
-                        parkingRecord.setCreateTime(new Date());
-                        parkingRecord.setOutChannelId(parkingChannel.getId());
-                        parkingRecord.setOutChannel(parkingChannel.getChannelName());
-                        if (StrUtil.isNotBlank(imageFragmentFile)) {
-                            String fileUrl = fileUtil.uploadBase64(license + "出.png", imageFragmentFile);
-                            parkingRecord.setOutFragmentImage(fileUrl);
-                        }
-                        if (StrUtil.isNotBlank(imageFile)) {
-                            String fileUrl = fileUtil.uploadBase64(license + "(大)出.png", imageFile);
-                            parkingRecord.setOutImage(fileUrl);
+                        //默认放行策略
+                        if ("1".equals(parkingInfo.getNoInParkingOutPolicy())){
+                            //无记录放行,数据库记录
+                            ParkingRecord parkingRecord = new ParkingRecord();
+                            parkingRecord.setParkId(parkingChannel.getParkId());
+                            parkingRecord.setCarNum(license);
+                            parkingRecord.setOutPlateId(plateId);
+                            parkingRecord.setOutParkingTime(DateUtil.parse(dataStr));
+                            parkingRecord.setProductTheme("停车费");
+                            parkingRecord.setCarType(alarmInfoPlate.getResult().getPlateResult().getType().toString());
+                            parkingRecord.setCType(alarmInfoPlate.getResult().getPlateResult().getTriggerType().toString());
+                            parkingRecord.setCreateTime(new Date());
+                            parkingRecord.setOutChannelId(parkingChannel.getId());
+                            parkingRecord.setOutChannel(parkingChannel.getChannelName());
+                            if (StrUtil.isNotBlank(imageFragmentFile)) {
+                                String fileUrl = fileUtil.uploadBase64(license + "出.png", imageFragmentFile);
+                                parkingRecord.setOutFragmentImage(fileUrl);
+                            }
+                            if (StrUtil.isNotBlank(imageFile)) {
+                                String fileUrl = fileUtil.uploadBase64(license + "(大)出.png", imageFile);
+                                parkingRecord.setOutImage(fileUrl);
+                            }
+                            parkingRecord.setReleaseStatus("1");
+                            parkingRecord.setMemberType(memberType);
+                            if (StrUtil.isBlank(parkingRecord.getParkingNumLog())) {
+                                parkingRecord.setParkingNumLog(StrUtil.format("剩余车位数:{},时间:{}", parkingInfo.getSurplusParkingNumber(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
+                            } else {
+                                parkingRecord.setParkingNumLog(parkingRecord.getParkingNumLog() + ";" + StrUtil.format("剩余车位数:{},时间:{}", parkingInfo.getSurplusParkingNumber(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
+                            }
+                            save(parkingRecord);
+                            CarTypeVo carType = parkingMemberService.getCarType(license, parkingChannel.getParkId());
+                            jsonObject.put("info", ParkingConstant.OK);
+                            responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
+                            responseAlarmInfoPlate.setPlateid(plateId);
+                            responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType() + license + ParkingConstant.OUTMESSAGE, null, null, carType.getCarType() + license + ParkingConstant.OUTMESSAGE, parkingChannel.getId(), true, true, 10L));
+                            map.put(ParkingConstant.RESPONSEKEY, responseAlarmInfoPlate);
                         }
-                        parkingRecord.setReleaseStatus("1");
-                        parkingRecord.setMemberType(memberType);
-                        if (StrUtil.isBlank(parkingRecord.getParkingNumLog())) {
-                            parkingRecord.setParkingNumLog(StrUtil.format("剩余车位数:{},时间:{}", parkingInfo.getSurplusParkingNumber(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
-                        } else {
-                            parkingRecord.setParkingNumLog(parkingRecord.getParkingNumLog() + ";" + StrUtil.format("剩余车位数:{},时间:{}", parkingInfo.getSurplusParkingNumber(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")));
+                        //策略为不放行,语音播报联系停车场管理员
+                        if ("2".equals(parkingInfo.getNoInParkingOutPolicy())){
+                            responseAlarmInfoPlate.setInfo("");
+                            responseAlarmInfoPlate.setPlateid(plateId);
+                            List<SerialData> serialDataList = stringUtils.getSerialData(license + ParkingConstant.OUTPOLICY, null, null, license + ParkingConstant.OUTPOLICY, parkingChannel.getId(), true, true, 15L);
+                            responseAlarmInfoPlate.setSerialData(serialDataList);
+                            map.put(ParkingConstant.RESPONSEKEY, responseAlarmInfoPlate);
                         }
-                        save(parkingRecord);
-                    /*//车辆进场修改停车场剩余车位
-                    parkingInfoService.updateSurplusParkingNumber(null, parkingChannel);*/
 
 
-                        CarTypeVo carType = parkingMemberService.getCarType(license, parkingChannel.getParkId());
 
-                        jsonObject.put("info", ParkingConstant.OK);
-                        responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
-                        responseAlarmInfoPlate.setPlateid(plateId);
-                        responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(carType.getCarType() + license + ParkingConstant.OUTMESSAGE, null, null, carType.getCarType() + license + ParkingConstant.OUTMESSAGE, parkingChannel.getId(), true, true, 10L));
-                        map.put(ParkingConstant.RESPONSEKEY, responseAlarmInfoPlate);
+
                     }
                     //已存在记录,计算缴费金额
                     else {

+ 8 - 3
src/main/resources/mapper/ParkingInfoMapper.xml

@@ -27,19 +27,20 @@
             <result property="nightFree" column="night_free" jdbcType="BIT"/>
             <result property="minParkingNumber" column="min_parking_number" jdbcType="INTEGER"/>
             <result property="minParkingNumberEnable" column="min_parking_number_enable" jdbcType="BIT"/>
+            <result property="noInParkingOutPolicy" column="no_in_parking_out_policy" jdbcType="CHAR"/>
     </resultMap>
     <sql id="Base_Parking_Info">
         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,surplus_parking_number,night_free,min_parking_number,min_parking_number_enable
+        address_,welcome_words,total_parking_number,surplus_parking_number,night_free,min_parking_number,min_parking_number_enable,no_in_parking_out_policy
     </sql>
     <insert id="insert" parameterType="com.charging.chargingparking.entity.ParkingInfo">
         <![CDATA[
 		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,
-	    new_energy_car_enable,del_flag,create_by,create_time,update_by,update_time,address_,welcome_words,total_parking_number,surplus_parking_number,night_free,min_parking_number,min_parking_number_enable)
+	    new_energy_car_enable,del_flag,create_by,create_time,update_by,update_time,address_,welcome_words,total_parking_number,surplus_parking_number,night_free,min_parking_number,min_parking_number_enable,no_in_parking_out_policy)
 		values
 		(
 			#{id,jdbcType=VARCHAR}
@@ -65,6 +66,7 @@
             ,#{nightFree,jdbcType=BIT}
             ,#{minParkingNumber,jdbcType=INTEGER}
             ,#{minParkingNumberEnable,jdbcType=BIT}
+            ,#{noInParkingOutPolicy,jdbcType=CHAR}
 		)
 	]]>
     </insert>
@@ -135,7 +137,10 @@
                 min_parking_number=#{minParkingNumber,jdbcType=VARCHAR},
             </if>
             <if test="minParkingNumberEnable != null">
-                min_parking_number_enable = #{minParkingNumberEnable,jdbcType=BIT}
+                min_parking_number_enable = #{minParkingNumberEnable,jdbcType=BIT},
+            </if>
+            <if test="noInParkingOutPolicy != null">
+                no_in_parking_out_policy = #{noInParkingOutPolicy,jdbcType=CHAR}
             </if>
         </set>
         where id=#{id}