Commit a7603471 authored by 盖献康's avatar 盖献康

Merge branch 'dev' into 'master'

dev - master 4.0

See merge request !275
parents 74622346 78e4a2e4
......@@ -84,7 +84,7 @@ public class ReviewEnterpriseArchive implements Serializable {
private String createBy;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
\ No newline at end of file
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 com.fasterxml.jackson.annotation.JsonFormat;
......@@ -19,6 +20,10 @@ import lombok.experimental.Accessors;
@Data
public class TaskUserRelation {
// 用户状态禁用
@TableField(exist = false)
public static final String USER_STATUS_PROHIBIT = "1";
/**
* 任务id
*/
......@@ -52,4 +57,8 @@ public class TaskUserRelation {
@ApiModelProperty("部门名称")
private String deptName;
@TableField(exist = false)
@ApiModelProperty("用户状态")
private String status;
}
package com.ruoyi.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("平均检验通过率")
public class AverageInspectionRateVO {
@ApiModelProperty("检验项目")
private String inspectionItems;
@ApiModelProperty("通过率")
private Integer passingRate;
@ApiModelProperty("标准号")
private String standardNumber;
}
package com.ruoyi.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "首页任务保密等级占比")
public class ConfidentialityLevelProportionVO {
@ApiModelProperty("任务等级数量")
private Long value;
@ApiModelProperty("任务等级")
private String name;
}
package com.ruoyi.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("三个子项目检验通过个数")
public class InspectionItemPassedNumVO {
@ApiModelProperty("体系审查已完成个数")
private Integer sysReviewcompletedNum;
@ApiModelProperty("体系审查已通过个数")
private Integer sysReviewPassedNum;
@ApiModelProperty("车型审查已完成个数")
private Integer carReviewcompletedNum;
@ApiModelProperty("车型审查已通过个数")
private Integer carReviewPassedNum;
@ApiModelProperty("车型实验已完成个数")
private Integer modelTestCompletedNum;
@ApiModelProperty("车型实验已通过个数")
private Integer modelTestPassedNum;
}
package com.ruoyi.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 检验报告PDF VO类
......@@ -165,4 +169,23 @@ public class InspectionReportPdfVO {
*/
private String brandImage;
/**
* 样品照片
*/
private String samplePhotos;
/**
* 任务开始时间
*/
private String taskBeginTime;
/**
* 任务结束时间
*/
private String taskEndTime;
/**
* 检验时间和地点
*/
private String inspectionTimeAndLocation;
}
package com.ruoyi.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("首页参与任务情况")
public class TaskParticipationStatisticsVO {
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("项目数量")
private Integer taskNum;
}
......@@ -3,6 +3,7 @@ package com.ruoyi.mapper;
import com.ruoyi.domain.ReviewDetails;
import com.ruoyi.domain.ReviewDetailsResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.web.response.UserNameResponse;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -33,6 +34,8 @@ public interface ReviewDetailsResultMapper extends BaseMapper<ReviewDetailsResul
// 根据细则id查询结果
List<ReviewDetailsResult> findByDetailsId(@Param("detailsId") Long detailsId);
List<UserNameResponse> findByResultList(@Param("resultList") List<ReviewDetailsResult> resultList);
}
......
......@@ -16,4 +16,7 @@ public interface StandardMapper extends BaseMapper<Standard> {
// 根据id查询
Standard findListById(@Param("id") Long Id);
//查询全部
List<Standard> selectListAll();
}
package com.ruoyi.mapper;
import com.ruoyi.domain.vo.QuantityStatisticsVO;
import com.ruoyi.domain.vo.StandardCategoryStatisticsVO;
import com.ruoyi.domain.vo.*;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -14,4 +13,13 @@ public interface StatisticsHomeMapper {
// 标准类别统计
public List<StandardCategoryStatisticsVO> selectStandardCategoryStatistics();
// 任务保密等级统计
public List<ConfidentialityLevelProportionVO> selectConfidentialityLevelStatistics();
// 体系审查任务通过数量
public InspectionItemPassedNumVO selectInspectionItemPassedNum();
// 参与任务情况统计
public List<TaskParticipationStatisticsVO> selectTaskParticipationStatistics();
}
......@@ -2,6 +2,7 @@ package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.Task;
import com.ruoyi.domain.TaskUserRelation;
import com.ruoyi.domain.vo.EnterpriseFilePdfVO;
import com.ruoyi.domain.vo.InspectionReportPdfVO;
import com.ruoyi.web.request.TaskFindFinishRequest;
......@@ -9,6 +10,8 @@ import com.ruoyi.web.request.TaskFindPendingRequest;
import com.ruoyi.web.request.TaskFindRequest;
import com.ruoyi.web.request.TaskListRequest;
import com.ruoyi.web.response.TaskFindResponse;
import com.ruoyi.web.response.TaskScenarioResponse;
import com.ruoyi.web.response.UserNameResponse;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -52,4 +55,15 @@ public interface TaskMapper extends BaseMapper<Task> {
* @return
*/
InspectionReportPdfVO selectInspectionReportData(Long taskId);
// 根据任务列表查询对应的场景数量
List<TaskScenarioResponse> findByTaskList(@Param("responses") List<TaskFindResponse> responses);
// 任务列表查询小组成员名称、部门
List<UserNameResponse> findByUserIdList(@Param("responses") List<TaskFindResponse> responses);
// 任务小组关系列表查询小组成员名称、部门
List<UserNameResponse> findByRelation(@Param("relation") List<TaskUserRelation> relation);
List<UserNameResponse> findByFinishTaskList(@Param("taskList") List<Task> taskList);
}
......@@ -23,6 +23,9 @@ public interface TaskUserRelationMapper extends BaseMapper<TaskUserRelation> {
*/
List<TaskUserRelation> selectQTeamMembers(@Param("taskId") Long taskId);
// 根据小组成员id列表查询状态
List<TaskUserRelation> findByIdList(@Param("idList") List<TaskUserRelation> idList);
}
......
......@@ -11,4 +11,6 @@ import java.util.List;
public interface TestRecordsMapper extends BaseMapper<TestRecords> {
List<TestRecords> findByTaskId(@Param("id") String id);
Long countResult(@Param("projectId") String projectId);
}
......@@ -2,7 +2,6 @@ package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.TestScenario;
import com.ruoyi.domain.TestType;
import com.ruoyi.web.request.TestScenarioRequest;
import java.util.List;
......@@ -16,4 +15,10 @@ public interface ITestScenarioService extends IService<TestScenario> {
* @return 测试场景库集合
*/
public List<TestScenario> selectTestScenarioList(TestScenarioRequest testScenarioRequest);
/**
* 获取测试场景列表(科恩)
* @return
*/
public List<String> selectScenarioList();
}
......@@ -3,9 +3,7 @@ package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.ModelTestTask;
import com.ruoyi.web.request.ModelTestTaskSubmitRequest;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import java.util.List;
import com.ruoyi.web.response.ModelTestResponse;
/**
* 车型试验任务Service接口
......@@ -19,7 +17,7 @@ public interface ModelTestTaskService extends IService<ModelTestTask> {
* @param taskId
* @return
*/
List<ModelTestTaskViewResponse> viewModelTestTask(Long taskId);
ModelTestResponse viewModelTestTask(Long taskId);
/**
* 开始车型试验任务
......
package com.ruoyi.service;
import com.ruoyi.domain.vo.QuantityStatisticsVO;
import com.ruoyi.domain.vo.StandardCategoryStatisticsVO;
import com.ruoyi.domain.vo.*;
import java.util.List;
......@@ -11,4 +10,13 @@ public interface StatisticsHomeService {
// 标准类别统计
public List<StandardCategoryStatisticsVO> selectStandardCategoryStatistics();
// 任务保密等级统计
public List<ConfidentialityLevelProportionVO> selectConfidentialityLevelStatistics();
//平均检验通过率
public List<AverageInspectionRateVO> selectAverageInspectionRate();
// 参与任务情况统计
public List<TaskParticipationStatisticsVO> selectTaskParticipationStatistics();
}
package com.ruoyi.service;
import com.ruoyi.domain.ModelTestTask;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
import java.util.List;
......@@ -15,7 +15,7 @@ public interface StrategyModelTestTask {
* @param modelTestTask
* @return
*/
List<ModelTestTaskViewResponse> doView(ModelTestTask modelTestTask);
ModelTestResponse doView(ModelTestTask modelTestTask);
/**
* 开始测试
......
package com.ruoyi.service;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.domain.TestUseCase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.request.TestUseCaseByScenarioRequest;
import com.ruoyi.web.request.TestUseCaseIdListRequest;
import com.ruoyi.web.request.TestUserCaseRequest;
import java.util.List;
import java.util.Map;
/**
* @author wangfei
......@@ -27,4 +30,19 @@ public interface TestUseCaseService extends IService<TestUseCase> {
* @return
*/
List<String> selectCaseIdList(TestUseCaseIdListRequest request);
/**
* 通过测试场景获取所绑定的测试用例
* @param request
* @return
*/
List<String> selectCaseByScenario(TestUseCaseByScenarioRequest request);
/**
* 调用第三方接口
* @param url
* @param map
* @return
*/
JSONObject callThirdPartyInterface(String url, Map<String, Object> map);
}
......@@ -5,13 +5,11 @@ import com.ruoyi.domain.ModelTestTask;
import com.ruoyi.mapper.ModelTestTaskMapper;
import com.ruoyi.service.ModelTestTaskService;
import com.ruoyi.web.request.ModelTestTaskSubmitRequest;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 车型试验Service业务层处理
* @author gxk
......@@ -33,7 +31,7 @@ public class ModelTestTaskServiceImpl extends ServiceImpl<ModelTestTaskMapper, M
* @return
*/
@Override
public List<ModelTestTaskViewResponse> viewModelTestTask(Long taskId) {
public ModelTestResponse viewModelTestTask(Long taskId) {
ModelTestTask modelTestTask = modelTestTaskMapper.selectById(taskId);
return strategyModelTestTaskContext.getResource(modelTestTask.getTaskStatus()).doView(modelTestTask);
}
......
package com.ruoyi.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -156,9 +157,9 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper,
// 查看此标准下所有的测试用例
List<TestUseCase> usecaseRelationList = testUseCaseMapper.selectList(new QueryWrapper<TestUseCase>().eq("review_standard_id", standardId));
// 此标准还可以选择的用例
List<OptionalUseCasesVO> optionalUseCasesVOList = testUseCases.stream().filter(a -> !a.getStandardId().equals(standardId)).collect(Collectors.toList());
optionalUseCasesVOList.stream().forEach(obj -> obj.setDisabled(false));
response.setOptionalUseCasesList(optionalUseCasesVOList);
// List<OptionalUseCasesVO> optionalUseCasesVOList = testUseCases.stream().filter(a -> !a.getStandardId().equals(standardId)).collect(Collectors.toList());
testUseCases.stream().forEach(obj -> obj.setDisabled(false));
response.setOptionalUseCasesList(testUseCases);
response.setSelectedUseCaseList(usecaseRelationList.stream().map(TestUseCase::getId).collect(Collectors.toList()));
return response;
}
......@@ -169,9 +170,18 @@ public class ReviewStandardServiceImpl extends ServiceImpl<ReviewStandardMapper,
*/
@Override
public void saveStandardUsecase(ReviewStandardSaveStandardUsecaseRequest request) {
// 删除之前绑定关系
testUseCaseMapper.update(
TestUseCase.builder().reviewStandardId(request.getStandardId()).build(),
new UpdateWrapper<TestUseCase>().in("id", request.getUsecaseIdList()));
null,
new UpdateWrapper<TestUseCase>()
.set("review_standard_id", null)
.in("review_standard_id", request.getStandardId()));
if (CollUtil.isNotEmpty(request.getUsecaseIdList())) {
// 绑定现在的
testUseCaseMapper.update(
TestUseCase.builder().reviewStandardId(request.getStandardId()).build(),
new UpdateWrapper<TestUseCase>().in("id", request.getUsecaseIdList()));
}
}
/**
......
package com.ruoyi.service.impl;
import com.ruoyi.domain.vo.QuantityStatisticsVO;
import com.ruoyi.domain.vo.StandardCategoryStatisticsVO;
import com.ruoyi.domain.Standard;
import com.ruoyi.domain.vo.*;
import com.ruoyi.mapper.StandardMapper;
import com.ruoyi.mapper.StatisticsHomeMapper;
import com.ruoyi.service.StatisticsHomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service
......@@ -16,6 +18,9 @@ public class StatisticsHomeServiceImpl implements StatisticsHomeService {
@Autowired
private StatisticsHomeMapper statisticsHomeMapper;
@Autowired
private StandardMapper standardMapper;
@Override
public QuantityStatisticsVO selectQuantityStatistics(QuantityStatisticsVO quantityStatisticsHome){
......@@ -30,7 +35,44 @@ public class StatisticsHomeServiceImpl implements StatisticsHomeService {
return statisticsHomeMapper.selectStandardCategoryStatistics();
}
// 计算百分比
@Override
public List<ConfidentialityLevelProportionVO> selectConfidentialityLevelStatistics(){
return statisticsHomeMapper.selectConfidentialityLevelStatistics();
}
@Override
public List<AverageInspectionRateVO> selectAverageInspectionRate(){
List<Standard> standards = standardMapper.selectListAll();
String standardNo = null;
if(!standards.isEmpty()){
standardNo = standards.get(0).getStandardNo();
}
InspectionItemPassedNumVO inspectionItemPassedNumVO = statisticsHomeMapper.selectInspectionItemPassedNum();
List<AverageInspectionRateVO> list = new ArrayList<>();
AverageInspectionRateVO averageInspectionRateOne = new AverageInspectionRateVO();
averageInspectionRateOne.setInspectionItems("汽车信息安全管理体系要求");
averageInspectionRateOne.setPassingRate(proportionCalculation(inspectionItemPassedNumVO.getSysReviewPassedNum(), inspectionItemPassedNumVO.getSysReviewcompletedNum()));
list.add(averageInspectionRateOne);
AverageInspectionRateVO averageInspectionRateTwo = new AverageInspectionRateVO();
averageInspectionRateTwo.setInspectionItems("信息安全一般要求");
averageInspectionRateTwo.setPassingRate(proportionCalculation(inspectionItemPassedNumVO.getCarReviewPassedNum(),inspectionItemPassedNumVO.getCarReviewcompletedNum()));
list.add(averageInspectionRateTwo);
AverageInspectionRateVO averageInspectionRateThree = new AverageInspectionRateVO();
averageInspectionRateThree.setInspectionItems("信息安全技术要求");
averageInspectionRateThree.setPassingRate(proportionCalculation(inspectionItemPassedNumVO.getModelTestPassedNum(),inspectionItemPassedNumVO.getModelTestCompletedNum()));
list.add(averageInspectionRateThree);
for(AverageInspectionRateVO averageInspectionRate:list){
averageInspectionRate.setStandardNumber(standardNo);
}
return list;
}
@Override
public List<TaskParticipationStatisticsVO> selectTaskParticipationStatistics(){
return statisticsHomeMapper.selectTaskParticipationStatistics();
}
// 计算两个数各占比
public int percentageCalculation(Integer a, Integer b){
int total = a+b;
if(total == 0){
......@@ -40,4 +82,14 @@ public class StatisticsHomeServiceImpl implements StatisticsHomeService {
return Math.round(c*100);
}
}
// 计算百分比
public int proportionCalculation(Integer a, Integer b){
if(b == 0){
return 0;
}else {
float c = (float)a/b;
return Math.round(c*100);
}
}
}
......@@ -8,6 +8,7 @@ import com.ruoyi.domain.vo.ReviewEnterpriseArchiveFileVO;
import com.ruoyi.mapper.*;
import com.ruoyi.service.*;
import com.ruoyi.web.response.CarReviewTaskViewResponse;
import com.ruoyi.web.response.UserNameResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
......@@ -127,9 +128,9 @@ public class StrategyCarReviewTaskPending implements StrategyCarReviewTask, Init
public void doConfirmReview(CarReviewTask carReviewTask) {
List<ReviewDetails> detailsList = reviewDetailsMapper.findNoResult(carReviewTask.getId(),CarReviewTask.TYPE);
List<ReviewTaskInbox> inboxList = reviewTaskInboxMapper.findConfirmListByTaskId(carReviewTask.getId());
if (detailsList.size() != 0 && detailsList != null) {
if (detailsList != null && detailsList.size() != 0) {
throw new ServiceException("存在未填写的表单,请填写完整", HttpStatus.ERROR, detailsList);
} else if (inboxList.size() != 0 && inboxList != null){
} else if (inboxList != null && inboxList.size() != 0){
throw new ServiceException("存在未确认的场景变更信息,请确认", HttpStatus.ERROR);
}else {
// 1. 获取最新问卷
......@@ -164,6 +165,21 @@ public class StrategyCarReviewTaskPending implements StrategyCarReviewTask, Init
private void setDetailsResult(List<ReviewStandard> standards, List<ReviewDetailsResult> results, CarReviewTask carReviewTask) {
if (results != null && results.size() != 0) {
// 小组成员姓名、部门
List<UserNameResponse> userList = reviewDetailsResultMapper.findByResultList(results);
for (UserNameResponse response : userList) {
for (ReviewDetailsResult result : results) {
if (Objects.equals(result.getUserId(), response.getUserId())) {
result.setUserName(response.getName());
}
}
}
reviewDetailsResultService.updateBatchById(results);
}
Map<Long, ReviewDetailsResult> resultMap = results.stream().collect(Collectors.toMap(ReviewDetailsResult::getReviewDetailsId, Function.identity(), (v1, v2) -> v1));
for(ReviewStandard standard : standards) {
......
......@@ -4,7 +4,7 @@ import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.domain.ModelTestTask;
import com.ruoyi.service.StrategyModelTestTask;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
......@@ -24,7 +24,7 @@ public class StrategyModelTestTaskFinish implements StrategyModelTestTask, Initi
private StrategyModelTestTaskContext strategyModelTestTaskContext;
@Override
public List<ModelTestTaskViewResponse> doView(ModelTestTask modelTestTask) {
public ModelTestResponse doView(ModelTestTask modelTestTask) {
throw new ServiceException("不能开始一个结束的任务", HttpStatus.ERROR);
}
......
package com.ruoyi.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
......@@ -7,8 +9,10 @@ import com.ruoyi.domain.*;
import com.ruoyi.domain.vo.TestCaseVO;
import com.ruoyi.domain.vo.TestUsecaseVO;
import com.ruoyi.mapper.ModelTestTaskMapper;
import com.ruoyi.mapper.TaskMapper;
import com.ruoyi.mapper.TestUseCaseMapper;
import com.ruoyi.service.StrategyModelTestTask;
import com.ruoyi.web.response.ModelTestResponse;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.InitializingBean;
......@@ -40,15 +44,18 @@ public class StrategyModelTestTaskNew implements StrategyModelTestTask, Initiali
@Autowired
private ModelTestTaskMapper modelTestTaskMapper;
@Autowired
private TaskMapper taskMapper;
/**
* 状态为NEW时的查看车型试验任务
* @param modelTestTask
* @return
*/
@Override
public List<ModelTestTaskViewResponse> doView(ModelTestTask modelTestTask) {
List<ModelTestTaskViewResponse> list = getTestScheme(modelTestTask.getId());
return list;
public ModelTestResponse doView(ModelTestTask modelTestTask) {
ModelTestResponse response = getTestScheme(modelTestTask);
return response;
}
/**
......@@ -56,29 +63,31 @@ public class StrategyModelTestTaskNew implements StrategyModelTestTask, Initiali
* @param taskId
* @return
*/
public List<ModelTestTaskViewResponse> getTestScheme(Long taskId) {
public ModelTestResponse getTestScheme(ModelTestTask modelTestTask) {
// 查询出本子任务所包含的测试场景集合
List<TestUsecaseVO> testCaseList = testUseCaseMapper.selectListByTaskId(taskId);
List<TestUsecaseVO> testCaseList = testUseCaseMapper.selectListByTaskId(modelTestTask.getId());
// 创建一个空List, 用于返回数据
List<ModelTestTaskViewResponse> list = new ArrayList<>();
// 创建一个HashMap, 用于存放数据。用例条款ID作为key
HashMap<Long, List<TestCaseVO>> map = new HashMap<>();
for (TestUsecaseVO testUsecaseVO : testCaseList) {
// map不存在此key,添加; 则,存数据
if (!map.containsKey(testUsecaseVO.getReviewStandardId())) {
TestCaseVO caseVO = new TestCaseVO();
BeanUtils.copyProperties(testUsecaseVO, caseVO);
List<TestCaseVO> caseList = new ArrayList<>();
caseList.add(caseVO);
map.put(testUsecaseVO.getReviewStandardId(), caseList);
} else {
TestCaseVO caseVO = new TestCaseVO();
BeanUtils.copyProperties(testUsecaseVO, caseVO);
map.get(testUsecaseVO.getReviewStandardId()).add(caseVO);
if (ObjectUtil.isNotEmpty(testUsecaseVO.getReviewStandardId())) {
// map不存在此key,添加; 则,存数据
if (!map.containsKey(testUsecaseVO.getReviewStandardId())) {
TestCaseVO caseVO = new TestCaseVO();
BeanUtils.copyProperties(testUsecaseVO, caseVO);
List<TestCaseVO> caseList = new ArrayList<>();
caseList.add(caseVO);
map.put(testUsecaseVO.getReviewStandardId(), caseList);
} else {
TestCaseVO caseVO = new TestCaseVO();
BeanUtils.copyProperties(testUsecaseVO, caseVO);
map.get(testUsecaseVO.getReviewStandardId()).add(caseVO);
}
}
}
// 循环map, 给list赋值
for (Map.Entry<Long, List<TestCaseVO>> entry : map.entrySet()) {
for (Map.Entry<Long, List<TestCaseVO>> entry : map.entrySet()) {
List<TestUsecaseVO> collect = testCaseList.stream().filter(testCaseVO -> entry.getKey().equals(testCaseVO.getReviewStandardId())).collect(Collectors.toList());
if (collect.size() > 0){
TestUsecaseVO testUsecaseVO = collect.get(0);
......@@ -93,7 +102,16 @@ public class StrategyModelTestTaskNew implements StrategyModelTestTask, Initiali
}
// 最后按章节号升序
list.sort(Comparator.comparing(ModelTestTaskViewResponse::getChapter));
return list;
// 构造
Task task = taskMapper.selectOne(new QueryWrapper<Task>().lambda().eq(Task::getModelTestTaskId, modelTestTask.getId()));
ModelTestResponse response = ModelTestResponse.builder()
.taskNo(task.getTaskNo())
.taskName(task.getTaskName())
.entrustedUnit(task.getEntrustedUnit())
.taskStatus(modelTestTask.getTaskStatus())
.modelTestTaskViewResponseList(list)
.build();
return response;
}
/**
......@@ -104,6 +122,7 @@ public class StrategyModelTestTaskNew implements StrategyModelTestTask, Initiali
public void doStartTest(ModelTestTask modelTestTask) {
modelTestTaskMapper.update(new ModelTestTask(),
new LambdaUpdateWrapper<ModelTestTask>()
.set(ModelTestTask::getTaskBeginTime, new Date())
.set(ModelTestTask::getTaskStatus, ModelTestTask.TASK_STATUS_PENDING)
.eq(ModelTestTask::getId, modelTestTask.getId()));
}
......
......@@ -6,13 +6,14 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.domain.ModelTestTask;
import com.ruoyi.mapper.ModelTestTaskMapper;
import com.ruoyi.service.StrategyModelTestTask;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@Service
......@@ -32,9 +33,9 @@ public class StrategyModelTestTaskPending implements StrategyModelTestTask, Init
private StrategyModelTestTaskNew strategyModelTestTaskNew;
@Override
public List<ModelTestTaskViewResponse> doView(ModelTestTask modelTestTask) {
List<ModelTestTaskViewResponse> list = strategyModelTestTaskNew.getTestScheme(modelTestTask.getId());
return list;
public ModelTestResponse doView(ModelTestTask modelTestTask) {
ModelTestResponse response = strategyModelTestTaskNew.getTestScheme(modelTestTask);
return response;
}
@Override
......@@ -47,6 +48,7 @@ public class StrategyModelTestTaskPending implements StrategyModelTestTask, Init
// 进行中的任务, 点击确认后, 状态改为待签字
modelTestTaskMapper.update(new ModelTestTask(),
new LambdaUpdateWrapper<ModelTestTask>()
.set(ModelTestTask::getTaskEndTime, new Date())
.set(ModelTestTask::getTaskStatus, ModelTestTask.TASK_STATUS_SIGNED)
.eq(ModelTestTask::getId, modelTestTask.getId()));
}
......
......@@ -13,7 +13,7 @@ import com.ruoyi.domain.Task;
import com.ruoyi.mapper.ModelTestTaskMapper;
import com.ruoyi.mapper.TaskMapper;
import com.ruoyi.service.StrategyModelTestTask;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
......@@ -46,9 +46,9 @@ public class StrategyModelTestTaskSigned implements StrategyModelTestTask, Initi
private StrategyModelTestTaskNew strategyModelTestTaskNew;
@Override
public List<ModelTestTaskViewResponse> doView(ModelTestTask modelTestTask) {
List<ModelTestTaskViewResponse> list = strategyModelTestTaskNew.getTestScheme(modelTestTask.getId());
return list;
public ModelTestResponse doView(ModelTestTask modelTestTask) {
ModelTestResponse response = strategyModelTestTaskNew.getTestScheme(modelTestTask);
return response;
}
@Override
......
......@@ -8,6 +8,7 @@ import com.ruoyi.domain.vo.ReviewEnterpriseArchiveFileVO;
import com.ruoyi.mapper.*;
import com.ruoyi.service.*;
import com.ruoyi.web.response.SystemReviewTaskViewResponse;
import com.ruoyi.web.response.UserNameResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
......@@ -88,9 +89,9 @@ public class StrategySystemReviewTaskPending implements StrategySystemReviewTask
public void doConfirm(SystemReviewTask systemReviewTask) {
List<ReviewDetails> detailsList = reviewDetailsMapper.findNoResult(systemReviewTask.getId(),SystemReviewTask.TYPE);
List<ReviewTaskInbox> inboxList = reviewTaskInboxMapper.findConfirmListByTaskId(systemReviewTask.getId());
if (detailsList.size() != 0 && detailsList != null) {
if (detailsList != null && detailsList.size() != 0) {
throw new ServiceException("存在未填写的表单,请填写完整", HttpStatus.ERROR, detailsList);
} else if (inboxList.size() != 0 && inboxList != null){
} else if (inboxList != null && inboxList.size() != 0){
throw new ServiceException("存在未确认的场景变更信息,请确认", HttpStatus.ERROR);
} else {
// 1. 获取最新问卷
......@@ -160,6 +161,21 @@ public class StrategySystemReviewTaskPending implements StrategySystemReviewTask
private void setDetailsResult(List<ReviewStandard> standards, List<ReviewDetailsResult> results,SystemReviewTask systemReviewTask) {
if (results != null && results.size() != 0) {
// 小组成员姓名、部门
List<UserNameResponse> userList = reviewDetailsResultMapper.findByResultList(results);
for (UserNameResponse response : userList) {
for (ReviewDetailsResult result : results) {
if (Objects.equals(result.getUserId(), response.getUserId())) {
result.setUserName(response.getName());
}
}
}
reviewDetailsResultService.updateBatchById(results);
}
Map<Long, ReviewDetailsResult> resultMap = results.stream().collect(Collectors.toMap(ReviewDetailsResult::getReviewDetailsId, Function.identity(), (v1, v2) -> v1));
for(ReviewStandard standard : standards) {
......
package com.ruoyi.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.TestScenario;
import com.ruoyi.mapper.TestScenarioMapper;
import com.ruoyi.service.ITestScenarioService;
import com.ruoyi.service.TestUseCaseService;
import com.ruoyi.web.request.TestScenarioRequest;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Transactional
......@@ -18,6 +22,11 @@ public class TestScenarioServiceImpl extends ServiceImpl<TestScenarioMapper, Tes
@Autowired
private TestScenarioMapper testScenarioMapper;
@Autowired
private TestUseCaseService testUseCaseService;
private static String url = "https://10.12.48.78:8090/DescribeScenarioTestTypeList";
@Override
public List<TestScenario> selectTestScenarioList(TestScenarioRequest testScenarioRequest){
if(testScenarioRequest.getTestScenario() != null && (testScenarioRequest.getTestScenario().contains("%") ||testScenarioRequest.getTestScenario().contains("_") )){
......@@ -25,4 +34,25 @@ public class TestScenarioServiceImpl extends ServiceImpl<TestScenarioMapper, Tes
}
return testScenarioMapper.selectTestScenarioList(testScenarioRequest);
}
/**
* 获取测试场景列表(科恩)
* @return
*/
@Override
public List<String> selectScenarioList() {
JSONObject jsonObject = testUseCaseService.callThirdPartyInterface(url, null);
List<String> scenarioList = jsonObject.getList("scenario_list", Scenario.class)
.stream()
.map(Scenario::getName)
.collect(Collectors.toList());
return scenarioList;
}
@Data
public class Scenario {
private String name;
}
}
package com.ruoyi.service.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.TestUseCase;
import com.ruoyi.domain.vo.CaseResultVO;
import com.ruoyi.domain.vo.TestUsecaseVO;
import com.ruoyi.service.TestUseCaseService;
import com.ruoyi.mapper.TestUseCaseMapper;
import com.ruoyi.web.request.TestUseCaseByScenarioRequest;
import com.ruoyi.web.request.TestUseCaseIdListRequest;
import com.ruoyi.web.request.TestUserCaseRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -23,6 +30,8 @@ import java.util.stream.Collectors;
@Transactional
public class TestUseCaseServiceImpl extends ServiceImpl<TestUseCaseMapper, TestUseCase> implements TestUseCaseService{
private String describeCaseList = "https://10.12.48.78:8090/DescribeCaseList";
@Autowired
private TestUseCaseMapper testUseCaseMapper;
......@@ -46,6 +55,39 @@ public class TestUseCaseServiceImpl extends ServiceImpl<TestUseCaseMapper, TestU
return list.stream().map(TestUsecaseVO::getCaseId).collect(Collectors.toList());
}
/**
* 通过测试场景获取所绑定的测试用例
* @param request
* @return
*/
@Override
public List<String> selectCaseByScenario(TestUseCaseByScenarioRequest request) {
// 根据场景名遍历查询所绑定用例
List<String> resultList = new ArrayList<>();
request.getScenarioNameList()
.forEach(scenarioName -> {
Map<String, Object> map = new HashMap<>();
map.put("scenario", scenarioName);
JSONObject jsonObject = callThirdPartyInterface(describeCaseList, map);
List<String> list = jsonObject.getList("case_list", CaseResultVO.class)
.stream().map(CaseResultVO::getId).collect(Collectors.toList());
resultList.addAll(list);
});
return resultList;
}
/**
* 调用第三方接口
* @param url
* @param map
* @return
*/
@Override
public JSONObject callThirdPartyInterface(String url, Map<String, Object> map) {
String result = HttpUtil.post(url, JSONObject.toJSONString(map));
return JSONObject.parseObject(result);
}
}
......
......@@ -6,15 +6,13 @@ import com.ruoyi.service.ModelTestTaskService;
import com.ruoyi.web.request.CarReviewTaskViewRequest;
import com.ruoyi.web.request.ModelTestTaskConfirmRequest;
import com.ruoyi.web.request.ModelTestTaskSubmitRequest;
import com.ruoyi.web.response.ModelTestTaskViewResponse;
import com.ruoyi.web.response.ModelTestResponse;
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.*;
import java.util.List;
/**
* 车型试验任务Controller
* 总任务包含 (后)-> NEW (可以)-> 查看、开始
......@@ -38,8 +36,8 @@ public class ModelTestTaskController extends BaseController {
*/
@ApiOperation("查看车型试验任务详情")
@PostMapping("/getById")
public R<List<ModelTestTaskViewResponse>> view(@Validated @RequestBody CarReviewTaskViewRequest request) {
List<ModelTestTaskViewResponse> modelTestTaskList = modelTestTaskService.viewModelTestTask(request.getTaskId());
public R<ModelTestResponse> view(@Validated @RequestBody CarReviewTaskViewRequest request) {
ModelTestResponse modelTestTaskList = modelTestTaskService.viewModelTestTask(request.getTaskId());
return R.ok(modelTestTaskList);
}
......
package com.ruoyi.web;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.domain.vo.QuantityStatisticsVO;
import com.ruoyi.domain.vo.StandardCategoryStatisticsVO;
import com.ruoyi.domain.vo.*;
import com.ruoyi.service.StatisticsHomeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -32,4 +31,19 @@ public class StatisticsHomeController {
public R<List<StandardCategoryStatisticsVO>> selectStandardCategoryStatistics(){
return R.ok(statisticsHomeService.selectStandardCategoryStatistics());
}
@ApiOperation("首页任务保密等级占比")
@PostMapping("/confidentialityLevel")
public R<List<ConfidentialityLevelProportionVO>> selectConfidentialityLevelStatistics(){
return R.ok(statisticsHomeService.selectConfidentialityLevelStatistics());
}
@ApiOperation("首页平均检验通过率")
@PostMapping("/averageInspectionRate")
public R<List<AverageInspectionRateVO>> selectAverageInspectionRate(){
return R.ok(statisticsHomeService.selectAverageInspectionRate());
}
@ApiOperation("首页任务情况安排")
@PostMapping("/taskParticipation")
public R<List<TaskParticipationStatisticsVO>> selectTaskParticipationStatistics(){
return R.ok(statisticsHomeService.selectTaskParticipationStatistics());
}
}
......@@ -3,7 +3,6 @@ package com.ruoyi.web;
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.Sample;
import com.ruoyi.domain.TestScenario;
import com.ruoyi.service.ITestScenarioService;
import com.ruoyi.web.request.TestScenarioRequest;
......@@ -14,10 +13,7 @@ import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -54,4 +50,13 @@ public class TestScenarioController extends BaseController {
return R.ok(testScenarioService.selectTestScenarioList(testScenarioRequest));
}
/**
* 获取测试场景列表(科恩)
*/
@ApiOperation("查询测试场景(科恩)")
@PostMapping("/getScenarioList")
public R<List<String>> getScenarioList(){
return R.ok(testScenarioService.selectScenarioList());
}
}
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.TestUseCase;
import com.ruoyi.service.TestUseCaseService;
import com.ruoyi.web.request.TestUseCaseByScenarioRequest;
import com.ruoyi.web.request.TestUseCaseIdListRequest;
import com.ruoyi.web.request.TestUserCaseRequest;
import io.swagger.annotations.Api;
......@@ -41,10 +41,20 @@ public class TestUserCaseController extends BaseController{
* @param request
* @return
*/
@Anonymous
@ApiOperation("根据场景查询用例ID集合")
@PostMapping("/getCaseIdList")
public R<List<String>> getCaseIdList(@Validated @RequestBody TestUseCaseIdListRequest request) {
return R.ok(testUseCaseService.selectCaseIdList(request));
}
/**
* 通过测试场景获取所绑定的测试用例
* @param request
* @return
*/
@ApiOperation("根据场景查询用例ID集合(科恩)")
@PostMapping("/getCaseByScenario")
public R<List<String>> getCaseByScenario(@Validated @RequestBody TestUseCaseByScenarioRequest request) {
return R.ok(testUseCaseService.selectCaseByScenario(request));
}
}
......@@ -42,4 +42,7 @@ public class ReviewStandardListByPageRequest extends PageDomain {
*/
@ApiModelProperty("文本内容")
private String text;
@ApiModelProperty("测试方法")
private String testMethod;
}
package com.ruoyi.web.request;
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;
/**
* 通过测试场景获取测试用例ID集合 DTO
* @author gxk
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("通过测试场景获取测试用例ID集合 DTO")
public class TestUseCaseByScenarioRequest {
@ApiModelProperty("测试场景名称集合")
private List<String> scenarioNameList;
}
......@@ -8,6 +8,9 @@ import lombok.Data;
@Data
public class DataStatisticsResponse {
@ApiModelProperty("是否存在体系审查")
private Boolean systemExist;
@ApiModelProperty("体系用例审查通过率")
private Double systemDetailsPass;
......@@ -38,6 +41,9 @@ public class DataStatisticsResponse {
@ApiModelProperty("体系标准审查中")
private Integer systemStandardsUnderNum;
@ApiModelProperty("是否存在车型审查")
private Boolean carExist;
@ApiModelProperty(" 车型审查用例审查通过率")
private Double carDetailsPass;
......@@ -68,6 +74,9 @@ public class DataStatisticsResponse {
@ApiModelProperty(" 车型审查标准审查中")
private Integer carStandardsUnderNum;
@ApiModelProperty("是否存在车型试验")
private Boolean testExist;
@ApiModelProperty(" 车型试验用例审查通过率")
private Double testDetailsPass;
......
package com.ruoyi.web.response;
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;
/**
* 车型试验查看VO类
* @author gxk
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("车型试验查看VO类")
public class ModelTestResponse {
@ApiModelProperty("任务编号")
private String taskNo;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("委托单位")
private String entrustedUnit;
@ApiModelProperty("子任务状态")
private String taskStatus;
@ApiModelProperty("审查表单概要")
private List<ModelTestTaskViewResponse> modelTestTaskViewResponseList;
}
......@@ -121,4 +121,7 @@ public class TaskFindResponse {
@ApiModelProperty("试验方案ID")
private String testSchemeId;
@ApiModelProperty("是否选择场景")
private Boolean taskScenario;
}
package com.ruoyi.web.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("任务场景VO")
public class TaskScenarioResponse {
@ApiModelProperty("任务id")
private Long taskId;
@ApiModelProperty("场景数量")
private Long num;
}
package com.ruoyi.web.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("检验员VO")
public class UserNameResponse {
@ApiModelProperty("检验员id")
private Long userId;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("部门名称")
private String deptName;
}
......@@ -54,5 +54,14 @@
SELECT id, passed, comment, images_url, review_details_id, task_id, user_id, user_name, last_modify_time, catalogue, review_enterprise_archive_id, file_name
FROM t_review_details_result WHERE review_details_id = #{detailsId}
</select>
<select id="findByResultList" resultType="com.ruoyi.web.response.UserNameResponse">
SELECT s.user_id userId, s.nick_name name, sd.dept_name deptName
FROM sys_user s
LEFT JOIN sys_dept sd ON s.dept_id = sd.dept_id
WHERE s.user_id IN
<foreach item="item" collection="resultList" open="(" separator="," close=")">
#{item.userId}
</foreach>
</select>
</mapper>
......@@ -41,7 +41,10 @@
<select id="selectReviewStandardList" parameterType="com.ruoyi.web.request.ReviewStandardListByPageRequest" resultType="com.ruoyi.web.response.ReviewStandardResponse">
select
id, chapter, text
id,
chapter,
text,
test_method AS testMethod
from
t_review_standard
<where>
......@@ -49,6 +52,7 @@
<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>
<if test="testMethod != null and testMethod != ''"> and test_method like concat('%', #{testMethod}, '%') </if>
</where>
ORDER BY
chapter
......
......@@ -30,4 +30,7 @@
FROM t_standard WHERE id = #{id}
</select>
<select id="selectListAll" resultMap="BaseResultMap">
SELECT id, name, standard_no, file,standard_type,standard_status,release_date,implementation_date FROM t_standard
</select>
</mapper>
......@@ -9,7 +9,7 @@
SELECT
( SELECT count( id ) FROM t_standard ) AS standardQuantity,
( SELECT count( id ) FROM t_test_usecase ) AS numberUseCases,
( SELECT count( id ) FROM t_task ) AS numberTasks,
( SELECT count( id ) FROM t_task WHERE task_status != 'TEMPORARILY' ) AS numberTasks,
( SELECT count( id ) FROM t_automobile_enterprise WHERE deleted = 0 ) AS numberCompanies,
(
SELECT
......@@ -26,7 +26,7 @@
( SELECT count( id ) FROM t_test_type ) AS numberMethods,
( SELECT count( id ) FROM t_task WHERE vehicle_information_url IS NOT NULL ) AS numberReports,
( SELECT count( id ) FROM t_task WHERE task_status = 'FINISH' ) AS completedTaskNumber,
( SELECT count( id ) FROM t_task WHERE task_status = 'NEW' OR task_status = 'PENDING' ) AS executeTasksNumber
( SELECT count( id ) FROM t_task WHERE task_status = 'NEW' OR task_status = 'PENDING' OR task_status = 'SIGNED') AS executeTasksNumber
</select>
<select id="selectStandardCategoryStatistics" resultType="com.ruoyi.domain.vo.StandardCategoryStatisticsVO">
......@@ -38,4 +38,36 @@
GROUP BY
standard_type
</select>
<select id="selectConfidentialityLevelStatistics" resultType="com.ruoyi.domain.vo.ConfidentialityLevelProportionVO">
SELECT
count( id ) AS value,
confidentiality_level AS name
FROM
t_task
GROUP BY
confidentiality_level
</select>
<select id="selectInspectionItemPassedNum" resultType="com.ruoyi.domain.vo.InspectionItemPassedNumVO">
SELECT
( SELECT COUNT( id ) FROM t_system_review_task WHERE task_status = 'FINISH' ) AS sysReviewcompletedNum,
( SELECT COUNT( id ) FROM t_system_review_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS sysReviewPassedNum,
( SELECT COUNT( id ) FROM t_car_review_task WHERE task_status = 'FINISH' ) AS carReviewcompletedNum,
( SELECT COUNT( id ) FROM t_car_review_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS carReviewPassedNum,
( SELECT COUNT( id ) FROM t_model_test_task WHERE task_status = 'FINISH' ) AS modelTestCompletedNum,
( SELECT COUNT( id ) FROM t_model_test_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS modelTestPassedNum
</select>
<select id="selectTaskParticipationStatistics" resultType="com.ruoyi.domain.vo.TaskParticipationStatisticsVO">
SELECT
count( task_id ) AS taskNum,
tur.user_id,
su.nick_name AS userName
FROM
t_task_user_relation tur
LEFT JOIN sys_user su ON su.user_id = tur.user_id
GROUP BY
tur.user_id
</select>
</mapper>
\ No newline at end of file
......@@ -182,6 +182,8 @@
t.task_begin_time,
t.task_end_time,
t.standard_no,
t.task_list,
t.pointer,
srt.task_begin_time system_task_begin_time,
srt.task_end_time system_task_end_time,
srt.task_status review_status,
......@@ -190,7 +192,8 @@
crt.task_status car_review_status,
mtt.task_begin_time test_begin_time,
mtt.task_end_time test_end_time,
mtt.task_status test_status
mtt.task_status test_status,
mtt.test_scheme_id testSchemeId
FROM t_task t
left join t_system_review_task srt on t.system_review_task_id = srt.id
left join t_car_review_task crt on t.car_review_task_id = crt.id
......@@ -304,11 +307,13 @@
t.entrusted_unit_address AS clientAddress,
t.entrusted_unit_phone AS entrustedUnitTelephone,
t.entrusted_unit_code AS clientPostalCode,
GROUP_CONCAT(distinct s.sample_name) AS sampleName,
GROUP_CONCAT(s.sample_name) AS sampleName,
t.product_model AS typeSpecification,
DATE_FORMAT(t.task_begin_time, '%Y年%m月%d日') AS taskBeginTime,
DATE_FORMAT(t.task_end_time, '%Y年%m月%d日') AS taskEndTime,
concat(st.standard_no, ' ', st.name) AS inspectionBasis,
GROUP_CONCAT(distinct ae.enterprise_name) AS productionEnterprise,
GROUP_CONCAT(distinct s.sample_sender) AS sampleSender,
GROUP_CONCAT(s.sample_sender) AS sampleSender,
GROUP_CONCAT(distinct DATE_FORMAT(s.delivery_date, '%Y-%m-%d')) AS sampleDeliveryDate,
count(s.id) AS sampleQuantity,
CONVERT(sum(s.number_of_samples), UNSIGNED) AS sampleSum,
......@@ -319,13 +324,20 @@
GROUP_CONCAT(distinct s.identification_code) AS vehicleIdentificationNumber,
t.task_list AS inspectionItem,
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS productionDate,
GROUP_CONCAT(distinct s.trademark) AS brandImage
GROUP_CONCAT(distinct s.trademark) AS brandImage,
GROUP_CONCAT(s.sample_photos) AS samplePhotos,
d.address AS inspectionCenterAddress,
d.phone AS inspectionCenterTelephone,
d.postcode AS inspectionCenterPostcode,
d.dept_name AS inspectionCenterName
from
t_task t
left join t_task_sample_relation tsr on t.id = tsr.task_id
left join t_sample s on tsr.sample_id = s.id
left join t_automobile_enterprise ae on s.manufacturing_enterprise_id = ae.id
left join t_standard st on t.standard_id = st.id
left join sys_user u on t.task_initiator_id = u.user_id
left join sys_dept d on u.dept_id = d.dept_id
where t.id = #{taskId}
group by t.id
</select>
......@@ -342,6 +354,41 @@
FROM t_task
WHERE task_name = #{taskName}
</select>
<select id="findByTaskList" resultType="com.ruoyi.web.response.TaskScenarioResponse">
SELECT COUNT(*) num, task_id as taskId FROM t_task_scenario_relation
WHERE task_id IN
<foreach item="item" collection="responses" open="(" separator="," close=")">
#{item.id}
</foreach>
GROUP BY task_id
</select>
<select id="findByUserIdList" resultType="com.ruoyi.web.response.UserNameResponse">
SELECT s.user_id userId, s.nick_name name, sd.dept_name deptName
FROM sys_user s
LEFT JOIN sys_dept sd ON s.dept_id = sd.dept_id
WHERE s.user_id IN
<foreach item="item" collection="responses" open="(" separator="," close=")">
#{item.leaderId}
</foreach>
</select>
<select id="findByRelation" resultType="com.ruoyi.web.response.UserNameResponse">
SELECT s.user_id userId, s.nick_name name, sd.dept_name deptName
FROM sys_user s
LEFT JOIN sys_dept sd ON s.dept_id = sd.dept_id
WHERE s.user_id IN
<foreach item="item" collection="relation" open="(" separator="," close=")">
#{item.userId}
</foreach>
</select>
<select id="findByFinishTaskList" resultType="com.ruoyi.web.response.UserNameResponse">
SELECT s.user_id userId, s.nick_name name, sd.dept_name deptName
FROM sys_user s
LEFT JOIN sys_dept sd ON s.dept_id = sd.dept_id
WHERE s.user_id IN
<foreach item="item" collection="taskList" open="(" separator="," close=")">
#{item.leaderId}
</foreach>
</select>
</mapper>
......@@ -23,4 +23,13 @@
task_id = #{taskId}
</if>
</select>
<select id="findByIdList" resultType="com.ruoyi.domain.TaskUserRelation">
select user_id as userId,
status
from sys_user
WHERE sys_user.user_id IN
<foreach item="item" collection="idList" open="(" separator="," close=")">
#{item.userId}
</foreach>
</select>
</mapper>
\ No newline at end of file
......@@ -23,6 +23,11 @@
FROM t_test_records
WHERE project_id = #{id}
</select>
<select id="countResult" resultType="java.lang.Long">
SELECT COUNT(*) FROM t_test_records
WHERE project_id = #{projectId}
GROUP BY project_id
</select>
</mapper>
......@@ -49,32 +49,31 @@
</select>
<select id="selectListByTaskId" resultType="com.ruoyi.domain.vo.TestUsecaseVO">
select
tu.id,
tu.case_id caseId,
ts.test_scenario testScenario,
tt.test_type testType,
tu.usecase_no usecaseNo,
tu.name,
tu.tools,
tu.input,
tu.description,
tu.review_standard_id,
rs.chapter,
rs.text,
rs.test_method testMethod,
tr.test_result testResult
from
t_test_usecase tu
left join t_test_scenario ts on tu.test_scenario_id = ts.id
left join t_test_type tt on tu.test_type_id = tt.id
left join t_review_standard rs on tu.review_standard_id = rs.id
left join t_task_scenario_relation tsr on tsr.test_scenario_id = ts.id
left join t_task t on tsr.task_id = t.id
left join t_model_test_task mtt on mtt.id = t.model_test_task_id
left join t_test_records tr on tu.case_id = tr.usecase_id
where
mtt.id = #{id}
select tu.id,
tu.case_id caseId,
ts.test_scenario testScenario,
tt.test_type testType,
tu.usecase_no usecaseNo,
tu.name,
tu.tools,
tu.input,
tu.description,
tu.review_standard_id,
rs.chapter,
rs.text,
rs.test_method testMethod,
tr.test_result testResult
from t_test_usecase tu
left join t_test_scenario ts on tu.test_scenario_id = ts.id
left join t_test_type tt on tu.test_type_id = tt.id
left join t_review_standard rs on tu.review_standard_id = rs.id
left join t_task_scenario_relation tsr on tsr.test_scenario_id = ts.id
left join t_task t on tsr.task_id = t.id
left join t_model_test_task mtt on mtt.id = t.model_test_task_id
left join t_test_records tr on tu.case_id = tr.usecase_id
where mtt.id = #{id}
group by tu.id, tu.case_id, ts.test_scenario, tt.test_type, tu.usecase_no, tu.name, tu.tools, tu.input,
tu.description, tu.review_standard_id, rs.chapter, rs.text, rs.test_method, tr.test_result
</select>
<select id="selectOptionalUsecase" resultType="com.ruoyi.domain.vo.OptionalUseCasesVO">
......
......@@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserPhotoStorageList" parameterType="com.ruoyi.domain.UserPhotoStorage" resultMap="UserPhotoStorageResult">
<include refid="selectUserPhotoStorageVo"/>
<where>
deleted = 0
<if test="userId != null "> and user_id = #{userId}</if>
<if test="username != null and username != ''"> and username like concat('%', #{username}, '%')</if>
</where>
......
......@@ -22,7 +22,7 @@ import com.ruoyi.system.service.ISysLogininforService;
/**
* 系统访问记录
*
*
* @author ruoyi
*/
@RestController
......@@ -35,7 +35,6 @@ public class SysLogininforController extends BaseController
@Autowired
private SysPasswordService passwordService;
@PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
@GetMapping("/list")
public TableDataInfo list(SysLogininfor logininfor)
{
......@@ -45,7 +44,6 @@ public class SysLogininforController extends BaseController
}
@Log(title = "登录日志", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
@PostMapping("/export")
public void export(HttpServletResponse response, SysLogininfor logininfor)
{
......@@ -54,7 +52,6 @@ public class SysLogininforController extends BaseController
util.exportExcel(response, list, "登录日志");
}
@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
@Log(title = "登录日志", businessType = BusinessType.DELETE)
@DeleteMapping("/{infoIds}")
public AjaxResult remove(@PathVariable Long[] infoIds)
......@@ -62,7 +59,6 @@ public class SysLogininforController extends BaseController
return toAjax(logininforService.deleteLogininforByIds(infoIds));
}
@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
@Log(title = "登录日志", businessType = BusinessType.CLEAN)
@DeleteMapping("/clean")
public AjaxResult clean()
......@@ -71,7 +67,6 @@ public class SysLogininforController extends BaseController
return success();
}
@PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')")
@Log(title = "账户解锁", businessType = BusinessType.OTHER)
@GetMapping("/unlock/{userName}")
public AjaxResult unlock(@PathVariable("userName") String userName)
......
......@@ -21,7 +21,7 @@ import com.ruoyi.system.service.ISysOperLogService;
/**
* 操作日志记录
*
*
* @author ruoyi
*/
@RestController
......@@ -31,7 +31,6 @@ public class SysOperlogController extends BaseController
@Autowired
private ISysOperLogService operLogService;
@PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
@GetMapping("/list")
public TableDataInfo list(SysOperLog operLog)
{
......@@ -41,7 +40,6 @@ public class SysOperlogController extends BaseController
}
@Log(title = "操作日志", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
@PostMapping("/export")
public void export(HttpServletResponse response, SysOperLog operLog)
{
......@@ -51,7 +49,6 @@ public class SysOperlogController extends BaseController
}
@Log(title = "操作日志", businessType = BusinessType.DELETE)
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
@DeleteMapping("/{operIds}")
public AjaxResult remove(@PathVariable Long[] operIds)
{
......@@ -59,7 +56,6 @@ public class SysOperlogController extends BaseController
}
@Log(title = "操作日志", businessType = BusinessType.CLEAN)
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
@DeleteMapping("/clean")
public AjaxResult clean()
{
......
......@@ -22,7 +22,7 @@ import com.ruoyi.system.service.ISysNoticeService;
/**
* 公告 信息操作处理
*
*
* @author ruoyi
*/
@RestController
......@@ -35,7 +35,6 @@ public class SysNoticeController extends BaseController
/**
* 获取通知公告列表
*/
@PreAuthorize("@ss.hasPermi('system:notice:list')")
@GetMapping("/list")
public TableDataInfo list(SysNotice notice)
{
......@@ -47,7 +46,6 @@ public class SysNoticeController extends BaseController
/**
* 根据通知公告编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:notice:query')")
@GetMapping(value = "/{noticeId}")
public AjaxResult getInfo(@PathVariable Long noticeId)
{
......@@ -57,7 +55,6 @@ public class SysNoticeController extends BaseController
/**
* 新增通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:add')")
@Log(title = "通知公告", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysNotice notice)
......@@ -69,7 +66,6 @@ public class SysNoticeController extends BaseController
/**
* 修改通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:edit')")
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysNotice notice)
......@@ -81,7 +77,6 @@ public class SysNoticeController extends BaseController
/**
* 删除通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:remove')")
@Log(title = "通知公告", businessType = BusinessType.DELETE)
@DeleteMapping("/{noticeIds}")
public AjaxResult remove(@PathVariable Long[] noticeIds)
......
......@@ -90,7 +90,7 @@ public class SysUserController extends BaseController
role.setRoleName(request.getRoleName());
List<SysRole> roleList = roleService.selectRoleList(role);
if (CollUtil.isNotEmpty(roleList)) {
List<SysUser> list = userService.selectUserListByRoleId(roleList.get(0).getRoleId());
List<SysUser> list = userService.selectUserByRoleInDept(roleList.get(0).getRoleId());
return R.ok(list);
} else {
return R.fail("角色不存在");
......
......@@ -51,7 +51,13 @@ public class SysDept extends BaseEntity
/** 父部门名称 */
private String parentName;
/** 地址 */
private String address;
/** 邮编 */
private String postcode;
/** 子部门 */
private List<SysDept> children = new ArrayList<SysDept>();
......@@ -181,6 +187,22 @@ public class SysDept extends BaseEntity
this.children = children;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......@@ -198,6 +220,8 @@ public class SysDept extends BaseEntity
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("address",getAddress())
.append("postcode",getPostcode())
.toString();
}
}
......@@ -20,14 +20,19 @@ import java.util.regex.Pattern;
public class PdfBaseWriter extends Document{
// ---------------------------------默认参数---------------------------------
// public final String FONT_NAME_ST_SONG_LIGHT = "STSongStd-Light";
// public final String FONT_ENCODING_UNI_GB_UCS2_H = "UniGB-UCS2-H";
/**
* 中文字体
*/
public final String FONT_NAME_ST_SONG_LIGHT = "STSongStd-Light";
public final String FONT_NAME_ST_SONG_LIGHT = "/fonts/STSong.TTF";
/**
* 中文字体编码
*/
public final String FONT_ENCODING_UNI_GB_UCS2_H = "UniGB-UCS2-H";
public final String FONT_ENCODING_UNI_GB_UCS2_H = BaseFont.IDENTITY_H;
//---------------------------------常用字体/颜色---------------------------------
/**
......
......@@ -219,4 +219,10 @@ public interface ISysUserService
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
/**
* 通过角色ID查询在同部门下的所有用户
* @param roleId
* @return
*/
List<SysUser> selectUserByRoleInDept(Long roleId);
}
......@@ -4,6 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.mapper.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -22,17 +25,12 @@ import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
/**
* 用户 业务层处理
*
*
* @author ruoyi
*/
@Service
......@@ -61,6 +59,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
protected Validator validator;
@Autowired
private SysDeptMapper sysDeptMapper;
@Override
public List<SysUser> selectUserListByRoleId(Long roleId) {
return userMapper.selectUserListByRoleId(roleId);
......@@ -68,7 +69,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 根据条件分页查询用户列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
......@@ -81,7 +82,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 根据条件分页查询已分配用户角色列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
......@@ -100,7 +101,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 根据条件分页查询未分配用户角色列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
......@@ -113,7 +114,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户名查询用户
*
*
* @param userName 用户名
* @return 用户对象信息
*/
......@@ -125,7 +126,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户ID查询用户
*
*
* @param userId 用户ID
* @return 用户对象信息
*/
......@@ -137,7 +138,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 查询用户所属角色组
*
*
* @param userName 用户名
* @return 结果
*/
......@@ -154,7 +155,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 查询用户所属岗位组
*
*
* @param userName 用户名
* @return 结果
*/
......@@ -171,7 +172,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户名称是否唯一
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -225,7 +226,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户是否允许操作
*
*
* @param user 用户信息
*/
@Override
......@@ -239,7 +240,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户是否有数据权限
*
*
* @param userId 用户id
*/
@Override
......@@ -259,7 +260,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -278,7 +279,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 注册用户信息
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -290,7 +291,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -312,7 +313,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 用户授权角色
*
*
* @param userId 用户ID
* @param roleIds 角色组
*/
......@@ -326,7 +327,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户状态
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -338,7 +339,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户基本信息
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -350,7 +351,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户头像
*
*
* @param userName 用户名
* @param avatar 头像地址
* @return 结果
......@@ -363,7 +364,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 重置用户密码
*
*
* @param user 用户信息
* @return 结果
*/
......@@ -375,7 +376,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 重置用户密码
*
*
* @param userName 用户名
* @param password 密码
* @return 结果
......@@ -388,7 +389,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增用户角色信息
*
*
* @param user 用户对象
*/
public void insertUserRole(SysUser user)
......@@ -398,7 +399,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增用户岗位信息
*
*
* @param user 用户对象
*/
public void insertUserPost(SysUser user)
......@@ -421,7 +422,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增用户角色信息
*
*
* @param userId 用户ID
* @param roleIds 角色组
*/
......@@ -444,7 +445,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户ID删除用户
*
*
* @param userId 用户ID
* @return 结果
*/
......@@ -461,7 +462,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 批量删除用户信息
*
*
* @param userIds 需要删除的用户ID
* @return 结果
*/
......@@ -483,7 +484,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 导入用户数据
*
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
* @param operName 操作用户
......@@ -552,4 +553,46 @@ public class SysUserServiceImpl implements ISysUserService
}
return successMsg.toString();
}
/**
* 通过角色ID查询在同部门下的所有用户
* @param roleId
* @return
*/
@Override
public List<SysUser> selectUserByRoleInDept(Long roleId) {
List<SysUser> list = new ArrayList<>();
// 获取当前登陆用户的部门
Long deptId = SecurityUtils.getDeptId();
// 获取当前角色下的所有用户
List<SysUser> userList = selectUserListByRoleId(roleId);
// 查询出当前用户所在部门以及所有子部门
List<SysDept> deptList = sysDeptMapper.selectDeptList(new SysDept());
List<Long> userListInDept = new ArrayList<>();
userListInDept.add(deptId);
getAllDeptId(deptList, deptId, userListInDept);
for (SysUser user : userList) {
if (userListInDept.contains(user.getDeptId())) {
list.add(user);
}
}
return list;
}
/**
* 递归
* 查询出当前用户所在部门以及所有子部门
* @param deptList 传入的部门集合
* @param deptId 查询需要的部门ID
* @param userListInDept 存入的指定部门集合
*/
private void getAllDeptId(List<SysDept> deptList, Long deptId, List<Long> userListInDept) {
deptList.stream()
.filter(dept -> dept.getParentId().equals(deptId))
.forEach(dept -> {
userListInDept.add(dept.getDeptId());
getAllDeptId(deptList, dept.getDeptId(), userListInDept);
});
}
}
......@@ -20,10 +20,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="address" column="address" />
<result property="postcode" column="postcode" />
</resultMap>
<sql id="selectDeptVo">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.address, d.postcode
from sys_dept d
</sql>
......@@ -60,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name, d.address, d.postcode
from sys_dept d
where d.dept_id = #{deptId}
</select>
......@@ -99,6 +101,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null and email != ''">email,</if>
<if test="status != null">status,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="address != null and address != ''">address,</if>
<if test="postcode != null and postcode != ''">postcode,</if>
create_time
)values(
<if test="deptId != null and deptId != 0">#{deptId},</if>
......@@ -111,6 +115,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null and email != ''">#{email},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="address != null and address != ''">#{address},</if>
<if test="postcode != null and postcode != ''">#{postcode},</if>
sysdate()
)
</insert>
......@@ -127,6 +133,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null">email = #{email},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="address != null and address != ''">address = #{address},</if>
<if test="postcode != null and postcode != ''">postcode = #{postcode},</if>
update_time = sysdate()
</set>
where dept_id = #{deptId}
......
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