AlarmParamStandardConfigController.java 8.2 KB
package com.skua.modules.alarm.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.query.QueryGenerator;
import com.skua.modules.alarm.entity.AlarmParamStandardConfig;
import com.skua.modules.alarm.service.AlarmParamStandardConfigService;
import com.skua.modules.system.datestandard.entity.SysMetricDict;
import com.skua.modules.system.datestandard.service.ISysMetricDictService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;

/**
 * @program: fmboot
 * @description:
 * @author: xie chao
 * @create: 2020-11-03 15:55
 */

@Slf4j
@Api(tags = "报警标准配置")
@RestController
@RequestMapping("/alarm/paramStandard")
@AllArgsConstructor
public class AlarmParamStandardConfigController {


    private AlarmParamStandardConfigService alarmParamStandardConfigService;

    private ISysMetricDictService sysMetricDictService;

    /**
     * 新增警告信息
     * @param alarmParamStandardConfig 需要添加的警告信息
     * @return
     */
    @AutoLog(value = "报警标准配置-添加")
    @ApiOperation(value="报警标准配置-添加", notes="报警标准配置-添加")
    @PostMapping(value = "/add")
    public Result<AlarmParamStandardConfig> addAlarmParamStandardInfo(@RequestBody AlarmParamStandardConfig alarmParamStandardConfig){

        Result<AlarmParamStandardConfig> result = new Result<>();

        try{
            //设置isDelete的字段1,表示为有效数据
            alarmParamStandardConfig.setDelFlag(1);

            //根据传入的报警参数编码查询单位
            QueryWrapper<SysMetricDict> sysMetricDictQueryWrapper = new QueryWrapper<>();
            sysMetricDictQueryWrapper.select("metric_unit");
            sysMetricDictQueryWrapper.eq("id",alarmParamStandardConfig.getAlarmParamCode());
            SysMetricDict sysMetricDict = sysMetricDictService.getOne(sysMetricDictQueryWrapper);
            if(sysMetricDict != null) {
                alarmParamStandardConfig.setAlarmParamUnit(sysMetricDict.getMetricUnit());
            }

            alarmParamStandardConfigService.save(alarmParamStandardConfig);
            result.success("新增成功");
        }catch (Exception e){
            log.error(e.getMessage(),e);
            result.error500("新增失败");
        }


        return result;
    }


    /**
     *   通过id删除报警信息,不删除实际数据,做逻辑删除
     * @param id
     * @return
     */
    @AutoLog(value = "报警标准配置-通过id删除")
    @ApiOperation(value="报警标准配置-通过id删除", notes="报警标准配置-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> deleteAlarmParamStandardInfo(@RequestParam(name="id",required=true) String id) {

        Result<AlarmParamStandardConfig> result = new Result<>();

        try{
            //通过id查询数据
            AlarmParamStandardConfig alarmParamStandardConfigEntity = alarmParamStandardConfigService.getById(id);
            //判断对象是否存在
            if(alarmParamStandardConfigEntity == null){
                result.error500("数据已删除");
            }else{
                //将isDelete的字段设置为0,表示数据已删除
                alarmParamStandardConfigEntity.setDelFlag(0);
                alarmParamStandardConfigService.updateById(alarmParamStandardConfigEntity);
            }
            result.success("删除成功");
        }catch (Exception e){
            log.error(e.getMessage(),e);
            result.error500("删除失败");
        }

        return result;
    }

    /**
     *  批量删除报警信息,不删除实际数据,做逻辑删除
     * @param ids
     * @return
     */
    @AutoLog(value = "报警标准配置-批量删除")
    @ApiOperation(value="报警标准配置-批量删除", notes="报警标准配置-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<AlarmParamStandardConfig> deleteBatchAlarmParamStandardInfo(@RequestParam(name="ids",required=true) String ids) {

        Result<AlarmParamStandardConfig> result = new Result<>();
        //判断参数是否有效
        if(ids == null || "".equals(ids.trim())){
            result.error500("参数不识别");
        }

        try{
            //设置查询条件
            QueryWrapper<AlarmParamStandardConfig> queryWrapper = new QueryWrapper<>();
            queryWrapper.in("id",Arrays.asList(ids.split(",")));
            //根据ID查询所有符合条件的数据
            List<AlarmParamStandardConfig> alarmParamStandardConfigList = alarmParamStandardConfigService.list(queryWrapper);

            //将所有的对象的isDelete字段设置为0,表示数据已删除
            alarmParamStandardConfigList.forEach(obj -> obj.setDelFlag(0));

            alarmParamStandardConfigService.updateBatchById(alarmParamStandardConfigList);
            result.success("删除成功");
        }catch (Exception e){
            log.error(e.getMessage(),e);
            result.error500("删除失败");
        }

        return result;
    }


    /**
     *  编辑报警信息
     * @param alarmParamStandardConfig
     * @return
     */
    @AutoLog(value = "报警标准配置-编辑")
    @ApiOperation(value="报警标准配置-编辑", notes="报警标准配置-编辑")
    @PutMapping(value = "/edit")
    public Result<AlarmParamStandardConfig> editAlarmParamStandardInfo(@RequestBody AlarmParamStandardConfig alarmParamStandardConfig) {

        Result<AlarmParamStandardConfig> result = new Result<>();

        try {
            //通过id查询该数据在数据库中是否存在
            AlarmParamStandardConfig alarmParamStandardConfigEntity = alarmParamStandardConfigService.getById(alarmParamStandardConfig.getId());

            if (alarmParamStandardConfigEntity == null || alarmParamStandardConfigEntity.getDelFlag() == 0) {
                result.error500("未找到需要修改的数据");
            } else {
                alarmParamStandardConfigService.updateById(alarmParamStandardConfig);
                result.success("修改成功");
            }
        }catch (Exception e){
            log.error("报警标准配置修改失败",e.getMessage());
            result.error500("修改失败");
        }
        return result;
    }

    /**
     * 分页列表查询
     * @param alarmParamStandardConfig
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @AutoLog(value = "报警标准配置-分页列表查询")
    @ApiOperation(value="报警标准配置-分页列表查询", notes="报警标准配置-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<AlarmParamStandardConfig>> queryPageList(AlarmParamStandardConfig alarmParamStandardConfig,
                                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                                    HttpServletRequest req) {

        Result<IPage<AlarmParamStandardConfig>> result = new Result<>();

        try {
            //查询未删除的数据
            alarmParamStandardConfig.setDelFlag(1);
            QueryWrapper<AlarmParamStandardConfig> queryWrapper = QueryGenerator.initQueryWrapper(alarmParamStandardConfig, req.getParameterMap());
            Page<AlarmParamStandardConfig> page = new Page<>(pageNo, pageSize);
            IPage<AlarmParamStandardConfig> pageList = alarmParamStandardConfigService.page(page, queryWrapper);
            result.setSuccess(true);
            result.setResult(pageList);
        }catch (Exception e){
            log.error("报警标准配置查询失败",e.getMessage());
            result.setSuccess(false);
            result.setResult(null);
        }
        return result;

    }

}