Browse Source

已报废,已停用,已删除的设备不生成保养任务,只有使用中的才生成任务,设备状态更改时若更改后的状态不为使用中则删除保养任务

2 years ago
parent
commit
043d07ddcf

+ 14 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbStatusLogController.java

@@ -3,8 +3,13 @@ package com.platform.rest.controller.sb;
 import com.platform.common.util.R;
 import com.platform.common.util.SecurityUtils;
 import com.platform.common.util.StringUtils;
+import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.sb.SbStatusLogDTO;
+import com.platform.dao.entity.check.CheckJob;
 import com.platform.dao.entity.sb.SbStatusLog;
+import com.platform.dao.enums.SbInfoStatusEnum;
+import com.platform.dao.mapper.check.CheckJobMapper;
+import com.platform.service.check.CheckJobService;
 import com.platform.service.sb.SbStatusLogService;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.sb.ExportSbStatusLogVO;
@@ -35,6 +40,8 @@ public class SbStatusLogController {
 
   private final  SbStatusLogService sbStatusLogService;
 
+  private final CheckJobMapper checkJobMapper;
+
   /**
    * 通过id查询单条记录
    *
@@ -59,6 +66,12 @@ public class SbStatusLogController {
       if(StringUtils.isBlank(sbStatusLogDTO.getActualUser())){
           sbStatusLogDTO.setActualUser(SecurityUtils.getUserInfo().getRealName());
       }
+      if (!sbStatusLogDTO.getAfterStatus().equals(SbInfoStatusEnum.IN_USE.getValue())){
+          //修改状态后不为使用中,删除保养任务
+          CheckJob checkJob = new CheckJob();
+          checkJob.setSbId(sbStatusLogDTO.getSbId());
+          checkJobMapper.delete(checkJob);
+      }
       return new R<>(sbStatusLogService.saveModelByDTOAndUserInfo(sbStatusLogDTO, SecurityUtils.getUserInfo()));
   }
 
@@ -77,6 +90,7 @@ public class SbStatusLogController {
       return new R<>();
   }
 
+
   /**
    * 通过id删除一条记录
    *

+ 5 - 1
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -959,8 +959,9 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
         }
         checkJob.setRealHours(DateUtils.getDurationMinutes(checkJob.getActualStartTime(), checkJob.getActualEndTime()) + "");
         OauthUser oauthUser = SecurityUtils.checkAndGetUser();
+        SbInfoVO sbInfoVO = new SbInfoVO();
         if(oauthUser==null){// 未登录,在获取设备的使用人员
-            SbInfoVO sbInfoVO = sbInfoService.getById(checkJob.getSbId());
+            sbInfoVO= sbInfoService.getById(checkJob.getSbId());
             if (sbInfoVO == null) {
                 throw new BusinessException("设备不存在,无法完成任务");
             }
@@ -980,6 +981,9 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
         // 提交完成图片信息
         this.saveFile(dto);
 
+        //需判断设备是否处于使用中的状态,若不处于使用中的状态,则不需要生成保养任务
+        if (!sbInfoVO.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue()))
+            return;
         // 非台时和公里,则需要生成下一次的任务
         List<Integer> statusList = new ArrayList<Integer>();
         statusList.add(CheckJobStatusEnum.NOT_EXECUTE.getValue());