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<TransferDirectoryGroupMapper, TransferDirectoryGroup> 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.<TransferDirectoryGroup>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.<TransferDirectoryGroup>lambdaQuery().eq(TransferDirectoryGroup::getWorkstationGroupId, workstationGroupId));
|
/*
|
TransferDirectoryGroup group = (TransferDirectoryGroup) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getWorkstationGroupId();
|
}, workstationGroupId));*/
|
if (Func.isNotEmpty(group)) {
|
List<Workstation> workstationList = this.workstationService.listWorkStationByGroupId(Collections.singletonList(String.valueOf(group.getWorkstationGroupId())));
|
if (Func.isNotEmpty(workstationList)) {
|
List<Long> ids = workstationList.stream().map((v0) -> {
|
return v0.getId();
|
}).collect(Collectors.toList());
|
|
List<TransferDirectory> list = this.transferDirectoryService.list(Wrappers.<TransferDirectory>lambdaQuery().in(TransferDirectory::getWorkstationId, ids));
|
/*
|
List<TransferDirectory> list = this.transferDirectoryService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getWorkstationId();
|
}, ids));*/
|
if (Func.isNotEmpty(list)) {
|
this.transferDirectoryService.update(Wrappers.<TransferDirectory>lambdaUpdate().in(TransferDirectory::getWorkstationId, ids)
|
.set(TransferDirectory::getGroupAllPath, "/" + rootNodeId)
|
.set(TransferDirectory::getGroupId, rootNodeId));
|
List<TransferDirectoryFile> files = this.directoryFileService.list(Wrappers.<TransferDirectoryFile>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<TransferDirectoryFile> 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<TransferDirectory> transferDirectories = this.transferDirectoryService.list(Wrappers.<TransferDirectory>lambdaQuery()
|
.eq(TransferDirectory::getName, name)
|
.eq(Func.isNotEmpty(parentId), TransferDirectory::getGroupId, parentId)
|
.eq(TransferDirectory::getTenantId, tenantId));
|
|
/*
|
List<TransferDirectory> 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]));
|
}
|
}
|
}
|