Bladeren bron

bugfix:
1、内容管理-内容发布-下发详情-已发布数据的发布状态仍然为待发布

lihao16 5 maanden geleden
bovenliggende
commit
ff1938b957

+ 3 - 1
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/ISmsbDeviceTaskService.java

@@ -1,5 +1,6 @@
 package com.inspur.device.service;
 
+import com.inspur.device.domain.SmsbDeviceTask;
 import com.inspur.device.domain.bo.SmsbDeviceTaskBo;
 import com.inspur.device.domain.vo.SmsbDeviceTaskDetailVo;
 import com.inspur.device.domain.vo.SmsbDeviceTaskVo;
@@ -96,7 +97,8 @@ public interface ISmsbDeviceTaskService {
      * 上传任务状态
      * @param taskId
      * @param taskStatus
+     * @param smsbDeviceTask
      * @return
      */
-    R<Void> uploadTaskStatus(Long taskId, Integer taskStatus);
+    R<Void> uploadTaskStatus(Long taskId, Integer taskStatus, SmsbDeviceTask smsbDeviceTask);
 }

+ 1 - 2
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDeviceTaskServiceImpl.java

@@ -82,8 +82,7 @@ public class SmsbDeviceTaskServiceImpl implements ISmsbDeviceTaskService {
     }
 
     @Override
-    public R<Void> uploadTaskStatus(Long taskId, Integer taskStatus) {
-        SmsbDeviceTask smsbDeviceTask = baseMapper.selectById(taskId);
+    public R<Void> uploadTaskStatus(Long taskId, Integer taskStatus,SmsbDeviceTask smsbDeviceTask) {
         SmsbDeviceTaskDetail deviceTaskDetail = new SmsbDeviceTaskDetail();
         deviceTaskDetail.setTaskId(taskId);
         deviceTaskDetail.setTaskStatus(taskStatus);

+ 16 - 1
smsb-modules/smsb-source/src/main/java/com/inspur/source/controller/SmsbFrontController.java

@@ -1,11 +1,15 @@
 package com.inspur.source.controller;
 
 import cn.dev33.satoken.annotation.SaIgnore;
+import com.inspur.device.domain.SmsbDeviceTask;
 import com.inspur.device.domain.bo.HttpHeartbeatReq;
+import com.inspur.device.domain.constants.DeviceTaskConstants;
 import com.inspur.device.domain.vo.*;
+import com.inspur.device.mapper.SmsbDeviceTaskMapper;
 import com.inspur.device.service.*;
 import com.inspur.source.domain.vo.FrontItemSourceVO;
 import com.inspur.source.domain.vo.FrontPushInfoVo;
+import com.inspur.source.service.ISmsbItemPushDeviceService;
 import com.inspur.source.service.ISmsbItemPushService;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
@@ -29,6 +33,11 @@ import java.util.List;
 public class SmsbFrontController {
 
     private final ISmsbItemPushService smsbItemPushService;
+
+    private final SmsbDeviceTaskMapper smsbDeviceTaskMapper;
+
+    private final ISmsbItemPushDeviceService smsbItemPushDeviceService;
+
     @Autowired
     private ISmsbOtaRecordService iSmsbOtaRecordService;
     @Autowired
@@ -151,7 +160,13 @@ public class SmsbFrontController {
     @SaIgnore
     @GetMapping("/task/status")
     public R<Void> uploadTaskStatus(@RequestParam("taskId") Long taskId,@RequestParam("taskStatus") Integer taskStatus) {
-        return smsbDeviceTaskService.uploadTaskStatus(taskId,taskStatus);
+        SmsbDeviceTask smsbDeviceTask = smsbDeviceTaskMapper.selectById(taskId);
+        // 如果是任务完成且为时间线更新任务
+        if (taskStatus.equals(DeviceTaskConstants.DEVICE_TASK_STATUS_END)
+            && smsbDeviceTask.getTaskType().equals(DeviceTaskConstants.DEVICE_TASK_PLAY_LINE_UPDATE)) {
+            smsbItemPushDeviceService.updateDevicePushStatus(3,smsbDeviceTask);
+        }
+        return smsbDeviceTaskService.uploadTaskStatus(taskId,taskStatus,smsbDeviceTask);
     }
 
     /**

+ 8 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/service/ISmsbItemPushDeviceService.java

@@ -1,5 +1,6 @@
 package com.inspur.source.service;
 
+import com.inspur.device.domain.SmsbDeviceTask;
 import com.inspur.source.domain.bo.SmsbItemPushDeviceBo;
 import com.inspur.source.domain.bo.SmsbItemPushPlaylistBo;
 import com.inspur.source.domain.vo.SmsbItemPushPlaylistVo;
@@ -82,4 +83,11 @@ public interface ISmsbItemPushDeviceService {
      * @return
      */
     public R<Void> pushRemoveDevice(SmsbItemPushDeviceBo bo);
+
+    /**
+     * 更具设备任务 更新下发状态
+     * @param pushState
+     * @param smsbDeviceTask
+     */
+    void updateDevicePushStatus(Integer pushState, SmsbDeviceTask smsbDeviceTask);
 }

+ 10 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/service/impl/SmsbItemPushDeviceServiceImpl.java

@@ -3,6 +3,8 @@ package com.inspur.source.service.impl;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.inspur.device.domain.SmsbDeviceTask;
 import com.inspur.device.domain.constants.ResultCodeEnum;
 import com.inspur.device.domain.vo.SmsbDeviceVo;
 import com.inspur.device.service.ISmsbDeviceService;
@@ -188,6 +190,14 @@ public class SmsbItemPushDeviceServiceImpl implements ISmsbItemPushDeviceService
         return R.ok();
     }
 
+    @Override
+    public void updateDevicePushStatus(Integer pushState, SmsbDeviceTask smsbDeviceTask) {
+        Long pushId = Long.valueOf(smsbDeviceTask.getTaskParam());
+        smsbItemPushPlaylistMapper.update(new LambdaUpdateWrapper<SmsbItemPushPlaylist>().eq(SmsbItemPushPlaylist::getPushId,pushId)
+            .eq(SmsbItemPushPlaylist::getDeviceId,smsbDeviceTask.getDeviceId())
+            .set(SmsbItemPushPlaylist::getPushState,pushState));
+    }
+
     private void pushRemoveMessage(List<Long> deviceIds, Long pushId) {
         for (Long deviceId : deviceIds) {
             SmsbDeviceVo deviceVo = smsbDeviceService.getDeviceCacheById(deviceId);