Explorar o código

App端诊断日志上传

bmmx hai 1 ano
pai
achega
7b66161f9f

+ 29 - 0
src/main/java/com/om/controller/user/APPDiagnosticLogController.java

@@ -0,0 +1,29 @@
+package com.om.controller.user;
+
+
+import com.om.entity.dto.AppDiagLogDTO;
+import com.om.entity.dto.DiaLogQueryPageDTO;
+import com.om.entity.vo.DiaLogQueryPageVO;
+import com.om.service.IDiagnosticLogService;
+import com.om.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@Api(tags = "诊断日志相关接口")
+@RequestMapping("/web/diagnostic-log")
+public class APPDiagnosticLogController {
+
+    @Resource
+    private IDiagnosticLogService diagnosticLogService;
+
+    @ApiOperation("诊断日志上传")
+    @PostMapping
+    public Result updateDiagLog(@RequestBody AppDiagLogDTO dto){
+        return diagnosticLogService.updateDiagLog(dto);
+    }
+}

+ 23 - 0
src/main/java/com/om/entity/dto/AppDiagLogDTO.java

@@ -0,0 +1,23 @@
+package com.om.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+public class AppDiagLogDTO extends AppBaseDTO{
+
+    private List<DiagnoseLogVehicleInfo> vehicleInfo;
+
+    private String obsPath;
+
+
+}

+ 47 - 0
src/main/java/com/om/entity/dto/DiagnoseLogVehicleInfo.java

@@ -0,0 +1,47 @@
+package com.om.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+public class DiagnoseLogVehicleInfo {
+    @ApiModelProperty(value = "激活路径")
+    private String activePath;
+
+    @ApiModelProperty(value = "品牌")
+    private String brand;
+
+    @ApiModelProperty(value = "客户端ID")
+    private Integer clientId;
+
+    @ApiModelProperty(value = "Sn编码")
+    private String vciSn;
+
+    @ApiModelProperty(value = "日期文件夹名称")
+    private String nameDateDir;
+
+    @ApiModelProperty(value = "诊断日志文件名")
+    private String nameLog;
+
+    @ApiModelProperty(value = "诊断日志保存时间")
+    private LocalDateTime nameTimePoint;
+
+    @ApiModelProperty(value = "记录时间")
+    private LocalDateTime recordTime;
+
+    @ApiModelProperty(value = "保存路径")
+    private String savePath;
+
+    @ApiModelProperty(value = "车型ID")
+    private Integer vehicleId;
+
+    @ApiModelProperty(value = "车型")
+    private String vehicle;
+
+    @ApiModelProperty(value = "车辆识别代码")
+    private String vin;
+}

+ 1 - 1
src/main/java/com/om/entity/po/DiagnosticLog.java

@@ -69,7 +69,7 @@ public class DiagnosticLog implements Serializable {
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "VCI设备ID")
-    private String vciId;
+    private Integer vciId;
 
     @ApiModelProperty(value = "车型ID")
     private Integer vehicleId;

+ 3 - 0
src/main/java/com/om/service/IDiagnosticLogService.java

@@ -1,5 +1,6 @@
 package com.om.service;
 
+import com.om.entity.dto.AppDiagLogDTO;
 import com.om.entity.dto.DiaLogQueryPageDTO;
 import com.om.entity.po.DiagnosticLog;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -23,4 +24,6 @@ public interface IDiagnosticLogService extends IService<DiagnosticLog> {
     Result batchDownload(List<Integer> ids);
 
     Result downloadFile(Integer id);
+
+    Result updateDiagLog(AppDiagLogDTO dto);
 }

+ 41 - 0
src/main/java/com/om/service/impl/DiagnosticLogServiceImpl.java

@@ -3,7 +3,9 @@ package com.om.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.om.entity.dto.AppDiagLogDTO;
 import com.om.entity.dto.DiaLogQueryPageDTO;
+import com.om.entity.dto.DiagnoseLogVehicleInfo;
 import com.om.entity.po.*;
 import com.om.entity.vo.DiaLogQueryPageVO;
 import com.om.entity.vo.DiaLogQueryVO;
@@ -15,6 +17,7 @@ import com.om.utils.HuaweiObsUtil;
 import com.om.utils.Result;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
@@ -170,4 +173,42 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
         return Result.ok(downloadUrl);
     }
+
+    @Override
+    @Transactional
+    public Result updateDiagLog(AppDiagLogDTO dto) {
+        if (BeanUtil.isEmpty(dto)){
+            throw new BadReqException("参数为空!!");
+        }
+
+        String guid = dto.getGuid();
+
+        List<DiagnoseLogVehicleInfo> vehicleInfo = dto.getVehicleInfo();
+
+        for (DiagnoseLogVehicleInfo diagnoseLogVehicleInfo : vehicleInfo) {
+            DiagnosticLog diagnosticLog = BeanUtil.copyProperties(diagnoseLogVehicleInfo, DiagnosticLog.class);
+
+            VciInfo vciInfo = vciInfoService.lambdaQuery()
+                    .eq(VciInfo::getVciNum, diagnoseLogVehicleInfo.getVciSn())
+                    .one();
+            if (BeanUtil.isEmpty(vciInfo)){
+                throw new BadReqException("该vci设备不存在!!!");
+            }
+
+            Brand brand = brandService.lambdaQuery()
+                    .eq(Brand::getBrandCn, diagnoseLogVehicleInfo.getBrand())
+                    .one();
+            if (BeanUtil.isEmpty(brand)){
+                throw new BadReqException("该品牌不存在!!!");
+            }
+            diagnosticLog.setVciId(vciInfo.getId());
+            diagnosticLog.setBrandId(brand.getId());
+            diagnosticLog.setCreateTime(LocalDateTime.now());
+            diagnosticLog.setUpdateTime(LocalDateTime.now());
+            //todo 上传
+            this.save(diagnosticLog);
+        }
+
+        return Result.ok();
+    }
 }