From 04268417291c9ba021b4ff11e09169c2b01c69b6 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 12 七月 2025 11:47:20 +0800 Subject: [PATCH] bug修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java | 96 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 64 insertions(+), 32 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java index 16a19e4..15d0200 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java @@ -5,8 +5,13 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.exception.ServiceException; @@ -133,10 +138,23 @@ .eq(query.getStatus() != null, TTask::getStatus, query.getStatus()) .in(query.getPatrolInspectorIds() != null && query.getPatrolInspectorIds().isEmpty(), TTask::getPatrolInspector, query.getPatrolInspectorIds()) .in(query.getTaskIds() != null && query.getTaskIds().isEmpty(), TTask::getId, query.getTaskIds()).list(); + List<String> collect = list.stream().map(TTask::getId).collect(Collectors.toList()); - list = list.stream().skip((long) (query.getPageNum() - 1) * query.getPageSize()).limit(query.getPageSize()).collect(Collectors.toList()); - pageInfo.setTotal(list.size()); List<LocationListTaskVO> res = new ArrayList<>(); + List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) + .in(TTaskDetail::getTaskId,collect) + .eq(TTaskDetail::getClearStatus, 2) + .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 (TTask tTask : list) { LocationListTaskVO temp = new LocationListTaskVO(); TLocation tLocation = locationList.stream().filter(e -> e.getId().equals(tTask.getLocationId())).findFirst().orElse(null); @@ -164,19 +182,30 @@ } } }); + locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst() + .ifPresent(tLocationType -> temp.setLocationTypeName(tLocationType.getLocationName())); + } - TTaskDetail one = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getTaskId, tTask.getId()) - .orderByDesc(TTaskDetail::getCreateTime).last("limit 1").one(); - if (one!=null){ - temp.setClearStatus(one.getClearStatus()); - temp.setPicture(one.getPicture()); + TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null); + if (tTaskDetail!=null){ + temp.setPicture(tTaskDetail.getPicture()); + temp.setClearStatus(tTaskDetail.getClearStatus()); + if (query.getClearStatus()!=null){ + if (query.getClearStatus().equals(tTaskDetail.getClearStatus())){ + res.add(temp); + } + }else{ + res.add(temp); + } } temp.setTaskType(tTask.getTaskType()); temp.setStatus(tTask.getStatus()); temp.setTaskId(tTask.getId()); temp.setImplementTime(tTask.getImplementTime()); - res.add(temp); + } + res = res.stream().skip((long) (query.getPageNum() - 1) * query.getPageSize()).limit(query.getPageSize()).collect(Collectors.toList()); + pageInfo.setTotal(res.size()); pageInfo.setRecords(res); return R.ok(pageInfo); } @@ -276,20 +305,6 @@ public void importTemplate() { List<TLocationImportExcel> locationImportExcels = new ArrayList<>(); TLocationImportExcel tLocationImportExcel = new TLocationImportExcel(); - tLocationImportExcel.setDeptCode("1"); - tLocationImportExcel.setDeptName("1"); - tLocationImportExcel.setNickName("1"); - tLocationImportExcel.setProjectCodeClear("1"); - tLocationImportExcel.setDeptCodeClear("1"); - tLocationImportExcel.setCleanerCodeClear("1"); - tLocationImportExcel.setLocationCode("1"); - tLocationImportExcel.setLocationType("1"); - tLocationImportExcel.setLocationName("1"); - tLocationImportExcel.setLocationAddress("1"); - tLocationImportExcel.setLocationAddressEnd("1"); - tLocationImportExcel.setLocationAddressLonLat("1"); - tLocationImportExcel.setLocationAddressEndLonLat("1"); - locationImportExcels.add(tLocationImportExcel); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TLocationImportExcel.class, locationImportExcels); HttpServletResponse response = WebUtils.response(); @@ -320,7 +335,7 @@ @PostMapping("/importLocation") public R<String> importLocation(@RequestPart("file") MultipartFile file) { ImportParams params = new ImportParams(); - params.setTitleRows(2); // 标题行数 +// params.setTitleRows(1); // 标题行数 params.setHeadRows(1); //表头行数 InputStream inputStream = null; // List<CustomerImportFailedData> failedData = new ArrayList<>(); @@ -350,9 +365,11 @@ // 查询所有用户 List<SysUser> users = sysUserService.selectAllList(); // 查询所有部门 - List<TDept> deptList = deptService.list(); + List<TProjectDept> deptList = projectDeptService.list(); // 查询所有保洁员 List<TCleaner> cleaners = cleanerService.list(); + + JSONObject result = new JSONObject(); for (TLocationImportExcel locationExcel : locationExcelList) { System.err.println(locationExcel); @@ -364,28 +381,43 @@ location.setLocationType(tLocationType.getId()); } location.setLocationAddress(locationExcel.getLocationAddress()); - String[] addressLonLat = locationExcel.getLocationAddressLonLat().split("/"); + String[] addressLonLat = locationExcel.getLocationAddressLonLat().split(","); location.setLocationLon(addressLonLat[0]); location.setLocationLat(addressLonLat[1]); location.setLocationAddressEnd(locationExcel.getLocationAddressEnd()); - String[] addressEndLonLat = locationExcel.getLocationAddressEndLonLat().split("/"); + String[] addressEndLonLat = locationExcel.getLocationAddressEndLonLat().split(","); location.setLocationLonEnd(addressEndLonLat[0]); location.setLocationLatEnd(addressEndLonLat[1]); - TDept tDept = deptList.stream().filter(dept -> dept.getCode().equals(locationExcel.getDeptCode())).findFirst().orElse(null); - if(Objects.nonNull(tDept)){ - location.setProjectId(tDept.getId()); + TProjectDept projectDept = deptList.stream().filter(dept -> dept.getCode().equals(locationExcel.getDeptCode())).findFirst().orElse(null); + if(Objects.nonNull(projectDept)){ + location.setProjectId(projectDept.getId()); + }else { + result.append("路段名:[", locationExcel.getLocationName()+"]未查询到部门"); + continue; } SysUser sysUser = users.stream().filter(user -> user.getNickName().equals(locationExcel.getNickName())).findFirst().orElse(null); if(Objects.nonNull(sysUser)){ location.setLocationLeader(String.valueOf(sysUser.getUserId())); + }else { + result.append("路段名:[", locationExcel.getLocationName()+"]未查询到点位负责人"); + continue; } - cleaners.stream().filter(cleaner -> cleaner.getCleanerCode().equals(locationExcel.getCleanerCodeClear()) + TCleaner tCleaner = cleaners.stream().filter(cleaner -> cleaner.getCleanerCode().equals(locationExcel.getCleanerCodeClear()) && cleaner.getDeptCode().equals(locationExcel.getDeptCodeClear()) - && cleaner.getProjectCode().equals(locationExcel.getProjectCodeClear())).findFirst().orElse(null); - location.setLocationCleaner(locationExcel.getProjectCodeClear()); + && cleaner.getProjectCode().equals(locationExcel.getProjectCodeClear()) + && cleaner.getCleanerName().equals(locationExcel.getCleanerName())).findFirst().orElse(null); + if(Objects.nonNull(tCleaner)){ + location.setLocationCleaner(tCleaner.getId()); + }else { + result.append("路段名:[", locationExcel.getLocationName()+"]未查询到保洁员"); + continue; + } locationService.save(location); } + if(!result.isEmpty()){ + return R.ok(result.toString()); + } return R.ok(); } -- Gitblit v1.7.1