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

---
 java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml                       |   16 +
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java      |  142 ++++++++-----
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java       |  137 ++++++++-----
 java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java                                   |   20 ++
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java     |    3 
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java |  110 ++++++----
 java110-utils/src/main/java/com/java110/utils/util/DateUtil.java                                    |   24 ++
 service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java          |    2 
 java110-db/src/main/resources/mapper/community/RepairPoolNewV1ServiceDaoImplMapper.xml              |   18 +
 java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java                                    |   59 +++++
 service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java            |   31 +-
 11 files changed, 382 insertions(+), 180 deletions(-)

diff --git a/java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java b/java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java
index fa25f46..5f1ecbe 100755
--- a/java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java
+++ b/java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java
@@ -104,6 +104,15 @@
     private List<String> repairChannels;
     private String payType;
 
+    private String doTime;
+    private String warningTime;
+
+    private String timeout;
+
+    private String timeoutFlag;
+
+    private String finishTime;
+
     //涓氫富涓婁紶缁翠慨鍥剧墖
     private List<PhotoVo> repairPhotos;
     //缁翠慨鍓嶅浘鐗�
@@ -132,6 +141,8 @@
     private String endTime;
 
     private String notifyWay;
+
+    private String submitHours;
 
 
     public String getRepairName() {
@@ -598,4 +609,52 @@
     public void setCommunityIds(String[] communityIds) {
         this.communityIds = communityIds;
     }
+
+    public String getDoTime() {
+        return doTime;
+    }
+
+    public void setDoTime(String doTime) {
+        this.doTime = doTime;
+    }
+
+    public String getWarningTime() {
+        return warningTime;
+    }
+
+    public void setWarningTime(String warningTime) {
+        this.warningTime = warningTime;
+    }
+
+    public String getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(String timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(String finishTime) {
+        this.finishTime = finishTime;
+    }
+
+    public String getSubmitHours() {
+        return submitHours;
+    }
+
+    public void setSubmitHours(String submitHours) {
+        this.submitHours = submitHours;
+    }
+
+    public String getTimeoutFlag() {
+        return timeoutFlag;
+    }
+
+    public void setTimeoutFlag(String timeoutFlag) {
+        this.timeoutFlag = timeoutFlag;
+    }
 }
diff --git a/java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java b/java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java
index f2d957c..27d5a97 100755
--- a/java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java
+++ b/java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java
@@ -32,6 +32,10 @@
     private String repairFee;
     private String payType;
 
+    private String timeout;
+
+    private String finishTime;
+
     public String getRepairId() {
         return repairId;
     }
@@ -183,4 +187,20 @@
     public void setPayType(String payType) {
         this.payType = payType;
     }
+
+    public String getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(String timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(String finishTime) {
+        this.finishTime = finishTime;
+    }
 }
diff --git a/java110-db/src/main/resources/mapper/community/RepairPoolNewV1ServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/community/RepairPoolNewV1ServiceDaoImplMapper.xml
index 7c0c9e0..7b02a62 100644
--- a/java110-db/src/main/resources/mapper/community/RepairPoolNewV1ServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/community/RepairPoolNewV1ServiceDaoImplMapper.xml
@@ -8,9 +8,11 @@
     <!-- 淇濆瓨璐圭敤鏄庣粏淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="saveRepairPoolNewInfo" parameterType="Map">
         insert into r_repair_pool(
-        repair_type,repair_obj_type,repair_id,pay_type,repair_name,repair_obj_id,appointment_time,repair_fee,context,tel,repair_channel,repair_materials,state,community_id,maintenance_type,repair_obj_name
+        repair_type,repair_obj_type,repair_id,pay_type,repair_name,repair_obj_id,appointment_time,repair_fee,context,
+        tel,repair_channel,repair_materials,state,community_id,maintenance_type,repair_obj_name,timeout,finish_time
         ) values (
-        #{repairType},#{repairObjType},#{repairId},#{payType},#{repairName},#{repairObjId},#{appointmentTime},#{repairFee},#{context},#{tel},#{repairChannel},#{repairMaterials},#{state},#{communityId},#{maintenanceType},#{repairObjName}
+        #{repairType},#{repairObjType},#{repairId},#{payType},#{repairName},#{repairObjId},#{appointmentTime},#{repairFee},#{context},
+        #{tel},#{repairChannel},#{repairMaterials},#{state},#{communityId},#{maintenanceType},#{repairObjName},#{timeout},#{finishTime}
         )
     </insert>
 
@@ -23,7 +25,7 @@
         repairObjId,t.appointment_time,t.appointment_time appointmentTime,t.repair_fee,t.repair_fee
         repairFee,t.context,t.tel,t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials
         repairMaterials,t.state,t.community_id,t.community_id communityId,t.maintenance_type,t.maintenance_type
-        maintenanceType,t.repair_obj_name,t.repair_obj_name repairObjName
+        maintenanceType,t.repair_obj_name,t.repair_obj_name repairObjName,t.timeout,t.finish_time finishTime
         from r_repair_pool t
         where 1 =1
         <if test="repairType !=null and repairType != ''">
@@ -127,19 +129,23 @@
         <if test="state !=null and state != ''">
             , t.state= #{state}
         </if>
-        <if test="communityId !=null and communityId != ''">
-            , t.community_id= #{communityId}
-        </if>
+
         <if test="maintenanceType !=null and maintenanceType != ''">
             , t.maintenance_type= #{maintenanceType}
         </if>
         <if test="repairObjName !=null and repairObjName != ''">
             , t.repair_obj_name= #{repairObjName}
         </if>
+        <if test="finishTime !=null and finishTime != ''">
+            , t.finish_time = #{finishTime}
+        </if>
         where 1=1
         <if test="repairId !=null and repairId != ''">
             and t.repair_id= #{repairId}
         </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
 
     </update>
 
diff --git a/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
index 026c526..2b51ada 100755
--- a/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
@@ -139,7 +139,9 @@
         t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id repairObjId,
         t.repair_obj_name repairObjName,rrv.visit_type visitType,rrv.context visitContext,a.appraise_score
         appraiseScore, a.door_speed_score doorSpeedScore,a.repairman_service_score repairmanServiceScore,
-        t.pay_type,t.pay_type payType,rs.repair_setting_type repairSettingType,rs.notify_way notifyWay,d1.name repairSettingTypeName,t.create_time createTime
+        t.pay_type,t.pay_type payType,rs.repair_setting_type repairSettingType,rs.notify_way notifyWay,
+        rs.do_time doTime,rs.warning_time warningTime,d1.name repairSettingTypeName,t.create_time createTime,
+        t.timeout,t.finish_time finishTime
         <if test="staffId != null and staffId != ''">
             ,rru.state repairDispatchState,rru.context repairDispatchContext,td.name repairDispatchStateName
         </if>
@@ -223,6 +225,9 @@
         </if>
         <if test="endTime !=null and endTime != ''">
             and t.create_time &lt;= #{startTime}
+        </if>
+        <if test="timeoutFlag !=null and timeoutFlag != ''">
+            and t.timeout &lt; now()
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
@@ -393,6 +398,9 @@
         <if test="endTime !=null and endTime != ''">
             and t.create_time &lt;= #{endTime}
         </if>
+        <if test="timeoutFlag !=null and timeoutFlag != ''">
+            and t.timeout &lt; now()
+        </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
@@ -432,7 +440,8 @@
         repairObjId,t.repair_obj_name repairObjName,t.repair_channel repairChannel,
         sru.ru_id startRuId,ru.ru_id ruId,ru.pre_ru_id preRuId,t.maintenance_type,t.maintenance_type maintenanceType,
         t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials repairMaterials,
-        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time
+        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time,
+        rs.do_time doTime,rs.warning_time warningTime,t.timeout,t.finish_time finishTime
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
@@ -564,7 +573,8 @@
         t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id
         repairObjId,t.repair_obj_name repairObjName,t.maintenance_type,t.maintenance_type maintenanceType,
         t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials repairMaterials,
-        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time
+        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time,
+        rs.do_time doTime,rs.warning_time warningTime,t.timeout,t.finish_time finishTime
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
diff --git a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
index 835bc63..8ac38bf 100755
--- a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -5,6 +5,7 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Duration;
 import java.util.*;
 
 /**
@@ -990,4 +991,27 @@
     public static String getPreSecTimeStr(Date time,int month) {
         return getFormatTimeStringB(getPreSecTime(time,month));
     }
+    public static String calculateTimeDifference(Date start, Date end) {
+        Duration duration = Duration.between(start.toInstant(), end.toInstant());
+
+        long days = duration.toDays();
+        long hours = duration.toHours() % 24;
+        long minutes = duration.toMinutes() % 60;
+
+        StringBuilder result = new StringBuilder();
+
+        if (days > 0) {
+            result.append(days).append("澶�");
+        }
+
+        if (hours > 0) {
+            result.append(hours).append("鏃�");
+        }
+
+        if (minutes > 0 || (days == 0 && hours == 0 && minutes == 0)) {
+            result.append(minutes).append("鍒�");
+        }
+
+        return result.toString();
+    }
 }
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)){
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();
diff --git a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java
index 61f87e1..220eff9 100644
--- a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java
@@ -627,8 +627,10 @@
         JSONObject businessOwnerRepair = new JSONObject();
         businessOwnerRepair.putAll(BeanConvertUtil.beanCovertMap(repairDtos.get(0)));
         businessOwnerRepair.put("state", state);
+
         //璁$畻 搴旀敹閲戦
         RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(businessOwnerRepair, RepairPoolPo.class);
+        repairPoolPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         int flag = repairPoolV1InnerServiceSMOImpl.updateRepairPoolNew(repairPoolPo);
         if (flag < 1) {
             throw new CmdException("淇敼宸ュ崟澶辫触");
diff --git a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java
index 79ff2cd..b67a01f 100644
--- a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java
@@ -373,7 +373,7 @@
                 }
             }
         }
-        if(maintenanceType.equals("1001") && !StringUtil.isEmpty(reqJson.getString("sign")) && reqJson.getString("sign").equals("1")){ //鏈夊伩鏈嶅姟
+        if (maintenanceType.equals("1001") && !StringUtil.isEmpty(reqJson.getString("sign")) && reqJson.getString("sign").equals("1")) { //鏈夊伩鏈嶅姟
             RepairUserPo repairUserPo = new RepairUserPo();
             repairUserPo.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId));
             repairUserPo.setRepairId(reqJson.getString("repairId"));
@@ -441,6 +441,7 @@
         businessOwnerRepair.put("maintenanceType", paramInJson.getString("maintenanceType"));
         //璁$畻 搴旀敹閲戦
         RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(businessOwnerRepair, RepairPoolPo.class);
+        repairPoolPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         int flag = repairPoolV1InnerServiceSMOImpl.updateRepairPoolNew(repairPoolPo);
         if (flag < 1) {
             throw new CmdException("淇敼宸ュ崟澶辫触");
diff --git a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java
index 869df27..c690d5f 100644
--- a/service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.CmdContextUtils;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -14,11 +15,13 @@
 import com.java110.dto.file.FileDto;
 import com.java110.dto.file.FileRelDto;
 import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairSettingDto;
 import com.java110.dto.repair.RepairUserDto;
 import com.java110.dto.user.UserDto;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.community.IRepairPoolV1InnerServiceSMO;
+import com.java110.intf.community.IRepairSettingV1InnerServiceSMO;
 import com.java110.intf.community.IRepairUserV1InnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
@@ -32,17 +35,16 @@
 import com.java110.utils.constant.FeeTypeConstant;
 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.DateUtil;
-import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 
 import java.text.ParseException;
+import java.util.Date;
 import java.util.List;
+
 /**
  * 涓氫富鎻愪氦鎶ヤ慨 鍔熻兘
  * 璇锋眰鍦板潃涓�/app/ownerRepair.saveOwnerRepair
@@ -82,8 +84,8 @@
 )
 
 @Java110ExampleDoc(
-        reqBody="{\"repairName\":\"娴嬭瘯\",\"repairType\":\"102022081592760001\",\"appointmentTime\":\"2022-11-26 15:18:00\",\"tel\":\"15239726115\",\"roomId\":\"752022090312040033\",\"photos\":[],\"context\":\"鍙嶅弽澶嶅鐑︾儲鐑",\"userId\":\"302022102708350644\",\"userName\":\"娴嬭瘯\",\"communityId\":\"2022032267510001\",\"bindDate\":\"2022-11-26\",\"bindTime\":\"15:18\",\"repairObjType\":\"004\",\"repairChannel\":\"Z\",\"repairObjId\":\"752022090312040033\",\"repairObjName\":\"1鍙锋ゼ1鍗曞厓202瀹"}",
-        resBody="{\"code\":0,\"msg\":\"鎴愬姛\",\"page\":0,\"records\":0,\"rows\":0,\"total\":0}"
+        reqBody = "{\"repairName\":\"娴嬭瘯\",\"repairType\":\"102022081592760001\",\"appointmentTime\":\"2022-11-26 15:18:00\",\"tel\":\"15239726115\",\"roomId\":\"752022090312040033\",\"photos\":[],\"context\":\"鍙嶅弽澶嶅鐑︾儲鐑",\"userId\":\"302022102708350644\",\"userName\":\"娴嬭瘯\",\"communityId\":\"2022032267510001\",\"bindDate\":\"2022-11-26\",\"bindTime\":\"15:18\",\"repairObjType\":\"004\",\"repairChannel\":\"Z\",\"repairObjId\":\"752022090312040033\",\"repairObjName\":\"1鍙锋ゼ1鍗曞厓202瀹"}",
+        resBody = "{\"code\":0,\"msg\":\"鎴愬姛\",\"page\":0,\"records\":0,\"rows\":0,\"total\":0}"
 )
 
 @Java110Cmd(serviceCode = "ownerRepair.saveOwnerRepair")
@@ -113,6 +115,9 @@
     @Autowired
     private INotepadV1InnerServiceSMO notepadV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IRepairSettingV1InnerServiceSMO repairSettingV1InnerServiceSMOImpl;
+
     //鍩�
     public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
 
@@ -132,8 +137,7 @@
         Assert.hasKeyAndValue(reqJson, "context", "蹇呭~锛岃濉啓鎶ヤ慨鍐呭");
         Assert.hasKeyAndValue(reqJson, "communityId", "蹇呭~锛岃濉啓灏忓尯ID");
 
-        String userId = context.getReqHeaders().get("user-id");
-        Assert.hasLength(userId, "璇峰~鍐欐彁浜ょ敤鎴稩D");
+        String userId = CmdContextUtils.getUserId(context);
         UserDto userDto = new UserDto();
         userDto.setUserId(userId);
         userDto.setPage(1);
@@ -143,22 +147,13 @@
         reqJson.put("userId", userDtos.get(0).getUserId());
         reqJson.put("userName", userDtos.get(0).getName());
 
-    }
-
-    @Override
-    @Java110Transactional
-    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
-        //鑾峰彇褰撳墠灏忓尯id
-        String communityId = reqJson.getString("communityId");
         //鏌ヨ榛樿璐圭敤椤�
         FeeConfigDto feeConfigDto = new FeeConfigDto();
-        feeConfigDto.setCommunityId(communityId);
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
         feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_REPAIR);
         feeConfigDto.setIsDefault(FeeConfigDto.DEFAULT_FEE_CONFIG);
         List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-        if (feeConfigDtos.size() != 1) {
-            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "榛樿缁翠慨璐圭敤鏈夊鏉℃垨涓嶅瓨鍦紒");
-            context.setResponseEntity(responseEntity);
+        if (ListUtil.isNull(feeConfigDtos)) {
             return;
         }
         FeeDto feeDto = new FeeDto();
@@ -167,18 +162,39 @@
         feeDto.setState(FeeDto.STATE_DOING);
         //鏌ヨ鎶ヤ慨涓氫富澶勭悊涓殑鎶ヤ慨璐�
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-        //鍙栧嚭寮�鍏虫槧灏勭殑鍊�(鎶ヤ慨涓氫富鏈鐞嗚垂鐢ㄦ潯鏁�)
-        String repairFeeNumber = MappingCache.getValue(MappingConstant.REPAIR_DOMAIN, REPAIR_FEE_NUMBER);
-        if (feeDtos != null && StringUtil.isInteger(repairFeeNumber) && feeDtos.size() >= Integer.parseInt(repairFeeNumber)) {
-            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "璇ユ埧灞嬪瓨鍦�" + Integer.parseInt(repairFeeNumber) + "鏉℃湭澶勭悊鐨勮垂鐢紝璇风即璐瑰悗鍐嶈繘琛屾姤淇紒");
-            context.setResponseEntity(responseEntity);
+        if (ListUtil.isNull(feeDtos)) {
             return;
         }
-        JSONObject businessOwnerRepair = new JSONObject();
-        businessOwnerRepair.putAll(reqJson);
-        businessOwnerRepair.put("repairId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_repairId));
-        businessOwnerRepair.put("state", RepairDto.STATE_WAIT);
-        RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(businessOwnerRepair, RepairPoolPo.class);
+        //鍙栧嚭寮�鍏虫槧灏勭殑鍊�(鎶ヤ慨涓氫富鏈鐞嗚垂鐢ㄦ潯鏁�)
+        String repairFeeNumber = MappingCache.getValue(MappingConstant.REPAIR_DOMAIN, REPAIR_FEE_NUMBER);
+        if (!StringUtil.isInteger(repairFeeNumber)) {
+            return;
+        }
+        if (feeDtos.size() >= Integer.parseInt(repairFeeNumber)) {
+            throw new CmdException("璇ユ埧灞嬪瓨鍦�" + Integer.parseInt(repairFeeNumber) + "鏉℃湭澶勭悊鐨勮垂鐢紝璇风即璐瑰悗鍐嶈繘琛屾姤淇紒");
+        }
+
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        RepairSettingDto repairSettingDto = new RepairSettingDto();
+        repairSettingDto.setCommunityId(reqJson.getString("communityId"));
+        repairSettingDto.setRepairType(reqJson.getString("repairType"));
+        List<RepairSettingDto> repairSettingDtos = repairSettingV1InnerServiceSMOImpl.queryRepairSettings(repairSettingDto);
+        if (ListUtil.isNull(repairSettingDtos)) {
+            throw new CmdException("鎶ラ攢鍒樼被鍨嬩笉瀛樺湪");
+        }
+
+        RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(reqJson, RepairPoolPo.class);
+        repairPoolPo.setRepairId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_repairId));
+        repairPoolPo.setState(RepairDto.STATE_WAIT);
+        String appointmentTime = repairPoolPo.getAppointmentTime();
+        Date sAppTime = DateUtil.getDateFromStringA(appointmentTime);
+        String timeout = DateUtil.getAddHoursStringA(sAppTime, repairSettingDtos.get(0).getDoTime());
+        repairPoolPo.setTimeout(timeout);
         int flag = repairPoolV1InnerServiceSMOImpl.saveRepairPoolNew(repairPoolPo);
         if (flag < 1) {
             throw new CmdException("淇敼澶辫触");
@@ -192,7 +208,7 @@
         repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_START_USER);
         repairUserPo.setStaffId(reqJson.getString("userId"));
         repairUserPo.setStaffName(reqJson.getString("userName"));
-        repairUserPo.setRepairId(businessOwnerRepair.getString("repairId"));
+        repairUserPo.setRepairId(repairPoolPo.getRepairId());
         repairUserPo.setState(RepairUserDto.STATE_SUBMIT);
         repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         repairUserPo.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId));
@@ -200,33 +216,7 @@
         if (flag < 1) {
             throw new CmdException("淇敼鐢ㄦ埛澶辫触");
         }
-        if (reqJson.containsKey("photos") && !StringUtils.isEmpty(reqJson.getString("photos"))) {
-            JSONArray photos = reqJson.getJSONArray("photos");
-            for (int _photoIndex = 0; _photoIndex < photos.size(); _photoIndex++) {
-                String _photo = photos.getString(_photoIndex);
-                if(_photo.length()> 512){
-                    FileDto fileDto = new FileDto();
-                    fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
-                    fileDto.setFileName(fileDto.getFileId());
-                    fileDto.setContext(_photo);
-                    fileDto.setSuffix("jpeg");
-                    fileDto.setCommunityId(reqJson.getString("communityId"));
-                    _photo = fileInnerServiceSMOImpl.saveFile(fileDto);
-                }
-                JSONObject businessUnit = new JSONObject();
-                businessUnit.put("fileRelId", GenerateCodeFactory.getGeneratorId("12"));
-                businessUnit.put("relTypeCd", FileRelDto.REL_TYPE_CD_REPAIR);
-                businessUnit.put("saveWay", "ftp");
-                businessUnit.put("objId", businessOwnerRepair.getString("repairId"));
-                businessUnit.put("fileRealName", _photo.toString());
-                businessUnit.put("fileSaveName", _photo.toString());
-                FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
-                flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
-                if (flag < 1) {
-                    throw new CmdException("淇濆瓨鍥剧墖澶辫触");
-                }
-            }
-        }
+        saveRepairPhoto(reqJson, repairPoolPo.getRepairId());
 
         if (StringUtil.jsonHasKayAndValue(reqJson, "noteId")) {
             NotepadPo notepadPo = new NotepadPo();
@@ -238,4 +228,37 @@
             }
         }
     }
+
+    private void saveRepairPhoto(JSONObject reqJson, String repairId) {
+        int flag;
+        JSONArray photos = reqJson.getJSONArray("photos");
+        if (ListUtil.isNull(photos)) {
+            return;
+        }
+        for (int _photoIndex = 0; _photoIndex < photos.size(); _photoIndex++) {
+            String _photo = photos.getString(_photoIndex);
+            if (_photo.length() > 512) {
+                FileDto fileDto = new FileDto();
+                fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+                fileDto.setFileName(fileDto.getFileId());
+                fileDto.setContext(_photo);
+                fileDto.setSuffix("jpeg");
+                fileDto.setCommunityId(reqJson.getString("communityId"));
+                _photo = fileInnerServiceSMOImpl.saveFile(fileDto);
+            }
+            JSONObject businessUnit = new JSONObject();
+            businessUnit.put("fileRelId", GenerateCodeFactory.getGeneratorId("12"));
+            businessUnit.put("relTypeCd", FileRelDto.REL_TYPE_CD_REPAIR);
+            businessUnit.put("saveWay", "ftp");
+            businessUnit.put("objId", repairId);
+            businessUnit.put("fileRealName", _photo.toString());
+            businessUnit.put("fileSaveName", _photo.toString());
+            FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
+            flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+            if (flag < 1) {
+                throw new CmdException("淇濆瓨鍥剧墖澶辫触");
+            }
+        }
+
+    }
 }
diff --git a/service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java b/service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java
index bc8ba74..068b242 100755
--- a/service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java
+++ b/service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java
@@ -6,6 +6,7 @@
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.DAOException;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.ListUtil;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -50,8 +51,8 @@
     @Override
     public List<Map> getBusinessRepairInfo(Map info) throws DAOException {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅淇℃伅 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getBusinessRepairInfo", info);
-        return businessRepairInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getBusinessRepairInfo", info);
+        return infos;
     }
 
     /**
@@ -107,45 +108,45 @@
     @Override
     public int queryRepairsCount(Map info) {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅鏁版嵁 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryRepairsCount", info);
-        if (businessRepairInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryRepairsCount", info);
+        if (ListUtil.isNull(infos)) {
             return 0;
         }
-        return Integer.parseInt(businessRepairInfos.get(0).get("count").toString());
+        return Integer.parseInt(infos.get(0).get("count").toString());
     }
 
     @Override
     public List<Map> getStaffRepairInfo(Map info) throws DAOException {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅淇℃伅 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getStaffRepairInfo", info);
-        return businessRepairInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getStaffRepairInfo", info);
+        return infos;
     }
 
     @Override
     public int queryStaffRepairsCount(Map info) {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅鏁版嵁 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryStaffRepairsCount", info);
-        if (businessRepairInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryStaffRepairsCount", info);
+        if (ListUtil.isNull(infos)) {
             return 0;
         }
-        return Integer.parseInt(businessRepairInfos.get(0).get("count").toString());
+        return Integer.parseInt(infos.get(0).get("count").toString());
     }
 
 
     @Override
     public List<Map> getStaffFinishRepairInfo(Map info) throws DAOException {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅淇℃伅 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getStaffFinishRepairInfo", info);
-        return businessRepairInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.getStaffFinishRepairInfo", info);
+        return infos;
     }
 
     @Override
     public int queryStaffFinishRepairsCount(Map info) {
         logger.debug("鏌ヨ鎶ヤ慨淇℃伅鏁版嵁 鍏ュ弬 info : {}", info);
-        List<Map> businessRepairInfos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryStaffFinishRepairsCount", info);
-        if (businessRepairInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("repairServiceDaoImpl.queryStaffFinishRepairsCount", info);
+        if (ListUtil.isNull(infos)) {
             return 0;
         }
-        return Integer.parseInt(businessRepairInfos.get(0).get("count").toString());
+        return Integer.parseInt(infos.get(0).get("count").toString());
     }
 }

--
Gitblit v1.8.0