package com.ruoyi.service.impl; import com.ruoyi.domain.ReviewDetails; import com.ruoyi.domain.ReviewDetailsResult; import com.ruoyi.domain.ReviewScene; import com.ruoyi.domain.ReviewSceneChangeTask; import com.ruoyi.mapper.ReviewDetailsMapper; import com.ruoyi.mapper.ReviewDetailsResultMapper; import com.ruoyi.mapper.ReviewKeyPointMapper; import com.ruoyi.mapper.ReviewSceneMapper; import com.ruoyi.service.ReviewDetailsService; import com.ruoyi.service.ReviewKeyPointService; import com.ruoyi.service.StrategyReviewSceneChange; import com.ruoyi.service.ReviewSceneService; 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.List; import java.util.Objects; @Transactional @Service public class StrategyReviewSceneChangeDelete implements StrategyReviewSceneChange, InitializingBean { @Autowired private StrategyReviewSceneChangeContext strategyReviewSceneChangeContext; @Autowired private ApplicationContext applicationContext; @Autowired private ReviewSceneService reviewSceneService; @Autowired private ReviewKeyPointService reviewKeyPointService; @Autowired private ReviewDetailsService reviewDetailsService; @Autowired private ReviewDetailsMapper reviewDetailsMapper; @Autowired private ReviewSceneMapper reviewSceneMapper; @Autowired private ReviewDetailsResultMapper reviewDetailsResultMapper; @Override public void doChange(ReviewSceneChangeTask reviewSceneChangeTask) { // 删除场景 if (Objects.equals(reviewSceneChangeTask.getOperationSort(), "DELETE_SCENE")) { reviewSceneService.removeById(reviewSceneChangeTask.getReviewSceneId()); } // 删除要点 if (Objects.equals(reviewSceneChangeTask.getOperationSort(), "DELETE_KEYPOINT")) { // 删除要点 reviewKeyPointService.removeById(reviewSceneChangeTask.getKeypointId()); // 删除包含的细则 List<ReviewDetails> reviewDetailsList = reviewDetailsMapper.findByKeyPointId(reviewSceneChangeTask.getKeypointId()); if (reviewDetailsList != null && reviewDetailsList.size() != 0) { reviewDetailsService.removeBatchByIds(reviewDetailsList); } // 删除细则对应的结果 (问卷是进行中的结果) List<ReviewDetailsResult> resultList = reviewDetailsResultMapper.findByDetailsList(reviewDetailsList); if (resultList != null && resultList.size() != 0) { reviewDetailsResultMapper.deleteBatchIds(resultList); } // 删除包含的场景 List<ReviewScene> reviewScenesList = reviewSceneService.findByDetailsList(reviewDetailsList); if (reviewScenesList != null && reviewScenesList.size() != 0) { reviewSceneService.removeBatchByIds(reviewScenesList); } } // 删除细则 if (Objects.equals(reviewSceneChangeTask.getOperationSort(), "DELETE_DETAILS")) { // 删除细则 reviewDetailsService.removeById(reviewSceneChangeTask.getDetailsId()); // 删除细则对应的结果 (问卷是进行中的结果) List<ReviewDetailsResult> resultList = reviewDetailsResultMapper.findByDetailsId(reviewSceneChangeTask.getDetailsId()); if (resultList != null && resultList.size() != 0) { reviewDetailsResultMapper.deleteBatchIds(resultList); } // 删除包含的场景 List<ReviewScene> reviewScenesList = reviewSceneMapper.findByDetailId(reviewSceneChangeTask.getDetailsId()); if (reviewScenesList != null && reviewScenesList.size() != 0) { reviewSceneService.removeBatchByIds(reviewScenesList); } } } @Override public void afterPropertiesSet() throws Exception { strategyReviewSceneChangeContext.putResource(ReviewSceneChangeTask.OPERATION_DELETE, applicationContext.getBean(this.getClass())); } }