diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/controller/DeviceManagerController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/controller/DeviceManagerController.java new file mode 100644 index 00000000..30e6f8be --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/controller/DeviceManagerController.java @@ -0,0 +1,200 @@ +package com.nu.modules.manager.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.manager.entity.DeviceBindLog; +import com.nu.modules.manager.entity.DeviceManager; +import com.nu.modules.manager.service.IDeviceManagerService; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 设备管理 + * @Author: jeecg-boot + * @Date: 2026-03-30 + * @Version: V1.0 + */ +@RestController +@RequestMapping("/iot/device/manager") +@Slf4j +public class DeviceManagerController extends JeecgController { + @Autowired + private IDeviceManagerService service; + + /** + * 分页列表查询 + * + * @param DeviceManager + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @GetMapping(value = "/list") + public Result> queryPageList(DeviceManager DeviceManager, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page page = new Page(pageNo, pageSize); + IPage pageList = service.findPage(page, DeviceManager); + return Result.OK(pageList); + } + + /** + * 分页列表查询 + * + * @param DeviceManager + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @GetMapping(value = "/previewList") + public Result> previewList(DeviceManager DeviceManager, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page page = new Page(pageNo, pageSize); + IPage pageList = service.findAllPage(page, DeviceManager); + return Result.OK(pageList); + } + + + /** + * 设备集成-绑定日志分页列表查询 + * + * @param deviceBindLog + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @GetMapping(value = "/bingLogList") + public Result> bingLogList(DeviceBindLog deviceBindLog, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page page = new Page(pageNo, pageSize); + IPage pageList = service.findBingLogPage(page, deviceBindLog); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param DeviceManager + * @return + */ + @PostMapping(value = "/add") + public Result add(@RequestBody DeviceManager DeviceManager) { + service.save(DeviceManager); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param DeviceManager + * @return + */ + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody DeviceManager DeviceManager) { + service.updateById(DeviceManager); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + service.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.service.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + DeviceManager DeviceManager = service.getById(id); + if(DeviceManager==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(DeviceManager); + } + + /** + * 导出excel + * + * @param request + * @param DeviceManager + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, DeviceManager DeviceManager) { + return super.exportXls(request, DeviceManager, DeviceManager.class, "物联设备清单"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, DeviceManager.class); + } + + /** + * 添加日志 + * + * @param deviceBindLog + * @return + */ + @PostMapping(value = "/addLog") + public Result addLog(@RequestBody DeviceBindLog deviceBindLog) { + service.addLog(deviceBindLog); + return Result.OK("更改成功!"); + } + + /** + * 设备集成-区域列表查询 + * + * @param deviceManager + * @return + */ + @GetMapping(value = "/nuList") + public Result> nuList(DeviceManager deviceManager) { + return Result.OK(service.queryNuList(deviceManager)); + } + + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceBindLog.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceBindLog.java new file mode 100644 index 00000000..c9fb97b4 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceBindLog.java @@ -0,0 +1,35 @@ +package com.nu.modules.manager.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DeviceBindLog implements Serializable { + + private static final long serialVersionUID = 1L; + /**ID*/ + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "ID") + private Integer id; + private String nuId; + private String nuName; + private String dimension; + @Dict(dicCode = "tplink_device_type") + private String deviceType; + private String deviceModel; + private String factory; + private String sn; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date optDate; + private String optType; + private String remarks; +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceManager.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceManager.java new file mode 100644 index 00000000..9ccadea4 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/entity/DeviceManager.java @@ -0,0 +1,52 @@ +package com.nu.modules.manager.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("nu_iot_device_preview") +public class DeviceManager implements Serializable { + + private static final long serialVersionUID = 1L; + /**ID*/ + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "ID") + private Integer id; + private String nuId; + @TableField(exist = false) + private String nuName; + @Excel(name = "设备类型", width = 15, dicCode = "tplink_device_type") + @Dict(dicCode = "tplink_device_type") + private String deviceType; + @Excel(name = "规格型号", width = 15) + private String deviceModel; + @Excel(name = "生产厂家", width = 15) + private String factory; + @Excel(name = "设备维度", width = 15) + private String dimension; + @Excel(name = "设备标识", width = 15) + private String sn; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + @Excel(name = "备注", width = 15) + private String remarks; + @TableField(exist = false) + private String onlineStatus;//在线状态 + private String deviceStatus;//设备状态 + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/DeviceManagerMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/DeviceManagerMapper.java new file mode 100644 index 00000000..f59c7902 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/DeviceManagerMapper.java @@ -0,0 +1,24 @@ +package com.nu.modules.manager.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nu.modules.manager.entity.DeviceBindLog; +import com.nu.modules.manager.entity.DeviceManager; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Description: 设备管理 + * @Author: jeecg-boot + * @Date: 2026-03-30 + * @Version: V1.0 + */ +public interface DeviceManagerMapper extends BaseMapper { + IPage findPage(Page page, @Param("params") DeviceManager deviceManager); + IPage findAllPage(Page page, @Param("params") DeviceManager deviceManager); + IPage findBingLogPage(Page page, @Param("params") DeviceBindLog deviceBindLog); + void addLog(DeviceBindLog deviceBindLog); + List queryNuList(DeviceManager deviceManager); +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/xml/DeviceManagerMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/xml/DeviceManagerMapper.xml new file mode 100644 index 00000000..0bdccae7 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/mapper/xml/DeviceManagerMapper.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + insert into nu_iot_device_bind_log( + nu_id, + nu_name, + dimension, + device_type, + device_model, + sn, + factory, + opt_date, + opt_type, + remarks + )values( + #{nuId}, + #{nuName}, + #{dimension}, + #{deviceType}, + #{deviceModel}, + #{sn}, + #{factory}, + now(), + #{optType}, + #{remarks} + ) + + + + + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/IDeviceManagerService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/IDeviceManagerService.java new file mode 100644 index 00000000..781b8584 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/IDeviceManagerService.java @@ -0,0 +1,23 @@ +package com.nu.modules.manager.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.manager.entity.DeviceBindLog; +import com.nu.modules.manager.entity.DeviceManager; + +import java.util.List; + +/** + * @Description: 设备管理-机构信息 + * @Author: jeecg-boot + * @Date: 2026-03-30 + * @Version: V1.0 + */ +public interface IDeviceManagerService extends IService { + IPage findPage(Page page, DeviceManager deviceManager); + IPage findAllPage(Page page, DeviceManager deviceManager); + IPage findBingLogPage(Page page, DeviceBindLog deviceBindLog); + void addLog(DeviceBindLog deviceBindLog); + List queryNuList(DeviceManager deviceManager); +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/impl/DeviceManagerServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/impl/DeviceManagerServiceImpl.java new file mode 100644 index 00000000..7f947246 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/manager/service/impl/DeviceManagerServiceImpl.java @@ -0,0 +1,57 @@ +package com.nu.modules.manager.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.manager.entity.DeviceBindLog; +import com.nu.modules.manager.entity.DeviceManager; +import com.nu.modules.manager.mapper.DeviceManagerMapper; +import com.nu.modules.manager.service.IDeviceManagerService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description: 设备管理-机构信息 + * @Author: jeecg-boot + * @Date: 2026-03-30 + * @Version: V1.0 + */ +@Service +@Slf4j +public class DeviceManagerServiceImpl extends ServiceImpl implements IDeviceManagerService { + + @Override + public IPage findPage(Page page, DeviceManager deviceManager){ + return baseMapper.findPage(page,deviceManager); + } + + @Override + public IPage findAllPage(Page page, DeviceManager deviceManager){ + return baseMapper.findAllPage(page,deviceManager); + } + + @Override + public IPage findBingLogPage(Page page, DeviceBindLog deviceBindLog){ + return baseMapper.findBingLogPage(page,deviceBindLog); + } + + @Override + public void addLog(DeviceBindLog deviceBindLog){ + baseMapper.addLog(deviceBindLog); + DeviceManager deviceManager = new DeviceManager(); + deviceManager.setId(deviceBindLog.getId()); + deviceManager.setDeviceStatus(deviceBindLog.getOptType()); + if(deviceBindLog.getOptType().equals("换绑")){ + deviceManager.setNuId(deviceBindLog.getNuId()); + } + baseMapper.updateById(deviceManager); + //需同步到运维 + } + + @Override + public List queryNuList(DeviceManager deviceManager){ + return baseMapper.queryNuList(deviceManager); + } +}