optimize iot import

plp
chenshuichuan 2 years ago
parent 46f68077b8
commit 59d9d0ab3e

@ -1,37 +1,35 @@
package cn.iocoder.yudao.module.iot.controller.admin.device; package cn.iocoder.yudao.module.iot.controller.admin.device;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DevicePageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO; import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO;
import cn.iocoder.yudao.module.iot.framework.gateway.service.impl.TheGatewayServiceImpl; import cn.iocoder.yudao.module.iot.service.device.DeviceService;
import cn.iocoder.yudao.module.iot.service.gateway.GatewayService; import cn.iocoder.yudao.module.iot.service.gateway.GatewayService;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import cn.iocoder.yudao.module.iot.service.device.DeviceService;
@Tag(name = "管理后台 - 物联设备") @Tag(name = "管理后台 - 物联设备")
@RestController @RestController
@RequestMapping("/iot/device") @RequestMapping("/iot/device")
@ -96,6 +94,7 @@ public class DeviceController {
ExcelUtils.write(response, "物联设备.xls", "数据", DeviceRespVO.class, ExcelUtils.write(response, "物联设备.xls", "数据", DeviceRespVO.class,
BeanUtils.toBean(list, DeviceRespVO.class)); BeanUtils.toBean(list, DeviceRespVO.class));
} }
@GetMapping("/pushDevice") @GetMapping("/pushDevice")
@Operation(summary = "下发物联设备配置到网关") @Operation(summary = "下发物联设备配置到网关")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -103,7 +102,7 @@ public class DeviceController {
public CommonResult<String> pushDevice(@RequestParam("id") Long id) { public CommonResult<String> pushDevice(@RequestParam("id") Long id) {
DeviceDO device = deviceService.getDevice(id); DeviceDO device = deviceService.getDevice(id);
GatewayDO gatewayDO = gatewayService.getGateway(device.getGatewayId()); GatewayDO gatewayDO = gatewayService.getGateway(device.getGatewayId());
return deviceService.pushDevice(device,gatewayDO); return deviceService.pushDevice(device, gatewayDO);
} }
// ==================== 子表(设备属性) ==================== // ==================== 子表(设备属性) ====================

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.device.vo; package cn.iocoder.yudao.module.iot.controller.admin.device.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.device.vo; package cn.iocoder.yudao.module.iot.controller.admin.device.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物联设备 Response VO") @Schema(description = "管理后台 - 物联设备 Response VO")
@Data @Data

@ -1,8 +1,8 @@
package cn.iocoder.yudao.module.iot.controller.admin.device.vo; package cn.iocoder.yudao.module.iot.controller.admin.device.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 物联设备新增/修改 Request VO") @Schema(description = "管理后台 - 物联设备新增/修改 Request VO")

@ -1,34 +1,33 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula; package cn.iocoder.yudao.module.iot.controller.admin.formula;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.security.access.prepost.PreAuthorize; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.tags.Tag; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import io.swagger.v3.oas.annotations.Parameter; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDetailDO;
import cn.iocoder.yudao.module.iot.service.formula.FormulaService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDetailDO;
import cn.iocoder.yudao.module.iot.service.formula.FormulaService;
@Tag(name = "管理后台 - 计算公式") @Tag(name = "管理后台 - 计算公式")
@RestController @RestController
@RequestMapping("/iot/formula") @RequestMapping("/iot/formula")

@ -1,34 +1,31 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula; package cn.iocoder.yudao.module.iot.controller.admin.formula;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaRecordPageReqVO;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaRecordRespVO;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaRecordSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import cn.iocoder.yudao.module.iot.service.formula.FormulaRecordService; import cn.iocoder.yudao.module.iot.service.formula.FormulaRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 变量记录") @Tag(name = "管理后台 - 变量记录")
@RestController @RestController

@ -1,11 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,11 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,17 +1,14 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull; import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 变量记录 Response VO") @Schema(description = "管理后台 - 变量记录 Response VO")
@Data @Data

@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 计算公式 Response VO") @Schema(description = "管理后台 - 计算公式 Response VO")
@Data @Data

@ -1,8 +1,8 @@
package cn.iocoder.yudao.module.iot.controller.admin.formula.vo; package cn.iocoder.yudao.module.iot.controller.admin.formula.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 计算公式新增/修改 Request VO") @Schema(description = "管理后台 - 计算公式新增/修改 Request VO")

@ -1,34 +1,31 @@
package cn.iocoder.yudao.module.iot.controller.admin.frpc; package cn.iocoder.yudao.module.iot.controller.admin.frpc;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.FrpcProxyServerPageReqVO;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.FrpcProxyServerRespVO;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.FrpcProxyServerSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.frpc.FrpcProxyServerDO; import cn.iocoder.yudao.module.iot.dal.dataobject.frpc.FrpcProxyServerDO;
import cn.iocoder.yudao.module.iot.service.frpc.FrpcProxyServerService; import cn.iocoder.yudao.module.iot.service.frpc.FrpcProxyServerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 代理服务") @Tag(name = "管理后台 - 代理服务")
@RestController @RestController

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo; package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo; package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 代理服务 Response VO") @Schema(description = "管理后台 - 代理服务 Response VO")
@Data @Data

@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo; package cn.iocoder.yudao.module.iot.controller.admin.frpc.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;

@ -1,34 +1,32 @@
package cn.iocoder.yudao.module.iot.controller.admin.frps; package cn.iocoder.yudao.module.iot.controller.admin.frps;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.security.access.prepost.PreAuthorize; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import io.swagger.v3.oas.annotations.tags.Tag; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import io.swagger.v3.oas.annotations.Parameter; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.FrpsServerPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.FrpsServerRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.FrpsServerSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.frps.FrpsServerDO;
import cn.iocoder.yudao.module.iot.service.frps.FrpsServerService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.frps.FrpsServerDO;
import cn.iocoder.yudao.module.iot.service.frps.FrpsServerService;
@Tag(name = "管理后台 - 代理服务器") @Tag(name = "管理后台 - 代理服务器")
@RestController @RestController
@RequestMapping("/iot/frps-server") @RequestMapping("/iot/frps-server")

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.frps.vo; package cn.iocoder.yudao.module.iot.controller.admin.frps.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.frps.vo; package cn.iocoder.yudao.module.iot.controller.admin.frps.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 代理服务器 Response VO") @Schema(description = "管理后台 - 代理服务器 Response VO")
@Data @Data

@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.frps.vo; package cn.iocoder.yudao.module.iot.controller.admin.frps.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;

@ -1,38 +1,37 @@
package cn.iocoder.yudao.module.iot.controller.admin.gateway; package cn.iocoder.yudao.module.iot.controller.admin.gateway;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.GatewayPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.GatewayRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.GatewaySaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO;
import cn.iocoder.yudao.module.iot.framework.constant.IsEnableConstant; import cn.iocoder.yudao.module.iot.framework.constant.IsEnableConstant;
import cn.iocoder.yudao.module.iot.framework.mqtt.consumer.IMqttservice; import cn.iocoder.yudao.module.iot.framework.mqtt.consumer.IMqttservice;
import cn.iocoder.yudao.module.iot.service.gateway.GatewayService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated;
import io.swagger.v3.oas.annotations.Parameter; import org.springframework.web.bind.annotation.*;
import io.swagger.v3.oas.annotations.Operation;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO;
import cn.iocoder.yudao.module.iot.service.gateway.GatewayService;
@Tag(name = "管理后台 - 网关") @Tag(name = "管理后台 - 网关")
@RestController @RestController
@RequestMapping("/iot/gateway") @RequestMapping("/iot/gateway")

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo; package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo; package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 网关 Response VO") @Schema(description = "管理后台 - 网关 Response VO")
@Data @Data

@ -1,9 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo; package cn.iocoder.yudao.module.iot.controller.admin.gateway.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 网关新增/修改 Request VO") @Schema(description = "管理后台 - 网关新增/修改 Request VO")
@Data @Data

@ -1,33 +1,30 @@
package cn.iocoder.yudao.module.iot.controller.admin.iotorganization; package cn.iocoder.yudao.module.iot.controller.admin.iotorganization;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.security.access.prepost.PreAuthorize; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import io.swagger.v3.oas.annotations.tags.Tag; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import io.swagger.v3.oas.annotations.Parameter; import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.IotOrganizationListReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.IotOrganizationRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.IotOrganizationSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO;
import cn.iocoder.yudao.module.iot.service.iotorganization.IotOrganizationService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO;
import cn.iocoder.yudao.module.iot.service.iotorganization.IotOrganizationService;
@Tag(name = "管理后台 - IOT组织") @Tag(name = "管理后台 - IOT组织")
@RestController @RestController
@RequestMapping("/iot/organization") @RequestMapping("/iot/organization")

@ -1,12 +1,11 @@
package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo; package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import lombok.Data;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - IOT组织列表 Request VO") @Schema(description = "管理后台 - IOT组织列表 Request VO")

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo; package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - IOT组织 Response VO") @Schema(description = "管理后台 - IOT组织 Response VO")
@Data @Data

@ -1,9 +1,11 @@
package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo; package cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - IOT组织新增/修改 Request VO") @Schema(description = "管理后台 - IOT组织新增/修改 Request VO")
@Data @Data
public class IotOrganizationSaveReqVO { public class IotOrganizationSaveReqVO {

@ -1,33 +1,32 @@
package cn.iocoder.yudao.module.iot.controller.admin.kanban; package cn.iocoder.yudao.module.iot.controller.admin.kanban;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.security.access.prepost.PreAuthorize; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.tags.Tag; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import io.swagger.v3.oas.annotations.Parameter; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.KanbanPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.KanbanRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.KanbanSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.kanban.KanbanDO;
import cn.iocoder.yudao.module.iot.service.kanban.KanbanService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.kanban.KanbanDO;
import cn.iocoder.yudao.module.iot.service.kanban.KanbanService;
@Tag(name = "管理后台 - 物联看板") @Tag(name = "管理后台 - 物联看板")
@RestController @RestController
@RequestMapping("/iot/kanban") @RequestMapping("/iot/kanban")

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo; package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo; package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物联看板 Response VO") @Schema(description = "管理后台 - 物联看板 Response VO")
@Data @Data

@ -1,9 +1,10 @@
package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo; package cn.iocoder.yudao.module.iot.controller.admin.kanban.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 物联看板新增/修改 Request VO") @Schema(description = "管理后台 - 物联看板新增/修改 Request VO")
@Data @Data
public class KanbanSaveReqVO { public class KanbanSaveReqVO {

@ -1,33 +1,31 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord; package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordPageReqVO;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordRespVO;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService; import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 数采记录") @Tag(name = "管理后台 - 数采记录")
@RestController @RestController

@ -1,12 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord; package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordRespVO; import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordSaveReqVO; import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
@ -14,17 +9,12 @@ import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 数采记录") @Tag(name = "管理后台 - 数采记录")
@ -66,5 +56,4 @@ public class MqttServerController {
} }
} }

@ -1,10 +1,12 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo; package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ -1,12 +1,11 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo; package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 数采记录 Response VO") @Schema(description = "管理后台 - 数采记录 Response VO")
@Data @Data

@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo; package cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime; import java.time.LocalDateTime;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.device; package cn.iocoder.yudao.module.iot.dal.dataobject.device;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -77,13 +76,13 @@ public class DeviceAttributeDO extends BaseDO {
private String ioStatus; private String ioStatus;
/** /**
* 线(01) * 线(01)
* * <p>
* {@link TODO iot_1_or_0 } * {@link TODO iot_1_or_0 }
*/ */
private String isLinearTransfer; private String isLinearTransfer;
/** /**
* *
* * <p>
* {@link TODO iot_device_data_type } * {@link TODO iot_device_data_type }
*/ */
private String dataType; private String dataType;
@ -145,7 +144,7 @@ public class DeviceAttributeDO extends BaseDO {
private String sourceDataType; private String sourceDataType;
/** /**
* binary,octal,hexadecimal,decimal * binary,octal,hexadecimal,decimal
* * <p>
* {@link TODO iot_device_data_transfer_type } * {@link TODO iot_device_data_transfer_type }
*/ */
private String transferDataType; private String transferDataType;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.device; package cn.iocoder.yudao.module.iot.dal.dataobject.device;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -45,7 +44,7 @@ public class DeviceDO extends BaseDO {
private String deviceType; private String deviceType;
/** /**
* Siemens(S7-300S7-1500) * Siemens(S7-300S7-1500)
* * <p>
* {@link TODO iot_siemens_type } * {@link TODO iot_siemens_type }
*/ */
private String siemensSeries; private String siemensSeries;
@ -55,7 +54,7 @@ public class DeviceDO extends BaseDO {
private String siemensConnectParam; private String siemensConnectParam;
/** /**
* (01) * (01)
* * <p>
* {@link TODO iot_1_or_0 } * {@link TODO iot_1_or_0 }
*/ */
private String readCronType; private String readCronType;
@ -65,7 +64,7 @@ public class DeviceDO extends BaseDO {
private Integer readRepeatValue; private Integer readRepeatValue;
/** /**
* *
* * <p>
* {@link TODO iot_device_data_unit } * {@link TODO iot_device_data_unit }
*/ */
private String readRepeatUnit; private String readRepeatUnit;
@ -91,13 +90,13 @@ public class DeviceDO extends BaseDO {
private String writeCron; private String writeCron;
/** /**
* (01) * (01)
* * <p>
* {@link TODO iot_1_or_0 } * {@link TODO iot_1_or_0 }
*/ */
private String localPersistent; private String localPersistent;
/** /**
* (12) * (12)
* * <p>
* {@link TODO iot_device_uploading_type } * {@link TODO iot_device_uploading_type }
*/ */
private String uploadRate; private String uploadRate;
@ -107,19 +106,19 @@ public class DeviceDO extends BaseDO {
private Integer rateCount; private Integer rateCount;
/** /**
* modbus(serial-rtu) * modbus(serial-rtu)
* * <p>
* {@link TODO iot_modbus_type } * {@link TODO iot_modbus_type }
*/ */
private String modbusProtocol; private String modbusProtocol;
/** /**
* modbus(client) * modbus(client)
* * <p>
* {@link TODO iot_modbus_mold } * {@link TODO iot_modbus_mold }
*/ */
private String modbusPattern; private String modbusPattern;
/** /**
* modbus * modbus
* * <p>
* {@link TODO iot_modbus_port } * {@link TODO iot_modbus_port }
*/ */
private String portName; private String portName;
@ -129,13 +128,13 @@ public class DeviceDO extends BaseDO {
private String modbusConnectParam; private String modbusConnectParam;
/** /**
* (01) * (01)
* * <p>
* {@link TODO iot_1_or_0 } * {@link TODO iot_1_or_0 }
*/ */
private String modbusReadAddrGap; private String modbusReadAddrGap;
/** /**
* (0,1) * (0,1)
* * <p>
* {@link TODO iot_1_or_0 } * {@link TODO iot_1_or_0 }
*/ */
private String isUpload; private String isUpload;

@ -1,12 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.formula; package cn.iocoder.yudao.module.iot.dal.dataobject.formula;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -42,7 +40,7 @@ public class FormulaDO extends BaseDO {
private String formula; private String formula;
/** /**
* *
* * <p>
* {@link TODO mes_data_type } * {@link TODO mes_data_type }
*/ */
private String resultType; private String resultType;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.formula; package cn.iocoder.yudao.module.iot.dal.dataobject.formula;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -61,13 +60,13 @@ public class FormulaDetailDO extends BaseDO {
private String demoValue; private String demoValue;
/** /**
* sum:max-min:- * sum:max-min:-
* * <p>
* {@link TODO iot_formula_var_type } * {@link TODO iot_formula_var_type }
*/ */
private String sumType; private String sumType;
/** /**
* day,week,month * day,week,month
* * <p>
* {@link TODO iot_formula_cal_rang } * {@link TODO iot_formula_cal_rang }
*/ */
private String sumRange; private String sumRange;

@ -1,12 +1,13 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.formula; package cn.iocoder.yudao.module.iot.dal.dataobject.formula;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import java.util.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/** /**
* DO * DO
@ -46,7 +47,7 @@ public class FormulaRecordDO extends BaseDO {
private String workerName; private String workerName;
/** /**
* *
* * <p>
* {@link TODO mes_data_type } * {@link TODO mes_data_type }
*/ */
private String resultType; private String resultType;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.frpc; package cn.iocoder.yudao.module.iot.dal.dataobject.frpc;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -45,7 +44,7 @@ public class FrpcProxyServerDO extends BaseDO {
private String suffixPath; private String suffixPath;
/** /**
* *
* * <p>
* {@link TODO iot_proxy_server_status } * {@link TODO iot_proxy_server_status }
*/ */
private String localStatus; private String localStatus;
@ -63,7 +62,7 @@ public class FrpcProxyServerDO extends BaseDO {
private String proxyAddress; private String proxyAddress;
/** /**
* *
* * <p>
* {@link TODO iot_proxy_server_status } * {@link TODO iot_proxy_server_status }
*/ */
private String proxyStatus; private String proxyStatus;
@ -73,7 +72,7 @@ public class FrpcProxyServerDO extends BaseDO {
private String remark; private String remark;
/** /**
* *
* * <p>
* {@link TODO infra_boolean_string } * {@link TODO infra_boolean_string }
*/ */
private Boolean isEnable; private Boolean isEnable;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.frps; package cn.iocoder.yudao.module.iot.dal.dataobject.frps;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -53,7 +52,7 @@ public class FrpsServerDO extends BaseDO {
private String frpsPath; private String frpsPath;
/** /**
* *
* * <p>
* {@link TODO iot_proxy_server_status } * {@link TODO iot_proxy_server_status }
*/ */
private String frpsState; private String frpsState;
@ -63,7 +62,7 @@ public class FrpsServerDO extends BaseDO {
private String remark; private String remark;
/** /**
* *
* * <p>
* {@link TODO infra_boolean_string } * {@link TODO infra_boolean_string }
*/ */
private Boolean isEnable; private Boolean isEnable;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.gateway; package cn.iocoder.yudao.module.iot.dal.dataobject.gateway;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -57,7 +56,7 @@ public class GatewayDO extends BaseDO {
private String gatewayCode; private String gatewayCode;
/** /**
* *
* * <p>
* {@link TODO iot_gateway_status } * {@link TODO iot_gateway_status }
*/ */
private String gatewayStatus; private String gatewayStatus;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization; package cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* IOT DO * IOT DO
@ -51,25 +50,25 @@ public class IotOrganizationDO extends BaseDO {
private Long parentId; private Long parentId;
/** /**
* *
* * <p>
* {@link TODO mes_machine_status } * {@link TODO mes_machine_status }
*/ */
private Integer status; private Integer status;
/** /**
* *
* * <p>
* {@link TODO iot_device_type } * {@link TODO iot_device_type }
*/ */
private String deviceType; private String deviceType;
/** /**
* *
* * <p>
* {@link TODO iot_org_class } * {@link TODO iot_org_class }
*/ */
private String orgClass; private String orgClass;
/** /**
* *
* * <p>
* {@link TODO mes_org_type } * {@link TODO mes_org_type }
*/ */
private String machineType; private String machineType;

@ -1,11 +1,10 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.kanban; package cn.iocoder.yudao.module.iot.dal.dataobject.kanban;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/** /**
* DO * DO
@ -53,7 +52,7 @@ public class KanbanDO extends BaseDO {
private String remark; private String remark;
/** /**
* *
* * <p>
* {@link TODO infra_boolean_string } * {@link TODO infra_boolean_string }
*/ */
private Boolean isEnable; private Boolean isEnable;

@ -1,12 +1,12 @@
package cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord; package cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/** /**
* DO * DO

@ -1,14 +1,14 @@
package cn.iocoder.yudao.module.iot.dal.mysql.device; package cn.iocoder.yudao.module.iot.dal.mysql.device;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* Mapper * Mapper
* *
@ -26,6 +26,7 @@ public interface DeviceAttributeMapper extends BaseMapperX<DeviceAttributeDO> {
default int deleteByDeviceId(Long deviceId) { default int deleteByDeviceId(Long deviceId) {
return delete(DeviceAttributeDO::getDeviceId, deviceId); return delete(DeviceAttributeDO::getDeviceId, deviceId);
} }
default List<DeviceAttributeDO> selectByDeviceId(Long deviceId) { default List<DeviceAttributeDO> selectByDeviceId(Long deviceId) {
return selectList(DeviceAttributeDO::getDeviceId, deviceId); return selectList(DeviceAttributeDO::getDeviceId, deviceId);
} }

@ -2,12 +2,11 @@ package cn.iocoder.yudao.module.iot.dal.mysql.device;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DevicePageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.*;
import java.util.List; import java.util.List;
@ -51,6 +50,7 @@ public interface DeviceMapper extends BaseMapperX<DeviceDO> {
.betweenIfPresent(DeviceDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(DeviceDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(DeviceDO::getId)); .orderByDesc(DeviceDO::getId));
} }
default PageResult<DeviceDO> selectPage(PageParam reqVO, Long gatewayId) { default PageResult<DeviceDO> selectPage(PageParam reqVO, Long gatewayId) {
return selectPage(reqVO, new LambdaQueryWrapperX<DeviceDO>() return selectPage(reqVO, new LambdaQueryWrapperX<DeviceDO>()
.eq(DeviceDO::getGatewayId, gatewayId) .eq(DeviceDO::getGatewayId, gatewayId)
@ -60,6 +60,7 @@ public interface DeviceMapper extends BaseMapperX<DeviceDO> {
default int deleteByGatewayId(Long gatewayId) { default int deleteByGatewayId(Long gatewayId) {
return delete(DeviceDO::getGatewayId, gatewayId); return delete(DeviceDO::getGatewayId, gatewayId);
} }
default List<DeviceDO> selectByGatewayId(Long gatewayId) { default List<DeviceDO> selectByGatewayId(Long gatewayId) {
return selectList(DeviceDO::getGatewayId, gatewayId); return selectList(DeviceDO::getGatewayId, gatewayId);
} }

@ -1,11 +1,9 @@
package cn.iocoder.yudao.module.iot.dal.mysql.formula; package cn.iocoder.yudao.module.iot.dal.mysql.formula;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDetailDO; import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.formula; package cn.iocoder.yudao.module.iot.dal.mysql.formula;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDO; import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
/** /**
* Mapper * Mapper

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.formula; package cn.iocoder.yudao.module.iot.dal.mysql.formula;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.FormulaRecordPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.formula.FormulaRecordDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.formula.vo.*;
/** /**
* Mapper * Mapper

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.frpc; package cn.iocoder.yudao.module.iot.dal.mysql.frpc;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.FrpcProxyServerPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.frpc.FrpcProxyServerDO; import cn.iocoder.yudao.module.iot.dal.dataobject.frpc.FrpcProxyServerDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.frpc.vo.*;
/** /**
* Mapper * Mapper

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.frps; package cn.iocoder.yudao.module.iot.dal.mysql.frps;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.FrpsServerPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.frps.FrpsServerDO; import cn.iocoder.yudao.module.iot.dal.dataobject.frps.FrpsServerDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.frps.vo.*;
/** /**
* Mapper * Mapper

@ -1,14 +1,13 @@
package cn.iocoder.yudao.module.iot.dal.mysql.gateway; package cn.iocoder.yudao.module.iot.dal.mysql.gateway;
import java.util.*;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.GatewayPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO; import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.gateway.vo.*;
import java.util.List;
/** /**
* Mapper * Mapper
@ -32,6 +31,7 @@ public interface GatewayMapper extends BaseMapperX<GatewayDO> {
.eqIfPresent(GatewayDO::getTopic, reqVO.getTopic()) .eqIfPresent(GatewayDO::getTopic, reqVO.getTopic())
.orderByDesc(GatewayDO::getId)); .orderByDesc(GatewayDO::getId));
} }
default List<GatewayDO> selectListByIsEnable(boolean isEnable) { default List<GatewayDO> selectListByIsEnable(boolean isEnable) {
return selectList(GatewayDO::getIsEnable, isEnable); return selectList(GatewayDO::getIsEnable, isEnable);
} }

@ -1,13 +1,12 @@
package cn.iocoder.yudao.module.iot.dal.mysql.iotorganization; package cn.iocoder.yudao.module.iot.dal.mysql.iotorganization;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.IotOrganizationListReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO; import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.iotorganization.vo.*;
import java.util.List;
/** /**
* IOT Mapper * IOT Mapper

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.kanban; package cn.iocoder.yudao.module.iot.dal.mysql.kanban;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.KanbanPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.kanban.KanbanDO; import cn.iocoder.yudao.module.iot.dal.dataobject.kanban.KanbanDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.kanban.vo.*;
/** /**
* Mapper * Mapper

@ -1,13 +1,11 @@
package cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord; package cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.*;
/** /**
* Mapper * Mapper

@ -9,99 +9,105 @@ import java.util.Map;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
public class AddressDataType { public class AddressDataType {
private static Map<String,String> tdDataTypeMap = new HashMap<>(); private static Map<String, String> tdDataTypeMap = new HashMap<>();
private static Map<String,String> mysqlDataTypeMap = new HashMap<>(); private static Map<String, String> mysqlDataTypeMap = new HashMap<>();
private static Map<String,Integer> gatewayDataTypeMap = new HashMap<>(); private static Map<String, Integer> gatewayDataTypeMap = new HashMap<>();
static { static {
tdDataTypeMap.put("bool","BOOL"); tdDataTypeMap.put("bool", "BOOL");
tdDataTypeMap.put("int8","INT"); tdDataTypeMap.put("int8", "INT");
tdDataTypeMap.put("int16","INT"); tdDataTypeMap.put("int16", "INT");
tdDataTypeMap.put("int32","INT"); tdDataTypeMap.put("int32", "INT");
tdDataTypeMap.put("int64","BIGINT"); tdDataTypeMap.put("int64", "BIGINT");
tdDataTypeMap.put("uint8","INT"); tdDataTypeMap.put("uint8", "INT");
tdDataTypeMap.put("uint16","INT"); tdDataTypeMap.put("uint16", "INT");
tdDataTypeMap.put("uint32","BIGINT"); tdDataTypeMap.put("uint32", "BIGINT");
tdDataTypeMap.put("uint64","BIGINT"); tdDataTypeMap.put("uint64", "BIGINT");
tdDataTypeMap.put("float32","float"); tdDataTypeMap.put("float32", "float");
tdDataTypeMap.put("float64","float"); tdDataTypeMap.put("float64", "float");
tdDataTypeMap.put("string","NCHAR(255)"); tdDataTypeMap.put("string", "NCHAR(255)");
tdDataTypeMap.put("date","TIMESTAMP"); tdDataTypeMap.put("date", "TIMESTAMP");
tdDataTypeMap.put("bcd","BINARY(64)"); tdDataTypeMap.put("bcd", "BINARY(64)");
gatewayDataTypeMap.put("bool",1); gatewayDataTypeMap.put("bool", 1);
gatewayDataTypeMap.put("int8",2); gatewayDataTypeMap.put("int8", 2);
gatewayDataTypeMap.put("uint8",3); gatewayDataTypeMap.put("uint8", 3);
gatewayDataTypeMap.put("int16",4); gatewayDataTypeMap.put("int16", 4);
gatewayDataTypeMap.put("uint16",5); gatewayDataTypeMap.put("uint16", 5);
gatewayDataTypeMap.put("int32",6); gatewayDataTypeMap.put("int32", 6);
gatewayDataTypeMap.put("uint32",7); gatewayDataTypeMap.put("uint32", 7);
gatewayDataTypeMap.put("int64",8); gatewayDataTypeMap.put("int64", 8);
gatewayDataTypeMap.put("uint64",9); gatewayDataTypeMap.put("uint64", 9);
gatewayDataTypeMap.put("float32",10); gatewayDataTypeMap.put("float32", 10);
gatewayDataTypeMap.put("float64",11); gatewayDataTypeMap.put("float64", 11);
gatewayDataTypeMap.put("string",12); gatewayDataTypeMap.put("string", 12);
gatewayDataTypeMap.put("date",13); gatewayDataTypeMap.put("date", 13);
gatewayDataTypeMap.put("bcd",14); gatewayDataTypeMap.put("bcd", 14);
gatewayDataTypeMap.put("Bool",1); gatewayDataTypeMap.put("Bool", 1);
gatewayDataTypeMap.put("Int8",2); gatewayDataTypeMap.put("Int8", 2);
gatewayDataTypeMap.put("Uint8",3); gatewayDataTypeMap.put("Uint8", 3);
gatewayDataTypeMap.put("Int16",4); gatewayDataTypeMap.put("Int16", 4);
gatewayDataTypeMap.put("Uint16",5); gatewayDataTypeMap.put("Uint16", 5);
gatewayDataTypeMap.put("Int32",6); gatewayDataTypeMap.put("Int32", 6);
gatewayDataTypeMap.put("Uint32",7); gatewayDataTypeMap.put("Uint32", 7);
gatewayDataTypeMap.put("Int64",8); gatewayDataTypeMap.put("Int64", 8);
gatewayDataTypeMap.put("Uint64",9); gatewayDataTypeMap.put("Uint64", 9);
gatewayDataTypeMap.put("Float32",10); gatewayDataTypeMap.put("Float32", 10);
gatewayDataTypeMap.put("Float64",11); gatewayDataTypeMap.put("Float64", 11);
gatewayDataTypeMap.put("String",12); gatewayDataTypeMap.put("String", 12);
gatewayDataTypeMap.put("Date",13); gatewayDataTypeMap.put("Date", 13);
gatewayDataTypeMap.put("Bcd",14); gatewayDataTypeMap.put("Bcd", 14);
gatewayDataTypeMap.put("BOOL",1); gatewayDataTypeMap.put("BOOL", 1);
gatewayDataTypeMap.put("INT8",2); gatewayDataTypeMap.put("INT8", 2);
gatewayDataTypeMap.put("UINT8",3); gatewayDataTypeMap.put("UINT8", 3);
gatewayDataTypeMap.put("INT16",4); gatewayDataTypeMap.put("INT16", 4);
gatewayDataTypeMap.put("UINT16",5); gatewayDataTypeMap.put("UINT16", 5);
gatewayDataTypeMap.put("INT32",6); gatewayDataTypeMap.put("INT32", 6);
gatewayDataTypeMap.put("UINT32",7); gatewayDataTypeMap.put("UINT32", 7);
gatewayDataTypeMap.put("INT64",8); gatewayDataTypeMap.put("INT64", 8);
gatewayDataTypeMap.put("UINT64",9); gatewayDataTypeMap.put("UINT64", 9);
gatewayDataTypeMap.put("FLOAT32",10); gatewayDataTypeMap.put("FLOAT32", 10);
gatewayDataTypeMap.put("FLOAT64",11); gatewayDataTypeMap.put("FLOAT64", 11);
gatewayDataTypeMap.put("STRING",12); gatewayDataTypeMap.put("STRING", 12);
gatewayDataTypeMap.put("DATE",13); gatewayDataTypeMap.put("DATE", 13);
gatewayDataTypeMap.put("BCD",14); gatewayDataTypeMap.put("BCD", 14);
mysqlDataTypeMap.put("bool","BOOL"); mysqlDataTypeMap.put("bool", "BOOL");
mysqlDataTypeMap.put("int8","INT"); mysqlDataTypeMap.put("int8", "INT");
mysqlDataTypeMap.put("int16","INT"); mysqlDataTypeMap.put("int16", "INT");
mysqlDataTypeMap.put("int32","INT"); mysqlDataTypeMap.put("int32", "INT");
mysqlDataTypeMap.put("int64","BIGINT"); mysqlDataTypeMap.put("int64", "BIGINT");
mysqlDataTypeMap.put("uint8","INT"); mysqlDataTypeMap.put("uint8", "INT");
mysqlDataTypeMap.put("uint16","INT"); mysqlDataTypeMap.put("uint16", "INT");
mysqlDataTypeMap.put("uint32","BIGINT"); mysqlDataTypeMap.put("uint32", "BIGINT");
mysqlDataTypeMap.put("uint64","BIGINT"); mysqlDataTypeMap.put("uint64", "BIGINT");
mysqlDataTypeMap.put("float32","float"); mysqlDataTypeMap.put("float32", "float");
mysqlDataTypeMap.put("float64","float"); mysqlDataTypeMap.put("float64", "float");
mysqlDataTypeMap.put("string","varchar(255)"); mysqlDataTypeMap.put("string", "varchar(255)");
mysqlDataTypeMap.put("date","TIMESTAMP"); mysqlDataTypeMap.put("date", "TIMESTAMP");
mysqlDataTypeMap.put("bcd","double"); mysqlDataTypeMap.put("bcd", "double");
} }
public static Map<String,String> getDataTypeMap(){
public static Map<String, String> getDataTypeMap() {
return tdDataTypeMap; return tdDataTypeMap;
} }
public static String getTdDataType(String originDataType){
public static String getTdDataType(String originDataType) {
return tdDataTypeMap.get(originDataType); return tdDataTypeMap.get(originDataType);
} }
public static String getTMysqlDataType(String originDataType){
public static String getTMysqlDataType(String originDataType) {
//return mysqlDataTypeMap.get(originDataType); //return mysqlDataTypeMap.get(originDataType);
return "double(8,4)"; return "double(8,4)";
} }
public static Map<String,Integer> getGatewayDataTypeMap(){
public static Map<String, Integer> getGatewayDataTypeMap() {
return gatewayDataTypeMap; return gatewayDataTypeMap;
} }
public static Integer getGatewayDataTypeMap(String originDataType){
public static Integer getGatewayDataTypeMap(String originDataType) {
return gatewayDataTypeMap.get(originDataType); return gatewayDataTypeMap.get(originDataType);
} }

@ -1,12 +1,9 @@
package cn.iocoder.yudao.module.iot.framework.constant; package cn.iocoder.yudao.module.iot.framework.constant;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum DeviceTypeEnum { public enum DeviceTypeEnum {

@ -30,6 +30,7 @@ public class HttpEntity {
params.add(new BasicNameValuePair("isAsc", pageEntity.getIsAsc())); params.add(new BasicNameValuePair("isAsc", pageEntity.getIsAsc()));
return params; return params;
} }
public static List<BasicNameValuePair> getPageParamVo(PageEntityByDecice pageEntity) { public static List<BasicNameValuePair> getPageParamVo(PageEntityByDecice pageEntity) {
List<BasicNameValuePair> params = new ArrayList<>(); List<BasicNameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("pageSize", pageEntity.getPageSize())); params.add(new BasicNameValuePair("pageSize", pageEntity.getPageSize()));
@ -140,8 +141,8 @@ public class HttpEntity {
params.add(new BasicNameValuePair("modbusFieldName", entity.getModbusFieldName())); params.add(new BasicNameValuePair("modbusFieldName", entity.getModbusFieldName()));
params.add(new BasicNameValuePair("modbusFieldOrder", entity.getModbusFieldOrder())); params.add(new BasicNameValuePair("modbusFieldOrder", entity.getModbusFieldOrder()));
params.add(new BasicNameValuePair("modbusFieldPrecision", entity.getModbusFieldPrecision())); params.add(new BasicNameValuePair("modbusFieldPrecision", entity.getModbusFieldPrecision()));
if (entity.getModbusFieldSize()!=null){ if (entity.getModbusFieldSize() != null) {
params.add(new BasicNameValuePair("modbusFieldSize",entity.getModbusFieldSize().toString())); params.add(new BasicNameValuePair("modbusFieldSize", entity.getModbusFieldSize().toString()));
} }
params.add(new BasicNameValuePair("modbusFieldUnit", entity.getModbusFieldUnit())); params.add(new BasicNameValuePair("modbusFieldUnit", entity.getModbusFieldUnit()));
params.add(new BasicNameValuePair("modbusSlaveID", entity.getModbusSlaveID())); params.add(new BasicNameValuePair("modbusSlaveID", entity.getModbusSlaveID()));
@ -154,7 +155,7 @@ public class HttpEntity {
params.add(new BasicNameValuePair("siemensFieldAddress", entity.getSiemensFieldAddress())); params.add(new BasicNameValuePair("siemensFieldAddress", entity.getSiemensFieldAddress()));
params.add(new BasicNameValuePair("siemensFieldDataType", entity.getSiemensFieldDataType().toString())); params.add(new BasicNameValuePair("siemensFieldDataType", entity.getSiemensFieldDataType().toString()));
params.add(new BasicNameValuePair("siemensFieldName", entity.getSiemensFieldName())); params.add(new BasicNameValuePair("siemensFieldName", entity.getSiemensFieldName()));
params.add(new BasicNameValuePair("siemensFieldPrecision",String.valueOf(entity.getSiemensFieldPrecision()))); params.add(new BasicNameValuePair("siemensFieldPrecision", String.valueOf(entity.getSiemensFieldPrecision())));
params.add(new BasicNameValuePair("siemensFieldUnit", entity.getSiemensFieldUnit())); params.add(new BasicNameValuePair("siemensFieldUnit", entity.getSiemensFieldUnit()));
return params; return params;
} }
@ -165,7 +166,7 @@ public class HttpEntity {
params.add(new BasicNameValuePair("deviceID", entity.getDeviceID())); params.add(new BasicNameValuePair("deviceID", entity.getDeviceID()));
params.add(new BasicNameValuePair("videoAddress", entity.getVideoAddress())); params.add(new BasicNameValuePair("videoAddress", entity.getVideoAddress()));
params.add(new BasicNameValuePair("serverAddress", entity.getServerAddress())); params.add(new BasicNameValuePair("serverAddress", entity.getServerAddress()));
params.add(new BasicNameValuePair("deviceName",String.valueOf(entity.getDeviceName()))); params.add(new BasicNameValuePair("deviceName", String.valueOf(entity.getDeviceName())));
return params; return params;
} }
@ -196,7 +197,7 @@ public class HttpEntity {
return params; return params;
} }
public static List<BasicNameValuePair> getLoginParam(String username,String password) { public static List<BasicNameValuePair> getLoginParam(String username, String password) {
List<BasicNameValuePair> params = new ArrayList<>(); List<BasicNameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", username)); params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password)); params.add(new BasicNameValuePair("password", password));

@ -9,30 +9,48 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class DeviceSiemensEntity { public class DeviceSiemensEntity {
/**数据库id*/ /**
* id
*/
String deviceConfigID; String deviceConfigID;
/**设备编号*/ /**
*
*/
String deviceID;//71220220500200001 String deviceID;//71220220500200001
/**设备名称*/ /**
*
*/
String deviceName; String deviceName;
/**Siemens系列*/ /**
* Siemens
*/
String siemensSeries; String siemensSeries;
/**连接参数*/ /**
*
*/
String siemensConnectParam; String siemensConnectParam;
/**读取任务*/ /**
*
*/
String readCronType;//无、频率、定点 String readCronType;//无、频率、定点
/**频率值*/ /**
*
*/
Integer readRepeatValue;//正整数 Integer readRepeatValue;//正整数
/**读单位*/ /**
*
*/
String readRepeatUnit;//秒、分、时、毫秒 String readRepeatUnit;//秒、分、时、毫秒
/**读取任务时间表达式*/ /**
*
*/
String readCron; String readCron;
//写入任务时间间隔 //写入任务时间间隔
@ -41,25 +59,34 @@ public class DeviceSiemensEntity {
//写入任务时间间隔 //写入任务时间间隔
Integer writeRepeatValue; Integer writeRepeatValue;
/**数据库id*/ /**
* id
*/
String writeRepeatUnit; String writeRepeatUnit;
/** /**
* *
*/ */
String writeCron; String writeCron;
/**是否持久化*/ /**
*
*/
String localPersistent; String localPersistent;
/**上传*/ /**
*
*/
String uploadRate; String uploadRate;
/**不变次数*/ /**
*
*/
Integer rateCount; Integer rateCount;
/**
/**设备类型*/ *
*/
String deviceType; //siemens、modbus String deviceType; //siemens、modbus
String deviceComm; //1 String deviceComm; //1
String deviceStatus;//0,notok; 1,ok String deviceStatus;//0,notok; 1,ok

@ -12,8 +12,9 @@ public class PageEntity {
String pageNum; //: 1 String pageNum; //: 1
String orderByColumn; //: updateTime String orderByColumn; //: updateTime
String isAsc; //: asc String isAsc; //: asc
// String deviceID; //: 设备编码
public PageEntity(){ // String deviceID; //: 设备编码
public PageEntity() {
this.isAsc = "asc"; this.isAsc = "asc";
this.orderByColumn = "updateTime"; this.orderByColumn = "updateTime";
this.pageSize = "100"; this.pageSize = "100";

@ -13,7 +13,8 @@ public class PageEntityByDecice {
String orderByColumn; //: updateTime String orderByColumn; //: updateTime
String isAsc; //: asc String isAsc; //: asc
String deviceID; //: 设备编码 String deviceID; //: 设备编码
public PageEntityByDecice(){
public PageEntityByDecice() {
this.isAsc = "asc"; this.isAsc = "asc";
this.orderByColumn = "updateTime"; this.orderByColumn = "updateTime";
this.pageSize = "100"; this.pageSize = "100";

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.iot.framework.gateway.service; package cn.iocoder.yudao.module.iot.framework.gateway.service;
import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus; import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus;
import cn.iocoder.yudao.module.iot.framework.gateway.entity.MqttBrokerEntity; import cn.iocoder.yudao.module.iot.framework.gateway.entity.MqttBrokerEntity;
@ -9,15 +8,16 @@ import java.util.List;
public interface GatewayMqttService { public interface GatewayMqttService {
public void login(String url ,String username ,String password); public void login(String url, String username, String password);
//获取mqtt主题 //获取mqtt主题
public List<MqttBrokerEntity> getMqttBrokerEntity(String url, String username , String password); public List<MqttBrokerEntity> getMqttBrokerEntity(String url, String username, String password);
//下发单个mqtt主题 //下发单个mqtt主题
public int add(MqttBrokerEntity entity, String url); public int add(MqttBrokerEntity entity, String url);
//删除mqtt主题 //删除mqtt主题
public int delete( String url, String ids); public int delete(String url, String ids);
//启用网关 //启用网关
public int changeStatus(ChangeStatus changeStatus, String url); public int changeStatus(ChangeStatus changeStatus, String url);

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.iot.framework.gateway.service; package cn.iocoder.yudao.module.iot.framework.gateway.service;
import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus; import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus;
import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceModbusEntity; import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceModbusEntity;
import cn.iocoder.yudao.module.iot.framework.gateway.entity.ModbusPointEntity; import cn.iocoder.yudao.module.iot.framework.gateway.entity.ModbusPointEntity;
@ -16,8 +15,9 @@ public interface IModbusPointService {
/*modbus*/ /*modbus*/
//获取设备列表 //获取设备列表
public List<DeviceModbusEntity> getModbusList(String url, String username, String password); public List<DeviceModbusEntity> getModbusList(String url, String username, String password);
//获取指定设备编码列表 //获取指定设备编码列表
public List<DeviceModbusEntity> getModbusList(String url, String username, String password,String deviceId); public List<DeviceModbusEntity> getModbusList(String url, String username, String password, String deviceId);
//下发单个设备 //下发单个设备
public int add(DeviceModbusEntity entity, String url); public int add(DeviceModbusEntity entity, String url);

@ -11,17 +11,21 @@ import java.util.List;
public interface ISiemensPointService { public interface ISiemensPointService {
//调用前统一登录保存cookies //调用前统一登录保存cookies
public String login(String url ,String username ,String password); public String login(String url, String username, String password);
/*西门子*/ /*西门子*/
//获取设备列表 //获取设备列表
public List<DeviceSiemensEntity> getSiemensList(String url, String username , String password); public List<DeviceSiemensEntity> getSiemensList(String url, String username, String password);
//获取指定编码设备列表 //获取指定编码设备列表
public List<DeviceSiemensEntity> getSiemensList(String url, String username , String password,String deviceId); public List<DeviceSiemensEntity> getSiemensList(String url, String username, String password, String deviceId);
//下发单个设备 //下发单个设备
public int add(DeviceSiemensEntity siemens,String url); public int add(DeviceSiemensEntity siemens, String url);
//下发单个设备 //下发单个设备
public int add(List<DeviceSiemensEntity> list,String url); public int add(List<DeviceSiemensEntity> list, String url);
//删除单个设备 //删除单个设备
public int delete(String url, String ids); public int delete(String url, String ids);
@ -30,21 +34,22 @@ public interface ISiemensPointService {
//获取设备点位列表 //获取设备点位列表
public List<SiemensPointEntity> getPointList(String url, String deviceConfigID, String username , String password); public List<SiemensPointEntity> getPointList(String url, String deviceConfigID, String username, String password);
//下发点位 //下发点位
public int add(SiemensPointEntity point, String url, String id); public int add(SiemensPointEntity point, String url, String id);
public int add(List<SiemensPointEntity> list, String url, String deviceConfigID); public int add(List<SiemensPointEntity> list, String url, String deviceConfigID);
//更改点位状态 //更改点位状态
public int edit(SiemensPointEntity point,String url); public int edit(SiemensPointEntity point, String url);
//删除点位 //删除点位
public int deletePoint(String url, String ids); public int deletePoint(String url, String ids);
//启用设备 //启用设备
public int changeStatusDevice(List<String>deviceIds,ChangeStatus changeStatus, String url); public int changeStatusDevice(List<String> deviceIds, ChangeStatus changeStatus, String url);
Integer getPointListByCount(String url, String deviceConfigID, String username, String password); Integer getPointListByCount(String url, String deviceConfigID, String username, String password);

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.iot.framework.gateway.service; package cn.iocoder.yudao.module.iot.framework.gateway.service;
import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceVideoEntity; import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceVideoEntity;
import java.util.List; import java.util.List;

@ -25,14 +25,15 @@ import java.util.List;
public class GatewayMqttServiceImpl implements GatewayMqttService { public class GatewayMqttServiceImpl implements GatewayMqttService {
private static final Logger log = LoggerFactory.getLogger(GatewayMqttServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(GatewayMqttServiceImpl.class);
private String cookie; private String cookie;
//先登录 //先登录
@Override @Override
public void login(String url ,String username ,String password){ public void login(String url, String username, String password) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpPost httpPost = HttpUtils.getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username,password)); HttpPost httpPost = HttpUtils.getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username, password));
httpResponse = httpClient.execute(httpPost); httpResponse = httpClient.execute(httpPost);
log.debug(EntityUtils.toString(httpResponse.getEntity())); log.debug(EntityUtils.toString(httpResponse.getEntity()));
this.cookie = HttpUtils.getCookies(httpResponse); this.cookie = HttpUtils.getCookies(httpResponse);
@ -44,8 +45,9 @@ public class GatewayMqttServiceImpl implements GatewayMqttService {
HttpUtils.closeHttp(httpClient, httpResponse); HttpUtils.closeHttp(httpClient, httpResponse);
} }
} }
@Override @Override
public List<MqttBrokerEntity> getMqttBrokerEntity(String url, String username , String password) { public List<MqttBrokerEntity> getMqttBrokerEntity(String url, String username, String password) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
@ -95,7 +97,7 @@ public class GatewayMqttServiceImpl implements GatewayMqttService {
} }
@Override @Override
public int delete( String address, String ids) { public int delete(String address, String ids) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
HttpPost httpPost = null; HttpPost httpPost = null;

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.iot.framework.gateway.service.impl; package cn.iocoder.yudao.module.iot.framework.gateway.service.impl;
import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus; import cn.iocoder.yudao.module.iot.framework.gateway.bo.ChangeStatus;
import cn.iocoder.yudao.module.iot.framework.gateway.bo.HttpEntity; import cn.iocoder.yudao.module.iot.framework.gateway.bo.HttpEntity;
import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceModbusEntity; import cn.iocoder.yudao.module.iot.framework.gateway.entity.DeviceModbusEntity;

@ -39,14 +39,15 @@ import static cn.iocoder.yudao.module.iot.framework.gateway.util.HttpUtils.getHt
public class SiemensPointServiceImpl implements ISiemensPointService { public class SiemensPointServiceImpl implements ISiemensPointService {
private static final Logger log = LoggerFactory.getLogger(SiemensPointServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(SiemensPointServiceImpl.class);
private String cookie; private String cookie;
//先登录 //先登录
@Override @Override
public String login(String url ,String username ,String password){ public String login(String url, String username, String password) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpPost httpPost = getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username,password)); HttpPost httpPost = getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username, password));
httpResponse = httpClient.execute(httpPost); httpResponse = httpClient.execute(httpPost);
this.cookie = HttpUtils.getCookies(httpResponse); this.cookie = HttpUtils.getCookies(httpResponse);
} }
@ -72,7 +73,7 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
/*获取西门子设备列表*/ /*获取西门子设备列表*/
@Override @Override
public List<DeviceSiemensEntity> getSiemensList(String url , String username , String password) { public List<DeviceSiemensEntity> getSiemensList(String url, String username, String password) {
PageEntity pageEntity = new PageEntity(); PageEntity pageEntity = new PageEntity();
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
@ -97,9 +98,10 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
return list; return list;
} }
/*获取西门子设备列表*/ /*获取西门子设备列表*/
@Override @Override
public List<DeviceSiemensEntity> getSiemensList(String url , String username , String password,String deviceId) { public List<DeviceSiemensEntity> getSiemensList(String url, String username, String password, String deviceId) {
PageEntityByDecice pageEntity = new PageEntityByDecice(); PageEntityByDecice pageEntity = new PageEntityByDecice();
pageEntity.setDeviceID(deviceId); pageEntity.setDeviceID(deviceId);
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
@ -156,7 +158,7 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
try { try {
httpPost = getHttpPost(url + UrlConstans.siemens_add, null); httpPost = getHttpPost(url + UrlConstans.siemens_add, null);
httpPost.setHeader("Cookie", cookie); httpPost.setHeader("Cookie", cookie);
for (DeviceSiemensEntity entity: list) { for (DeviceSiemensEntity entity : list) {
List<BasicNameValuePair> pairList = HttpEntity.getParam(entity); List<BasicNameValuePair> pairList = HttpEntity.getParam(entity);
if (pairList != null) { if (pairList != null) {
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(pairList); List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(pairList);
@ -211,9 +213,8 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
@Override @Override
public List<SiemensPointEntity> getPointList(String url, String deviceConfigID,String username ,String password) { public List<SiemensPointEntity> getPointList(String url, String deviceConfigID, String username, String password) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
List<SiemensPointEntity> list = new ArrayList<>(); List<SiemensPointEntity> list = new ArrayList<>();
@ -242,27 +243,27 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
HttpPost httpPost = null; HttpPost httpPost = null;
try { try {
httpPost = getHttpPost(url + UrlConstans.siemens_iopoint_edit_r+deviceConfigID, HttpEntity.getParam(point)); httpPost = getHttpPost(url + UrlConstans.siemens_iopoint_edit_r + deviceConfigID, HttpEntity.getParam(point));
httpPost.setHeader("Cookie", cookie); httpPost.setHeader("Cookie", cookie);
httpResponse = httpClient.execute(httpPost); httpResponse = httpClient.execute(httpPost);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} } finally {
finally {
HttpUtils.closeHttp(httpClient, httpResponse); HttpUtils.closeHttp(httpClient, httpResponse);
} }
return 0; return 0;
} }
@Override @Override
public int add(List<SiemensPointEntity> list, String url, String deviceConfigID) { public int add(List<SiemensPointEntity> list, String url, String deviceConfigID) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
HttpPost httpPost = null; HttpPost httpPost = null;
try { try {
httpPost = getHttpPost(url + UrlConstans.siemens_iopoint_add_r+deviceConfigID, null); httpPost = getHttpPost(url + UrlConstans.siemens_iopoint_add_r + deviceConfigID, null);
httpPost.setHeader("Cookie", cookie); httpPost.setHeader("Cookie", cookie);
for (SiemensPointEntity entity: list) { for (SiemensPointEntity entity : list) {
if(entity.getSiemensFieldDataType()==null)continue; if (entity.getSiemensFieldDataType() == null) continue;
List<BasicNameValuePair> pairList = HttpEntity.getParam(entity); List<BasicNameValuePair> pairList = HttpEntity.getParam(entity);
if (pairList != null) { if (pairList != null) {
List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(pairList); List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(pairList);
@ -274,8 +275,7 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} } finally {
finally {
HttpUtils.closeHttp(httpClient, httpResponse); HttpUtils.closeHttp(httpClient, httpResponse);
} }
return 0; return 0;
@ -299,7 +299,7 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
@Override @Override
public int deletePoint( String url, String ids) { public int deletePoint(String url, String ids) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
HttpPost httpPost = null; HttpPost httpPost = null;
@ -316,13 +316,13 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
@Override @Override
public int changeStatusDevice(List<String>deviceIds,ChangeStatus changeStatus, String url) { public int changeStatusDevice(List<String> deviceIds, ChangeStatus changeStatus, String url) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpPost httpPost = getHttpPost(url + UrlConstans.siemens_changestatus, null); HttpPost httpPost = getHttpPost(url + UrlConstans.siemens_changestatus, null);
httpPost.setHeader("Cookie", cookie); httpPost.setHeader("Cookie", cookie);
for (String id: deviceIds) { for (String id : deviceIds) {
changeStatus.setChangesStatusID(id); changeStatus.setChangesStatusID(id);
List<BasicNameValuePair> pairList = HttpEntity.getChangestatus(changeStatus); List<BasicNameValuePair> pairList = HttpEntity.getChangestatus(changeStatus);
if (pairList != null) { if (pairList != null) {
@ -363,8 +363,9 @@ public class SiemensPointServiceImpl implements ISiemensPointService {
} }
return count; return count;
} }
@Override @Override
public List<SiemensPointEntity> getPointListAll(String url, String deviceConfigID,String username ,String password) { public List<SiemensPointEntity> getPointListAll(String url, String deviceConfigID, String username, String password) {
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
List<SiemensPointEntity> list = new ArrayList<>(); List<SiemensPointEntity> list = new ArrayList<>();

@ -17,7 +17,6 @@ import cn.iocoder.yudao.module.iot.framework.gateway.service.ISiemensPointServic
import cn.iocoder.yudao.module.iot.framework.gateway.service.IVideoService; import cn.iocoder.yudao.module.iot.framework.gateway.service.IVideoService;
import cn.iocoder.yudao.module.iot.framework.gateway.util.HttpUtils; import cn.iocoder.yudao.module.iot.framework.gateway.util.HttpUtils;
import cn.iocoder.yudao.module.iot.framework.gateway.util.UrlConstans; import cn.iocoder.yudao.module.iot.framework.gateway.util.UrlConstans;
import cn.iocoder.yudao.module.iot.service.device.DeviceService;
import cn.iocoder.yudao.module.iot.service.gateway.GatewayService; import cn.iocoder.yudao.module.iot.service.gateway.GatewayService;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.Data; import lombok.Data;
@ -26,7 +25,6 @@ import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -162,7 +160,7 @@ public class TheGatewayServiceImpl {
//下发完成西门子设备后 下发对应设备的点位 //下发完成西门子设备后 下发对应设备的点位
public void addDeviceSiemensEntity(GatewayDO gatewayDO,Long machineId, DeviceDO deviceDO) { public void addDeviceSiemensEntity(GatewayDO gatewayDO, Long machineId, DeviceDO deviceDO) {
siemensPointService.login(gatewayDO.getAdminIp(), gatewayDO.getUsername(), gatewayDO.getPassword()); siemensPointService.login(gatewayDO.getAdminIp(), gatewayDO.getUsername(), gatewayDO.getPassword());
/*下发好设备后获取设备列表找点位*/ /*下发好设备后获取设备列表找点位*/
List<DeviceSiemensEntity> siemensList = siemensPointService.getSiemensList(gatewayDO.getAdminIp(), List<DeviceSiemensEntity> siemensList = siemensPointService.getSiemensList(gatewayDO.getAdminIp(),
@ -347,7 +345,7 @@ public class TheGatewayServiceImpl {
* 5 * 5
*/ */
public void deleteMqttEntity(GatewayDO gatewayDO) { public void deleteMqttEntity(GatewayDO gatewayDO) {
modbusPointService.login(gatewayDO.getAdminIp(),gatewayDO.getUsername(),gatewayDO.getPassword()); modbusPointService.login(gatewayDO.getAdminIp(), gatewayDO.getUsername(), gatewayDO.getPassword());
List<MqttBrokerEntity> mqttBrokerEntity = gatewayMqttService.getMqttBrokerEntity(gatewayDO.getAdminIp(), List<MqttBrokerEntity> mqttBrokerEntity = gatewayMqttService.getMqttBrokerEntity(gatewayDO.getAdminIp(),
gatewayDO.getUsername(), gatewayDO.getPassword()); gatewayDO.getUsername(), gatewayDO.getPassword());
for (MqttBrokerEntity brokerEntity : mqttBrokerEntity) { for (MqttBrokerEntity brokerEntity : mqttBrokerEntity) {
@ -403,7 +401,6 @@ public class TheGatewayServiceImpl {
} }
/*检测下发数据和实际下发数量是否匹配*/ /*检测下发数据和实际下发数量是否匹配*/
public CommonResult<String> compare(GatewayDO gatewayDO, DeviceDO deviceDO, String type) { public CommonResult<String> compare(GatewayDO gatewayDO, DeviceDO deviceDO, String type) {
String deviceConfigID = null; String deviceConfigID = null;
@ -430,26 +427,28 @@ public class TheGatewayServiceImpl {
List<DeviceAttributeDO> points = deviceAttributeMapper.selectByDeviceId(deviceDO.getId()); List<DeviceAttributeDO> points = deviceAttributeMapper.selectByDeviceId(deviceDO.getId());
int size = points.size(); int size = points.size();
String str = "应下发" + points.size() + "个地址,实下发" + pointList + "个地址"; String str = "应下发" + points.size() + "个地址,实下发" + pointList + "个地址";
return size!=pointList? CommonResult.error(500,"下发失败!"+str) return size != pointList ? CommonResult.error(500, "下发失败!" + str)
: CommonResult.success("下发成功!"+str); : CommonResult.success("下发成功!" + str);
} }
/**网关登录测试*/ /**
public CommonResult login(GatewayDO gateway){ *
*/
public CommonResult login(GatewayDO gateway) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpPost httpPost = HttpUtils.getHttpPost( HttpPost httpPost = HttpUtils.getHttpPost(
gateway.getAdminIp() + UrlConstans.loginUrl, gateway.getAdminIp() + UrlConstans.loginUrl,
HttpEntity.getLoginParam(gateway.getUsername(),gateway.getPassword())); HttpEntity.getLoginParam(gateway.getUsername(), gateway.getPassword()));
httpResponse = httpClient.execute(httpPost); httpResponse = httpClient.execute(httpPost);
if (httpResponse.getEntity() != null) { if (httpResponse.getEntity() != null) {
String entityStr = EntityUtils.toString(httpResponse.getEntity()); String entityStr = EntityUtils.toString(httpResponse.getEntity());
if(entityStr.contains("服务不可用") || entityStr.contains("<!DOCTYPE html>")) if (entityStr.contains("服务不可用") || entityStr.contains("<!DOCTYPE html>"))
return CommonResult.success("网关服务不可用!"); return CommonResult.success("网关服务不可用!");
ResponseInfo info = JSON.parseObject(entityStr, ResponseInfo.class); ResponseInfo info = JSON.parseObject(entityStr, ResponseInfo.class);
if(info.code==0)return CommonResult.success("网关登录测试成功!"); if (info.code == 0) return CommonResult.success("网关登录测试成功!");
} }
} }
// 无论如何必须关闭连接 // 无论如何必须关闭连接
@ -458,7 +457,7 @@ public class TheGatewayServiceImpl {
} finally { } finally {
HttpUtils.closeHttp(httpClient, httpResponse); HttpUtils.closeHttp(httpClient, httpResponse);
} }
return CommonResult.error(500,"网关登录测试失败!"); return CommonResult.error(500, "网关登录测试失败!");
} }
public int openOrClose(String adminIp, String username, String password, String monitorCode) { public int openOrClose(String adminIp, String username, String password, String monitorCode) {
@ -468,7 +467,7 @@ public class TheGatewayServiceImpl {
for (int j = 0; j < videoId.size(); j++) { for (int j = 0; j < videoId.size(); j++) {
addressIds[j] = videoId.get(j).getDeviceConfigID(); addressIds[j] = videoId.get(j).getDeviceConfigID();
} }
return videoService.openOrClose(adminIp,String.join(",",addressIds)); return videoService.openOrClose(adminIp, String.join(",", addressIds));
} }
return 1; return 1;
} }
@ -479,8 +478,9 @@ public class TheGatewayServiceImpl {
int code; int code;
String msg; String msg;
} }
public void deleteVideo(String adminIp,String username,String password,String monitorCode) {
videoService.login(adminIp,username,password); public void deleteVideo(String adminIp, String username, String password, String monitorCode) {
videoService.login(adminIp, username, password);
List<DeviceVideoEntity> videoId = videoService.getVideoId(adminIp, username, password, monitorCode); List<DeviceVideoEntity> videoId = videoService.getVideoId(adminIp, username, password, monitorCode);
if (videoId != null && videoId.size() > 0) { if (videoId != null && videoId.size() > 0) {
String[] addressIds = new String[videoId.size()]; String[] addressIds = new String[videoId.size()];

@ -25,14 +25,15 @@ import static cn.iocoder.yudao.module.iot.framework.gateway.util.HttpUtils.getHt
public class VideoServiceImpl implements IVideoService { public class VideoServiceImpl implements IVideoService {
private static final Logger log = LoggerFactory.getLogger(VideoServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(VideoServiceImpl.class);
private String cookie; private String cookie;
//先登录 //先登录
@Override @Override
public void login(String url ,String username ,String password){ public void login(String url, String username, String password) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpPost httpPost = getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username,password)); HttpPost httpPost = getHttpPost(url + UrlConstans.loginUrl, HttpEntity.getLoginParam(username, password));
httpResponse = httpClient.execute(httpPost); httpResponse = httpClient.execute(httpPost);
log.debug(EntityUtils.toString(httpResponse.getEntity())); log.debug(EntityUtils.toString(httpResponse.getEntity()));
this.cookie = HttpUtils.getCookies(httpResponse); this.cookie = HttpUtils.getCookies(httpResponse);

@ -36,8 +36,7 @@ import java.util.List;
* *
* @author ruoyi * @author ruoyi
*/ */
public class HttpUtils public class HttpUtils {
{
private static final Logger log = LoggerFactory.getLogger(HttpUtils.class); private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
/** /**
@ -47,8 +46,7 @@ public class HttpUtils
* @param param name1=value1&name2=value2 * @param param name1=value1&name2=value2
* @return * @return
*/ */
public static String sendGet(String url, String param) public static String sendGet(String url, String param) {
{
return sendGet(url, param, "UTF-8"); return sendGet(url, param, "UTF-8");
} }
@ -60,12 +58,10 @@ public class HttpUtils
* @param contentType * @param contentType
* @return * @return
*/ */
public static String sendGet(String url, String param, String contentType) public static String sendGet(String url, String param, String contentType) {
{
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
BufferedReader in = null; BufferedReader in = null;
try try {
{
String urlNameString = url + "?" + param; String urlNameString = url + "?" + param;
log.info("sendGet - {}", urlNameString); log.info("sendGet - {}", urlNameString);
URL realUrl = new URL(urlNameString); URL realUrl = new URL(urlNameString);
@ -76,39 +72,24 @@ public class HttpUtils
connection.connect(); connection.connect();
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType)); in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
String line; String line;
while ((line = in.readLine()) != null) while ((line = in.readLine()) != null) {
{
result.append(line); result.append(line);
} }
log.info("recv - {}", result); log.info("recv - {}", result);
} } catch (ConnectException e) {
catch (ConnectException e)
{
log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
} } catch (SocketTimeoutException e) {
catch (SocketTimeoutException e)
{
log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e);
} } catch (IOException e) {
catch (IOException e)
{
log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e);
} } catch (Exception e) {
catch (Exception e)
{
log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e); log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e);
} } finally {
finally try {
{ if (in != null) {
try
{
if (in != null)
{
in.close(); in.close();
} }
} } catch (Exception ex) {
catch (Exception ex)
{
log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
} }
} }
@ -122,13 +103,11 @@ public class HttpUtils
* @param param name1=value1&name2=value2 * @param param name1=value1&name2=value2
* @return * @return
*/ */
public static String sendPost(String url, String param) public static String sendPost(String url, String param) {
{
PrintWriter out = null; PrintWriter out = null;
BufferedReader in = null; BufferedReader in = null;
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
try try {
{
String urlNameString = url; String urlNameString = url;
log.info("sendPost - {}", urlNameString); log.info("sendPost - {}", urlNameString);
URL realUrl = new URL(urlNameString); URL realUrl = new URL(urlNameString);
@ -145,58 +124,40 @@ public class HttpUtils
out.flush(); out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String line; String line;
while ((line = in.readLine()) != null) while ((line = in.readLine()) != null) {
{
result.append(line); result.append(line);
} }
log.info("recv - {}", result); log.info("recv - {}", result);
} } catch (ConnectException e) {
catch (ConnectException e)
{
log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
} } catch (SocketTimeoutException e) {
catch (SocketTimeoutException e)
{
log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
} } catch (IOException e) {
catch (IOException e)
{
log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
} } catch (Exception e) {
catch (Exception e)
{
log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e); log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
} } finally {
finally try {
{ if (out != null) {
try
{
if (out != null)
{
out.close(); out.close();
} }
if (in != null) if (in != null) {
{
in.close(); in.close();
} }
} } catch (IOException ex) {
catch (IOException ex)
{
log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
} }
} }
return result.toString(); return result.toString();
} }
public static String sendSSLPost(String url, String param) public static String sendSSLPost(String url, String param) {
{
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
String urlNameString = url + "?" + param; String urlNameString = url + "?" + param;
try try {
{
log.info("sendSSLPost - {}", urlNameString); log.info("sendSSLPost - {}", urlNameString);
SSLContext sc = SSLContext.getInstance("SSL"); SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom()); sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(urlNameString); URL console = new URL(urlNameString);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("accept", "*/*");
@ -213,63 +174,48 @@ public class HttpUtils
InputStream is = conn.getInputStream(); InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is)); BufferedReader br = new BufferedReader(new InputStreamReader(is));
String ret = ""; String ret = "";
while ((ret = br.readLine()) != null) while ((ret = br.readLine()) != null) {
{ if (ret != null && !"".equals(ret.trim())) {
if (ret != null && !"".equals(ret.trim()))
{
result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8"));
} }
} }
log.info("recv - {}", result); log.info("recv - {}", result);
conn.disconnect(); conn.disconnect();
br.close(); br.close();
} } catch (ConnectException e) {
catch (ConnectException e)
{
log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e);
} } catch (SocketTimeoutException e) {
catch (SocketTimeoutException e)
{
log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e);
} } catch (IOException e) {
catch (IOException e)
{
log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e); log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e);
} } catch (Exception e) {
catch (Exception e)
{
log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e); log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e);
} }
return result.toString(); return result.toString();
} }
private static class TrustAnyTrustManager implements X509TrustManager private static class TrustAnyTrustManager implements X509TrustManager {
{
@Override @Override
public void checkClientTrusted(X509Certificate[] chain, String authType) public void checkClientTrusted(X509Certificate[] chain, String authType) {
{
} }
@Override @Override
public void checkServerTrusted(X509Certificate[] chain, String authType) public void checkServerTrusted(X509Certificate[] chain, String authType) {
{
} }
@Override @Override
public X509Certificate[] getAcceptedIssuers() public X509Certificate[] getAcceptedIssuers() {
{ return new X509Certificate[]{};
return new X509Certificate[] {};
} }
} }
private static class TrustAnyHostnameVerifier implements HostnameVerifier private static class TrustAnyHostnameVerifier implements HostnameVerifier {
{
@Override @Override
public boolean verify(String hostname, SSLSession session) public boolean verify(String hostname, SSLSession session) {
{
return true; return true;
} }
} }
public static CloseableHttpClient createSSLClientDefault() { public static CloseableHttpClient createSSLClientDefault() {
try { try {
//使用 loadTrustMaterial() 方法实现一个信任策略,信任所有证书 //使用 loadTrustMaterial() 方法实现一个信任策略,信任所有证书
@ -317,6 +263,7 @@ public class HttpUtils
} }
return httpPost; return httpPost;
} }
public static HttpGet getHttpGet(String url, List<BasicNameValuePair> list) throws UnsupportedEncodingException { public static HttpGet getHttpGet(String url, List<BasicNameValuePair> list) throws UnsupportedEncodingException {
// 创建 HttpGet 请求 // 创建 HttpGet 请求
HttpGet httpGet = new HttpGet(url); HttpGet httpGet = new HttpGet(url);
@ -332,20 +279,21 @@ public class HttpUtils
if (list != null) { if (list != null) {
for (BasicNameValuePair pair : list) { for (BasicNameValuePair pair : list) {
// 设置 httpGet 参数 // 设置 httpGet 参数
httpGet.setHeader(pair.getName(),pair.getValue()); httpGet.setHeader(pair.getName(), pair.getValue());
} }
} }
return httpGet; return httpGet;
} }
public static boolean testNetworkConnected(String url){
public static boolean testNetworkConnected(String url) {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault(); CloseableHttpClient httpClient = HttpUtils.createSSLClientDefault();
CloseableHttpResponse httpResponse = null; CloseableHttpResponse httpResponse = null;
try { try {
HttpGet httpGet = HttpUtils.getHttpGet(url,new ArrayList<>()); HttpGet httpGet = HttpUtils.getHttpGet(url, new ArrayList<>());
httpResponse = httpClient.execute(httpGet); httpResponse = httpClient.execute(httpGet);
StatusLine statusLine = httpResponse.getStatusLine(); StatusLine statusLine = httpResponse.getStatusLine();
if(statusLine.getStatusCode() == 200)return true; if (statusLine.getStatusCode() == 200) return true;
} }
// 无论如何必须关闭连接 // 无论如何必须关闭连接
catch (IOException e) { catch (IOException e) {
@ -355,6 +303,7 @@ public class HttpUtils
} }
return false; return false;
} }
public static String getCookies(CloseableHttpResponse httpResponse) { public static String getCookies(CloseableHttpResponse httpResponse) {
Header str = httpResponse.getHeaders("Set-Cookie")[0]; Header str = httpResponse.getHeaders("Set-Cookie")[0];
return str.getValue().split(";")[0]; return str.getValue().split(";")[0];

@ -45,7 +45,7 @@ public class SslUtil {
/** /**
* HTTPSSSLopenConnection * HTTPSSSLopenConnection
*/ */
public static void ignoreSsl() throws Exception{ public static void ignoreSsl() throws Exception {
HostnameVerifier hv = (urlHostName, session) -> true; HostnameVerifier hv = (urlHostName, session) -> true;
trustAllHttpsCertificates(); trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv); HttpsURLConnection.setDefaultHostnameVerifier(hv);

@ -1,4 +1,3 @@
package cn.iocoder.yudao.module.iot.framework.gateway.util; package cn.iocoder.yudao.module.iot.framework.gateway.util;
import cn.iocoder.yudao.module.iot.framework.gateway.bo.ListEntity; import cn.iocoder.yudao.module.iot.framework.gateway.bo.ListEntity;
@ -8,7 +7,6 @@ import cn.iocoder.yudao.module.iot.framework.mqtt.utils.DateUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.http.Header; import org.apache.http.Header;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ClientProtocolException;
@ -38,7 +36,7 @@ public class TestApp {
@Autowired @Autowired
private ISiemensPointService iopointUploadService; private ISiemensPointService iopointUploadService;
public static void main(String[] args){ public static void main(String[] args) {
BigDecimal b1 = new BigDecimal("123.564"); BigDecimal b1 = new BigDecimal("123.564");
BigDecimal b2 = new BigDecimal("3.3"); BigDecimal b2 = new BigDecimal("3.3");
@ -54,9 +52,10 @@ public class TestApp {
} }
//@Scheduled(fixedRate = 5000) //@Scheduled(fixedRate = 5000)
public void testHttp(){ public void testHttp() {
//iopointUploadService.getList(); //iopointUploadService.getList();
} }
private static void get() { private static void get() {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpClient httpClient = HttpClients.createDefault();
@ -100,6 +99,7 @@ public class TestApp {
} }
} }
} }
private static void post() { private static void post() {
// 创建 HttpClient 客户端 // 创建 HttpClient 客户端
CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpClient httpClient = HttpClients.createDefault();
@ -127,9 +127,10 @@ public class TestApp {
for (Header str : for (Header str :
httpResponse.getHeaders("Set-Cookie")) { httpResponse.getHeaders("Set-Cookie")) {
System.out.println("name:"+str.getName()+",value:"+str.getValue()); System.out.println("name:" + str.getName() + ",value:" + str.getValue());
} }
System.out.println();; System.out.println();
;
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
e.printStackTrace(); e.printStackTrace();
} catch (ClientProtocolException e) { } catch (ClientProtocolException e) {
@ -159,16 +160,16 @@ public class TestApp {
} }
public static void test(){ public static void test() {
String str = "{\"code\":0,\"total\":14,\"msg\":\"\",\"rows\":[{\"deviceConfigContentID\":\"6\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.0\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统手动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"7\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.1\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统自动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"8\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.2\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统启动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"9\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.3\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统停止\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"10\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.4\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"找原点\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"11\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.5\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统复位\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"12\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.2\",\"siemensFieldDataType\":\"2\",\"siemensFieldName\":\"sys_test1\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"13\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.5\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test2\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"14\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.6\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test3\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"15\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.0\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test4\",\"siemensFieldPrecision\":\"0\"}]}"; String str = "{\"code\":0,\"total\":14,\"msg\":\"\",\"rows\":[{\"deviceConfigContentID\":\"6\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.0\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统手动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"7\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.1\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统自动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"8\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.2\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统启动\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"9\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.3\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统停止\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"10\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.4\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"找原点\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"11\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.5\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"系统复位\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"12\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.2\",\"siemensFieldDataType\":\"2\",\"siemensFieldName\":\"sys_test1\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"13\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.5\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test2\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"14\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.6\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test3\",\"siemensFieldPrecision\":\"0\"},{\"deviceConfigContentID\":\"15\",\"siemensFieldAccess\":\"r\",\"siemensFieldAddress\":\"I0.0\",\"siemensFieldDataType\":\"1\",\"siemensFieldName\":\"sys_test4\",\"siemensFieldPrecision\":\"0\"}]}";
Map<String,Object> map = JSON.parseObject(str); Map<String, Object> map = JSON.parseObject(str);
for (Object obj : map.keySet()){ for (Object obj : map.keySet()) {
Object value = map.get(obj); Object value = map.get(obj);
System.out.println("key为"+obj+"值为:"+value); System.out.println("key为" + obj + "值为:" + value);
} }
String key ="rows"; String key = "rows";
List<JSONArray> jsonArrays = (List<JSONArray>) map.get(key); List<JSONArray> jsonArrays = (List<JSONArray>) map.get(key);

@ -25,7 +25,7 @@ public class UrlConstans {
*/ */
public static final String video_list = "/device/config/video/list"; public static final String video_list = "/device/config/video/list";
public static final String video_add = "/device/config/video/add"; public static final String video_add = "/device/config/video/add";
// public static final String video_edit = "/device/config/video/add"; // public static final String video_edit = "/device/config/video/add";
public static final String video_remove = "/device/config/video/remove"; public static final String video_remove = "/device/config/video/remove";
//device/config/video/push/stream/399/?_=1665714825994 //device/config/video/push/stream/399/?_=1665714825994
public static final String video_push_stream = "/device/config/video/push/stream";//推流 public static final String video_push_stream = "/device/config/video/push/stream";//推流

@ -7,6 +7,7 @@ import java.lang.annotation.*;
/** /**
* *
*
* @author jie * @author jie
*/ */
@Component @Component
@ -17,24 +18,28 @@ public @interface Topic {
/** /**
* topic * topic
*
* @return * @return
*/ */
String topic() default ""; String topic() default "";
/** /**
* qos * qos
*
* @return * @return
*/ */
int qos() default 0; int qos() default 0;
/** /**
* *
*
* @return * @return
*/ */
Pattern patten() default Pattern.NONE; Pattern patten() default Pattern.NONE;
/** /**
* *
*
* @return * @return
*/ */
String group() default "group1"; String group() default "group1";

@ -47,7 +47,7 @@ public class MqttCallbackImpl implements MqttCallbackExtended {
public void messageArrived(String topic, MqttMessage message) throws Exception { public void messageArrived(String topic, MqttMessage message) throws Exception {
for (SubscriptTopic subscriptTopic : topicMap) { for (SubscriptTopic subscriptTopic : topicMap) {
if (subscriptTopic.getPattern() != Pattern.NONE && isMatched(subscriptTopic.getTopic(), topic)) { if (subscriptTopic.getPattern() != Pattern.NONE && isMatched(subscriptTopic.getTopic(), topic)) {
log.info("MqttCallbackImpl,messageArrived:topic="+topic+",message="+message); log.info("MqttCallbackImpl,messageArrived:topic=" + topic + ",message=" + message);
subscriptTopic.getMessageListener().messageArrived(topic, message); subscriptTopic.getMessageListener().messageArrived(topic, message);
break; break;
} }

@ -9,6 +9,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
public interface MsgDecoder<T> { public interface MsgDecoder<T> {
/** /**
* *
*
* @param msg * @param msg
* @return * @return
*/ */

@ -6,6 +6,7 @@ package cn.iocoder.yudao.module.iot.framework.mqtt.common;
public interface MsgEncoder<T> { public interface MsgEncoder<T> {
/** /**
* string * string
*
* @param t * @param t
* @return * @return
*/ */

@ -21,7 +21,7 @@ public abstract class SuperConsumer<T> implements IMqttMessageListener, MsgDecod
msgHandler(topic, decoder); msgHandler(topic, decoder);
} catch (Exception ex) { } catch (Exception ex) {
//解决业务处理错误导致断线问题 //解决业务处理错误导致断线问题
log.error(topic+":解决业务处理错误导致断线问题"); log.error(topic + ":解决业务处理错误导致断线问题");
log.error(ex.toString()); log.error(ex.toString());
} }
}); });

@ -38,8 +38,8 @@ public class DefaultEmqConfig {
@Bean @Bean
public MqttConnectOptions getOption(DefaultEmqProperties emqProperties) { public MqttConnectOptions getOption(DefaultEmqProperties emqProperties) {
MqttConnectOptions options = new MqttConnectOptions(); MqttConnectOptions options = new MqttConnectOptions();
emqProperties.setClientId("clientId"+String.valueOf(DateUtils.getMillsLong())); emqProperties.setClientId("clientId" + String.valueOf(DateUtils.getMillsLong()));
log.info("------mqtt clientid ="+ emqProperties.getClientId()); log.info("------mqtt clientid =" + emqProperties.getClientId());
options.setUserName(emqProperties.getUserName()); options.setUserName(emqProperties.getUserName());
options.setPassword(emqProperties.getPassword().toCharArray()); options.setPassword(emqProperties.getPassword().toCharArray());
// 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录这里设置为true表示每次连接到服务器都以新的身份连接 // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录这里设置为true表示每次连接到服务器都以新的身份连接
@ -54,7 +54,7 @@ public class DefaultEmqConfig {
} }
@Bean @Bean
public DefaultBizTopicSet defaultBizTopicSet(ApplicationContext applicationContext){ public DefaultBizTopicSet defaultBizTopicSet(ApplicationContext applicationContext) {
List<SubscriptTopic> topicMap = new ArrayList<>(); List<SubscriptTopic> topicMap = new ArrayList<>();
//得到所有使用@Topic注解的类 //得到所有使用@Topic注解的类
Map<String, Object> beansWithAnnotation = applicationContext.getBeansWithAnnotation(Topic.class); Map<String, Object> beansWithAnnotation = applicationContext.getBeansWithAnnotation(Topic.class);

@ -5,6 +5,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/** /**
* *
*
* @author jie * @author jie
*/ */
@Data @Data

@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

@ -5,17 +5,19 @@ import org.eclipse.paho.client.mqttv3.MqttException;
public interface IMqttservice { public interface IMqttservice {
/** /**
* *
* topic client * topic client
* */ */
public void subscribeMysqlTopic() throws Exception; public void subscribeMysqlTopic() throws Exception;
/** /**
* topic client * topic client
* */ */
public int subscribeTopic(String topic) throws MqttException; public int subscribeTopic(String topic) throws MqttException;
/** /**
* topic clienttopic * topic clienttopic
* */ */
public int unsubscribeTopic(String topic) throws MqttException; public int unsubscribeTopic(String topic) throws MqttException;
} }

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.iot.framework.mqtt.consumer; package cn.iocoder.yudao.module.iot.framework.mqtt.consumer;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO; import cn.iocoder.yudao.module.iot.dal.dataobject.iotorganization.IotOrganizationDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.mqttrecord.MqttRecordDO;
import cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord.MqttRecordMapper; import cn.iocoder.yudao.module.iot.dal.mysql.mqttrecord.MqttRecordMapper;
@ -15,18 +14,11 @@ import cn.iocoder.yudao.module.iot.service.device.DeviceService;
import cn.iocoder.yudao.module.iot.service.iotorganization.IotOrganizationService; import cn.iocoder.yudao.module.iot.service.iotorganization.IotOrganizationService;
import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService; import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.cache.RedisCache;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.ParseException;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
@ -43,6 +35,7 @@ public class MqttDataHandler extends SuperConsumer<String> {
private MqttRecordService mqttRecordService; private MqttRecordService mqttRecordService;
@Resource @Resource
private MqttRecordMapper mqttRecordMapper; private MqttRecordMapper mqttRecordMapper;
@Override @Override
public String decoder(MqttMessage msg) { public String decoder(MqttMessage msg) {
return new String(msg.getPayload()); return new String(msg.getPayload());
@ -50,13 +43,13 @@ public class MqttDataHandler extends SuperConsumer<String> {
@Override @Override
protected void msgHandler(String topic, String entity) { protected void msgHandler(String topic, String entity) {
log.debug("msgHandler"+":topic="+topic); log.debug("msgHandler" + ":topic=" + topic);
log.debug("entity:"+entity); log.debug("entity:" + entity);
MqttData data = MqttDataUtils.parse(entity); MqttData data = MqttDataUtils.parse(entity);
IotOrganizationDO machine = new IotOrganizationDO(); IotOrganizationDO machine = new IotOrganizationDO();
machine.setId(1L); machine.setId(1L);
if (data!=null) { if (data != null) {
//根据设定转化 //根据设定转化
// try { // try {
// String transfer = asyncService.transferBase(data,equipments.getEquipmentsId()); // String transfer = asyncService.transferBase(data,equipments.getEquipmentsId());

@ -1,21 +1,18 @@
package cn.iocoder.yudao.module.iot.framework.mqtt.consumer.impl; package cn.iocoder.yudao.module.iot.framework.mqtt.consumer.impl;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.framework.mqtt.entity.MqttData; import cn.iocoder.yudao.module.iot.framework.mqtt.entity.MqttData;
import cn.iocoder.yudao.module.iot.service.device.DeviceService; import cn.iocoder.yudao.module.iot.service.device.DeviceService;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.script.ScriptException; import java.util.Calendar;
import java.util.*; import java.util.Date;
import java.util.concurrent.TimeUnit; import java.util.HashMap;
import java.util.Map;
@Configuration @Configuration
@EnableAsync @EnableAsync
@ -73,45 +70,52 @@ public class AsyncService {
// else // else
// return null; // return null;
// } // }
/**系数**/
private String factor(String value, String factor){ /**
if(StringUtils.isNotBlank(factor)){ *
return String.format("%.2f",Double.parseDouble(value)*Double.parseDouble(factor)); **/
private String factor(String value, String factor) {
if (StringUtils.isNotBlank(factor)) {
return String.format("%.2f", Double.parseDouble(value) * Double.parseDouble(factor));
} }
return value; return value;
} }
private Map<String, String> getValueMap(MqttData data){
private Map<String, String> getValueMap(MqttData data) {
Map<String, String> valueMap = new HashMap<>(); Map<String, String> valueMap = new HashMap<>();
for (String key: data.getDeviceData().keySet()){ for (String key : data.getDeviceData().keySet()) {
valueMap.put(key,data.getDeviceData().get(key).getV()); valueMap.put(key, data.getDeviceData().get(key).getV());
} }
return valueMap; return valueMap;
} }
/** /**
* java valuebinary,octal,hexadecimal,decimal * java valuebinary,octal,hexadecimal,decimal
* */ */
private String transferBase(String value,String originBase, String transferBase){ private String transferBase(String value, String originBase, String transferBase) {
switch (transferBase){ switch (transferBase) {
case "decimal":{ case "decimal": {
switch (originBase){ switch (originBase) {
case "binary": case "binary":
value = convertBase(value,2,10); value = convertBase(value, 2, 10);
break; break;
case "octal": case "octal":
value = convertBase(value,8,10); value = convertBase(value, 8, 10);
break; break;
case "hexadecimal": case "hexadecimal":
value = convertBase(value,16,10); value = convertBase(value, 16, 10);
case "hexfloat": case "hexfloat":
value = hexToDecimal(value); value = hexToDecimal(value);
} }
} }
break; break;
default:log.debug("数据未进行转换!:(value,originBase,transferBase)("+value+","+originBase+","+transferBase+")"); default:
log.debug("数据未进行转换!:(value,originBase,transferBase)(" + value + "," + originBase + "," + transferBase + ")");
} }
return value; return value;
} }
private static String hexToDecimal(String value){
private static String hexToDecimal(String value) {
return String.valueOf(Integer.parseInt(value, 16)); return String.valueOf(Integer.parseInt(value, 16));
} }

@ -14,7 +14,6 @@ import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.DependsOn;
@ -50,31 +49,31 @@ public class MqttserviceImpl implements IMqttservice, ApplicationListener<Applic
subscribeMysqlTopic(); subscribeMysqlTopic();
}).start(); }).start();
} }
/** /**
* *
* topic client * topic client
* */ */
@Override @Override
public void subscribeMysqlTopic(){ public void subscribeMysqlTopic() {
if(client.isConnected()){ if (client.isConnected()) {
List<GatewayDO> gatewayList = gatewayService.selectListByIsEnable(IsEnableConstant.IsEnableTrue); List<GatewayDO> gatewayList = gatewayService.selectListByIsEnable(IsEnableConstant.IsEnableTrue);
for (GatewayDO gateway : gatewayList) { for (GatewayDO gateway : gatewayList) {
if(StringUtils.isNotBlank(gateway.getTopic())){ if (StringUtils.isNotBlank(gateway.getTopic())) {
SubscriptTopic topic = new SubscriptTopic(gateway.getTopic(), SubscriptTopic topic = new SubscriptTopic(gateway.getTopic(),
gateway.getTopic(), Pattern.QUEUE, 0, dataHandler ); gateway.getTopic(), Pattern.QUEUE, 0, dataHandler);
defaultBizTopicSet.getTopicMap().add(topic); defaultBizTopicSet.getTopicMap().add(topic);
try { try {
client.subscribe(topic.getSubTopic(),0, dataHandler); client.subscribe(topic.getSubTopic(), 0, dataHandler);
} catch (MqttException e) { } catch (MqttException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(),client,options)); client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(), client, options));
log.info("共订阅: " + defaultBizTopicSet.getTopicMap().size() + " 个主题!"); log.info("共订阅: " + defaultBizTopicSet.getTopicMap().size() + " 个主题!");
} } else {
else{
log.error("Mqtt is not connected !"); log.error("Mqtt is not connected !");
} }
@ -82,28 +81,29 @@ public class MqttserviceImpl implements IMqttservice, ApplicationListener<Applic
/** /**
* topic client * topic client
* */ */
@Override @Override
public int subscribeTopic(String topic)throws MqttException{ public int subscribeTopic(String topic) throws MqttException {
SubscriptTopic subscriptTopic = new SubscriptTopic(topic, topic,Pattern.QUEUE, 0, dataHandler ); SubscriptTopic subscriptTopic = new SubscriptTopic(topic, topic, Pattern.QUEUE, 0, dataHandler);
defaultBizTopicSet.getTopicMap().add(subscriptTopic); defaultBizTopicSet.getTopicMap().add(subscriptTopic);
client.subscribe(topic,0, dataHandler); client.subscribe(topic, 0, dataHandler);
client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(),client,options)); client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(), client, options));
return 0; return 0;
} }
/** /**
* topic clienttopic * topic clienttopic
* */ */
@Override @Override
public int unsubscribeTopic(String topic)throws MqttException{ public int unsubscribeTopic(String topic) throws MqttException {
for (int i = 0; i < defaultBizTopicSet.getTopicMap().size(); i++) { for (int i = 0; i < defaultBizTopicSet.getTopicMap().size(); i++) {
if(topic.equals(defaultBizTopicSet.getTopicMap().get(i).getSubTopic())){ if (topic.equals(defaultBizTopicSet.getTopicMap().get(i).getSubTopic())) {
defaultBizTopicSet.getTopicMap().remove(defaultBizTopicSet.getTopicMap().get(i)); defaultBizTopicSet.getTopicMap().remove(defaultBizTopicSet.getTopicMap().get(i));
break; break;
} }
} }
client.unsubscribe(topic); client.unsubscribe(topic);
client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(),client,options)); client.setCallback(new MqttCallbackImpl(defaultBizTopicSet.getTopicMap(), client, options));
return 0; return 0;
} }

@ -9,6 +9,7 @@ import lombok.ToString;
* <p> 线 * <p> 线
* :275236367@qq.com * :275236367@qq.com
* : 2020/1/4 * : 2020/1/4
*
* @author jie * @author jie
*/ */
@Data @Data
@ -29,7 +30,7 @@ public class Connect {
*/ */
private String ipaddress; private String ipaddress;
/** /**
* *
*/ */
private int connack; private int connack;
/** /**
@ -49,7 +50,7 @@ public class Connect {
*/ */
private boolean clean_start; private boolean clean_start;
/** /**
* *
*/ */
private int keepalive; private int keepalive;
} }

@ -7,6 +7,7 @@ import lombok.ToString;
/** /**
* <p>线 * <p>线
*
* @author jie * @author jie
*/ */
@Data @Data

@ -13,7 +13,7 @@ import java.util.Map;
public class MqttData { public class MqttData {
protected String deviceID; protected String deviceID;
protected String gatewayID; protected String gatewayID;
protected Map<String,IoData> deviceData; protected Map<String, IoData> deviceData;
protected String deviceDataTime; protected String deviceDataTime;
} }

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.iot.framework.mqtt.entity;
/** /**
* *
*
* @author jie * @author jie
*/ */

@ -27,6 +27,7 @@ public class ApplicationContextUtil {
/** /**
* bean * bean
*
* @param clazz * @param clazz
* @param <T> * @param <T>
* @return * @return
@ -37,6 +38,7 @@ public class ApplicationContextUtil {
/** /**
* bean * bean
*
* @param name * @param name
* @param <T> * @param <T>
* @return * @return

@ -11,42 +11,45 @@ import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.TimeZone; import java.util.TimeZone;
public class DateUtils extends org.apache.commons.lang3.time.DateUtils{ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
/** /**
* , * ,
*
* @param sourceDate * @param sourceDate
* @return * @return
*/ */
public static Date convertTimezone(Date sourceDate, String targetZoneId){ public static Date convertTimezone(Date sourceDate, String targetZoneId) {
return convertTimezone(sourceDate, TimeZone.getTimeZone(targetZoneId)); return convertTimezone(sourceDate, TimeZone.getTimeZone(targetZoneId));
} }
public static Date convertTimezone(Date sourceDate, String sourceZoneId, String targetZoneId){ public static Date convertTimezone(Date sourceDate, String sourceZoneId, String targetZoneId) {
TimeZone sourceTimeZone=TimeZone.getTimeZone(sourceZoneId); TimeZone sourceTimeZone = TimeZone.getTimeZone(sourceZoneId);
TimeZone targetTimeZone=TimeZone.getTimeZone(targetZoneId); TimeZone targetTimeZone = TimeZone.getTimeZone(targetZoneId);
return convertTimezone(sourceDate, sourceTimeZone, targetTimeZone); return convertTimezone(sourceDate, sourceTimeZone, targetTimeZone);
} }
/** /**
* , * ,
*
* @param localDate * @param localDate
* @param targetTimezone * @param targetTimezone
* @return * @return
*/ */
public static Date convertTimezone(Date localDate, TimeZone targetTimezone){ public static Date convertTimezone(Date localDate, TimeZone targetTimezone) {
return convertTimezone(localDate, TimeZone.getDefault(), targetTimezone); return convertTimezone(localDate, TimeZone.getDefault(), targetTimezone);
} }
/** /**
* sourceDate * sourceDate
*
* @param sourceDate * @param sourceDate
* @param sourceTimezone sourceDate * @param sourceTimezone sourceDate
* @param targetTimezone * @param targetTimezone
* @return * @return
*/ */
public static Date convertTimezone(Date sourceDate, TimeZone sourceTimezone, TimeZone targetTimezone){ public static Date convertTimezone(Date sourceDate, TimeZone sourceTimezone, TimeZone targetTimezone) {
// targetDate - sourceDate=targetTimezone-sourceTimezone // targetDate - sourceDate=targetTimezone-sourceTimezone
@ -54,33 +57,33 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
// targetDate=sourceDate + (targetTimezone-sourceTimezone) // targetDate=sourceDate + (targetTimezone-sourceTimezone)
Calendar calendar=Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
// date.getTime() 为时间戳, 为格林尼治到系统现在的时间差,世界各个地方获取的时间戳是一样的, // date.getTime() 为时间戳, 为格林尼治到系统现在的时间差,世界各个地方获取的时间戳是一样的,
// 格式化输出时,因为设置了不同的时区,所以输出不一样 // 格式化输出时,因为设置了不同的时区,所以输出不一样
long sourceTime=sourceDate.getTime(); long sourceTime = sourceDate.getTime();
calendar.setTimeZone(sourceTimezone); calendar.setTimeZone(sourceTimezone);
calendar.setTimeInMillis(sourceTime);// 设置之后,calendar会计算各种filed对应的值,并保存 calendar.setTimeInMillis(sourceTime);// 设置之后,calendar会计算各种filed对应的值,并保存
//获取源时区的到UTC的时区差 //获取源时区的到UTC的时区差
int sourceZoneOffset=calendar.get(Calendar.ZONE_OFFSET); int sourceZoneOffset = calendar.get(Calendar.ZONE_OFFSET);
calendar.setTimeZone(targetTimezone); calendar.setTimeZone(targetTimezone);
calendar.setTimeInMillis(sourceTime); calendar.setTimeInMillis(sourceTime);
int targetZoneOffset=calendar.get(Calendar.ZONE_OFFSET); int targetZoneOffset = calendar.get(Calendar.ZONE_OFFSET);
int targetDaylightOffset=calendar.get(Calendar.DST_OFFSET); // 夏令时 int targetDaylightOffset = calendar.get(Calendar.DST_OFFSET); // 夏令时
long targetTime=sourceTime+ (targetZoneOffset+targetDaylightOffset) -sourceZoneOffset; long targetTime = sourceTime + (targetZoneOffset + targetDaylightOffset) - sourceZoneOffset;
return new Date(targetTime); return new Date(targetTime);
} }
public static String addDateMinut(String day, int hour){ public static String addDateMinut(String day, int hour) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null; Date date = null;
try { try {
@ -98,7 +101,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
return format.format(date); return format.format(date);
} }
public static String addDateDay(String time, int day){ public static String addDateDay(String time, int day) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null; Date date = null;
try { try {
@ -117,7 +120,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
} }
public static String addDateMonth(String day, int hour){ public static String addDateMonth(String day, int hour) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null; Date date = null;
try { try {
@ -134,6 +137,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
cal = null; cal = null;
return format.format(date); return format.format(date);
} }
public static String YYYY = "yyyy"; public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM"; public static String YYYY_MM = "yyyy-MM";
@ -154,8 +158,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
* *
* @return Date() * @return Date()
*/ */
public static Date getNowDate() public static Date getNowDate() {
{
return new Date(); return new Date();
} }
@ -164,59 +167,50 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
* *
* @return String * @return String
*/ */
public static String getDate() public static String getDate() {
{
return dateTimeNow(YYYY_MM_DD); return dateTimeNow(YYYY_MM_DD);
} }
public static String getMills()
{ public static String getMills() {
return dateTimeNow(YYYY_MM_DD_HH_MM_SS_SSS); return dateTimeNow(YYYY_MM_DD_HH_MM_SS_SSS);
} }
public static String getMills(Date date)
{ public static String getMills(Date date) {
return parseDateToStr(YYYY_MM_DD_HH_MM_SS_SSS, date); return parseDateToStr(YYYY_MM_DD_HH_MM_SS_SSS, date);
} }
public static Long getMillsLong()
{ public static Long getMillsLong() {
return new Date().getTime(); return new Date().getTime();
} }
public static Long getMillsLong(Date date)
{ public static Long getMillsLong(Date date) {
return date.getTime(); return date.getTime();
} }
public static final String getTime()
{ public static final String getTime() {
return dateTimeNow(YYYY_MM_DD_HH_MM_SS); return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
} }
public static final String dateTimeNow() public static final String dateTimeNow() {
{
return dateTimeNow(YYYYMMDDHHMMSS); return dateTimeNow(YYYYMMDDHHMMSS);
} }
public static final String dateTimeNow(final String format) public static final String dateTimeNow(final String format) {
{
return parseDateToStr(format, new Date()); return parseDateToStr(format, new Date());
} }
public static final String dateTime(final Date date) public static final String dateTime(final Date date) {
{
return parseDateToStr(YYYY_MM_DD, date); return parseDateToStr(YYYY_MM_DD, date);
} }
public static final String parseDateToStr(final String format, final Date date) public static final String parseDateToStr(final String format, final Date date) {
{
return new SimpleDateFormat(format).format(date); return new SimpleDateFormat(format).format(date);
} }
public static final Date dateTime(final String format, final String ts) public static final Date dateTime(final String format, final String ts) {
{ try {
try
{
return new SimpleDateFormat(format).parse(ts); return new SimpleDateFormat(format).parse(ts);
} } catch (ParseException e) {
catch (ParseException e)
{
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
@ -224,8 +218,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
/** /**
* // 2018/08/08 * // 2018/08/08
*/ */
public static final String datePath() public static final String datePath() {
{
Date now = new Date(); Date now = new Date();
return DateFormatUtils.format(now, "yyyy/MM/dd"); return DateFormatUtils.format(now, "yyyy/MM/dd");
} }
@ -233,8 +226,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
/** /**
* // 20180808 * // 20180808
*/ */
public static final String dateTime() public static final String dateTime() {
{
Date now = new Date(); Date now = new Date();
return DateFormatUtils.format(now, "yyyyMMdd"); return DateFormatUtils.format(now, "yyyyMMdd");
} }
@ -242,18 +234,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
/** /**
* *
*/ */
public static Date parseDate(Object str) public static Date parseDate(Object str) {
{ if (str == null) {
if (str == null)
{
return null; return null;
} }
try try {
{
return parseDate(str.toString(), parsePatterns); return parseDate(str.toString(), parsePatterns);
} } catch (ParseException e) {
catch (ParseException e)
{
return null; return null;
} }
} }
@ -261,8 +248,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
/** /**
* *
*/ */
public static Date getServerStartDate() public static Date getServerStartDate() {
{
long time = ManagementFactory.getRuntimeMXBean().getStartTime(); long time = ManagementFactory.getRuntimeMXBean().getStartTime();
return new Date(time); return new Date(time);
} }
@ -270,8 +256,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
/** /**
* *
*/ */
public static String getDatePoor(Date endDate, Date nowDate) public static String getDatePoor(Date endDate, Date nowDate) {
{
long nd = 1000 * 24 * 60 * 60; long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60; long nh = 1000 * 60 * 60;
long nm = 1000 * 60; long nm = 1000 * 60;
@ -289,10 +274,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils{
return day + "天" + hour + "小时" + min + "分钟"; return day + "天" + hour + "小时" + min + "分钟";
} }
public static Long strToTimeStamp(String dateTime,String format) throws ParseException { public static Long strToTimeStamp(String dateTime, String format) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.parse(dateTime).getTime(); return simpleDateFormat.parse(dateTime).getTime();
} }
public static LocalDateTime strToLocalDateTime(String dateTimeString) throws ParseException { public static LocalDateTime strToLocalDateTime(String dateTimeString) throws ParseException {
// 定义日期时间格式 // 定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");

@ -3,16 +3,15 @@ package cn.iocoder.yudao.module.iot.framework.mqtt.utils;
import cn.iocoder.yudao.module.iot.framework.mqtt.entity.MqttData; import cn.iocoder.yudao.module.iot.framework.mqtt.entity.MqttData;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
@Slf4j @Slf4j
public class MqttDataUtils { public class MqttDataUtils {
public static MqttData parse(String entity){ public static MqttData parse(String entity) {
try { try {
MqttData data = JSON.parseObject(entity, MqttData.class); MqttData data = JSON.parseObject(entity, MqttData.class);
return data; return data;
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("MqttDataHandler.JSON.parseObject error:"); log.error("MqttDataHandler.JSON.parseObject error:");
} }

@ -10,6 +10,7 @@ import java.nio.charset.StandardCharsets;
/** /**
* *
* client pub * client pub
*
* @author jie * @author jie
*/ */
@Slf4j @Slf4j

@ -9,7 +9,7 @@ public interface RedisKeyConstants {
/** /**
* *
* * <p>
* KEY trade_no:{prefix} * KEY trade_no:{prefix}
* VALUE * VALUE
*/ */

@ -2,10 +2,11 @@ package cn.iocoder.yudao.module.iot.service.device;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DevicePageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO; import cn.iocoder.yudao.module.iot.dal.dataobject.gateway.GatewayDO;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save