文档拆分条款修改

This commit is contained in:
liyawei
2022-03-31 09:31:47 +08:00
parent aa8733b76a
commit f03ef28020
9 changed files with 121 additions and 18 deletions
@@ -66,6 +66,14 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
return Result.OK(infoPage);
}
@AutoLog(value = "根据id查询")
@ApiOperation(value = "根据id查询")
@GetMapping("/getSplitItemsById")
public Result<?> getSplitItemsById(String id){
Map<String, Object> item = fileSplitItemsEOService.selectByPrimaryKey(id);
return Result.OK(item);
}
@AutoLog(value = "新增")
@ApiOperation(value = "新增")
@PostMapping("/addSplitItems")
@@ -52,6 +52,8 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
.like(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getTitle()), SarFileSplitInfoEO::getTitle, sarFileSplitInfoEOPage.getTitle());
Page<SarFileSplitInfoEO> page = new Page<SarFileSplitInfoEO>(sarFileSplitInfoEOPage.getPageNo(), sarFileSplitInfoEOPage.getPageSize());
IPage<SarFileSplitInfoEO> pageList = sarFileSplitInfoService.page(page, queryWrapper);
List<SarFileSplitInfoEO> rows = pageList.getRecords();
sarFileSplitInfoService.dataProcessing(sarFileSplitInfoEOPage.getCut(), rows);
return Result.OK(pageList);
}
@@ -1,6 +1,7 @@
package com.jero.modules.split.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -71,7 +72,7 @@ public class SarFileSplitInfoEO implements Serializable {
/**文本状态*/
@Excel(name = "文本状态", width = 15, dicCode = "file_type")
@Dict(dicCode = "file_type")
// @Dict(dicCode = "file_type")
@ApiModelProperty(value = "文本状态")
private String fileType;
@@ -82,7 +83,7 @@ public class SarFileSplitInfoEO implements Serializable {
/**拆分结果*/
@Excel(name = "拆分结果", width = 15, dicCode = "split_result")
@Dict(dicCode = "split_result")
// @Dict(dicCode = "split_result")
@ApiModelProperty(value = "拆分结果")
private String splitResult;
@@ -91,4 +92,12 @@ public class SarFileSplitInfoEO implements Serializable {
@ApiModelProperty(value = "文件id")
private String fileId;
/**文档库关联id*/
@Excel(name = "文档库关联id", width = 15)
@ApiModelProperty(value = "文档库关联id")
private String connectId;
@TableField(exist = false)
private String flag;
}
@@ -23,7 +23,7 @@ public interface SarFileSplitItemsValEOMapper extends BaseMapper<SarFileSplitIte
int insertForeach(List<SarFileSplitItemsValEO> list);
int updateForeach(List<SarFileSplitItemsValEO> list);
int updateForeach(@Param("list") List<SarFileSplitItemsValEO> list);
int updateForeach2(@Param("list") List<SarFileSplitItemsValEO> list);
@@ -14,5 +14,6 @@
<result column="file_name" property="fileName" />
<result column="split_result" property="splitResult" />
<result column="file_id" property="fileId" />
<result column="connect_id" property="connectId" />
</resultMap>
</mapper>
@@ -54,4 +54,6 @@ public class SarFileSplitInfoEOPage {
private String orderBy;
private String orderByField;
private String cut;
}
@@ -63,4 +63,6 @@ public interface ISarFileSplitInfoService extends IService<SarFileSplitInfoEO> {
List<SarFileSplitInfoEO> queryByFileId(String fileId);
boolean bindToDocumentLibrary(String id, String connectId, String fileName);
void dataProcessing(String cut, List<SarFileSplitInfoEO> sarFileSplitInfoEOList);
}
@@ -131,7 +131,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
String ossFileId = valEO.getItemContent();
OSSFile ossFile = ossFileService.getById(ossFileId);
String url = ossFile.getUrl();
String imgUrl = "uploadPath/" + url.substring(url.lastIndexOf("/")+1);
String imgUrl = "uploadPath/" + url.substring(url.lastIndexOf("/")+1); // TODO 本地是反斜杠,服务器上是正斜杠?
valEO.setItemContent(imgUrl);
valContent = "<img class=\"wordImg\" src=\""+ valEO.getItemContent() +"\">";
// valContent = valEO.getItemContent();
} else if ("TABLE".equals(valEO.getType())) {
@@ -205,14 +206,22 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
if ("TEXT".equals(valEO.getType())) {
valContent = "<p>" + valEO.getItemContent() + "</p>";
} else if ("IMG".equals(valEO.getType())) {
valContent = "<img class=\'wordImg\' src=\'"+ valEO.getItemContent() +"\'>";
if(!valEO.getItemContent().contains("uploadPath")) {
String ossFileId = valEO.getItemContent();
OSSFile ossFile = ossFileService.getById(ossFileId);
String url = ossFile.getUrl();
String imgUrl = "uploadPath/" + url.substring(url.lastIndexOf("/") + 1);
valEO.setItemContent(imgUrl);
}
valContent = "<img class=\"wordImg\" src=\"" + valEO.getItemContent() + "\">";
// valContent = valEO.getItemContent();
} else if ("TABLE".equals(valEO.getType())) {
valContent = valEO.getItemContent();
}
itemConditions += valContent;
// val表信息
if (com.jero.modules.system.util.StringUtils.isNotEmpty(valEO.getId())) {
if (StringUtils.isNotBlank(valEO.getId())) {
valEO.setItemId(itemId);
valEO.setDisplaySeq(ind);
valEO.setModifyTime(new Date());
valEO.setModifyUser(userId);
@@ -221,6 +230,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
// sarFileSplitItemsValEODao.updateByPrimaryKeySelective(valEO);
} else {
valEO.setId(UUID.randomUUID().toString().replace("-", ""));
valEO.setItemId(itemId);
valEO.setDisplaySeq(ind);
valEO.setValidFlag(0);
valEO.setCreationTime(new Date());
@@ -236,7 +246,10 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
sarFileSplitItemsValEOMapper.insertForeach(addValList);
}
if (updateValList != null && !updateValList.isEmpty()) {
sarFileSplitItemsValEOMapper.updateForeach(updateValList);
for(SarFileSplitItemsValEO updateVal : updateValList){
sarFileSplitItemsValEOMapper.updateByPrimaryKeySelective(updateVal);
}
// sarFileSplitItemsValEOMapper.updateForeach(updateValList);
}
// sarFileSplitItemsTableEODao.deleteByitemValIds(itemValIds);
parameter.put("iterms_conditions", itemConditions);
@@ -436,7 +449,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//搜索条件字段类型信息
List<Map<String, Object>> mapList = queryCondition("1", null);
List<Map<String, Object>> mapList = queryCondition("4", null);
//查询条件处理
for (Map.Entry<String, Object> entry : parameter.entrySet()) {
@@ -534,7 +547,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
List<OnlCgformField> formFieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue());
if (formFieldList.size() != 0) {
//过滤出表单字段
formFieldList = formFieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))).collect(Collectors.toList());
formFieldList = formFieldList.stream()
.filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))|| "条款内容".equals(e.getDbFieldTxt()))
.collect(Collectors.toList());
}
// 查询所有要合并的条款
List<Map<String, Object>> oldItemMapList = dao.queryItemByIds(oldItemIdList); // 根据目录排序 升序
@@ -553,27 +568,30 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
StringBuilder conditionSb = new StringBuilder();
String fieldType = onlCgformField.getFieldShowType();
String dbFieldName = onlCgformField.getDbFieldName();
if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldType)) {
if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldType) && !"条款号".equals(onlCgformField.getDbFieldTxt())) {
// 追加合并内容
oldItemMapList.forEach(item -> {
if(ObjectUtils.isNotEmpty(item.get(dbFieldName))) {
conditionSb.append(item.get(dbFieldName).toString()); // TODO itmeCondition 有问题
conditionSb.append(item.get(dbFieldName).toString());
}
});
newItemMap.put(dbFieldName, conditionSb.toString());
} else if (FieldTypeEnum.PULL_SINGLE.getValue().equals(fieldType)
|| FieldTypeEnum.PULL_MORE.getValue().equals(fieldType)
|| FieldTypeEnum.TREE.getValue().equals(fieldType)) {
StringBuilder con = new StringBuilder();
// 去重合并内容
oldItemMapList.forEach(item -> {
if(ObjectUtils.isNotEmpty(item.get(dbFieldName))) {
conditionSb.append(",").append(item.get(dbFieldName).toString());
con.append(",").append(item.get(dbFieldName).toString());
}
}); // 合并
if(ObjectUtils.isNotEmpty(conditionSb)){
List<String> conditionList = Arrays.asList(conditionSb.toString().split(","));
if(ObjectUtils.isNotEmpty(con)){
List<String> conditionList = Arrays.asList(con.toString().split(","));
conditionList = conditionList.stream().distinct().collect(Collectors.toList()); // 去重
conditionSb.append(StringUtils.join(conditionList, ","));
}
newItemMap.put(dbFieldName, conditionSb.toString());
}
}
@@ -3,6 +3,11 @@ package com.jero.modules.split.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.ModuleEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
@@ -10,12 +15,13 @@ import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitInfoMapper;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.ISysDictItemService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -33,6 +39,12 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
@Autowired
private IOSSFileService ossFileService;
@Autowired
private OnlCgformFieldServiceImpl onlCgformFieldService;
@Autowired
private ISysDictItemService sysDictItemService;
/**
* 保存
*
@@ -42,12 +54,15 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
@Override
public void add(SarFileSplitInfoEO sarFileSplitInfoEO) {
Date now = new Date();
String infoId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitInfoEO.setId(infoId);
sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now);
save(sarFileSplitInfoEO);
// 添加条款总目录 TODO 这块之后可能不会用到
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setName("总目录");
sarFileSplitMenuEO.setInfoId(infoId);
sarFileSplitMenuEO.setDisplaySeq(1L);
sarFileSplitMenuEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarFileSplitMenuEO.setValidFlag(0);
@@ -122,7 +137,7 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
@Override
public boolean bindToDocumentLibrary(String id, String connectId, String fileName) {
List<OSSFile> ossFileList = ossFileService.getFileInfosByConnectId(connectId);
List<OSSFile> fileOfSplit = ossFileList.stream().filter(e->"fileName".equals(e.getFileName())).collect(Collectors.toList());
List<OSSFile> fileOfSplit = ossFileList.stream().filter(e->fileName.equals(e.getFileName())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(fileOfSplit)) {
String fileId = fileOfSplit.get(0).getId();
SarFileSplitInfoEO infoEO = new SarFileSplitInfoEO();
@@ -133,4 +148,50 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
}
return false;
}
@Override
public void dataProcessing(String cut, List<SarFileSplitInfoEO> sarFileSplitInfoEOList) {
// 查询文档拆分表中类型是下拉选的字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT.getValue());
if (fieldList.size() != 0) {
//过滤列表字段(is_show_list-->列表是否显示0否 1是 且 有数据字典编码)
fieldList = fieldList.stream()
.filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))
&& StringUtils.isNotBlank(e.getDictField()))
.collect(Collectors.toList());
}
// 根据切换语言 查询下拉选字段的下拉值
List<SysDictItem> dictItemListAll = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
// 查询数据字典值
List<SysDictItem> dictItemList = sysDictItemService.selectItemsByDictCode(onlCgformField.getDictField());
if(CollectionUtil.isNotEmpty(dictItemList)) {
dictItemListAll.addAll(dictItemList);
}
}
// 处理数据中所有下拉字典值
for (SarFileSplitInfoEO splitInfoEO : sarFileSplitInfoEOList){
if (CutEnum.CN.getValue().equals(cut)) {
Map<String, String> cnMap = dictItemListAll.stream()
.filter(e->e.getItemValue().equals(splitInfoEO.getFileType())
|| e.getItemValue().equals(splitInfoEO.getSplitResult()))
.collect(Collectors.toMap(SysDictItem::getItemValue, SysDictItem::getItemText)); // 优化
splitInfoEO.setFileType(cnMap.get(splitInfoEO.getFileType()));
splitInfoEO.setSplitResult(cnMap.get(splitInfoEO.getSplitResult()));
} else {
Map<String, String> enMap = dictItemListAll.stream()
.filter(e->e.getItemValue().equals(splitInfoEO.getFileType())
|| e.getItemValue().equals(splitInfoEO.getSplitResult()))
.collect(Collectors.toMap(SysDictItem::getItemValue, SysDictItem::getEnName)); // 优化
splitInfoEO.setFileType(enMap.get(splitInfoEO.getFileType()));
splitInfoEO.setSplitResult(enMap.get(splitInfoEO.getSplitResult()));
}
if(StringUtils.isNotEmpty(splitInfoEO.getFileId())) {
splitInfoEO.setFlag("1");
}else{
splitInfoEO.setFlag("0");
}
}
}
}