czt
2025-12-01 096296cd7485c5583c8194d88cca700e3c4d84a0
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java
@@ -1,9 +1,11 @@
package com.fzzy.igds.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RedisConst;
import com.fzzy.igds.domain.DeviceSer;
import com.fzzy.igds.repository.DeviceSerRepository;
import com.fzzy.igds.mapper.DeviceSerMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
@@ -26,21 +28,37 @@
    @Resource
    private ISysDeptService iSysDeptService;
    @Resource
    private DeviceSerRepository deviceSerRepository;
    private DeviceSerMapper deviceSerMapper;
    @Resource
    private RedisCache redisCache;
    /**
     * JPA 查询分机列表
     * 根据条件查询分机信息
     *
     * @param companyId
     * @param deptId
     * @param parentId
     * @return
     */
    public List<DeviceSer> getAllSerByCompanyId(String companyId) {
        return deviceSerRepository.getAllSerByCompanyId(companyId);
    public List<DeviceSer> listDeviceSer(String companyId, String deptId, String parentId) {
        QueryWrapper<DeviceSer> queryWrapper = new QueryWrapper<>();
        if (StringUtils.isNotBlank(companyId)) {
            queryWrapper.eq("company_id", companyId);
        }
        if (StringUtils.isNotBlank(deptId)) {
            queryWrapper.eq("dept_id", deptId);
        }
        if (StringUtils.isNotBlank(parentId)) {
            queryWrapper.likeRight("dept_id", parentId);
        }
        return deviceSerMapper.selectList(queryWrapper);
    }
    /**
     * JPA 查询分机列表
     * 查询分机列表
     *
     * @return
     */
@@ -48,14 +66,15 @@
        SysUser user = ContextUtil.getLoginUser();
        SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
        if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
            return deviceSerRepository.getDataByDeptId(user.getDeptId() + "");
        }else {
            return deviceSerRepository.getDataByParentId(user.getDeptId() + "%");
            return this.listDeviceSer(null, user.getDeptId() + "", null);
        } else {
            return this.listDeviceSer(null, null, user.getDeptId() + "");
        }
    }
    /**
     * JPA 查询分机
     * 查询分机
     *
     * @param companyId
     * @param id
@@ -69,11 +88,16 @@
        if (StringUtils.isEmpty(companyId)) {
            companyId = ContextUtil.getCompanyId();
        }
        return deviceSerRepository.getDataById(companyId, id);
        QueryWrapper<DeviceSer> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("company_id", companyId);
        queryWrapper.eq("id", id);
        return deviceSerMapper.selectOne(queryWrapper);
    }
    /**
     * JPA 更新保存分机
     * 更新保存分机
     *
     * @param ser
     */
@@ -86,23 +110,32 @@
        }
        if (StringUtils.isEmpty(ser.getCompanyId())) {
            ser.setCompanyId(ContextUtil.getCompanyId());
        }
        if (StringUtils.isEmpty(ser.getDeptId())) {
            ser.setDeptId(ContextUtil.subDeptId(null));
        }
        if (StringUtils.isBlank(ser.getUpdateBy())) {
            ser.setCreateBy(ContextUtil.getLoginUserName());
            ser.setCreateTime(new Date());
            ser.setUpdateBy(ContextUtil.getLoginUserName());
            ser.setUpdateTime(new Date());
            deviceSerMapper.insert(ser);
        } else {
            ser.setUpdateBy(ContextUtil.getLoginUserName());
            ser.setUpdateTime(new Date());
            deviceSerMapper.updateById(ser);
        }
        ser.setUpdateBy(ContextUtil.getLoginUserName());
        ser.setUpdateTime(new Date());
        deviceSerRepository.save(ser);
        refreshCache(ser.getCompanyId());
    }
    /**
     * JPA 更新保存分机
     * 更新保存分机
     *
     * @param ser
     */
    public void delSer(DeviceSer ser) {
        deviceSerRepository.delete(ser);
        deviceSerMapper.deleteById(ser);
        //删除缓存
        delCache(ser.getCompanyId(), ser.getId());
@@ -111,6 +144,7 @@
    /**
     * 更新分机信息
     *
     * @param status
     * @param ip
     * @param port
@@ -124,12 +158,13 @@
        ser.setPort(port);
        ser.setUpdateTime(new Date());
        deviceSerRepository.save(ser);
        deviceSerMapper.updateById(ser);
        setCacheSer(ser);
    }
    /**
     * 更新分机信息
     *
     * @param data
     */
    public void updateByData(DeviceSer data) {
@@ -145,13 +180,14 @@
        ser.setPort(data.getPort());
        ser.setUpdateTime(new Date());
        ser.setSn(data.getSn());
        deviceSerRepository.save(ser);
        deviceSerMapper.updateById(ser);
        setCacheSer(ser);
    }
    /**
     * 更新分机信息
     *
     * @param companyId
     * @param serId
     * @param controlModel
@@ -166,7 +202,7 @@
        ser.setStatus(Constant.YN_Y);
        ser.setControlModel(controlModel);
        ser.setUpdateTime(new Date());
        deviceSerRepository.save(ser);
        deviceSerMapper.updateById(ser);
        setCacheSer(ser);
    }
@@ -180,7 +216,7 @@
        if (StringUtils.isEmpty(companyId)) {
            companyId = ContextUtil.getCompanyId();
        }
        List<DeviceSer> list = this.getAllSerByCompanyId(companyId);
        List<DeviceSer> list = this.listDeviceSer(companyId, null, null);
        this.setCacheSer(list, companyId);
    }
@@ -270,16 +306,17 @@
    /**
     * 根据类型获取分机信息
     *
     * @param companyId
     * @param type
     * @return
     */
    public List<DeviceSer> getSerCacheByType(String companyId, String type) {
        List<DeviceSer> listAll = this.getCacheSerList(companyId);
        if (null == listAll || listAll.isEmpty()){
        if (null == listAll || listAll.isEmpty()) {
            return null;
        }
        if (null == type){
        if (null == type) {
            return listAll;
        }
        List<DeviceSer> result = new ArrayList<DeviceSer>();
@@ -391,25 +428,33 @@
    }
    /**
     * JPA-更新设备全部离线
     * -更新设备全部离线
     *
     * @param companyId
     */
    public void allOffLine(String companyId) {
        if (StringUtils.isEmpty(companyId)) {
            companyId = ContextUtil.getCompanyId();
        }
        deviceSerRepository.updateSerStatus(companyId, Constant.YN_N);
        UpdateWrapper<DeviceSer> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("company_id", companyId).set("status", Constant.YN_N);
        deviceSerMapper.update(null, updateWrapper);
    }
    /**
     * JPA-根据SN更新状态
     * -根据SN更新状态
     *
     * @param ip
     * @param port
     * @param sn
     * @param status
     */
    public void onlineBySn(String ip, Integer port, String sn, String status) {
        deviceSerRepository.updateBySn(ip, port, status, sn, new Date());
        UpdateWrapper<DeviceSer> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("sn", sn).set("ip", ip).set("port", port).set("update_time", new Date());
        deviceSerMapper.update(null, updateWrapper);
    }
}