2 커밋 9a15b5653d ... c8d68e3d80

작성자 SHA1 메시지 날짜
  guarantee-lsq c8d68e3d80 Merge remote-tracking branch 'origin/master' 2 주 전
  guarantee-lsq 16316223c1 报表-平均工时 2 주 전
1개의 변경된 파일과 19개의 추가작업 그리고 19개의 파일을 삭제
  1. 19 19
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

+ 19 - 19
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -1013,13 +1013,9 @@ public class RepairApplicationFormServiceImpl
     public void finish(RepairApplicationFormDTO dto) {
         RepairTimeRecord query = new RepairTimeRecord();
         query.setRepairId(dto.getId());
-        query.setCompleteFlag(Boolean.FALSE);
         List<RepairTimeRecord> recordList = repairTimeRecordMapper.select(query);
         if(CollectionUtils.isEmpty(recordList)){
-            throw new DeniedException("该维修单没有开始维修记录,无法完成维修");
-        }
-        if (recordList.size() > 1){
-            throw new DeniedException("该维修单多笔点了【开始/继续】的记录,操作异常,请联系开发人员");
+            throw new DeniedException("该维修单尚未开始维修,无法完成维修");
         }
         // 1. 将维修单的状态修改已完成
         RepairApplicationForm applicationForm = mapper.selectById(dto.getId());
@@ -1038,21 +1034,25 @@ public class RepairApplicationFormServiceImpl
         if (dto.getRepairEndTime() != null) {
             applicationForm.setRepairEndTime(dto.getRepairEndTime());
         }
-        // 补充记录
-        RepairTimeRecord record = recordList.get(0);
-        record.setUpdateTime(applicationForm.getRepairEndTime());
-        record.setCompleteFlag(Boolean.TRUE);
-        record.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
-        record.setUpdateUserName(SecurityUtils.getUserInfo().getRealName());
-        double repairHour = DateUtils.getDurationHours(record.getCreatedTime(), record.getUpdateTime());
-        record.setRepairHour(BigDecimalUtil.valueOf(repairHour));
-        record.setEndRecordFlag(Boolean.TRUE);
-        repairTimeRecordMapper.updateByPrimaryKeySelective(record);
-        // 修正实际维修时长
-        double historyRepairHour = applicationForm.getRepairMinutes() == null ? 0.0 : applicationForm.getRepairMinutes();
-        historyRepairHour = historyRepairHour + repairHour;
-        applicationForm.setRepairMinutes(historyRepairHour);
         applicationForm.setAssistantStatus(RepairAssistantStatusEnum.end.getValue());
+        query.setCompleteFlag(Boolean.FALSE);
+        recordList = repairTimeRecordMapper.select(query);
+        if (!CollectionUtils.isEmpty(recordList)){ // 用户自己点过暂停维修,记录是齐全的
+            // 补充记录
+            RepairTimeRecord record = recordList.get(0);
+            record.setUpdateTime(applicationForm.getRepairEndTime());
+            record.setCompleteFlag(Boolean.TRUE);
+            record.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+            record.setUpdateUserName(SecurityUtils.getUserInfo().getRealName());
+            double repairHour = DateUtils.getDurationHours(record.getCreatedTime(), record.getUpdateTime());
+            record.setRepairHour(BigDecimalUtil.valueOf(repairHour));
+            record.setEndRecordFlag(Boolean.TRUE);
+            repairTimeRecordMapper.updateByPrimaryKeySelective(record);
+            // 修正实际维修时长
+            double historyRepairHour = applicationForm.getRepairMinutes() == null ? 0.0 : applicationForm.getRepairMinutes();
+            historyRepairHour = historyRepairHour + repairHour;
+            applicationForm.setRepairMinutes(historyRepairHour);
+        }
         if(applicationForm.getRepairMinutes() == null){
             // 老单据继续走之前的逻辑
             applicationForm.setRepairMinutes(