package org.jeecg.modules.iot.controller; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.iot.entity.Equipment; import org.jeecg.modules.iot.entity.ParameterGroup; import org.jeecg.modules.iot.entity.RealParameter; import org.jeecg.modules.iot.service.IEquipmentService; import org.jeecg.modules.iot.service.IParameterGroupService; import org.jeecg.modules.iot.service.IRealParameterService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.HashSet; import java.util.List; import java.util.Set; /** * @Description: 参数组 * @Author: cuikaidong * @Date: 2024-12-23 * @Version: V1.0 */ @Api(tags = "参数组") @RestController @RequestMapping("/parameter/group") @Slf4j public class ParameterGroupController extends JeecgController { private final IParameterGroupService parameterGroupService; public ParameterGroupController(IParameterGroupService parameterGroupService) { this.parameterGroupService = parameterGroupService; } @Autowired private IEquipmentService equipmentService; @Autowired private IRealParameterService realParameterService; /** * 分页列表查询 * * @param parameterGroup 参数组 * @param pageNo 开始 * @param pageSize 结束 * @return 参数组列表 */ @ApiOperation(value = "参数组-分页列表查询", notes = "参数组-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(ParameterGroup parameterGroup, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(parameterGroup, req.getParameterMap()); Page page = new Page<>(pageNo, pageSize); IPage pageList = parameterGroupService.page(page, queryWrapper); return Result.ok(pageList); } /** * 添加 * * @param parameterGroup 参数组 * @return 成功消息 */ @AutoLog(value = "实参数组-添加") @ApiOperation(value = "实参数组-添加", notes = "实参数组-添加") @PostMapping(value = "/add") public Result add(@RequestBody ParameterGroup parameterGroup) { // 验证编码名称是否重复 if (parameterGroupService.findParameterGroupByName(parameterGroup)){ return Result.error("参数组名称已存在!"); } if (parameterGroupService.findParameterGroupByCode(parameterGroup)){ return Result.error("参数组编号已存在!"); } Equipment equipment = equipmentService.getById(parameterGroup.getEquipmentId()); parameterGroup.setServerDeployId(equipment.getServerId()); parameterGroupService.save(parameterGroup); return Result.ok("添加成功!"); } /** * 编辑 * * @param parameterGroup 参数组 * @return 成功消息 */ @AutoLog(value = "参数组-编辑") @ApiOperation(value = "参数组-编辑", notes = "参数组-编辑") @PutMapping(value = "/edit") public Result edit(@RequestBody ParameterGroup parameterGroup) { parameterGroupService.updateById(parameterGroup); return Result.ok("编辑成功!"); } /** * 通过id删除 * * @param id 参数组id * @return 提示 */ @AutoLog(value = "参数组-通过id删除") @ApiOperation(value = "参数组-通过id删除", notes = "参数组-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id") String id) { // 查询参数组下参数信息 Set ids = new HashSet<>(); ids.add(id); List realParameter = realParameterService.findRealParameterByIds(ids); if (CollectionUtil.isNotEmpty(realParameter)) { return Result.error("删除失败,请先删除参数信息!"); } parameterGroupService.removeById(id); return Result.ok("删除成功!"); } /** * 通过参数组id查询设备信息 * * @param id * @return */ @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { ParameterGroup parameterGroup = parameterGroupService.getById(id); Equipment equipment = equipmentService.getById(parameterGroup.getEquipmentId()); return Result.ok(equipment); } }