diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java index 71bf9989b..a281b4d7f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java @@ -10,16 +10,16 @@ import com.jsowell.common.response.RestApiResponse; import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand; import com.jsowell.pile.dto.QueryConnectorListDTO; import com.jsowell.pile.dto.QueryStationDTO; +import com.jsowell.pile.service.IPileBasicInfoService; import com.jsowell.pile.service.IPileConnectorInfoService; import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.YKCPushCommandService; +import com.jsowell.pile.vo.uniapp.GroundLockInfoVO; 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 org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * 充电桩相关接口 @@ -40,6 +40,8 @@ public class PileController extends BaseController { @Autowired private IPileConnectorInfoService pileConnectorInfoService; + @Autowired + private IPileBasicInfoService pileBasicInfoService; /** @@ -128,4 +130,24 @@ public class PileController extends BaseController { return response; } + /** + * 获取地锁列表信息 + * @param stationId + * @return + */ + @GetMapping("/getGroundLockInfo/{stationId}") + public RestApiResponse getGroundLockInfo(@PathVariable("stationId") String stationId) { + logger.info("获取地锁列表信息 params:{}", stationId); + RestApiResponse response = null; + try { + List list = pileBasicInfoService.getGroundLockInfo(stationId); + response = new RestApiResponse<>(list); + } catch (Exception e) { + logger.error("获取地锁列表信息 error, ", e); + response = new RestApiResponse<>(e); + } + logger.info("获取地锁列表信息 result:{}", response); + return response; + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBasicInfoService.java index 3fd212556..5b1504579 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBasicInfoService.java @@ -6,6 +6,7 @@ import com.jsowell.pile.dto.IndexQueryDTO; import com.jsowell.pile.dto.QueryPileDTO; import com.jsowell.pile.dto.ReplaceMerchantStationDTO; import com.jsowell.pile.vo.base.PileInfoVO; +import com.jsowell.pile.vo.uniapp.GroundLockInfoVO; import com.jsowell.pile.vo.uniapp.PersonalPileInfoVO; import com.jsowell.pile.vo.uniapp.PileConnectorDetailVO; import com.jsowell.pile.vo.web.IndexGeneralSituationVO; @@ -169,4 +170,11 @@ public interface IPileBasicInfoService { * 批量修改充电桩运营商 */ void updatePileMerchantBatch(List pileIdList, String newMerchantId); + + /** + * 获取地锁信息 + * @param stationId + * @return + */ + List getGroundLockInfo(String stationId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 9f5748a70..5ec76e89b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; 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.redis.RedisCache; @@ -34,16 +35,15 @@ import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.SimCardService; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; +import com.jsowell.pile.vo.uniapp.GroundLockInfoVO; import com.jsowell.pile.vo.uniapp.PersonalPileInfoVO; import com.jsowell.pile.vo.uniapp.PileConnectorDetailVO; -import com.jsowell.pile.vo.web.IndexGeneralSituationVO; -import com.jsowell.pile.vo.web.PileDetailVO; -import com.jsowell.pile.vo.web.PileModelInfoVO; -import com.jsowell.pile.vo.web.SimCardVO; +import com.jsowell.pile.vo.web.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cglib.beans.BulkBean; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; @@ -705,4 +705,53 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { } pileBasicInfoMapper.updatePileMerchantBatch(pileIdList, newMerchantId); } + + /** + * 获取地锁信息 + * @param stationId + * @return + */ + @Override + public List getGroundLockInfo(String stationId) { + List resultList = new ArrayList<>(); + GroundLockInfoVO vo = null; + GroundLockInfoVO.LockInfo lockInfo = null; + List lockInfoList = new ArrayList<>(); + // 根据站点id查出该站点下所有桩(区分单双枪) + List connectorInfoVOList = pileConnectorInfoService.selectConnectorListByStationId(Long.parseLong(stationId)); + // 根据pileSn分组 + Map> collect = connectorInfoVOList.stream().collect(Collectors.groupingBy(PileConnectorInfoVO::getPileSn)); + for (Map.Entry> entry : collect.entrySet()) { + vo = new GroundLockInfoVO(); + String pileSn = entry.getKey(); + List list = entry.getValue(); + for (PileConnectorInfoVO pileConnectorInfoVO : list) { + // 查地锁缓存状态,有缓存说明有地锁信息 + String redisKey = CacheConstants.GROUND_LOCK_DATA + pileConnectorInfoVO.getPileConnectorCode(); + GroundLockData data = redisCache.getCacheObject(redisKey); + if (Objects.isNull(data)) { + continue; + } + String parkingLockStatus = data.getParkingLockStatus(); + if (StringUtils.equals(parkingLockStatus, "FF")) { + // 降锁状态 + parkingLockStatus = "降锁"; + }else if (StringUtils.equals(parkingLockStatus, "55")) { + // 升锁状态 + parkingLockStatus = "升锁"; + } + lockInfo = GroundLockInfoVO.LockInfo.builder() + .connectorCode(pileConnectorInfoVO.getPileConnectorCode()) + .lockStatus(parkingLockStatus) + .parkingStatus(data.getParkingStatus()) + .build(); + lockInfoList.add(lockInfo); + } + vo.setPileSn(pileSn); + vo.setLockInfos(lockInfoList); + + resultList.add(vo); + } + return resultList; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/GroundLockInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/GroundLockInfoVO.java new file mode 100644 index 000000000..d8a8cf164 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/GroundLockInfoVO.java @@ -0,0 +1,51 @@ +package com.jsowell.pile.vo.uniapp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 地锁信息VO + * + * @author Lemon + * @Date 2023/8/5 10:57 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class GroundLockInfoVO { + /** + * 桩编号 + */ + private String pileSn; + + /** + * 地锁List + */ + private List lockInfos; + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class LockInfo { + /** + * 枪口号 + */ + private String connectorCode; + + /** + * 地锁状态 + */ + private String lockStatus; + + /** + * 车位状态 + */ + private String parkingStatus; + } +}