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/LavorIssueService.java | 4 ++ src/main/resources/mapper/lavorissue/LavorIssueMapper.xml | 14 ++++++ src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java | 68 ++++++++++++++++++++++++++++++--- src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java | 11 +++++ 4 files changed, 89 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java b/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java index b3890d8..f0c861a 100644 --- a/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java +++ b/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java @@ -27,9 +27,12 @@ import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.Date; import java.util.List; +import java.util.Map; /** * @author :yys @@ -57,6 +60,14 @@ return AjaxResult.success(listPage); } + @GetMapping("/statisticsList") + @Log(title = "鍔充繚鍙戞斁-缁熻鏌ヨ", businessType = BusinessType.OTHER) + @ApiOperation("鍔充繚鍙戞斁-缁熻鏌ヨ") + public AjaxResult statisticsList(LaborIssue laborIssue){ + List<Map<String, Object>> listPage = laborIssueService.statisticsList(laborIssue); + return AjaxResult.success(listPage); + } + @PostMapping("/add") @Log(title = "鍔充繚鍙戞斁-娣诲姞", businessType = BusinessType.INSERT) @ApiOperation("鍔充繚鍙戞斁-娣诲姞") diff --git a/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java b/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java index dc97453..a0fd247 100644 --- a/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java +++ b/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java @@ -8,6 +8,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; +import java.util.List; +import java.util.Map; /** * @author :yys @@ -27,4 +29,6 @@ StatisticsLaborIssue statistics(StatisticsLaborIssue req) throws Exception; void exportCopy(HttpServletResponse response, LaborIssue laborIssue) throws UnsupportedEncodingException; + + List<Map<String, Object>> statisticsList(LaborIssue laborIssue); } 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瀵硅薄 + } + } diff --git a/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml index dcde507..81cf11d 100644 --- a/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml +++ b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml @@ -53,7 +53,7 @@ and t1.adopted_date is null </if> <if test="req.issueDate != null"> - and t1.issue_date < #{req.issueDate} + and (t1.issue_date >= #{req.startDate} and t1.issue_date <= #{req.endDate}) </if> <if test="req.staffId != null"> and t1.staff_id = #{req.staffId} @@ -61,6 +61,18 @@ <if test="req.season != null and req.season != ''"> and (t1.issue_date >= #{req.startDate} and t1.issue_date <= #{req.endDate}) </if> + <if test="req.status != null and req.status == 1"> + and t1.adopted_date is not null + </if> + <if test="req.status != null and req.status == 2"> + and t1.adopted_date is null + </if> + <if test="req.status != null and req.status == 3"> + and t1.adopted_date is not null and t1.issue_date < t1.adopted_date + </if> + <if test="req.status != null and req.status == 4"> + and t1.adopted_date is null and t1.issue_date < current_date() + </if> </where> </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3