From e57e32fc43da31917912eebb4e47d4e50df1a9e9 Mon Sep 17 00:00:00 2001
From: shiyj1101 <1098226878@qq.com>
Date: 星期四, 05 八月 2021 22:56:15 +0800
Subject: [PATCH] 完善格式化功能

---
 service-community/src/main/java/com/java110/community/bmo/repair/impl/AppraiseRepairBMOImpl.java |   83 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 72 insertions(+), 11 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/bmo/repair/impl/AppraiseRepairBMOImpl.java b/service-community/src/main/java/com/java110/community/bmo/repair/impl/AppraiseRepairBMOImpl.java
index 2270e5b..7b445f6 100755
--- a/service-community/src/main/java/com/java110/community/bmo/repair/impl/AppraiseRepairBMOImpl.java
+++ b/service-community/src/main/java/com/java110/community/bmo/repair/impl/AppraiseRepairBMOImpl.java
@@ -7,19 +7,25 @@
 import com.java110.dto.appraise.AppraiseDto;
 import com.java110.dto.repair.RepairDto;
 import com.java110.dto.repair.RepairUserDto;
+import com.java110.dto.user.UserDto;
 import com.java110.intf.common.IAppraiseInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.appraise.AppraisePo;
+import com.java110.po.user.UserPo;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
-
 
 /**
  * 鎶ヤ慨璇勪环
@@ -29,23 +35,32 @@
 
     @Autowired
     private IAppraiseInnerServiceSMO appraiseInnerServiceSMOImpl;
+
     @Autowired
     private IRepairServiceDao repairServiceDaoImpl;
 
     @Autowired
     private IRepairUserServiceDao repairUserServiceDaoImpl;
 
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMO;
+
     @Override
     @Java110Transactional
     public ResponseEntity<String> appraiseRepair(@RequestBody AppraiseDto appraiseDto) {
-
-
+        //鑾峰彇瑁呬慨id
+        String repairId = appraiseDto.getObjId();
+        Map repairInfo = new HashMap();
+        repairInfo.put("repairId", repairId);
+        repairInfo.put("state", RepairUserDto.STATE_EVALUATE);
+        List<Map> repairUserInfo = repairUserServiceDaoImpl.getRepairUserInfo(repairInfo);
+        Assert.listOnlyOne(repairUserInfo, "璇ョ敤鎴锋病鏈夊緟璇勪环鐨勬姤淇崟");
         Map info = new HashMap();
+        info.put("ruId", repairUserInfo.get(0).get("ruId"));
         info.put("repairId", appraiseDto.getObjId());
-        info.put("staffId", appraiseDto.getAppraiseUserId());
-        info.put("state", RepairUserDto.STATE_CLOSE);
+        info.put("state", RepairUserDto.STATE_FINISH);
         info.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        info.put("context", "璇勪环瀹屾垚");
+        info.put("context", appraiseDto.getContext());
         info.put("statusCd", "0");
         repairUserServiceDaoImpl.updateRepairUserInfoInstance(info);
         //灏嗗伐鍗曡〃鐨勭姸鎬佷慨鏀逛负瀹屾垚
@@ -54,17 +69,63 @@
         info.put("statusCd", "0");
         info.put("state", RepairDto.STATE_RETURN_VISIT);
         repairServiceDaoImpl.updateRepairInfoInstance(info);
-
-
         //璇勪环琛ㄤ腑鍔犲叆璇勪环鍐呭
         AppraisePo appraisePo = BeanConvertUtil.covertBean(appraiseDto, AppraisePo.class);
+        UserDto userDto = new UserDto();
+        userDto.setUserId(appraisePo.getAppraiseUserId());
+        List<UserDto> users = userInnerServiceSMO.getUsers(userDto);
+        Assert.listOnlyOne(users, "淇℃伅閿欒锛岀敤鎴蜂笉瀛樺湪锛�");
+        appraisePo.setAppraiseUserName(users.get(0).getName());
         appraisePo.setParentAppraiseId("-1");
         appraisePo.setObjType(AppraiseDto.OBJ_TYPE_REPAIR);
         appraisePo.setAppraiseType(AppraiseDto.APPRAISE_TYPE_PUBLIC);
-
         appraiseInnerServiceSMOImpl.saveAppraise(appraisePo);
-
+        //鑾峰彇褰撳墠缁撳崟鐨勭敤鎴�
+        Map mapInfo = new HashMap();
+        mapInfo.put("repairId", repairId);
+        mapInfo.put("state", RepairUserDto.STATE_CLOSE);
+        List<Map> repairUsers = repairUserServiceDaoImpl.getRepairUserInfo(mapInfo);
+        Assert.listOnlyOne(repairUsers, "鏌ヨ缁撳崟鐢ㄦ埛閿欒锛�");
+        //鑾峰彇缁撳崟鍛樺伐鐨刬d
+        Object staffId = repairUsers.get(0).get("staffId");
+        //鑾峰彇缁撳崟鍛樺伐淇℃伅
+        UserDto user = new UserDto();
+        user.setUserId(staffId.toString());
+        List<UserDto> userList = userInnerServiceSMO.getUsers(user);
+        Assert.listOnlyOne(userList, "鏌ヨ鐢ㄦ埛淇℃伅閿欒锛�");
+        //鑾峰彇缁煎悎璇勪环寰楀垎
+        Double appraiseScore = 0.0;
+        if (!StringUtil.isEmpty(appraisePo.getAppraiseScore())) {
+            appraiseScore = Double.parseDouble(appraisePo.getAppraiseScore());
+        }
+        //鑾峰彇涓婇棬閫熷害璇勫垎
+        Double doorSpeedScore = 0.0;
+        if (!StringUtil.isEmpty(appraisePo.getDoorSpeedScore())) {
+            doorSpeedScore = Double.parseDouble(appraisePo.getDoorSpeedScore());
+        }
+        //鑾峰彇缁翠慨鍛樻湇鍔¤瘎鍒�
+        Double repairmanServiceScore = 0.0;
+        if (!StringUtil.isEmpty(appraisePo.getRepairmanServiceScore())) {
+            repairmanServiceScore = Double.parseDouble(appraisePo.getRepairmanServiceScore());
+        }
+        //璁$畻骞冲潎鍒�
+        double average = 0.0;
+        double averageNumber = (appraiseScore + doorSpeedScore + repairmanServiceScore) / 3.0;
+        if (StringUtil.isEmpty(userList.get(0).getScore())) {
+            BigDecimal averageNum = new BigDecimal(averageNumber);
+            average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+        } else {
+            //鑾峰彇鐢ㄦ埛鍘熸湁璇勫垎
+            Double scoreNumber = Double.parseDouble(userList.get(0).getScore());
+            double score = (averageNumber + scoreNumber) / 2.0;
+            BigDecimal averageNum = new BigDecimal(score);
+            average = averageNum.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+        }
+        //鏇存柊鐢ㄦ埛璇勫垎
+        UserPo userPo = new UserPo();
+        userPo.setUserId(staffId.toString());
+        userPo.setScore(String.valueOf(average));
+        userInnerServiceSMO.updateUser(userPo);
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
-
     }
 }

--
Gitblit v1.8.0