|
@@ -1,23 +1,25 @@
|
|
|
package com.fdkankan.external.service.impl;
|
|
package com.fdkankan.external.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.lang.UUID;
|
|
import cn.hutool.core.lang.UUID;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.fdkankan.common.constant.CommonOperStatus;
|
|
import com.fdkankan.common.constant.CommonOperStatus;
|
|
|
-import com.fdkankan.common.constant.CommonStatus;
|
|
|
|
|
|
|
+import com.fdkankan.common.constant.CommonSuccessStatus;
|
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
|
import com.fdkankan.common.exception.BusinessException;
|
|
import com.fdkankan.common.exception.BusinessException;
|
|
|
-import com.fdkankan.external.ScenePushBean;
|
|
|
|
|
|
|
+import com.fdkankan.common.util.DateExtUtil;
|
|
|
|
|
+import com.fdkankan.external.bean.ScenePushBean;
|
|
|
import com.fdkankan.external.entity.Department;
|
|
import com.fdkankan.external.entity.Department;
|
|
|
import com.fdkankan.external.entity.Scene;
|
|
import com.fdkankan.external.entity.Scene;
|
|
|
-import com.fdkankan.external.entity.ScenePlus;
|
|
|
|
|
import com.fdkankan.external.entity.ZgxxzxPushLog;
|
|
import com.fdkankan.external.entity.ZgxxzxPushLog;
|
|
|
|
|
+import com.fdkankan.external.httpclient.XxzxClient;
|
|
|
import com.fdkankan.external.request.TaskPageRequest;
|
|
import com.fdkankan.external.request.TaskPageRequest;
|
|
|
import com.fdkankan.external.response.PageInfo;
|
|
import com.fdkankan.external.response.PageInfo;
|
|
|
import com.fdkankan.external.service.*;
|
|
import com.fdkankan.external.service.*;
|
|
|
|
|
+import com.fdkankan.web.response.ResultData;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
import com.mybatisflex.core.paginate.Page;
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -25,12 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
-import java.util.Calendar;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -47,6 +47,8 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
private ISceneOfflinePackagePushService sceneOfflinePackagePushService;
|
|
private ISceneOfflinePackagePushService sceneOfflinePackagePushService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private IDepartmentService departmentService;
|
|
private IDepartmentService departmentService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private XxzxClient xxzxClient;
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -60,23 +62,24 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
|
|
|
|
|
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 同步读取会自动finish
|
|
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 同步读取会自动finish
|
|
|
List<ZgxxzxPushLog> list = EasyExcel.read(tempFile).head(ZgxxzxPushLog.class).sheet().doReadSync();
|
|
List<ZgxxzxPushLog> list = EasyExcel.read(tempFile).head(ZgxxzxPushLog.class).sheet().doReadSync();
|
|
|
- if(CollUtil.isEmpty(list)){
|
|
|
|
|
|
|
+ if (CollUtil.isEmpty(list)) {
|
|
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR.code(), "excel数据有误");
|
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR.code(), "excel数据有误");
|
|
|
}
|
|
}
|
|
|
List<String> numList = list.stream().map(v -> v.getNum()).collect(Collectors.toList());
|
|
List<String> numList = list.stream().map(v -> v.getNum()).collect(Collectors.toList());
|
|
|
List<Scene> sceneList = sceneService.list(QueryWrapper.create().in(Scene::getSceneCode, numList).eq(Scene::getStatus, 2));
|
|
List<Scene> sceneList = sceneService.list(QueryWrapper.create().in(Scene::getSceneCode, numList).eq(Scene::getStatus, 2));
|
|
|
- Map<String, Scene> dbNumMap = sceneList.stream().collect(Collectors.toMap(v->v.getSceneCode(), v->v));
|
|
|
|
|
|
|
+ Map<String, Scene> dbNumMap = sceneList.stream().collect(Collectors.toMap(v -> v.getSceneCode(), v -> v));
|
|
|
Set<String> errorNumList = numList.stream().filter(num -> !dbNumMap.keySet().contains(num)).collect(Collectors.toSet());
|
|
Set<String> errorNumList = numList.stream().filter(num -> !dbNumMap.keySet().contains(num)).collect(Collectors.toSet());
|
|
|
- if(CollUtil.isNotEmpty(errorNumList)){
|
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(errorNumList)) {
|
|
|
StringBuffer sb = new StringBuffer("以下场景不存在或错误:");
|
|
StringBuffer sb = new StringBuffer("以下场景不存在或错误:");
|
|
|
- errorNumList.stream().forEach(v->sb.append(v).append("、"));
|
|
|
|
|
|
|
+ errorNumList.stream().forEach(v -> sb.append(v).append("、"));
|
|
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR.code(), sb.toString());
|
|
throw new BusinessException(ErrorCode.SYSTEM_ERROR.code(), sb.toString());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- list.stream().forEach(v->{
|
|
|
|
|
|
|
+ list.stream().forEach(v -> {
|
|
|
Scene scene = dbNumMap.get(v.getNum());
|
|
Scene scene = dbNumMap.get(v.getNum());
|
|
|
v.setTitle(scene.getTitle());
|
|
v.setTitle(scene.getTitle());
|
|
|
v.setStatus(CommonOperStatus.WAITING.code());
|
|
v.setStatus(CommonOperStatus.WAITING.code());
|
|
|
|
|
+ v.setTaskId(UUID.fastUUID().toString());
|
|
|
});
|
|
});
|
|
|
zgxxzxPushLogService.saveBatch(list);
|
|
zgxxzxPushLogService.saveBatch(list);
|
|
|
}
|
|
}
|
|
@@ -84,17 +87,17 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
@Override
|
|
@Override
|
|
|
public PageInfo<ZgxxzxPushLog> taskList(TaskPageRequest request) {
|
|
public PageInfo<ZgxxzxPushLog> taskList(TaskPageRequest request) {
|
|
|
QueryWrapper queryWrapper = QueryWrapper.create().orderBy(ZgxxzxPushLog::getId, false);
|
|
QueryWrapper queryWrapper = QueryWrapper.create().orderBy(ZgxxzxPushLog::getId, false);
|
|
|
- if(StrUtil.isNotEmpty(request.getNum())){
|
|
|
|
|
|
|
+ if (StrUtil.isNotEmpty(request.getNum())) {
|
|
|
queryWrapper.like(ZgxxzxPushLog::getNum, request.getNum());
|
|
queryWrapper.like(ZgxxzxPushLog::getNum, request.getNum());
|
|
|
}
|
|
}
|
|
|
- if(StrUtil.isNotEmpty(request.getTitle())){
|
|
|
|
|
|
|
+ if (StrUtil.isNotEmpty(request.getTitle())) {
|
|
|
queryWrapper.like(ZgxxzxPushLog::getTitle, request.getTitle());
|
|
queryWrapper.like(ZgxxzxPushLog::getTitle, request.getTitle());
|
|
|
}
|
|
}
|
|
|
- if(request.getStatus() == 0){
|
|
|
|
|
- queryWrapper.in(ZgxxzxPushLog::getStatus, 0,2);
|
|
|
|
|
|
|
+ if (request.getStatus() == 0) {
|
|
|
|
|
+ queryWrapper.in(ZgxxzxPushLog::getStatus, 0, 2);
|
|
|
}
|
|
}
|
|
|
- if(request.getStatus() == 1){
|
|
|
|
|
- queryWrapper.in(ZgxxzxPushLog::getStatus, -1,1);
|
|
|
|
|
|
|
+ if (request.getStatus() == 1) {
|
|
|
|
|
+ queryWrapper.in(ZgxxzxPushLog::getStatus, -1, 1);
|
|
|
}
|
|
}
|
|
|
Page<ZgxxzxPushLog> page = zgxxzxPushLogService.page(new Page<>(request.getPageNum(), request.getPageSize()), queryWrapper);
|
|
Page<ZgxxzxPushLog> page = zgxxzxPushLogService.page(new Page<>(request.getPageNum(), request.getPageSize()), queryWrapper);
|
|
|
return PageInfo.PageInfo(page);
|
|
return PageInfo.PageInfo(page);
|
|
@@ -104,17 +107,17 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
public void pushScene() {
|
|
public void pushScene() {
|
|
|
List<ZgxxzxPushLog> list = zgxxzxPushLogService.list(
|
|
List<ZgxxzxPushLog> list = zgxxzxPushLogService.list(
|
|
|
QueryWrapper.create().eq(ZgxxzxPushLog::getStatus, CommonOperStatus.WAITING.code())
|
|
QueryWrapper.create().eq(ZgxxzxPushLog::getStatus, CommonOperStatus.WAITING.code())
|
|
|
- .orderBy(ZgxxzxPushLog::getId,true));
|
|
|
|
|
- if(CollUtil.isEmpty(list)){
|
|
|
|
|
|
|
+ .orderBy(ZgxxzxPushLog::getId, true));
|
|
|
|
|
+ if (CollUtil.isEmpty(list)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
Department zgwwxxzx = departmentService.getByCode("zgwwxxzx");
|
|
Department zgwwxxzx = departmentService.getByCode("zgwwxxzx");
|
|
|
- if(zgwwxxzx == null){
|
|
|
|
|
|
|
+ if (zgwwxxzx == null) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
for (ZgxxzxPushLog zgxxzxPushLog : list) {
|
|
for (ZgxxzxPushLog zgxxzxPushLog : list) {
|
|
|
ScenePushBean pushBean = ScenePushBean.builder()
|
|
ScenePushBean pushBean = ScenePushBean.builder()
|
|
|
- .taskId(UUID.fastUUID().toString())
|
|
|
|
|
|
|
+ .taskId(zgxxzxPushLog.getTaskId())
|
|
|
.num(zgxxzxPushLog.getNum()).zipType("laser")
|
|
.num(zgxxzxPushLog.getNum()).zipType("laser")
|
|
|
.version(Calendar.getInstance().getTimeInMillis())
|
|
.version(Calendar.getInstance().getTimeInMillis())
|
|
|
.destUrl(zgwwxxzx.getDestUrl()).build();
|
|
.destUrl(zgwwxxzx.getDestUrl()).build();
|
|
@@ -122,7 +125,7 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
try {
|
|
try {
|
|
|
zgxxzxPushLogService.updateById(zgxxzxPushLog);
|
|
zgxxzxPushLogService.updateById(zgxxzxPushLog);
|
|
|
sceneOfflinePackagePushService.scenePushHandler(pushBean);
|
|
sceneOfflinePackagePushService.scenePushHandler(pushBean);
|
|
|
- }catch (Exception e){
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
log.error("场景推送失败,num:{}", zgxxzxPushLog.getNum(), e);
|
|
log.error("场景推送失败,num:{}", zgxxzxPushLog.getNum(), e);
|
|
|
zgxxzxPushLog.setStatus(CommonOperStatus.FAILD.code());
|
|
zgxxzxPushLog.setStatus(CommonOperStatus.FAILD.code());
|
|
|
zgxxzxPushLogService.updateById(zgxxzxPushLog);
|
|
zgxxzxPushLogService.updateById(zgxxzxPushLog);
|
|
@@ -134,13 +137,26 @@ public class XinxizhongxinServiceImpl implements XinxizhongxinService {
|
|
|
public void syncPushResult() {
|
|
public void syncPushResult() {
|
|
|
List<ZgxxzxPushLog> list = zgxxzxPushLogService.list(
|
|
List<ZgxxzxPushLog> list = zgxxzxPushLogService.list(
|
|
|
QueryWrapper.create().eq(ZgxxzxPushLog::getStatus, 2)
|
|
QueryWrapper.create().eq(ZgxxzxPushLog::getStatus, 2)
|
|
|
- .orderBy(ZgxxzxPushLog::getId,true));
|
|
|
|
|
- if(CollUtil.isEmpty(list)){
|
|
|
|
|
|
|
+ .orderBy(ZgxxzxPushLog::getId, true));
|
|
|
|
|
+ if (CollUtil.isEmpty(list)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ Department zgwwxxzx = departmentService.getByCode("zgwwxxzx");
|
|
|
for (ZgxxzxPushLog zgxxzxPushLog : list) {
|
|
for (ZgxxzxPushLog zgxxzxPushLog : list) {
|
|
|
-
|
|
|
|
|
|
|
+ ResultData<Integer> resultData = xxzxClient.getDeployStatus(zgwwxxzx.getDestUrl() + "/historyrical/scene/getDeployStatus");
|
|
|
|
|
+ Integer status = resultData.getData();
|
|
|
|
|
+ if(status == CommonSuccessStatus.WAITING.code()){
|
|
|
|
|
+ DateTime dateTime = DateExtUtil.offsetDay(new Date(), -7);
|
|
|
|
|
+ if(zgxxzxPushLog.getCreateTime().before(dateTime)){//7天都还没部署成功的,值为失败
|
|
|
|
|
+ zgxxzxPushLog.setStatus(CommonSuccessStatus.FAIL.code());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ zgxxzxPushLog.setStatus(status);
|
|
|
|
|
+ }
|
|
|
|
|
+ zgxxzxPushLog.setUpdateTime(null);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ zgxxzxPushLogService.updateBatch(list);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|