|
|
@@ -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);
|
|
|
|