xuhy
2025-06-30 9540084cf921673813d4d4685aaddebe628d1c1c
修改登录
4个文件已添加
11个文件已修改
339 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectDeptController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/OssController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/OssUploadUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/LeaveDTO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/query/AppealListQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/IndexVO.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskPendingVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskTodayVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskTomorrowVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/system/AppealListVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TAppealMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectDeptController.java
@@ -63,7 +63,7 @@
                BeanUtils.copyProperties(projectDept,projectDeptListNoLimitVO1);
                projectDeptListNoLimitVOS1.add(projectDeptListNoLimitVO1);
            }
            projectDeptListNoLimitVO.setChildren(projectDeptListNoLimitVOS1);
            projectDeptListNoLimitVO.setChildrenList(projectDeptListNoLimitVOS1);
            projectDeptListNoLimitVOS.add(projectDeptListNoLimitVO);
        }
        return R.ok(projectDeptListNoLimitVOS);
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/OssController.java
New file
@@ -0,0 +1,42 @@
package com.ruoyi.web.controller.api;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.web.controller.tool.OssUploadUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
 * <p>
 * 任务申诉 前端控制器
 * </p>
 *
 * @author xiaochen
 * @since 2025-05-28
 */
@Api(tags = "文件上传")
@RestController
@RequestMapping("/oss")
public class OssController {
    @PostMapping("/upload")
    @ApiOperation(value = "文件上传",tags = "文件上传")
    public R<String> uploadOSS(@RequestPart("file") MultipartFile file) {
        try {
            // 上传并返回访问地址
            String fileName = file.getOriginalFilename();
            String prefix = fileName.substring(fileName.lastIndexOf("."));
            long fileSize = file.getSize();
            String url = OssUploadUtil.ossUpload(file);
            return R.ok(url);
        } catch (Exception e) {
            System.err.println("上传文件失败"+e);
            return R.fail(e.getMessage());
        }
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
@@ -29,6 +29,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -141,7 +142,7 @@
            }
        } else {
            // 根据当前登录人查询部门
            Long userId = tokenService.getLoginUser().getUserId();
            Long userId = tokenService.getLoginUserApplet().getUserId();
            SysUser sysUser = sysUserService.selectUserById(userId);
            if (sysUser.getDeptType() == 1) {
                TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId());
@@ -293,11 +294,11 @@
    @ApiOperation(value = "首页")
    @PostMapping(value = "/index")
    public R<IndexVO> index(@RequestBody IndexDTO dto) throws IOException {
        if (!StringUtils.hasLength(dto.getLon()) || !StringUtils.hasLength(dto.getLat())) {
            return R.fail("请上传经纬度");
        }
//        if (!StringUtils.hasLength(dto.getLon()) || !StringUtils.hasLength(dto.getLat())) {
//            return R.fail("请上传经纬度");
//        }
        IndexVO res = new IndexVO();
        Long userId = tokenService.getLoginUser().getUserId();
        Long userId = tokenService.getLoginUserApplet().getUserId();
        List<TLocation> locationList = locationService.list();
        List<TLocationType> locationTypeList = locationTypeService.list();
        List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list();
@@ -355,11 +356,12 @@
            }
        }
        List<TaskTodayVO> pendingTask = new ArrayList<>();
        List<TaskPendingVO> pendingTask = new ArrayList<>();
        res.setTotalUserCount(users.size());
        if (!users.isEmpty()) {
            List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, users).list();
            List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
            List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, userIds).list();
            List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList());
            if (!tasks.isEmpty()) {
                List<TTask> status1 = tasks.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 6).collect(Collectors.toList());
@@ -419,7 +421,7 @@
                    .eq(TTaskDetail::getClearStatus, 2)
                    .groupBy(TTaskDetail::getTaskId)
                    .orderByDesc(TTaskDetail::getCreateTime).list();
            TaskTodayVO taskTodayVO = new TaskTodayVO();
            TaskPendingVO taskTodayVO = new TaskPendingVO();
            BeanUtils.copyProperties(tTask, taskTodayVO);
            TLocation tLocation = locationList.stream().filter(e -> e.getId().equals(tTask.getLocationId())).findFirst().orElse(null);
            if (tLocation != null) {
@@ -428,10 +430,14 @@
                taskTodayVO.setLocationLat(tLocation.getLocationLat());
                taskTodayVO.setLocationName(tLocation.getLocationName());
                // todo
                Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                if (distance != null) {
                    taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                } else {
                if(StringUtils.hasLength(dto.getLon())){
                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                    if (distance != null) {
                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    } else {
                        taskTodayVO.setDistance(new BigDecimal("0"));
                    }
                }else {
                    taskTodayVO.setDistance(new BigDecimal("0"));
                }
                TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -453,10 +459,14 @@
        res.setPendingTask(pendingTask);
        res.setLeaveList(leaveList);
        List<TaskTodayVO> todayTask = new ArrayList<>();
        List<String> collect = taskAll.stream().map(TTask::getId).collect(Collectors.toList());
        for (TTask tTask : taskToday) {
            TaskTodayVO taskTodayVO = new TaskTodayVO();
            if(CollectionUtils.isEmpty(collect)){
                break;
            }
            List<TTaskDetail> taskDetailsStatus1 = taskDetailService.lambdaQuery()
                    .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, taskIds)
                    .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, collect)
                    .eq(TTaskDetail::getClearStatus, 2)
                    .groupBy(TTaskDetail::getTaskId)
                    .orderByDesc(TTaskDetail::getCreateTime).list();
@@ -467,10 +477,14 @@
                taskTodayVO.setLocationLon(tLocation.getLocationLon());
                taskTodayVO.setLocationLat(tLocation.getLocationLat());
                taskTodayVO.setLocationName(tLocation.getLocationName());
                Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                if (distance != null) {
                    taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                } else {
                if(StringUtils.hasLength(dto.getLon())){
                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                    if (distance != null) {
                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                    } else {
                        taskTodayVO.setDistance(new BigDecimal("0"));
                    }
                }else {
                    taskTodayVO.setDistance(new BigDecimal("0"));
                }
                TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -490,7 +504,13 @@
            todayTask.add(taskTodayVO);
        }
        res.setTodayTask(todayTask);
        List<TaskTodayVO> tomorrowTask = new ArrayList<>(todayTask);
        List<TaskTomorrowVO> tomorrowTask = new ArrayList<>();
        for (TaskTodayVO taskTodayVO : todayTask) {
            TaskTomorrowVO taskTomorrowVO = new TaskTomorrowVO();
            BeanUtils.copyProperties(taskTodayVO, taskTomorrowVO);
            tomorrowTask.add(taskTomorrowVO);
        }
        Collections.shuffle(tomorrowTask);
        res.setTomorrowTask(tomorrowTask);
        return R.ok(res);
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
@@ -42,6 +42,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -98,6 +99,70 @@
    private TFeedbackService feedbackService;
    @Resource
    private TProblemEscalationService problemEscalationService;
    /**
     * 生成数据
     * @param id
     * @return
     */
    @ApiOperation(value = "测试接口不要调")
    @GetMapping(value = "/testData")
    public R<AppealDetailVO> testData(@RequestParam String id) {
        List<TAppeal> tAppeals = new ArrayList<>();
        for (int i = 0; i < 25; i++) {
            TAppeal tAppeal = new TAppeal();
            tAppeal.setTaskId("1938536771253641217");
            tAppeal.setAppealPerson("152");
            tAppeal.setStatus(1);
            tAppeal.setAppealContent("申诉");
            tAppeal.setPictures("https://bjxj.oss-cn-guangzhou.aliyuncs.com/bjxj/88d2d5614fe6492bba5666a7ab01e76b.png");
            tAppeals.add(tAppeal);
        }
        appealService.saveBatch(tAppeals);
        List<TAppeal> tAppeals1 = new ArrayList<>();
        for (int i = 0; i < 25; i++) {
            TAppeal tAppeal = new TAppeal();
            tAppeal.setTaskId("1938536771253641217");
            tAppeal.setAppealPerson("152");
            tAppeal.setStatus(2);
            tAppeal.setAppealContent("申诉");
            tAppeal.setPictures("https://bjxj.oss-cn-guangzhou.aliyuncs.com/bjxj/88d2d5614fe6492bba5666a7ab01e76b.png");
            tAppeal.setAuditPerson("162");
            tAppeal.setAuditRemark("备注");
            tAppeal.setAuditTime(LocalDateTime.now());
            tAppeals1.add(tAppeal);
        }
        appealService.saveBatch(tAppeals1);
        List<TAppeal> tAppeals2 = new ArrayList<>();
        for (int i = 0; i < 25; i++) {
            TAppeal tAppeal = new TAppeal();
            tAppeal.setTaskId("1938536771253641217");
            tAppeal.setAppealPerson("152");
            tAppeal.setStatus(3);
            tAppeal.setAppealContent("申诉");
            tAppeal.setPictures("https://bjxj.oss-cn-guangzhou.aliyuncs.com/bjxj/88d2d5614fe6492bba5666a7ab01e76b.png");
            tAppeal.setAuditPerson("162");
            tAppeal.setAuditRemark("备注");
            tAppeal.setAuditTime(LocalDateTime.now());
            tAppeals2.add(tAppeal);
        }
        appealService.saveBatch(tAppeals2);
        List<TAppeal> tAppeals3 = new ArrayList<>();
        for (int i = 0; i < 25; i++) {
            TAppeal tAppeal = new TAppeal();
            tAppeal.setTaskId("1938536771253641217");
            tAppeal.setAppealPerson("152");
            tAppeal.setStatus(4);
            tAppeal.setAppealContent("申诉");
            tAppeal.setPictures("https://bjxj.oss-cn-guangzhou.aliyuncs.com/bjxj/88d2d5614fe6492bba5666a7ab01e76b.png");
            tAppeals3.add(tAppeal);
        }
        appealService.saveBatch(tAppeals3);
        return R.ok();
    }
    @ApiOperation(value = "个人中心-首页")
    @PostMapping(value = "/userIndex")
@@ -232,6 +297,7 @@
    @ApiOperation(value = "申诉记录分页列表")
    @PostMapping(value = "/appealList")
    public R<PageInfo<AppealListVO>> pageListUser(@RequestBody AppealListQuery query) {
        query.setUserId(tokenService.getLoginUserApplet().getUserId()+"");
        return R.ok(appealService.pageListUser(query));
    }
    @ApiOperation(value = "详情申诉记录")
@@ -247,14 +313,17 @@
        appealDetailVO.setLocationIcon(byId2.getLocationIcon());
        appealDetailVO.setLocationName(byId2.getLocationName());
        appealDetailVO.setTaskId(byId.getId());
        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(appeal.getAuditPerson()));
        if (sysUser!=null){
            appealDetailVO.setAuditPersonName(sysUser.getUserName());
        if (StringUtils.hasLength(appeal.getAuditPerson())){
            SysUser sysUser = sysUserService.selectUserById(Long.valueOf(appeal.getAuditPerson()));
            if (sysUser!=null){
                appealDetailVO.setAuditPersonName(sysUser.getUserName());
            }
        }
        appealDetailVO.setTaskName(byId.getTaskName());
        appealDetailVO.setTaskCode(byId.getTaskCode());
        return R.ok(appealDetailVO);
    }
    @Log(title = "取消申诉记录", businessType = BusinessType.OTHER)
    @ApiOperation(value = "取消申诉记录")
    @GetMapping(value = "/cancelAppeal")
@@ -282,7 +351,7 @@
    @ApiOperation(value = "上传督察任务")
    @PostMapping(value = "/addInspector")
    public R<Boolean> addInspector(@RequestBody InspectorAddDTO dto) {
        dto.setCommitPerson(tokenService.getLoginUser().getUserId()+"");
        dto.setCommitPerson(tokenService.getLoginUserApplet().getUserId()+"");
        if (dto.getClearStatus()==1){
            dto.setStatus(4);
        }else{
@@ -294,14 +363,14 @@
    @ApiOperation(value = "上传意见反馈")
    @PostMapping(value = "/addFeedback")
    public R<Boolean> addFeedback(@RequestBody FeedbackDTO dto) {
        dto.setFeedbackPerson(tokenService.getLoginUser().getUserId()+"");
        dto.setFeedbackPerson(tokenService.getLoginUserApplet().getUserId()+"");
        feedbackService.save(dto);
        return R.ok();
    }
    @ApiOperation(value = "上传问题上报")
    @PostMapping(value = "/addProblem")
    public R<Boolean> addProblem(@RequestBody ProblemDTO dto) {
        dto.setEscalationId(tokenService.getLoginUser().getUserId()+"");
        dto.setEscalationId(tokenService.getLoginUserApplet().getUserId()+"");
        problemEscalationService.save(dto);
        return R.ok();
    }
@@ -341,7 +410,7 @@
    @GetMapping(value = "/leaveAuditList")
    public R<LeaveAuditListVO> leaveAuditList() {
        LeaveAuditListVO res = new LeaveAuditListVO();
        Long userId = tokenService.getLoginUser().getUserId();
        Long userId = tokenService.getLoginUserApplet().getUserId();
        SysUser user = sysUserService.selectUserById(userId);
        Long userRole = sysUserService.getUserRole(userId);
        SysRole sysRole = roleService.selectRoleById(userRole);
@@ -398,10 +467,23 @@
        res.setCopyPerson(leaveAuditVOS);
        return R.ok(res);
    }
    public static void main(String[] args) {
        String temp = "2025-06-30 00:00:00";
        // 轉化爲localdateTime
        LocalDateTime parse = LocalDateTime.parse(temp, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(parse);
    }
    @ApiOperation(value = "发起请假")
    @PostMapping(value = "/addLeave")
    public R addLeave(@RequestBody LeaveDTO leaveDTO) {
        Long userId = tokenService.getLoginUser().getUserId();
//        String startTime1 = leaveDTO.getStartTime1();
//        // 轉化爲LocalDateTime類型
//        leaveDTO.setStartTime(LocalDateTime.parse(startTime1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
//        String endTime1 = leaveDTO.getEndTime1();
//        // 轉化爲LocalDateTime類型
//        leaveDTO.setStartTime(LocalDateTime.parse(endTime1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        Long userId = tokenService.getLoginUserApplet().getUserId();
        SysUser user = sysUserService.selectUserById(userId);
        Long userRole = sysUserService.getUserRole(userId);
        SysRole sysRole = roleService.selectRoleById(userRole);
@@ -469,13 +551,13 @@
    @ApiOperation(value = "我的审批-我的申请")
    @PostMapping(value = "/leaveList")
    public R<PageInfo<LeaveUserListVO>> leaveList(@RequestBody LeaveListUserQuery query) {
        query.setUserId(tokenService.getLoginUser().getUserId()+"");
        query.setUserId(tokenService.getLoginUserApplet().getUserId()+"");
        return R.ok( leaveService.leaveList(query));
    }
    @ApiOperation(value = "我的审批-审批")
    @PostMapping(value = "/auditLeave")
    public R<Boolean> auditLeave(@RequestBody LeaveAuditDTO dto) {
        dto.setAuditId(tokenService.getLoginUser().getUserId()+"");
        dto.setAuditId(tokenService.getLoginUserApplet().getUserId()+"");
        dto.setAuditTime(LocalDateTime.now());
        leaveService.updateById(dto);
        return R.ok();
ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/OssUploadUtil.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.web.controller.tool;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
public class OssUploadUtil {
    //OSS图片访问域名
    public static String oss_domain = "https://bjxj.oss-cn-guangzhou.aliyuncs.com/";
    public static String accessKeyId = "LTAI5t7iBqAKndrt7BArjH1k";
    public static String accessKeySecret = "LIes9z8wS2dz7psGrFjx7DWZUdZIAp";
    public static String bucketName="bjxj";
    public static String filePath="bjxj/";
    public static String endpoint = "oss-cn-guangzhou.aliyuncs.com";
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
    public static String ossUpload( MultipartFile file) throws IOException{
        String fileName = "";
            if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
                InputStream content = file.getInputStream();//获得指定文件的输入流
                ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
                meta.setContentLength(file.getSize());  // 必须设置ContentLength
                String originalFilename = file.getOriginalFilename();
                fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
                ossClient.putObject(bucketName, filePath + fileName, content, meta);// 上传Object.
                if(fileName != null && !"".equals(fileName)){
                    System.out.println(fileName);
                    fileName = oss_domain+ filePath +fileName;
                }
            }
        return fileName;
    }
}
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -112,7 +112,7 @@
                .authorizeRequests()
                // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                .antMatchers("/getPrivacyAgreement/{agreementType}",
                        "/loginApplet",
                        "/loginApplet","/t-user/testData",
                        "/applet/queryProtocolConfigByType","/applet/login","/oss/upload",
                        "/login","/applet/queryProtocolConfigByType",
                        "/register","/applet/getCode","/applet/loginCode",
ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/LeaveDTO.java
@@ -1,13 +1,22 @@
package com.ruoyi.system.applet.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.model.TLeave;
import com.ruoyi.system.model.TProblemEscalation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel(value = "发起请假DTO")
public class LeaveDTO extends TLeave {
    @ApiModelProperty(value = "请假开始日期")
    private String startTime1;
    @ApiModelProperty(value = "请假结束日期")
    private String endTime1;
}
ruoyi-system/src/main/java/com/ruoyi/system/applet/query/AppealListQuery.java
@@ -10,7 +10,7 @@
@Data
@ApiModel(value = "申诉任务记录分页列表query")
public class AppealListQuery extends BasePage {
    @ApiModelProperty(value = "状态1待确认 2待整改 3整改完成 4已完成 全部不传")
    @ApiModelProperty(value = "状态状态 1待审核2通过3驳回4已取消 全部不传")
    private Integer status;
    @ApiModelProperty(value = "用户id 前端忽略")
    private String userId;
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/IndexVO.java
@@ -21,10 +21,10 @@
    private BigDecimal rate;
    @ApiModelProperty(value = "审批列表")
    private List<LeaveUserListVO> leaveList;
    @ApiModelProperty(value = "待整改任务")
    private List<TaskTodayVO> pendingTask;
    @ApiModelProperty(value = "今日任务")
    @ApiModelProperty(value = "待整改任务列表")
    private List<TaskPendingVO> pendingTask;
    @ApiModelProperty(value = "今日任务列表")
    private List<TaskTodayVO> todayTask;
    @ApiModelProperty(value = "明日任务预览")
    private List<TaskTodayVO> tomorrowTask;
    @ApiModelProperty(value = "明日任务预览列表")
    private List<TaskTomorrowVO> tomorrowTask;
}
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskPendingVO.java
New file
@@ -0,0 +1,31 @@
package com.ruoyi.system.applet.vo;
import com.ruoyi.system.model.TTask;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "待整改列表VO")
public class TaskPendingVO extends TTask {
    @ApiModelProperty(value = "点位名称")
    private String locationName;
    @ApiModelProperty(value = "点位起点地址")
    private String locationAddress;
    @ApiModelProperty(value = "点位经度 起点")
    private String locationLon;
    @ApiModelProperty(value = "点位纬度 起点")
    private String locationLat;
    @ApiModelProperty(value = "点位类型名称")
    private String locationTypeName;
    @ApiModelProperty(value = "点位类型图标")
    private String locationTypeIcon;
    @ApiModelProperty(value = "驳回原因 状态为待整改时有值")
    private String remark;
    @ApiModelProperty(value = "距离 单位km")
    private BigDecimal distance;
}
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskTodayVO.java
@@ -8,7 +8,7 @@
import java.math.BigDecimal;
@Data
@ApiModel(value = "今日任务/待整改列表VO")
@ApiModel(value = "今日任务列表VO")
public class TaskTodayVO extends TTask {
    @ApiModelProperty(value = "点位名称")
ruoyi-system/src/main/java/com/ruoyi/system/applet/vo/TaskTomorrowVO.java
New file
@@ -0,0 +1,31 @@
package com.ruoyi.system.applet.vo;
import com.ruoyi.system.model.TTask;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "明日任务列表VO")
public class TaskTomorrowVO extends TTask {
    @ApiModelProperty(value = "点位名称")
    private String locationName;
    @ApiModelProperty(value = "点位起点地址")
    private String locationAddress;
    @ApiModelProperty(value = "点位经度 起点")
    private String locationLon;
    @ApiModelProperty(value = "点位纬度 起点")
    private String locationLat;
    @ApiModelProperty(value = "点位类型名称")
    private String locationTypeName;
    @ApiModelProperty(value = "点位类型图标")
    private String locationTypeIcon;
    @ApiModelProperty(value = "驳回原因 状态为待整改时有值")
    private String remark;
    @ApiModelProperty(value = "距离 单位km")
    private BigDecimal distance;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/system/AppealListVO.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.vo.system;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.system.model.TAppeal;
import com.ruoyi.system.model.TInspector;
import io.swagger.annotations.ApiModel;
@@ -28,6 +29,9 @@
    private String picture;
    @ApiModelProperty("距离 单位km")
    private BigDecimal distance;
    @ApiModelProperty(value = "点位位置 起点")
    private String locationAddress;
    @ApiModelProperty(value = "点位位置 终点")
    private String locationAddressEnd;
}
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -288,7 +288,7 @@
            </if>
        and t1.status = '0'
        and t1.del_flag = '0'
        and t1.dept_type = 1
        and t1.deptType = 1
    </select>
    <select id="selectListByDeptId" resultType="com.ruoyi.common.core.domain.entity.SysUser">
        select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
ruoyi-system/src/main/resources/mapper/system/TAppealMapper.xml
@@ -62,9 +62,11 @@
    </select>
    <select id="pageListUser" resultType="com.ruoyi.system.vo.system.AppealListVO">
        select t1.*,t2.location_name as locationName,t3.location_name as locationTypeName,
               t2.location_address as locationAddress,
                t2.location_address_end as locationAddressEnd,
        t4.nick_name as patrolInspectorName,
        t4.phonenumber as phonenumber,
        t3.location_type_icon as locationTypeIcon,
        t3.location_icon as locationTypeIcon,
        ROUND(
        6378.138 * 2 * ASIN(
        SQRT(