获取所有app用户pc接口增加最后位置信息
app任务详情增加完成状态和打卡图片
修复app用户任务列表分页total不正确的问题
已修改10个文件
136 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -166,6 +166,16 @@
        List<SysUser> offLineList=new ArrayList<>();
        for(SysUser sysUser:list)
        {
            ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId());
            if(ardAppPosition!=null) {
                Map<String, Object> params =new HashMap<>();
                params.put("longitude", ardAppPosition.getLongitude());
                params.put("lagitude", ardAppPosition.getLatitude());
                params.put("altitude", ardAppPosition.getAltitude());
                params.put("bearing", ardAppPosition.getBearing());
                sysUser.setParams(params);
            }
            Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
            if(online)
            {
ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
@@ -19,7 +19,14 @@
     * @return app位置
     */
    public ArdAppPosition selectArdAppPositionById(String id);
    /**
     * 按用户id查询最后的位置信息
     *
     * @param userId app用户主键
     * @return app位置
     */
    public ArdAppPosition selectLastArdAppPositionByUserId(String userId);
    /**
     * 查询app位置列表
     * 
ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
@@ -19,7 +19,13 @@
     * @return app位置
     */
    public ArdAppPosition selectArdAppPositionById(String id);
    /**
     * 按用户id查询最后的位置信息
     *
     * @param userId app用户主键
     * @return app位置
     */
    public ArdAppPosition selectLastArdAppPositionByUserId(String userId);
    /**
     * 查询app位置列表
     * 
ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
@@ -32,7 +32,16 @@
    public ArdAppPosition selectArdAppPositionById(String id) {
        return ardAppPositionMapper.selectArdAppPositionById(id);
    }
    /**
     * 按用户id查询最后的位置信息
     *
     * @param userId app用户主键
     * @return app位置
     */
    @Override
    public ArdAppPosition selectLastArdAppPositionByUserId(String userId){
        return ardAppPositionMapper.selectLastArdAppPositionByUserId(userId);
    }
    /**
     * 查询app位置列表
     *
ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
@@ -51,7 +51,6 @@
    @PreAuthorize("@ss.hasPermi('app:task:list')")
    @GetMapping("/listWithDetail")
    public TableDataInfo userlist(ArdAppTask ardAppTask) {
        startPage();
        List<ArdAppTask> ardAppTasks = ardAppTaskService.selectArdAppTaskListWithDetail(ardAppTask);
        return getDataTable(ardAppTasks);
    }
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
@@ -54,9 +54,35 @@
    @Excel(name = "任务ID")
    private String taskId;
    /**
     * 状态(0未完成 1已完成)
     */
    @Excel(name = "状态", readConverterExp = "0=未完成,1=已完成")
    private String status;
    /** 打卡图片url */
    @Excel(name = "打卡图片url")
    private String clockInPicUrl;
    /** app任务详情图片信息 */
    private List<ArdAppTaskDetailPic> ardAppTaskDetailPic;
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getClockInPicUrl() {
        return clockInPicUrl;
    }
    public void setClockInPicUrl(String clockInPicUrl) {
        this.clockInPicUrl = clockInPicUrl;
    }
    public List<ArdAppTaskDetailPic> getArdAppTaskDetailPic() {
        return ardAppTaskDetailPic;
    }
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.app.task.service.impl;
import java.util.List;
import com.github.pagehelper.PageHelper;
import com.ruoyi.app.task.domain.ArdAppTaskDetail;
import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic;
import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
@@ -9,7 +11,9 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +21,7 @@
import com.ruoyi.app.task.mapper.ArdAppTaskMapper;
import com.ruoyi.app.task.domain.ArdAppTask;
import com.ruoyi.app.task.service.IArdAppTaskService;
import javax.annotation.Resource;
/**
@@ -54,6 +59,7 @@
    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) {
        return ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
    }
    /**
     * 查询app任务详情管理列表
     *
@@ -63,7 +69,31 @@
    @Override
    public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask) {
        ardAppTask.setUserId(SecurityUtils.getUserId());
        return ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask);
        List<ArdAppTask> list1 = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask);
        List<ArdAppTask>list=new ArrayList<>();
        list.addAll(list1);
        return list;
//        boolean flag=false;
//        List<ArdAppTask> ardAppTasks = ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
//        ardAppTask.setUserId(SecurityUtils.getUserId());
//        List<ArdAppTask> ardAppTasksNew=new ArrayList<>();
//        for (ArdAppTask appTask : ardAppTasks) {
//            ArdAppTask task = ardAppTaskMapper.selectArdAppTaskById(appTask.getId());
//            List<ArdAppTaskDetail> ardAppTaskDetailListNew = new ArrayList<>();
//            List<ArdAppTaskDetail> ardAppTaskDetailList = task.getArdAppTaskDetailList();
//            for (ArdAppTaskDetail appTaskDetail : ardAppTaskDetailList) {
//                if (appTaskDetail.getUserId().equals(ardAppTask.getUserId())) {
//                    ardAppTaskDetailListNew.add(appTaskDetail);
//                    flag=true;
//                }
//            }
//            if(flag) {
//                appTask.setArdAppTaskDetailList(ardAppTaskDetailListNew);
//                ardAppTasksNew.add(appTask);
//            }
//            flag=false;
//        }
//        return ardAppTasksNew;
    }
    /**
@@ -166,6 +196,7 @@
                List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
                for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
                    ardAppTaskDetail.setId(IdUtils.simpleUUID());
                    ardAppTaskDetail.setStatus("0");
                    ardAppTaskDetail.setTaskId(id);
                    ardAppTaskDetail.setUserId(userId);
                    list.add(ardAppTaskDetail);
@@ -185,8 +216,7 @@
    public void insertArdAppTaskText(ArdAppTask ardAppTask) {
        String userId = ardAppTask.getUserId();
        String text = ardAppTask.getText();
        if(StringUtils.isEmpty(text))
        {
        if (StringUtils.isEmpty(text)) {
            return;
        }
        ArdAppTaskText ardAppTaskText = new ArdAppTaskText();
ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
@@ -29,7 +29,12 @@
        <include refid="selectArdAppPositionVo"/>
        where id = #{id}
    </select>
    <select id="selectLastArdAppPositionByUserId" parameterType="String" resultMap="ArdAppPositionResult">
        <include refid="selectArdAppPositionVo"/>
        where user_id = #{userId}
        order by create_time desc
        limit 1
    </select>
    <insert id="insertArdAppPosition" parameterType="ArdAppPosition">
        insert into ard_app_position
        <trim prefix="(" suffix=")" suffixOverrides=",">
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -32,6 +32,8 @@
        <result property="text" column="sub1_text"/>
        <result property="voice" column="sub1_voice"/>
        <result property="taskId" column="sub1_task_id"/>
        <result property="status" column="sub1_status"/>
        <result property="clockInPicUrl" column="sub1_clock_in_pic_url"/>
    </resultMap>
    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
        <result property="id" column="sub2_id"/>
@@ -69,6 +71,13 @@
            <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
            <if test="text != null  and text != ''">and text = #{text}</if>
            <if test="voice != null  and voice != ''">and voice = #{voice}</if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                and create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                and create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
            <!-- 数据范围过滤 -->
            ${params.dataScope}
        </where>
@@ -94,11 +103,19 @@
        c.altitude as sub1_altitude,
        c.user_id as sub1_user_id,
        c.text as sub1_text,
        c.voice as sub1_voice
        c.voice as sub1_voice,
        c.status as sub1_status,
        c.clock_in_pic_url as sub1_clock_in_pic_url
        from ard_app_task a
        left join ard_app_task_pic b on b.task_id = a.id
        left join ard_app_task_detail c on c.task_id = a.id
        where c.user_id = #{userId}
        <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
            and a.create_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
        </if>
        <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
            and a.create_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
        </if>
    </select>
    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
        select a.id,
@@ -163,7 +180,9 @@
               c.altitude as sub_altitude,
               c.user_id as sub_user_id,
               c.text as sub_text,
               c.voice as sub_voice
               c.voice as sub_voice,
               c.status as sub_status,
               c.clock_in_pic_url as sub_clock_in_pic_url
        from ard_app_task a
                 left join ard_app_task_detail c on c.task_id = a.id
        where a.id = #{id}
@@ -260,16 +279,18 @@
    </delete>
    <insert id="batchArdAppTaskDetail">
        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id) values
        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id,status,clock_in_pic_url) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.id}, #{item.name}, #{item.longitude}, #{item.latitude}, #{item.altitude}, #{item.userId},
            #{item.text}, #{item.voice}, #{item.taskId})
            #{item.text}, #{item.voice}, #{item.taskId}, #{item.status}, #{item.clockInPicUrl})
        </foreach>
    </insert>
    <update id="updateArdAppTaskDetail" parameterType="ArdAppTaskDetail">
        update ard_app_task_detail
        <trim prefix="SET" suffixOverrides=",">
            <if test="status != null">status = #{status},</if>
            <if test="clockInPicUrl != null">clock_in_pic_url = #{clockInPicUrl},</if>
            <if test="text != null">text = #{text},</if>
            <if test="voice != null">voice = #{voice},</if>
        </trim>
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -140,6 +140,7 @@
     */
    private String rongCloudToken;
    public SysUser() {
    }