package com.qianwen.smartman.modules.smis.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.List; import java.util.stream.Collectors; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.secure.utils.AuthUtil; import com.qianwen.core.tool.utils.CollectionUtil; import com.qianwen.smartman.modules.smis.dto.DeviceSimpleDTO; import com.qianwen.smartman.modules.smis.dto.MaintainProjectItemAddDTO; import com.qianwen.smartman.modules.smis.entity.MaintainProject; import com.qianwen.smartman.modules.smis.entity.MaintainProjectItem; import com.qianwen.smartman.modules.smis.mapper.MaintainProjectItemMapper; import com.qianwen.smartman.modules.smis.service.IMachineService; import com.qianwen.smartman.modules.smis.service.IMaintainProjectItemService; import com.qianwen.smartman.modules.smis.service.IMaintainProjectService; import com.qianwen.smartman.modules.smis.vo.MaintainProjectItemVO; import com.qianwen.smartman.modules.tpm.service.IMaintainPlanItemService; import com.qianwen.smartman.modules.tpm.service.IMaintainPlanService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class MaintainProjectItemServiceImpl extends ServiceImpl implements IMaintainProjectItemService { @Autowired @Lazy private IMaintainPlanService maintainPlanService; @Autowired @Lazy private IMaintainPlanItemService maintainPlanItemService; @Autowired @Lazy private IMachineService machineService; @Autowired @Lazy private IMaintainProjectService maintainProjectService; public List getMaintainProjectItemVoByProjectId(Long projectId, String tenantId) { return this.baseMapper.getMaintainProjectItemVoByProjectId(projectId, tenantId); } public List queryMaintainProjectItemListPage(Long projectId, String tenantId, IPage page) { return this.baseMapper.queryMaintainProjectItemListPage(projectId, tenantId, page); } public Long createMaintainProjectItem(MaintainProjectItemAddDTO maintainProjectItemAddDTO) { List list = getMaintainProjectItemVoByProjectId(maintainProjectItemAddDTO.getProjectId(), AuthUtil.getTenantId()); checkItemIsRepeat(list, maintainProjectItemAddDTO.getItemId()); MaintainProjectItem bean = new MaintainProjectItem(); bean.setProjectId(maintainProjectItemAddDTO.getProjectId()); bean.setItemId(maintainProjectItemAddDTO.getItemId()); save(bean); return bean.getId(); } @Transactional(rollbackFor = {Exception.class}) public Long deleteMaintainProjectItem(Long id) { MaintainProjectItem maintainProjectItem = (MaintainProjectItem) getById(id); if (maintainProjectItem == null) { throw new ServiceException(MessageUtils.message("cps.common.the.current.object.does.not.exist", new Object[0])); } getMaintainProjectItemVoByProjectId(maintainProjectItem.getProjectId(), AuthUtil.getTenantId()); removeById(id); return id; } private void checkItemIsRepeat(List maintainProjectItemList, Long itemId) { List itemIdList = (List) maintainProjectItemList.stream().map((v0) -> { return v0.getItemId(); }).distinct().collect(Collectors.toList()); if (itemIdList.contains(itemId)) { throw new ServiceException(MessageUtils.message("cps.tpm.item.can.not.repeat", new Object[0])); } } private void createMaintainPlan(MaintainProject maintainProject, List maintainProjectItemList, String tenantId, Long userId, String deptId) { List deviceResult = this.machineService.deviceListByDeviceTypeId(maintainProject.getDeviceTypeId()); if (CollectionUtil.isNotEmpty(deviceResult)) { } } }