fix(87267): 文档拆分--导入拆分结果,阻塞
This commit is contained in:
+2
@@ -32,6 +32,8 @@ public interface IFileSplitItemsEOService extends IService<SarFileSplitItemsEO>
|
|||||||
|
|
||||||
int insertInfo(Map<String, Object> parameter, String id, String type);
|
int insertInfo(Map<String, Object> parameter, String id, String type);
|
||||||
|
|
||||||
|
int insertInfo2(Map<String, Object> parameter, String id, String type);
|
||||||
|
|
||||||
IPage getInfoPage(Map<String, Object> parameter);
|
IPage getInfoPage(Map<String, Object> parameter);
|
||||||
|
|
||||||
int batchDeleteItems(String ids);
|
int batchDeleteItems(String ids);
|
||||||
|
|||||||
+173
-12
@@ -24,6 +24,7 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi
|
|||||||
import com.jero.modules.document.enums.FieldTypeEnum;
|
import com.jero.modules.document.enums.FieldTypeEnum;
|
||||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||||
|
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||||
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
|
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
|
||||||
import com.jero.modules.laws.labeldatabase.entity.LawsLabelDatabase;
|
import com.jero.modules.laws.labeldatabase.entity.LawsLabelDatabase;
|
||||||
import com.jero.modules.laws.labeldatabase.service.ILawsLabelDatabaseService;
|
import com.jero.modules.laws.labeldatabase.service.ILawsLabelDatabaseService;
|
||||||
@@ -153,6 +154,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
private ISysDictService sysDictService;
|
private ISysDictService sysDictService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysDictItemService sysDictItemService;
|
private ISysDictItemService sysDictItemService;
|
||||||
|
@Autowired
|
||||||
|
private DocumentSplitMapper documentSplitMapper;
|
||||||
|
|
||||||
|
|
||||||
@Value(value = "${jero.path.upload}")
|
@Value(value = "${jero.path.upload}")
|
||||||
@@ -167,7 +170,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
public static String DECRYPT_APP_CODE;
|
public static String DECRYPT_APP_CODE;
|
||||||
public static String DECRYPT_SECRET_KEY;
|
public static String DECRYPT_SECRET_KEY;
|
||||||
|
|
||||||
private static final List<String> SPECIAL_FIELD = Arrays.asList("keywords", "key_controller", "applicable_components");
|
private static final List<String> SPECIAL_FIELD = Arrays.asList("keywords", "applicable_components");
|
||||||
|
|
||||||
@Value("${download.enable}")
|
@Value("${download.enable}")
|
||||||
public void setEnable(boolean enable) {
|
public void setEnable(boolean enable) {
|
||||||
@@ -504,6 +507,145 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
return dao.insertInfo(insertField, insertValue);
|
return dao.insertInfo(insertField, insertValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertInfo2(Map<String, Object> parameter, String id, String type){
|
||||||
|
StringBuilder fieldsBuilder = new StringBuilder(); // 字段名称
|
||||||
|
List<String> valuesList = new ArrayList<>();// 字段值
|
||||||
|
StringBuilder valuesBuilder = new StringBuilder(); // 字段值
|
||||||
|
|
||||||
|
// 查询全部字段列表
|
||||||
|
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
|
||||||
|
// 列表展示字段
|
||||||
|
List<LawsTag> fieldListSelect = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue()
|
||||||
|
.equals(String.valueOf(v.getIsShowList()))).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 查询全部字段属性
|
||||||
|
// List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue());
|
||||||
|
// 文件类型字段
|
||||||
|
List<LawsTag> onlFieldFileList = fieldListSelect.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
List<String> fieldFieldList = onlFieldFileList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
||||||
|
// 日期类型字段(单日期选择)
|
||||||
|
List<LawsTag> onlFieldDateList = fieldListSelect.stream().filter(e -> FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
List<String> fieldDateList = onlFieldDateList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
||||||
|
// 人员选择类型
|
||||||
|
List<LawsTag> onlFieldPersonList = fieldListSelect.stream().filter(e -> FieldTypeEnum.PERSON.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
List<String> fieldPersonList = onlFieldPersonList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
||||||
|
// 标准选择类型
|
||||||
|
List<LawsTag> onlFieldStanList = fieldListSelect.stream().filter(e -> FieldTypeEnum.STANDARD.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
|
||||||
|
List<String> fieldStanList = onlFieldStanList.stream().map(LawsTag::getDbFieldName).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> fieldPersonIdList = new ArrayList<>();
|
||||||
|
fieldPersonList.forEach(item->{
|
||||||
|
String fieldPersonId = item + "_id";
|
||||||
|
fieldPersonIdList.add(fieldPersonId);
|
||||||
|
});
|
||||||
|
List<String> standardIdList = new ArrayList<>();
|
||||||
|
fieldStanList.forEach(item->{
|
||||||
|
String fieldStanId = item + "_id";
|
||||||
|
standardIdList.add(fieldStanId);
|
||||||
|
});
|
||||||
|
for (Map.Entry<String, Object> entry : parameter.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
Object value = entry.getValue();
|
||||||
|
// 处理日期,文件,人员选择类型的字段
|
||||||
|
//处理日期格式
|
||||||
|
if (fieldDateList.contains(key) && ("create_time".equals(key) || "update_time".equals(key))) {
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
if(value.toString().equals("") || value.toString().equals("null")){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
value = "str_to_date('" + value + "','%Y-%m-%d')";
|
||||||
|
} else {
|
||||||
|
value = null;
|
||||||
|
}
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + value);
|
||||||
|
} else if (fieldFieldList.contains(key)) {
|
||||||
|
//处理文件类型
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
if("add".equals(type) || "import".equals(type)) {
|
||||||
|
String valueTemp = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
//修改文件表关联信息connect_id
|
||||||
|
List<OSSFile> oSSFileList = new ArrayList<>();
|
||||||
|
for (String fileId : value.toString().split(",")) {
|
||||||
|
OSSFile ossFile = new OSSFile();
|
||||||
|
ossFile.setId(fileId);
|
||||||
|
ossFile.setConnectId(valueTemp);
|
||||||
|
oSSFileList.add(ossFile);
|
||||||
|
}
|
||||||
|
ossFileService.updateFileInfo(oSSFileList);
|
||||||
|
valuesList.add(valueTemp);
|
||||||
|
valuesBuilder.append("," + "'" + valueTemp + "'");
|
||||||
|
} else if("set".equals(type) || "merge".equals(type) ||"copy".equals(type)){
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + "'" + value + "'");
|
||||||
|
} else if("update".equals(type)){
|
||||||
|
// 前端标识 key_flag 0-未修改, 1-已修改
|
||||||
|
if(value.toString().contains(",")){ // 新加了多个文件
|
||||||
|
String valueTemp = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
//修改文件表关联信息connect_id
|
||||||
|
List<OSSFile> oSSFileList = new ArrayList<>();
|
||||||
|
for (String fileId : value.toString().split(",")) {
|
||||||
|
OSSFile ossFile = new OSSFile();
|
||||||
|
ossFile.setId(fileId);
|
||||||
|
ossFile.setConnectId(valueTemp);
|
||||||
|
oSSFileList.add(ossFile);
|
||||||
|
}
|
||||||
|
ossFileService.updateFileInfo(oSSFileList);
|
||||||
|
valuesList.add(valueTemp);
|
||||||
|
valuesBuilder.append("," + "'" + valueTemp + "'");
|
||||||
|
} else {
|
||||||
|
List<OSSFile> ossFiles = ossFileService.getFileInfosByConnectId(value.toString());
|
||||||
|
if(CollectionUtil.isNotEmpty(ossFiles)){ // 没有修改文件
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + "'" + value + "'");
|
||||||
|
} else { // 新加了一个文件
|
||||||
|
String valueTemp = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
//修改文件表关联信息connect_id
|
||||||
|
List<OSSFile> oSSFileList = new ArrayList<>();
|
||||||
|
for (String fileId : value.toString().split(",")) {
|
||||||
|
OSSFile ossFile = new OSSFile();
|
||||||
|
ossFile.setId(fileId);
|
||||||
|
ossFile.setConnectId(valueTemp);
|
||||||
|
oSSFileList.add(ossFile);
|
||||||
|
}
|
||||||
|
ossFileService.updateFileInfo(oSSFileList);
|
||||||
|
valuesList.add(valueTemp);
|
||||||
|
valuesBuilder.append("," + "'" + valueTemp + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + "'" + value + "'");
|
||||||
|
}
|
||||||
|
} else if(fieldPersonList.contains(key)){ // || fieldStanList.contains(key)
|
||||||
|
// 人员选择类型 标准选择类型
|
||||||
|
if(ObjectUtil.isNotNull(parameter.get(key+"_id"))) {
|
||||||
|
value = parameter.get(key + "_id");
|
||||||
|
}
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + "'" + value + "'");
|
||||||
|
} else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
if ("item_content".equals(key)) {
|
||||||
|
value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
|
||||||
|
}
|
||||||
|
valuesList.add(String.valueOf(value));
|
||||||
|
valuesBuilder.append("," + "'" + value + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldsBuilder.append("," + key);
|
||||||
|
}
|
||||||
|
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
|
||||||
|
List<String> mustValues = getMustValues2(id);
|
||||||
|
valuesList.addAll(0, mustValues);
|
||||||
|
String insertField = mustFields + fieldsBuilder.toString();
|
||||||
|
return documentSplitMapper.insertLawsDocumentSplit(insertField, valuesList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据信息id更新排序字段
|
* 根据信息id更新排序字段
|
||||||
* @param parameter
|
* @param parameter
|
||||||
@@ -562,6 +704,19 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
return mustValue;
|
return mustValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getMustValues2(String id) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
list.add(id);
|
||||||
|
list.add(sysUser.getUsername());
|
||||||
|
list.add(sdf.format(new Date()));
|
||||||
|
list.add(sysUser.getUsername());
|
||||||
|
list.add(sdf.format(new Date()));
|
||||||
|
list.add(sysUser.getOrgCode());
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage getInfoPage(Map<String, Object> parameter) {
|
public IPage getInfoPage(Map<String, Object> parameter) {
|
||||||
String cut = (String) parameter.get("cut");// 中英文切换标识
|
String cut = (String) parameter.get("cut");// 中英文切换标识
|
||||||
@@ -2365,14 +2520,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
//判断是否是两个日期点
|
//判断是否是两个日期点
|
||||||
String str = value.replace(",", ",");
|
String str = value.replace(",", ",");
|
||||||
String[] strArr = str.split(",");
|
String[] strArr = str.split(",");
|
||||||
if (strArr.length != 2) {
|
// if (strArr.length != 2) {
|
||||||
if (MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) {
|
// if (MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) {
|
||||||
errorMsg += fieldName + "必须填写两个日期;";
|
// errorMsg += fieldName + "必须填写两个日期;";
|
||||||
} else {
|
// } else {
|
||||||
errorMsg += fieldName + " must fill in the two dates;";
|
// errorMsg += fieldName + " must fill in the two dates;";
|
||||||
}
|
// }
|
||||||
countError++;
|
// countError++;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) {
|
} else if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) {
|
||||||
@@ -2574,7 +2729,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
String[] treePathList = value.split(",");
|
String[] treePathList = value.split(",");
|
||||||
for (String treePath : treePathList) {
|
for (String treePath : treePathList) {
|
||||||
List<SysDictItem> path =
|
List<SysDictItem> path =
|
||||||
sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath()))
|
sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath())
|
||||||
|
|| treePath.equals(o.getItemText()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!path.isEmpty()){
|
if (!path.isEmpty()){
|
||||||
if (path.size() > 1) {
|
if (path.size() > 1) {
|
||||||
@@ -2612,7 +2768,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
String[] treePathList = value.split(",");
|
String[] treePathList = value.split(",");
|
||||||
for (String treePath : treePathList) {
|
for (String treePath : treePathList) {
|
||||||
List<PartName> path =
|
List<PartName> path =
|
||||||
partNameList.stream().filter(o -> treePath.equals(o.getLevelPath()))
|
partNameList.stream().filter(o -> treePath.equals(o.getLevelPath()) || treePath.equals(o.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!path.isEmpty()){
|
if (!path.isEmpty()){
|
||||||
if (path.size() > 1) {
|
if (path.size() > 1) {
|
||||||
@@ -2770,7 +2926,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
|||||||
sarFileSplitItemsEO.remove("id");
|
sarFileSplitItemsEO.remove("id");
|
||||||
sarFileSplitItemsEO.remove("itemValEOList");
|
sarFileSplitItemsEO.remove("itemValEOList");
|
||||||
sarFileSplitItemsEO = filterMap(sarFileSplitItemsEO);
|
sarFileSplitItemsEO = filterMap(sarFileSplitItemsEO);
|
||||||
insertInfo(sarFileSplitItemsEO,id,"import"); // 添加条款
|
Map<String, Object> finalSarFileSplitItemsEO = sarFileSplitItemsEO;
|
||||||
|
sarFileSplitItemsEO.forEach((k, v) -> {
|
||||||
|
String str = String.valueOf(v);
|
||||||
|
finalSarFileSplitItemsEO.put(k, str.replace("'", "\\'"));
|
||||||
|
});
|
||||||
|
insertInfo2(finalSarFileSplitItemsEO,id,"import"); // 添加条款
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<SarFileSplitMenuTreeNode> buildTree(List<Map<String, Object>> addItemsEOList, Long treeListDisplay, String menuId){
|
private List<SarFileSplitMenuTreeNode> buildTree(List<Map<String, Object>> addItemsEOList, Long treeListDisplay, String menuId){
|
||||||
|
|||||||
Reference in New Issue
Block a user