Bladeren bron

推送诊断程序

bmmx 1 jaar geleden
bovenliggende
commit
f92708b247

+ 3 - 2
src/main/java/com/om/controller/admin/DeviceController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -38,8 +39,8 @@ public class DeviceController {
 
     @ApiOperation("查询集合接口")
     @GetMapping("list")
-    public Result<List<Device>> list() {
-        return Result.ok(deviceService.list());
+    public Result<List<String>> list() {
+        return Result.ok(deviceService.deviceList());
     }
 
     @ApiOperation("根据id查询平板设备")

+ 6 - 0
src/main/java/com/om/controller/admin/DiagnosisVersionInfoController.java

@@ -99,6 +99,12 @@ public class DiagnosisVersionInfoController {
         return dvIoService.upStatus(id);
     }
 
+    @GetMapping("/push")
+    @ApiOperation("推送诊断程序")
+    public Result pushDiagnosis(@RequestParam Integer id) {
+        return dvIoService.pushDiagnosis(id);
+    }
+
 
 
 

+ 6 - 0
src/main/java/com/om/controller/admin/VciInfoController.java

@@ -72,4 +72,10 @@ public class VciInfoController {
         return vciInfoService.getPageList(dto);
     }
 
+    @GetMapping("/push")
+    @ApiOperation("推送VCI固件更新")
+    public Result pushVCI(@RequestParam Integer id) {
+        return vciInfoService.pushVCI(id);
+    }
+
 }

+ 0 - 2
src/main/java/com/om/entity/dto/Describe.java

@@ -12,8 +12,6 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class Describe implements Serializable {
 
-    @ApiModelProperty(value = "id")
-    private String id;
 
     @ApiModelProperty(value = "语言")
     private String language;

+ 42 - 1
src/main/java/com/om/entity/dto/VehicleInfo.java

@@ -1,5 +1,6 @@
 package com.om.entity.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -12,5 +13,45 @@ import java.util.List;
 @AllArgsConstructor
 public class VehicleInfo implements Serializable {
 
-    private List<VehicleData> vehicleDatas;
+    @ApiModelProperty(value = "品牌编号")
+    private String brandCode;
+
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
+
+    @ApiModelProperty(value = "文件大小")
+    private long fileSize;
+
+    @ApiModelProperty(value = "版本号")
+    private String version;
+
+    @ApiModelProperty(value = "版本描述")
+    private String description;
+
+    @ApiModelProperty(value = "首字母")
+    private String sortLetter;
+
+    @ApiModelProperty(value = "0:测试版  1:发布版")
+    private int lifecycle;
+
+    @ApiModelProperty(value = "功能名")
+    private String functionName;
+
+    @ApiModelProperty(value = "品牌英文名称")
+    private String brandNameEn;
+
+    @ApiModelProperty(value = "文件 md5")
+    private String md5;
+
+    @ApiModelProperty(value = "下载路径")
+    private String url;
+
+    @ApiModelProperty(value = "0:强制更新  1:不强制")
+    private String isUpdate;
+
+    @ApiModelProperty(value = "解密秘钼")
+    private String key;
+
+    @ApiModelProperty(value = "描述集合")
+    private List<Describe> describeList;
 }

+ 5 - 0
src/main/java/com/om/service/IDeviceService.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.om.entity.vo.DeviceQueryPageVO;
 import com.om.utils.Result;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -17,4 +19,7 @@ import com.om.utils.Result;
 public interface IDeviceService extends IService<Device> {
 
     Result<DeviceQueryPageVO> getPageList(DeviceQueryPageDTO dto);
+
+    List<String> deviceList();
+
 }

+ 2 - 0
src/main/java/com/om/service/IDiagnosisVersionInfoService.java

@@ -44,4 +44,6 @@ public interface IDiagnosisVersionInfoService extends IService<DiagnosisVersionI
     Result upStatus(Integer id);
 
     Result<List<VehicleDates>> diagnosisVersionInfoUpdate(AppDiagVersionUpdateDTO dto);
+
+    Result pushDiagnosis(Integer id);
 }

+ 2 - 0
src/main/java/com/om/service/IVciInfoService.java

@@ -36,4 +36,6 @@ public interface IVciInfoService extends IService<VciInfo> {
     Result<VciQueryPageVO> getPageList(VciQueryPageDTO dto);
 
     Result<AppSDKVO> VciUpdate(AppBaseDTO dto);
+
+    Result pushVCI(Integer id);
 }

+ 9 - 0
src/main/java/com/om/service/impl/DeviceServiceImpl.java

@@ -14,7 +14,9 @@ import com.om.utils.Result;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -59,4 +61,11 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
         vo.setRecords(records);
         return Result.ok(vo);
     }
+
+    @Override
+    public List<String> deviceList() {
+        List<Device> deviceList = this.list();
+        List<String> collect = deviceList.stream().map(c -> c.getDeviceSn()).distinct().collect(Collectors.toList());
+        return collect;
+    }
 }

+ 78 - 1
src/main/java/com/om/service/impl/DiagnosisVersionInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.om.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.PageUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.obs.services.model.TemporarySignatureRequest;
@@ -11,6 +12,7 @@ import com.om.entity.vo.DiagnosisVersionSearchVO;
 import com.om.entity.vo.DiagnosisVersionVO;
 import com.om.entity.vo.DignosisPageVO;
 import com.om.exception.BadReqException;
+import com.om.exception.BizException;
 import com.om.mapper.DiagnosisVersionDescribeMapper;
 import com.om.mapper.DiagnosisVersionInfoMapper;
 import com.om.service.*;
@@ -30,6 +32,7 @@ import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -60,6 +63,9 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
     @Resource
     private HuaweiObsUtil obsUtil;
 
+    @Resource
+    private PushUtil pushUtil;
+
     @Override
     @Transactional
     public Result add(DiagnosisVersionVO diagnosisVersionVO) {
@@ -240,7 +246,13 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
             String[] s = new String[diagClients.size()];
 
             for (int j = 0; j < diagClients.size(); j++) {
-                s[j] = diagClients.get(j).getClientName();
+                Client client = clientService.lambdaQuery()
+                        .eq(Client::getNumber, diagClients.get(j).getClientNum())
+                        .one();
+                if (BeanUtil.isEmpty(client)){
+                    throw new BadReqException("该客户端编号"+diagClients.get(j).getClientNum()+"不存在");
+                }
+                s[j] = client.getName();
             }
             //传入客户端num
             versionVO.setClientNames(s);
@@ -388,6 +400,71 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
         return Result.ok(voList);
     }
 
+    @Override
+    public Result pushDiagnosis(Integer id) {
+        DiagnosisVersionInfo diagnosisVersionInfo = this.getById(id);
+        if (BeanUtil.isEmpty(diagnosisVersionInfo)) {
+            throw new BadReqException("该诊断程序不存在");
+        }
+
+        PushInfo pushInfo = new PushInfo();
+        pushInfo.setPushInfoType(2);
+        VehicleInfo vehicleInfo = new VehicleInfo();
+
+       BeanUtil.copyProperties(diagnosisVersionInfo, vehicleInfo);
+        Brand brand = brandService.lambdaQuery()
+                .eq(Brand::getBrandCode,diagnosisVersionInfo.getBrandCode())
+                .one();
+        if (BeanUtil.isEmpty(brand)) {
+            throw new BadReqException("该品牌"+diagnosisVersionInfo.getBrandCode()+"不存在");
+        }
+        vehicleInfo.setBrandName(brand.getBrandCn());
+        vehicleInfo.setBrandNameEn(brand.getBrandEn());
+        vehicleInfo.setSortLetter(diagnosisVersionInfo.getDiagnosisName().substring(0,1));
+        vehicleInfo.setUrl(diagnosisVersionInfo.getSavePath());
+        List<Describe> describeList = new ArrayList<>();
+        List<DiagnosisVersionDescribe> diagnosisVersionDescribes = describeService.lambdaQuery()
+                .eq(DiagnosisVersionDescribe::getDiagnosisId, diagnosisVersionInfo.getId())
+                .list();
+        if (!diagnosisVersionDescribes.isEmpty()) {
+            for (DiagnosisVersionDescribe diagnosisVersionDescribe : diagnosisVersionDescribes) {
+                Describe describe = new Describe();
+                describe.setDescription(diagnosisVersionDescribe.getDescription());
+                describe.setLanguage(diagnosisVersionDescribe.getLanguage());
+                describeList.add(describe);
+            }
+        }
+        vehicleInfo.setDescribeList(describeList);
+
+
+        List<DiagClients> diagClients = diagClientsService.lambdaQuery()
+                .eq(DiagClients::getDiagId, diagnosisVersionInfo.getId())
+                .list();
+
+        if (!diagClients.isEmpty()) {
+            List<String> clientNums = diagClients.stream().map(c -> c.getClientNum()).collect(Collectors.toList());
+            String[] tokens = new String[clientNums.size()];
+            for (String clientNum : clientNums) {
+                int i = 0;
+                Client client = clientService.lambdaQuery()
+                        .eq(Client::getNumber, clientNum)
+                        .one();
+                if (BeanUtil.isNotEmpty(client)) {
+                    tokens[i] = client.getDeviceToken();
+                    i++;
+                }
+            }
+            //调用工具类
+            pushInfo.setJson(JSONUtil.parseObj(vehicleInfo));
+            try {
+                pushUtil.sendAndroidListcastJSON(tokens,pushInfo);
+            } catch (Exception e) {
+                throw new BizException("推送失败!!!");
+            }
+        }
+        return Result.ok();
+    }
+
     @Override
     public Result getDesc(DiagnosisVersionVO diagnosisVersionVO) {
         return null;

+ 16 - 1
src/main/java/com/om/service/impl/VciInfoServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.om.entity.dto.AppBaseDTO;
 import com.om.entity.dto.GuidDTO;
+import com.om.entity.dto.PushInfo;
 import com.om.entity.dto.VciQueryPageDTO;
 import com.om.entity.po.*;
 import com.om.entity.vo.*;
@@ -311,7 +312,21 @@ public class VciInfoServiceImpl extends ServiceImpl<VciInfoMapper, VciInfo> impl
         return Result.ok(appSDKVO);
     }
 
-   
+    @Override
+    public Result pushVCI(Integer id) {
+        VciInfo vciInfo = this.getById(id);
+        if (BeanUtil.isEmpty(vciInfo)){
+            throw new BadReqException("该VCI设备不存在");
+        }
+
+        PushInfo pushInfo = new PushInfo();
+        pushInfo.setPushInfoType(3);
+
+        com.om.entity.dto.VciInfo vciInfo1 = new com.om.entity.dto.VciInfo();
+        List<SDKData> sdkData = new ArrayList<>();
+        List<AppData> appData = new ArrayList<>();
+        return null;
+    }
 
 
 }