Эх сурвалжийг харах

#MOD 设备故障 标记已解决

tanbin 1 жил өмнө
parent
commit
510d597a88

+ 5 - 0
device-api-service/src/main/java/com/xy/service/DeviceFaultInfoFlowServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.system.SystemUtil;
 import com.xy.dto.SysWorkUser.ListDto;
 import com.xy.dto.SysWorkUser.SysWorkVo;
 import com.xy.entity.DeviceFaultInfoFlow;
+import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceFaultInfoFlowMapper;
 import com.xy.service.DeviceFaultInfoFlowService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -79,6 +80,10 @@ public class DeviceFaultInfoFlowServiceImpl extends ServiceImpl<DeviceFaultInfoF
     @PostMapping("save")
     @ApiOperation("添加")
     public R save(@RequestBody @Validated DeviceFaultInfoFlowDto.Save save) {
+        String content = save.getContent();
+        if(StrUtil.isEmpty(content)){
+            throw new CommRuntimeException("回复内容不可为空");
+        }
         DeviceFaultInfoFlow saveInfo = copy(DeviceFaultInfoFlow.class, save);
         Long operatorId = AuthorizeUtils.getLoginId(Long.class);
         Long sysId = AuthorizeUtils.getSysId();

+ 14 - 2
device-api-service/src/main/java/com/xy/service/DeviceFaultInfoServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.collections.list.JArrayList;
 import com.xy.collections.map.JMap;
 import com.xy.dto.DeviceFaultInfoDto;
+import com.xy.dto.DeviceFaultInfoFlowDto;
 import com.xy.dto.be.MercDto;
 import com.xy.entity.DeviceFaultInfo;
 import com.xy.entity.DeviceFaultLog;
@@ -23,6 +24,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -52,6 +54,7 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
     private final DeviceFaultLogServiceImpl deviceFaultLogService;
     private final MercService mercService;
     private final DeviceInfoServiceImpl deviceInfoService;
+    private final DeviceFaultInfoFlowServiceImpl deviceFaultInfoFlowService;
 
     @PostMapping("obj")
     @ApiOperation("对象查询")
@@ -120,7 +123,13 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
     @PostMapping("resolve")
     @ApiOperation("标记已解决")
     public R resolve(@RequestBody @Validated DeviceFaultInfoDto.Update update) {
-        DeviceFaultInfo deviceFaultInfo = this.getById(update.getFaultId());
+        resolveDone(update);
+        return R.ok();
+    }
+    @Transactional(rollbackFor = Exception.class)
+    public void resolveDone( DeviceFaultInfoDto.Update update){
+        Long faultId = update.getFaultId();
+        DeviceFaultInfo deviceFaultInfo = this.getById(faultId);
         if (deviceFaultInfo == null) {
             throw new CommRuntimeException("操作对象不存在!");
         }
@@ -129,11 +138,14 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
         updateInfo.setFaultLevel(-1);
         boolean b = updateById(updateInfo);
         if (b) {
+            DeviceFaultInfoFlowDto.Save save = new DeviceFaultInfoFlowDto.Save();
+            save.setFaultId(faultId);
+            save.setContent("故障已解决");
+            deviceFaultInfoFlowService.save(save);
             //清理日志 故障信息表标记已解决,清除日志表中对应设备事件在标记已解决时间之前所有事件。
             deviceFaultLogService.remove(Wrappers.<DeviceFaultLog>lambdaUpdate().le(DeviceFaultLog::getEventTime, LocalDateTime.now()));
             //更新故障等级为正常
             deviceInfoService.updateById(new DeviceInfo().setDeviceId(deviceFaultInfo.getDeviceId()).setFaultLevel(-1));
         }
-        return R.ok();
     }
 }