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-system/src/main/java/com/ruoyi/system/importExcel/TLocationImportExcel.java | 36 +++++++++--------- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java | 45 +++++++++++++++++++--- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TLocationController.java | 39 ++++++++++++++----- 3 files changed, 86 insertions(+), 34 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 289c532..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,6 +5,8 @@ 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; @@ -333,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<>(); @@ -363,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); @@ -377,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(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java index 1f7c0b0..5501de8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java @@ -204,6 +204,10 @@ } query.setProjectId(projectIds); } + + // 巡检员数 + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType); + map.put("totalEmployeeNum", totalEmployeeNum); }else { // 公司人员 // 查询自己的任务列表 @@ -218,6 +222,9 @@ query.setProjectId(projectIds); } } + // 巡检员数 + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1); + map.put("totalEmployeeNum", totalEmployeeNum+1); } // 查询片区 @@ -283,6 +290,16 @@ list.addAll(taskList); } list = list.stream().distinct().collect(Collectors.toList()); + + // 巡检员数 + if(CollectionUtils.isEmpty(query.getProjectId())){ + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType); + Integer totalEmployeeNum1 = sysUserService.selectUserCount(query.getProjectId(),1); + map.put("totalEmployeeNum", totalEmployeeNum+totalEmployeeNum1); + }else { + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1); + map.put("totalEmployeeNum", totalEmployeeNum); + } } // 查询任务相关数据 @@ -294,11 +311,11 @@ map.put("waitTaskNum", list.stream().filter(tTask -> tTask.getStatus() == 1).count()); // 总计员工数 - Integer totalEmployeeNum = sysUserService.selectUserCount(null,deptType); - if (deptType != 1) { - totalEmployeeNum = totalEmployeeNum + 1; - } - map.put("totalEmployeeNum", totalEmployeeNum); +// Integer totalEmployeeNum = sysUserService.selectUserCount(null,deptType); +// if (deptType != 1) { +// totalEmployeeNum = totalEmployeeNum + 1; +// } +// map.put("totalEmployeeNum", totalEmployeeNum); // 今日请假员工数量 List<TLeave> leaves = leaveService.list(Wrappers.lambdaQuery(TLeave.class) @@ -499,6 +516,22 @@ && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ taskSituationVO.setPassRate(BigDecimal.ZERO); + for (long i = 0; i <= daysBetween; i++) { + TaskSituationDayVO taskSituationDayVO = new TaskSituationDayVO(); + if(i == 0){ + format = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + }else { + format = DateUtils.stringToLocalDate(format).plusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + } + taskSituationDayVO.setTaskTime(format); + // 任务数 + taskSituationDayVO.setTaskNum(0); + // 完成数 + taskSituationDayVO.setCompletedNum(0); + taskSituationDayVO.setCompleteRate(BigDecimal.ZERO); + taskSituationDayVOList.add(taskSituationDayVO); + } + taskSituationVO.setTaskSituationDayVO(taskSituationDayVOList); return R.ok(taskSituationVO); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); @@ -541,7 +574,7 @@ if(tTasks.isEmpty()){ taskSituationDayVO.setCompleteRate(BigDecimal.ZERO); }else { - taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(tTasks.size()), 2, RoundingMode.HALF_DOWN)); + taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(taskSituationDayVO.getCompletedNum()), 2, RoundingMode.HALF_DOWN)); } taskSituationDayVOList.add(taskSituationDayVO); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TLocationImportExcel.java b/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TLocationImportExcel.java index 67423d5..cb9bff8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TLocationImportExcel.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TLocationImportExcel.java @@ -10,39 +10,39 @@ @ApiModel(value = "点位导入excel") public class TLocationImportExcel implements Serializable { - @Excel(name = "项目部编号") + @Excel(name = "项目部编号",width = 20) private String deptCode; - @Excel(name = "项目部名称") + @Excel(name = "项目部名称",width = 20) private String deptName; - @Excel(name = "基层管理员部门编号") + @Excel(name = "基层管理员部门编号",width = 20) private String deptNumber; - @Excel(name = "基层管理员项目部编号") + @Excel(name = "基层管理员项目部编号",width = 20) private String projectDeptNumber; - @Excel(name = "基层管理员姓名 巡检员") + @Excel(name = "基层管理员姓名 巡检员",width = 20) private String nickName; - @Excel(name = "保洁员部门编号") - private String projectCodeClear; - @Excel(name = "保洁员项目部编号") + @Excel(name = "保洁员部门编号",width = 20) private String deptCodeClear; - @Excel(name = "保洁员片区编号") + @Excel(name = "保洁员项目部编号",width = 20) + private String projectCodeClear; + @Excel(name = "保洁员片区编号",width = 20) private String cleanerCodeClear; - @Excel(name = "保洁员(驾驶员)") + @Excel(name = "保洁员(驾驶员)",width = 20) private String cleanerName; - @Excel(name = "路段总号") + @Excel(name = "路段总号",width = 20) private String locationCode; - @Excel(name = "个人编号") + @Excel(name = "个人编号",width = 20) private String cleanerCode; - @Excel(name = "点位类型") + @Excel(name = "点位类型",width = 20) private String locationType; - @Excel(name = "路段名(村名)") + @Excel(name = "路段名(村名)",width = 20) private String locationName; - @Excel(name = "起点") + @Excel(name = "起点",width = 20) private String locationAddress; - @Excel(name = "终点") + @Excel(name = "终点",width = 20) private String locationAddressEnd; - @Excel(name = "起点(经纬度)") + @Excel(name = "起点(经纬度)",width = 20) private String locationAddressLonLat; - @Excel(name = "终点(经纬度)") + @Excel(name = "终点(经纬度)",width = 20) private String locationAddressEndLonLat; } -- Gitblit v1.7.1