update 法规字典翻译
This commit is contained in:
@@ -31,6 +31,13 @@ public class FieldCommon {
|
|||||||
LawsFieldTypeEnum.OPTION_MANY.getValue() // 下拉多选
|
LawsFieldTypeEnum.OPTION_MANY.getValue() // 下拉多选
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 字典翻译类型
|
||||||
|
public static final List<String> TYPE_DICT = Arrays.asList(
|
||||||
|
LawsFieldTypeEnum.OPTION_SINGLE.getValue(), // 下拉单选
|
||||||
|
LawsFieldTypeEnum.OPTION_MANY.getValue(), // 下拉多选
|
||||||
|
LawsFieldTypeEnum.TREE_BOX.getValue()
|
||||||
|
);
|
||||||
|
|
||||||
public static final String MODULE = "module"; // 表名标识
|
public static final String MODULE = "module"; // 表名标识
|
||||||
public static final String ORDER_BY = "orderBy"; // 升序还是倒序标识
|
public static final String ORDER_BY = "orderBy"; // 升序还是倒序标识
|
||||||
public static final String ORDER_BY_FIELD = "orderByField"; // 排序字段
|
public static final String ORDER_BY_FIELD = "orderByField"; // 排序字段
|
||||||
|
|||||||
+104
-24
@@ -21,15 +21,16 @@ import com.jero.modules.oss.service.IOSSFileService;
|
|||||||
import com.jero.modules.personal.entity.LawsStandardCollection;
|
import com.jero.modules.personal.entity.LawsStandardCollection;
|
||||||
import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
||||||
import com.jero.modules.system.entity.SysDepart;
|
import com.jero.modules.system.entity.SysDepart;
|
||||||
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
import com.jero.modules.system.service.ISysDepartService;
|
import com.jero.modules.system.service.ISysDepartService;
|
||||||
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
import com.jero.modules.tag.entity.LawsArea;
|
import com.jero.modules.tag.entity.LawsArea;
|
||||||
import com.jero.modules.tag.entity.LawsTag;
|
import com.jero.modules.tag.entity.LawsTag;
|
||||||
import com.jero.modules.tag.enums.TableNameEnum;
|
import com.jero.modules.tag.enums.TableNameEnum;
|
||||||
import com.jero.modules.tag.enums.LawsFieldTypeEnum;
|
import com.jero.modules.tag.enums.LawsFieldTypeEnum;
|
||||||
import com.jero.modules.tag.service.ILawsAreaService;
|
import com.jero.modules.tag.service.ILawsAreaService;
|
||||||
import com.spire.ms.System.Collections.ArrayList;
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
@@ -63,6 +64,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
private ILawsStandardCollectionService lawsStandardCollectionService;
|
private ILawsStandardCollectionService lawsStandardCollectionService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ILawsUpdateRecordService lawsUpdateRecordService;
|
private ILawsUpdateRecordService lawsUpdateRecordService;
|
||||||
|
@Autowired
|
||||||
|
private ISysDictItemService sysDictItemService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
@@ -96,7 +99,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
// 获取分页查询结果
|
// 获取分页查询结果
|
||||||
IPage<Map<String, Object>> infoPage = lawsCommonMapper.getCommonPage(page, tableName, selectField, selectCondition);
|
IPage<Map<String, Object>> infoPage = lawsCommonMapper.getCommonPage(page, tableName, selectField, selectCondition);
|
||||||
// 对返回的数据做处理
|
// 对返回的数据做处理
|
||||||
infoPage.getRecords().forEach(map -> processResultMap(map, fieldListSelect));
|
// 做字段翻译和拼接
|
||||||
|
infoPage.setRecords(processResultMapPageList(infoPage.getRecords(), fieldListSelect));
|
||||||
// 是否收藏判断标识
|
// 是否收藏判断标识
|
||||||
collectionFlag(infoPage.getRecords());
|
collectionFlag(infoPage.getRecords());
|
||||||
// 待处理
|
// 待处理
|
||||||
@@ -138,52 +142,126 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
* @Date: 2023/8/25 11:52
|
* @Date: 2023/8/25 11:52
|
||||||
* @Description: 对返回的数据做处理
|
* @Description: 对返回的数据做处理(详情页)
|
||||||
**/
|
**/
|
||||||
private void processResultMap(Map<String, Object> map, List<LawsTag> fieldList) {
|
private Map<String, Object> processResultMap(Map<String, Object> initMap, List<LawsTag> fieldList) {
|
||||||
for (Map.Entry<String, Object> entryMap : map.entrySet()) {
|
// 字典类型
|
||||||
|
List<LawsTag> dictTag = fieldList.stream().filter(lawsTag ->
|
||||||
|
FieldCommon.TYPE_DICT.contains(lawsTag.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
// 字典配置项
|
||||||
|
List<SysDictItem> dictItemList = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isNotEmpty(dictTag)) {
|
||||||
|
List<String> dictIdList = dictTag.stream().map(LawsTag::getDictId).collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.in(SysDictItem::getDictId, dictIdList);
|
||||||
|
dictItemList = sysDictItemService.list(queryWrapper);
|
||||||
|
}
|
||||||
|
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||||
|
for (Map.Entry<String, Object> entryMap : initMap.entrySet()) {
|
||||||
String key = entryMap.getKey();
|
String key = entryMap.getKey();
|
||||||
String value = "";
|
String value = "";
|
||||||
if (!Objects.isNull(entryMap.getValue())) {
|
if (!Objects.isNull(entryMap.getValue())) {
|
||||||
value = entryMap.getValue().toString();
|
value = (String) entryMap.getValue();
|
||||||
}
|
}
|
||||||
// 如果value不为null和"",对返回结果做处理
|
// 如果value不为null和"",对返回结果做处理
|
||||||
if (StringUtils.isNotBlank(value)) {
|
if (StringUtils.isNotBlank(value)) {
|
||||||
// 对返回的字段值做处理
|
// 对返回的字段值做处理
|
||||||
processResultFieldValue(key, value, fieldList, map);
|
processResultFieldValue(key, value, fieldList, resultMap, dictItemList);
|
||||||
|
} else {
|
||||||
|
resultMap.put(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/8/25 11:52
|
||||||
|
* @Description: 对返回的数据做处理(列表显示)
|
||||||
|
**/
|
||||||
|
private List<Map<String, Object>> processResultMapPageList(List<Map<String, Object>> records, List<LawsTag> fieldList) {
|
||||||
|
// 字典类型
|
||||||
|
List<LawsTag> dictTag = fieldList.stream().filter(lawsTag ->
|
||||||
|
FieldCommon.TYPE_DICT.contains(lawsTag.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
// 字典配置项
|
||||||
|
List<SysDictItem> dictItemList = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isNotEmpty(dictTag)) {
|
||||||
|
List<String> dictIdList = dictTag.stream().map(LawsTag::getDictId).collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.in(SysDictItem::getDictId, dictIdList);
|
||||||
|
dictItemList = sysDictItemService.list(queryWrapper);
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> resultMapList = new ArrayList<>();
|
||||||
|
for (Map<String, Object> map : records) {
|
||||||
|
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||||
|
for (Map.Entry<String, Object> entryMap : map.entrySet()) {
|
||||||
|
String key = entryMap.getKey();
|
||||||
|
String value = "";
|
||||||
|
if (!Objects.isNull(entryMap.getValue())) {
|
||||||
|
value = (String) entryMap.getValue();
|
||||||
|
}
|
||||||
|
// 如果value不为null和"",对返回结果做处理
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
// 对返回的字段值做处理
|
||||||
|
processResultFieldValue(key, value, fieldList, resultMap, dictItemList);
|
||||||
|
} else {
|
||||||
|
resultMap.put(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultMapList.add(resultMap);
|
||||||
|
}
|
||||||
|
return resultMapList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
* @Date: 2023/8/25 11:55
|
* @Date: 2023/8/25 11:55
|
||||||
* @Description: 对返回的字段值做处理
|
* @Description: 对返回的字段值做处理(详情页)
|
||||||
**/
|
**/
|
||||||
private void processResultFieldValue(String key, String value, List<LawsTag> fieldList, Map<String, Object> map) {
|
private void processResultFieldValue(String key, String value, List<LawsTag> fieldList,
|
||||||
|
Map<String, Object> resultMap, List<SysDictItem> dictItemList) {
|
||||||
|
if ("id".equals(key)) {
|
||||||
|
resultMap.put(key, value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (LawsTag lawsTag : fieldList) {
|
for (LawsTag lawsTag : fieldList) {
|
||||||
if (key.equals(lawsTag.getDbFieldName())) {
|
if (key.equals(lawsTag.getDbFieldName())) {
|
||||||
List<String> valueList = Arrays.asList(value.split(","));
|
List<String> valueList = Arrays.asList(value.split(","));
|
||||||
if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(lawsTag.getFieldShowType())) {
|
if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(lawsTag.getFieldShowType())) {
|
||||||
// 如果是多日期格式,做去重处理
|
// 如果是多日期格式,做去重处理
|
||||||
map.put(key, StringUtils.join(valueList.stream()
|
resultMap.put(key, StringUtils.join(valueList.stream()
|
||||||
.distinct().collect(Collectors.toList()), ","));
|
.distinct().collect(Collectors.toList()), ","));
|
||||||
} else if (LawsFieldTypeEnum.USER_SINGLE.getValue().equals(lawsTag.getFieldShowType())) {
|
} else if (LawsFieldTypeEnum.USER_SINGLE.getValue().equals(lawsTag.getFieldShowType())) {
|
||||||
// 如果是用户弹框(列表查询会查询多次,但是业务上应该不会在列表上展示,应该不会影响性能)
|
// 如果是用户弹框,做翻译
|
||||||
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
sysUserLambdaQueryWrapper.in(SysUser::getId, valueList);
|
sysUserLambdaQueryWrapper.in(SysUser::getId, valueList);
|
||||||
map.put(key, sysUserService.list(sysUserLambdaQueryWrapper));
|
List<SysUser> userList = sysUserService.list(sysUserLambdaQueryWrapper);
|
||||||
|
List<String> nameList = userList.stream().map(SysUser::getNameWorkNo).collect(Collectors.toList());
|
||||||
|
resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(nameList, ","));
|
||||||
} else if (LawsFieldTypeEnum.GROUP_SINGLE.getValue().equals(lawsTag.getFieldShowType())
|
} else if (LawsFieldTypeEnum.GROUP_SINGLE.getValue().equals(lawsTag.getFieldShowType())
|
||||||
|| LawsFieldTypeEnum.GROUP_MANY.getValue().equals(lawsTag.getFieldShowType())) {
|
|| LawsFieldTypeEnum.GROUP_MANY.getValue().equals(lawsTag.getFieldShowType())) {
|
||||||
// 如果是组织机构弹框(列表查询会查询多次,但是业务上应该不会在列表上展示,应该不会影响性能)
|
// 如果是组织机构弹框
|
||||||
LambdaQueryWrapper<SysDepart> sysDepartLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysDepart> sysDepartLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
sysDepartLambdaQueryWrapper.in(SysDepart::getId, valueList);
|
sysDepartLambdaQueryWrapper.in(SysDepart::getId, valueList);
|
||||||
map.put(key, sysDepartService.list(sysDepartLambdaQueryWrapper));
|
List<SysDepart> departList = sysDepartService.list(sysDepartLambdaQueryWrapper);
|
||||||
|
List<String> nameList = departList.stream().map(SysDepart::getDepartName).collect(Collectors.toList());
|
||||||
|
resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(nameList, ","));
|
||||||
} else if (LawsFieldTypeEnum.FILE_UP.getValue().equals(lawsTag.getFieldShowType())) {
|
} else if (LawsFieldTypeEnum.FILE_UP.getValue().equals(lawsTag.getFieldShowType())) {
|
||||||
// 如果是文件上传(列表查询会查询多次,但是业务上应该不会在列表上展示,应该不会影响性能)
|
// 如果是文件上传
|
||||||
LambdaQueryWrapper<OSSFile> ossFileLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<OSSFile> ossFileLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
ossFileLambdaQueryWrapper.in(OSSFile::getId, valueList);
|
ossFileLambdaQueryWrapper.in(OSSFile::getId, valueList);
|
||||||
map.put(key, ossFileService.list(ossFileLambdaQueryWrapper));
|
List<OSSFile> fileList = ossFileService.list(ossFileLambdaQueryWrapper);
|
||||||
|
List<String> nameList = fileList.stream().map(OSSFile::getFileName).collect(Collectors.toList());
|
||||||
|
resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(nameList, ","));
|
||||||
|
} else if (FieldCommon.TYPE_DICT.contains(lawsTag.getFieldShowType())) {
|
||||||
|
// 如果是字典翻译
|
||||||
|
List<String> nameList = dictItemList.stream().filter(dictItem ->
|
||||||
|
lawsTag.getDictId().equals(dictItem.getDictId())
|
||||||
|
&& valueList.contains(dictItem.getItemValue()))
|
||||||
|
.map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||||
|
resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(nameList, ","));
|
||||||
|
} else {
|
||||||
|
resultMap.put(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -429,9 +507,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getByIdAndModule(String id, String module) {
|
public Map<String, Object> getByIdAndModule(String id, String module) {
|
||||||
|
if (StringUtils.isBlank(id)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "id");
|
||||||
|
}
|
||||||
// 获取要操作的表名
|
// 获取要操作的表名
|
||||||
String tableName = TableNameEnum.getTableName(module);
|
String tableName = TableNameEnum.getTableName(module);
|
||||||
|
|
||||||
// 获取全部字段
|
// 获取全部字段
|
||||||
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(tableName);
|
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(tableName);
|
||||||
// 筛选表单显示的字段(传id查表单)
|
// 筛选表单显示的字段(传id查表单)
|
||||||
@@ -441,10 +521,12 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
// 封装查询显示的字段
|
// 封装查询显示的字段
|
||||||
String selectField = getSelectField(fieldList);
|
String selectField = getSelectField(fieldList);
|
||||||
// 封装查询条件
|
// 封装查询条件
|
||||||
Map<String, Object> resultMap = lawsCommonMapper.getByIdAndModule(tableName, selectField, id);
|
Map<String, Object> initMap = lawsCommonMapper.getByIdAndModule(tableName, selectField, id);
|
||||||
|
if (initMap == null) {
|
||||||
|
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
|
||||||
|
}
|
||||||
// 对返回的字段做处理
|
// 对返回的字段做处理
|
||||||
processResultMap(resultMap, fieldList);
|
return processResultMap(initMap, fieldList);
|
||||||
return resultMap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -628,10 +710,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
// 获取全部的字段列表
|
// 获取全部的字段列表
|
||||||
List<String> tempFieldList = fieldList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
List<String> tempFieldList = fieldList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
||||||
// 创建一个新的用于返回的字段列表
|
// 创建一个新的用于返回的字段列表
|
||||||
/*List<String> selectFieldList = new ArrayList();
|
StringBuilder selectFieldBuilder = new StringBuilder();
|
||||||
// 查询主键
|
selectFieldBuilder.append("id");
|
||||||
selectFieldList.add("id");*/
|
|
||||||
StringBuilder selectFieldBuilder = new StringBuilder("id");
|
|
||||||
tempFieldList.forEach(tempField -> {
|
tempFieldList.forEach(tempField -> {
|
||||||
String endField;
|
String endField;
|
||||||
// 对日期格式和普通格式做处理
|
// 对日期格式和普通格式做处理
|
||||||
|
|||||||
Reference in New Issue
Block a user