|
@@ -59,6 +59,7 @@ import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Map.Entry;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -140,19 +141,12 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
|
|
|
long startTime = Calendar.getInstance().getTimeInMillis();
|
|
|
SceneRepairLog sceneRepairLog = null;
|
|
|
try {
|
|
|
- sceneRepairLog = sceneRepairLogService.getOne(new LambdaQueryWrapper<SceneRepairLog>().eq(SceneRepairLog::getNum, num));
|
|
|
- if(sceneRepairLog == null){
|
|
|
- sceneRepairLog = SceneRepairLog.builder()
|
|
|
- .num(scenePro.getNum())
|
|
|
- .reason("")
|
|
|
- .state(0).build();
|
|
|
- }else{
|
|
|
- sceneRepairLog.setUpdateTime(Calendar.getInstance().getTime());
|
|
|
- sceneRepairLog.setReason("");
|
|
|
- sceneRepairLog.setState(0);
|
|
|
- }
|
|
|
- //写入日志
|
|
|
- sceneRepairLogService.saveOrUpdate(sceneRepairLog);
|
|
|
+ sceneRepairLog = sceneRepairLogService.getOne(
|
|
|
+ new LambdaQueryWrapper<SceneRepairLog>()
|
|
|
+ .eq(SceneRepairLog::getNum, num).eq(SceneRepairLog::getState, 0)
|
|
|
+ .orderByDesc(SceneRepairLog::getId)
|
|
|
+ .last("limit 1"));
|
|
|
+ this.upgradeLog(sceneRepairLog, num, 0, null, null);
|
|
|
|
|
|
SceneProExt sceneProExt = sceneProExtService.getOne(
|
|
|
new LambdaQueryWrapper<SceneProExt>()
|
|
@@ -451,10 +445,7 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
|
|
|
consumTime = Calendar.getInstance().getTimeInMillis() - startTime;
|
|
|
|
|
|
//记录日志
|
|
|
- sceneRepairLog.setUpdateTime(Calendar.getInstance().getTime());
|
|
|
- sceneRepairLog.setState(1);
|
|
|
- sceneRepairLog.setConsumTime(consumTime);
|
|
|
- sceneRepairLogService.updateById(sceneRepairLog);
|
|
|
+ this.upgradeLog(sceneRepairLog, num, 1, null, consumTime);
|
|
|
|
|
|
// 调用v3接口回写数据
|
|
|
String url = fkankanMiniHost + URL_UPGRADE_TO_V4_RESULT_SYNC;
|
|
@@ -473,10 +464,7 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
|
|
|
|
|
|
//记录日志
|
|
|
consumTime = Calendar.getInstance().getTimeInMillis() - startTime;
|
|
|
- sceneRepairLog.setUpdateTime(Calendar.getInstance().getTime());
|
|
|
- sceneRepairLog.setState(2);
|
|
|
- sceneRepairLog.setReason(ExceptionUtil.stacktraceToString(e));
|
|
|
- sceneRepairLog.setConsumTime(consumTime);
|
|
|
+ this.upgradeLog(sceneRepairLog, num, 2, ExceptionUtil.stacktraceToString(e, 3000), consumTime);
|
|
|
sceneRepairLogService.updateById(sceneRepairLog);
|
|
|
} finally {
|
|
|
String lockKey = String.format(RedisLockKey.LOCK_SCENE_UPGRADE_V4, num);
|
|
@@ -603,4 +591,17 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
|
|
|
.num(num).status(status)
|
|
|
.progress(progress).build()));
|
|
|
}
|
|
|
+
|
|
|
+ private void upgradeLog(SceneRepairLog sceneRepairLog, String num, int status, String reason, Long consumTime){
|
|
|
+ //写入升级日志
|
|
|
+ if(Objects.isNull(sceneRepairLog)){
|
|
|
+ sceneRepairLog = new SceneRepairLog();
|
|
|
+ sceneRepairLog.setNum(num);
|
|
|
+ }
|
|
|
+ sceneRepairLog.setConsumTime(consumTime);
|
|
|
+ sceneRepairLog.setState(status);
|
|
|
+ sceneRepairLog.setReason(reason);
|
|
|
+ sceneRepairLog.setCreateTime(Calendar.getInstance().getTime());
|
|
|
+ sceneRepairLogService.saveOrUpdate(sceneRepairLog);
|
|
|
+ }
|
|
|
}
|