package com.aps.core.service.impl;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.stream.Stream;
|
|
import com.aps.common.core.utils.DateUtils;
|
import com.aps.common.core.utils.uuid.IdUtils;
|
import com.aps.core.domain.ApsResourceGroupTemp;
|
import com.aps.core.mapper.ApsResourceGroupTempMapper;
|
import com.aps.core.param.ApsResourceGroupParam;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.aps.core.mapper.ApsResourceGroupMapper;
|
import com.aps.core.domain.ApsResourceGroup;
|
import com.aps.core.service.IApsResourceGroupService;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 资源组Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2025-04-10
|
*/
|
@Service
|
public class ApsResourceGroupServiceImpl implements IApsResourceGroupService
|
{
|
@Autowired
|
private ApsResourceGroupMapper apsResourceGroupMapper;
|
@Autowired
|
private ApsResourceGroupTempMapper apsResourceGroupTempMapper;
|
|
/**
|
* 查询资源组
|
*
|
* @param id 资源组主键
|
* @return 资源组
|
*/
|
@Override
|
public ApsResourceGroup selectApsResourceGroupById(String id)
|
{
|
return apsResourceGroupMapper.selectApsResourceGroupById(id);
|
}
|
|
/**
|
* 查询资源组列表
|
*
|
* @param apsResourceGroup 资源组
|
* @return 资源组
|
*/
|
@Override
|
public List<ApsResourceGroup> selectApsResourceGroupList(ApsResourceGroupParam apsResourceGroup)
|
{
|
return apsResourceGroupMapper.selectApsResourceGroupList(apsResourceGroup);
|
}
|
|
/**
|
* 新增资源组
|
*
|
* @param apsResourceGroup 资源组
|
* @return 结果
|
*/
|
@Override
|
public int insertApsResourceGroup(ApsResourceGroup apsResourceGroup)
|
{
|
apsResourceGroup.setCreateTime(DateUtils.getNowDate());
|
return apsResourceGroupMapper.insertApsResourceGroup(apsResourceGroup);
|
}
|
|
/**
|
* 修改资源组
|
*
|
* @param apsResourceGroup 资源组
|
* @return 结果
|
*/
|
@Override
|
public int updateApsResourceGroup(ApsResourceGroup apsResourceGroup)
|
{
|
apsResourceGroup.setUpdateTime(DateUtils.getNowDate());
|
return apsResourceGroupMapper.updateApsResourceGroup(apsResourceGroup);
|
}
|
|
/**
|
* 批量删除资源组
|
*
|
* @param ids 需要删除的资源组主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsResourceGroupByIds(String[] ids)
|
{
|
return apsResourceGroupMapper.deleteApsResourceGroupByIds(ids);
|
}
|
|
/**
|
* 删除资源组信息
|
*
|
* @param id 资源组主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsResourceGroupById(String id)
|
{
|
return apsResourceGroupMapper.deleteApsResourceGroupById(id);
|
}
|
|
/**
|
* 导入数据
|
* @param tempList
|
* @return 批次号
|
*/
|
@Override
|
public String importData(List<ApsResourceGroupTemp> tempList) {
|
String batchNum= IdUtils.fastUUID();
|
if (!tempList.isEmpty()) {
|
tempList.forEach(temp->{
|
temp.setId(IdUtils.simpleUUID());
|
//计算逻辑:理论产能=设备数量x每日理论时间x截止需求日剩余天数
|
temp.setTheoryCapacity(temp.getDevicesQuantity()*temp.getTheoryHours()*temp.getRestDays());
|
temp.setBatchNumber(batchNum);
|
temp.setCreateTime(DateUtils.getNowDate());
|
apsResourceGroupTempMapper.insertApsResourceGroupTemp(temp);
|
});
|
}
|
return batchNum;
|
}
|
/**
|
* 确认数据
|
* @param batchNum
|
* @param requestDate
|
*/
|
@Transactional
|
public void confirmData(String batchNum, LocalDateTime requestDate){
|
ApsResourceGroupTemp param = new ApsResourceGroupTemp();
|
param.setBatchNumber(batchNum);
|
List<ApsResourceGroupTemp> tempList = apsResourceGroupTempMapper.selectApsResourceGroupTempList(param);
|
List<String> groupName = tempList.stream().map(x -> x.getResourceGroupName()).distinct().toList();
|
if (!tempList.isEmpty()) {
|
/*根据资源组名称删除旧的数据*/
|
apsResourceGroupMapper.deleteResourceGroupByNames(groupName.toArray(new String[0]));
|
Stream<ApsResourceGroup> apsResourceGroupStream = tempList.stream().map(x -> x.getApsResourceGroup());
|
apsResourceGroupStream.forEach(x->{
|
x.setRequestDate(requestDate);
|
x.setCreateTime(DateUtils.getNowDate());
|
apsResourceGroupMapper.insertApsResourceGroup(x);
|
});
|
apsResourceGroupMapper.deleteApsResourceGroupTempByBatchNumber(batchNum);
|
|
}
|
}
|
}
|