新增 运营端小程序查询枪口信息列表接口

This commit is contained in:
Lemon
2024-08-28 16:15:43 +08:00
parent 653ace40e6
commit 702820e0b4
4 changed files with 122 additions and 13 deletions

View File

@@ -0,0 +1,50 @@
package com.jsowell.api.uniapp.business;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.ImmutableMap;
import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.response.RestApiResponse;
import com.jsowell.pile.dto.business.QueryConnectorInfoDTO;
import com.jsowell.pile.service.PileConnectorInfoService;
import com.jsowell.pile.vo.uniapp.business.BusinessConnectorInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 运营端小程序枪口信息相关controller
*
* @author Lemon
* @Date 2024/8/27 16:04:31
*/
@RestController
@RequestMapping("/business/pile/connector")
public class BusinessConnectorInfoController extends BaseController {
@Autowired
private PileConnectorInfoService pileConnectorInfoService;
/**
* 获取枪口信息列表
* @param dto
* @return
*/
@PostMapping("/getBusinessConnectorInfoList")
public RestApiResponse<?> getBusinessConnectorInfoList(@RequestBody QueryConnectorInfoDTO dto) {
RestApiResponse<?> response = null;
try {
BusinessConnectorInfoVO connectorInfoVO = pileConnectorInfoService.getConnectorListByStationAndStatus(dto);
response = new RestApiResponse<>(ImmutableMap.of("ConnectorInfoVO", connectorInfoVO));
} catch (Exception e) {
logger.error("获取枪口信息列表 error", e);
response = new RestApiResponse<>(e);
}
logger.info("获取枪口信息列表 params:{}, result:{}", JSONObject.toJSONString(dto), response);
return response;
}
}

View File

@@ -7,6 +7,7 @@ import com.jsowell.pile.dto.QueryConnectorListDTO;
import com.jsowell.pile.dto.UpdateConnectorParkNoDTO;
import com.jsowell.pile.dto.business.QueryConnectorInfoDTO;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessConnectorInfoVO;
import com.jsowell.pile.vo.web.PileConnectorInfoVO;
import java.util.List;
@@ -141,5 +142,5 @@ public interface PileConnectorInfoService {
/**
* 通过站点id和枪口状态查询枪口列表
*/
void getConnectorListByStationAndStatus(QueryConnectorInfoDTO dto);
BusinessConnectorInfoVO getConnectorListByStationAndStatus(QueryConnectorInfoDTO dto);
}

View File

@@ -27,6 +27,7 @@ import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.mapper.PileConnectorInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessConnectorInfoVO;
import com.jsowell.pile.vo.web.PileConnectorInfoVO;
import com.jsowell.pile.vo.web.PileDetailVO;
import com.jsowell.pile.vo.web.PileModelInfoVO;
@@ -772,29 +773,84 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
}
/**
* 批量获取枪口状态
* 批量获取某状态的枪口数量
* @param pileConnectorCodeList
* @return
*/
private Map<String, String> getConnectorStatus(List<String> pileConnectorCodeList) {
private Map<String, Integer> getConnectorStatus(List<String> pileConnectorCodeList) {
List<PileConnectorInfo> pileConnectorInfos = pileConnectorInfoMapper.getConnectorStatus(pileConnectorCodeList);
int offlineNum = Constants.zero;
int freeNum = Constants.zero;
int occupiedNum = Constants.zero;
int chargingNum = Constants.zero;
int faultNum = Constants.zero;
for (PileConnectorInfo pileConnectorInfo : pileConnectorInfos) {
String status = pileConnectorInfo.getStatus();
if (StringUtils.equals(status, PileConnectorDataBaseStatusEnum.OFF_NETWORK.getValue())) {
// 离网
offlineNum += 1;
}
if (StringUtils.equals(status, PileConnectorDataBaseStatusEnum.FREE.getValue())) {
// 空闲
freeNum += 1;
}
if (StringUtils.equals(status, PileConnectorDataBaseStatusEnum.OCCUPIED_NOT_CHARGED.getValue())) {
// 占用未充电
occupiedNum += 1;
}
if (StringUtils.equals(status, PileConnectorDataBaseStatusEnum.OCCUPIED_CHARGING.getValue())) {
// 充电中
chargingNum += 1;
}
if (StringUtils.equals(status, PileConnectorDataBaseStatusEnum.FAULT.getValue())) {
// 故障
faultNum += 1;
}
}
return null;
Map<String, Integer> map = new LinkedHashMap<>();
map.put("offlineNum", offlineNum);
map.put("freeNum", freeNum);
map.put("occupiedNum", occupiedNum);
map.put("chargingNum", chargingNum);
map.put("faultNum", faultNum);
return map;
}
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 后管小程序 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
/**
* 查询站点枪口列表
* @param dto
* @return
*/
@Override
public void getConnectorListByStationAndStatus(QueryConnectorInfoDTO dto) {
public BusinessConnectorInfoVO getConnectorListByStationAndStatus(QueryConnectorInfoDTO dto) {
String stationId = dto.getStationId();
String connectorStatus = dto.getConnectorStatus();
int pageNum = dto.getPageNum();
int pageSize = dto.getPageSize();
BusinessConnectorInfoVO vo = new BusinessConnectorInfoVO();
// 根据站点id查询枪口列表(有缓存)
List<ConnectorInfoVO> uniAppConnectorList = getUniAppConnectorList(Long.parseLong(stationId));
// 筛选出枪口编号
List<String> pileConnectorCodeList = uniAppConnectorList.stream()
.map(ConnectorInfoVO::getPileConnectorCode)
.collect(Collectors.toList());
// 批量获取某状态的枪口数量
Map<String, Integer> connectorStatusNumMap = getConnectorStatus(pileConnectorCodeList);
Integer offlineNum = connectorStatusNumMap.get("offlineNum");
Integer freeNum = connectorStatusNumMap.get("freeNum");
Integer occupiedNum = connectorStatusNumMap.get("occupiedNum");
Integer chargingNum = connectorStatusNumMap.get("chargingNum");
Integer faultNum = connectorStatusNumMap.get("faultNum");
vo.setConnectorNum(pileConnectorCodeList.size());
vo.setOfflineConnectorNum(offlineNum);
vo.setFreeConnectorNum(freeNum);
vo.setOccupiedConnectorNum(occupiedNum);
vo.setChargingConnectorNum(chargingNum);
vo.setFaultConnectorNum(faultNum);
// 根据站点id和枪口状态查询枪口列表
QueryConnectorListDTO queryConnectorListDTO = QueryConnectorListDTO.builder()
@@ -810,5 +866,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
.collect(Collectors.toList());
}
vo.setPileConnectorInfoVOList(pileConnectorInfoVOList);
return vo;
}
}

View File

@@ -32,37 +32,37 @@ public class BusinessConnectorInfoVO {
/**
* 总枪口数量
*/
private String connectorNum;
private Integer connectorNum;
/**
* 充电中枪口数量
*/
private String chargingConnectorNum;
private Integer chargingConnectorNum;
/**
* 空闲枪口数量
*/
private String freeConnectorNum;
private Integer freeConnectorNum;
/**
* 挂起枪口数量
*/
private String hangingConnectorNum;
private Integer hangingConnectorNum;
/**
* 占用中枪口数量
*/
private String occupiedConnectorNum;
private Integer occupiedConnectorNum;
/**
* 离线枪口数量
*/
private String offlineConnectorNum;
private Integer offlineConnectorNum;
/**
* 故障枪口数量
*/
private String faultConnectorNum;
private Integer faultConnectorNum;
private List<PileConnectorInfoVO> pileConnectorInfoVOList;
}