From 12aac2ade617f3bb4e40165176d009ab3fa15a52 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 20 六月 2025 17:52:13 +0800 Subject: [PATCH] 点位导入 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 131 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 126 insertions(+), 5 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 9781920..0fe93ed 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,7 +1,16 @@ package com.ruoyi.web.controller.api; +import java.io.IOException; +import java.math.BigDecimal; +import java.net.URLEncoder; import java.time.LocalDateTime; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +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.DateUtils; +import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TTaskAuditBatchDTO; import com.ruoyi.system.dto.TTaskAuditDTO; @@ -21,14 +30,15 @@ import com.ruoyi.system.vo.system.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -151,14 +161,23 @@ @PostMapping(value = "/audit") public R<Boolean> audit(@RequestBody @Valid TTaskAuditDTO dto) { dto.setAuditTime(LocalDateTime.now()); + TTask byId = taskCleanerService.getById(dto.getTaskId()); if (dto.getAuditStatus()==2){ dto.setHandleType(3); // 将任务修改为待整改 - TTask byId = taskCleanerService.getById(dto.getTaskId()); byId.setStatus(4); taskCleanerService.updateById(byId); }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); + } } dto.setAuditPerson(tokenService.getLoginUser().getUserId()+""); taskDetailService.save(dto); @@ -170,6 +189,7 @@ public R<Boolean> auditBatch(@RequestBody @Valid 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()); @@ -177,11 +197,19 @@ if (dto.getAuditStatus()==2){ tTaskDetail.setHandleType(3); // 将任务修改为待整改 - TTask byId = taskCleanerService.getById(tTaskDetail.getTaskId()); byId.setStatus(4); taskCleanerService.updateById(byId); }else{ tTaskDetail.setHandleType(2); + // 如果是初次审核就通过 将状态设置为已完成 + List<TTaskDetail> list = taskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, s).list(); + if (list.isEmpty()){ + byId.setStatus(6); + taskCleanerService.updateById(byId); + }else{ + byId.setStatus(5); + taskCleanerService.updateById(byId); + } } tTaskDetails.add(tTaskDetail); } @@ -247,5 +275,98 @@ return R.ok(); } + @Log(title = "任务记录导出", businessType = BusinessType.DELETE) + @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 (StringUtils.hasLength(query.getPhonenumber())){ + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getPhonenumber().equals(query.getPhonenumber()) + && projectIds.contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(-1L); + } + query.setPatrolInspectorIds(patrolInspectorIds); + } + } + 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 (collect.isEmpty()){ + collect.add("-1"); + } + query.setLocationIds(collect); + } + } + List<TaskListVO> list = taskCleanerService.exportList(query); + + //1.获取excel模板 + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TaskListVO.class, list); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("任务记录列表.xls", "utf-8"); + response.setHeader("Content-dispodition", "attachment;filename=" + fileName); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + } -- Gitblit v1.7.1