新增中文转拼音工具

main
whb 6 months ago
parent e09853e7e9
commit 4a2b964c40

@ -96,5 +96,13 @@
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>com.github.stuxuhai</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/pinyin4j-2.5.0.jar</systemPath>
</dependency>
</dependencies>
</project>

@ -1,6 +1,7 @@
package com.gccloud.dataroom.core.module.manage.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gccloud.common.permission.ApiPermission;
@ -13,6 +14,7 @@ import com.gccloud.dataroom.core.utils.DemoDataListener;
import com.gccloud.dataset.constant.DatasetConstant;
import com.gccloud.dataset.dto.DatasetDTO;
import com.gccloud.dataset.entity.DatasetEntity;
import com.gccloud.dataset.entity.config.BaseDataSetConfig;
import com.gccloud.dataset.service.IBaseDataSetService;
import com.gccloud.dataset.service.IDatasetLabelService;
import io.swagger.annotations.Api;
@ -26,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
/**
* @author 17803
@ -46,33 +49,50 @@ public class NeUploadExcelController {
@Autowired
private IBaseDataSetService dataSetService;
@ApiOperation("新增Excel")
@PostMapping("/newAdd")
@ApiOperation("上传Excel")
@PostMapping("/uploadExcel")
@ApiPermission(permissions = {DatasetConstant.Permission.Dataset.ADD})
@Transactional(rollbackFor = Exception.class)
public R<String> newAdd(String datasetDTO, @RequestParam("file") @RequestPart MultipartFile file) throws IOException {
DatasetDTO datasetByJson = JSON.parseObject(datasetDTO, DatasetDTO.class);
// IBaseDataSetService dataSetService = dataSetServiceFactory.build(datasetByJson.getDatasetType());
String id = dataSetService.add(datasetByJson);
public R uploadExcel(@RequestParam("file") @RequestPart MultipartFile file,String userId) throws IOException {
//存储excel数据 根据id关联
String s = UUID.randomUUID().toString().replaceAll("-", "");
DemoDataListener demoDataListener = new DemoDataListener(neUploadExcelDao, userId, s);
// 这里 需要指定读用哪个class去读然后读取第一个sheet 文件流会自动关闭
EasyExcel.read(file.getInputStream(), StuUploadExcelUser.class,
new DemoDataListener(neUploadExcelDao, datasetByJson.getRemark(), id)).sheet().doRead();
new DemoDataListener(neUploadExcelDao, userId, s)).sheet().doRead();
return R.success(s);
}
@ApiOperation("分页查询excel")
@GetMapping("/getExcelByPage")
@ApiPermission(permissions = {DatasetConstant.Permission.Dataset.ADD})
public R getExcelByPage(String userId,Integer index,Integer size,String value) throws IOException {
LambdaQueryWrapper<StuUploadExcelUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StuUploadExcelUser::getModule,value);
IPage page = new Page(index,size);
neUploadExcelDao.selectPage(page, wrapper);
R<Object> objectR = new R<>(200,String.valueOf(page.getTotal()),page.getRecords());
// 保存与标签的关联关系
List<String> labelIds = datasetByJson.getLabelIds();
if (labelIds == null || labelIds.isEmpty()) {
return R.success(id);
}
datasetLabelService.addByDatasetId(id, labelIds);
return R.success(id);
return R.success(objectR);
}
@ApiOperation("新详情")
@GetMapping("/NewInfo")
@ApiPermission(permissions = {DatasetConstant.Permission.Dataset.VIEW})
@ -83,8 +103,20 @@ public class NeUploadExcelController {
DatasetEntityDTO datasetEntityDTO = new DatasetEntityDTO();
BeanUtils.copyProperties(datasetEntity,datasetEntityDTO);
BaseDataSetConfig config = datasetEntity.getConfig();
String value = config.getParamsList().get(0).getValue();
LambdaQueryWrapper<StuUploadExcelUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StuUploadExcelUser::getModule,value);
IPage page = new Page(index,size);
neUploadExcelDao.selectPage(page, null);
neUploadExcelDao.selectPage(page, wrapper);
datasetEntityDTO.setUploadExcelList(page.getRecords());

@ -7,6 +7,7 @@ import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.util.ConverterUtils;
import com.alibaba.excel.util.ListUtils;
import net.sourceforge.pinyin4j.PinyinHelper;
import com.gccloud.common.utils.JSON;
import com.gccloud.dataroom.core.module.manage.dao.NeUploadExcelDao;
@ -27,7 +28,7 @@ public class DemoDataListener implements ReadListener<StuUploadExcelUser> {
* 5使100list 便
*
*/
private static final int BATCH_COUNT = 150;
private static final int BATCH_COUNT = 50;
private static final int MAX_COUNT = 1000; // 最大处理条数
/**
*
@ -43,6 +44,9 @@ public class DemoDataListener implements ReadListener<StuUploadExcelUser> {
List<String> list = new ArrayList<String>();
// 存储转换后的拼音列表
List<String> pinyinList = new ArrayList<>();
/**
* 使spring,使Listenerspring
*
@ -76,6 +80,32 @@ public class DemoDataListener implements ReadListener<StuUploadExcelUser> {
}
// 遍历list中的每个字符串
for (String chinese : list) {
StringBuilder pinyin = new StringBuilder();
// 遍历字符串中的每个字符
for (char c : chinese.toCharArray()) {
if (Character.toString(c).matches("[\\u4E00-\\u9FA5]")) {
// 获取拼音
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c);
if (pinyinArray != null) {
// 取第一个拼音
pinyin.append(pinyinArray[0].replaceAll("[1234]", ""));
}
} else {
// 非中文字符原样添加
pinyin.append(c);
}
}
// 将拼音结果添加到pinyinList
pinyinList.add(pinyin.toString().trim());
}
// 如果想转成成 Map<Integer,String>
// 方案1 不要implements ReadListener 而是 extends AnalysisEventListener
// 方案2 调用 ConverterUtils.convertToStringMap(headMap, context) 自动会转换
@ -133,7 +163,7 @@ public class DemoDataListener implements ReadListener<StuUploadExcelUser> {
cachedDataList.forEach(item->{
item.setUserId(userId);
item.setModule(id);
item.setStepOneA(JSON.toJSONString(list));
item.setStepOneA(JSON.toJSONString(pinyinList));
});
@ -141,7 +171,7 @@ public class DemoDataListener implements ReadListener<StuUploadExcelUser> {
demoDAO.insert(uploadExcelUser);
}
//demoDAO.insertBatch(cachedDataList);
// demoDAO.insertBatch(cachedDataList);

@ -42,7 +42,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://120.79.54.255:3306/dashboard?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
url: jdbc:p6spy:mysql://120.79.54.255:3306/dashboard?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true&allowMultiQueries=true
username: root
password: Sztzjy506

Loading…
Cancel
Save