吉安感知网项目-后端
xiebin
2026-04-03 2358538cb53e2784caf8f4e09d9f638f30e55211
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdWorkOrderMapper.xml
@@ -81,50 +81,54 @@
    <select id="selectGdWorkOrderPage" resultMap="gdWorkOrderResultMap">
        select
            wo.id,
            wo.work_order_name,
            wo.work_order_code,
            wo.work_order_type,
            wo.device_load_demand,
            wo.recommend_device_ids,
            wo.work_order_status,
            wo.execute_start_time,
            wo.execute_end_time,
            wo.service_party,
            ST_AsText(wo.geom) geom,
            wo.remark,
            wo.area_code,
            wo.create_user,
            wo.create_dept,
            wo.create_time,
            wo.update_user,
            wo.update_time,
            wo.status,
            wo.is_deleted,
            bu.name create_user_name
        wo.id,
        wo.work_order_name,
        wo.work_order_code,
        wo.work_order_type,
        wo.device_load_demand,
        wo.recommend_device_ids,
        wo.work_order_status,
        wo.execute_start_time,
        wo.execute_end_time,
        wo.service_party,
        ST_AsText(wo.geom) geom,
        wo.remark,
        wo.area_code,
        wo.create_user,
        wo.create_dept,
        wo.create_time,
        wo.update_user,
        wo.update_time,
        wo.status,
        wo.is_deleted,
        bu.name create_user_name
        from ja_gd_work_order wo
            left join blade_user bu on wo.create_user = bu.id::VARCHAR
        /* 修改点1:关联两端全部转为 VARCHAR */
        left join blade_user bu on wo.create_user::VARCHAR = bu.id::VARCHAR
        <where>
                and wo.is_deleted = 0
            /* 修正语法:去掉开头的 and */
            wo.is_deleted = 0
            <if test="param2.workOrderStatus != null and param2.workOrderStatus != ''">
                and wo.work_order_status like concat(#{param2.workOrderStatus},'%')
                and wo.work_order_status::VARCHAR like concat(#{param2.workOrderStatus},'%')
            </if>
            <if test="param2.workOrderName != null and param2.workOrderName != ''">
                and wo.work_order_name like concat('%',#{param2.workOrderName},'%')
            </if>
            <if test="param2.workOrderType != null and param2.workOrderType != ''">
                and wo.work_order_type = #{param2.workOrderType}
                and wo.work_order_type::VARCHAR = #{param2.workOrderType}::VARCHAR
            </if>
            <if test="param2.createUser != null ">
                and wo.create_user = #{param2.createUser}
                /* 修改点2:过滤条件也进行类型对齐 */
                and wo.create_user::VARCHAR = #{param2.createUser}::VARCHAR
            </if>
            <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != ''">
                and wo.create_time BETWEEN #{param2.startTime} AND #{param2.endTime}
            </if>
            <if test="param2.deptList != null and param2.deptList.size > 0">
                and wo.create_dept in
                /* 修改点3:IN 查询内部元素类型转换 */
                and wo.create_dept::VARCHAR in
                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
                    #{deptId}
                    #{deptId}::VARCHAR
                </foreach>
            </if>
        </where>
@@ -156,7 +160,7 @@
    </select>
    <!-- 自定义插入语句,使用ST_GeomFromText处理几何数据 -->
    <!-- 自定义插入语句,使用ST_GeometryFromText处理几何数据 -->
    <insert id="saveWorkOrder" parameterType="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
        INSERT INTO ja_gd_work_order ( work_order_name, work_order_code, work_order_type,
                                      device_load_demand, recommend_device_ids, work_order_status,
@@ -167,12 +171,12 @@
        VALUES ( #{workOrderParam.workOrderName}, #{workOrderParam.workOrderCode}, #{workOrderParam.workOrderType},
                #{workOrderParam.deviceLoadDemand}, #{workOrderParam.recommendDeviceIds}, #{workOrderParam.workOrderStatus},
                #{workOrderParam.executeStartTime}, #{workOrderParam.executeEndTime}, #{workOrderParam.serviceParty},
                ST_GeomFromText(#{workOrderParam.geom}), #{workOrderParam.remark}, #{workOrderParam.areaCode},
                ST_GeometryFromText(#{workOrderParam.geom}), #{workOrderParam.remark}, #{workOrderParam.areaCode},
                #{workOrderParam.createUser}, #{workOrderParam.createDept}, #{workOrderParam.createTime},
                #{workOrderParam.updateUser}, #{workOrderParam.updateTime}, #{workOrderParam.status}, #{workOrderParam.isDeleted})
    </insert>
    <!-- 自定义更新语句,使用ST_GeomFromText处理几何数据 -->
    <!-- 自定义更新语句,使用ST_GeometryFromText处理几何数据 -->
    <update id="updateWorkOrderById" parameterType="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
        UPDATE ja_gd_work_order
        <set>
@@ -204,7 +208,7 @@
                service_party = #{workOrderParam.serviceParty},
            </if>
            <if test="workOrderParam.geom != null and workOrderParam.geom != ''">
                geom = ST_GeomFromText(#{workOrderParam.geom}),
                geom = ST_GeometryFromText(#{workOrderParam.geom}),
            </if>
            <if test="workOrderParam.remark != null and workOrderParam.remark != ''">
                remark = #{workOrderParam.remark},