Ver código fonte

诊断报告接口修改

bmmx 1 ano atrás
pai
commit
795a61dbce

+ 1 - 1
.idea/JavaSceneConfigState.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="SmartInputSourceJavaSceneConfigState">
-    <option name="customChineseScenes" value="{&quot;capsLockState&quot;:false,&quot;code&quot;:&quot;;ApiModelProperty(value);debug(s);Api(tags);info(s);BizException(message);ApiOperation();BadReqException(message)&quot;,&quot;enable&quot;:true,&quot;languageType&quot;:&quot;CHINESE&quot;,&quot;name&quot;:&quot;自定义中文切换&quot;,&quot;tip&quot;:&quot;&quot;}" />
+    <option name="customChineseScenes" value="{&quot;capsLockState&quot;:false,&quot;code&quot;:&quot;;debug(s);info(s);BizException(message);ApiModelProperty(value);getHeader(s);println(x);BadReqException(message);ApiOperation();Api(tags);GetMapping()&quot;,&quot;enable&quot;:true,&quot;languageType&quot;:&quot;CHINESE&quot;,&quot;name&quot;:&quot;自定义中文切换&quot;,&quot;tip&quot;:&quot;&quot;}" />
   </component>
 </project>

+ 2 - 1
src/main/java/com/om/controller/admin/RepairController.java

@@ -4,6 +4,7 @@ package com.om.controller.admin;
 import com.om.entity.dto.RepairDTO;
 import com.om.entity.dto.RepairQueryPageDTO;
 import com.om.entity.vo.RepairQueryPageVO;
+import com.om.entity.vo.RepairVO;
 import com.om.service.IRepairService;
 import com.om.utils.Result;
 import io.swagger.annotations.Api;
@@ -43,7 +44,7 @@ public class RepairController {
     }
     @GetMapping("/getById")
     @ApiOperation("获取指定指定报告")
-    Result  getById(@RequestParam Integer id){
+    Result<RepairVO>  getById(@RequestParam Integer id){
 
         return repairService.getByIds(id);
     }

+ 1 - 1
src/main/java/com/om/controller/user/APPRepairController.java

@@ -45,7 +45,7 @@ public class APPRepairController {
     @PostMapping("/delete")
     @ApiOperation("获取诊断报告列表")
     public Result delete(@RequestParam Integer id){
-        return repairService.AppDelete(id);
+        return repairService.delete(id);
     }
 
 }

+ 3 - 0
src/main/java/com/om/entity/dto/APPReportCreateDTO.java

@@ -32,6 +32,9 @@ public class APPReportCreateDTO {
     @ApiModelProperty(value = "诊断路径")
     private String diagnosticPath;
 
+    @ApiModelProperty(value = "报告编号")
+    private String repairNum;
+
 
     @ApiModelProperty(value = "激活的系统集合")
     private List<AppElectronicDTO> electronicControls;

+ 7 - 3
src/main/java/com/om/entity/dto/ElectronicControls.java

@@ -2,14 +2,18 @@ package com.om.entity.dto;
 
 import com.om.entity.po.EcuInfo;
 import com.om.entity.po.FaultCode;
+import com.om.entity.vo.EcuInfos;
+import com.om.entity.vo.FaultCodes;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+
 @Data
 @NoArgsConstructor
 public class ElectronicControls {
 
-    EcuInfo ecuInfo;
-    String electronicControlName;
-    FaultCode faultCode;
+   private List<EcuInfo> ecuInfo;
+   private String electronicControlName;
+   private List<FaultCode> faultCode;
 }

+ 0 - 10
src/main/java/com/om/entity/dto/RepairDTO.java

@@ -14,8 +14,6 @@ public class RepairDTO  {
     private String carInfoTitle;
     private String company;
     private String companyTitle;
-    private LocalDateTime createTime;
-    private String createTimeStr;
     private String diagnosticDetailsTitle;
     private String diagnosticPath;
     private String diagnosticReportTitle;
@@ -33,25 +31,17 @@ public class RepairDTO  {
     private String modeYear;
     private String modeYearTitle;
     private String normalSystemTitle;
-    private Integer pageIndex;
-    private Integer pageSize;
 
-    private ReportTitleDto reportTitleDto;
-    private Integer sequence;
     private String sn;
     private String snTitle;
     private Integer state;
     private String telephone;
     private String telephoneTitle;
     private String title;
-    private LocalDateTime updateTime;
     private String versionInfoTitle;
     private String vin;
     private String vinTitle;
 
 
 
-
-
-
 }

+ 3 - 0
src/main/java/com/om/entity/po/Admin.java

@@ -3,6 +3,7 @@ package com.om.entity.po;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -55,9 +56,11 @@ public class Admin implements Serializable {
     private Boolean enabled;
 
     @ApiModelProperty(value = "管理员账户创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "管理员账户更新时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "管理员权限")

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

@@ -77,5 +77,7 @@ public class DiagnosticLog implements Serializable {
     @ApiModelProperty(value = "车辆识别代码")
     private String vin;
 
+    @ApiModelProperty(value = "控制器信息")
+    private String controllerInformation;
 
 }

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

@@ -47,7 +47,7 @@ public class ElectronicControl implements Serializable {
     private String abnormalSystemTitle;
 
     @ApiModelProperty(value = "正常系统标题")
-    private String normalSystem;
+    private String normalSystemTitle;
 
 
 }

+ 6 - 2
src/main/java/com/om/entity/po/Repair.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+
+import com.om.entity.dto.ReportTitleDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -50,8 +52,8 @@ public class Repair implements Serializable {
     @ApiModelProperty(value = "诊断路径")
     private String diagnosticPath;
 
-    @ApiModelProperty(value = "关联的ElectronicControlDetails ID")
-    private Integer electronicControlId;
+    @ApiModelProperty(value = "关联的ElectronicControlDetails IDs")
+    private String electronicControlIds;
 
     @ApiModelProperty(value = "更新时间")
     private LocalDateTime updateTime;
@@ -68,6 +70,8 @@ public class Repair implements Serializable {
     @ApiModelProperty(value = "报告编号")
     private String repairNum;
 
+
+
     @ApiModelProperty(value = "状态")
     private Integer status;
 

+ 8 - 0
src/main/java/com/om/entity/vo/DiaLogQueryVO.java

@@ -3,6 +3,7 @@ package com.om.entity.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -32,6 +33,7 @@ public class DiaLogQueryVO {
     private String country;
 
     @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "日期文件夹名称")
@@ -41,15 +43,18 @@ public class DiaLogQueryVO {
     private String nameLog;
 
     @ApiModelProperty(value = "诊断日志保存时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime nameTimePoint;
 
     @ApiModelProperty(value = "记录时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime recordTime;
 
     @ApiModelProperty(value = "保存路径")
     private String savePath;
 
     @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime updateTime;
 
     @ApiModelProperty(value = "VCISn")
@@ -63,4 +68,7 @@ public class DiaLogQueryVO {
 
     @ApiModelProperty(value = "车辆识别代码")
     private String vin;
+
+    @ApiModelProperty(value = "控制器信息")
+    private String controllerInformation;
 }

+ 20 - 0
src/main/java/com/om/entity/vo/EcuInfos.java

@@ -0,0 +1,20 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class EcuInfos {
+    @ApiModelProperty(value = "EcuInfoID")
+    private Integer id;
+
+    @ApiModelProperty(value = "条目名称")
+    private String strCaption;
+
+    @ApiModelProperty(value = "值")
+    private String strInformation;
+}

+ 26 - 0
src/main/java/com/om/entity/vo/FaultCodes.java

@@ -0,0 +1,26 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class FaultCodes {
+    @ApiModelProperty(value = "FaultCodeID")
+    private Integer id;
+
+    @ApiModelProperty(value = "electronicControlName")
+    private String electronicControlName;
+
+    @ApiModelProperty(value = "故障代码")
+    private String faultCode;
+
+    @ApiModelProperty(value = "描述")
+    private String description;
+
+    @ApiModelProperty(value = "故障码状态")
+    private String status;
+}

+ 3 - 0
src/main/java/com/om/entity/vo/ManualVO.java

@@ -3,6 +3,7 @@ package com.om.entity.vo;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -32,10 +33,12 @@ public class ManualVO  implements Serializable {
   private String[] clientCode;
 
   @ApiModelProperty("创建时间")
+  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
   @TableField(value="createTime")
   private LocalDateTime createTime;
 
   @ApiModelProperty("最近修改时间")
   @TableField(value="updateTime")
+  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
   private LocalDateTime updateTime;
 }

+ 4 - 0
src/main/java/com/om/entity/vo/RepairCreateVO.java

@@ -1,5 +1,6 @@
 package com.om.entity.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.om.entity.dto.ElectronicControls;
 import com.om.entity.po.ElectronicControl;
 import lombok.Data;
@@ -13,7 +14,9 @@ public class RepairCreateVO {
 
     private String address;
     private String company;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime createTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime createTimeStr;
     private String diagnosticPath;
     private String disclaimer;
@@ -31,6 +34,7 @@ public class RepairCreateVO {
     private Integer state;
     private String telephone;
     private String title;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private LocalDateTime updateTime;
     private String vin;
 

+ 72 - 0
src/main/java/com/om/entity/vo/RepairVO.java

@@ -0,0 +1,72 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.om.entity.dto.ElectronicControls;
+import com.om.entity.dto.ReportTitleDto;
+import com.om.entity.po.ElectronicControl;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class RepairVO {
+
+    @ApiModelProperty(value = "诊断报告ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "主标题,如:诊断报告")
+    private String mainTitle;
+
+    @ApiModelProperty(value = "小标题,如车辆信息")
+    private String carInfoTitle;
+
+    @ApiModelProperty(value = "里程")
+    private String mileage;
+
+    @ApiModelProperty(value = "SN号")
+    private String sn;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "诊断路径")
+    private String diagnosticPath;
+
+    @ApiModelProperty(value = "electronicControlCount")
+    private Integer electronicControlCount;
+
+    @ApiModelProperty(value = "faultCodeCount")
+    private Integer faultCodeCount;
+
+    @ApiModelProperty(value = "electronicControls")
+    private List<ElectronicControls> electronicControls;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "用户名")
+    private String username;
+
+    @ApiModelProperty(value = "维修厂名称")
+    private String departmentName;
+
+    @ApiModelProperty(value = "报告编号")
+    private String repairNum;
+
+    @ApiModelProperty(value = "标题dto")
+    private ReportTitleDto reportTitleDto;
+
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+}

+ 1 - 0
src/main/java/com/om/mapper/RepairMapper.java

@@ -1,6 +1,7 @@
 package com.om.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.om.entity.po.Repair;
 
 /**
  * <p>

+ 3 - 1
src/main/java/com/om/service/IRepairService.java

@@ -5,8 +5,10 @@ import com.om.entity.dto.APPReportCreateDTO;
 import com.om.entity.dto.RepairDTO;
 import com.om.entity.dto.RepairQueryPageDTO;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.po.Repair;
 import com.om.entity.vo.AppRepairQueryPageVO;
 import com.om.entity.vo.RepairQueryPageVO;
+import com.om.entity.vo.RepairVO;
 import com.om.utils.Result;
 
 /**
@@ -32,7 +34,7 @@ public interface IRepairService extends IService<Repair> {
 
     Result delete(Integer id);
 
-    Result getByIds(Integer reportId);
+    Result<RepairVO> getByIds(Integer id);
 
     Result<RepairQueryPageVO> getPageList(RepairQueryPageDTO dto);
 

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

@@ -139,7 +139,7 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         int day = now.getDayOfMonth();
 
         List<String> downloadUrls = new ArrayList<>();
-        String prefix = DIAGNOSTIC_LOG_PREFIX + "/" + year + "/" + monthValue + "/" + day;
+        String prefix = DIAGNOSTIC_LOG_PREFIX;
         for (DiagnosticLog diagnosticLog : diagnosticLogs) {
             String nameLog = diagnosticLog.getNameLog();
 
@@ -165,7 +165,7 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         int year = now.getYear();
         int monthValue = now.getMonthValue();
         int day = now.getDayOfMonth();
-        String prefix = DIAGNOSTIC_LOG_PREFIX + "/" + year + "/" + monthValue + "/" + day;
+        String prefix = DIAGNOSTIC_LOG_PREFIX;
         //获取下载链接
         String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
         return Result.ok(downloadUrl);

+ 130 - 111
src/main/java/com/om/service/impl/RepairServiceImpl.java

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.om.utils.Result;
 import com.om.utils.UserContext;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -53,6 +54,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
     @Transactional
     public Result AppCreateReport(APPReportCreateDTO dto) {
         Integer userId = UserContext.getUserId();
+        User user = userService.getById(userId);
         // 判断数据、
         if (BeanUtil.isEmpty(dto)) {
             throw new BadReqException("数据为空");
@@ -61,6 +63,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
         Repair repair = BeanUtil.copyProperties(dto, Repair.class);
         List<AppElectronicDTO> electronicControls = dto.getElectronicControls();
 
+        List<Integer> eleIds = new ArrayList<>();
         List<ElectronicControl> electronicControlList = new ArrayList<>();
         for (AppElectronicDTO electronicControlDTO : electronicControls) {
             ElectronicControl electronicControl = BeanUtil.copyProperties(electronicControlDTO, ElectronicControl.class);
@@ -78,14 +81,23 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
             for (FaultCode faultCode : faultCodes1) {
                 faultCode.setElectronicControlId(electronicControl.getId());
             }
-            
-            repair.setElectronicControlId(electronicControl.getId());
+
+            eleIds.add(electronicControl.getId());
+
             ecuInfoService.saveBatch(ecuInfos);
             faultCodeService.saveBatch(faultCodes1);
 
         }
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < eleIds.size(); i++) {
+            sb.append(eleIds);
+            if (i != eleIds.size() - 1) {
+                sb.append(",");
+            }
+        }
+        repair.setElectronicControlIds(sb.toString());
         electronicControlService.saveBatch(electronicControlList);
-        repair.setUserId(userId);
+        repair.setUsername(user.getUsername());
         this.save(repair);
         return Result.ok();
     }
@@ -93,7 +105,8 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
     @Override
     public Result<AppRepairQueryPageVO> AppGetPageList(APPRepairQueryPageDTO dto) {
         Integer userId = UserContext.getUserId();
-        if (userId==null){
+        User user = userService.getById(userId);
+        if (BeanUtil.isEmpty(user)) {
             throw new BizException("用户不存在");
         }
         //获取数据
@@ -103,7 +116,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
         //分页查询
         Page<Repair> page = this.lambdaQuery()
                 .orderByDesc(Repair::getCreateTime)
-                .eq(Repair::getUserId,userId)
+                .eq(Repair::getUsername, user.getUsername())
                 .page(new Page<>(pageIndex, pageSize));
 
         if (BeanUtil.isEmpty(page)) {
@@ -129,13 +142,18 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
             diagnosticReportVO.setDiagnosticReportId(record.getId());
             diagnosticReportVO.setDiagnosticReportName(record.getMainTitle());
             diagnosticReportVO.setFileName(record.getFileName());
-            Integer electronicControlId = record.getElectronicControlId();
+            String electronicControlIds = record.getElectronicControlIds();
 
-            List<FaultCode> faultCodeList = faultCodeService.lambdaQuery()
-                    .eq(FaultCode::getElectronicControlId, electronicControlId)
-                    .list();
+            List<Integer> eleIds = Arrays.stream(electronicControlIds.split(","))
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
 
-            diagnosticReportVO.setFaultCodesNumber(String.valueOf(faultCodeList.size()));
+            for (Integer eleId : eleIds) {
+                List<FaultCode> faultCodeList = faultCodeService.lambdaQuery()
+                        .eq(FaultCode::getElectronicControlId, eleId)
+                        .list();
+                diagnosticReportVO.setFaultCodesNumber(String.valueOf(faultCodeList.size()));
+            }
 
             list.add(diagnosticReportVO);
         }
@@ -144,132 +162,100 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
         return Result.ok(vo);
     }
 
-    @Override
-    @Transactional
-    public Result AppDelete(Integer id) {
-        Integer userId = UserContext.getUserId();
-        if (userId==null){
-            throw new BizException("用户不存在");
-        }
-        //根据id查询
-        Repair repair = this.getById(id);
-        if (BeanUtil.isEmpty(repair)) {
-            throw new BadReqException("该诊断报告不存在");
-        }
-        if (!Objects.equals(repair.getUserId(), userId)){
-            throw new BadReqException("不能删除他人的诊断报告");
-        }
-        Integer electronicControlId = repair.getElectronicControlId();
-
-        List<FaultCode> faultCodeList = faultCodeService.lambdaQuery()
-                .eq(FaultCode::getElectronicControlId, electronicControlId)
-                .list();
-        List<Integer> faultCodeIds = faultCodeList.stream().map(c -> c.getId()).collect(Collectors.toList());
-
-
-        List<EcuInfo> ecuInfos = ecuInfoService.lambdaQuery()
-                .eq(EcuInfo::getElectronicControlId, electronicControlId)
-                .list();
-
-        List<Integer> ecuIds = ecuInfos.stream().map(c -> c.getId()).collect(Collectors.toList());
-        faultCodeService.removeByIds(faultCodeIds);
-        ecuInfoService.removeByIds(ecuIds);
-
-        electronicControlService.removeById(electronicControlId);
-        this.removeById(id);
-        return Result.ok();
-    }
-
-
-
-
 
 
     @Override
+    @Transactional
     public Result create(RepairDTO repairDTO) {
-
         Repair repair = new Repair();
-        int eleId = new Random(100000000).nextInt();
-        repair.setElectronicControlId(eleId);
-        BeanUtil.copyProperties(repairDTO,repair);
-        boolean repairBoolean = this.save(repair);
-
-        ElectronicControl ele = new ElectronicControl();
-        ele.setId(eleId);
-        ele.setElectronicControlName(repairDTO.getElectronicControls().getElectronicControlName());
-        BeanUtil.copyProperties(repairDTO.getReportTitleDto(),ele);
-        boolean eleBoolean = electronicControlService.save(ele);
 
-        EcuInfo ecuInfo = new EcuInfo();
-        BeanUtil.copyProperties(repairDTO.getElectronicControls().getEcuInfo(),ecuInfo);
-        ecuInfo.setElectronicControlId(eleId);
-        boolean ecuBoolean = ecuInfoService.save(ecuInfo);
-
-        FaultCode faultCode = new FaultCode();
-        BeanUtil.copyProperties(repairDTO.getElectronicControls().getFaultCode(),faultCode);
-        faultCode.setElectronicControlId(eleId);
-        boolean fauBoolean = faultCodeService.save(faultCode);
-
-        //此处需要做一个事务回滚
-        //如果四个有一个添加失败,则进行事务回滚
-
-        //如果没有,则证明成功
-        Integer userId = UserContext.getUserId();
-        User user = userService.getById(userId);
-        RepairCreateVO createVO = new RepairCreateVO();
-        BeanUtil.copyProperties(user,createVO);
+        BeanUtil.copyProperties(repairDTO,repair);
 
 
-        //这里需要做个返回
-        //出现问题,所指的地址分别是啥
         return Result.ok();
 
 
     }
 
     @Override
+    @Transactional
     public Result delete(Integer id) {
         Repair repair = this.getById(id);
-        if (repair == null){
+        if (repair == null) {
             throw new BadReqException("删除错误");
         }
-        this.removeById(id);
-        Integer eleId = repair.getElectronicControlId();
-        electronicControlService.removeById(id);
 
-        QueryWrapper<EcuInfo> ecuQueryWrapper = new QueryWrapper<EcuInfo>();
-        QueryWrapper<FaultCode> fauQueryWrapper = new QueryWrapper<FaultCode>();
-        ecuQueryWrapper.lambda().eq(EcuInfo::getElectronicControlId,eleId);
-        fauQueryWrapper.lambda().eq(FaultCode::getElectronicControlId,eleId);
-        removeById(id);
-        ecuInfoService.remove(ecuQueryWrapper);
-        faultCodeService.remove(fauQueryWrapper);
+        String electronicControlIds = repair.getElectronicControlIds();
+        List<Integer> eleIds = Arrays.stream(electronicControlIds.split(","))
+                .map(Integer::parseInt)
+                .collect(Collectors.toList());
+
+        for (Integer eleId : eleIds) {
+            List<Integer> faultIds = faultCodeService.lambdaQuery()
+                    .eq(FaultCode::getElectronicControlId, eleId)
+                    .list().stream().map(c -> c.getId()).collect(Collectors.toList());
+
+            List<Integer> ecuIds = ecuInfoService.lambdaQuery()
+                    .eq(EcuInfo::getElectronicControlId, eleId)
+                    .list().stream().map(c -> c.getId()).collect(Collectors.toList());
+
+            faultCodeService.removeByIds(faultIds);
+            ecuInfoService.removeByIds(ecuIds);
+        }
+        electronicControlService.removeByIds(eleIds);
+        this.removeById(id);
 
 
         return Result.ok();
     }
 
     @Override
-    public Result getByIds(Integer reportId) {
-        Repair repair = this.getById(reportId);
-        if (repair == null){
+    public Result<RepairVO> getByIds(Integer id) {
+        Repair repair = this.getById(id);
+        if (repair == null) {
             throw new BadReqException("查询错误");
         }
-        Integer eleId = repair.getElectronicControlId();
-        ElectronicControl ele = electronicControlService.getById(eleId);
-        QueryWrapper<EcuInfo> ecuQueryWrapper = new QueryWrapper<>();
-        QueryWrapper<FaultCode> fauQueryWrapper = new QueryWrapper<>();
-        ecuQueryWrapper.lambda().eq(EcuInfo::getElectronicControlId,eleId);
-        fauQueryWrapper.lambda().eq(FaultCode::getElectronicControlId,eleId);
-        EcuInfo ecu = ecuInfoService.getOne(ecuQueryWrapper);
-        FaultCode faultCode = faultCodeService.getOne(fauQueryWrapper);
-
-        RepairCreateVO repairCreateVO = new RepairCreateVO();
-        BeanUtil.copyProperties(repair,repairCreateVO);
-        BeanUtil.copyProperties(ecu,repairCreateVO.getElectronicControls().getEcuInfo());
-        BeanUtil.copyProperties(faultCode,repairCreateVO.getElectronicControls().getFaultCode());
-        repairCreateVO.getElectronicControls().setElectronicControlName(ele.getElectronicControlName());
-        return Result.ok(repairCreateVO);
+
+        String electronicControlIds = repair.getElectronicControlIds();
+        RepairVO vo = new RepairVO();
+        List<Integer> eleIds = Arrays.stream(electronicControlIds.split(","))
+                .map(Integer::parseInt)
+                .collect(Collectors.toList());
+
+        BeanUtil.copyProperties(repair, vo);
+        ReportTitleDto reportTitleDto = new ReportTitleDto();
+        BeanUtil.copyProperties(repair,reportTitleDto);
+
+        List<ElectronicControls> electronicControlsList = new ArrayList<>();
+        int eleCount = 0;
+        int faultCount = 0;
+        for (Integer eleId : eleIds) {
+            ElectronicControls electronicControls = new ElectronicControls();
+            ElectronicControl electronicControl = electronicControlService.getById(eleId);
+
+            BeanUtil.copyProperties(electronicControl,reportTitleDto);
+            electronicControls.setElectronicControlName(electronicControl.getElectronicControlName());
+
+            List<EcuInfo> list = ecuInfoService.lambdaQuery()
+                    .eq(EcuInfo::getElectronicControlId, eleId)
+                    .list();
+            electronicControls.setEcuInfo(list);
+
+            List<FaultCode> faultCodeList = faultCodeService.lambdaQuery()
+                    .eq(FaultCode::getElectronicControlId, eleId)
+                    .list();
+            electronicControls.setFaultCode(faultCodeList);
+
+            electronicControlsList.add(electronicControls);
+            eleCount++;
+            faultCount += faultCodeList.size();
+        }
+        vo.setElectronicControls(electronicControlsList);
+        vo.setElectronicControlCount(eleCount);
+        vo.setFaultCodeCount(faultCount);
+        vo.setReportTitleDto(reportTitleDto);
+
+        return Result.ok(vo);
     }
 
     @Override
@@ -281,7 +267,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
         LocalDateTime beginTime = dto.getBeginTime();
         LocalDateTime endTime = dto.getEndTime();
         String searchNum = dto.getSearchNum();
-       // String searchVIN = dto.getSearchVIN();
+        // String searchVIN = dto.getSearchVIN();
         String searchDistributor = dto.getSearchDistributor();
 
         //分页查询
@@ -300,9 +286,42 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
         vo.setPages((int) page.getPages());
         vo.setTotal((int) page.getTotal());
 
+        if (StringUtils.isNotBlank(searchNum) || StringUtils.isNotBlank(searchDistributor) || beginTime != null || endTime != null) {
+            vo.setSearchCount(true);
+        }
 
+        List<Repair> records = page.getRecords();
+        List<QueryRepairVO> queryRepairVOList = new ArrayList<>();
+        for (Repair record : records) {
+            QueryRepairVO queryRepairVO = BeanUtil.copyProperties(record, QueryRepairVO.class);
 
-        return Result.ok();
+            String electronicControlIds = record.getElectronicControlIds();
+            List<Integer> eleIds = Arrays.stream(electronicControlIds.split(","))
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+            List<ElectronicControl> electronicControlList = electronicControlService.listByIds(eleIds);
+
+            //查询系统数量
+            queryRepairVO.setSystemCount(electronicControlList.size());
+
+
+            int faultCount = 0;
+            for (ElectronicControl electronicControl : electronicControlList) {
+                List<FaultCode> faultCodeList = faultCodeService.lambdaQuery()
+                        .eq(electronicControl != null, FaultCode::getElectronicControlId, electronicControl.getId())
+                        .list();
+
+                faultCount += faultCodeList.size();
+            }
+            //查询故障数量
+            queryRepairVO.setFaultCount(faultCount);
+            queryRepairVOList.add(queryRepairVO);
+        }
+
+        vo.setRecords(queryRepairVOList);
+
+
+        return Result.ok(vo);
     }
 }
 

+ 17 - 1
src/test/java/com/om/ObsTest.java

@@ -1,11 +1,15 @@
 package com.om;
 
+import com.om.service.IDiagnosticLogService;
 import com.om.utils.HuaweiObsUtil;
+import com.om.utils.Result;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
 
 import static com.om.constant.UploadConstant.DIAGNOSTIC_LOG_PREFIX;
 
@@ -15,13 +19,25 @@ public class ObsTest {
     @Resource
     private HuaweiObsUtil huaweiObsUtil;
 
+    @Resource
+    private IDiagnosticLogService diagnosticLogService;
+
     @Test
     public void UploadTest(){
 
         String prefix = DIAGNOSTIC_LOG_PREFIX ;
         String uploadUrl = huaweiObsUtil.getUploadUrl(
-                "20230511_084854_Diagnosis_WulingNewEnergy_V1_0_0_44_VCU_Vehicle_Control.txt",
+                "20230511_170907_诊断_五菱新能源_V1_0_0_44_MCU_驱动电机.txt",
                 prefix);
         System.out.println(uploadUrl);
     }
+
+    @Test
+    public void UploadTest1(){
+        List<Integer> ids = new ArrayList<>();
+        ids.add(1);
+
+        Result result = diagnosticLogService.downloadFile(1);
+        System.out.println(result);
+    }
 }