Newer
Older
pichan-haerbin / src / main / java / com / casic / service / impl / DeviceConfigServiceImpl.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.casic.dao.NbConfigMapper;
import com.casic.dao.NbDeviceMapper;
import com.casic.entity.NbConfig;
import com.casic.model.BusConfigParam;
import com.casic.model.QueryContent;
import com.casic.model.ResponseData;
import com.casic.service.AepCommandSend;
import com.casic.service.DeviceConfigService;
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 DeviceConfigServiceImpl implements DeviceConfigService {

    private final NbDeviceMapper nbDeviceMapper;
    private final AepCommandSend aepCommandSend;
    private final NbConfigMapper nbConfigMapper;

    @Override
    public ResponseData devcieConfig(BusConfigParam busConfigParam) {
        ResponseData responseData = new ResponseData();
        try {
            String status = aepCommandSend.sendConfig(busConfigParam);
            builderNbConfig(busConfigParam, status);
            responseData.setCode(200);
            responseData.setMessage(status.equals("未下发") ? "下发配置成功" : status);
        } catch (Exception dex) {
            log.error("主题:哈尔滨燃气设备下发异常,异常信息:{}", dex.getMessage());
            responseData.setCode(500);
            responseData.setMessage("配置异常");
        }
        return responseData;
    }

    @Override
    public ResponseData gasBatchConfig(List<BusConfigParam> busConfigList) {
        ResponseData responseData = new ResponseData();
        try {
            for (BusConfigParam busConfigParam : busConfigList) {
                String status = aepCommandSend.sendConfig(busConfigParam);
                builderNbConfig(busConfigParam, 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<NbConfig> nbConfigWrapper = new QueryWrapper<NbConfig>().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<NbConfig> userPage = new Page<>(currentIndex, pageSize);
            IPage<NbConfig> configIPage = nbConfigMapper.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 builderNbConfig(BusConfigParam busConfigParam, String status) {
        nbDeviceMapper.updateRecentByDevciceId(busConfigParam.getDeviceId(), "1");
        QueryContent queryContent = busConfigParam.getQueryContent();
        NbConfig nbConfig = NbConfig.builder()
                .collect(queryContent.getCollect())
                .upload(queryContent.getUpload())
                .retry(queryContent.getRetry())
                .devcode(busConfigParam.getDevcode())
                .deviceId(busConfigParam.getDeviceId())
                .status(status)
                .logtime(new Date())
                .build();
        nbConfigMapper.insert(nbConfig);
    }
}