From 8e04dca496c50b287934e506563bffb30b94d43f Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Thu, 24 Apr 2025 18:39:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9C=E9=81=A5=E8=BD=A6=E8=BE=86=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/robot/RemoteRobotController.java | 10 +- .../admin/robot/dto/PositionMapRespDTO.java | 3 + .../admin/task/RemoteTaskController.java | 2 +- .../service/robot/RemoteRobotService.java | 6 + .../service/robot/RemoteRobotServiceImpl.java | 5 + .../system/api/remote/RemoteRobotApi.java | 6 +- .../system/api/remote/dto/RemoteRobotDTO.java | 14 +- .../api/remote/dto/RemoteRobotDetailDTO.java | 4 +- .../system/api/remote/RemoteRobotApiImpl.java | 8 ++ .../positionmap/PositionMapServiceImpl.java | 127 +++++++++--------- .../robot/RobotInformationService.java | 7 + .../robot/RobotInformationServiceImpl.java | 6 + 12 files changed, 116 insertions(+), 82 deletions(-) diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/RemoteRobotController.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/RemoteRobotController.java index bd42c419c..3c422b049 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/RemoteRobotController.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/RemoteRobotController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.List; +import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -31,7 +32,7 @@ public class RemoteRobotController { @PostMapping("/getAreaRobot") @Operation(summary = "获取地图区域对应的机器人信息") - public CommonResult> getAreaRobot(@RequestBody PositionMapRespDTO positionMapRespDTO) { + public CommonResult> getAreaRobot(@Valid @RequestBody PositionMapRespDTO positionMapRespDTO) { List list = remoteRobotService.remoteGetAreaRobot(positionMapRespDTO); return success(list); } @@ -78,5 +79,12 @@ public class RemoteRobotController { return success(true); } + @GetMapping("/getMap") + @Operation(summary = "获得仓库点位地图Map") + @PreAuthorize("@ss.hasPermission('system:position-map:getMap')") + public CommonResult getPositionMapList() { + Object result = remoteRobotService.getPositionMapList(); + return success(result); + } } diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/dto/PositionMapRespDTO.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/dto/PositionMapRespDTO.java index 19ca3f816..40b080e26 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/dto/PositionMapRespDTO.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/robot/dto/PositionMapRespDTO.java @@ -3,8 +3,11 @@ package cn.iocoder.yudao.module.remote.controller.admin.robot.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import javax.validation.constraints.NotNull; + @Data public class PositionMapRespDTO { @Schema(description = "地图id") + @NotNull(message = "请输入地图id") private Long id; } diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/task/RemoteTaskController.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/task/RemoteTaskController.java index f24176534..7ad5b0d89 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/task/RemoteTaskController.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/controller/admin/task/RemoteTaskController.java @@ -21,7 +21,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -@Tag(name = "管理后台 - 远遥任务") +@Tag(name = "管理后台 - 异常车辆列表") @RestController @RequestMapping("/remote/task") @Validated diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotService.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotService.java index 1e9bdf6f8..92ef584ce 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotService.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotService.java @@ -50,4 +50,10 @@ public interface RemoteRobotService { * @return */ void robotChangeMode( RemoteRobotChangeModeDTO data,HttpServletRequest request); + + /** + * 查询地图 + * @return + */ + Object getPositionMapList(); } diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java index 83e22d643..0c6c417c6 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java @@ -97,4 +97,9 @@ public class RemoteRobotServiceImpl implements RemoteRobotService{ throw exception0(TASK_COMMONG_FAIL.getCode(), result.getMsg()); } } + + @Override + public Object getPositionMapList() { + return remoteRobotApi.getRemotePositionMapList(); + } } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java index 2d8085832..e6b5ec4a6 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java @@ -20,7 +20,7 @@ public interface RemoteRobotApi { @PostMapping(PREFIX + "/remoteGetAreaRobot") @Operation(summary = "获取地图区域对应的机器人信息") - List remoteGetAreaRobot(@RequestParam(value = "mapId", defaultValue = "-1") Long mapId); + List remoteGetAreaRobot(@RequestParam(value = "mapId") Long mapId); @PostMapping(PREFIX + "/remoteEmergencyStopOrRecovery") @Operation(summary = "一键急停or一键恢复地图上所有AGV") @@ -43,4 +43,8 @@ public interface RemoteRobotApi { CommonResult robotChangeMode(@RequestParam(value = "remoteMode") Integer remoteMode, @RequestParam(value = "ip") String ip, @RequestParam(value = "robotNo") String robotNo); + + @PostMapping(PREFIX + "/getRemotePositionMapList") + @Operation(summary = "远遥查询地图") + Object getRemotePositionMapList(); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDTO.java index 1b374e459..3873cabfc 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDTO.java @@ -10,17 +10,11 @@ import java.util.List; @NoArgsConstructor public class RemoteRobotDTO { - @Schema(description = "地图id") - private Long id; + @Schema(description = "远遥模式(0:自动模式, 1:手动模式, 2:自由模式)") + private Integer remoteMode = 0; - @Schema(description = "楼层") - private Integer floor; - - @Schema(description = "区域") - private String area; - - @Schema(description = "地图是否暂停(0:暂停, 1:没暂停)") - private Integer isStop = 1; + @Schema(description = "车辆数量") + private Integer robotQuantity = 0; @Schema(description = "车辆明细") private List robotList; diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDetailDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDetailDTO.java index 3a9a440bc..b8fde29e1 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDetailDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotDetailDTO.java @@ -12,7 +12,7 @@ public class RemoteRobotDetailDTO { @Schema(description = "上传图片附件", example = "https://www.iocoder.cn") private String url; - @Schema(description = "任务模式(0:拒收任务、1:正常)", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "任务模式(0:锁定、1:正常)", requiredMode = Schema.RequiredMode.REQUIRED) private Integer robotTaskModel; @Schema(description = "车辆状态(2:任务中、3:待命、4:充电中)") @@ -21,6 +21,6 @@ public class RemoteRobotDetailDTO { @Schema(description = "任务号") private String taskNo; - @Schema(description = "远遥模式(0:自动模式, 1:手动模式, 2:自由模式)") + @Schema(description = "车辆模式(0:自动模式, 1:手动模式, 2:自由模式)") private Integer remoteMode = 0; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java index e868429cd..9d5276e0c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.api.remote; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotStatusDTO; +import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapDTO; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapService; import cn.iocoder.yudao.module.system.service.remote.RemoteControllerInformationService; import cn.iocoder.yudao.module.system.service.robot.mapstop.RobotMapStopService; @@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; +import java.util.Map; @Slf4j @RestController // 提供 RESTful API 接口,给 Feign 调用 @@ -98,5 +100,11 @@ public class RemoteRobotApiImpl implements RemoteRobotApi { return CommonResult.success(true); } + @Override + public Object getRemotePositionMapList() { + Map> result = positionMapService.getPositionMapList(); + return result; + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java index 1b833122b..f1682078e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java @@ -24,6 +24,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotMapStopDO; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper; import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum; import cn.iocoder.yudao.module.system.enums.robot.RobotStatusEnum; +import cn.iocoder.yudao.module.system.enums.robot.remote.RemoteModeEnum; import cn.iocoder.yudao.module.system.enums.robot.task.RobotCommandTypeEnum; import cn.iocoder.yudao.module.system.service.log.UserOperationLogService; import cn.iocoder.yudao.module.system.service.remote.RemoteControllerInformationService; @@ -344,7 +345,7 @@ public class PositionMapServiceImpl extends ServiceImpl getAllMap() { return positionMapMapper.selectList(new LambdaQueryWrapperX().orderByDesc(PositionMapDO::getId)); @@ -446,9 +446,16 @@ public class PositionMapServiceImpl extends ServiceImpl getRemoteAreaRobotByMapId(Long mapId) { - List allRobot = informationService.getAllRobot(); + PositionMapDO positionMapDO = positionMapMapper.selectById(mapId); + List robotNos = + informationService.getRobotByFloorAndArea(String.valueOf(positionMapDO.getFloor()), positionMapDO.getArea()); + if (ObjectUtil.isEmpty(robotNos)) { + return new ArrayList<>(); + } + + List allRobot = informationService.getRobotInformationByRobotNos(robotNos); + List robotDoingTask = taskDetailService.getRobotDoingTaskNo(); - List robotMapStops = mapStopService.getAllRobotMapStops(ZeroOneEnum.ZERO.getType()); List remoteControllerInformations = controllerInformationService.getAllRemoteController(); @@ -463,79 +470,65 @@ public class PositionMapServiceImpl extends ServiceImpl stopMapIds = null; - if (ObjectUtil.isNotEmpty(robotMapStops)) { - stopMapIds = robotMapStops.stream().map(RobotMapStopDO::getPositionMapId).collect(Collectors.toList()); - } - Map remoteMap = null; if (ObjectUtil.isNotEmpty(remoteControllerInformations)) { remoteMap = remoteControllerInformations.stream().collect(Collectors.toMap(RemoteControllerInformationDO::getRobotNo, Function.identity())); } - if (ObjectUtil.isEmpty(mapId) || mapId < 0) { - List allMap = positionMapMapper.selectList(new LambdaQueryWrapperX().orderByDesc(PositionMapDO::getFloor)); - if (ObjectUtil.isEmpty(allMap)) { - return new ArrayList<>(); - } - return getRemoteAllMapInfomation(allMap, robotMap, robotDoingTaskMap, stopMapIds, remoteMap); - } else { - PositionMapDO positionMapDO = positionMapMapper.selectById(mapId); - RemoteRobotDTO remoteRobot = getRemoteSingleMapInfomation(positionMapDO, robotMap, - robotDoingTaskMap, stopMapIds, - remoteMap); - return Collections.singletonList(remoteRobot); - } + return getRemoteSingleMapInfomation(robotMap, robotNos, + robotDoingTaskMap, + remoteMap); } - private List getRemoteAllMapInfomation(List allMap, Map robotMap, - Map robotDoingTaskMap, List stopMapIds, - Map remoteMap) { - List remoteRobotList = new ArrayList<>(); - for (PositionMapDO positionMapDO : allMap) { - RemoteRobotDTO remoteRobotDTO = getRemoteSingleMapInfomation(positionMapDO, robotMap, robotDoingTaskMap, stopMapIds, remoteMap); - remoteRobotList.add(remoteRobotDTO); - } - return remoteRobotList; - } - - private RemoteRobotDTO getRemoteSingleMapInfomation(PositionMapDO positionMapDO, Map robotMap, - Map robotDoingTaskMap, List stopMapIds, + private List getRemoteSingleMapInfomation(Map robotMap, List robotNos, + Map robotDoingTaskMap, Map remoteMap) { - List robotNos = - informationService.getRobotByFloorAndArea(String.valueOf(positionMapDO.getFloor()), positionMapDO.getArea()); - RemoteRobotDTO remoteRobotDTO = new RemoteRobotDTO(); - remoteRobotDTO.setId(positionMapDO.getId()); - remoteRobotDTO.setFloor(positionMapDO.getFloor()); - remoteRobotDTO.setArea(positionMapDO.getArea()); - if (ObjectUtil.isNotEmpty(robotNos) && ObjectUtil.isNotEmpty(robotMap)) { - List robotList = new ArrayList<>(); - for (String robotNo : robotNos) { - RobotInformationDO robotInformation = robotMap.get(robotNo); - if (ObjectUtil.isEmpty(robotInformation)) { - continue; - } - RemoteRobotDetailDTO remoteRobotDetail = BeanUtils.toBean(robotInformation, RemoteRobotDetailDTO.class); - if (ObjectUtil.isNotEmpty(robotDoingTaskMap) && ObjectUtil.isNotEmpty(robotDoingTaskMap.get(robotNo))) { - remoteRobotDetail.setTaskNo(robotDoingTaskMap.get(robotNo).getTaskNo()); - } else if (RobotStatusEnum.DOING.getType().equals(robotInformation.getRobotStatus())) { - remoteRobotDetail.setTaskNo("车辆正在做移动任务"); - } else if (RobotStatusEnum.CHARGE.getType().equals(robotInformation.getRobotStatus())) { - remoteRobotDetail.setTaskNo("车辆正在做充电任务"); - } + RemoteRobotDTO automatic = new RemoteRobotDTO(); + RemoteRobotDTO handMovement = new RemoteRobotDTO(); + RemoteRobotDTO free = new RemoteRobotDTO(); + List automaticDetail = new ArrayList<>(); + List handMovementDetail = new ArrayList<>(); + List freeDetail = new ArrayList<>(); - if (ObjectUtil.isNotEmpty(remoteMap) && ObjectUtil.isNotEmpty(remoteMap.get(robotNo))) { - remoteRobotDetail.setRemoteMode(remoteMap.get(robotNo).getRemoteMode()); - } - robotList.add(remoteRobotDetail); + for (String robotNo : robotNos) { + RobotInformationDO robotInformation = robotMap.get(robotNo); + if (ObjectUtil.isEmpty(robotInformation)) { + continue; + } + RemoteRobotDetailDTO remoteRobotDetail = BeanUtils.toBean(robotInformation, RemoteRobotDetailDTO.class); + if (ObjectUtil.isNotEmpty(robotDoingTaskMap) && ObjectUtil.isNotEmpty(robotDoingTaskMap.get(robotNo))) { + remoteRobotDetail.setTaskNo(robotDoingTaskMap.get(robotNo).getTaskNo()); + } else if (RobotStatusEnum.DOING.getType().equals(robotInformation.getRobotStatus())) { + remoteRobotDetail.setTaskNo("车辆正在做移动任务"); + } else if (RobotStatusEnum.CHARGE.getType().equals(robotInformation.getRobotStatus())) { + remoteRobotDetail.setTaskNo("车辆正在做充电任务"); + } + + if (ObjectUtil.isNotEmpty(remoteMap) && ObjectUtil.isNotEmpty(remoteMap.get(robotNo))) { + remoteRobotDetail.setRemoteMode(remoteMap.get(robotNo).getRemoteMode()); + } + + if (RemoteModeEnum.AUTOMATIC.getType().equals(remoteRobotDetail.getRemoteMode())) { + automaticDetail.add(remoteRobotDetail); + }else if (RemoteModeEnum.HAND_MOVEMENT.getType().equals(remoteRobotDetail.getRemoteMode())) { + handMovementDetail.add(remoteRobotDetail); + }else { + freeDetail.add(remoteRobotDetail); } - remoteRobotDTO.setRobotList(robotList); } - if (ObjectUtil.isNotEmpty(stopMapIds) && stopMapIds.contains(positionMapDO.getId())) { - remoteRobotDTO.setIsStop(ZeroOneEnum.ZERO.getType()); - } + automatic.setRemoteMode(RemoteModeEnum.AUTOMATIC.getType()); + automatic.setRobotQuantity(automaticDetail.size()); + automatic.setRobotList(automaticDetail); - return remoteRobotDTO; + handMovement.setRemoteMode(RemoteModeEnum.HAND_MOVEMENT.getType()); + handMovement.setRobotQuantity(handMovementDetail.size()); + handMovement.setRobotList(handMovementDetail); + + free.setRemoteMode(RemoteModeEnum.FREE.getType()); + free.setRobotQuantity(freeDetail.size()); + free.setRobotList(freeDetail); + + return Arrays.asList(automatic,handMovement,free); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationService.java index bab180b4c..8b9a9a228 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationService.java @@ -199,4 +199,11 @@ public interface RobotInformationService extends IService { * @return */ Boolean checkRobotElectricity(RobotInformationDO information, CommonConfigDO commonConfig); + + /** + * 根据车辆编号查询 + * @param robotNos + * @return + */ + List getRobotInformationByRobotNos(List robotNos); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index bb523719c..90e54394c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -1392,6 +1392,12 @@ public class RobotInformationServiceImpl extends ServiceImpl getRobotInformationByRobotNos(List robotNos) { + return informationMapper.selectList(new LambdaQueryWrapperX() + .in(RobotInformationDO::getRobotNo, robotNos)); + } + private Boolean checkElectricity(CommonConfigVO chargeConfig, RobotInformationDO robot, RobotStatusDataPoseDTO dataPoseDTO) { String chargeModelKey = RobotTaskChcheConstant.ROBOT_CHARGE_MODEL + robot.getRobotNo(); Object chargeModelCache = redisUtil.get(chargeModelKey);