吉安感知网项目-后端
linwei
2026-01-30 9589ee836c7921cbd85edd0dec994c77fa5ba7e4
设备共享接口
5 files modified
48 ■■■■■ changed files
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/controller/FwDeviceController.java 12 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml 12 ●●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/IFwDeviceService.java 5 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java 15 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceVO.java 4 ●●●● patch | view | raw | blame | history
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/controller/FwDeviceController.java
@@ -185,13 +185,21 @@
    /**
     * 查询非本部门区域的设备
     * @param regionCode 区域编码,用于查询不在该区域内的设备
     * @param deptId 机构ID,用于限定查询范围
     * @return 设备列表
     */
    @GetMapping("/nonDeptAreaDevices")
    @ApiOperationSupport(order = 9)
    @ApiOperation(value = "查询非本部门区域的设备", notes = "查询不在当前部门及其子部门区域内的设备")
    public R<List<FwDeviceVO>> getNonDeptAreaDevices() {
        return R.data(fwDeviceService.getNonDeptAreaDevices());
    @ApiImplicitParams({
        @ApiImplicitParam(name = "regionCode", value = "区域编码", paramType = "query", dataType = "string", required = true),
        @ApiImplicitParam(name = "deptId", value = "机构ID", paramType = "query", dataType = "string", required = true)
    })
    public R<List<FwDeviceVO>> getNonDeptAreaDevices(
            @ApiParam(value = "区域编码", required = true) @RequestParam String regionCode,
            @ApiParam(value = "机构ID", required = true) @RequestParam String deptId) {
        return R.data(fwDeviceService.getNonDeptAreaDevices(regionCode, deptId));
    }
    /**
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -711,14 +711,9 @@
        SELECT
            d.*,
            t.out_target,
            ps.id AS shareId,
            CASE
                WHEN EXISTS (
                    SELECT 1
                    FROM ja_fw_device_per_share ps
                    WHERE ps.device_id = d.id
                    AND ps.loan_to_dept_id = #{currentDeptId}
                    AND ps.is_deleted = 0
                ) THEN TRUE
                WHEN ps.id IS NOT NULL THEN TRUE
                ELSE FALSE
            END AS isShared
        FROM
@@ -739,6 +734,9 @@
            out_target IS NOT NULL
            ) t ON d.id = t.device_id
            AND t.rn = 1
            LEFT JOIN ja_fw_device_per_share ps ON ps.device_id = d.id
            AND ps.loan_to_dept_id = #{currentDeptId}
            AND ps.is_deleted = 0
        WHERE
            d.is_deleted = 0
          and d.effective_range_km is not null
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/IFwDeviceService.java
@@ -157,7 +157,10 @@
    /**
     * 查询非本部门区域的设备
     *
     * @param regionCode 区域编码,用于查询不在该区域内的设备
     * @param deptId 机构ID,用于限定查询范围
     * @return 设备列表
     */
    List<FwDeviceVO> getNonDeptAreaDevices();
    List<FwDeviceVO> getNonDeptAreaDevices(String regionCode, String deptId);
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
@@ -204,16 +204,17 @@
    /**
     * 查询非本部门区域的设备
     *
     * @param regionCode 区域编码,用于查询不在该区域内的设备
     * @param deptId 机构ID,用于限定查询范围
     * @return 设备列表
     */
    @Override
    public List<FwDeviceVO> getNonDeptAreaDevices() {
        // 1. 获取当前用户的部门ID
        String currentDeptId = AuthUtil.getDeptId();
        Dept dept = SysCache.getDept(Long.valueOf(currentDeptId));
        // 3. 查询不在这些部门区域内的设备
        Region byCode = RegionCache.getByCode(dept.getAreaCode());
        List<FwDeviceVO> deviceList = baseMapper.selectNonDeptAreaDevices(byCode.getName(), currentDeptId);
    public List<FwDeviceVO> getNonDeptAreaDevices(String regionCode, String deptId) {
        // 1. 根据区域编码获取区域名称
        Region region = RegionCache.getByCode(regionCode);
        String regionName = region != null ? region.getName() : null;
        // 2. 查询不在这些部门区域内的设备
        List<FwDeviceVO> deviceList = baseMapper.selectNonDeptAreaDevices(regionName, deptId);
        return deviceList;
    }
}
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/vo/FwDeviceVO.java
@@ -202,4 +202,8 @@
    @ApiModelProperty(value = "是否被共享给当前机构")
    private Boolean isShared;
    @ApiModelProperty(value = "共享记录ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long shareId;
}