Browse Source

修复bug:保养时长问题

别傲 5 years ago
parent
commit
24032115b0

+ 2 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/controller/MaintenanceRecordController.java

@@ -167,6 +167,8 @@ public class MaintenanceRecordController {
 
     private MtRecordResponse getMtRecordResponse(@RequestBody @Val MtRecordRequest request) {
         MtRecordResponse entity = maintenanceRecordService.infoById(request);
+        String repairDuration = maintenanceRecordService.getRepairDuration(entity.getRepairDiff());
+        entity.setRepairDuration(repairDuration);
         Validate.notNull(entity, ValuePool.MAINTENANCE_RECORD_NOT_EXIST);
         /**
          * 维保项id:0/1/2, 0:无需保养,1:已保养,2:需要更换

+ 2 - 12
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/response/MtRecordResponse.java

@@ -4,8 +4,6 @@ import cn.com.ty.lift.business.evaluation.dao.entity.Evaluation;
 import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceOption;
 import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceRecord;
 import cn.com.ty.lift.business.maintenance.dao.entity.MtRecordImg;
-import cn.hutool.core.date.BetweenFormater;
-import cn.hutool.core.date.DateUtil;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -55,21 +53,13 @@ public class MtRecordResponse extends MaintenanceRecord {
     private String workerName;
 
     /**
-     * 保养时长
+     * 保养时长分钟
      */
-    private long repairDiff;
+    private int repairDiff;
 
     private String repairDuration;
 
     private String devicePosition;
-    /**
-     * 重新getter方法,换算时长
-     * XX天XX小时XX分XX秒
-     * @return
-     */
-    public String getRepairDuration() {
-        return DateUtil.formatBetween(this.repairDiff, BetweenFormater.Level.SECOND);
-    }
 
     private Integer starLevel;
 

+ 33 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -22,6 +22,7 @@ import cn.com.ty.lift.business.project.service.ProjectService;
 import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.ty.lift.common.utils.MapHelper;
 import cn.com.xwy.boot.web.dto.RestResponse;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.IterUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -203,6 +204,8 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         if (ObjectUtil.isEmpty(plan)) return RestResponse.fail(MessageUtils.get("msg.maintenance.plan.not.exist"));
 
         plan.setStatus(Integer.parseInt(CommonEnum.MaintenancePlanStatus.MAINTENANCE_DOING.getCode()));
+        plan.setType(record.getType());
+        plan.setCount(request.getPeriods());
         boolean planResult = maintenancePlanService.updateById(plan);
         if (!planResult) {
             rollback();
@@ -310,6 +313,27 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         return response;
     }
 
+    /**
+     * @param repairDiff 分钟数
+     * @return 时分
+     * @description 计算时长
+     * @date 2020/5/23 11:58 上午
+     */
+    public String getRepairDuration(int repairDiff) {
+        String time;
+        if (repairDiff == 60) {
+            int hours = repairDiff / 60;
+            time = hours + "小时";
+        } else if (repairDiff > 60) {
+            int hours = repairDiff / 60;
+            int minute = repairDiff % 60;
+            time = hours + "小时" + minute + "分钟";
+        } else {
+            time = repairDiff + "分钟";
+        }
+        return time;
+    }
+
     /**
      * 根据条件分页查询维保-日常保养
      *
@@ -318,7 +342,15 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
      * @author wcz
      */
     public IPage<MtRecordResponse> pageRecordByCondition(MtRecordRequest request) {
-        return baseMapper.pageRecordByCondition(request.getPage(), request);
+        IPage<MtRecordResponse> page = baseMapper.pageRecordByCondition(request.getPage(), request);
+        if (CollUtil.isNotEmpty(page.getRecords())) {
+            List<MtRecordResponse> records = page.getRecords();
+            for (MtRecordResponse mtRecord : records) {
+                String repairDuration = getRepairDuration(mtRecord.getRepairDiff());
+                mtRecord.setRepairDuration(repairDuration);
+            }
+        }
+        return page;
     }
 
     /**

+ 4 - 3
lift-business-service/src/main/resources/mapper/maintenance/MaintenanceRecordMapper.xml

@@ -40,7 +40,7 @@
         <result column="category" property="category" jdbcType="INTEGER"/>
         <result column="registration_code" property="registrationCode" jdbcType="VARCHAR"/>
         <result column="worker_name" property="workerName" jdbcType="VARCHAR"/>
-        <result column="repair_diff" property="repairDiff" jdbcType="BIGINT"/>
+        <result column="repair_diff" property="repairDiff" jdbcType="INTEGER"/>
         <result column="star_level" property="starLevel" jdbcType="INTEGER"/>
         <result column="device_position" property="devicePosition" jdbcType="VARCHAR"/>
     </resultMap>
@@ -218,7 +218,7 @@
         ui.`name` AS worker_name,
         pr.project_name,
         ifnull(ev.star_level, 0),
-        TimeStampDiff(SECOND ,mr.stop_date,mr.recovery_date) AS repair_diff
+        TimeStampDiff(MINUTE ,mr.stop_date,mr.recovery_date) AS repair_diff
         FROM
         maintenance_record mr
         LEFT JOIN lift li ON mr.lift_id = li.id
@@ -275,7 +275,8 @@
         ui.`name` AS worker_name,
         pr.project_name,
         pr.project_code,
-        ev.star_level
+        ev.star_level,
+        TimeStampDiff(MINUTE ,mr.stop_date,mr.recovery_date) AS repair_diff
         FROM
         maintenance_record mr
         LEFT JOIN lift li ON mr.lift_id = li.id