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); } }