Procházet zdrojové kódy

工时统计增加不分页,按照用户名首字母排序

zhangjq před 1 rokem
rodič
revize
4aeae50d01

+ 7 - 0
zjugis-module-adm/zjugis-module-adm-biz/pom.xml

@@ -151,6 +151,13 @@
             <artifactId>examples</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <!-- 中文到拼音转换 -->
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/report/ReportWorkLoadStatisticsController.java

@@ -28,7 +28,7 @@ public class ReportWorkLoadStatisticsController {
 
     @GetMapping("/query-workload-statistics")
     @Operation(summary = "工作报告工作量分页统计")
-    public CommonResult<PageResult<ReportWorkloadStatisticVO>> getReportStatistics(@Valid ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO){
+    public CommonResult<Object> getReportStatistics(@Valid ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO){
         return success(reportService.getReportWorkloadStatistics(reportWorkloadStatisticReqDTO));
     }
 

+ 5 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/report/dto/statistics/ReportWorkloadStatisticReqDTO.java

@@ -12,6 +12,11 @@ import javax.validation.constraints.NotNull;
 @Data
 public class ReportWorkloadStatisticReqDTO extends PageParam {
 
+    /**
+     * 是否分页(默认true)
+     */
+    private Boolean isPage = true;
+
     /**
      * 年份
      */

+ 1 - 1
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/report/ReportService.java

@@ -89,7 +89,7 @@ public interface ReportService {
      * 工作报告项目工时统计
      * @return
      */
-    PageResult<ReportWorkloadStatisticVO> getReportWorkloadStatistics(ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO);
+    Object getReportWorkloadStatistics(ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO);
 
 
     /**

+ 15 - 4
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/report/ReportServiceImpl.java

@@ -41,9 +41,9 @@ import com.zjugis.module.adm.service.staff.RecordsService;
 import com.zjugis.module.adm.service.workday.WorkdayService;
 import com.zjugis.module.adm.util.DateUtil;
 import com.zjugis.module.adm.util.PageUtil;
+import com.zjugis.module.adm.util.PinyinUtil;
 import com.zjugis.module.system.api.dept.DeptApi;
 import com.zjugis.module.system.api.dept.dto.DeptRespDTO;
-import com.zjugis.module.system.api.dept.dto.DeptTreeRespDTO;
 import com.zjugis.module.system.api.dict.DictDataApi;
 import com.zjugis.module.system.api.dict.dto.DictDataRespDTO;
 import com.zjugis.module.system.api.user.AdminUserApi;
@@ -491,7 +491,7 @@ public class ReportServiceImpl implements ReportService {
     }
 
     @Override
-    public PageResult<ReportWorkloadStatisticVO> getReportWorkloadStatistics(ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO) {
+    public Object getReportWorkloadStatistics(ReportWorkloadStatisticReqDTO reportWorkloadStatisticReqDTO) {
         Short year = reportWorkloadStatisticReqDTO.getYear();
         Short month = reportWorkloadStatisticReqDTO.getMonth();
         String projectName = reportWorkloadStatisticReqDTO.getProjectName();
@@ -507,6 +507,7 @@ public class ReportServiceImpl implements ReportService {
             queryWrapper.eq("USER_ID", reportWorkloadStatisticReqDTO.getUserId());
         }
 
+
         //根据项目名称模糊查询项目ID
         ProjectDto projectDto = new ProjectDto();
         projectDto.setPageNo(1);
@@ -572,8 +573,18 @@ public class ReportServiceImpl implements ReportService {
             }
             resultList.add(result);
         }
-        PageResult<ReportWorkloadStatisticVO> pageResult = PageUtil.getPages(reportWorkloadStatisticReqDTO.getPageNo(), reportWorkloadStatisticReqDTO.getPageSize(), resultList);
-        return pageResult;
+        resultList = resultList.stream()
+                .sorted(Comparator.comparing(c -> PinyinUtil.toFirstLetter(c.getNickName())))
+                .collect(Collectors.toList());
+
+        if(reportWorkloadStatisticReqDTO.getIsPage()){
+            PageResult<ReportWorkloadStatisticVO> pageResult = PageUtil.getPages(reportWorkloadStatisticReqDTO.getPageNo(), reportWorkloadStatisticReqDTO.getPageSize(), resultList);
+            return pageResult;
+
+        } else {
+            return resultList;
+        }
+
     }
 
 

+ 26 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/util/PinyinUtil.java

@@ -0,0 +1,26 @@
+package com.zjugis.module.adm.util;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+
+/**
+ * @Author:zjq
+ * @Date:2024-04-24
+ */
+public class PinyinUtil {
+    public static String toFirstLetter(String chinese) {
+        if (chinese == null || chinese.trim().isEmpty()) {
+            return "";
+        }
+        char[] charArray = chinese.toCharArray();
+        StringBuilder pinyin = new StringBuilder();
+        for (char c : charArray) {
+            String[] temp = PinyinHelper.toHanyuPinyinStringArray(c);
+            if (temp != null) {
+                pinyin.append(temp[0].charAt(0));
+            } else {
+                pinyin.append(c);
+            }
+        }
+        return pinyin.toString().toUpperCase();
+    }
+}