龚焕茏
2024-03-05 6b9c1733decb4587667f0917d7d61b9c4a3c0097
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
@@ -9,17 +9,18 @@
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.demo.domain.RsSceneryInfo;
import org.dromara.demo.domain.RsSceneryOperationData;
import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
import org.dromara.demo.mapper.RsSceneryInfoMapper;
import org.dromara.demo.mapper.RsSceneryOperationDataMapper;
import org.dromara.demo.service.IRsSceneryOperationDataService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
 * 景区运行数据Service业务层处理
@@ -32,6 +33,7 @@
public class RsSceneryOperationDataServiceImpl implements IRsSceneryOperationDataService {
    private final RsSceneryOperationDataMapper baseMapper;
    private final RsSceneryInfoMapper sceneryInfoMapper;
    /**
     * 查询景区运行数据
@@ -122,4 +124,34 @@
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
    @Override
    public String importExcel(List<RsSceneryOperationData> list) {
        Set<String> sceneryInfoNames = new HashSet<>();
        // 查询数据库是否存在导入的景区
        Map<String, RsSceneryInfo> sceneryInfoMap = sceneryInfoMapper.selectList().stream()
            .collect(Collectors.toMap(RsSceneryInfo::getSceneryName, Function.identity()));
        for (RsSceneryOperationData operationData : list) {
            String sceneryName = operationData.getSceneryInfoName();
            RsSceneryInfo sceneryInfo = sceneryInfoMap.get(sceneryName);
            // 景区已存在,正常导入
            if (sceneryInfo != null) {
                operationData.setSceneryInfoId(sceneryInfo.getId());
                operationData.setPeriod(operationData.getPeriodDate().length() > 4 ? 1L : 2L);
                operationData.setCreateTime(new Date());
                operationData.setStatus(1L);
            } else {
                sceneryInfoNames.add(operationData.getSceneryInfoName());
            }
        }
        if (!sceneryInfoNames.isEmpty()) {
            return "很抱歉,导入失败!" + String.join("、", "<" + sceneryInfoNames + ">") + "景区不存在,请前往【景区配置】添加后重试!";
        }
        // // 其余数据禁用
        // LambdaUpdateWrapper<RsSceneryOperationData> updateWrapper = new LambdaUpdateWrapper<>();
        // updateWrapper.ne(RsSceneryOperationData::getId, operationData.getId()).eq(RsSceneryOperationData::getSceneryInfoId, operationData.getSceneryInfoId()).set(RsSceneryOperationData::getStatus, 2);
        // baseMapper.update(updateWrapper);
        baseMapper.insertBatch(list);
        return "恭喜您,数据已全部导入成功!共"  + list.size() + "条!";
    }
}