From 22d7512ecb341426ecaa5ac8d48d7aa2b37c1059 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 09 六月 2022 16:27:41 +0800
Subject: [PATCH] 优化代码

---
 service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java |  267 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 247 insertions(+), 20 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java b/service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java
index 4b778b4..a719bcd 100755
--- a/service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java
+++ b/service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java
@@ -1,17 +1,29 @@
 package com.java110.job.task.repair;
 
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairSettingDto;
+import com.java110.dto.repair.RepairUserDto;
 import com.java110.dto.task.TaskDto;
 import com.java110.intf.community.IRepairInnerServiceSMO;
-import com.java110.intf.community.IRepairTypeUserInnerServiceSMO;
+import com.java110.intf.community.IRepairSettingInnerServiceSMO;
+import com.java110.intf.community.IRepairUserInnerServiceSMO;
 import com.java110.job.quartz.TaskSystemQuartz;
 import com.java110.po.owner.RepairPoolPo;
+import com.java110.po.owner.RepairUserPo;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -31,15 +43,16 @@
     private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
 
     @Autowired
-    private IRepairTypeUserInnerServiceSMO repairTypeUserInnerServiceSMOImpl;
+    private IRepairUserInnerServiceSMO repairUserInnerServiceSMO;
+
+    @Autowired
+    private IRepairSettingInnerServiceSMO repairSettingInnerServiceSMO;
 
     @Override
     protected void process(TaskDto taskDto) {
         logger.debug("寮�濮嬫墽琛屽井淇℃ā鏉夸俊鎭帹閫�" + taskDto.toString());
-
         // 鑾峰彇灏忓尯
         List<CommunityDto> communityDtos = getAllCommunity();
-
         for (CommunityDto communityDto : communityDtos) {
             try {
                 returnVisitRepair(taskDto, communityDto);
@@ -56,21 +69,28 @@
      * @param communityDto
      */
     private void returnVisitRepair(TaskDto taskDto, CommunityDto communityDto) {
+        RepairDto repair = new RepairDto();
+        repair.setCommunityId(communityDto.getCommunityId());
+        repair.setState(RepairDto.STATE_APPRAISE);
+        repair.setReturnVisitFlag("001,003");
+        repair.setPage(1);
+        repair.setRow(100);
+        //鏌ヨ閮藉洖璁垮緟璇勪环鐘舵�佹暟鎹�
+        List<RepairDto> repairs = repairInnerServiceSMOImpl.queryRepairs(repair);
+        for (RepairDto repairDto : repairs) {
+            doFinishRepairAppraise(repairDto);
+        }
         RepairDto repairDto = new RepairDto();
         repairDto.setCommunityId(communityDto.getCommunityId());
         repairDto.setStatess(new String[]{RepairDto.STATE_RETURN_VISIT, RepairDto.STATE_APPRAISE});
         repairDto.setReturnVisitFlag("001,002");
         repairDto.setPage(1);
-        repairDto.setRow(1000);
+        repairDto.setRow(100);
         //鏌ヨ闇�瑕佺▼搴忚疆璁淳鍗� 璁㈠崟
         List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
-
         for (RepairDto tmpRepairDto : repairDtos) {
-
             doReturnVisitRepair(tmpRepairDto);
-
         }
-
     }
 
     /**
@@ -79,25 +99,232 @@
      * @param tmpRepairDto
      */
     private void doReturnVisitRepair(RepairDto tmpRepairDto) {
-
-        if ("001".equals(tmpRepairDto.getReturnVisitFlag())) {
+        if ("001".equals(tmpRepairDto.getReturnVisitFlag()) && RepairDto.STATE_RETURN_VISIT.equals(tmpRepairDto.getState())) {
             RepairPoolPo repairPoolPo = new RepairPoolPo();
             repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
             repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+            repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
             repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            RepairDto repairDto = new RepairDto();
+            repairDto.setRepairId(tmpRepairDto.getRepairId());
+            //鏌ヨ鎶ヤ慨淇℃伅
+            List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨淇℃伅閿欒");
+            //鏌ヨ鎶ヤ慨宸ュ崟淇℃伅
+            RepairSettingDto repairSettingDto = new RepairSettingDto();
+            repairSettingDto.setSettingId(repairDtos.get(0).getRepairType());
+            List<RepairSettingDto> repairSettingDtos = repairSettingInnerServiceSMO.queryRepairSettings(repairSettingDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨宸ュ崟淇℃伅閿欒");
+            //鑾峰彇鎶ヤ慨鍖哄煙
+            String publicArea = repairSettingDtos.get(0).getPublicArea();
+            //鑾峰彇鎶ヤ慨娓犻亾
+            String repairChannel = repairDtos.get(0).getRepairChannel();
+            //鑾峰彇缁翠慨绫诲瀷
+            String maintenanceType = repairDtos.get(0).getMaintenanceType();
+            if (publicArea.equals("T") && !repairChannel.equals("Z")) {  //濡傛灉鏄叕鍏卞尯鍩燂紝涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_CLOSE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+            } else if (publicArea.equals("F") && maintenanceType.equals("1002") && !repairChannel.equals("Z")) {  //濡傛灉涓嶆槸鍏叡鍖哄煙锛屼笖鏄棤鍋跨殑锛屽苟涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_CLOSE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+            } else if (publicArea.equals("F") && maintenanceType.equals("1001") && !repairChannel.equals("Z")) {  //濡傛灉涓嶆槸鍏叡鍖哄煙锛屼笖鏄湁鍋跨殑锛屽苟涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_FINISH_PAY_FEE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+            } else { //濡傛灉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_FINISH);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+            }
             return;
         }
-
-        if ("002".equals(tmpRepairDto.getReturnVisitFlag()) && RepairDto.STATE_APPRAISE.equals(tmpRepairDto.getState())) {
-            RepairPoolPo repairPoolPo = new RepairPoolPo();
-            repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
-            repairPoolPo.setState(RepairDto.STATE_COMPLATE);
-            repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+        if ("002".equals(tmpRepairDto.getReturnVisitFlag())) {
+            RepairDto repairDto = new RepairDto();
+            repairDto.setRepairId(tmpRepairDto.getRepairId());
+            //鏌ヨ鎶ヤ慨淇℃伅
+            List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨淇℃伅閿欒");
+            //鏌ヨ鎶ヤ慨宸ュ崟淇℃伅
+            RepairSettingDto repairSettingDto = new RepairSettingDto();
+            repairSettingDto.setSettingId(repairDtos.get(0).getRepairType());
+            List<RepairSettingDto> repairSettingDtos = repairSettingInnerServiceSMO.queryRepairSettings(repairSettingDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨宸ュ崟淇℃伅閿欒");
+            //鑾峰彇鎶ヤ慨鍖哄煙
+            String publicArea = repairSettingDtos.get(0).getPublicArea();
+            //鑾峰彇鎶ヤ慨娓犻亾0
+            String repairChannel = repairDtos.get(0).getRepairChannel();
+            //鑾峰彇缁翠慨绫诲瀷
+            String maintenanceType = repairDtos.get(0).getMaintenanceType();
+            if (publicArea.equals("T") && !repairChannel.equals("Z")) {  //濡傛灉鏄叕鍏卞尯鍩燂紝涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_CLOSE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+                //鏀瑰彉repair_pool鐘舵��
+                RepairPoolPo repairPoolPo = new RepairPoolPo();
+                repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+                repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+                repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+                repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            } else if (publicArea.equals("F") && maintenanceType.equals("1002") && !repairChannel.equals("Z")) {  //濡傛灉涓嶆槸鍏叡鍖哄煙锛屼笖鏄棤鍋跨殑锛屽苟涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_CLOSE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+                //鏀瑰彉repair_pool
+                RepairPoolPo repairPoolPo = new RepairPoolPo();
+                repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+                repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+                repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+                repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            } else if (publicArea.equals("F") && maintenanceType.equals("1001") && !repairChannel.equals("Z")) {  //濡傛灉涓嶆槸鍏叡鍖哄煙锛屼笖鏄湁鍋跨殑锛屽苟涓斾笉鏄笟涓绘姤淇�
+                RepairUserDto repairUserDto = new RepairUserDto();
+                repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                repairUserDto.setState(RepairUserDto.STATE_FINISH_PAY_FEE);
+                List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+                saveRepairUser(repairUserDtoList, tmpRepairDto);
+                //鏀瑰彉repair_pool鐘舵��
+                RepairPoolPo repairPoolPo = new RepairPoolPo();
+                repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+                repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+                repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+                repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            } else { //濡傛灉鏄笟涓绘姤淇�
+                if (RepairDto.STATE_APPRAISE.equals(tmpRepairDto.getState())) { //涓氫富鏈瘎浠�
+                    RepairUserDto repairUserDto = new RepairUserDto();
+                    repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                    repairUserDto.setState(RepairUserDto.STATE_EVALUATE);
+                    List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                    Assert.listOnlyOne(repairUserDtoList, "涓氫富娌℃湁寰呰瘎浠风殑璁板綍");
+                    saveRepairUserOfOwner(repairUserDtoList, tmpRepairDto);
+                } else if (RepairDto.STATE_RETURN_VISIT.equals(tmpRepairDto.getState())) { //涓氫富宸茶瘎浠�
+                    RepairUserDto repairUserDto = new RepairUserDto();
+                    repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+                    repairUserDto.setState(RepairUserDto.STATE_FINISH);
+                    List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+                    Assert.listOnlyOne(repairUserDtoList, "涓氫富娌℃湁宸茶瘎浠风殑璁板綍");
+                    saveRepairUser(repairUserDtoList, tmpRepairDto);
+                }
+                //鏀瑰彉repair_pool鐘舵��
+                RepairPoolPo repairPoolPo = new RepairPoolPo();
+                repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+                repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+                repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+                repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            }
             return;
         }
-
-
     }
 
+    /**
+     * 寰呰瘎浠风姸鎬佽秴杩�48灏忔椂璺戞垚寰呭洖璁跨姸鎬�
+     *
+     * @param tmpRepairDto
+     */
+    private void doFinishRepairAppraise(RepairDto tmpRepairDto) {
+        //濡傛灉鏄緟璇勪环鐘舵�侊紝鍒ゆ柇鏄惁宸茶秴杩囦袱澶╂湭璇勪环
+        if (RepairDto.STATE_APPRAISE.equals(tmpRepairDto.getState())) {
+            RepairUserDto repairUserDto = new RepairUserDto();
+            repairUserDto.setRepairId(tmpRepairDto.getRepairId());
+            repairUserDto.setState(RepairUserDto.STATE_EVALUATE);
+            List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+            Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒");
+            //鑾峰彇璇勪环寮�濮嬫椂闂�
+            Date startTime = repairUserDtoList.get(0).getStartTime();
+            //鑾峰彇褰撳墠鏃堕棿
+            Date nowTime = new Date();
+            //榛樿48灏忔椂
+            Integer autoEvaluateHour = 48;
+            if (StringUtil.isEmpty(MappingCache.getValue("autoEvaluateHour"))) {
+                autoEvaluateHour = Integer.valueOf(MappingCache.getValue("autoEvaluateHour"));
+            }
+            if ((nowTime.getTime() - startTime.getTime()) > autoEvaluateHour * 1000 * 60 * 60) {
+                //瓒呰繃涓ゅぉ鏈瘎浠凤紝鐘舵�佸彉涓哄緟鍥炶鐘舵��
+                RepairPoolPo repairPoolPo = new RepairPoolPo();
+                repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+                repairPoolPo.setState(RepairDto.STATE_RETURN_VISIT);
+                repairPoolPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+                repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+                //r_repair_user鐘舵�佸彉涓哄凡璇勪环鐘舵��
+                RepairUserPo repairUserPo = new RepairUserPo();
+                repairUserPo.setRuId(repairUserDtoList.get(0).getRuId());
+                repairUserPo.setState(RepairUserDto.STATE_FINISH);
+                repairUserPo.setStaffName("瀹氭椂浠诲姟澶勭悊");
+                repairUserPo.setContext("宸茶瘎浠�");
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                repairUserPo.setEndTime(format.format(nowTime));
+                repairUserInnerServiceSMO.updateRepairUser(repairUserPo);
+            }
+        }
+    }
 
+    //瀹氭椂浠诲姟璺戝畬鏂板缁翠慨娲惧崟鐘舵��
+    public void saveRepairUser(List<RepairUserDto> repairUserDtoList, RepairDto tmpRepairDto) {
+        RepairUserPo repairUserPo = new RepairUserPo();
+        repairUserPo.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId));
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        repairUserPo.setStartTime(format.format(repairUserDtoList.get(0).getEndTime()));
+        repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        repairUserPo.setState(RepairUserDto.STATE_FINISH_VISIT);
+        repairUserPo.setContext("宸插洖璁�");
+        repairUserPo.setCommunityId(tmpRepairDto.getCommunityId());
+        repairUserPo.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        repairUserPo.setRepairId(tmpRepairDto.getRepairId());
+        repairUserPo.setStaffId("-1");
+        repairUserPo.setbId("-1");
+        repairUserPo.setStaffName("瀹氭椂浠诲姟澶勭悊");
+        repairUserPo.setPreStaffId(repairUserDtoList.get(0).getStaffId());
+        repairUserPo.setPreStaffName(repairUserDtoList.get(0).getStaffName());
+        repairUserPo.setPreRuId(repairUserDtoList.get(0).getRuId());
+        repairUserPo.setRepairEvent("auditUser");
+        repairUserInnerServiceSMO.saveRepairUser(repairUserPo);
+    }
+
+    //涓氫富绔凡璇勪环涓嶅洖璁挎椂淇敼骞舵柊澧炵淮淇淳鍗曠姸鎬�
+    public void saveRepairUserOfOwner(List<RepairUserDto> repairUserDtoList, RepairDto tmpRepairDto) {
+        RepairUserPo repairUserPo = new RepairUserPo();
+        repairUserPo.setRuId(repairUserDtoList.get(0).getRuId());
+        repairUserPo.setState(RepairUserDto.STATE_FINISH);
+        repairUserPo.setStaffName("瀹氭椂浠诲姟澶勭悊");
+        repairUserPo.setContext("宸茶瘎浠�");
+        repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        //淇敼鎶ヤ慨娲惧崟寰呰瘎浠风姸鎬侊紝鍙樹负璇勪环瀹屾垚
+        repairUserInnerServiceSMO.updateRepairUser(repairUserPo);
+        RepairUserPo repairUser = new RepairUserPo();
+        repairUser.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId));
+        repairUser.setStartTime(repairUserPo.getEndTime());
+        repairUser.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        repairUser.setState(RepairUserDto.STATE_FINISH_VISIT);
+        repairUser.setContext("宸插洖璁�");
+        repairUser.setCommunityId(tmpRepairDto.getCommunityId());
+        repairUser.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        repairUser.setRepairId(tmpRepairDto.getRepairId());
+        repairUser.setStaffId("-1");
+        repairUser.setbId("-1");
+        repairUser.setStaffName("瀹氭椂浠诲姟澶勭悊");
+        repairUser.setPreStaffId(repairUserDtoList.get(0).getStaffId());
+        repairUser.setPreStaffName(repairUserDtoList.get(0).getStaffName());
+        repairUser.setPreRuId(repairUserDtoList.get(0).getRuId());
+        repairUser.setRepairEvent("auditUser");
+        repairUserInnerServiceSMO.saveRepairUser(repairUser);
+    }
 }

--
Gitblit v1.8.0