Browse Source

优化代码

wuxw 1 year ago
parent
commit
560b781b84

+ 59 - 0
java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java

@@ -104,6 +104,15 @@ public class RepairDto extends PageDto implements Serializable {
     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;
     //维修前图片
@@ -133,6 +142,8 @@ public class RepairDto extends PageDto implements Serializable {
 
     private String notifyWay;
 
+    private String submitHours;
+
 
     public String getRepairName() {
         return repairName;
@@ -598,4 +609,52 @@ public class RepairDto extends PageDto implements Serializable {
     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;
+    }
 }

+ 20 - 0
java110-bean/src/main/java/com/java110/po/owner/RepairPoolPo.java

@@ -32,6 +32,10 @@ public class RepairPoolPo implements Serializable {
     private String repairFee;
     private String payType;
 
+    private String timeout;
+
+    private String finishTime;
+
     public String getRepairId() {
         return repairId;
     }
@@ -183,4 +187,20 @@ public class RepairPoolPo implements Serializable {
     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;
+    }
 }

+ 12 - 6
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>
 

+ 13 - 3
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>
@@ -224,6 +226,9 @@
         <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}
         </if>
@@ -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'

+ 24 - 0
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java

@@ -5,6 +5,7 @@ import java.sql.Timestamp;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Duration;
 import java.util.*;
 
 /**
@@ -990,4 +991,27 @@ public class DateUtil {
     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();
+    }
 }

+ 68 - 42
service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListAdminOwnerRepairsCmd.java

@@ -20,10 +20,7 @@ import com.java110.intf.user.IStaffCommunityV1InnerServiceSMO;
 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.math.BigDecimal;
 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 @@ public class ListAdminOwnerRepairsCmd extends Cmd {
         }
 
         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)){

+ 86 - 56
service-community/src/main/java/com/java110/community/cmd/ownerRepair/ListOwnerRepairsCmd.java

@@ -16,9 +16,7 @@ import com.java110.intf.user.IOwnerV1InnerServiceSMO;
 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.math.BigDecimal;
 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,61 +62,86 @@ public class ListOwnerRepairsCmd extends Cmd {
             ownerRepairDto.setRoomIds(roomIds);
             ownerRepairDto.setRoomId("");
         }
-        //todo PC电话报修、PC工单池、H5工单池
-        //todo 手机端员工单工单池 只返回未处理状态的数据
-        //todo 这个应该显示全部才对,之前的兄弟写的不合适 add by wuxw
-//        if (!StringUtil.isEmpty(ownerRepairDto.getReqSource()) && ownerRepairDto.getReqSource().equals("mobile")) {
-//            ownerRepairDto.setState(RepairDto.STATE_WAIT);
-//        }
+
         //todo pc电话报修模块 只返回PC员工登记和手机端员工登记的数据
-        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) {
 
         if (StringUtil.isEmpty(ownerRepairDto.getEndTime())) {
@@ -134,23 +158,29 @@ public class ListOwnerRepairsCmd extends Cmd {
     }
 
     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();

+ 2 - 0
service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairFinishCmd.java

@@ -627,8 +627,10 @@ public class RepairFinishCmd extends Cmd {
         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("修改工单失败");

+ 2 - 1
service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairForceFinishCmd.java

@@ -373,7 +373,7 @@ public class RepairForceFinishCmd extends Cmd {
                 }
             }
         }
-        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 @@ public class RepairForceFinishCmd extends Cmd {
         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("修改工单失败");

File diff suppressed because it is too large
+ 78 - 55
service-community/src/main/java/com/java110/community/cmd/ownerRepair/SaveOwnerRepairCmd.java


+ 16 - 15
service-community/src/main/java/com/java110/community/dao/impl/RepairServiceDaoImpl.java

@@ -6,6 +6,7 @@ import com.java110.core.base.dao.BaseServiceDao;
 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 @@ public class RepairServiceDaoImpl extends BaseServiceDao implements IRepairServi
     @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 @@ public class RepairServiceDaoImpl extends BaseServiceDao implements IRepairServi
     @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());
     }
 }