diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java index b8e5d66..a1c1a13 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java @@ -28,4 +28,6 @@ ReturnDTO deleteUpgradeTask(List ids); DeviceUpgradeTask getByDeviceId(Long deviceId); + + int updateUpgradeTaskStatus(Long taskId, Integer state); } diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java index b8e5d66..a1c1a13 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java @@ -28,4 +28,6 @@ ReturnDTO deleteUpgradeTask(List ids); DeviceUpgradeTask getByDeviceId(Long deviceId); + + int updateUpgradeTaskStatus(Long taskId, Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java index c872654..2beb212 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java @@ -76,4 +76,9 @@ return null; } + @Override + public int updateUpgradeTaskStatus(Long taskId, Integer state) { + return baseMapper.updateUpgradeTaskStatus(taskId, state); + } + } diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java index b8e5d66..a1c1a13 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java @@ -28,4 +28,6 @@ ReturnDTO deleteUpgradeTask(List ids); DeviceUpgradeTask getByDeviceId(Long deviceId); + + int updateUpgradeTaskStatus(Long taskId, Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java index c872654..2beb212 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java @@ -76,4 +76,9 @@ return null; } + @Override + public int updateUpgradeTaskStatus(Long taskId, Integer state) { + return baseMapper.updateUpgradeTaskStatus(taskId, state); + } + } diff --git a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java b/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java deleted file mode 100644 index f271189..0000000 --- a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.missiles.controller; - -import com.alibaba.fastjson.JSON; -import com.casic.missiles.dto.ResponseData; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -@RestController -@RequestMapping("/push") -@Slf4j -public class ReceiveController { - - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); - - @RequestMapping("/data") - public Object testNbResponse(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - System.out.println(JSON.toJSON(dataMap)); - - responseData.setCode(200); - return responseData; - } - - @RequestMapping("/test") - public Object testNbCallBack(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - log.info("----------" + JSON.toJSON(dataMap)); - responseData.setCode(200); - return responseData; - } - -} diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java index b8e5d66..a1c1a13 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java @@ -28,4 +28,6 @@ ReturnDTO deleteUpgradeTask(List ids); DeviceUpgradeTask getByDeviceId(Long deviceId); + + int updateUpgradeTaskStatus(Long taskId, Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java index c872654..2beb212 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java @@ -76,4 +76,9 @@ return null; } + @Override + public int updateUpgradeTaskStatus(Long taskId, Integer state) { + return baseMapper.updateUpgradeTaskStatus(taskId, state); + } + } diff --git a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java b/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java deleted file mode 100644 index f271189..0000000 --- a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.missiles.controller; - -import com.alibaba.fastjson.JSON; -import com.casic.missiles.dto.ResponseData; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -@RestController -@RequestMapping("/push") -@Slf4j -public class ReceiveController { - - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); - - @RequestMapping("/data") - public Object testNbResponse(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - System.out.println(JSON.toJSON(dataMap)); - - responseData.setCode(200); - return responseData; - } - - @RequestMapping("/test") - public Object testNbCallBack(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - log.info("----------" + JSON.toJSON(dataMap)); - responseData.setCode(200); - return responseData; - } - -} diff --git a/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java b/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java deleted file mode 100644 index fff28d0..0000000 --- a/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.casic.missiles.listeners.event; - -/** - * 观察者监听器 - */ -public class DataGramLifeCycleEvent { - -} diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java index 6b18b14..757669a 100644 --- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java +++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.upgrade.UpgradeTaskListVO; import com.casic.missiles.model.DeviceUpgradeTask; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -24,4 +25,7 @@ @Param("dataScope") DataScope dataScope); List findUpgradeTaskListToBeSend(@Param("deviceId") Long deviceId); + + @Update("UPDATE device_upgrade_task set status = #{state} WHERE id = #{taskId}") + int updateUpgradeTaskStatus(@Param("taskId") Long taskId, @Param("state") Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java index b8e5d66..a1c1a13 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/IDeviceUpgradeTaskService.java @@ -28,4 +28,6 @@ ReturnDTO deleteUpgradeTask(List ids); DeviceUpgradeTask getByDeviceId(Long deviceId); + + int updateUpgradeTaskStatus(Long taskId, Integer state); } diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java index c872654..2beb212 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceUpgradeTaskServiceImpl.java @@ -76,4 +76,9 @@ return null; } + @Override + public int updateUpgradeTaskStatus(Long taskId, Integer state) { + return baseMapper.updateUpgradeTaskStatus(taskId, state); + } + } diff --git a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java b/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java deleted file mode 100644 index f271189..0000000 --- a/sensorhub-core/src/main/java/com/casic/missiles/controller/ReceiveController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.missiles.controller; - -import com.alibaba.fastjson.JSON; -import com.casic.missiles.dto.ResponseData; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -@RestController -@RequestMapping("/push") -@Slf4j -public class ReceiveController { - - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); - - @RequestMapping("/data") - public Object testNbResponse(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - System.out.println(JSON.toJSON(dataMap)); - - responseData.setCode(200); - return responseData; - } - - @RequestMapping("/test") - public Object testNbCallBack(@RequestBody Map dataMap) { - ResponseData responseData = new ResponseData(); - log.info("----------" + JSON.toJSON(dataMap)); - responseData.setCode(200); - return responseData; - } - -} diff --git a/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java b/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java deleted file mode 100644 index fff28d0..0000000 --- a/sensorhub-core/src/main/java/com/casic/missiles/listeners/event/DataGramLifeCycleEvent.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.casic.missiles.listeners.event; - -/** - * 观察者监听器 - */ -public class DataGramLifeCycleEvent { - -} diff --git a/sensorhub-core/src/main/java/com/casic/missiles/service/impl/GeneralServiceImpl.java b/sensorhub-core/src/main/java/com/casic/missiles/service/impl/GeneralServiceImpl.java index d189343..79b47c2 100644 --- a/sensorhub-core/src/main/java/com/casic/missiles/service/impl/GeneralServiceImpl.java +++ b/sensorhub-core/src/main/java/com/casic/missiles/service/impl/GeneralServiceImpl.java @@ -162,7 +162,7 @@ switch (operationType) { case UP_GET_REQUEST: // 请求远程升级固件程序的数据 - updateOTATaskState(); + updateOTATaskState((BirmmGetRequest) baseFrame); break; case UP_TRAP_REQUEST: @@ -190,8 +190,17 @@ } } - private void updateOTATaskState() { - + private void updateOTATaskState(BirmmGetRequest getRequest) { + // 收到第一个请求 状态设置为升级中 status = 3 + if (getRequest.getRequestOffset() == 0) { + Device device = deviceService.getDeviceByDeviceCode(getRequest.getDevCode()); + if (ObjectUtil.isNotNull(device)) { + DeviceUpgradeTask task = otaService.getByDeviceId(device.getId()); + if (ObjectUtil.isNotNull(task)) { + otaService.updateUpgradeTaskStatus(task.getId(), 3); // 3=升级中 + } + } + } } /** @@ -236,12 +245,6 @@ // 更新设备的固件版本信息 deviceService.updateDeviceVersion(onlineRequest.getDevCode(), softwareTag.getVersion()); - - // 更新升级任务的状态 - Device device = deviceService.getDeviceByDeviceCode(onlineRequest.getDevCode()); - if (ObjectUtil.isNotNull(device)) { - DeviceUpgradeTask otaTask = otaService.getByDeviceId(device.getId()); - } } } @@ -542,9 +545,13 @@ byte[] dataThisTime = new byte[getResponse.getReqSize()]; System.arraycopy(otaVersion.getVersionFile(), getResponse.getReqOffset(), dataThisTime, 0, getResponse.getReqSize()); getResponse.setReqData(dataThisTime); + + // 最后一包数据 将升级任务状态设置为已完成 + if (getResponse.getReqOffset() + getResponse.getReqSize() >= otaVersion.getVersionFile().length) { + otaService.updateUpgradeTaskStatus(task.getId(), 1); // 1=已完成 + } } } - // 组装升级包的数据 } private void replyOnlineRequestHandler(String devCode, BirmmOnlineResponse onlineResponse) {