浏览代码

开发物理模型业务代码

donglang 3 月之前
父节点
当前提交
74a4971d62

+ 18 - 18
iot-platform-common/src/main/java/com/platform/enums/ErrorCodeEnum.java

@@ -9,30 +9,30 @@ package com.platform.enums;
 public enum ErrorCodeEnum {
 
     // ====================== 通用错误(10000~19999)======================
-    SYSTEM_ERROR("10000", "系统内部错误"),
-    PARAM_ERROR("10001", "参数校验失败"),
-    RESOURCE_NOT_FOUND("10002", "资源不存在"),
-    PERMISSION_DENIED("10003", "权限不足"),
-    NETWORK_ERROR("10004", "网络连接异常"),
+    SYSTEM_ERROR("100000", "系统内部错误"),
+    PARAM_ERROR("100001", "参数校验失败"),
+    RESOURCE_NOT_FOUND("100002", "资源不存在"),
+    PERMISSION_DENIED("100003", "权限不足"),
+    NETWORK_ERROR("100004", "网络连接异常"),
 
     // ====================== 设备相关错误(20000~29999)======================
-    DEVICE_OFFLINE("20000", "设备离线"),
-    DEVICE_ALREADY_EXIST("20001", "设备已存在"),
-    DEVICE_NOT_REGISTERED("20002", "设备未注册"),
-    DEVICE_DATA_FORMAT_ERROR("20003", "设备数据格式错误"),
-    DEVICE_COMMAND_TIMEOUT("20004", "设备指令发送超时"),
+    DEVICE_OFFLINE("200000", "设备离线"),
+    DEVICE_ALREADY_EXIST("200001", "设备已存在"),
+    DEVICE_NOT_REGISTERED("200002", "设备未注册"),
+    DEVICE_DATA_FORMAT_ERROR("200003", "设备数据格式错误"),
+    DEVICE_COMMAND_TIMEOUT("200004", "设备指令发送超时"),
 
     // ====================== 接口相关错误(30000~39999)======================
-    INTERFACE_CALL_FAIL("30000", "第三方接口调用失败"),
-    INTERFACE_PARAM_MISMATCH("30001", "接口参数不匹配"),
-    TOKEN_EXPIRED("30002", "令牌已过期"),
-    TOKEN_INVALID("30003", "令牌无效"),
+    INTERFACE_CALL_FAIL("300000", "第三方接口调用失败"),
+    INTERFACE_PARAM_MISMATCH("300001", "接口参数不匹配"),
+    TOKEN_EXPIRED("300002", "令牌已过期"),
+    TOKEN_INVALID("300003", "令牌无效"),
 
     // ====================== 数据存储错误(40000~49999)======================
-    DATA_SAVE_FAIL("40000", "数据保存失败"),
-    DATA_UPDATE_FAIL("40001", "数据更新失败"),
-    DATA_DELETE_FAIL("40002", "数据删除失败"),
-    DB_CONNECTION_ERROR("40003", "数据库连接异常");
+    DATA_SAVE_FAIL("400000", "数据保存失败"),
+    DATA_UPDATE_FAIL("400001", "数据更新失败"),
+    DATA_DELETE_FAIL("400002", "数据删除失败"),
+    DB_CONNECTION_ERROR("400003", "数据库连接异常");
 
 
     /** 错误编码 */

+ 21 - 19
iot-platform-manager/src/main/java/com/platform/controller/IotModController.java

@@ -1,13 +1,18 @@
 package com.platform.controller;
 
 
+import com.platform.exception.BaseResult;
+import com.platform.exception.PageResult;
 import com.platform.manage.IotModManage;
 import com.platform.request.device.DeviceDetailReq;
 import com.platform.request.device.IotDeviceRequest;
 import com.platform.request.mod.IotModDetailReq;
 import com.platform.request.mod.IotModRequest;
+import com.platform.request.mod.IotModSaveRequest;
 import com.platform.response.device.DeviceDetailResp;
 import com.platform.response.device.DevicePageResp;
+import com.platform.response.mod.IotModDetailResp;
+import com.platform.response.mod.IotModPageResp;
 import com.platform.result.HttpResult;
 import com.platform.service.IotDeviceService;
 import com.platform.service.IotModService;
@@ -30,47 +35,44 @@ public class IotModController {
     private final IotModManage iotModManage;
 
 
+    /**
+     * 分页查询物理模型
+     */
+    @PostMapping("/pageModList")
+    public PageResult<IotModPageResp> pageModList(@RequestBody IotModRequest request) {
+        return iotModManage.pageModList(request);
+    }
+
     /**
      * 添加物理模型
      */
     @PostMapping("/addMod")
-    public HttpResult<Boolean> addMod(@RequestBody IotModRequest request) {
-        return HttpResult.success(iotModManage.addMod(request));
+    public BaseResult<Boolean> addMod(@RequestBody IotModSaveRequest request) {
+        return BaseResult.success(iotModManage.addMod(request));
     }
 
     /**
      * 修改物理模型
      */
     @PostMapping("/updateMod")
-    public HttpResult<Boolean> updateMod(@RequestBody IotModRequest request) {
-        return HttpResult.success(iotModManage.updateMod(request));
+    public BaseResult<Boolean> updateMod(@RequestBody IotModSaveRequest request) {
+        return BaseResult.success(iotModManage.updateMod(request));
     }
 
     /**
      * 删除物理模型
      */
     @GetMapping("/deleteMod")
-    public HttpResult<Boolean> deleteMod(String guid) {
-        return HttpResult.success(iotModManage.deleteMod(guid));
+    public BaseResult<Boolean> deleteMod(Long id) {
+        return BaseResult.success(iotModManage.deleteMod(id));
     }
 
     /**
      * 物理模型详情查询
      */
     @PostMapping("/getModDetail")
-    public HttpResult<DeviceDetailResp> getModDetail(@RequestBody IotModDetailReq req) {
-        return HttpResult.success(iotModManage.getModDetail(req));
+    public BaseResult<IotModDetailResp> getModDetail(@RequestBody IotModDetailReq req) {
+        return BaseResult.success(iotModManage.getModDetail(req));
     }
 
-    /**
-     * 分页查询物理模型
-     */
-    @PostMapping("/pageModDetail")
-    public HttpResult<DevicePageResp> pageModDetail(@RequestBody IotModDetailReq req) {
-        return HttpResult.success(iotModManage.pageModDetail(req));
-    }
-
-
-
-
 }

+ 9 - 10
iot-platform-manager/src/main/java/com/platform/controller/IotModGroupController.java

@@ -2,11 +2,8 @@ package com.platform.controller;
 
 
 import com.platform.manage.IotModGroupManage;
-import com.platform.manage.IotModManage;
-import com.platform.request.mod.IotModDetailReq;
 import com.platform.request.mod.IotModGroupDetailReq;
 import com.platform.request.mod.IotModGroupRequest;
-import com.platform.request.mod.IotModRequest;
 import com.platform.response.device.DeviceDetailResp;
 import com.platform.response.device.DevicePageResp;
 import com.platform.result.HttpResult;
@@ -28,6 +25,14 @@ public class IotModGroupController {
     private final IotModGroupManage iotModGroupManage;
 
 
+    /**
+     * 分页查询物理模型分组
+     */
+    @PostMapping("/pageModGroupList")
+    public HttpResult<DevicePageResp> pageModGroupList(@RequestBody IotModGroupDetailReq req) {
+        return HttpResult.success(iotModGroupManage.pageModGroupList(req));
+    }
+
     /**
      * 添加物理模型分组
      */
@@ -59,13 +64,7 @@ public class IotModGroupController {
     public HttpResult<DeviceDetailResp> getModGroupDetail(@RequestBody IotModGroupDetailReq req) {
         return HttpResult.success(iotModGroupManage.getModGroupDetail(req));
     }
-    /**
-     * 分页查询物理模型分组
-     */
-    @PostMapping("/pageModGroupDetail")
-    public HttpResult<DevicePageResp> pageModGroupDetail(@RequestBody IotModGroupDetailReq req) {
-        return HttpResult.success(iotModGroupManage.pageModGroupDetail(req));
-    }
+
 
 
 

+ 15 - 0
iot-platform-manager/src/main/java/com/platform/entity/IotMod.java

@@ -1,6 +1,8 @@
 package com.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.platform.request.mod.IotModRequest;
+import com.platform.request.mod.IotModSaveRequest;
 import lombok.Data;
 import java.time.LocalDateTime;
 
@@ -113,4 +115,17 @@ public class IotMod {
      */
     @TableField(value = "update_time")
     private LocalDateTime updateTime;
+
+    private static IotMod getInstance(){
+        return new IotMod();
+    }
+
+
+    public static IotMod requestToIotMod(IotModSaveRequest request){
+        IotMod iotMod = IotMod.getInstance();
+        iotMod.setModCode(request.getModCode());
+        //TODO
+
+        return iotMod;
+    }
 }

+ 12 - 0
iot-platform-manager/src/main/java/com/platform/enums/demo.java

@@ -0,0 +1,12 @@
+package com.platform.enums;
+
+
+/**
+ * Author: donglang
+ * Time: 2025-10-09
+ * Des:
+ * Version: 1.0
+ */
+
+public class demo {
+}

+ 6 - 3
iot-platform-manager/src/main/java/com/platform/manage/IotModGroupManage.java

@@ -18,6 +18,11 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class IotModGroupManage {
+
+    public DevicePageResp pageModGroupList(IotModGroupDetailReq req) {
+        return null;
+    }
+
     public Boolean addModGroup(IotModGroupRequest request) {
         return true;
     }
@@ -34,7 +39,5 @@ public class IotModGroupManage {
         return null;
     }
 
-    public DevicePageResp pageModGroupDetail(IotModGroupDetailReq req) {
-        return null;
-    }
+
 }

+ 91 - 10
iot-platform-manager/src/main/java/com/platform/manage/IotModManage.java

@@ -1,13 +1,34 @@
 package com.platform.manage;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.platform.entity.IotDevice;
+import com.platform.entity.IotMod;
+import com.platform.enums.ErrorCodeEnum;
+import com.platform.exception.IotException;
+import com.platform.exception.PageResult;
 import com.platform.request.device.DeviceDetailReq;
 import com.platform.request.device.IotDeviceRequest;
 import com.platform.request.mod.IotModDetailReq;
 import com.platform.request.mod.IotModRequest;
+import com.platform.request.mod.IotModSaveRequest;
 import com.platform.response.device.DeviceDetailResp;
 import com.platform.response.device.DevicePageResp;
+import com.platform.response.mod.IotModDetailResp;
+import com.platform.response.mod.IotModPageResp;
+import com.platform.service.IotModService;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 
 /**
  *@Author: donglang
@@ -17,24 +38,84 @@ import org.springframework.stereotype.Service;
  */
 
 @Service
+@RequiredArgsConstructor
 public class IotModManage {
-    public Boolean addMod(IotModRequest request) {
-        return true;
+
+    private final IotModService iotModService;
+
+
+    /**
+     * 分页查询
+     * @param request
+     * @return
+     */
+    public PageResult<IotModPageResp> pageModList(IotModRequest request) {
+        IPage<IotMod> page = new Page<>(request.getPage(), request.getPageSize());
+        LambdaQueryWrapper<IotMod> queryWrapper =  Wrappers.<IotMod>lambdaQuery()
+                .eq(IotMod::getModeGroupCode, request.getModeGroupCode())
+                .eq(StringUtils.isNotBlank(request.getGuid()), IotMod::getGuid,request.getGuid())
+                .eq(StringUtils.isNotBlank(request.getName()), IotMod::getName,request.getName());
+        List<IotMod> modList = iotModService.list(page, queryWrapper);
+        if (CollectionUtils.isEmpty(modList)) {
+            PageResult.empty(request.getPage(),request.getPageSize());
+        }
+        List<IotModPageResp> modPageRespList = new ArrayList<>();
+        for (IotMod item : modList) {
+            IotModPageResp iotPageResp = IotModPageResp.toIotPageResp(item);
+            modPageRespList.add(iotPageResp);
+        }
+        return PageResult.of(modPageRespList.size(), request.getPage(), request.getPageSize(), modPageRespList);
+
     }
 
-    public Boolean updateMod(IotModRequest request) {
-        return true;
+    /**
+     * 新增
+     * @param request
+     * @return
+     */
+    public Boolean addMod(IotModSaveRequest request) {
+        IotMod oneByName = iotModService.getOneByName(request.getName());
+        if (oneByName != null) {
+            throw new IotException(ErrorCodeEnum.DATA_SAVE_FAIL, "物理模型名称已存在");
+        }
+        IotMod iotMod = IotMod.requestToIotMod(request);
+        return iotModService.save(iotMod);
     }
 
-    public Boolean deleteMod(String guid) {
-        return true;
+    /**
+     * 更新
+     * @param request
+     * @return
+     */
+    public Boolean updateMod(IotModSaveRequest request) {
+        IotMod iotMod = IotMod.requestToIotMod(request);
+        if (StringUtils.isBlank(iotMod.getModCode())){
+            throw new IotException(ErrorCodeEnum.DATA_UPDATE_FAIL, "物理模型编号不能为空");
+        }
+        LambdaUpdateWrapper<IotMod> updateWrapper = Wrappers.<IotMod>lambdaUpdate()
+                .eq(IotMod::getModCode, iotMod.getModCode());
+        return iotModService.update(iotMod, updateWrapper);
     }
 
-    public DeviceDetailResp getModDetail(IotModDetailReq req) {
-        return null;
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    public Boolean deleteMod(Long id) {
+        return iotModService.deleteById(id);
+
     }
 
-    public DevicePageResp pageModDetail(IotModDetailReq req) {
-        return null;
+    /**
+     * 详情
+     * @param req
+     * @return
+     */
+    public IotModDetailResp getModDetail(IotModDetailReq req) {
+        IotMod iotMod = iotModService.getOneById(req.getId());
+        return IotModDetailResp.toIotDetailResp(iotMod);
     }
+
+
 }

+ 2 - 0
iot-platform-manager/src/main/java/com/platform/request/mod/IotModDetailReq.java

@@ -13,5 +13,7 @@ import lombok.Data;
 @Data
 public class IotModDetailReq {
 
+    private Long id;
+
     
 }

+ 2 - 1
iot-platform-manager/src/main/java/com/platform/request/mod/IotModGroupRequest.java

@@ -1,6 +1,7 @@
 package com.platform.request.mod;
 
 
+import com.platform.request.PageRequest;
 import lombok.Data;
 
 /**
@@ -11,7 +12,7 @@ import lombok.Data;
  */
 
 @Data
-public class IotModGroupRequest {
+public class IotModGroupRequest  extends PageRequest {
 
 
 }

+ 21 - 1
iot-platform-manager/src/main/java/com/platform/request/mod/IotModRequest.java

@@ -1,6 +1,7 @@
 package com.platform.request.mod;
 
 
+import com.platform.request.PageRequest;
 import lombok.Data;
 
 /**
@@ -11,7 +12,26 @@ import lombok.Data;
  */
 
 @Data
-public class IotModRequest {
+public class IotModRequest extends PageRequest {
+    
+    /**
+     * 物模型分组码值
+     */
+    private String modeGroupCode;
+
+    /**
+     * 唯一标识
+     */
+    private String guid;
+
+    /**
+     * 物模型名称
+     */
+    private String name;
+
+
+
+
 
 
 }

+ 70 - 0
iot-platform-manager/src/main/java/com/platform/request/mod/IotModSaveRequest.java

@@ -0,0 +1,70 @@
+package com.platform.request.mod;
+
+
+import com.platform.request.PageRequest;
+import lombok.Data;
+
+/**
+ * @Author: donglang
+ * @CreateTime: 2025-10-09
+ * @Description:
+ * @Version: 1.0
+ */
+
+@Data
+public class IotModSaveRequest {
+
+    /**
+     * 物理模型码值
+     */
+    private String modCode;
+
+    /**
+     * 所属客户id
+     */
+    private Long companyId;
+
+    /**
+     * 物模型分组码值
+     */
+    private String modeGroupCode;
+
+    /**
+     * 唯一标识
+     */
+    private String guid;
+
+    /**
+     * 物模型名称
+     */
+    private String name;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 包含JSON
+     */
+    private String tslJson;
+
+    /**
+     * 设备数
+     */
+    private Integer num;
+
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    /**
+     * 更新人
+     */
+    private String updateUser;
+
+
+
+
+}

+ 118 - 0
iot-platform-manager/src/main/java/com/platform/response/mod/IotModDetailResp.java

@@ -0,0 +1,118 @@
+package com.platform.response.mod;
+
+
+import com.platform.entity.IotMod;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * Author: donglang
+ * Time: 2025-10-09
+ * Des: 物理模型详情模型
+ * Version: 1.0
+ */
+
+@Data
+public class IotModDetailResp {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 租户id
+     */
+    private String tenantId;
+
+    /**
+     * 物理模型码值
+     */
+    private String modCode;
+
+    /**
+     * 所属客户id
+     */
+    private Long companyId;
+
+    /**
+     * 物模型分组码值
+     */
+    private String modeGroupCode;
+
+    /**
+     * 唯一标识
+     */
+    private String guid;
+
+    /**
+     * 物模型名称
+     */
+    private String name;
+
+    /**
+     * 最后一次更新值[原来字段 desc]
+     */
+    private String description;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 包含JSON
+     */
+    private String tslJson;
+
+    /**
+     * 版本[原来字段 tsl_ver]
+     */
+    private Integer version;
+
+    /**
+     * 设备数
+     */
+    private Integer num;
+
+    /**
+     * 0-未删除,1-删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    /**
+     * 更新人
+     */
+    private String updateUser;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    private static IotModDetailResp getInstance(){
+        return new IotModDetailResp();
+    }
+
+
+    public static IotModDetailResp toIotDetailResp(IotMod iotMod){
+        IotModDetailResp iotModDetailResp = IotModDetailResp.getInstance();
+        iotModDetailResp.setModCode(iotMod.getModCode());
+        //TODO
+
+        return iotModDetailResp;
+
+    }
+
+}

+ 118 - 0
iot-platform-manager/src/main/java/com/platform/response/mod/IotModPageResp.java

@@ -0,0 +1,118 @@
+package com.platform.response.mod;
+
+
+import com.platform.entity.IotMod;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * Author: donglang
+ * Time: 2025-10-09
+ * Des: 物理模型详情模型
+ * Version: 1.0
+ */
+
+@Data
+public class IotModPageResp {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 租户id
+     */
+    private String tenantId;
+
+    /**
+     * 物理模型码值
+     */
+    private String modCode;
+
+    /**
+     * 所属客户id
+     */
+    private Long companyId;
+
+    /**
+     * 物模型分组码值
+     */
+    private String modeGroupCode;
+
+    /**
+     * 唯一标识
+     */
+    private String guid;
+
+    /**
+     * 物模型名称
+     */
+    private String name;
+
+    /**
+     * 最后一次更新值[原来字段 desc]
+     */
+    private String description;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 包含JSON
+     */
+    private String tslJson;
+
+    /**
+     * 版本[原来字段 tsl_ver]
+     */
+    private Integer version;
+
+    /**
+     * 设备数
+     */
+    private Integer num;
+
+    /**
+     * 0-未删除,1-删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    /**
+     * 更新人
+     */
+    private String updateUser;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    private static IotModPageResp getInstance(){
+        return new IotModPageResp();
+    }
+
+
+    public static IotModPageResp toIotPageResp(IotMod iotMod){
+        IotModPageResp iotModDetailResp = IotModPageResp.getInstance();
+        iotModDetailResp.setModCode(iotMod.getModCode());
+        //TODO
+
+        return iotModDetailResp;
+
+    }
+
+}

+ 20 - 5
iot-platform-manager/src/main/java/com/platform/service/IotModService.java

@@ -2,6 +2,7 @@ package com.platform.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.platform.entity.IotDevice;
 import com.platform.entity.IotMod;
 import com.platform.mapper.IotModMapper;
 
@@ -14,11 +15,25 @@ import com.platform.mapper.IotModMapper;
 
 public interface IotModService extends IService<IotMod> {
 
-
-
-
-
-
+    /**
+     * 跟进姓名查询
+     * @param modName
+     * @return
+     */
+    IotMod getOneByName(String modName);
+
+    /**
+     * 跟进id查询
+     * @param id
+     * @return
+     */
+    IotMod getOneById(Long id);
+
+    /**
+     * 根据id删除
+     * @return
+     */
+    boolean deleteById(Long id);
 
 
 

+ 19 - 3
iot-platform-manager/src/main/java/com/platform/service/impl/IotModServiceImpl.java

@@ -17,7 +17,23 @@ import org.springframework.stereotype.Service;
 public class IotModServiceImpl extends ServiceImpl<IotModMapper, IotMod> implements IotModService {
 
 
-
-
-
+    @Override
+    public IotMod getOneByName(String modName) {
+        return null;
+    }
+
+    @Override
+    public IotMod getOneById(Long id) {
+        return null;
+    }
+
+    @Override
+    public boolean deleteById(Long id) {
+        return false;
+    }
+
+    @Override
+    public boolean updateById(IotMod iotMod) {
+        return false;
+    }
 }