package com.qianwen.smartman.modules.dnc.service.impl; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; 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.base.BaseServiceImpl; import com.qianwen.core.secure.utils.AuthUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.constant.CommonGroupConstant; import com.qianwen.smartman.common.constant.DncConstant; import com.qianwen.smartman.common.enums.CommonGroupTypeEnum; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.smartman.modules.cps.entity.Workstation; import com.qianwen.smartman.modules.cps.service.ICommonGroupService; import com.qianwen.smartman.modules.cps.service.IWorkstationService; import com.qianwen.smartman.modules.dnc.dto.TransferDirectoryGroupDto; import com.qianwen.smartman.modules.dnc.entity.TransferDirectory; import com.qianwen.smartman.modules.dnc.entity.TransferDirectoryFile; import com.qianwen.smartman.modules.dnc.entity.TransferDirectoryGroup; import com.qianwen.smartman.modules.dnc.enums.DncEnums; import com.qianwen.smartman.modules.dnc.mapper.TransferDirectoryGroupMapper; import com.qianwen.smartman.modules.dnc.service.ITransferDirectoryFileService; import com.qianwen.smartman.modules.dnc.service.ITransferDirectoryGroupService; import com.qianwen.smartman.modules.dnc.service.ITransferDirectoryService; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/service/impl/TransferDirectoryGroupServiceImpl.class */ public class TransferDirectoryGroupServiceImpl extends BaseServiceImpl implements ITransferDirectoryGroupService { @Autowired private TransferDirectoryGroupMapper transferDirectoryGroupMapper; @Autowired private ITransferDirectoryService transferDirectoryService; @Autowired private ICommonGroupService commonGroupService; @Autowired @Lazy private IWorkstationService workstationService; @Autowired @Lazy private ITransferDirectoryFileService directoryFileService; @Override // org.springblade.modules.dnc.service.ITransferDirectoryGroupService @Transactional(rollbackFor = {Exception.class}) public TransferDirectoryGroup saveWorkstationGroup(TransferDirectoryGroupDto transferDirectoryGroupDto) { TransferDirectoryGroup parentGroup = null; TransferDirectoryGroup transferDirectoryGroup = TransferDirectoryGroup.builder().build(); String parentAllPath = ""; if (transferDirectoryGroupDto.getWorkStationGroupParentId() != null) { parentGroup = getOne(Wrappers.lambdaQuery().eq(TransferDirectoryGroup::getWorkstationGroupId, transferDirectoryGroupDto.getWorkStationGroupId())); /* parentGroup = (TransferDirectoryGroup) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getWorkstationGroupId(); }, transferDirectoryGroupDto.getWorkStationGroupId()));*/ if (parentGroup != null) { parentAllPath = parentGroup.getAllPath(); transferDirectoryGroup.setParentId(parentGroup.getId()); } } else { Long rootNodeId = getRootNodeId(); parentAllPath = "/" + rootNodeId; transferDirectoryGroup.setParentId(rootNodeId); } checkName(parentGroup == null ? null : parentGroup.getId(), transferDirectoryGroupDto.getWorkStationGroupName(), transferDirectoryGroupDto.getWorkStationGroupId()); transferDirectoryGroup.setName(transferDirectoryGroupDto.getWorkStationGroupName()); transferDirectoryGroup.setWorkstationGroupId(transferDirectoryGroupDto.getWorkStationGroupId()); transferDirectoryGroup.setTenantId("000000"); save(transferDirectoryGroup); transferDirectoryGroup.setAllPath(parentAllPath + "/" + transferDirectoryGroup.getId()); updateById(transferDirectoryGroup); return transferDirectoryGroup; } @Override // org.springblade.modules.dnc.service.ITransferDirectoryGroupService public void deleteWorkstationGroup(Long workstationGroupId) { Long rootNodeId = getRootNodeId(); if (Func.isNotEmpty(workstationGroupId) && !workstationGroupId.equals(rootNodeId)) { TransferDirectoryGroup group = getOne(Wrappers.lambdaQuery().eq(TransferDirectoryGroup::getWorkstationGroupId, workstationGroupId)); /* TransferDirectoryGroup group = (TransferDirectoryGroup) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getWorkstationGroupId(); }, workstationGroupId));*/ if (Func.isNotEmpty(group)) { List workstationList = this.workstationService.listWorkStationByGroupId(Collections.singletonList(String.valueOf(group.getWorkstationGroupId()))); if (Func.isNotEmpty(workstationList)) { List ids = workstationList.stream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList()); List list = this.transferDirectoryService.list(Wrappers.lambdaQuery().in(TransferDirectory::getWorkstationId, ids)); /* List list = this.transferDirectoryService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getWorkstationId(); }, ids));*/ if (Func.isNotEmpty(list)) { this.transferDirectoryService.update(Wrappers.lambdaUpdate().in(TransferDirectory::getWorkstationId, ids) .set(TransferDirectory::getGroupAllPath, "/" + rootNodeId) .set(TransferDirectory::getGroupId, rootNodeId)); List files = this.directoryFileService.list(Wrappers.lambdaQuery().in(TransferDirectoryFile::getTransferDirectoryId, list.stream().map(TransferDirectory::getId).collect(Collectors.toList()))); /* this.transferDirectoryService.update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().in((v0) -> { return v0.getWorkstationId(); }, ids)).set((v0) -> { return v0.getGroupAllPath(); }, "/" + rootNodeId)).set((v0) -> { return v0.getGroupId(); }, rootNodeId)); List files = this.directoryFileService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getTransferDirectoryId(); }, (Collection) list.stream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList()))); */ for (TransferDirectoryFile file : files) { this.directoryFileService.saveOperationLog(file, DncEnums.LogOperationType.MOVE.getCode()); } } } removeById(group.getId()); } } } private Long getRootNodeId() { return this.commonGroupService.getDefaultGroup(CommonGroupTypeEnum.WORKSTATION.getName(), CommonGroupConstant.DEFAULT_CATEGORY).getId(); } public void checkName(Long parentId, String name, Long workstationGroupId) { String tenantId = AuthUtil.getTenantId(); if (DncConstant.WORK_STATION_FILE.equals(name)) { throw new ServiceException(MessageUtils.message("dnc.file.name.exist.same.parent.directory", new Object[0])); } List transferDirectories = this.transferDirectoryService.list(Wrappers.lambdaQuery() .eq(TransferDirectory::getName, name) .eq(Func.isNotEmpty(parentId), TransferDirectory::getGroupId, parentId) .eq(TransferDirectory::getTenantId, tenantId)); /* List transferDirectories = this.transferDirectoryService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getName(); }, name)).eq(Func.isNotEmpty(parentId), (v0) -> { return v0.getGroupId(); }, parentId).eq((v0) -> { return v0.getTenantId(); }, tenantId));*/ if (Func.isNotEmpty(transferDirectories)) { throw new ServiceException(MessageUtils.message("workstation.directory.name.already.exists", new Object[0])); } } }