package com.gkhy.labRiskManage.domain.riskReport.service.impl;
|
|
import com.gkhy.labRiskManage.api.controller.riskReport.dto.repDto.RiskUnitListReqBO;
|
import com.gkhy.labRiskManage.application.riskReport.dto.bo.InherentRiskUnitAppInsertBO;
|
import com.gkhy.labRiskManage.application.riskReport.dto.bo.RiskUnitAppInsertBO;
|
import com.gkhy.labRiskManage.application.riskReport.dto.bo.RiskUnitAppQueryBO;
|
import com.gkhy.labRiskManage.application.riskReport.dto.bo.RiskUnitAppUpdateBO;
|
import com.gkhy.labRiskManage.commons.domain.SearchResult;
|
import com.gkhy.labRiskManage.commons.enums.ResultCode;
|
import com.gkhy.labRiskManage.commons.enums.StatusEnum;
|
import com.gkhy.labRiskManage.commons.enums.UserRoleEnum;
|
import com.gkhy.labRiskManage.commons.enums.UserTagEnum;
|
import com.gkhy.labRiskManage.commons.exception.BusinessException;
|
import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils;
|
import com.gkhy.labRiskManage.domain.account.model.dto.SysUserRoleBindDomainDTO;
|
import com.gkhy.labRiskManage.domain.account.model.dto.UserInfoDomainDTO;
|
import com.gkhy.labRiskManage.domain.account.service.UserDomainService;
|
import com.gkhy.labRiskManage.domain.basic.entity.BasicRiskUnit;
|
import com.gkhy.labRiskManage.domain.basic.entity.BasicRiskUnitType;
|
import com.gkhy.labRiskManage.domain.basic.model.dto.RiskUnitTypeDTO;
|
import com.gkhy.labRiskManage.domain.basic.repository.jpa.BasicRiskUnitRepository;
|
import com.gkhy.labRiskManage.domain.basic.service.BasicRiskUnitTypeService;
|
import com.gkhy.labRiskManage.domain.experiment.model.dto.ExperimentInfoDTO;
|
import com.gkhy.labRiskManage.domain.experiment.service.ExperimentInfoService;
|
import com.gkhy.labRiskManage.domain.riskReport.entity.RiskAssessPlan;
|
import com.gkhy.labRiskManage.domain.riskReport.entity.RiskUnit;
|
import com.gkhy.labRiskManage.domain.riskReport.model.dto.*;
|
import com.gkhy.labRiskManage.domain.riskReport.repository.jpa.RiskAssessPlanRepository;
|
import com.gkhy.labRiskManage.domain.riskReport.repository.jpa.RiskUnitRepository;
|
import com.gkhy.labRiskManage.domain.riskReport.service.RiskAssessPlanService;
|
import com.gkhy.labRiskManage.domain.riskReport.service.RiskUnitService;
|
import com.gkhy.labRiskManage.domain.riskReport.utils.GetRoleTagUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.ObjectUtils;
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Root;
|
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
/**
|
* 实验风险单元
|
*/
|
@Service
|
public class RiskUnitServiceImpl implements RiskUnitService {
|
|
@Autowired
|
private RiskUnitRepository riskUnitRepository;
|
@Autowired
|
private UserDomainService userDomainService;
|
@Autowired
|
private BasicRiskUnitTypeService riskUnitTypeService;
|
@Autowired
|
private ExperimentInfoService experimentInfoService;
|
@Autowired
|
private RiskAssessPlanRepository riskAssessPlanService;
|
|
@Autowired
|
private BasicRiskUnitRepository basicRiskUnitRepository;
|
|
|
/**
|
* 实验风险单元 - 插入
|
*/
|
@Override
|
public RiskUnitInsertDTO insertRiskUnit(Long currentUserId, RiskUnitAppInsertBO insertParam) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆");
|
}
|
UserInfoDomainDTO userInfoById = userDomainService.getUserInfoById(currentUserId);
|
//参数校验
|
if (ObjectUtils.isEmpty(insertParam)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "参数不能为空");
|
}
|
if (ObjectUtils.isEmpty(insertParam.getRiskCode())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元编号不能为空");
|
}
|
RiskUnit unitByCode = riskUnitRepository.getUnitByCode(insertParam.getRiskCode(), insertParam.getExperimentId());
|
if (!ObjectUtils.isEmpty(unitByCode)){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), "编号已被使用");
|
}
|
if (ObjectUtils.isEmpty(insertParam.getRiskName())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元名称不能为空");
|
}
|
if (ObjectUtils.isEmpty(insertParam.getLiabilityUserId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "责任人不能为空");
|
}
|
if (ObjectUtils.isEmpty(insertParam.getRiskUnitTypeId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元类型不能为空");
|
}
|
BasicRiskUnitType riskUnitTypeById = riskUnitTypeService.getRiskUnitTypeById(insertParam.getRiskUnitTypeId());
|
if (ObjectUtils.isEmpty(riskUnitTypeById)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元类型不存在或已被删除");
|
}
|
// if (ObjectUtils.isEmpty(insertParam.getLiabilityDep())){
|
// throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "责任部门不能为空");
|
// }
|
|
//参数接收到的封装
|
RiskUnit riskUnit = BeanCopyUtils.copyBean(insertParam, RiskUnit.class);
|
//获取需要的参数
|
LocalDateTime date = LocalDateTime.now();
|
|
riskUnit.setCreateTime(date);
|
riskUnit.setUpdateTime(date);
|
riskUnit.setCreateByUserId(userInfoById.getId());
|
riskUnit.setUpdateByUserId(userInfoById.getId());
|
riskUnit.setLiabilityUserId(insertParam.getLiabilityUserId());
|
riskUnit.setDeleteStatus(StatusEnum.DELETE_NOT.getCode().byteValue());
|
riskUnit.setRiskType(StatusEnum.EXPERIMENT_RISK.getCode().byteValue());
|
riskUnit.setEvaluateStatus(StatusEnum.EVALUATE_NOT.getCode().byteValue());
|
|
RiskUnit saveResult = riskUnitRepository.save(riskUnit);
|
|
RiskUnitInsertDTO riskUnitInsertDTO = BeanCopyUtils.copyBean(saveResult, RiskUnitInsertDTO.class);
|
|
return riskUnitInsertDTO;
|
}
|
|
/**
|
* 固有风险单元 - 插入
|
*/
|
@Override
|
public RiskUnitInsertDTO insertInherentRiskUnit(Long currentUserId, InherentRiskUnitAppInsertBO insertParam) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(),"当前用户无效,请重新登陆");
|
}
|
UserInfoDomainDTO userInfoById = userDomainService.getUserInfoById(currentUserId);
|
//参数校验
|
if (ObjectUtils.isEmpty(insertParam)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "参数不能为空");
|
}
|
if (ObjectUtils.isEmpty(insertParam.getBasicRiskUnitId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元不能为空");
|
}
|
|
//参数接收到的封装
|
RiskUnit riskUnit = BeanCopyUtils.copyBean(insertParam, RiskUnit.class);
|
//获取需要的参数
|
LocalDateTime date = LocalDateTime.now();
|
|
riskUnit.setCreateTime(date);
|
riskUnit.setUpdateTime(date);
|
riskUnit.setCreateByUserId(userInfoById.getId());
|
riskUnit.setUpdateByUserId(userInfoById.getId());
|
riskUnit.setDeleteStatus(StatusEnum.DELETE_NOT.getCode().byteValue());
|
riskUnit.setRiskType(StatusEnum.INHERENT_RISK.getCode().byteValue());
|
|
RiskUnit saveResult = riskUnitRepository.save(riskUnit);
|
RiskUnitInsertDTO riskUnitInsertDTO = BeanCopyUtils.copyBean(saveResult, RiskUnitInsertDTO.class);
|
|
return riskUnitInsertDTO;
|
}
|
|
/**
|
* 风险单元 - 分页查询
|
*/
|
@Override
|
public SearchResult<RiskUnitQueryDTO> selectRiskUnitPage(Long currentUserId, RiskUnitAppQueryBO queryParam) {
|
|
//校验参数
|
if (ObjectUtils.isEmpty(queryParam.getPageSize())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"分页信息不能为空");
|
}
|
if (ObjectUtils.isEmpty(queryParam.getPageIndex())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"分页信息不能为空");
|
}
|
if (queryParam.getExperimentName() == "null"){
|
queryParam.setExperimentName(null);
|
}
|
if (queryParam.getRiskCode() == "null"){
|
queryParam.setRiskCode(null);
|
}
|
if (queryParam.getRiskName() == "null"){
|
queryParam.setRiskName(null);
|
}
|
|
SearchResult searchResult = new SearchResult<>();
|
searchResult.setPageIndex(queryParam.getPageIndex());
|
searchResult.setPageSize(queryParam.getPageSize());
|
|
List<Long> experimentIds = new ArrayList<>();
|
//实验负责人
|
List<ExperimentInfoDTO> experimentByUser = experimentInfoService.getExperimentByUser(currentUserId);
|
if (ObjectUtils.isEmpty(experimentByUser)){
|
for (ExperimentInfoDTO experimentInfo : experimentByUser) {
|
experimentIds.add(experimentInfo.getId());
|
}
|
}
|
//辨识专家,评价专家,辨识专家
|
List<RiskAssessPlan> assessPlanBySpecialist = riskAssessPlanService.getAssessPlanBySpecialist(currentUserId);
|
if (ObjectUtils.isEmpty(assessPlanBySpecialist)){
|
for (RiskAssessPlan assessPlan : assessPlanBySpecialist) {
|
experimentIds.add(assessPlan.getExperimentId());
|
}
|
}
|
|
UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
|
int roleTag = GetRoleTagUtils.GetRoleTagUtils(user);
|
//封装查询参数
|
Specification<RiskUnit> specification = new Specification<RiskUnit>() {
|
@Override
|
public Predicate toPredicate(Root<RiskUnit> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
|
List<Predicate> predicateList = new ArrayList<>();
|
if (queryParam.getRiskName() != null && !queryParam.getRiskName().equals("")){
|
predicateList.add(criteriaBuilder.like(root.get("riskName"),"%"+queryParam.getRiskName()+"%"));
|
}
|
if (queryParam.getRiskCode() != null && !queryParam.getRiskCode().equals("")){
|
predicateList.add(criteriaBuilder.like(root.get("riskCode"), "%"+queryParam.getRiskCode()+"%"));
|
}
|
// if (roleTag == 0){
|
// predicateList.add(criteriaBuilder.in(root.get("experimentId")).value(experimentIds));
|
// }
|
if (queryParam.getExperimentId() != null){
|
predicateList.add(criteriaBuilder.equal(root.get("experimentId"),queryParam.getExperimentId()));
|
}
|
predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"), StatusEnum.DELETE_NOT.getCode()));
|
return criteriaBuilder.and(predicateList.toArray(new Predicate[0]));
|
}
|
};
|
|
PageRequest pageParam = PageRequest.of(queryParam.getPageIndex() - 1, queryParam.getPageSize(), Sort.Direction.DESC, "updateTime");
|
Page<RiskUnit> pageResult = riskUnitRepository.findAll(specification, pageParam);
|
|
List<RiskUnitQueryDTO> riskUnitQueryDTOS = BeanCopyUtils.copyBeanList(pageResult.getContent(), RiskUnitQueryDTO.class);
|
|
List<RiskUnitTypeDTO> riskUnitTypeList = riskUnitTypeService.listRiskUnitType();
|
//取出所有用户
|
List<UserInfoDomainDTO> userList = userDomainService.getUserList();
|
for (RiskUnitQueryDTO riskUnitQueryDTO : riskUnitQueryDTOS) {
|
for (UserInfoDomainDTO userInfo : userList) {
|
if (userInfo.getId() == riskUnitQueryDTO.getCreateByUserId()){
|
riskUnitQueryDTO.setCreateByUserName(userInfo.getRealName());
|
}
|
if (userInfo.getId() == riskUnitQueryDTO.getUpdateByUserId()){
|
riskUnitQueryDTO.setUpdateByUserName(userInfo.getRealName());
|
}
|
}
|
//目前只有实验风险,添加类型。
|
if (riskUnitQueryDTO.getRiskType() == 2){
|
for (RiskUnitTypeDTO riskUnitType : riskUnitTypeList) {
|
if (riskUnitQueryDTO.getRiskUnitTypeId().equals(riskUnitType.getId())){
|
riskUnitQueryDTO.setRiskUnitType(riskUnitType.getRiskType());
|
}
|
}
|
}
|
}
|
|
searchResult.setData(riskUnitQueryDTOS);
|
searchResult.setTotal(pageResult.getTotalElements());
|
return searchResult;
|
}
|
|
/**
|
* 风险单元 - 修改
|
*/
|
@Override
|
public RiskUnitInsertDTO updateRiskUnit(Long currentUserId, RiskUnitAppUpdateBO updateParam) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆");
|
}
|
UserInfoDomainDTO userInfoById = userDomainService.getUserInfoById(currentUserId);
|
//参数校验
|
if (ObjectUtils.isEmpty(updateParam)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "参数不能为空");
|
}
|
if (ObjectUtils.isEmpty(updateParam.getRiskCode())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元编号不能为空");
|
}
|
RiskUnit unitByCode = riskUnitRepository.getUnitByCode(updateParam.getRiskCode(),updateParam.getExperimentId());
|
if (!ObjectUtils.isEmpty(unitByCode) && !updateParam.getId().equals(unitByCode.getId())){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), "编号已被使用");
|
}
|
if (ObjectUtils.isEmpty(updateParam.getRiskName())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元名称不能为空");
|
}
|
if (ObjectUtils.isEmpty(updateParam.getLiabilityUserId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "责任人不能为空");
|
}
|
if (ObjectUtils.isEmpty(updateParam.getRiskUnitTypeId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元类型不能为空");
|
}
|
BasicRiskUnitType riskUnitTypeById = riskUnitTypeService.getRiskUnitTypeById(updateParam.getRiskUnitTypeId());
|
if (ObjectUtils.isEmpty(riskUnitTypeById)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元类型不存在或已被删除");
|
}
|
// if (ObjectUtils.isEmpty(insertParam.getLiabilityDep())){
|
// throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "责任部门不能为空");
|
// }
|
RiskUnit unitById = riskUnitRepository.getUnitById(updateParam.getId());
|
|
if (unitById.getRiskType() == 1){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR.getCode(), "固有风险,信息无法修改");
|
}
|
if (unitById.getEvaluateStatus() == 2){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR.getCode(), "该实验风险单元已被评价,信息无法修改");
|
}
|
//参数接收到的封装
|
RiskUnit riskUnit = BeanCopyUtils.copyBean(unitById, RiskUnit.class);
|
//获取需要的参数
|
LocalDateTime date = LocalDateTime.now();
|
|
riskUnit.setUpdateTime(date);
|
riskUnit.setUpdateByUserId(userInfoById.getId());
|
riskUnit.setExperimentId(updateParam.getExperimentId());
|
riskUnit.setRiskCode(updateParam.getRiskCode());
|
riskUnit.setRiskName(updateParam.getRiskName());
|
riskUnit.setLiabilityUserId(updateParam.getLiabilityUserId());
|
riskUnit.setLiabilityDep(updateParam.getLiabilityDep());
|
riskUnit.setLiabilityDepId(updateParam.getLiabilityDepId());
|
riskUnit.setDescription(updateParam.getDescription());
|
riskUnit.setRiskUnitTypeId(riskUnitTypeById.getId());
|
|
RiskUnit updateResult = riskUnitRepository.save(riskUnit);
|
|
RiskUnitInsertDTO riskUnitInsertDTO = BeanCopyUtils.copyBean(updateResult, RiskUnitInsertDTO.class);
|
|
return riskUnitInsertDTO;
|
}
|
|
/**
|
* 风险单元 - 删除
|
*/
|
@Override
|
public RiskUnitDeleteDTO deleteRiskUnit(Long currentUserId, Long id) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"当前用户无效,请重新登陆");
|
}
|
UserInfoDomainDTO userInfoById = userDomainService.getUserInfoById(currentUserId);
|
|
if (ObjectUtils.isEmpty(id)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "删除的内容不能为空");
|
}
|
RiskUnit unitById = riskUnitRepository.getUnitById(id);
|
if (ObjectUtils.isEmpty(unitById)){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR.getCode(), "删除的内容不存在或已被删除");
|
}
|
if (unitById.getEvaluateStatus() == 2 && unitById.getRiskType() == 2){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR.getCode(), "该实验风险单元已被评价,无法删除");
|
}
|
//设置必要参数
|
LocalDateTime date = LocalDateTime.now();
|
|
RiskUnit riskUnit = BeanCopyUtils.copyBean(unitById, RiskUnit.class);
|
|
riskUnit.setUpdateTime(date);
|
riskUnit.setUpdateByUserId(userInfoById.getId());
|
riskUnit.setDeleteStatus(StatusEnum.DELETED.getCode().byteValue());
|
|
RiskUnit deleteResult = riskUnitRepository.save(riskUnit);
|
|
return BeanCopyUtils.copyBean(deleteResult, RiskUnitDeleteDTO.class);
|
}
|
|
/**
|
* 风险单元 - 查询by id
|
*/
|
@Override
|
public RiskUnitQueryDTO getRiskUnitById(Long id) {
|
if (ObjectUtils.isEmpty(id)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "查询的内容不能为空");
|
}
|
RiskUnit unitById = riskUnitRepository.getUnitById(id);
|
if (ObjectUtils.isEmpty(unitById)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元不存在或已被删除");
|
}
|
return BeanCopyUtils.copyBean(unitById, RiskUnitQueryDTO.class);
|
}
|
|
/**
|
* 风险单元 - 查询by name
|
*/
|
@Override
|
public List<RiskUnitQueryDTO> getRiskUnitByName(String riskUnitName) {
|
if (ObjectUtils.isEmpty(riskUnitName)){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "查询的内容不能为空");
|
}
|
List<RiskUnit> riskUnitList = riskUnitRepository.getRiskUnitByName(riskUnitName);
|
if (riskUnitList.size() < 1){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "风险单元不存在或已被删除");
|
}
|
return BeanCopyUtils.copyBeanList(riskUnitList, RiskUnitQueryDTO.class);
|
}
|
/**
|
* 基础风险单元管理 - 列表查询
|
*/
|
@Override
|
public List<RiskUnitListAppQueryDTO> listRiskUnit(Long currentUserId) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), "当前用户无效,请重新登录");
|
}
|
|
UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
|
int roleTag = GetRoleTagUtils.GetRoleTagUtils(user);
|
|
List<RiskUnit> riskUnits = new ArrayList<>();
|
|
if (roleTag != UserTagEnum.USER_TAG_0.getCode()){
|
riskUnits = riskUnitRepository.listRiskUnit();
|
List<BasicRiskUnit> basicRiskUnits = basicRiskUnitRepository.listRiskUnit(); //todo 固有评价
|
// for (BasicRiskUnit basicRiskUnit : basicRiskUnits) {
|
//
|
// }
|
}else {
|
riskUnits = riskUnitRepository.listRiskUnitByUserId(currentUserId);
|
List<BasicRiskUnit> basicRiskUnits = basicRiskUnitRepository.listRiskUnitByUserId(currentUserId);//todo 固有评价
|
}
|
|
List<RiskUnitListAppQueryDTO> riskUnitList = BeanCopyUtils.copyBeanList(riskUnits, RiskUnitListAppQueryDTO.class);
|
List<RiskUnitTypeDTO> riskUnitTypeList = riskUnitTypeService.listRiskUnitType();
|
for (RiskUnitListAppQueryDTO riskUnit : riskUnitList) {
|
for (RiskUnitTypeDTO riskUnitType : riskUnitTypeList) {
|
if (riskUnit.getRiskUnitTypeId().equals(riskUnitType.getId())){
|
riskUnit.setRiskUnitType(riskUnitType.getRiskType());
|
}
|
}
|
}
|
return riskUnitList;
|
}
|
|
/**
|
* 风险单元管理 - 列表查询 -根据实验信息
|
*/
|
@Override
|
public List<RiskUnitListAppQueryDTO> listRiskUnitByExperiment(Long currentUserId, RiskUnitListReqBO reqBO) {
|
|
if (currentUserId < 0){
|
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), "当前用户无效,请重新登录");
|
}
|
if (ObjectUtils.isEmpty(reqBO.getExperimentId())){
|
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "实验信息无效");
|
}
|
UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
|
int roleTag = GetRoleTagUtils.GetRoleTagUtils(user);
|
|
List<RiskUnit> riskUnits = new ArrayList<>();
|
|
if (roleTag != UserTagEnum.USER_TAG_0.getCode()){
|
riskUnits = riskUnitRepository.listRiskUnitByExperiment(reqBO);
|
}else {
|
riskUnits = riskUnitRepository.listRiskUnitByExperimentAndUserId(currentUserId, reqBO);
|
}
|
|
List<RiskUnitListAppQueryDTO> riskUnitList = BeanCopyUtils.copyBeanList(riskUnits, RiskUnitListAppQueryDTO.class);
|
List<RiskUnitTypeDTO> riskUnitTypeList = riskUnitTypeService.listRiskUnitType();
|
for (RiskUnitListAppQueryDTO riskUnit : riskUnitList) {
|
for (RiskUnitTypeDTO riskUnitType : riskUnitTypeList) {
|
if (riskUnit.getRiskUnitTypeId().equals(riskUnitType.getId())){
|
riskUnit.setRiskUnitType(riskUnitType.getRiskType());
|
}
|
}
|
}
|
return riskUnitList;
|
}
|
|
/**
|
* 基础风险单元管理 - 已添加评估计划的unit
|
*/
|
@Override
|
public List<RiskUnitListAppQueryDTO> listAssessRiskUnit() {
|
List<RiskUnit> riskUnits = riskUnitRepository.listAssessRiskUnit();
|
return BeanCopyUtils.copyBeanList(riskUnits, RiskUnitListAppQueryDTO.class);
|
}
|
|
@Override
|
public List<RiskUnit> getRiskUnitByExperimentId(Long id) {
|
List<RiskUnit> riskUnitList= riskUnitRepository.getRiskUnitByExperimentId(id);
|
return riskUnitList;
|
}
|
|
@Override
|
public RiskUnit updateRiskUnitStatus(Long id, int status) {
|
RiskUnit unitById = riskUnitRepository.getUnitById(id);
|
unitById.setEvaluateStatus((byte) status);
|
return riskUnitRepository.save(unitById);
|
}
|
|
@Override
|
public List<RiskUnit> listInherentRiskUnit() {
|
|
List<RiskUnit> riskUnits = riskUnitRepository.listInherentRiskUnit();
|
return riskUnits;
|
}
|
}
|