Merge branch 'dev-new' into dev-new-rabbitmq

# Conflicts:
#	jsowell-admin/src/test/java/PaymentTestController.java
This commit is contained in:
Guoqs
2024-12-19 13:30:11 +08:00
64 changed files with 2858 additions and 767 deletions

View File

@@ -1208,6 +1208,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
}
List<String> orderCodeList = Lists.newArrayList(StringUtils.split(orderCodes, ","));
List<OrderBasicInfo> orderBasicInfos = queryOrderList(orderCodeList);
logger.info("运营商id:{}, 日期:{}, 订单号数量:{}, 查询结果数量:{}, orderCodeList:{}", merchantId, orderReport.getTradeDate(), orderCodeList.size(), orderBasicInfos.size(), JSON.toJSONString(orderCodeList));
if (CollectionUtils.isEmpty(orderBasicInfos)) {
continue;
}
@@ -1247,12 +1248,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
.subtract(feeAmt);
clearingBillDetail.setFeeAmt(feeAmt);
clearingBillDetail.setConfirmAmt(confirmAmt);
billDetailList.add(clearingBillDetail);
} else {
clearingBillDetail.setFeeAmt(BigDecimal.ZERO);
clearingBillDetail.setConfirmAmt(BigDecimal.ZERO);
billDetailList.add(clearingBillDetail);
}
billDetailList.add(clearingBillDetail);
} catch (Exception e) {
logger.error("订单交易确认失败:{}", orderBasicInfo.getOrderCode(), e);
}
@@ -4458,5 +4458,10 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
}
return resultList;
}
@Override
public List<String> tempGetOrderCodes(QueryOrderDTO dto) {
return orderBasicInfoMapper.tempGetOrderCodes(dto);
}
}

View File

@@ -1,14 +1,13 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Lists;
import com.jsowell.common.YouDianUtils;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
import com.jsowell.common.core.domain.ykc.GroundLockData;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.core.domain.ykc.*;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.DelFlagEnum;
import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum;
@@ -634,6 +633,14 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
if (StringUtils.equals(realTimeMonitorData.getTransactionCode(), Constants.ILLEGAL_TRANSACTION_CODE)) {
return;
}
BigDecimal outputVoltage = new BigDecimal(realTimeMonitorData.getOutputVoltage());
BigDecimal outputCurrent = new BigDecimal(realTimeMonitorData.getOutputCurrent());
if (outputCurrent.compareTo(BigDecimal.ZERO) == 0) {
// 电流等于0不保存到redis
return;
}
// 保存到redis
String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + realTimeMonitorData.getPileConnectorCode() + "_" + realTimeMonitorData.getTransactionCode();
@@ -641,8 +648,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
Date now = new Date();
realTimeMonitorData.setDateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now));
// 计算功率,后面查询要用
String power = new BigDecimal(realTimeMonitorData.getOutputVoltage())
.multiply(new BigDecimal(realTimeMonitorData.getOutputCurrent())).setScale(2, RoundingMode.HALF_UP).toString();
String power = outputVoltage.multiply(outputCurrent).setScale(2, RoundingMode.HALF_UP).toString();
realTimeMonitorData.setOutputPower(power);
// 保存json字符串
String jsonMsg = JSON.toJSONString(realTimeMonitorData);
@@ -663,6 +669,122 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
redisCache.setCacheObject(pileIsChargingKey, realTimeMonitorData.getTransactionCode(), 20);
}
/**
* 0x23信息设置缓存 (缓存时间3天)
* @param data
*/
@Override
public void saveBMSDemandAndChargerOutputInfo2Redis(BMSDemandAndChargerOutputData data) {
if (StringUtils.equals(data.getTransactionCode(), Constants.ILLEGAL_TRANSACTION_CODE)) {
return;
}
// 保存到redis
String redisKey = CacheConstants.BMS_DEMAND_AND_CHARGER_OUTPUT_BY_TRANSACTION_CODE + data.getTransactionCode();
// 设置接收到实时数据的时间
Date now = new Date();
data.setDateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now));
// 计算功率,后面查询要用
String power = new BigDecimal(data.getPileVoltageOutput())
.multiply(new BigDecimal(data.getPileCurrentOutput())).setScale(2, RoundingMode.HALF_UP).toString();
data.setOutputPower(power);
// 保存json字符串
String jsonMsg = JSON.toJSONString(data);
// 0x23数据20秒发送一次1分钟3次在同一分钟内只保留最后一条实时数据
redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), jsonMsg);
// 设置过期时间
try {
redisCache.expire(redisKey, CacheConstants.cache_expire_time_3d);
// if (redisCache.getExpire(redisKey) < 0) {
// }
} catch (Exception e) {
log.info("0x23存入缓存设置过期时间error", e);
}
}
/**
* 0x25数据保存到redis
* @param bmsChargeInfoData
*/
@Override
public void saveBMSChargeInfo2Redis(BMSChargeInfoData bmsChargeInfoData) {
if (StringUtils.equals(bmsChargeInfoData.getTransactionCode(), Constants.ILLEGAL_TRANSACTION_CODE)) {
return;
}
// 保存到redis
String redisKey = CacheConstants.BMS_CHARGE_INFO_BY_TRANSACTION_CODE + bmsChargeInfoData.getTransactionCode();
// 设置接收到实时数据的时间
Date now = new Date();
bmsChargeInfoData.setDateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now));
// 保存json字符串
String jsonMsg = JSON.toJSONString(bmsChargeInfoData);
// 0x25数据20秒发送一次1分钟3次在同一分钟内只保留最后一条实时数据
redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), jsonMsg);
// 设置过期时间
try {
redisCache.expire(redisKey, CacheConstants.cache_expire_time_3d);
} catch (Exception e) {
log.info("0x25存入缓存设置过期时间error", e);
}
}
/**
* 根据交易流水号获取0x25数据
* @param transactionCode
* @return
*/
@Override
public List<BMSChargeInfoData> getBMSChargeInfoList(String transactionCode) {
List<BMSChargeInfoData> resultList = Lists.newArrayList();
if (StringUtils.isBlank(transactionCode)) {
return resultList;
}
String redisKey = CacheConstants.BMS_CHARGE_INFO_BY_TRANSACTION_CODE + transactionCode;
// 拿到所有数据
Map<Object, Object> map = redisCache.hmget(redisKey);
if (map != null && !map.isEmpty()) {
List<String> keyList = map.keySet().stream()
.map(x -> (String) x)
.sorted(Comparator.reverseOrder()) // 对keyList排序 时间倒序
.collect(Collectors.toList());
for (String s : keyList) {
Object o = map.get(s);
BMSChargeInfoData data = JSONObject.parseObject((String) o, BMSChargeInfoData.class);
resultList.add(data);
}
}
return resultList;
}
/**
* 根据交易流水号查询0x23数据时间倒序
* @param transactionCode
* @return
*/
@Override
public List<BMSDemandAndChargerOutputData> getBMSDemandAndChargerOutputInfoList(String transactionCode) {
List<BMSDemandAndChargerOutputData> resultList = Lists.newArrayList();
if (StringUtils.isBlank(transactionCode)) {
return resultList;
}
String redisKey = CacheConstants.BMS_DEMAND_AND_CHARGER_OUTPUT_BY_TRANSACTION_CODE + transactionCode;
// 拿到所有数据
Map<Object, Object> map = redisCache.hmget(redisKey);
if (map != null && !map.isEmpty()) {
List<String> keyList = map.keySet().stream()
.map(x -> (String) x)
.sorted(Comparator.reverseOrder()) // 对keyList排序 时间倒序
.collect(Collectors.toList());
for (String s : keyList) {
Object o = map.get(s);
BMSDemandAndChargerOutputData data = JSONObject.parseObject((String) o, BMSDemandAndChargerOutputData.class);
resultList.add(data);
}
}
return resultList;
}
@Override
public PileConnectorDetailVO queryPileConnectorDetail(String pileConnectorCode) {
return pileBasicInfoMapper.queryPileConnectorDetail(pileConnectorCode);
@@ -1111,6 +1233,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
String pileSn = pileBasicInfo.getSn();
equipmentInfo.setEquipmentID(pileSn);
equipmentInfo.setEquipmentClassification(1);
equipmentInfo.setManufacturerID(Constants.OPERATORID_LIANLIAN);
equipmentInfo.setManufacturerName(Constants.MANUFACTURER_NAME);
equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime()));
@@ -1146,6 +1269,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
resultList.add(equipmentInfo);
}
return resultList;
}
@@ -1208,6 +1332,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
connectorInfo.setParkNo(pileConnectorInfo.getParkNo());
}
connectorInfo.setVoltageUpperLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
connectorInfo.setEquipmentClassification(1);
connectorInfo.setVoltageLowerLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
connectorInfo.setCurrent(Integer.valueOf(modelInfo.getRatedCurrent()));
connectorInfo.setConnectorName(pileConnectorInfo.getPileConnectorCode());

View File

@@ -337,7 +337,10 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
if (CollectionUtils.isEmpty(pileSns) && CollectionUtils.isEmpty(connectorIds) && CollectionUtils.isEmpty(connectorCodeList)) {
return Lists.newArrayList();
}
PageHelper.startPage(pageNum, pageSize);
if (StringUtils.isBlank(dto.getRequestSource())) {
PageHelper.startPage(pageNum, pageSize);
}
List<PileConnectorInfoVO> pileConnectorInfoList = pileConnectorInfoMapper.getPileConnectorInfoList(pileSns, connectorIds, connectorCodeList);

View File

@@ -116,6 +116,7 @@ public class PileMemberRelationServiceImpl implements PileMemberRelationService
return selectPileMemberRelationList(pileMemberRelation);
}
@Override
public List<MemberVO> selectMemberList(String pileSn) {
return pileMemberRelationMapper.selectMemberList(pileSn);
}