吉安感知网项目-后端
linwei
2026-02-03 105460195ad5e50fdc3d0c9a2ffd3185ed18fd79
工单详情优化
10 files modified
118 ■■■■ changed files
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java 4 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml 3 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.java 7 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml 20 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdManageDevicePageParam.java 3 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java 15 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java 1 ●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java 9 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java 36 ●●●●● patch | view | raw | blame | history
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
@@ -79,8 +79,8 @@
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入gdPatrolTask")
    public R<GdPatrolTaskVO> detail(GdPatrolTaskEntity gdPatrolTask) {
        GdPatrolTaskEntity detail = gdPatrolTaskService.getOne(Condition.getQueryWrapper(gdPatrolTask));
        return R.data(GdPatrolTaskWrapper.build().entityVO(detail));
        GdPatrolTaskVO detail = gdPatrolTaskService.getPatrolTaskDetail(gdPatrolTask);
        return R.data(detail);
    }
    /**
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdManageDeviceMapper.xml
@@ -74,6 +74,9 @@
            <if test="geom != null and geom != ''">
                and ST_Intersects(md.geom, ST_GeomFromText(#{geom}))
            </if>
            <if test="deviceType != null and deviceType != '' ">
                and md.device_type = #{deviceType}
            </if>
                and md.is_deleted = 0
        </where>
    </select>
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.java
@@ -67,4 +67,11 @@
     * @return
     */
    GdPatrolTaskVO getPatrolTaskIdById(Long patrolTaskId);
    /**
     *
     * @param gdPatrolTaskEntity
     * @return
     */
    GdPatrolTaskVO getPatrolTaskDetail(GdPatrolTaskEntity gdPatrolTaskEntity);
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml
@@ -83,6 +83,7 @@
    <select id="exportGdPatrolTask" resultType="org.sxkj.gd.workorder.excel.GdPatrolTaskExcel">
        SELECT * FROM ja_gd_patrol_task ${ew.customSqlSegment}
    </select>
    <select id="getPatrolTaskIdById" resultType="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
        SELECT
            pt.*,
@@ -94,6 +95,25 @@
        WHERE pt.id = #{patrolTaskId}
    </select>
    <select id="getPatrolTaskDetail" resultType="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
        SELECT
            pt.*,
            md.airport_id as airport_id,
            md.height,
            md.longitude,
            md.latitude,
            md.nickname as device_name,
            wo.work_order_name
        FROM
            ja_gd_patrol_task pt
        left join
            ja_gd_work_order wo on pt.work_order_id = wo.id
        left join
            ja_gd_manage_device md on md.id = pt.device_id
        WHERE pt.id = #{id}
    </select>
    <!-- 自定义更新工单状态语句 -->
    <update id="updateWorkOrderById" parameterType="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
        UPDATE ja_gd_work_order
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdManageDevicePageParam.java
@@ -56,4 +56,7 @@
    @ApiModelProperty(value = "设备位置")
    private String location;
    @ApiModelProperty(value = "设备类型(0机场,1无人机)")
    private String deviceType;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
@@ -17,14 +17,15 @@
package org.sxkj.gd.workorder.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel;
import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam;
import org.sxkj.gd.workorder.vo.GdPatrolTaskVO;
import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
@@ -89,4 +90,10 @@
     */
    R pushXingtuFlyTask(Long patrolTaskId);
    /**
     * 获取巡查任务详情
     * @param gdPatrolTaskEntity
     * @return
     */
    GdPatrolTaskVO getPatrolTaskDetail(GdPatrolTaskEntity gdPatrolTaskEntity);
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdManageDeviceServiceImpl.java
@@ -192,6 +192,7 @@
            if (parent != null) {
                entity.setLongitude(parent.getLongitude());
                entity.setLatitude(parent.getLatitude());
                entity.setHeight(parent.getHeight());
            }
        }
        return saveOrUpdateDevice(entity);
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -23,19 +23,19 @@
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.sxkj.common.constant.WordOrderConstant;
import org.sxkj.common.utils.OrderNumUtils;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.gd.common.GdMultipartFileUtil;
import org.sxkj.gd.workorder.dto.GdXingtuFlyTaskSaveDTO;
import org.sxkj.gd.workorder.entity.GdManageDeviceEntity;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import org.sxkj.gd.workorder.entity.GdTaskResultEntity;
import org.sxkj.gd.workorder.entity.GdWorkOrderEntity;
@@ -47,13 +47,12 @@
import org.sxkj.gd.workorder.mapper.GdPatrolTaskMapper;
import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam;
import org.sxkj.gd.workorder.service.IGdPatrolTaskService;
import org.sxkj.gd.workorder.service.IGdManageDeviceService;
import org.sxkj.gd.workorder.service.IGdPatrolTaskService;
import org.sxkj.gd.workorder.service.IGdTaskResultService;
import org.sxkj.gd.workorder.service.IGdWorkOrderFlowService;
import org.sxkj.gd.workorder.utils.GdPatrolReportWordUtil;
import org.sxkj.gd.workorder.vo.GdPatrolTaskVO;
import org.sxkj.gd.common.GdMultipartFileUtil;
import org.sxkj.gd.xingtu.JianXingtuApiService;
import org.sxkj.resource.entity.Attach;
import org.sxkj.resource.feign.IAttachClient;
@@ -67,8 +66,6 @@
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * 巡查任务表 服务实现类
@@ -690,4 +687,9 @@
        param.setTaskType("航线飞行");
        return param;
    }
    @Override
    public GdPatrolTaskVO getPatrolTaskDetail(GdPatrolTaskEntity gdPatrolTaskEntity) {
        return baseMapper.getPatrolTaskDetail(gdPatrolTaskEntity);
    }
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdPatrolTaskVO.java
@@ -141,4 +141,13 @@
    @ApiModelProperty(value = "机场id")
    private String airportId;
    @ApiModelProperty(value = "高度")
    private String height;
    @ApiModelProperty(value = "经度")
    private String longitude;
    @ApiModelProperty(value = "纬度")
    private String latitude;
}
drone-service/drone-gd/src/main/java/org/sxkj/gd/xingtu/JianXingtuApiService.java
@@ -40,7 +40,8 @@
    /**
     * 获取星图登录token
     * @return  token
     *
     * @return token
     */
    @SneakyThrows
    public String getToken() {
@@ -82,6 +83,7 @@
    /**
     * 设备列表-无人机
     *
     * @param name 名称
     * @return 接口响应
     */
@@ -92,6 +94,7 @@
    /**
     * 设备列表-机巢
     *
     * @param name 名称
     * @return 接口响应
     */
@@ -102,6 +105,7 @@
    /**
     * 新增飞行任务
     *
     * @param param 请求参数
     * @return 接口响应
     */
@@ -123,24 +127,30 @@
        if (StringUtil.isBlank(token) || "获取token失败".equals(token)) {
            return R.fail("获取token失败");
        }
        HttpHeaders headers = new HttpHeaders();
        headers.set("authorization", token);
        log.info("请求外部接口: {} {}", url, body);
        HttpEntity<Object> entity = new HttpEntity<>(body, headers);
        ResponseEntity<R> response = restTemplate.exchange(url, HttpMethod.POST, entity, R.class);
        log.info("响应外部接口: {}", response);
        if (response.getStatusCode().is2xxSuccessful()) {
            R responseBody = response.getBody();
            if (responseBody != null) {
                return responseBody;
        try {
            HttpHeaders headers = new HttpHeaders();
            headers.set("authorization", token);
            log.info("请求外部接口: {} {}", url, body);
            HttpEntity<Object> entity = new HttpEntity<>(body, headers);
            ResponseEntity<R> response = restTemplate.exchange(url, HttpMethod.POST, entity, R.class);
            log.info("响应外部接口: {}", response);
            if (response.getStatusCode().is2xxSuccessful()) {
                R responseBody = response.getBody();
                if (responseBody != null) {
                    return responseBody;
                }
                return R.fail("接口返回为空");
            }
            return R.fail("接口返回为空");
            return R.fail("请求外部接口失败");
        } catch (Exception e) {
            log.error("请求外部接口异常: ", e);
            return R.fail("请求外部接口异常: " + e.getMessage());
        }
        return R.fail("请求外部接口失败");
    }
    /**
     * 解析JSON字符串为Map
     *
     * @param input JSON字符串
     * @return 解析后的Map
     */