From 50d0a02f147f44a55c3372465243df1ae1803b0b Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 12 七月 2025 09:52:23 +0800 Subject: [PATCH] bug修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 218 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 145 insertions(+), 73 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 07f7e59..70b9816 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.TemplateExportParams; import cn.hutool.core.io.resource.ClassPathResource; import com.ruoyi.common.core.domain.BaseModel; +import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; @@ -31,7 +32,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -56,7 +59,10 @@ public class TTaskController { @Resource private TTaskCleanService taskCleanerService; - + @Resource + private TNoticeService noticeService; + @Resource + private TNoticeSetService noticeSetService; @Resource private TTaskDetailService taskDetailService; @@ -87,18 +93,30 @@ List<SysUser> sysUsers = sysUserService.selectAllList(); List<TLocation> locationList = locationService.list(); if (StringUtils.hasLength(query.getDeptName())){ - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + 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); + listIds.add(tProjectDept.getId()); + } + } List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); - projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ + listIds.addAll(deptIds); + 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())){ List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) - && projectIds.contains(sysUser.getDeptId()) + && listIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); if (patrolInspectorIds.isEmpty()){ return R.ok(new PageInfo<>()); @@ -157,6 +175,9 @@ @ApiOperation(value = "新增任务") @PostMapping(value = "/add") public R<Boolean> add(@RequestBody TTaskDTO dto) { + String nameAndCode = CodeGenerateUtils.generateVolumeSn(); + dto.setTaskName(nameAndCode); + dto.setTaskCode(nameAndCode); dto.setTaskType(2); String implementTime1 = dto.getImplementTime1(); // 转化为LocalDateTime类型 @@ -169,34 +190,63 @@ @Log(title = "审核任务", businessType = BusinessType.UPDATE) @ApiOperation(value = "审核任务") @PostMapping(value = "/audit") - public R<Boolean> audit(@RequestBody @Valid TTaskAuditDTO dto) { + public R<Boolean> audit(@RequestBody TTaskAuditDTO dto) { dto.setAuditTime(LocalDateTime.now()); - TTask byId = taskCleanerService.getById(dto.getTaskId()); + TTask task = taskCleanerService.getById(dto.getTaskId()); + TTaskDetail one = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()) + .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(); + tNotice.setUserId(task.getPatrolInspector()); + tNotice.setStatus(1); + tNotice.setDataId(task.getId()); + tNotice.setNoticeSetType(noticeSet.getNoticeType()); if (dto.getAuditStatus()==2){ dto.setHandleType(3); // 将任务修改为待整改 - byId.setStatus(4); - taskCleanerService.updateById(byId); + task.setStatus(4); + taskCleanerService.updateById(task); + // 增加消息 + tNotice.setNoticeType(1); + tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!"); + }else{ + dto.setHandleType(2); // 如果是初次审核就通过 将状态设置为已完成 - List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, dto.getTaskId()).list(); - if (list.isEmpty()){ - byId.setStatus(6); - taskCleanerService.updateById(byId); - }else{ - byId.setStatus(5); - taskCleanerService.updateById(byId); - } + List<TTaskDetail> list = tTaskDetailService.lambdaQuery() + .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()+"】任务已通过"); + } } + noticeService.save(tNotice); dto.setAuditPerson(tokenService.getLoginUser().getUserId()+""); taskDetailService.save(dto); + 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 @Valid 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); @@ -238,13 +288,17 @@ TLocationType byId2 = locationTypeService.getById(byId1.getLocationType()); taskDetailVO.setLocationAddress(byId1.getLocationAddress()); taskDetailVO.setLocationIcon(byId2.getLocationIcon()); - taskDetailVO.setLocationName(byId2.getLocationName()); + 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()); } + } + if (tTaskDetail!=null){ + tTaskDetail.setFinishTime(tTaskDetail.getCreateTime()); } taskDetailVO.setTaskDetail(tTaskDetail); taskDetailVO.setRecords(list); @@ -301,9 +355,11 @@ byId4.setUnqualifiedName(byId3.getDataContent()); } } - SysUser sysUser = sysUserService.selectUserById(Long.valueOf(byId4.getAuditPerson())); - if (sysUser!=null){ - byId4.setAuditPersonName(sysUser.getUserName()); + if (byId4.getAuditPerson()!=null){ + SysUser sysUser = sysUserService.selectUserById(Long.valueOf(byId4.getAuditPerson())); + if (sysUser!=null){ + byId4.setAuditPersonName(sysUser.getUserName()); + } } taskDetailVO.setTaskDetail(byId4); return R.ok(taskDetailVO); @@ -317,73 +373,89 @@ return R.ok(); } - @Log(title = "任务记录导出", businessType = BusinessType.DELETE) + @Log(title = "任务记录导出", businessType = BusinessType.OTHER) @ApiOperation(value = "任务记录导出") @PostMapping(value = "/exportExcel") public void exportExcel(@RequestBody TaskListQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); List<TLocation> locationList = locationService.list(); - if (StringUtils.hasLength(query.getDeptName())){ - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() - .stream().map(TProjectDept::getId).collect(Collectors.toList()); - List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() - .stream().map(TDept::getId).collect(Collectors.toList()); - projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ - projectIds.add("-1"); + if(CollectionUtils.isEmpty(query.getTaskIds())){ + + 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); + } + } + List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() + .stream().map(TDept::getId).collect(Collectors.toList()); + listIds.addAll(deptIds); + 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())){ + 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()){ + patrolInspectorIds.add(0L); + } + query.setPatrolInspectorIds(patrolInspectorIds); + } } if (StringUtils.hasLength(query.getPhonenumber())){ List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) - && projectIds.contains(sysUser.getDeptId()) + sysUser.getPhonenumber().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ - patrolInspectorIds.add(-1L); + query.setPatrolInspectorIds(patrolInspectorIds); + if (!query.getPatrolInspectorIds().isEmpty()){ + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(0L); + } } - } - if (StringUtils.hasLength(query.getPhonenumber())){ - List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) - ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()){ - // 取交集 - patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); - } - query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ - patrolInspectorIds.add(-1L); - } - } - 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()){ - collect.add("-1"); - } - } - if (query.getLocationType()!=null){ - List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId) - .collect(Collectors.toList()); - if (collect.isEmpty()){ - collect.add("-1"); - } - query.setLocationIds(collect); - } - if (StringUtils.hasLength(query.getLocationName())){ - List<String> collect = locationList.stream().filter(e -> e.getLocationName().contains(query.getLocationName())).map(TLocation::getId) - .collect(Collectors.toList()); - if (collect.isEmpty()){ - collect.add("-1"); - }else{ - collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); + 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()){ - collect.add("-1"); + collect.add("0"); + } + } + 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()){ + collect.add("0"); } query.setLocationIds(collect); } + 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()){ + collect.add("0"); + }else{ + collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add("0"); + } + query.setLocationIds(collect); + } + } } List<TaskListVO> list = taskCleanerService.exportList(query); -- Gitblit v1.7.1