2021与蓝度共同重构项目,服务端
liuhaonan
2022-06-06 15fe445c820f28139e4e7e1a4cb286ad6ae37e6e
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -12,9 +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.OrderByEnums;
import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.PoleLightemitEntityMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -63,20 +65,93 @@
     * @param isOnLine
     * @return
     */
    public List<PoleLightemitEntity> listLed(String keyword, boolean isOnLine) {
    public List<PoleLightemitEntity> listLed(String keyword, Integer order, Integer seq, boolean isOnLine) {
        List<PoleLightemitEntity> poleLightemitEntityList;
        //排序字段
        String orderByResult = "id";
        //正序、倒叙
        String orderBySeq = OrderByEnums.ASC.getCode();
        if (order != null) {
            switch (order) {
                case 1:
                    orderByResult = OrderByEnums.LED_S_CODE.getCode();
                    break;
                case 2:
                    orderByResult = OrderByEnums.LED_S_NAME.getCode();
                    break;
                case 3:
                    orderByResult = OrderByEnums.LED_S_POLE_NAME.getCode();
                    break;
                case 4:
                    orderByResult = OrderByEnums.LED_S_CREATE_TIME.getCode();
                    break;
                default:
            }
        }
        if (seq != null) {
            switch (seq) {
                case 1:
                    orderBySeq = " ASC";
                    break;
                case 2:
                    orderBySeq = " DESC";
                    break;
                default:
                    break;
            }
        }
        //排序方式
        String orderBy = orderByResult + " " + orderBySeq;
        //超管
        if (SecurityUtils.getClientId() == null) {
            poleLightemitEntityList = poleLightemitDao.listLed(keyword, null);
            poleLightemitEntityList = poleLightemitDao.listLed(keyword, null, orderBy);
        } else {
            poleLightemitEntityList = poleLightemitDao.listLed(keyword, SecurityUtils.getUserId());
            poleLightemitEntityList = poleLightemitDao.listLed(keyword, SecurityUtils.getUserId(), orderBy);
        }
        if (isOnLine) {
            return ledOnline(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 keyword
     * @return
     */
    public List<PoleLightemitEntity> listLedOnBinding(String keyword) {
        List<PoleLightemitEntity> poleLightemitEntityList;
        //超管
        if (SecurityUtils.getClientId() == null) {
            poleLightemitEntityList = poleLightemitDao.listLedOnBinding(keyword, null);
        } else {
            ledOnlineCheck(poleLightemitEntityList);
            return poleLightemitEntityList;
            poleLightemitEntityList = poleLightemitDao.listLedOnBinding(keyword, SecurityUtils.getUserId());
        }
        for (PoleLightemitEntity poleLightemitEntity : poleLightemitEntityList) {
            //查询设备在线状态
            boolean onLine = lightemitUtils.getLedOnLine(poleLightemitEntity.getLightemitControlCode());
            //查询屏幕的开启状态
            String isOpen = lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode());
            poleLightemitEntity.setIsOpen(String.valueOf(isOpen));
            poleLightemitEntity.setOnLine(onLine);
        }
        return poleLightemitEntityList;
    }
    /**
@@ -170,13 +245,24 @@
        boolean save = this.save(poleLightemit);
        // 绑定灯杆
        if (save && poleLightemit.getPoleId() != null) {
        if (save && poleLightemit.getStreetlightId() != null) {
            PoleBindingParam poleBindingParam = new PoleBindingParam();
            poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
            poleBindingParam.setDeviceType(1);
            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
            poleBindingService.bindPole(poleLightemit.getPoleId(), poleBindingParam);
            poleBindingService.bindPole(poleLightemit.getStreetlightId(), 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());
    }
@@ -189,13 +275,13 @@
        boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(byId.getLightemitControlCode(), PoleBindingEnums.XIXUN);
        if (!belong) {
            throw new RuntimeException("该设备不属于您,不能修改设备信息");
            throw new BusinessException("该设备不属于您,不能修改设备信息");
        }
        poleLightemit.setLightemitId(ledId);
        boolean b = this.updateById(poleLightemit);
        // 绑定灯杆
        if (b && poleLightemit.getPoleId() != null) {
        if (b && poleLightemit.getStreetlightId() != null) {
            //先删除绑定关系
            poleBindingService.unBindPole(null, poleLightemit.getLightemitControlCode());
            //再绑定
@@ -203,26 +289,56 @@
            poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
            poleBindingParam.setDeviceType(10);
            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
            poleBindingService.bindPole(poleLightemit.getPoleId(), poleBindingParam);
            poleBindingService.bindPole(poleLightemit.getStreetlightId(), poleBindingParam);
        }
        /**
         * 熙汛led编辑日志记录开始
         */
        List<String> listCode = new ArrayList<>();
        listCode.add(byId.getLightemitControlCode());
        String content = "{屏幕id:" + byId.getLightemitId() + ", 屏幕原名:" + byId.getLightemitName() + ", 屏幕名称:" + poleLightemit.getLightemitName() + ", 屏幕编码:" + byId.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());
    }