From e36e342b4a7bc01de70e47a7926a2e6372dd0970 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期三, 20 八月 2025 13:19:00 +0800 Subject: [PATCH] yys 修改劳保管理模块 --- src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java | 68 ++++++++++++++++++++++++++++++--- 1 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java index a078ce1..9e66121 100644 --- a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java +++ b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.approve.utils.StartAndEndDateDto; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.excel.ConfigurableMergeStrategy; import com.ruoyi.common.utils.excel.CustomCellStyleHandler; import com.ruoyi.lavorissue.dto.StatisticsLaborIssue; @@ -51,17 +52,54 @@ StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(laborIssue.getSeason(), laborIssue.getIssueDate()); laborIssue.setStartDate(startAndEndDateDto.getStartDate()); laborIssue.setEndDate(startAndEndDateDto.getEndDate()); - IPage<LaborIssue> laborIssueIPage = lavorIssueMapper.listPage(page, laborIssue); - return laborIssueIPage; + return lavorIssueMapper.listPage(page, laborIssue); + } + + @Override + public List<Map<String, Object>> statisticsList(LaborIssue laborIssue){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(laborIssue.getSeason(), laborIssue.getIssueDate()); + laborIssue.setStartDate(startAndEndDateDto.getStartDate()); + laborIssue.setEndDate(startAndEndDateDto.getEndDate()); + List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(laborIssue); + + // 浣跨敤鍙彉鐨凙rrayList鏇挎崲榛樿鐨勪笉鍙彉鍒楄〃 + List<Map<String, Object>> records = new ArrayList<>(); + + Map<String, List<LaborIssue>> collect = laborIssueIPage.stream().collect(Collectors.groupingBy(LaborIssue::getStaffNo)); + collect.forEach((k, v) -> { + HashMap<String, Object> hashMap = new HashMap<>(); + LaborIssue laborIssue1 = v.get(0); + hashMap.put("id", v.stream().map(LaborIssue::getId)); + hashMap.put("deptName", laborIssue1.getDeptName()); + hashMap.put("orderNo", laborIssue1.getOrderNo()); + hashMap.put("staffId", laborIssue1.getStaffId()); + hashMap.put("staffName", laborIssue1.getStaffName()); + hashMap.put("staffNo", laborIssue1.getStaffNo()); + hashMap.put("dictType", laborIssue1.getDictType()); + hashMap.put("dictTypeName", laborIssue1.getDictTypeName()); + hashMap.put("factoryDate", laborIssue1.getFactoryDate() == null ? "" : sdf.format(laborIssue1.getFactoryDate())); + hashMap.put("issueDate", laborIssue1.getIssueDate() == null ? "" : sdf.format(laborIssue1.getIssueDate())); + hashMap.put("adoptedDate", laborIssue1.getAdoptedDate() == null ? "" : sdf.format(laborIssue1.getAdoptedDate())); + hashMap.put("tenantId", laborIssue1.getTenantId()); + Map<String, List<LaborIssue>> collect1 = v.stream().collect(Collectors.groupingBy(LaborIssue::getDictId)); + collect1.forEach((k1, v1) -> { + hashMap.put(k1, v1.stream() + .mapToLong(LaborIssue::getNum) + .sum()); + }); + records.add(hashMap); + }); + return records; } public StartAndEndDateDto getStartAndEndDateDto(Integer season,Date payDate){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StartAndEndDateDto startAndEndDateDto = new StartAndEndDateDto(); + Calendar calendar = Calendar.getInstance(); + int currentYear = calendar.get(Calendar.YEAR); + startAndEndDateDto.setYear(currentYear); if(season != null){ - Calendar calendar = Calendar.getInstance(); - int currentYear = calendar.get(Calendar.YEAR); - startAndEndDateDto.setYear(currentYear); switch (season){ case 1: startAndEndDateDto.setStartDate(currentYear + "-01-01"); @@ -91,8 +129,11 @@ } if(payDate != null){ Date lastDayOfMonth = getLastDayOfMonth(payDate); - startAndEndDateDto.setStartDate(sdf.format(payDate)); + Date firstDayOfMonth = getFirstDayOfMonth(payDate); + startAndEndDateDto.setStartDate(sdf.format(firstDayOfMonth)); startAndEndDateDto.setEndDate(sdf.format(lastDayOfMonth)); + startAndEndDateDto.setStartMonth(payDate.getMonth() + 1); + startAndEndDateDto.setEndMonth(payDate.getMonth() + 1); } return startAndEndDateDto; } @@ -172,7 +213,7 @@ List<List<String>> list = data.get(i); //鑾峰彇sheet0瀵硅薄 - WriteSheet mainSheet = EasyExcel.writerSheet(i, "澶栭儴瑁呯鍗�" + i).build(); + WriteSheet mainSheet = EasyExcel.writerSheet(i, "鍔充繚鍙拌处" + i).build(); //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� excelWriter.write(list, mainSheet); } @@ -308,4 +349,17 @@ calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 璁剧疆涓哄綋鏈堟渶鍚庝竴澶� return calendar.getTime(); // 杩斿洖Date瀵硅薄 } + + /** + * 鑾峰彇褰撴湀绗竴澶� + * @param date + * @return + */ + public Date getFirstDayOfMonth(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); // 璁剧疆浼犲叆鐨凞ate + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 璁剧疆涓哄綋鏈堢涓�澶� + return calendar.getTime(); // 杩斿洖Date瀵硅薄 + } + } -- Gitblit v1.9.3