Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

dazhaxie 2 viikkoa sitten
vanhempi
commit
9a15b5653d

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

@@ -1015,12 +1015,14 @@ public class RepairApplicationFormServiceImpl
         query.setRepairId(dto.getId());
         query.setCompleteFlag(Boolean.FALSE);
         List<RepairTimeRecord> recordList = repairTimeRecordMapper.select(query);
-        if(!CollectionUtils.isEmpty(recordList)){
-            throw new DeniedException("该维修单计时操作尚未结束");
+        if(CollectionUtils.isEmpty(recordList)){
+            throw new DeniedException("该维修单没有开始维修记录,无法完成维修");
+        }
+        if (recordList.size() > 1){
+            throw new DeniedException("该维修单多笔点了【开始/继续】的记录,操作异常,请联系开发人员");
         }
         // 1. 将维修单的状态修改已完成
         RepairApplicationForm applicationForm = mapper.selectById(dto.getId());
-
         // 校验:只有被派工的维修人才能点击完成
         UserInfo currentUser = SecurityUtils.getUserInfo();
         if (currentUser == null || !currentUser.getUserId().equals(applicationForm.getRepairUserId())) {
@@ -1036,6 +1038,21 @@ 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());
         if(applicationForm.getRepairMinutes() == null){
             // 老单据继续走之前的逻辑
             applicationForm.setRepairMinutes(
@@ -1064,7 +1081,7 @@ public class RepairApplicationFormServiceImpl
         // applicationForm.setContent(dto.getContent());
         applicationForm.setOutType(dto.getOutType());
         applicationForm.setCategory(dto.getCategory());
-        applicationForm.setAssistantStatus(RepairAssistantStatusEnum.end.getValue());
+        //applicationForm.setAssistantStatus(RepairAssistantStatusEnum.end.getValue());
         this.saveRepairFile(dto);
         super.modModelByPrimaryKey(applicationForm);