2021与蓝度共同重构项目,服务端
liuhaonan
2022-05-18 7f74c2a4101e25e7889c046e8d3bcc1c30f360d3
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -4,6 +4,7 @@
import com.google.gson.Gson;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.config.RealtimeServerBean;
import com.sandu.ximon.admin.entity.*;
import com.sandu.ximon.admin.param.PoleBindingParam;
@@ -11,8 +12,11 @@
import com.sandu.ximon.admin.utils.FileUtil;
import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
import com.sandu.ximon.admin.utils.LightemitUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.domain.PoleLightemitEntity;
import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.PoleLightemitEntityMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -68,16 +72,25 @@
        } else {
            poleLightemitEntityList = poleLightemitDao.listLed(keyword, SecurityUtils.getUserId());
        }
        if (isOnLine) {
            return ledOnline(poleLightemitEntityList);
        } else {
            ledOnlineCheck(poleLightemitEntityList);
            return poleLightemitEntityList;
        List<PoleLightemitEntity> temp = new ArrayList<>();
        for (PoleLightemitEntity poleLightemitEntity : poleLightemitEntityList) {
            //查询设备在线状态
            boolean onLine = lightemitUtils.getLedOnLine(poleLightemitEntity.getLightemitControlCode());
            //查询屏幕的开启状态
            String isOpen = lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode());
            poleLightemitEntity.setIsOpen(String.valueOf(isOpen));
            poleLightemitEntity.setOnLine(onLine);
            if (!isOnLine || onLine) {
                temp.add(poleLightemitEntity);
            }
        }
        return temp;
    }
    /**
     * 取出在线的熙讯
     *
     * @param list
     * @return
     */
@@ -102,6 +115,7 @@
    /**
     * 设置在线状态
     *
     * @param list
     */
    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
@@ -134,6 +148,32 @@
        return xiXun;
    }
    /**
     * 首页灯杆绑定信息
     */
    public EquipmentInfomation getLedByLightControlCodeInfo(String lightControlCode) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("熙讯LED");
        if (lightControlCode == null || lightControlCode.trim().length() == 0) {
            return equipmentInfo;
        }
        PoleLightemitEntity xiXun = getOne(Wrappers.lambdaQuery(PoleLightemitEntity.class).eq(PoleLightemitEntity::getLightemitControlCode, lightControlCode));
        if (xiXun != null) {
            equipmentInfo.setEquipmentCreateTime(xiXun.getCreateTime());
            equipmentInfo.setEquipmentMac(xiXun.getLightemitControlCode());
            equipmentInfo.setEquipmentName(xiXun.getLightemitName());
        }
        boolean isScreenOpen = lightemitUtils.getLedOnLine(xiXun.getLightemitControlCode());
        if (isScreenOpen) {
            equipmentInfo.setEquipmentState("在线");
        } else {
            equipmentInfo.setEquipmentState("离线");
        }
        return equipmentInfo;
    }
    public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
        boolean save = this.save(poleLightemit);
@@ -146,6 +186,17 @@
            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
            poleBindingService.bindPole(poleLightemit.getPoleId(), poleBindingParam);
        }
        /**
         * 熙汛led新增日志记录开始
         */
        List<String> listCode = new ArrayList<>();
        listCode.add(poleLightemit.getLightemitControlCode());
        String content = "{屏幕id:" + poleLightemit.getLightemitId() + ", 屏幕名称:" + poleLightemit.getLightemitName() + ", 屏幕编码:" + poleLightemit.getLightemitControlCode() + " }";
        StoreOperationRecordsUtils.storeOperationData(listCode, null, "熙汛LED新增", content);
        /**
         * 熙汛led新增日志记录结束
         */
        //  poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
    }
@@ -154,6 +205,11 @@
        PoleLightemitEntity byId = getById(ledId);
        if (byId == null) {
            throw new BusinessException("未找到LED屏");
        }
        boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(byId.getLightemitControlCode(), PoleBindingEnums.XIXUN);
        if (!belong) {
            throw new BusinessException("该设备不属于您,不能修改设备信息");
        }
        poleLightemit.setLightemitId(ledId);
        boolean b = this.updateById(poleLightemit);
@@ -169,24 +225,54 @@
            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
            poleBindingService.bindPole(poleLightemit.getPoleId(), poleBindingParam);
        }
        /**
         * 熙汛led编辑日志记录开始
         */
        List<String> listCode = new ArrayList<>();
        listCode.add(poleLightemit.getLightemitControlCode());
        String content = "{屏幕id:" + poleLightemit.getLightemitId() + ", 屏幕原名:" + byId.getLightemitName() + ", 屏幕名称:" + poleLightemit.getLightemitName() + ", 屏幕编码:" + poleLightemit.getLightemitControlCode() + " }";
        StoreOperationRecordsUtils.storeOperationData(listCode, null, "熙汛LED编辑", content);
        /**
         * 熙汛led编辑日志记录结束
         */
        // poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
    }
    public boolean deletePoleLightemit(List<Long> ledIds) {
        List<PoleLightemitEntity> poleLightemitEntities = listByIds(ledIds);
        if (poleLightemitEntities != null && poleLightemitEntities.size() != 0) {
            throw new BusinessException("设备不存在");
        }
        List<String> listCode = new ArrayList<>();
        // 删除设备绑定
        if (poleLightemitEntities != null && poleLightemitEntities.size() != 0) {
            for (PoleLightemitEntity poleLightemitEntitie : poleLightemitEntities) {
                if (poleLightemitEntitie.getLightemitControlCode() != null) {
                    //删除绑定关系//先删除绑定关系
                    listCode.add(poleLightemitEntitie.getLightemitControlCode());
                    poleBindingService.unBindPole(poleLightemitEntitie.getLightemitControlCode());
                }
            }
        }
        //删除设备
        boolean b = removeByIds(ledIds);
        /**
         * 熙汛led删除日志记录开始
         */
        List<String> nameList = new ArrayList<>();
        for (PoleLightemitEntity poleLightemitEntitie : poleLightemitEntities) {
            nameList.add(poleLightemitEntitie.getLightemitName());
        }
        String content = "{删除熙汛LED的设备信息:" + nameList.toString() + " }";
        StoreOperationRecordsUtils.storeOperationData(listCode, null, "熙汛LED删除", content);
        /**
         * 熙汛led删除日志记录结束
         */
        return b;
        // poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
    }