|
@@ -1,9 +1,11 @@
|
|
package com.charging.chargingparking.service.impl;
|
|
package com.charging.chargingparking.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.date.DateField;
|
|
import cn.hutool.core.date.DateField;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.alipay.api.domain.DmActivityShopData;
|
|
import com.alipay.api.domain.DmActivityShopData;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -14,6 +16,7 @@ import com.charging.chargingparking.dto.SerialData;
|
|
import com.charging.chargingparking.dto.WhiteListOperate;
|
|
import com.charging.chargingparking.dto.WhiteListOperate;
|
|
import com.charging.chargingparking.entity.ParkingChannel;
|
|
import com.charging.chargingparking.entity.ParkingChannel;
|
|
import com.charging.chargingparking.entity.ParkingFee;
|
|
import com.charging.chargingparking.entity.ParkingFee;
|
|
|
|
+import com.charging.chargingparking.entity.ParkingPay;
|
|
import com.charging.chargingparking.entity.ParkingRecord;
|
|
import com.charging.chargingparking.entity.ParkingRecord;
|
|
import com.charging.chargingparking.service.*;
|
|
import com.charging.chargingparking.service.*;
|
|
import com.charging.chargingparking.mapper.ParkingChannelMapper;
|
|
import com.charging.chargingparking.mapper.ParkingChannelMapper;
|
|
@@ -24,9 +27,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -55,6 +56,9 @@ public class ParkingChannelServiceImpl extends ServiceImpl<ParkingChannelMapper,
|
|
@Autowired
|
|
@Autowired
|
|
private StringUtils stringUtils;
|
|
private StringUtils stringUtils;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ParkingPayService parkingPayService;
|
|
|
|
+
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> receiveDeviceInfo(ReceiveDeviceDTO receiveDeviceDTO) throws Exception {
|
|
public Map<String, Object> receiveDeviceInfo(ReceiveDeviceDTO receiveDeviceDTO) throws Exception {
|
|
@@ -86,7 +90,12 @@ public class ParkingChannelServiceImpl extends ServiceImpl<ParkingChannelMapper,
|
|
WhiteListOperate whiteListOperate = parkingWhiteService.getWhiteList(parkingChannel.getId());
|
|
WhiteListOperate whiteListOperate = parkingWhiteService.getWhiteList(parkingChannel.getId());
|
|
responseAlarmInfoPlate.setWhite_list_operate(whiteListOperate);
|
|
responseAlarmInfoPlate.setWhite_list_operate(whiteListOperate);
|
|
//处理语音播报内容
|
|
//处理语音播报内容
|
|
- SerialData serialData = parkingChannelVoiceService.broadcast(parkingChannel.getId());
|
|
|
|
|
|
+ SerialData serialData0 = parkingChannelVoiceService.broadcast(parkingChannel.getId());
|
|
|
|
+ List<SerialData> serialData = new ArrayList<>();
|
|
|
|
+ if (serialData0 != null) {
|
|
|
|
+ serialData.add(serialData0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
//入口
|
|
//入口
|
|
if ("1".equals(parkingChannel.getChannelType())) {
|
|
if ("1".equals(parkingChannel.getChannelType())) {
|
|
@@ -95,28 +104,39 @@ public class ParkingChannelServiceImpl extends ServiceImpl<ParkingChannelMapper,
|
|
//出口
|
|
//出口
|
|
else {
|
|
else {
|
|
//TODO 处理道闸处扫码支付抬杠,逻辑:条件 道闸id,支付状态,处理状态,时间范围
|
|
//TODO 处理道闸处扫码支付抬杠,逻辑:条件 道闸id,支付状态,处理状态,时间范围
|
|
-
|
|
|
|
- QueryWrapper<ParkingRecord> parkingRecordQueryWrapper = new QueryWrapper<>();
|
|
|
|
- parkingRecordQueryWrapper.eq("out_channel_id", parkingChannel.getId());
|
|
|
|
- parkingRecordQueryWrapper.eq("release_status", "0");
|
|
|
|
- parkingRecordQueryWrapper.gt("payment_time", DateUtil.offset(new Date(), DateField.MINUTE, -30));
|
|
|
|
- parkingRecordQueryWrapper.eq("pay_status", 20);
|
|
|
|
- parkingRecordQueryWrapper.last("LIMIT 1");
|
|
|
|
- ParkingRecord parkingRecord = parkingRecordService.getOne(parkingRecordQueryWrapper);
|
|
|
|
- if (parkingRecord != null) {
|
|
|
|
|
|
+ Map<String,Object> param = new HashMap<>();
|
|
|
|
+ param.put("out_channel_id",parkingChannel.getParkId());
|
|
|
|
+ param.put("release_status","0");
|
|
|
|
+ param.put("pay_time",DateUtil.offset(new Date(), DateField.MINUTE, -30));
|
|
|
|
+ param.put("pay_status",20);
|
|
|
|
+ ParkingPay parkingPay = parkingPayService.findOneByParam(param);
|
|
|
|
+ if (parkingPay != null) {
|
|
|
|
+ ParkingRecord parkingRecord = parkingRecordService.getById(parkingPay.getParkingRecordId());
|
|
//获取此停车场记录应缴费用
|
|
//获取此停车场记录应缴费用
|
|
BigDecimal parkCost = parkingFeeService.parkingCost(parkingRecord);
|
|
BigDecimal parkCost = parkingFeeService.parkingCost(parkingRecord);
|
|
//如果应缴费用和已缴费用相同则开闸
|
|
//如果应缴费用和已缴费用相同则开闸
|
|
- if (parkCost.compareTo(parkingRecord.getPayAmount()) == 0){
|
|
|
|
|
|
+ if (parkCost.compareTo(parkingRecord.getPayAmount()) == 0) {
|
|
parkingRecord.setReleaseStatus("1");
|
|
parkingRecord.setReleaseStatus("1");
|
|
parkingRecordService.updateById(parkingRecord);
|
|
parkingRecordService.updateById(parkingRecord);
|
|
responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
|
|
responseAlarmInfoPlate.setInfo(ParkingConstant.OK);
|
|
- responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(ParkingConstant.OUTMESSAGE,parkingChannel.getId()));
|
|
|
|
|
|
+ responseAlarmInfoPlate.setSerialData(stringUtils.getSerialData(ParkingConstant.OUTMESSAGE, parkingChannel.getId()));
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (responseAlarmInfoPlate.getSerialData() == null || responseAlarmInfoPlate.getSerialData().size() == 0) {
|
|
|
|
+ responseAlarmInfoPlate.setSerialData(serialData);
|
|
|
|
+ }
|
|
|
|
+
|
|
map.put(ParkingConstant.RESPONSEKEY, responseAlarmInfoPlate);
|
|
map.put(ParkingConstant.RESPONSEKEY, responseAlarmInfoPlate);
|
|
|
|
+
|
|
|
|
+ if (responseAlarmInfoPlate.getSerialData() != null && responseAlarmInfoPlate.getSerialData().size() != 0) {
|
|
|
|
+ log.warn(StrUtil.format("通道:{},轮训发送数据:{}", parkingChannel.getChannelName(), JSONObject.parseObject(JSONObject.toJSONString(map))));
|
|
|
|
+ }
|
|
|
|
+
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
}
|
|
}
|