update修改字段数据类型

This commit is contained in:
YAS\29473
2025-06-25 09:59:10 +08:00
parent 53e39ce17b
commit 907f260718
5 changed files with 512 additions and 93 deletions

View File

@@ -0,0 +1,26 @@
package com.jsowell.thirdparty.platform.dto;
import com.alibaba.fastjson2.annotation.JSONField;
import com.jsowell.pile.thirdparty.EquipmentInfoDTO;
import com.jsowell.thirdparty.platform.domain.SupStationInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* 内蒙古平台站点信息
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class SupStationInfoDTO extends SupStationInfo {
@JSONField(name = "EquipmentInfos")
private List<EquipmentInfoDTO> equipmentInfosDTO;
}

View File

@@ -1,5 +1,6 @@
package com.jsowell.thirdparty.platform.service.impl;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageHelper;
@@ -8,39 +9,33 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum;
import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum;
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
import com.jsowell.common.enums.ykc.BillingTimeTypeEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.enums.ykc.*;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.*;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.ykcCommond.StartChargingCommand;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.mapper.OrderMonitorDataMapper;
import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.thirdparty.CommonParamsDTO;
import com.jsowell.pile.thirdparty.ConnectorInfo;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.thirdparty.*;
import com.jsowell.pile.thirdparty.EquipmentInfoDTO;
import com.jsowell.pile.thirdparty.dto.ConnectorInfoDTO;
import com.jsowell.pile.util.MerchantUtils;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.base.StationInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO;
import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO;
import com.jsowell.pile.vo.web.PileConnectorInfoVO;
import com.jsowell.pile.vo.web.PileMerchantInfoVO;
import com.jsowell.pile.vo.web.PileModelInfoVO;
import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.pile.vo.zdl.EquipBusinessPolicyVO;
import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo;
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
import com.jsowell.thirdparty.lianlian.vo.*;
import com.jsowell.thirdparty.platform.domain.*;
import com.jsowell.thirdparty.platform.dto.SupStationInfoDTO;
import com.jsowell.thirdparty.platform.factory.ThirdPartyPlatformFactory;
import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService;
import com.jsowell.thirdparty.platform.util.Cryptos;
@@ -51,19 +46,11 @@ import com.yi.business.geo.GeoCodeInfo;
import com.yi.business.geo.TermRelationTreeCoordinate;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.bouncycastle.crypto.CryptoException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.spec.InvalidKeySpecException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -94,11 +81,10 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
@Autowired
private PileBillingTemplateService pileBillingTemplateService;
@Autowired
private YKCPushCommandService ykcPushCommandService;
@Autowired
private PileRemoteService pileRemoteService;
private PileBasicInfoMapper pileBasicInfoMapper;
@Autowired
private ThirdPartyStationRelationService thirdPartyStationRelationService;
@@ -221,20 +207,19 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
public Map<String, String> queryStationsInfo(QueryStationInfoDTO dto) {
int pageNo = dto.getPageNo() == null ? 1 : dto.getPageNo();
int pageSize = dto.getPageSize() == null ? 50 : dto.getPageSize();
dto.setThirdPlatformType(thirdPlatformType);
dto.setThirdPlatformType("25");
PageUtils.startPage(pageNo, pageSize);
List<ThirdPartyStationInfoVO> stationInfos = pileStationInfoService.selectStationInfosByThirdParty(dto);
if (CollectionUtils.isEmpty(stationInfos)) {
// 未查到数据
return null;
}
// ThirdPartyPlatformConfig configInfo = thirdPartyPlatformConfigService.getInfoByOperatorId(dto.getOperatorId());
ThirdPartySecretInfoVO thirdPartySecretInfoVO = getSiChuanSecretInfo();
ThirdPartySecretInfoVO thirdPartySecretInfoVO = null;
PageInfo<ThirdPartyStationInfoVO> pageInfo = new PageInfo<>(stationInfos);
List<SupStationInfo> resultList = new ArrayList<>();
List<SupStationInfoDTO> resultList = new ArrayList<>();
for (ThirdPartyStationInfoVO pileStationInfo : pageInfo.getList()) {
SupStationInfo stationInfo = new SupStationInfo();
SupStationInfoDTO stationInfo = new SupStationInfoDTO();
stationInfo.setStationID(String.valueOf(pileStationInfo.getId()));
stationInfo.setOperatorID(Constants.OPERATORID_JIANG_SU); // 组织机构代码
String organizationCode = pileStationInfo.getOrganizationCode();
@@ -275,10 +260,13 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
stationInfo.setCapacity(pileStationInfo.getCapacity().setScale(4, RoundingMode.HALF_UP));
}
// 获取充电桩设备列表
List<EquipmentInfo> pileList = getPileList(pileStationInfo,pileStationInfo.getStationStatus());
List<EquipmentInfoDTO> pileList = getPileList(String.valueOf(pileStationInfo.getId()));
if (CollectionUtils.isNotEmpty(pileList)) {
stationInfo.setEquipmentInfosDTO(pileList); // 充电设备信息列表
}
// 站点额定总功率
BigDecimal stationRatedPower = pileList.stream()
.map(EquipmentInfo::getEquipmentPower)
.map(EquipmentInfoDTO::getEquipmentPower)
.reduce(BigDecimal.ZERO, BigDecimal::add);
stationInfo.setRatedPower(stationRatedPower.setScale(4, RoundingMode.HALF_UP));
@@ -294,9 +282,6 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
if (StringUtils.isNotBlank(pileStationInfo.getPictures())) {
stationInfo.setPictures(Lists.newArrayList(pileStationInfo.getPictures().split(",")));
}
if (CollectionUtils.isNotEmpty(pileList)) {
stationInfo.setEquipmentInfos(pileList); // 充电设备信息列表
}
StringBuilder electricityFee = new StringBuilder();
StringBuilder serviceFee = new StringBuilder();
// 查询计费模板
@@ -339,6 +324,7 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
map.put("PageCount", pageInfo.getPages());
map.put("PageNo", pageInfo.getPageNum());
map.put("StationInfos", resultList);
log.info("queryStationsInfo result : " + JSON.toJSONString(map));
return ThirdPartyPlatformUtils.generateResultMap(map, thirdPartySecretInfoVO);
}
@@ -366,7 +352,7 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
// 组装中电联平台所需要的数据格式
SupStationInfo info = SupStationInfo.builder()
SupStationInfoDTO info = SupStationInfoDTO.builder()
.stationID(stationId)
.operatorID(Constants.OPERATORID_JIANG_SU)
.stationName(pileStationInfo.getStationName())
@@ -401,11 +387,11 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
}
//获取充电桩设备列表
List<EquipmentInfo> pileList = getPileList(pileStationInfo,pileStationInfo.getStationStatus());
List<EquipmentInfoDTO> pileList = getPileList(String.valueOf(pileStationInfo.getId()));
// 站点额定总功率
BigDecimal stationRatedPower = pileList.stream()
.map(EquipmentInfo::getEquipmentPower)
.map(EquipmentInfoDTO::getEquipmentPower)
.reduce(BigDecimal.ZERO, BigDecimal::add);
info.setRatedPower(stationRatedPower.setScale(4, RoundingMode.HALF_UP));
info.setPeriodFee(Constants.one);
@@ -461,7 +447,7 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
}
if (CollectionUtils.isNotEmpty(pileList)) {
info.setEquipmentInfos(pileList); // 充电设备信息列表
info.setEquipmentInfosDTO(pileList); // 充电设备信息列表
}
stationInfos.add(info);
@@ -1125,79 +1111,98 @@ public class SiChuanPlatformServiceImpl implements ThirdPartyPlatformService {
/**
* 获取桩列表信息
*
* @param pileStationInfo
* @param stationStatus
* @return
*/
private List<EquipmentInfo> getPileList(PileStationInfo pileStationInfo , String stationStatus) {
List<EquipmentInfo> resultList = new ArrayList<>();
public List<EquipmentInfoDTO> getPileList(String stationId) {
List<EquipmentInfoDTO> resultList = new ArrayList<>();
// 通过站点id查询桩基本信息
List<PileBasicInfo> list = pileBasicInfoService.getPileListByStationId(String.valueOf(pileStationInfo.getId()));
// 封装成中电联平台对象
for (PileBasicInfo pileBasicInfo : list) {
EquipmentInfo equipmentInfo = new EquipmentInfo();
String pileSn = pileBasicInfo.getSn();
List<PileDetailInfoVO> list = getPileDetailInfoList(stationId);
// 封装成联平台对象
for (PileDetailInfoVO pileDetailInfoVO : list) {
com.jsowell.pile.thirdparty.EquipmentInfoDTO equipmentInfo = new EquipmentInfoDTO();
String pileSn = pileDetailInfoVO.getPileSn();
equipmentInfo.setEquipmentID(pileSn);
equipmentInfo.setEquipmentClassification(Constants.one);
PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
equipmentInfo.setEquipmentType(Integer.parseInt(modelInfo.getSpeedType()));
equipmentInfo.setPower(new BigDecimal(modelInfo.getRatedPower()).setScale(4, RoundingMode.HALF_UP));
equipmentInfo.setEquipmentClassification(1);
List<ConnectorInfo> connectorList = getConnectorList(pileBasicInfo,stationStatus);
if (StringUtils.isBlank(pileDetailInfoVO.getSpeedType())) {
continue;
}
equipmentInfo.setEquipmentType(Integer.valueOf(pileDetailInfoVO.getSpeedType()));
equipmentInfo.setEquipmentPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
String pileStatus = pileDetailInfoVO.getPileStatus();
if (StringUtils.equals(PileStatusEnum.ON_LINE.getValue(), pileStatus)) {
// 1-在线
pileStatus = LianLianPileStatusEnum.NORMAL.getCode();
} else if (StringUtils.equals(PileStatusEnum.OFF_LINE.getValue(), pileStatus)) {
// 2-离线
pileStatus = LianLianPileStatusEnum.CLOSE_OFFLINE.getCode();
} else if (StringUtils.equals(PileStatusEnum.FAULT.getValue(), pileStatus)) {
// 3-故障
pileStatus = LianLianPileStatusEnum.UNDER_MAINTENANCE.getCode();
}
equipmentInfo.setPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(4, RoundingMode.HALF_UP));
// 枪口列表
List<ConnectorInfoDTO> connectorList = getConnectorListForLianLian(pileDetailInfoVO);
equipmentInfo.setConnectorInfos(connectorList);
resultList.add(equipmentInfo);
}
return resultList;
}
/**
* 获取枪口列表
*
* @param pileBasicInfo
* @param stationStatus
* @return
*/
private List<ConnectorInfo> getConnectorList(PileBasicInfo pileBasicInfo , String stationStatus) {
List<ConnectorInfo> resultList = new ArrayList<>();
public List<PileDetailInfoVO> getPileDetailInfoList(String stationId) {
List<PileDetailInfoVO> pileDetailInfoList = pileBasicInfoMapper.getPileDetailInfoList(stationId);
if (CollectionUtils.isEmpty(pileDetailInfoList)) {
return new ArrayList<>();
}
List<String> pileSnList = pileDetailInfoList.stream()
.map(PileDetailInfoVO::getPileSn)
.collect(Collectors.toList());
Map<String, String> pileStatusV2 = pileConnectorInfoService.getPileStatus(pileSnList);
pileDetailInfoList.forEach(pileDetailInfoVO -> {
String pileSn = pileDetailInfoVO.getPileSn();
if (pileStatusV2.containsKey(pileSn)) {
pileDetailInfoVO.setPileStatus(pileStatusV2.get(pileSn));
}
});
return pileDetailInfoList;
}
List<PileConnectorInfo> list = pileConnectorInfoService.selectPileConnectorInfoList(pileBasicInfo.getSn());
public List<ConnectorInfoDTO> getConnectorListForLianLian(PileDetailInfoVO pileDetailInfoVO) {
List<ConnectorInfoDTO> resultList = new ArrayList<>();
List<PileConnectorInfo> list = pileConnectorInfoService.selectPileConnectorInfoList(pileDetailInfoVO.getPileSn());
for (PileConnectorInfo pileConnectorInfo : list) {
ConnectorInfo connectorInfo = new ConnectorInfo();
ConnectorInfoDTO connectorInfo = new ConnectorInfoDTO();
connectorInfo.setConnectorID(pileConnectorInfo.getPileConnectorCode());
connectorInfo.setEquipmentClassification(Constants.one);
String pileSn = pileConnectorInfo.getPileSn();
PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
int connectorType = StringUtils.equals("1", modelInfo.getSpeedType()) ? 4 : 3;
connectorInfo.setEquipmentClassification(1);
int connectorType = StringUtils.equals("1", pileDetailInfoVO.getSpeedType()) ? 4 : 3;
connectorInfo.setConnectorType(connectorType);
// 车位号
if (StringUtils.isNotBlank(pileConnectorInfo.getParkNo())) {
connectorInfo.setParkNo(pileConnectorInfo.getParkNo());
}
connectorInfo.setVoltageUpperLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
connectorInfo.setVoltageLowerLimits(Integer.valueOf(modelInfo.getRatedVoltage()));
connectorInfo.setCurrent(Integer.valueOf(modelInfo.getRatedCurrent()));
connectorInfo.setNationalStandard(2);
// if (!StringUtils.equals(modelInfo.getConnectorNum(), "1")) {
// // 如果不是单枪,则枪口功率需要除以枪口数量
// String ratedPowerStr = modelInfo.getRatedPower();
// BigDecimal ratedPower = new BigDecimal(ratedPowerStr);
// connectorInfo.setPower(ratedPower.divide(new BigDecimal(modelInfo.getConnectorNum()), 1, BigDecimal.ROUND_HALF_UP));
// }else {
// }
connectorInfo.setAuxPower(3);
connectorInfo.setOpreateStatus(Integer.valueOf(stationStatus));
connectorInfo.setPower(new BigDecimal(modelInfo.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
connectorInfo.setVoltageUpperLimits(new BigDecimal(pileDetailInfoVO.getRatedVoltage()).setScale(4, RoundingMode.HALF_UP));
connectorInfo.setVoltageLowerLimits(new BigDecimal(pileDetailInfoVO.getRatedVoltage()).setScale(4, RoundingMode.HALF_UP));
connectorInfo.setCurrent(new BigDecimal(pileDetailInfoVO.getRatedCurrent()).setScale(4, RoundingMode.HALF_UP));
connectorInfo.setPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(4, RoundingMode.HALF_UP));
connectorInfo.setNationalStandard(StringUtils.equals("1", pileDetailInfoVO.getSpeedType()) ? 12 : 11);
connectorInfo.setAuxPower(3); // 3-兼容12V和24V
connectorInfo.setOperateStatus(50); // 50-正常使用
/* if (!StringUtils.equals(pileDetailInfoVO.getConnectorNum(), "1")) {
// 如果不是单枪,则枪口功率需要除以枪口数量
String ratedPowerStr = pileDetailInfoVO.getRatedPower();
BigDecimal ratedPower = new BigDecimal(ratedPowerStr);
connectorInfo.setPower(ratedPower.divide(new BigDecimal(pileDetailInfoVO.getConnectorNum()), 1, BigDecimal.ROUND_HALF_UP));
}else {
connectorInfo.setPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
}*/
resultList.add(connectorInfo);
}
return resultList;
}