update 贵州省平台Service

This commit is contained in:
Lemon
2024-12-20 09:11:48 +08:00
parent d96060da9a
commit 5869e8d5f3
10 changed files with 170 additions and 38 deletions

View File

@@ -54,9 +54,10 @@ public class OrderPileOccupyController extends BaseController {
@PreAuthorize("@ss.hasPermi('pile:occupy:export')")
@Log(title = "占桩订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, OrderPileOccupy orderPileOccupy) {
List<OrderPileOccupy> list = orderPileOccupyService.selectOrderPileOccupyList(orderPileOccupy);
ExcelUtil<OrderPileOccupy> util = new ExcelUtil<OrderPileOccupy>(OrderPileOccupy.class);
public void export(HttpServletResponse response, OrderPileOccupyDTO dto) {
// List<OrderPileOccupy> list = orderPileOccupyService.selectOrderPileOccupyList(orderPileOccupy);
List<OccupyOrderVO> list = orderPileOccupyService.getOrderPileOccupyListWithAuth(dto);
ExcelUtil<OccupyOrderVO> util = new ExcelUtil<>(OccupyOrderVO.class);
util.exportExcel(response, list, "占桩订单数据");
}

View File

@@ -11,7 +11,7 @@ import java.util.Date;
import java.util.List;
/**
* TODO
* 占桩订单DTO
*
* @author Lemon
* @Date 2024/7/15 13:37:04
@@ -47,6 +47,11 @@ public class OrderPileOccupyDTO extends BaseEntity {
*/
private String stationId;
/**
* 站点名称
*/
private String stationName;
/**
* 车牌号码
*/

View File

@@ -4,6 +4,7 @@ import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.dto.IndexQueryDTO;
import com.jsowell.pile.dto.QueryPileDTO;
import com.jsowell.pile.dto.ReplaceMerchantStationDTO;
import com.jsowell.pile.thirdparty.PileDetailInfoVO;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.customer.PersonalPileInfoVO;
import com.jsowell.pile.vo.uniapp.customer.PileConnectorDetailVO;
@@ -169,4 +170,11 @@ public interface PileBasicInfoMapper {
* @return
*/
PileBasicInfo getMaxNumPileInfo();
/**
* 获取桩信息详情列表
* @param stationId
* @return
*/
List<PileDetailInfoVO> getPileDetailInfoList(String stationId);
}

View File

@@ -6,10 +6,7 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.ebike.deviceupload.EBikeMessageCmd20;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.thirdparty.ConnectorInfo;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.thirdparty.ZDLConnectorInfo;
import com.jsowell.pile.thirdparty.ZDLEquipmentInfo;
import com.jsowell.pile.thirdparty.*;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.customer.GroundLockInfoVO;
import com.jsowell.pile.vo.uniapp.customer.PersonalPileInfoVO;
@@ -252,4 +249,6 @@ public interface PileBasicInfoService {
* @param message
*/
void registrationEBikePile(EBikeMessageCmd20 message);
List<PileDetailInfoVO> getPileDetailInfoList(String stationId);
}

View File

@@ -24,13 +24,11 @@ import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.thirdparty.ConnectorInfo;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.thirdparty.ZDLConnectorInfo;
import com.jsowell.pile.thirdparty.ZDLEquipmentInfo;
import com.jsowell.pile.thirdparty.*;
import com.jsowell.pile.transaction.dto.PileTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.customer.GroundLockInfoVO;
@@ -1226,48 +1224,49 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
public List<EquipmentInfo> getPileListForLianLian(String stationId) {
List<EquipmentInfo> resultList = new ArrayList<>();
// 通过站点id查询桩基本信息
List<PileBasicInfo> list = this.getPileListByStationId(stationId);
// List<PileBasicInfo> list = this.getPileListByStationId(stationId);
List<PileDetailInfoVO> list = getPileDetailInfoList(stationId);
// 封装成联联平台对象
for (PileBasicInfo pileBasicInfo : list) {
for (PileDetailInfoVO pileDetailInfoVO : list) {
EquipmentInfo equipmentInfo = new EquipmentInfo();
String pileSn = pileBasicInfo.getSn();
String pileSn = pileDetailInfoVO.getPileSn();
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()));
equipmentInfo.setProductionDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileBasicInfo.getCreateTime()));
equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileDetailInfoVO.getCreateTime()));
equipmentInfo.setProductionDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileDetailInfoVO.getCreateTime()));
PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
if (StringUtils.isBlank(modelInfo.getSpeedType())) {
// PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn);
if (StringUtils.isBlank(pileDetailInfoVO.getSpeedType())) {
continue;
}
equipmentInfo.setEquipmentType(Integer.valueOf(modelInfo.getSpeedType()));
equipmentInfo.setEquipmentModel(modelInfo.getModelName());
equipmentInfo.setEquipmentType(Integer.valueOf(pileDetailInfoVO.getSpeedType()));
equipmentInfo.setEquipmentModel(pileDetailInfoVO.getModelName());
// Map<String, String> pileStatus = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileBasicInfo.getSn()));
Map<String, String> pileStatusMap = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileSn));
String pileStatus = pileStatusMap.get(pileSn);
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.setEquipmentStatus(Integer.valueOf(pileStatus));
equipmentInfo.setEquipmentPower(new BigDecimal(modelInfo.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
// Map<String, String> pileStatusMap = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileSn));
// String pileStatus = pileStatusMap.get(pileSn);
// 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.setEquipmentStatus(Integer.valueOf(pileDetailInfoVO.getPileStatus()));
equipmentInfo.setEquipmentPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
equipmentInfo.setNewNationalStandard(1);
equipmentInfo.setVinFlag(1);
equipmentInfo.setEquipmentName(pileSn);
equipmentInfo.setPower(new BigDecimal(modelInfo.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
equipmentInfo.setPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP));
// 枪口列表
List<ConnectorInfo> connectorList = getConnectorListForLianLian(pileSn);
List<ConnectorInfo> connectorList = getConnectorListForLianLian(pileDetailInfoVO);
equipmentInfo.setConnectorInfos(connectorList);
resultList.add(equipmentInfo);
@@ -1276,6 +1275,25 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
return resultList;
}
@Override
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;
}
/**
* 获取枪口列表
*
@@ -1357,6 +1375,43 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
return resultList;
}
public List<ConnectorInfo> getConnectorListForLianLian(PileDetailInfoVO pileDetailInfoVO) {
List<ConnectorInfo> resultList = new ArrayList<>();
List<PileConnectorInfo> list = pileConnectorInfoService.selectPileConnectorInfoList(pileDetailInfoVO.getPileSn());
for (PileConnectorInfo pileConnectorInfo : list) {
ConnectorInfo connectorInfo = new ConnectorInfo();
connectorInfo.setConnectorID(pileConnectorInfo.getPileConnectorCode());
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(pileDetailInfoVO.getRatedVoltage()));
connectorInfo.setEquipmentClassification(1);
connectorInfo.setVoltageLowerLimits(Integer.valueOf(pileDetailInfoVO.getRatedVoltage()));
connectorInfo.setCurrent(Integer.valueOf(pileDetailInfoVO.getRatedCurrent()));
connectorInfo.setConnectorName(pileConnectorInfo.getPileConnectorCode());
connectorInfo.setOperateStatus(50); // 50-正常使用
connectorInfo.setOpreateStatus(50); // 50-正常使用
connectorInfo.setNationalStandard(2); // 2-2015
connectorInfo.setAuxPower(3); // 3-兼容12V和24V
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;
}
@Override
public List<ZDLEquipmentInfo> getPileListForZDL(String stationId) {
List<ZDLEquipmentInfo> resultList = new ArrayList<>();

View File

@@ -0,0 +1,33 @@
package com.jsowell.pile.thirdparty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 第三方平台桩信息VO
*
* @author Lemon
* @Date 2024/12/19 14:41:52
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PileDetailInfoVO {
private String pileSn;
private Date createTime;
private String speedType;
private String modelName;
private String ratedPower;
private String ratedVoltage;
private String ratedCurrent;
private String connectorNum;
private String pileStatus;
}

View File

@@ -1015,6 +1015,7 @@
<if test="dto.occupyCode != null and dto.occupyCode != ''"> and t1.occupy_code = #{dto.occupyCode}</if>
<if test="dto.memberId != null and dto.memberId != ''"> and t1.member_id = #{dto.memberId}</if>
<if test="dto.stationId != null and dto.stationId != ''"> and t1.station_id = #{dto.stationId}</if>
<if test="dto.stationName != null and dto.stationName != ''"> and t2.station_name = #{dto.stationName}</if>
<if test="dto.plateNumber != null and dto.plateNumber != ''"> and t1.plate_number = #{dto.plateNumber}</if>
<if test="dto.status != null and dto.status != ''"> and t1.status = #{dto.status}</if>
<if test="dto.payStatus != null and dto.payStatus != ''"> and t1.pay_status = #{dto.payStatus}</if>

View File

@@ -456,4 +456,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
t1.del_flag = '0'
and t1.sn = #{pileSn,jdbcType=VARCHAR}
</select>
<select id="getPileDetailInfoList" resultType="com.jsowell.pile.thirdparty.PileDetailInfoVO">
SELECT
t1.sn AS pileSn,
t1.model_id AS modelId,
t2.model_name AS modelName,
t2.rated_power AS ratedPower,
t2.rated_voltage as ratedVoltage,
t2.rated_current as ratedCurrent,
t2.connector_num as connectorNum,
t2.speed_type AS speedType,
t1.create_time AS createTime
FROM
pile_basic_info t1
JOIN pile_model_info t2 ON t1.model_id = t2.id
WHERE
t1.station_id = #{stationId,jdbcType=VARCHAR}
</select>
</mapper>

View File

@@ -222,9 +222,10 @@ public class GuiZhouPlatformServiceImpl 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);
PageUtils.startPage(pageNo, pageSize);
List<ThirdPartyStationInfoVO> stationInfos = pileStationInfoService.getStationInfosByThirdParty(dto);
List<ThirdPartyStationInfoVO> stationInfos = pileStationInfoService.selectStationInfosByThirdParty(dto);
if (CollectionUtils.isEmpty(stationInfos)) {
// 未查到数据
return null;
@@ -291,6 +292,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService {
String areaCodeCountryside = "123456789101";
info.setAreaCodeCountryside(areaCodeCountryside);
}
info.setAreaCodeCountryside("123456789101");
resultList.add(info);
}
@@ -299,6 +301,7 @@ public class GuiZhouPlatformServiceImpl implements ThirdPartyPlatformService {
map.put("PageCount", pageInfo.getPages());
map.put("ItemSize", pageInfo.getTotal());
map.put("StationInfos", resultList);
logger.info("贵州省平台查询站点信息 resultData:{}", JSON.toJSONString(map));
Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMapV2(map, thirdPartySecretInfoVO.getOurDataSecret(),
thirdPartySecretInfoVO.getOurDataSecretIv(), thirdPartySecretInfoVO.getTheirSigSecret());
return resultMap;

View File

@@ -14,6 +14,14 @@
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="站点名称" prop="stationName">
<el-input
v-model="queryParams.stationName"
placeholder="请输入站点名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="充电站id" prop="stationId">-->
<!-- <el-input v-model="queryParams.stationId" placeholder="请输入充电站id" clearable @keyup.enter.native="handleQuery" />-->
<!-- </el-form-item>-->
@@ -228,6 +236,7 @@ export default {
status: null,
memberId: null,
stationId: null,
stationName: null,
orderCode: null,
transactionCode: null,
startTime: null,