设备数量统计
This commit is contained in:
parent
c7b477e6ab
commit
12eb16047c
@ -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<List<StatisticsInformationDTO>> getDeviceNumber() {
|
||||
List<StatisticsInformationDTO> list = informationService.getDeviceNumber();
|
||||
return success(list);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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, "提升机"),
|
||||
|
@ -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;
|
||||
}
|
@ -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<Integer, List<DeviceInformationDO>> classification();
|
||||
|
||||
/**
|
||||
* 统计设备
|
||||
* @return
|
||||
*/
|
||||
List<StatisticsInformationDTO> getDeviceNumber();
|
||||
|
||||
}
|
||||
|
@ -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<DictDataDO> 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<StatisticsInformationDTO> getDeviceNumber() {
|
||||
List<DeviceInformationDO> deviceInformationDOS = informationMapper.selectList(new LambdaQueryWrapper<DeviceInformationDO>());
|
||||
if (ObjectUtil.isEmpty(deviceInformationDOS)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<StatisticsInformationDTO> 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());
|
||||
|
@ -76,7 +76,7 @@ public class AutoChargeServiceImpl implements AutoChargeService {
|
||||
public void autoChargeJob() {
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper<CommonConfigDO>()
|
||||
.eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.ONE.getType()));
|
||||
.eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.CHARG_CONFIG.getType()));
|
||||
|
||||
if (ObjectUtil.isEmpty(commonConfigDO)) {
|
||||
log.info("暂未配置充电信息");
|
||||
|
@ -127,7 +127,7 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
||||
Pair<List<RobotInformationDO>, List<RobotTaskDetailDO>> pair = Pair.of(new ArrayList<>(), new ArrayList<>());
|
||||
|
||||
CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper<CommonConfigDO>()
|
||||
.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()) &&
|
||||
|
Loading…
Reference in New Issue
Block a user