|
@@ -3,18 +3,23 @@ package com.simuwang.manage.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
import com.simuwang.base.common.conts.DateConst;
|
|
import com.simuwang.base.common.conts.DateConst;
|
|
|
|
+import com.simuwang.base.common.exception.APIException;
|
|
import com.simuwang.base.common.support.MybatisPage;
|
|
import com.simuwang.base.common.support.MybatisPage;
|
|
|
|
+import com.simuwang.base.common.util.FileUtil;
|
|
import com.simuwang.base.common.util.StringUtil;
|
|
import com.simuwang.base.common.util.StringUtil;
|
|
import com.simuwang.base.mapper.*;
|
|
import com.simuwang.base.mapper.*;
|
|
import com.simuwang.base.pojo.dos.*;
|
|
import com.simuwang.base.pojo.dos.*;
|
|
import com.simuwang.base.pojo.dto.query.FundAliasPageQuery;
|
|
import com.simuwang.base.pojo.dto.query.FundAliasPageQuery;
|
|
import com.simuwang.base.pojo.vo.FundAliasVO;
|
|
import com.simuwang.base.pojo.vo.FundAliasVO;
|
|
import com.simuwang.base.pojo.vo.IdListVO;
|
|
import com.simuwang.base.pojo.vo.IdListVO;
|
|
|
|
+import com.simuwang.manage.dto.FundAliasDTO;
|
|
import com.simuwang.manage.service.EmailFundAssetService;
|
|
import com.simuwang.manage.service.EmailFundAssetService;
|
|
import com.simuwang.manage.service.EmailFundNavService;
|
|
import com.simuwang.manage.service.EmailFundNavService;
|
|
import com.simuwang.manage.service.EmailFundInfoService;
|
|
import com.simuwang.manage.service.EmailFundInfoService;
|
|
import com.simuwang.manage.service.FundAliasService;
|
|
import com.simuwang.manage.service.FundAliasService;
|
|
|
|
+import com.simuwang.manage.service.listener.FundAliasReadListener;
|
|
import com.simuwang.shiro.utils.UserUtils;
|
|
import com.simuwang.shiro.utils.UserUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -22,8 +27,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
|
+import java.io.IOException;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -157,6 +163,36 @@ public class FundAliasServiceImpl implements FundAliasService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public String updateFundAlias(MultipartFile file) {
|
|
|
|
+ String filename = file.getOriginalFilename();
|
|
|
|
+ boolean isExcel = FileUtil.isExcel(filename);
|
|
|
|
+ if (!isExcel) {
|
|
|
|
+ return "the file format is incorrect. Please upload an Excel file";
|
|
|
|
+ }
|
|
|
|
+ List<FundAliasDTO> fundAliasDTOList = CollUtil.newArrayList();
|
|
|
|
+ try {
|
|
|
|
+ EasyExcel.read(file.getInputStream(), FundAliasDTO.class, new FundAliasReadListener(fundAliasDTOList)).sheet().doRead();
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ log.error("read exception -> stack trace is :{}", ExceptionUtil.stacktraceToString(e));
|
|
|
|
+ throw new APIException("There is an exception when reading the file.");
|
|
|
|
+ }
|
|
|
|
+ if (CollUtil.isEmpty(fundAliasDTOList)) {
|
|
|
|
+ return "the content of the file is empty.";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ List<FundAliasDO> fundAliasDOList = fundAliasDTOList.stream().map(e -> {
|
|
|
|
+ FundAliasDO fundAliasDO = BeanUtil.copyProperties(e, FundAliasDO.class);
|
|
|
|
+ fundAliasDO.setUpdateTime(date);
|
|
|
|
+ return fundAliasDO;
|
|
|
|
+ }).toList();
|
|
|
|
+ if (CollUtil.isNotEmpty(fundAliasDOList)) {
|
|
|
|
+ fundAliasMapper.batchUpdate(fundAliasDOList);
|
|
|
|
+ }
|
|
|
|
+ return "update success";
|
|
|
|
+ }
|
|
|
|
+
|
|
private void updateFundAsset(String fundId, String fundName, String registerNumber) {
|
|
private void updateFundAsset(String fundId, String fundName, String registerNumber) {
|
|
List<EmailFundAssetDO> emailFundAssetDOList = emailFundAssetMapper.queryByNameAndReg(fundName, registerNumber);
|
|
List<EmailFundAssetDO> emailFundAssetDOList = emailFundAssetMapper.queryByNameAndReg(fundName, registerNumber);
|
|
if (CollUtil.isEmpty(emailFundAssetDOList)) {
|
|
if (CollUtil.isEmpty(emailFundAssetDOList)) {
|