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(