Commit 528fe45f authored by wdy's avatar wdy

Merge branch 'dev' of http://gitlab.91isoft.com:90/wangfei/vehicle-quality-review into wangdingyi

parents 9a21c718 d0c033ae
...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
...@@ -17,6 +20,9 @@ import java.util.List; ...@@ -17,6 +20,9 @@ import java.util.List;
@ApiModel @ApiModel
@TableName(value ="t_review_details") @TableName(value ="t_review_details")
@Data @Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReviewDetails { public class ReviewDetails {
/** /**
......
package com.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 车企留档文件
* @TableName t_review_enterprise_archive
*/
@TableName(value ="t_review_enterprise_archive")
@Data
public class ReviewEnterpriseArchive implements Serializable {
@ApiModelProperty("主键")
@TableId(type = IdType.ASSIGN_ID)
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 文件名称
*/
private String fileName;
/**
* 文件版本
*/
private String version;
/**
* 发布日期
*/
private Date publishDate;
/**
* 文件状态
*/
private String status;
/**
* 文件识别号
*/
private String identifyNumber;
/**
* 存储位置
*/
private String storage;
/**
* 图片地址
*/
private String photo;
/**
* 关联到任务id
*/
private Long taskId;
}
\ No newline at end of file
...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
...@@ -17,6 +20,9 @@ import java.util.List; ...@@ -17,6 +20,9 @@ import java.util.List;
@ApiModel @ApiModel
@TableName(value ="t_review_keypoint") @TableName(value ="t_review_keypoint")
@Data @Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReviewKeyPoint { public class ReviewKeyPoint {
/** /**
......
...@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
...@@ -16,6 +19,9 @@ import lombok.experimental.Accessors; ...@@ -16,6 +19,9 @@ import lombok.experimental.Accessors;
@TableName(value ="t_review_scene") @TableName(value ="t_review_scene")
@Accessors(chain = true) @Accessors(chain = true)
@Data @Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReviewScene { public class ReviewScene {
/** /**
......
...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -18,10 +21,14 @@ import java.util.List; ...@@ -18,10 +21,14 @@ import java.util.List;
@ApiModel @ApiModel
@TableName(value ="t_review_standard") @TableName(value ="t_review_standard")
@Data @Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReviewStandard { public class ReviewStandard {
public static final String TYPE_SYSTEM = "system"; // 体系审查类型 public static final String TYPE_SYSTEM = "system"; // 体系审查类型
public static final String TYPE_CAR = "car"; // 车型审查类型 public static final String TYPE_CAR = "car"; // 车型审查类型
public static final String TYPE_TEST = "test"; // 车型试验类型
/** /**
* 主键 * 主键
...@@ -43,13 +50,18 @@ public class ReviewStandard { ...@@ -43,13 +50,18 @@ public class ReviewStandard {
@ApiModelProperty("章节") @ApiModelProperty("章节")
private String chapter; private String chapter;
/** /**
* 文本内容 * 文本内容
*/ */
@ApiModelProperty("文本内容") @ApiModelProperty("文本内容")
private String text; private String text;
/**
* 测试方法(车型试验专有)
*/
@ApiModelProperty("测试方法(车型试验专有)")
private String testMethod;
/** /**
* 要点列表 * 要点列表
*/ */
......
package com.ruoyi.domain; package com.ruoyi.domain;
import java.util.Date; import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.domain.vo.SampleTaskVo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -93,4 +95,6 @@ public class Sample extends BaseEntity ...@@ -93,4 +95,6 @@ public class Sample extends BaseEntity
/** 车企名称 */ /** 车企名称 */
@ApiModelProperty("车企名称") @ApiModelProperty("车企名称")
private String carCompanyName; private String carCompanyName;
private List<SampleTaskVo> taskSampleRelation;
} }
package com.ruoyi.domain.vo;
import lombok.Data;
import lombok.experimental.Accessors;
@Accessors(chain = true)
@Data
public class ReviewEnterpriseArchiveViewItemVO {
// 文件目录
private String catalogue;
// 标准章节
private String chapter;
// 标准要求
private String standard;
// 要点要求
private String keyPoint;
// 企业留档文件id
private Long archiveId;
}
package com.ruoyi.domain.vo;
import lombok.Data;
import java.util.List;
@Data
public class ReviewEnterpriseArchiveViewVO {
// 企业留档文件id
private Long id;
// 企业留档文件名称
private String fileName;
// 条目
private List<ReviewEnterpriseArchiveViewItemVO> items;
}
package com.ruoyi.domain.vo;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@ApiModel( description = "样品任务联查字段")
@AllArgsConstructor
@NoArgsConstructor
@Data
public class SampleTaskVo {
private Long taskId;
private Long SampleId;
private String taskName;
}
package com.ruoyi.mapper;
import com.ruoyi.domain.ReviewEnterpriseArchive;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewItemVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author wangfei
* @description 针对表【t_review_enterprise_archive(车企留档文件)】的数据库操作Mapper
* @createDate 2024-02-22 15:32:57
* @Entity com.ruoyi.domain.ReviewEnterpriseArchive
*/
@Repository
public interface ReviewEnterpriseArchiveMapper extends BaseMapper<ReviewEnterpriseArchive> {
List<ReviewEnterpriseArchive> findByTaskId(@Param("taskId") Long taskId);
List<ReviewEnterpriseArchiveViewItemVO> findViewItemVOByTaskId(@Param("taskId") Long taskId);
}
...@@ -2,6 +2,8 @@ package com.ruoyi.mapper; ...@@ -2,6 +2,8 @@ package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.ReviewStandard; import com.ruoyi.domain.ReviewStandard;
import com.ruoyi.web.request.ReviewStandardListByPageRequest;
import com.ruoyi.web.response.ReviewStandardResponse;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -12,4 +14,12 @@ import java.util.List; ...@@ -12,4 +14,12 @@ import java.util.List;
public interface ReviewStandardMapper extends BaseMapper<ReviewStandard> { public interface ReviewStandardMapper extends BaseMapper<ReviewStandard> {
List<ReviewStandard> findListByStandardIdAndType(@Param("standardId") Long standardId, @Param("type") String type); List<ReviewStandard> findListByStandardIdAndType(@Param("standardId") Long standardId, @Param("type") String type);
/**
* 查询标准列表
*
* @param request
* @return
*/
List<ReviewStandardResponse> selectReviewStandardList(ReviewStandardListByPageRequest request);
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.mapper; ...@@ -2,6 +2,7 @@ package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.TaskSampleRelation; import com.ruoyi.domain.TaskSampleRelation;
import com.ruoyi.domain.vo.SampleTaskVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -16,4 +17,9 @@ public interface TaskSampleRelationMapper extends BaseMapper<TaskSampleRelation> ...@@ -16,4 +17,9 @@ public interface TaskSampleRelationMapper extends BaseMapper<TaskSampleRelation>
* @return * @return
*/ */
List<TaskSampleRelation> selectByTaskId(@Param("taskId") Long taskId,@Param("flag") String flag); List<TaskSampleRelation> selectByTaskId(@Param("taskId") Long taskId,@Param("flag") String flag);
/**
* 根据样品id查询*/
List<SampleTaskVo> selectTaskBysampleId(@Param("idList") List<Long> idList);
} }
package com.ruoyi.service;
import com.ruoyi.domain.ReviewEnterpriseArchive;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO;
import java.util.List;
/**
* @author wangfei
* @description 针对表【t_review_enterprise_archive(车企留档文件)】的数据库操作Service
* @createDate 2024-02-22 15:32:57
*/
public interface ReviewEnterpriseArchiveService extends IService<ReviewEnterpriseArchive> {
List<ReviewEnterpriseArchiveViewVO> view(Long taskId);
}
...@@ -2,6 +2,9 @@ package com.ruoyi.service; ...@@ -2,6 +2,9 @@ package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.ReviewStandard; import com.ruoyi.domain.ReviewStandard;
import com.ruoyi.web.request.ReviewStandardListByPageRequest;
import com.ruoyi.web.response.ReviewStandardInspectionContentResponse;
import com.ruoyi.web.response.ReviewStandardResponse;
import java.util.List; import java.util.List;
...@@ -9,6 +12,27 @@ public interface ReviewStandardService extends IService<ReviewStandard> { ...@@ -9,6 +12,27 @@ public interface ReviewStandardService extends IService<ReviewStandard> {
void initData(List<ReviewStandard> reviewStandardList); void initData(List<ReviewStandard> reviewStandardList);
/**
* 查询标准树状结构
* @param standardId
* @param type
* @return
*/
List<ReviewStandard> findTree(Long standardId, String type); List<ReviewStandard> findTree(Long standardId, String type);
/**
* 分页查询标准列表
*
* @param request
* @return
*/
List<ReviewStandardResponse> listByPage(ReviewStandardListByPageRequest request);
/**
* 通过标准ID查询检验内容(树状结构)
*
* @param id
* @return
*/
ReviewStandardInspectionContentResponse selectInspectionContent(Long id);
} }
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.ReviewEnterpriseArchive;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewItemVO;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO;
import com.ruoyi.service.ReviewEnterpriseArchiveService;
import com.ruoyi.mapper.ReviewEnterpriseArchiveMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author wangfei
* @description 针对表【t_review_enterprise_archive(车企留档文件)】的数据库操作Service实现
* @createDate 2024-02-22 15:32:57
*/
@Service
public class ReviewEnterpriseArchiveServiceImpl extends ServiceImpl<ReviewEnterpriseArchiveMapper, ReviewEnterpriseArchive>
implements ReviewEnterpriseArchiveService {
@Autowired
private ReviewEnterpriseArchiveMapper reviewEnterpriseArchiveMapper;
@Override
public List<ReviewEnterpriseArchiveViewVO> view(Long taskId) {
List<ReviewEnterpriseArchive> archives = reviewEnterpriseArchiveMapper.findByTaskId(taskId);
List<ReviewEnterpriseArchiveViewItemVO> viewItems = reviewEnterpriseArchiveMapper.findViewItemVOByTaskId(taskId);
return buildReviewEnterpriseArchiveViewVO(archives, viewItems);
}
private List<ReviewEnterpriseArchiveViewVO> buildReviewEnterpriseArchiveViewVO(List<ReviewEnterpriseArchive> archives, List<ReviewEnterpriseArchiveViewItemVO> viewItems) {
List<ReviewEnterpriseArchiveViewVO> viewList = new ArrayList();
for(ReviewEnterpriseArchive archive : archives) {
ReviewEnterpriseArchiveViewVO view = new ReviewEnterpriseArchiveViewVO();
view.setId(archive.getId());
view.setFileName(archive.getFileName());
setReviewEnterpriseArchiveViewItemVO(view, viewItems);
viewList.add(view);
}
return viewList;
}
private void setReviewEnterpriseArchiveViewItemVO(ReviewEnterpriseArchiveViewVO view, List<ReviewEnterpriseArchiveViewItemVO> viewItems) {
List<ReviewEnterpriseArchiveViewItemVO> subList = new ArrayList();
Long archiveId = view.getId();
for(ReviewEnterpriseArchiveViewItemVO item : viewItems) {
if(item.getArchiveId().equals(archiveId)) {
subList.add(item);
}
}
view.setItems(subList);
}
}
...@@ -5,6 +5,9 @@ import com.ruoyi.common.utils.SnowflakeUtil; ...@@ -5,6 +5,9 @@ import com.ruoyi.common.utils.SnowflakeUtil;
import com.ruoyi.domain.*; import com.ruoyi.domain.*;
import com.ruoyi.mapper.ReviewStandardMapper; import com.ruoyi.mapper.ReviewStandardMapper;
import com.ruoyi.service.*; import com.ruoyi.service.*;
import com.ruoyi.web.request.ReviewStandardListByPageRequest;
import com.ruoyi.web.response.ReviewStandardInspectionContentResponse;
import com.ruoyi.web.response.ReviewStandardResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -35,6 +38,7 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper, ...@@ -35,6 +38,7 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper,
* @param type 问卷类型[system(体系审查),car(车型审查)] * @param type 问卷类型[system(体系审查),car(车型审查)]
* @return * @return
*/ */
@Override
public List<ReviewStandard> findTree(Long standardId, String type) { public List<ReviewStandard> findTree(Long standardId, String type) {
List<ReviewStandard> reviewStandardList = reviewStandardMapper.findListByStandardIdAndType(standardId, type); // 查询审查标准 List<ReviewStandard> reviewStandardList = reviewStandardMapper.findListByStandardIdAndType(standardId, type); // 查询审查标准
...@@ -46,6 +50,42 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper, ...@@ -46,6 +50,42 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper,
} }
/**
* 分页查询标准列表
*
* @return
*/
@Override
public List<ReviewStandardResponse> listByPage(ReviewStandardListByPageRequest request) {
List<ReviewStandardResponse> list = reviewStandardMapper.selectReviewStandardList(request);
return list;
}
/**
* 通过标准ID查询检验内容(树状结构)
*
* @param id
* @return
*/
@Override
public ReviewStandardInspectionContentResponse selectInspectionContent(Long id) {
// 模拟一个审查标准集合
ReviewStandard reviewStandard = ReviewStandard.builder().id(id).build();
List<ReviewStandard> reviewStandardList = new ArrayList<>();
reviewStandardList.add(reviewStandard);
// 查询审查要点
List<ReviewKeyPoint> reviewKeyPointList = reviewKeyPointService.findByStandardList(reviewStandardList);
// 查询审查细则
List<ReviewDetails> reivewDetailsList = reviewDetailsService.findByKeyPointsList(reviewKeyPointList);
// 查询审查场景
List<ReviewScene> reviewSceneList = reviewSceneService.findByDetailsList(reivewDetailsList);
List<ReviewDetails> reviewDetails = buildDetails(reivewDetailsList, reviewSceneList);
List<ReviewKeyPoint> keyPoints = buildKeyPoint(reviewKeyPointList, reviewDetails);
ReviewStandardInspectionContentResponse response = ReviewStandardInspectionContentResponse.builder().keyPointList(keyPoints).build();
return response;
}
/** /**
* 将审查 标准、要点、细则、场景 按照父子关系拆分写入到各自的表中 * 将审查 标准、要点、细则、场景 按照父子关系拆分写入到各自的表中
* @param reviewStandardList * @param reviewStandardList
......
package com.ruoyi.service.impl; package com.ruoyi.service.impl;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...@@ -7,7 +8,9 @@ import com.ruoyi.common.exception.ServiceException; ...@@ -7,7 +8,9 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.domain.Sample; import com.ruoyi.domain.Sample;
import com.ruoyi.domain.vo.SampleTaskVo;
import com.ruoyi.mapper.SampleManagementMapper; import com.ruoyi.mapper.SampleManagementMapper;
import com.ruoyi.mapper.TaskSampleRelationMapper;
import com.ruoyi.service.SampleManagementService; import com.ruoyi.service.SampleManagementService;
import com.ruoyi.web.request.SampleManagementRequest; import com.ruoyi.web.request.SampleManagementRequest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -27,6 +30,9 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap ...@@ -27,6 +30,9 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap
@Autowired @Autowired
private SampleManagementMapper sampleManagementMapper; private SampleManagementMapper sampleManagementMapper;
@Autowired
private TaskSampleRelationMapper taskSampleRelationMapper;
/** /**
* 查询样品管理 * 查询样品管理
* *
...@@ -48,7 +54,11 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap ...@@ -48,7 +54,11 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap
@Override @Override
public List<Sample> selectSampleManagementList(SampleManagementRequest sampleManagementRequest) public List<Sample> selectSampleManagementList(SampleManagementRequest sampleManagementRequest)
{ {
return sampleManagementMapper.selectSampleManagementList(sampleManagementRequest); List<Sample> list = sampleManagementMapper.selectSampleManagementList(sampleManagementRequest);
if(list.size()>0){
setSampleTask(list);
}
return list;
} }
/** /**
...@@ -106,4 +116,24 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap ...@@ -106,4 +116,24 @@ public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMap
public List<Sample> selectSampleList(SampleManagementRequest sampleManagementRequest){ public List<Sample> selectSampleList(SampleManagementRequest sampleManagementRequest){
return sampleManagementMapper.selectSampleList(sampleManagementRequest); return sampleManagementMapper.selectSampleList(sampleManagementRequest);
} }
/**
* 给样品的数据赋值任务集合*/
public void setSampleTask(List<Sample> sampleList){
List<Long> listId = new ArrayList<>();
for(Sample sample : sampleList){
listId.add(sample.getId());
}
List<SampleTaskVo> sampleTaskVoList = taskSampleRelationMapper.selectTaskBysampleId(listId);
for(Sample sample : sampleList){
List<SampleTaskVo> sampleTaskVos = new ArrayList<>();
for (SampleTaskVo sampleTaskVo : sampleTaskVoList){
if(sampleTaskVo.getSampleId().equals(sample.getId())){
sampleTaskVos.add(sampleTaskVo);
}
}
sample.setTaskSampleRelation(sampleTaskVos);
}
}
} }
package com.ruoyi.web;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.domain.ReviewStandard;
import com.ruoyi.service.ReviewStandardService;
import com.ruoyi.web.request.ReviewStandardInspectionContentRequest;
import com.ruoyi.web.request.ReviewStandardListByPageRequest;
import com.ruoyi.web.response.ReviewStandardInspectionContentResponse;
import com.ruoyi.web.response.ReviewStandardResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 检验内容库(标准)Controller层
* @author gxk
*/
@Api(tags = "检验内容库")
@RestController
@RequestMapping("/review/standard")
public class ReviewStandardController extends BaseController {
@Autowired
private ReviewStandardService reviewStandardService;
/**
* 分页查询标准(检验内容库)
* @return
*/
@Anonymous
@ApiOperation("分页查询标准(检验内容库)")
@PostMapping("/list")
public TableDataInfo<ReviewStandardResponse> listByPage(@Validated @RequestBody ReviewStandardListByPageRequest request) {
startPage(request);
List<ReviewStandardResponse> list = reviewStandardService.listByPage(request);
return getDataTable(list);
}
/**
* 根据标准主键ID查询树状结构
* @param request
* @return
*/
@ApiOperation("查询标准的检验内容")
@PostMapping("/getInspectionContent")
public R<ReviewStandardInspectionContentResponse> getInspectionContent(@Validated @RequestBody ReviewStandardInspectionContentRequest request) {
ReviewStandardInspectionContentResponse response = reviewStandardService.selectInspectionContent(request.getId());
return R.ok(response);
}
}
...@@ -42,11 +42,12 @@ public class SampleManagementController extends BaseController ...@@ -42,11 +42,12 @@ public class SampleManagementController extends BaseController
@Trace @Trace
@Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")})
@RequestMapping(method = RequestMethod.POST, value = "/list") @RequestMapping(method = RequestMethod.POST, value = "/list")
public TableDataInfo list(@Validated @RequestBody SampleManagementRequest request) public TableDataInfo<Sample> list(@Validated @RequestBody SampleManagementRequest request)
{ {
startPage(); startPage(request);
List<Sample> list = sampleManagementService.selectSampleManagementList(request); List<Sample> list = sampleManagementService.selectSampleManagementList(request);
return getDataTable(list); return getDataTable(list);
} }
/** /**
......
...@@ -7,6 +7,7 @@ import com.ruoyi.domain.Sample; ...@@ -7,6 +7,7 @@ import com.ruoyi.domain.Sample;
import com.ruoyi.domain.TestScenario; import com.ruoyi.domain.TestScenario;
import com.ruoyi.service.ITestScenarioService; import com.ruoyi.service.ITestScenarioService;
import com.ruoyi.web.request.TestScenarioRequest; import com.ruoyi.web.request.TestScenarioRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.skywalking.apm.toolkit.trace.Tag; import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags; import org.apache.skywalking.apm.toolkit.trace.Tags;
...@@ -20,10 +21,12 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -20,10 +21,12 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
@Api(tags = "测试场景")
@RestController @RestController
@RequestMapping("/system/scenario") @RequestMapping("/system/scenario")
public class TestScenarioController extends BaseController { public class TestScenarioController extends BaseController {
@Autowired @Autowired
private ITestScenarioService testScenarioService; private ITestScenarioService testScenarioService;
...@@ -34,8 +37,8 @@ public class TestScenarioController extends BaseController { ...@@ -34,8 +37,8 @@ public class TestScenarioController extends BaseController {
@Trace @Trace
@Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")})
@RequestMapping(method = RequestMethod.POST, value = "/getList") @RequestMapping(method = RequestMethod.POST, value = "/getList")
public TableDataInfo list(@Validated @RequestBody TestScenarioRequest testScenarioRequest){ public TableDataInfo<TestScenario> list(@Validated @RequestBody TestScenarioRequest testScenarioRequest){
startPage(); startPage(testScenarioRequest);
List<TestScenario> list = testScenarioService.selectTestScenarioList(testScenarioRequest); List<TestScenario> list = testScenarioService.selectTestScenarioList(testScenarioRequest);
return getDataTable(list); return getDataTable(list);
} }
......
...@@ -3,11 +3,10 @@ package com.ruoyi.web; ...@@ -3,11 +3,10 @@ package com.ruoyi.web;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.domain.TestScenario;
import com.ruoyi.domain.TestType; import com.ruoyi.domain.TestType;
import com.ruoyi.service.ITestTypeService; import com.ruoyi.service.ITestTypeService;
import com.ruoyi.web.request.TestScenarioRequest;
import com.ruoyi.web.request.TestTypeRequest; import com.ruoyi.web.request.TestTypeRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.skywalking.apm.toolkit.trace.Tag; import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags; import org.apache.skywalking.apm.toolkit.trace.Tags;
...@@ -21,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
@Api(tags = "测试类型")
@RestController @RestController
@RequestMapping("/system/type") @RequestMapping("/system/type")
public class TestTypeController extends BaseController { public class TestTypeController extends BaseController {
...@@ -28,22 +28,22 @@ public class TestTypeController extends BaseController { ...@@ -28,22 +28,22 @@ public class TestTypeController extends BaseController {
private ITestTypeService testTypeService; private ITestTypeService testTypeService;
/** /**
* 测试场景分页 * 查询测试类型分页
*/ */
@ApiOperation("查询测试场景分页查询") @ApiOperation("查询测试类型分页查询")
@Trace @Trace
@Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")})
@RequestMapping(method = RequestMethod.POST, value = "/getList") @RequestMapping(method = RequestMethod.POST, value = "/getList")
public TableDataInfo list(@Validated @RequestBody TestTypeRequest testTypeRequest){ public TableDataInfo<TestType> list(@Validated @RequestBody TestTypeRequest testTypeRequest){
startPage(); startPage(testTypeRequest);
List<TestType> list = testTypeService.selectTestTypeList(testTypeRequest); List<TestType> list = testTypeService.selectTestTypeList(testTypeRequest);
return getDataTable(list); return getDataTable(list);
} }
/** /**
* 测试场景列表不分页 * 查询测试类型列表不分页
*/ */
@ApiOperation("查询测试场景") @ApiOperation("查询测试类型")
@Trace @Trace
@Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")})
@RequestMapping(method = RequestMethod.POST, value = "/getListAll") @RequestMapping(method = RequestMethod.POST, value = "/getListAll")
......
package com.ruoyi.web.request;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 体系审查和车型审查检验内容请求实体类
* @author gxk
*/
@Data
@ApiModel
public class ReviewStandardInspectionContentRequest {
@ApiModelProperty("标准主键ID")
@NotNull(message = "标准主键ID不能为空")
private Long id;
}
package com.ruoyi.web.request;
import com.ruoyi.common.core.page.PageDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* 检验内容库(标准)分页请求实体类
* @author gxk
*/
@Data
@ApiModel
public class ReviewStandardListByPageRequest extends PageDomain {
/**
* 大标准ID
*/
@ApiModelProperty("总标准ID")
@NotNull(message = "总标准ID不能为空")
private Long standardId;
/**
* 标准的类型
*/
@ApiModelProperty("标准类型[system、car、test]")
@NotNull(message = "标准类型不能为空")
@NotEmpty(message = "标准类型不能为空")
private String type;
/**
* 章节
*/
@ApiModelProperty("章节")
private String chapter;
/**
* 文本内容
*/
@ApiModelProperty("文本内容")
private String text;
}
package com.ruoyi.web.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@ApiModel(value = "ReviewEnterpriseArchiveViewResponse", description = "预览企业留档文件")
@Data
public class ReviewEnterpriseArchiveViewResponse {
}
package com.ruoyi.web.response;
import com.ruoyi.domain.ReviewKeyPoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 体系审查、车型审查点击检验内容后的返回值
* @author gxk
*/
@ApiModel
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReviewStandardInspectionContentResponse {
@ApiModelProperty("检验内容集合")
private List<ReviewKeyPoint> keyPointList;
}
package com.ruoyi.web.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 检验内容库(标准)响应体
* @author gxk
*/
@Data
@ApiModel
public class ReviewStandardResponse {
@ApiModelProperty("ID")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
* 章节
*/
@ApiModelProperty("章节")
private String chapter;
/**
* 文本内容
*/
@ApiModelProperty("文本内容")
private String text;
/**
* 测试方法(车型试验专有)
*/
@ApiModelProperty("测试方法(车型试验专有)")
private String testMethod;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.mapper.ReviewEnterpriseArchiveMapper">
<resultMap id="BaseResultMap" type="com.ruoyi.domain.ReviewEnterpriseArchive">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="enterpriseName" column="enterprice_name" jdbcType="VARCHAR"/>
<result property="fileName" column="file_name" jdbcType="VARCHAR"/>
<result property="version" column="version" jdbcType="VARCHAR"/>
<result property="publishDate" column="publish_date" jdbcType="DATE"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
<result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
<result property="storage" column="storage" jdbcType="VARCHAR"/>
<result property="photo" column="photo" jdbcType="VARCHAR"/>
<result property="taskId" column="task_id" jdbcType="BIGINT"/>
</resultMap>
<select id="findByTaskId" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id FROM t_review_enterprise_archive WHERE task_id = #{taskId}
</select>
<select id="findViewItemVOByTaskId" resultType="com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewItemVO">
SELECT
result.catalogue AS catalogue,
standard.chapter AS chapter,
standard.text AS standard,
keypoint.text AS keyPoint,
archive.id AS archiveId
FROM t_review_details_result result
LEFT JOIN t_review_details details ON result.review_details_id = details.id
LEFT JOIN t_review_keypoint keypoint ON details.review_keypoint_id = keypoint.id
LEFT JOIN t_review_standard standard ON keypoint.review_standard_id = standard.id
LEFT JOIN t_review_enterprise_archive archive ON result.review_enterprise_archive_id = archive.id
WHERE result.task_id = #{taskId};
</select>
</mapper>
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<result property="file" column="file" jdbcType="VARCHAR"/> <result property="file" column="file" jdbcType="VARCHAR"/>
<result property="conformity" column="conformity" jdbcType="VARCHAR"/> <result property="conformity" column="conformity" jdbcType="VARCHAR"/>
<result property="inconformity" column="inconformity" jdbcType="VARCHAR"/> <result property="inconformity" column="inconformity" jdbcType="VARCHAR"/>
<result property="testMethod" column="test_method" jdbcType="VARCHAR"/>
<collection property="keyPointList" ofType="com.ruoyi.domain.ReviewKeyPoint" select="com.ruoyi.mapper.ReviewKeyPointMapper.findAllByReviewStandardId" column="id"> <collection property="keyPointList" ofType="com.ruoyi.domain.ReviewKeyPoint" select="com.ruoyi.mapper.ReviewKeyPointMapper.findAllByReviewStandardId" column="id">
<result property="id" column="u_id" jdbcType="BIGINT"/> <result property="id" column="u_id" jdbcType="BIGINT"/>
...@@ -32,5 +33,20 @@ ...@@ -32,5 +33,20 @@
SELECT id, type, chapter, text, standard_id, name, standard_no, file, conformity, inconformity FROM t_review_standard WHERE standard_id = #{standardId} AND type = #{type}; SELECT id, type, chapter, text, standard_id, name, standard_no, file, conformity, inconformity FROM t_review_standard WHERE standard_id = #{standardId} AND type = #{type};
</select> </select>
<select id="selectReviewStandardList" parameterType="com.ruoyi.web.request.ReviewStandardListByPageRequest" resultType="com.ruoyi.web.response.ReviewStandardResponse">
select
id, chapter, text
from
t_review_standard
<where>
<if test="standardId != null"> and standard_id = #{standardId} </if>
<if test="type != null and type != ''"> and `type` = #{type} </if>
<if test="chapter != null and chapter != ''"> and chapter like concat('%', #{chapter}, '%') </if>
<if test="text != null and text != ''"> and text like concat('%', #{text}, '%') </if>
</where>
ORDER BY
chapter
</select>
</mapper> </mapper>
...@@ -25,4 +25,17 @@ ...@@ -25,4 +25,17 @@
</if> </if>
</select> </select>
<select id="selectTaskBysampleId" resultType="com.ruoyi.domain.vo.SampleTaskVo">
SELECT
relation.sample_id,
relation.task_id,
task.NAME As taskName
FROM
t_task_sample_relation relation
LEFT JOIN t_task task ON task.id = relation.task_id
WHERE relation.sample_id IN
<foreach item="id" collection="idList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
package com.ruoyi;
import com.ruoyi.domain.ReviewDetails;
import com.ruoyi.domain.ReviewKeyPoint;
import com.ruoyi.domain.ReviewScene;
import com.ruoyi.domain.ReviewStandard;
import com.ruoyi.service.ReviewDetailsService;
import com.ruoyi.service.ReviewKeyPointService;
import com.ruoyi.service.ReviewSceneService;
import com.ruoyi.service.ReviewStandardService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class InspectionContentTest {
@Autowired
private ReviewKeyPointService reviewKeyPointService;
@Autowired
private ReviewDetailsService reviewDetailsService;
@Autowired
private ReviewSceneService reviewSceneService;
@Autowired
private ReviewStandardService reviewStandardService;
// 标准新增
@Test
public void standardAdd() {
ReviewStandard build = ReviewStandard.builder()
.chapter("7.1.1.2")
.text("车端具备远程控制功能的系统、授权的第三方应用等外部连接系统不应存在由汽车行业权威漏洞平台6个月前公布且未经处置的高危及以上的安全漏洞。\n" +
"\n" +
"注1:汽车行业权威漏洞平台如车联网产品专用漏洞库NVDB-CAVD等政府主管部门认可的其他漏洞平台。\n" +
"\n" +
"注2:处置包括消除漏洞、制定减缓措施等方式。")
.testMethod("测试人员应使用漏洞扫描工具对车辆外部连接系统进行漏洞扫描,并将测试结果与汽车行业权威漏洞平台6个月前公布的高危及以上的安全漏洞清单和车辆生产企业提供的车辆外部连接系统漏洞处置方案进行比对,测试车辆是否满足7.1.1.1的要求。")
.build();
reviewStandardService.save(build);
}
// 要点新增
@Test
public void pointAdd() {
ReviewKeyPoint build = ReviewKeyPoint.builder()
.text("车辆全生命周期每个阶段的流程文件能够包含相应阶段的信息安全活动及要求。")
.reviewStandardId(1735216941104238592L)
.build();
reviewKeyPointService.save(build);
}
// 细则新增
@Test
public void detailsAdd() {
ReviewDetails build = ReviewDetails.builder()
.text("后生产阶段流程文件应考虑运维阶段、终止支持、退役阶段的信息安全需求,运维阶段包含网络安全事件响应和软件升级。")
.reviewKeypointId(1760578720524886017L)
.build();
reviewDetailsService.save(build);
}
// 场景新增
@Test
public void sceneAdd() {
ReviewScene build = ReviewScene.builder()
.text("--")
.reviewDetailsId(1760579778101854209L)
.build();
reviewSceneService.save(build);
}
}
package com.ruoyi;
import cn.hutool.json.JSONUtil;
import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO;
import com.ruoyi.service.ReviewEnterpriseArchiveService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class ReviewEnterpriseArchiveTest {
@Autowired
private ReviewEnterpriseArchiveService reviewEnterpriseArchiveService;
@Test
public void viewTest() {
List<ReviewEnterpriseArchiveViewVO> view = reviewEnterpriseArchiveService.view(1744255874929094658L);
JSONUtil.toJsonPrettyStr(view);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment