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 insertInfo2(Map<String, Object> parameter, String id, String type);
|
||||
|
||||
IPage getInfoPage(Map<String, Object> parameter);
|
||||
|
||||
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.service.IBussDocumentLibraryEOService;
|
||||
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.labeldatabase.entity.LawsLabelDatabase;
|
||||
import com.jero.modules.laws.labeldatabase.service.ILawsLabelDatabaseService;
|
||||
@@ -153,6 +154,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
private ISysDictService sysDictService;
|
||||
@Autowired
|
||||
private ISysDictItemService sysDictItemService;
|
||||
@Autowired
|
||||
private DocumentSplitMapper documentSplitMapper;
|
||||
|
||||
|
||||
@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_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}")
|
||||
public void setEnable(boolean enable) {
|
||||
@@ -504,6 +507,145 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
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更新排序字段
|
||||
* @param parameter
|
||||
@@ -562,6 +704,19 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
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
|
||||
public IPage getInfoPage(Map<String, Object> parameter) {
|
||||
String cut = (String) parameter.get("cut");// 中英文切换标识
|
||||
@@ -2365,14 +2520,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
//判断是否是两个日期点
|
||||
String str = value.replace(",", ",");
|
||||
String[] strArr = str.split(",");
|
||||
if (strArr.length != 2) {
|
||||
if (MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) {
|
||||
errorMsg += fieldName + "必须填写两个日期;";
|
||||
} else {
|
||||
errorMsg += fieldName + " must fill in the two dates;";
|
||||
}
|
||||
countError++;
|
||||
}
|
||||
// if (strArr.length != 2) {
|
||||
// if (MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) {
|
||||
// errorMsg += fieldName + "必须填写两个日期;";
|
||||
// } else {
|
||||
// errorMsg += fieldName + " must fill in the two dates;";
|
||||
// }
|
||||
// countError++;
|
||||
// }
|
||||
}
|
||||
|
||||
} else if (FieldTypeEnum.FILE.getValue().equals(fieldShowType)) {
|
||||
@@ -2574,7 +2729,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
String[] treePathList = value.split(",");
|
||||
for (String treePath : treePathList) {
|
||||
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());
|
||||
if (!path.isEmpty()){
|
||||
if (path.size() > 1) {
|
||||
@@ -2612,7 +2768,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
String[] treePathList = value.split(",");
|
||||
for (String treePath : treePathList) {
|
||||
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());
|
||||
if (!path.isEmpty()){
|
||||
if (path.size() > 1) {
|
||||
@@ -2770,7 +2926,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
sarFileSplitItemsEO.remove("id");
|
||||
sarFileSplitItemsEO.remove("itemValEOList");
|
||||
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){
|
||||
|
||||
Reference in New Issue
Block a user