From 25b19e60e004290531f61fdf608d1adb5e531903 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 14:40:12 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 226 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 139 insertions(+), 87 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java index b7d84a6..7b59cb6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java @@ -1,4 +1,5 @@ package com.ruoyi.web.controller.api; + import java.io.IOException; import java.math.BigDecimal; import java.net.URLEncoder; @@ -29,6 +30,8 @@ import com.ruoyi.system.query.TaskListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.system.*; +import com.ruoyi.web.controller.tool.EmailUtils; +import com.ruoyi.web.controller.tool.MsgUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; @@ -62,8 +65,7 @@ private TTaskCleanService taskCleanerService; @Resource private TNoticeService noticeService; - @Resource - private TNoticeSetService noticeSetService; + @Resource private TEarlyWarningService earlyWarningService; @Resource @@ -83,8 +85,7 @@ private TDeptService deptService; @Resource private ISysUserService sysUserService; - @Resource - private TDictDataService dictDataService; + @Resource private TokenService tokenService; @Resource @@ -95,77 +96,77 @@ public R<PageInfo<TaskListVO>> pageList(@RequestBody TaskListQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); List<TLocation> locationList = locationService.list(); - if (StringUtils.hasLength(query.getDeptName())){ + if (StringUtils.hasLength(query.getDeptName())) { List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); List<String> listIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); for (TProjectDept tProjectDept : list) { - if (tProjectDept.getParentId().equals("0")){ - List<String> collect = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, tProjectDept.getId()).list() - .stream().map(TProjectDept::getId).collect(Collectors.toList()); - listIds.addAll(collect); + if (tProjectDept.getParentId().equals("0")) { + List<String> collect = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, tProjectDept.getId()).list() + .stream().map(TProjectDept::getId).collect(Collectors.toList()); + listIds.addAll(collect); listIds.add(tProjectDept.getId()); } } List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); listIds.addAll(deptIds); - if (listIds.isEmpty()){ + if (listIds.isEmpty()) { return R.ok(new PageInfo<>()); } List<Long> collect = sysUsers.stream().filter(e -> listIds.contains(e.getDeptId())) .map(SysUser::getUserId).collect(Collectors.toList()); - query.setPatrolInspectorIds( collect); - if (StringUtils.hasLength(query.getPhonenumber())){ + query.setPatrolInspectorIds(collect); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) && listIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { return R.ok(new PageInfo<>()); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); query.setPatrolInspectorIds(patrolInspectorIds); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (!query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { return R.ok(new PageInfo<>()); } } - if (query.getClearStatus()!=null){ + if (query.getClearStatus() != null) { List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus()) .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList()); query.setTaskIds(collect); - if (collect.isEmpty()){ + if (collect.isEmpty()) { return R.ok(new PageInfo<>()); } } - if (StringUtils.hasLength(query.getLocationType())){ + if (StringUtils.hasLength(query.getLocationType())) { List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId) .collect(Collectors.toList()); - if (collect.isEmpty()){ + if (collect.isEmpty()) { return R.ok(new PageInfo<>()); } query.setLocationIds(collect); } - if (StringUtils.hasLength(query.getLocationName())){ + if (StringUtils.hasLength(query.getLocationName())) { List<String> collect = locationList.stream().filter(e -> e.getLocationName().contains(query.getLocationName())).map(TLocation::getId) .collect(Collectors.toList()); query.setLocationIds(collect); - if (collect.isEmpty()){ + if (collect.isEmpty()) { return R.ok(new PageInfo<>()); - }else{ + } else { collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); - if (collect.isEmpty()){ + if (collect.isEmpty()) { return R.ok(new PageInfo<>()); } query.setLocationIds(collect); @@ -190,29 +191,43 @@ taskCleanerService.save(dto); return R.ok(); } + + @Resource + private MsgUtils msgUtils; + @Resource + private TNoticeSetService noticeSetService; + @Resource + private TDictDataService dictDataService; @Log(title = "审核任务", businessType = BusinessType.UPDATE) @ApiOperation(value = "审核任务") @PostMapping(value = "/audit") - public R<Boolean> audit(@RequestBody TTaskAuditDTO dto) { + public R<Boolean> audit(@RequestBody TTaskAuditDTO dto) throws Exception { dto.setAuditTime(LocalDateTime.now()); TTask task = taskCleanerService.getById(dto.getTaskId()); + SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector())); + TTaskDetail one = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()) - .eq(TTaskDetail::getHandleType,1) + .eq(TTaskDetail::getHandleType, 1) .orderByDesc(BaseModel::getCreateTime).last("limit 1").one(); dto.setClearStatus(one.getClearStatus()); TLocation location = locationService.getById(task.getLocationId()); TNotice tNotice = new TNotice(); TNoticeSet noticeSet = noticeSetService.lambdaQuery().eq(TNoticeSet::getType, 2).last("limit 1") .one(); + // 邮箱 + TDictData email = dictDataService.lambdaQuery().eq(TDictData::getDataType,4).one(); + // 授权码 + TDictData code = dictDataService.lambdaQuery().eq(TDictData::getDataType,5).one(); + tNotice.setUserId(task.getPatrolInspector()); tNotice.setStatus(1); tNotice.setDataId(task.getId()); tNotice.setNoticeSetType(noticeSet.getNoticeType()); - if (dto.getAuditStatus()==2){ - if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ - if (location.getUnqualifiedTaskId().split(",").length==2){ + if (dto.getAuditStatus() == 2) { + if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { + if (location.getUnqualifiedTaskId().split(",").length == 2) { // 已经两条不合格了 生成点位不合格预警记录 - location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId()); + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + dto.getTaskId()); TEarlyWarning tEarlyWarning = new TEarlyWarning(); tEarlyWarning.setWarningType(2); tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); @@ -220,7 +235,7 @@ location.setUnqualifiedTaskId(""); locationService.updateById(location); } - }else{ + } else { location.setUnqualifiedTaskId(dto.getTaskId()); locationService.updateById(location); } @@ -230,13 +245,30 @@ taskCleanerService.updateById(task); // 增加消息 tNotice.setNoticeType(1); - tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!"); - }else{ - if (dto.getClearStatus()==2){ - if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ - if (location.getUnqualifiedTaskId().split(",").length==2){ + tNotice.setNoticeContent("【" + location.getLocationName() + "】任务不合格,请重新上传!"); + if (sysUser!=null){ + switch (noticeSet.getNoticeType()) { + case 1: + msgUtils.sendMsg1(sysUser.getPhonenumber(),location.getLocationName(),"驳回"); + break; + case 2: + if (StringUtils.hasLength(email.getDataContent())&&StringUtils.hasLength(code.getDataContent())){ + EmailUtils.sendEmail(sysUser.getEmail(),email.getDataContent(),code.getDataContent(),"【" + location.getLocationName() + "】任务不合格,请重新上传!"); + } + break; + case 3: + break; + + } + } + + + } else { + if (dto.getClearStatus() == 2) { + if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { + if (location.getUnqualifiedTaskId().split(",").length == 2) { // 已经两条不合格了 生成点位不合格预警记录 - location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId()); + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + dto.getTaskId()); TEarlyWarning tEarlyWarning = new TEarlyWarning(); tEarlyWarning.setWarningType(2); tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); @@ -244,7 +276,7 @@ location.setUnqualifiedTaskId(""); locationService.updateById(location); } - }else{ + } else { location.setUnqualifiedTaskId(dto.getTaskId()); locationService.updateById(location); } @@ -252,54 +284,70 @@ dto.setHandleType(2); // 如果是初次审核就通过 将状态设置为已完成 List<TTaskDetail> list = tTaskDetailService.lambdaQuery() - .eq(TTaskDetail::getHandleType,1) + .eq(TTaskDetail::getHandleType, 1) .eq(TTaskDetail::getTaskId, dto.getTaskId()).list(); - if (list.size()<2){ - task.setStatus(6); - taskCleanerService.updateById(task); - tNotice.setNoticeType(2); - tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过"); - }else{ - task.setStatus(5); - taskCleanerService.updateById(task); - tNotice.setNoticeType(2); - tNotice.setNoticeContent("【"+location.getLocationName()+"】任务已通过"); + if (list.size() < 2) { + task.setStatus(6); + taskCleanerService.updateById(task); + tNotice.setNoticeType(2); + tNotice.setNoticeContent("【" + location.getLocationName() + "】任务已通过"); + } else { + task.setStatus(5); + taskCleanerService.updateById(task); + tNotice.setNoticeType(2); + tNotice.setNoticeContent("【" + location.getLocationName() + "】任务已通过"); + } + if (sysUser!=null){ + switch (noticeSet.getNoticeType()) { + case 1: + msgUtils.sendMsg1(sysUser.getPhonenumber(),location.getLocationName(),"通过"); + break; + case 2: + if (StringUtils.hasLength(email.getDataContent())&&StringUtils.hasLength(code.getDataContent())){ + EmailUtils.sendEmail(sysUser.getEmail(),email.getDataContent(),code.getDataContent(),"【" + location.getLocationName() + "】任务已通过"); + } + break; + case 3: + break; } + } } noticeService.save(tNotice); - dto.setAuditPerson(tokenService.getLoginUser().getUserId()+""); + dto.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); taskDetailService.save(dto); - one.setAuditPerson(tokenService.getLoginUser().getUserId()+""); + one.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); one.setAuditTime(LocalDateTime.now()); one.setAuditRemark(dto.getAuditRemark()); one.setAuditStatus(dto.getAuditStatus()); taskDetailService.updateById(one); return R.ok(); } + @Log(title = "批量审核任务", businessType = BusinessType.UPDATE) @ApiOperation(value = "批量审核任务") @PostMapping(value = "/auditBatch") - public R<Boolean> auditBatch(@RequestBody TTaskAuditBatchDTO dto) { + public R<Boolean> auditBatch(@RequestBody TTaskAuditBatchDTO dto) { List<TTaskDetail> tTaskDetails = new ArrayList<>(); for (String s : dto.getTaskIds().split(",")) { TTask byId = taskCleanerService.getById(s); TTaskDetail tTaskDetail = new TTaskDetail(); tTaskDetail.setTaskId(s); tTaskDetail.setAuditTime(LocalDateTime.now()); - tTaskDetail.setAuditPerson(tokenService.getLoginUser().getUserId()+""); - if (dto.getAuditStatus()==2){ + tTaskDetail.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); + if (dto.getAuditStatus() == 2) { tTaskDetail.setHandleType(3); // 将任务修改为待整改 byId.setStatus(4); taskCleanerService.updateById(byId); - }else{ + } else { tTaskDetail.setHandleType(2); // 如果是初次审核就通过 将状态设置为已完成 - List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, s).list(); - if (list.isEmpty()){ + List<TTaskDetail> list = taskDetailService.lambdaQuery() + .eq(TTaskDetail::getHandleType, 1).eq(TTaskDetail::getTaskId, s).list(); + if (list.size() == 1) { byId.setStatus(6); taskCleanerService.updateById(byId); - }else{ + } else { byId.setStatus(5); taskCleanerService.updateById(byId); } @@ -309,6 +357,7 @@ taskDetailService.saveBatch(tTaskDetails); return R.ok(); } + @ApiOperation(value = "详情任务") @GetMapping(value = "/detail") public R<TaskDetailVO> detail(@RequestParam String id) { @@ -324,26 +373,27 @@ taskDetailVO.setLocationName(byId1.getLocationName()); taskDetailVO.setLocationTypeName(byId2.getLocationName()); TTaskDetail tTaskDetail = list.stream().filter(e -> e.getHandleType() == 1).findFirst().orElse(null); - if (tTaskDetail!=null && tTaskDetail.getUnqualified()!=null){ + if (tTaskDetail != null && tTaskDetail.getUnqualified() != null) { TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); - if (byId3!=null){ + if (byId3 != null) { tTaskDetail.setUnqualifiedName(byId3.getDataContent()); } } - if (tTaskDetail!=null){ + if (tTaskDetail != null) { tTaskDetail.setFinishTime(tTaskDetail.getCreateTime()); } taskDetailVO.setTaskDetail(tTaskDetail); taskDetailVO.setRecords(list); return R.ok(taskDetailVO); } + @ApiOperation(value = "详情任务-根据任务编号") @GetMapping(value = "/detailByTaskCode") public R<TaskDetailVO> detailByTaskCode(@RequestParam String taskCode) { TTask task = taskCleanerService.lambdaQuery().eq(TTask::getTaskCode, taskCode) .last("limit 1").one(); TaskDetailVO taskDetailVO = new TaskDetailVO(); - if (task!=null){ + if (task != null) { String id = task.getId(); List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) .orderByDesc(BaseModel::getCreateTime).list(); @@ -355,20 +405,21 @@ taskDetailVO.setLocationIcon(byId2.getLocationIcon()); taskDetailVO.setLocationName(byId2.getLocationName()); TTaskDetail tTaskDetail = list.stream().filter(e -> e.getHandleType() == 1).findFirst().orElse(null); - if (tTaskDetail!=null && tTaskDetail.getUnqualified()!=null){ + if (tTaskDetail != null && tTaskDetail.getUnqualified() != null) { TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); - if (byId3!=null){ + if (byId3 != null) { tTaskDetail.setUnqualifiedName(byId3.getDataContent()); } } taskDetailVO.setTaskDetail(tTaskDetail); taskDetailVO.setRecords(list); - }else{ + } else { return R.fail("任务不存在"); } return R.ok(taskDetailVO); } + @ApiOperation(value = "详情任务-操作记录-详情") @GetMapping(value = "/detailRecord") public R<TaskRecordDetailVO> detailRecord(@RequestParam String id) { @@ -382,21 +433,22 @@ taskDetailVO.setLocationAddress(byId1.getLocationAddress()); taskDetailVO.setLocationIcon(byId2.getLocationIcon()); taskDetailVO.setLocationName(byId2.getLocationName()); - if ( byId4.getUnqualified()!=null){ + if (byId4.getUnqualified() != null) { TDictData byId3 = dictDataService.getById(byId4.getUnqualified()); - if (byId3!=null){ + if (byId3 != null) { byId4.setUnqualifiedName(byId3.getDataContent()); } } - if (byId4.getAuditPerson()!=null){ + if (byId4.getAuditPerson() != null) { SysUser sysUser = sysUserService.selectUserById(Long.valueOf(byId4.getAuditPerson())); - if (sysUser!=null){ + if (sysUser != null) { byId4.setAuditPersonName(sysUser.getUserName()); } } taskDetailVO.setTaskDetail(byId4); return R.ok(taskDetailVO); } + @Log(title = "批量删除任务", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除任务") @DeleteMapping(value = "/deleteByIds") @@ -412,14 +464,14 @@ public void exportExcel(@RequestBody TaskListQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); List<TLocation> locationList = locationService.list(); - if(CollectionUtils.isEmpty(query.getTaskIds())){ + if (CollectionUtils.isEmpty(query.getTaskIds())) { - if (StringUtils.hasLength(query.getDeptName())){ + if (StringUtils.hasLength(query.getDeptName())) { List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); List<String> listIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); for (TProjectDept tProjectDept : list) { - if (tProjectDept.getParentId().equals("0")){ + if (tProjectDept.getParentId().equals("0")) { List<String> collect = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, tProjectDept.getId()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); listIds.addAll(collect); @@ -428,62 +480,62 @@ List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); listIds.addAll(deptIds); - if (listIds.isEmpty()){ + if (listIds.isEmpty()) { listIds.add("0"); } List<Long> collect = sysUsers.stream().filter(e -> listIds.contains(e.getDeptId())) .map(SysUser::getUserId).collect(Collectors.toList()); - query.setPatrolInspectorIds( collect); - if (StringUtils.hasLength(query.getPhonenumber())){ + query.setPatrolInspectorIds(collect); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) && listIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); query.setPatrolInspectorIds(patrolInspectorIds); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (!query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } } - if (query.getClearStatus()!=null){ + if (query.getClearStatus() != null) { List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus()) .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList()); query.setTaskIds(collect); - if (collect.isEmpty()){ + if (collect.isEmpty()) { collect.add("0"); } } - if (StringUtils.hasLength(query.getLocationType())){ + if (StringUtils.hasLength(query.getLocationType())) { List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId) .collect(Collectors.toList()); - if (collect.isEmpty()){ + if (collect.isEmpty()) { collect.add("0"); } query.setLocationIds(collect); } - if (StringUtils.hasLength(query.getLocationName())){ + if (StringUtils.hasLength(query.getLocationName())) { List<String> collect = locationList.stream().filter(e -> e.getLocationName().contains(query.getLocationName())).map(TLocation::getId) .collect(Collectors.toList()); query.setLocationIds(collect); - if (collect.isEmpty()){ + if (collect.isEmpty()) { collect.add("0"); - }else{ + } else { collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); - if (collect.isEmpty()){ + if (collect.isEmpty()) { collect.add("0"); } query.setLocationIds(collect); -- Gitblit v1.7.1