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