From 5e2d78f61bf7d1513d5d5c8cd55442133a6e898e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 14 七月 2025 18:23:36 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 271 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 230 insertions(+), 41 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 437d97f..2168cd3 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 @@ -9,6 +9,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.io.resource.ClassPathResource; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; @@ -29,6 +30,7 @@ import com.ruoyi.system.model.*; import com.ruoyi.system.query.TaskListQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.utils.TemplateMessageSendUtil; import com.ruoyi.system.vo.system.*; import com.ruoyi.web.controller.tool.EmailUtils; import com.ruoyi.web.controller.tool.MsgUtils; @@ -198,12 +200,15 @@ private TNoticeSetService noticeSetService; @Resource private TDictDataService dictDataService; + @Resource + private TemplateMessageSendUtil templateMessageSendUtil; @Log(title = "审核任务", businessType = BusinessType.UPDATE) @ApiOperation(value = "审核任务") @PostMapping(value = "/audit") public R<Boolean> audit(@RequestBody TTaskAuditDTO dto) throws Exception { dto.setAuditTime(LocalDateTime.now()); TTask task = taskCleanerService.getById(dto.getTaskId()); + SysUser auditPerson = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); SysUser sysUser = sysUserService.selectUserById(Long.valueOf(task.getPatrolInspector())); TTaskDetail one = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()) @@ -224,6 +229,7 @@ tNotice.setDataId(task.getId()); tNotice.setNoticeSetType(noticeSet.getNoticeType()); if (dto.getAuditStatus() == 2) { + dto.setHandleType(3); if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { if (location.getUnqualifiedTaskId().split(",").length == 2) { // 已经两条不合格了 生成点位不合格预警记录 @@ -234,6 +240,13 @@ earlyWarningService.save(tEarlyWarning); location.setUnqualifiedTaskId(""); locationService.updateById(location); + }else{ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + dto.getTaskId()); + }else{ + location.setUnqualifiedTaskId(dto.getTaskId()); + } + locationService.updateById(location); } } else { if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ @@ -243,14 +256,16 @@ } locationService.updateById(location); } - dto.setHandleType(3); // 将任务修改为待整改 task.setStatus(4); taskCleanerService.updateById(task); // 增加消息 tNotice.setNoticeType(1); tNotice.setNoticeContent("【" + location.getLocationName() + "】任务不合格,请重新上传!"); + if (sysUser!=null){ + + switch (noticeSet.getNoticeType()) { case 1: msgUtils.sendMsg1(sysUser.getPhonenumber(),location.getLocationName(),"驳回"); @@ -261,6 +276,10 @@ } break; case 3: + if (StringUtils.hasLength(sysUser.getOpenId())){ + templateMessageSendUtil.wxTemplateTaskResultRequest(sysUser.getOpenId(), + location.getLocationName(),"驳回",auditPerson.getNickName()); + } break; } @@ -268,6 +287,8 @@ } else { + dto.setHandleType(2); + if (dto.getClearStatus() == 2) { if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { if (location.getUnqualifiedTaskId().split(",").length == 2) { @@ -278,6 +299,13 @@ tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); earlyWarningService.save(tEarlyWarning); location.setUnqualifiedTaskId(""); + locationService.updateById(location); + }else{ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + dto.getTaskId()); + }else{ + location.setUnqualifiedTaskId(dto.getTaskId()); + } locationService.updateById(location); } } else { @@ -316,12 +344,18 @@ } break; case 3: + if (StringUtils.hasLength(sysUser.getOpenId())){ + templateMessageSendUtil.wxTemplateTaskResultRequest(sysUser.getOpenId(), + location.getLocationName(),"驳回",auditPerson.getNickName()); + } break; } } } noticeService.save(tNotice); dto.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); + dto.setAuditRemark(dto.getAuditRemark()); + dto.setAuditTime(LocalDateTime.now()); taskDetailService.save(dto); one.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); one.setAuditTime(LocalDateTime.now()); @@ -334,30 +368,188 @@ @Log(title = "批量审核任务", businessType = BusinessType.UPDATE) @ApiOperation(value = "批量审核任务") @PostMapping(value = "/auditBatch") - public R<Boolean> auditBatch(@RequestBody TTaskAuditBatchDTO dto) { + public R<Boolean> auditBatch(@RequestBody TTaskAuditBatchDTO dto) throws Exception { List<TTaskDetail> tTaskDetails = new ArrayList<>(); + List<TLocation> locations = locationService.list(); + List<SysUser> sysUsers = sysUserService.selectAllList(); + SysUser auditPerson = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); + + List<TTaskDetail> taskDetails = taskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) + .in(TTaskDetail::getTaskId, Arrays.asList(dto.getTaskIds().split(","))) + .eq(TTaskDetail::getHandleType,1) + .orderByDesc(TTaskDetail::getCreateTime)); + taskDetails = new ArrayList<>(taskDetails.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + listAll -> listAll.get(0) + ) + )) + .values()); for (String s : dto.getTaskIds().split(",")) { - TTask byId = taskCleanerService.getById(s); + TTask task = taskCleanerService.getById(s); + SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(task.getPatrolInspector()))) + .findFirst().orElse(null); + TLocation location = locations.stream().filter(e -> e.getId().equals(task.getLocationId())) + .findFirst().orElse(null); TTaskDetail tTaskDetail = new TTaskDetail(); tTaskDetail.setTaskId(s); tTaskDetail.setAuditTime(LocalDateTime.now()); tTaskDetail.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); +// if (dto.getAuditStatus() == 2) { +// tTaskDetail.setHandleType(3); +// // 将任务修改为待整改 +// task.setStatus(4); +// taskCleanerService.updateById(task); +// } else { +// tTaskDetail.setHandleType(2); +// // 如果是初次审核就通过 将状态设置为已完成 +// List<TTaskDetail> list = taskDetailService.lambdaQuery() +// .eq(TTaskDetail::getHandleType, 1).eq(TTaskDetail::getTaskId, s).list(); +// if (list.size() == 1) { +// task.setStatus(6); +// taskCleanerService.updateById(task); +// } else { +// task.setStatus(5); +// taskCleanerService.updateById(task); +// } +// } + + + 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()); + TTaskDetail taskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(s)) + .findFirst().orElse(null); + taskDetail.setAuditPerson(tokenService.getLoginUser().getUserId() + ""); + taskDetail.setAuditTime(LocalDateTime.now()); + taskDetail.setAuditRemark(dto.getAuditRemark()); + taskDetail.setAuditStatus(dto.getAuditStatus()); + taskDetailService.updateById(taskDetail); if (dto.getAuditStatus() == 2) { - tTaskDetail.setHandleType(3); - // 将任务修改为待整改 - byId.setStatus(4); - taskCleanerService.updateById(byId); - } else { - tTaskDetail.setHandleType(2); - // 如果是初次审核就通过 将状态设置为已完成 - List<TTaskDetail> list = taskDetailService.lambdaQuery() - .eq(TTaskDetail::getHandleType, 1).eq(TTaskDetail::getTaskId, s).list(); - if (list.size() == 1) { - byId.setStatus(6); - taskCleanerService.updateById(byId); + if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { + if (location.getUnqualifiedTaskId().split(",").length == 2) { + // 已经两条不合格了 生成点位不合格预警记录 + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + TEarlyWarning tEarlyWarning = new TEarlyWarning(); + tEarlyWarning.setWarningType(2); + tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); + earlyWarningService.save(tEarlyWarning); + location.setUnqualifiedTaskId(""); + locationService.updateById(location); + }else{ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + }else{ + location.setUnqualifiedTaskId(task.getId()); + } + locationService.updateById(location); + } } else { - byId.setStatus(5); - taskCleanerService.updateById(byId); + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + }else{ + location.setUnqualifiedTaskId(task.getId()); + } + locationService.updateById(location); + } + tTaskDetail.setHandleType(3); + tTaskDetail.setAuditRemark(dto.getAuditRemark()); + // 将任务修改为待整改 + task.setStatus(4); + taskCleanerService.updateById(task); + // 增加消息 + tNotice.setNoticeType(1); + 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 (taskDetail.getClearStatus() == 2) { + if (StringUtils.hasLength(location.getUnqualifiedTaskId())) { + if (location.getUnqualifiedTaskId().split(",").length == 2) { + // 已经两条不合格了 生成点位不合格预警记录 + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + TEarlyWarning tEarlyWarning = new TEarlyWarning(); + tEarlyWarning.setWarningType(2); + tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); + earlyWarningService.save(tEarlyWarning); + location.setUnqualifiedTaskId(""); + locationService.updateById(location); + }else{ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + }else{ + location.setUnqualifiedTaskId(task.getId()); + } + locationService.updateById(location); + } + } else { + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId() + "," + task.getId()); + }else{ + location.setUnqualifiedTaskId(task.getId()); + } + locationService.updateById(location); + } + } + taskDetail.setHandleType(2); + // 如果是初次审核就通过 将状态设置为已完成 + List<TTaskDetail> list = tTaskDetailService.lambdaQuery() + .eq(TTaskDetail::getHandleType, 1) + .eq(TTaskDetail::getTaskId, task.getId()).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 (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: + if (StringUtils.hasLength(sysUser.getOpenId())){ + templateMessageSendUtil.wxTemplateTaskResultRequest(sysUser.getOpenId(), + location.getLocationName(),"驳回",auditPerson.getNickName()); + } + break; + } } } tTaskDetails.add(tTaskDetail); @@ -398,34 +590,31 @@ @ApiOperation(value = "详情任务-根据任务编号") @GetMapping(value = "/detailByTaskCode") public R<TaskDetailVO> detailByTaskCode(@RequestParam String taskCode) { - TTask task = taskCleanerService.lambdaQuery().eq(TTask::getTaskCode, taskCode) - .last("limit 1").one(); + TTask byId = taskCleanerService.lambdaQuery().eq(TTask::getTaskCode, taskCode).last("limit 1").one(); + List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, byId.getId()) + .orderByDesc(BaseModel::getCreateTime).list(); TaskDetailVO taskDetailVO = new TaskDetailVO(); - if (task != null) { - String id = task.getId(); - List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, id) - .orderByDesc(BaseModel::getCreateTime).list(); - TTask byId = taskCleanerService.getById(id); - BeanUtils.copyProperties(byId, taskDetailVO); - TLocation byId1 = locationService.getById(byId.getLocationId()); - TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); - taskDetailVO.setLocationAddress(byId1.getLocationAddress()); - 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) { - TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); - if (byId3 != null) { - tTaskDetail.setUnqualifiedName(byId3.getDataContent()); - } + BeanUtils.copyProperties(byId, taskDetailVO); + TLocation byId1 = locationService.getById(byId.getLocationId()); + TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); + taskDetailVO.setLocationAddress(byId1.getLocationAddress()); + taskDetailVO.setLocationIcon(byId2.getLocationIcon()); + 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) { + TDictData byId3 = dictDataService.getById(tTaskDetail.getUnqualified()); + if (byId3 != null) { + tTaskDetail.setUnqualifiedName(byId3.getDataContent()); } - taskDetailVO.setTaskDetail(tTaskDetail); - taskDetailVO.setRecords(list); - } else { - return R.fail("任务不存在"); } - + if (tTaskDetail != null) { + tTaskDetail.setFinishTime(tTaskDetail.getCreateTime()); + } + taskDetailVO.setTaskDetail(tTaskDetail); + taskDetailVO.setRecords(list); return R.ok(taskDetailVO); + } @ApiOperation(value = "详情任务-操作记录-详情") -- Gitblit v1.7.1