Newer
Older
pichan-haerbin / src / main / java / com / casic / service / impl / AlarmConfigServiceImpl.java
chaizhuang on 13 Apr 2023 4 KB 1、增加压力下发设备配置
package com.casic.service.impl;

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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.dao.NbAlarmConfigMapper;
import com.casic.dao.NbDeviceMapper;
import com.casic.entity.NbAlarmConfig;
import com.casic.model.AlarmConfigParam;
import com.casic.model.AlarmContent;
import com.casic.model.ResponseData;
import com.casic.service.AepCommandSend;
import com.casic.service.AlarmConfigService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@AllArgsConstructor
@Slf4j
@Service
public class AlarmConfigServiceImpl  extends ServiceImpl<NbAlarmConfigMapper, NbAlarmConfig> implements AlarmConfigService {

    private final AepCommandSend aepCommandSend;
    private final NbDeviceMapper nbDeviceMapper;

    @Override
    public   ResponseData gasBatchConfig( List<AlarmConfigParam> alarmConfigParamList){
        ResponseData responseData = new ResponseData();
        try {
            for (AlarmConfigParam alarmConfigParam : alarmConfigParamList) {
                String status = aepCommandSend.sendAlarmConfig(alarmConfigParam);
                builderNbAlarmConfig(alarmConfigParam, status);
            }
            responseData.setCode(200);
            responseData.setMessage("配置成功");
        } catch (Exception dex) {
            log.error("主题:哈尔滨燃气设备下发异常,异常信息:{}", dex.getMessage());
            responseData.setCode(500);
            responseData.setMessage("配置异常");
        }
        return responseData;
    }

    @Override
    public ResponseData configList(String  devcode, String beginTime,String endTime,Integer currentIndex,Integer pageSize,String status,Boolean sortDevcode){
        devcode = StringUtils.isEmpty(devcode) ? "" : devcode;
        status = StringUtils.isEmpty(status) ? "" : status;
        ResponseData responseData = new ResponseData();
        try {
            QueryWrapper<NbAlarmConfig> nbConfigWrapper = new QueryWrapper<NbAlarmConfig>().like("devcode", devcode)
                    .like("status",status);
            if (!StringUtils.isEmpty(beginTime)) {
                nbConfigWrapper = nbConfigWrapper.gt("logtime", beginTime);
            }
            if (!StringUtils.isEmpty(endTime)) {
                nbConfigWrapper = nbConfigWrapper.lt("logtime", endTime);
            }
            nbConfigWrapper = sortDevcode ? nbConfigWrapper.orderByAsc("devcode") : nbConfigWrapper.orderByDesc("logtime");
            Page<NbAlarmConfig> userPage = new Page<>(currentIndex, pageSize);
            IPage<NbAlarmConfig> configIPage = this.baseMapper.selectPage(userPage, nbConfigWrapper);
            Map<String, Object> page = new HashMap();
            page.put("total", configIPage.getTotal());
            page.put("rows", configIPage.getRecords());
            page.put("current", configIPage.getCurrent());
            responseData.setCode(200);
            responseData.setData(page);
            responseData.setMessage("查询成功");
        } catch (Exception dex) {
            log.error("主题:哈尔滨燃气报警下发查询异常,异常信息:{}", dex.getMessage());
            responseData.setCode(500);
            responseData.setMessage("查询异常");
        }
        return responseData;
    }

    private void builderNbAlarmConfig(AlarmConfigParam alarmConfigParam,String status){
        nbDeviceMapper.updateRecentByDevciceId(alarmConfigParam.getDeviceId(), "2");
        AlarmContent queryContent = alarmConfigParam.getQueryContent();
        NbAlarmConfig nbConfig= NbAlarmConfig.builder()
                .devcode(alarmConfigParam.getDevcode())
                .deviceId(alarmConfigParam.getDeviceId())
                .alarmcount(queryContent.getAlarmcount())
                .alarmperiod(queryContent.getAlarmperiod())
                .status(status)
                .logtime(new Date())
                .build();
        this.baseMapper.insert(nbConfig);
    }

}