Finish Task #4531 Cost:4h  修复复制合同开票单位错误

This commit is contained in:
时间淡忘一切 2023-11-16 10:19:07 +08:00
parent 03ceb02918
commit e1103eba02
3 changed files with 23 additions and 16 deletions

View File

@ -1,6 +1,7 @@
package com.blueland.common.core.controller;
import com.blueland.common.core.domain.International;
import com.blueland.common.core.utils.UserUtils;
import com.mybatisflex.core.paginate.Page;
import io.swagger.annotations.*;
import com.blueland.common.core.result.AjaxResult;
@ -112,25 +113,23 @@ public class InternationalController {
}
/**
* 一键复制
* 一键翻译
*
* @param targetLang 目标语言
* @param sourceLang 源语言
* @return {@link AjaxResult}<{@link Boolean}>
*/
@GetMapping("/copy")
@ApiOperation(value = "一键复制", notes = "例如:数据库只有中文,要翻译成英文")
@GetMapping("/translate")
@ApiOperation(value = "一键翻译")
@ApiImplicitParams(
{
@ApiImplicitParam(name = "tenantId", value = "租户id", dataType = "String", paramType = "query", required = false),
@ApiImplicitParam(name = "targetLang", value = "目标语言", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "sourceLang", value = "源语言", dataType = "String", paramType = "query", required = true)
}
)
public AjaxResult<Boolean> copy(@RequestParam("targetLang") String targetLang,
@RequestParam("sourceLang") String sourceLang,
@RequestParam(value = "tenantId", required = false) String tenantId) {
return AjaxResult.operates(internationalService.copy(targetLang, sourceLang, tenantId));
public AjaxResult<Boolean> translate(@RequestParam("targetLang") String targetLang,
@RequestParam("sourceLang") String sourceLang) {
return AjaxResult.operates(internationalService.translate(targetLang, sourceLang, UserUtils.getTenantId()));
}
@GetMapping("/dowloadTemplate")
@ -154,7 +153,7 @@ public class InternationalController {
* @param sourceLang 源语言
* @return {@link AjaxResult}<{@link Boolean}>
*/
@GetMapping("/tenantIdCopy")
@GetMapping("/tenantIdTranslate")
@ApiOperation(value = "一键复制(从其他租户复制)", notes = "例如bio里面有en语言包现在要复制到AHI里面")
@ApiImplicitParams(
{
@ -162,9 +161,9 @@ public class InternationalController {
@ApiImplicitParam(name = "sourceLang", value = "源语言", dataType = "String", paramType = "query", required = true)
}
)
public AjaxResult<Boolean> tenantIdCopy(@RequestParam("sourceLang") String sourceLang,
public AjaxResult<Boolean> tenantIdTranslate(@RequestParam("sourceLang") String sourceLang,
String tenantId) {
return AjaxResult.operates(internationalService.tenantIdCopy(sourceLang, tenantId));
return AjaxResult.operates(internationalService.tenantIdTranslate(sourceLang, tenantId));
}
}

View File

@ -62,7 +62,7 @@ public interface InternationalService extends IService<International> {
* @param tenantId
* @return boolean
*/
boolean copy(String targetLang, String sourceLang, String tenantId);
boolean translate(String targetLang, String sourceLang, String tenantId);
/**
@ -109,6 +109,6 @@ public interface InternationalService extends IService<International> {
* @param tenantId 保持ID
* @return {@link Boolean}
*/
Boolean tenantIdCopy(String sourceLang, String tenantId);
Boolean tenantIdTranslate(String sourceLang, String tenantId);
}

View File

@ -131,7 +131,7 @@ public class InternationalServiceImpl extends ServiceImpl<InternationalMapper, I
* @return boolean
*/
@Override
public boolean copy(String targetLang, String sourceLang, String tenantId) {
public boolean translate(String targetLang, String sourceLang, String tenantId) {
List<International> sourceLangList = listByLang(sourceLang, tenantId, "");
List<String> nameList = sourceLangList.stream()
@ -159,7 +159,7 @@ public class InternationalServiceImpl extends ServiceImpl<InternationalMapper, I
return international;
})
.collect(Collectors.toList());
Assert.notEmpty(targetLangList, "根据租户和语言查询不到数据");
boolean flag = saveBatch(targetLangList);
if (flag) {
RedisUtil.hashMultiSet(targetLang, targetLangList);
@ -213,6 +213,14 @@ public class InternationalServiceImpl extends ServiceImpl<InternationalMapper, I
List<InternationalExport> importList;
try {
importList = ExcelImportUtil.importExcel(file.getInputStream(), InternationalExport.class, params);
importList.stream()
.collect(Collectors.groupingBy(el -> el.getCode() + el.getLang()))
.values()
.stream()
.filter(el -> el.size() > 1)
.forEach(el -> {
Assert.isTrue(false,StrUtil.format("编码【{}】语言【{}】重复", el.get(0).getCode(), el.get(0).getLang()));
});
// 校验数据完整性
for (InternationalExport export : importList) {
@ -259,7 +267,7 @@ public class InternationalServiceImpl extends ServiceImpl<InternationalMapper, I
}
@Override
public Boolean tenantIdCopy(String sourceLang, String tenantId) {
public Boolean tenantIdTranslate(String sourceLang, String tenantId) {
List<International> list = listByLang(sourceLang, tenantId, "").stream()
.map(el -> {
el.setTenantId(UserUtils.getTenantId());