From 560b781b841c18b8cb179a0603620d85536f2d9a Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 28 三月 2025 12:25:44 +0800
Subject: [PATCH] 优化代码

---
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java |  110 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 68 insertions(+), 42 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java
index b8b07c5..301dc8e 100644
--- a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java
@@ -20,10 +20,7 @@
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.MappingConstant;
 import com.java110.utils.exception.CmdException;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.ListUtil;
-import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
 import com.java110.vo.api.junkRequirement.PhotoVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +30,7 @@
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @Java110Cmd(serviceCode = "ownerRepair.listAdminOwnerRepairs")
@@ -83,51 +81,79 @@
         }
 
         int count = repairInnerServiceSMOImpl.queryRepairsCount(ownerRepairDto);
-        List<RepairDto> ownerRepairs = new ArrayList<>();
+        List<RepairDto> repairDtos;
         if (count > 0) {
-            List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(ownerRepairDto);
-            for (RepairDto repairDto : repairDtos) {
-                //鑾峰彇缁煎悎璇勪环寰楀垎
-                String appraiseScoreNumber = repairDto.getAppraiseScore();
-                Double appraiseScoreNum = 0.0;
-                if (!StringUtil.isEmpty(appraiseScoreNumber)) {
-                    appraiseScoreNum = Double.parseDouble(appraiseScoreNumber);
-                }
-                int appraiseScore = (int) Math.ceil(appraiseScoreNum);
-                //鑾峰彇涓婇棬閫熷害璇勫垎
-                String doorSpeedScoreNumber = repairDto.getDoorSpeedScore();
-                Double doorSpeedScoreNum = 0.0;
-                if (!StringUtil.isEmpty(doorSpeedScoreNumber)) {
-                    doorSpeedScoreNum = Double.parseDouble(doorSpeedScoreNumber);
-                }
-                int doorSpeedScore = (int) Math.ceil(doorSpeedScoreNum);
-                //鑾峰彇缁翠慨鍛樻湇鍔¤瘎鍒�
-                String repairmanServiceScoreNumber = repairDto.getRepairmanServiceScore();
-                Double repairmanServiceScoreNum = 0.0;
-                if (!StringUtil.isEmpty(repairmanServiceScoreNumber)) {
-                    repairmanServiceScoreNum = Double.parseDouble(repairmanServiceScoreNumber);
-                }
-                int repairmanServiceScore = (int) Math.ceil(repairmanServiceScoreNum);
-                //鍙栧緱骞冲潎鍒�
-                double averageNumber = (appraiseScoreNum + doorSpeedScoreNum + repairmanServiceScoreNum) / 3.0;
-                BigDecimal averageNum = new BigDecimal(averageNumber);
-                Double average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                repairDto.setAppraiseScore(String.valueOf(appraiseScore));
-                repairDto.setDoorSpeedScore(String.valueOf(doorSpeedScore));
-                repairDto.setRepairmanServiceScore(String.valueOf(repairmanServiceScore));
-                repairDto.setAverage(String.valueOf(average));
-                ownerRepairs.add(repairDto);
-            }
-            refreshRepair(ownerRepairs);
+            repairDtos = repairInnerServiceSMOImpl.queryRepairs(ownerRepairDto);
+            computeRepairScore(repairDtos);
+            refreshRepair(repairDtos);
 
-            refreshCommunityName(ownerRepairs);
+            refreshCommunityName(repairDtos);
         } else {
-            ownerRepairs = new ArrayList<>();
+            repairDtos = new ArrayList<>();
         }
-        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, ownerRepairs);
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, repairDtos);
         context.setResponseEntity(responseEntity);
     }
 
+    /**
+     * 璁$畻璇勫垎
+     *
+     * @param repairDtos
+     */
+    private void computeRepairScore(List<RepairDto> repairDtos) {
+        if (ListUtil.isNull(repairDtos)) {
+            return;
+        }
+        Date finishTime = null;
+        String submitHour;
+        Date timeout = null;
+        for (RepairDto repairDto : repairDtos) {
+            //鑾峰彇缁煎悎璇勪环寰楀垎
+            String appraiseScoreNumber = repairDto.getAppraiseScore();
+            Double appraiseScoreNum = 0.0;
+            if (!StringUtil.isEmpty(appraiseScoreNumber)) {
+                appraiseScoreNum = Double.parseDouble(appraiseScoreNumber);
+            }
+            int appraiseScore = (int) Math.ceil(appraiseScoreNum);
+            //鑾峰彇涓婇棬閫熷害璇勫垎
+            String doorSpeedScoreNumber = repairDto.getDoorSpeedScore();
+            Double doorSpeedScoreNum = 0.0;
+            if (!StringUtil.isEmpty(doorSpeedScoreNumber)) {
+                doorSpeedScoreNum = Double.parseDouble(doorSpeedScoreNumber);
+            }
+            int doorSpeedScore = (int) Math.ceil(doorSpeedScoreNum);
+            //鑾峰彇缁翠慨鍛樻湇鍔¤瘎鍒�
+            String repairmanServiceScoreNumber = repairDto.getRepairmanServiceScore();
+            Double repairmanServiceScoreNum = 0.0;
+            if (!StringUtil.isEmpty(repairmanServiceScoreNumber)) {
+                repairmanServiceScoreNum = Double.parseDouble(repairmanServiceScoreNumber);
+            }
+            int repairmanServiceScore = (int) Math.ceil(repairmanServiceScoreNum);
+            //鍙栧緱骞冲潎鍒�
+            double averageNumber = (appraiseScoreNum + doorSpeedScoreNum + repairmanServiceScoreNum) / 3.0;
+            BigDecimal averageNum = new BigDecimal(averageNumber);
+            Double average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+            repairDto.setAppraiseScore(String.valueOf(appraiseScore));
+            repairDto.setDoorSpeedScore(String.valueOf(doorSpeedScore));
+            repairDto.setRepairmanServiceScore(String.valueOf(repairmanServiceScore));
+            repairDto.setAverage(String.valueOf(average));
+
+            // 璁$畻鎻愬崟鏃堕暱
+            finishTime = DateUtil.getCurrentDate();
+            if (!StringUtil.isEmpty(repairDto.getFinishTime())) {
+                finishTime = DateUtil.getDateFromStringA(repairDto.getFinishTime());
+            } else {
+                timeout = DateUtil.getDateFromStringA(repairDto.getTimeout());
+                if (finishTime.getTime() > timeout.getTime()) {
+                    repairDto.setStateName(repairDto.getStateName() + "(瓒呮椂)");
+                }
+            }
+            submitHour = DateUtil.calculateTimeDifference(repairDto.getCreateTime(), finishTime);
+            repairDto.setSubmitHours(submitHour);
+
+        }
+    }
+
     private void refreshCommunityName(List<RepairDto> ownerRepairs) {
 
         if(ListUtil.isNull(ownerRepairs)){

--
Gitblit v1.8.0