package com.qianwen.smartman.modules.dnc.service.impl;
|
|
import java.util.List;
|
import java.util.Map;
|
import java.util.function.Function;
|
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.base.BaseServiceImpl;
|
import com.qianwen.core.secure.utils.AuthUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.constant.CommonConstant;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.smartman.modules.dnc.entity.DncWsRelationTd;
|
import com.qianwen.smartman.modules.dnc.entity.TransferDirectory;
|
import com.qianwen.smartman.modules.dnc.entity.TransferDirectoryGroup;
|
import com.qianwen.smartman.modules.dnc.mapper.DncWsRelationTdMapper;
|
import com.qianwen.smartman.modules.dnc.service.IDncFixedSpaceService;
|
import com.qianwen.smartman.modules.dnc.service.IDncWsRelationTdService;
|
import com.qianwen.smartman.modules.dnc.service.ITransferDirectoryService;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationTdVO;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/service/impl/DncWsRelationTdServiceImpl.class */
|
public class DncWsRelationTdServiceImpl extends BaseServiceImpl<DncWsRelationTdMapper, DncWsRelationTd> implements IDncWsRelationTdService {
|
private final ITransferDirectoryService transferDirectoryService;
|
private final IDncFixedSpaceService fixedSpaceService;
|
|
|
public DncWsRelationTdServiceImpl(final ITransferDirectoryService transferDirectoryService, final IDncFixedSpaceService fixedSpaceService) {
|
this.transferDirectoryService = transferDirectoryService;
|
this.fixedSpaceService = fixedSpaceService;
|
}
|
|
@Override // org.springblade.modules.dnc.service.IDncWsRelationTdService
|
@Transactional(rollbackFor = {Exception.class})
|
public WorkstationTdVO relationFtpDirectory(WorkstationTdVO workstationTdVO) {
|
TransferDirectory transferDirectory;
|
Integer type = workstationTdVO.getType();
|
String workstationId = workstationTdVO.getWorkstationId();
|
String workstationName = workstationTdVO.getWorkstationName();
|
String workstationGroupId = workstationTdVO.getWorkstationGroupId();
|
String directorTransferId = workstationTdVO.getDirectorTransferId();
|
if (CommonConstant.CREATE_SAME_DIRECTORY.equals(type)) {
|
TransferDirectory existSameDirectory = this.transferDirectoryService.getOne(Wrappers.<TransferDirectory>lambdaQuery().eq(TransferDirectory::getName, workstationName));
|
/*
|
TransferDirectory existSameDirectory = (TransferDirectory) this.transferDirectoryService.getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getName();
|
}, workstationName));*/
|
if (existSameDirectory != null) {
|
throw new ServiceException(MessageUtils.message("dnc.workstation.directory.create.same.name.exists", new Object[0]));
|
}
|
TransferDirectory transferDirectory2 = new TransferDirectory();
|
transferDirectory2.setWorkstationId(Long.valueOf(Long.parseLong(workstationId)));
|
transferDirectory2.setName(workstationName);
|
transferDirectory2.setTenantId("000000");
|
TransferDirectoryGroup directoryGroup = this.transferDirectoryService.getDirectoryGroup(Long.valueOf(Long.parseLong(workstationId)), Long.valueOf(Long.parseLong(workstationGroupId)));
|
if (directoryGroup != null) {
|
transferDirectory2.setGroupAllPath(directoryGroup.getAllPath());
|
transferDirectory2.setGroupId(directoryGroup.getId());
|
}
|
transferDirectory2.setDeptId(AuthUtil.getUserId());
|
boolean save = this.transferDirectoryService.save(transferDirectory2);
|
addRelationship(workstationId, String.valueOf(transferDirectory2.getId()));
|
if (save) {
|
this.fixedSpaceService.initializeRootNode("0", workstationName, String.valueOf(transferDirectory2.getId()));
|
}
|
}
|
List<TransferDirectory> list = this.transferDirectoryService.list();
|
if (Func.isEmpty(list)) {
|
throw new ServiceException(MessageUtils.message("dnc.ftp.directory.not.exist", new Object[0]));
|
}
|
Map<Long, TransferDirectory> transferDirectoryMap = list.stream().collect(Collectors.toMap((v0) -> {
|
return v0.getId();
|
}, Function.identity()));
|
if (CommonConstant.ASSOCIATED_DIRECTORY.equals(type) && (transferDirectory = transferDirectoryMap.get(Long.valueOf(Long.parseLong(directorTransferId)))) != null) {
|
addRelationship(workstationId, String.valueOf(transferDirectory.getId()));
|
}
|
return workstationTdVO;
|
}
|
|
public void addRelationship(String workstationId, String directoryId) {
|
DncWsRelationTd dncWsRelationTd = new DncWsRelationTd();
|
dncWsRelationTd.setTenantId("000000");
|
dncWsRelationTd.setWorkstationId(Long.valueOf(Long.parseLong(workstationId)));
|
dncWsRelationTd.setTransferDirectorId(Long.valueOf(Long.parseLong(directoryId)));
|
save(dncWsRelationTd);
|
}
|
}
|