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/ListOwnerRepairsCmd.java |  142 ++++++++++++++++++++++++++++------------------
 1 files changed, 86 insertions(+), 56 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java
index aa4d398..05c5e47 100644
--- a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java
@@ -16,9 +16,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.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;
@@ -28,6 +26,7 @@
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @Java110Cmd(serviceCode = "ownerRepair.listOwnerRepairs")
@@ -63,59 +62,84 @@
             ownerRepairDto.setRoomIds(roomIds);
             ownerRepairDto.setRoomId("");
         }
-        //todo PC鐢佃瘽鎶ヤ慨銆丳C宸ュ崟姹犮�丠5宸ュ崟姹�
-        //todo 鎵嬫満绔憳宸ュ崟宸ュ崟姹� 鍙繑鍥炴湭澶勭悊鐘舵�佺殑鏁版嵁
-        //todo 杩欎釜搴旇鏄剧ず鍏ㄩ儴鎵嶅锛屼箣鍓嶇殑鍏勫紵鍐欑殑涓嶅悎閫� add by wuxw
-//        if (!StringUtil.isEmpty(ownerRepairDto.getReqSource()) && ownerRepairDto.getReqSource().equals("mobile")) {
-//            ownerRepairDto.setState(RepairDto.STATE_WAIT);
-//        }
+
         //todo pc鐢佃瘽鎶ヤ慨妯″潡 鍙繑鍥濸C鍛樺伐鐧昏鍜屾墜鏈虹鍛樺伐鐧昏鐨勬暟鎹�
-        if (!StringUtil.isEmpty(ownerRepairDto.getReqSource()) && ownerRepairDto.getReqSource().equals("pc_mobile")) {
+        if ("pc_mobile".equals(ownerRepairDto.getReqSource())) {
             String[] repair_channel = {RepairDto.REPAIR_CHANNEL_STAFF, RepairDto.REPAIR_CHANNEL_TEL};
             ownerRepairDto.setRepairChannels(Arrays.asList(repair_channel));
         }
         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);
+
         } 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 ifHasTime(RepairDto ownerRepairDto) {
@@ -134,23 +158,29 @@
     }
 
     private void hasOwnerId(JSONObject reqJson) {
-        if (reqJson.containsKey("ownerId") && !StringUtil.isEmpty(reqJson.getString("ownerId"))) {
-            OwnerDto ownerDto = new OwnerDto();
-            ownerDto.setMemberId(reqJson.getString("ownerId"));
-            ownerDto.setCommunityId(reqJson.getString("communityId"));
-            List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
-            if (ownerDtos != null && ownerDtos.size() > 0) {
-                reqJson.put("tel", ownerDtos.get(0).getLink());
-            }
+        String ownerId = reqJson.getString("ownerId");
+        if (StringUtil.isEmpty(ownerId)) {
+            return;
         }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(reqJson.getString("ownerId"));
+        ownerDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+        if (!ListUtil.isNull(ownerDtos)) {
+            reqJson.put("tel", ownerDtos.get(0).getLink());
+        }
+
     }
 
     private void refreshRepair(List<RepairDto> ownerRepairs) {
+        if (ListUtil.isNull(ownerRepairs)) {
+            return;
+        }
         List<String> repairIds = new ArrayList<>();
         for (RepairDto apiOwnerRepairDataVo : ownerRepairs) {
             repairIds.add(apiOwnerRepairDataVo.getRepairId());
         }
-        if (repairIds.size() < 1) {
+        if (ListUtil.isNull(repairIds)) {
             return;
         }
         RepairUserDto repairUserDto = new RepairUserDto();

--
Gitblit v1.8.0