package com.qianwen.smartman.modules.smis.service.impl; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.service.impl.BladeServiceImpl; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.smis.entity.DeviceTypeCheckProject; import com.qianwen.smartman.modules.smis.mapper.DeviceTypeCheckProjectMapper; import com.qianwen.smartman.modules.smis.service.IDeviceCheckService; import com.qianwen.smartman.modules.smis.vo.DeviceCheckSubmitVO; import com.qianwen.smartman.modules.smis.vo.DeviceTypeCheckProjectVO; @Service public class DeviceCheckServiceImpl extends BladeServiceImpl implements IDeviceCheckService { @Override @Transactional(rollbackFor = {Exception.class}) public List createDeviceCheck(DeviceCheckSubmitVO vo) { List checkProjectId = vo.getCheckProjectId(); if (Func.isEmpty(checkProjectId)) { throw new ServiceException(MessageUtils.message("cps.tpm.devicetype.checkproject.not.empty", new Object[0])); } Long deviceTypeId = vo.getDeviceTypeId(); Integer intervalTime = vo.getIntervalTime(); List list = list(Wrappers.lambdaQuery().eq(DeviceTypeCheckProject::getDeviceTypeId, deviceTypeId)); Set checkProjectIdSet = list.stream().map((v0) -> { return v0.getCheckProjectId(); }).collect(Collectors.toSet()); boolean anyMatch = checkProjectId.stream().anyMatch(checkProjectIdSet::contains); /* Stream stream = checkProjectId.stream(); checkProjectIdSet.getClass(); boolean anyMatch = stream.anyMatch((v1) -> { return r1.contains(v1); });*/ if (anyMatch) { throw new ServiceException(MessageUtils.message("cps.tpm.devicetype.checkproject.same", new Object[0])); } List collect = checkProjectId.stream().map(c -> { return DeviceTypeCheckProject.builder().deviceTypeId(deviceTypeId).checkProjectId(c).intervalTime(intervalTime).build(); }).collect(Collectors.toList()); saveBatch(collect); return collect; } @Override public List listDeviceCheck(Long id) { return this.baseMapper.listDeviceCheck(id); } }