From 12eb16047c6acedc54a188b5783316a30c9535c0 Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Thu, 13 Feb 2025 09:48:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=95=B0=E9=87=8F=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DeviceInformationController.java | 7 +++ .../dto/StatisticsInformationDTO.java | 13 +++++ .../vo/DeviceInformationPageReqVO.java | 1 + .../vo/DeviceInformationRespVO.java | 1 + .../vo/DeviceInformationSaveReqVO.java | 1 + .../information/DeviceInformationDO.java | 1 + .../enums/config/CommandConfigTypeEnum.java | 3 +- .../system/enums/device/DeviceTypeEnum.java | 2 +- .../enums/device/PictureConfigEnum.java | 22 +++++++++ .../information/DeviceInformationService.java | 8 ++++ .../DeviceInformationServiceImpl.java | 47 +++++++++++++++++++ .../robot/job/AutoChargeServiceImpl.java | 2 +- .../robot/job/DistributeTasksServiceImpl.java | 2 +- 13 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/StatisticsInformationDTO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/PictureConfigEnum.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java index 07f0a052b..ee9f6a2d5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.information; import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.StatisticsInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationRespVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; @@ -116,4 +117,10 @@ public class DeviceInformationController { return success(map); } + @GetMapping("/deviceNumber") + @Operation(summary = "统计设备数量") + public CommonResult> getDeviceNumber() { + List list = informationService.getDeviceNumber(); + return success(list); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/StatisticsInformationDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/StatisticsInformationDTO.java new file mode 100644 index 000000000..9081f837a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/StatisticsInformationDTO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.system.controller.admin.information.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class StatisticsInformationDTO { + @Schema(description = "设备类型 字典device_type", example = "2") + private Integer deviceType; + + @Schema(description = "设备数量", example = "2") + private Integer number = 0; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java index 453426995..5c4ca5422 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java @@ -35,6 +35,7 @@ public class DeviceInformationPageReqVO extends PageParam { @Schema(description = "深度") private BigDecimal locationDeep; + //1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 @Schema(description = "设备类型 字典device_type", example = "2") private Integer deviceType; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java index cc02f8881..0ef43f647 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java @@ -42,6 +42,7 @@ public class DeviceInformationRespVO { @ExcelProperty("深度") private BigDecimal locationDeep; + //1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 @Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty("设备类型 字典device_type") private Integer deviceType; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java index f81619bb6..27e004fab 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java @@ -35,6 +35,7 @@ public class DeviceInformationSaveReqVO { @Schema(description = "深度") private BigDecimal locationDeep; + //1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 @Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "设备类型不能为空") private Integer deviceType; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java index 8473da89d..98f0f7e22 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java @@ -59,6 +59,7 @@ public class DeviceInformationDO extends BaseDO { */ private BigDecimal locationDeep; /** + * 1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 * 设备类型 字典device_type */ private Integer deviceType; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java index 2ad527d95..dd9490e21 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java @@ -10,9 +10,10 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum CommandConfigTypeEnum { - ONE(1); //充电设置(页面) + CHARG_CONFIG(1,"充电设置(页面)"); /** * 类型 */ private final Integer type; + private final String msg; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/DeviceTypeEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/DeviceTypeEnum.java index 3c883bcaf..3a59f7e29 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/DeviceTypeEnum.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/DeviceTypeEnum.java @@ -8,7 +8,7 @@ import lombok.Getter; public enum DeviceTypeEnum { CHARGING_STATION(1, "充电桩"), - Conveyor_line(2, "输送线"), + CONVEYOR_LINE(2, "输送线"), PALLETIZER(3, "码垛机"), AUTOMATIC_DOOR(4, "自动门"), HOIST(5, "提升机"), diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/PictureConfigEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/PictureConfigEnum.java new file mode 100644 index 000000000..aeb36f7a0 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/device/PictureConfigEnum.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.system.enums.device; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum PictureConfigEnum { + + DEFAULT(1, "默认图片"), + UPLOAD(2, "上传图片"), + NOT_DISPLAY(3, "不显示图片"); + + /** + * 类型 + */ + private final Integer type; + /** + * 说明 + */ + private final String msg; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java index 0cd53ebe3..3b83348dc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.information; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.StatisticsInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; @@ -92,4 +93,11 @@ public interface DeviceInformationService { * @return */ Map> classification(); + + /** + * 统计设备 + * @return + */ + List getDeviceNumber(); + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java index 8ebaed4e5..aa5ab5293 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java @@ -8,11 +8,16 @@ import cn.iocoder.yudao.module.grpc.api.GrpcServiceApi; import cn.iocoder.yudao.module.system.constant.device.DeviceChcheConstant; import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.StatisticsInformationDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; +import cn.iocoder.yudao.module.system.dal.mysql.config.CommonConfigMapper; import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper; import cn.iocoder.yudao.module.system.enums.device.DeviceStatusEnum; +import cn.iocoder.yudao.module.system.enums.device.PictureConfigEnum; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; @@ -45,6 +50,9 @@ public class DeviceInformationServiceImpl implements DeviceInformationService { @Resource private DeviceInformationMapper informationMapper; + @Resource + private DictDataService dictDataService; + @Resource private GrpcServiceApi grpcServiceApi; @@ -59,6 +67,17 @@ public class DeviceInformationServiceImpl implements DeviceInformationService { if (ObjectUtil.isNotEmpty(pageResult.getList())) { throw exception(INFORMATION_MAC_EXIST); } + + //默认图片 + if (PictureConfigEnum.DEFAULT.getType().equals(createReqVO.getPictureConfig())) { + List deviceType = dictDataService.getDictDataListByDictType("device_type"); + DictDataDO dictDataDO = deviceType.stream() + .filter(v -> Integer.valueOf(v.getValue()).equals(createReqVO.getDeviceType())) + .findFirst() + .orElse(new DictDataDO()); + createReqVO.setUrl(dictDataDO.getRemark()); + } + // 插入 DeviceInformationDO information = BeanUtils.toBean(createReqVO, DeviceInformationDO.class); information.setDeviceStatus(1); @@ -191,6 +210,34 @@ public class DeviceInformationServiceImpl implements DeviceInformationService { return collect; } + + /** + * 统计设备 + * @return + */ + @Override + public List getDeviceNumber() { + List deviceInformationDOS = informationMapper.selectList(new LambdaQueryWrapper()); + if (ObjectUtil.isEmpty(deviceInformationDOS)) { + return new ArrayList<>(); + } + + List list = deviceInformationDOS.stream() + .filter(v -> ObjectUtil.isNotEmpty(v.getDeviceType())) + .collect(Collectors.groupingBy(DeviceInformationDO::getDeviceType)) + .entrySet().stream() + .map(v -> { + Integer key = v.getKey(); + int number = v.getValue().size(); + StatisticsInformationDTO statisticsInformationDTO = new StatisticsInformationDTO(); + statisticsInformationDTO.setDeviceType(key); + statisticsInformationDTO.setNumber(number); + return statisticsInformationDTO; + }).collect(Collectors.toList()); + + return list; + } + @Override public void mapBindDeviceInfo(MapBindDeviceInfoDTO dto) { DeviceInformationDO deviceInformationDO = informationMapper.selectById(dto.getDeviceInfoId()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java index ddbecde22..66e38410c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java @@ -76,7 +76,7 @@ public class AutoChargeServiceImpl implements AutoChargeService { public void autoChargeJob() { TenantContextHolder.setTenantId(1L); CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper() - .eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.ONE.getType())); + .eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.CHARG_CONFIG.getType())); if (ObjectUtil.isEmpty(commonConfigDO)) { log.info("暂未配置充电信息"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java index 770b5cdae..04f639da2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java @@ -127,7 +127,7 @@ public class DistributeTasksServiceImpl implements DistributeTasksService { Pair, List> pair = Pair.of(new ArrayList<>(), new ArrayList<>()); CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper() - .eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.ONE.getType())); + .eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.CHARG_CONFIG.getType())); CommonConfigVO chargeConfig= JSONUtil.toBean(commonConfigDO.getConfigStr(),CommonConfigVO.class); LocalDateTime now = LocalDateTime.now(); if ((ObjectUtil.isNotEmpty(chargeConfig.getScheduleChargeEndTime()) &&