feat(文档拆分): 编辑、批量编辑、合并条款

This commit is contained in:
yjz
2023-10-15 22:47:20 +08:00
parent b183cda678
commit aeadd586b8
13 changed files with 488 additions and 12 deletions
@@ -29,6 +29,7 @@ import java.util.Map;
@RequestMapping("/laws/DocumentTool/documentSplit")
@Slf4j
public class DocumentSplitController {
private final IDocumentSplitService documentSplitService;
private final ISarFileSplitInfoService sarFileSplitInfoService;
@@ -106,10 +107,54 @@ public class DocumentSplitController {
return Result.OK("批量删除成功!");
}
/**
* 文档拆分详情-分页列表查询
* @param parameter
* @return Result<IPage<Map<String,Object>>>
*/
@AutoLog(value = "文档拆分详情-分页列表查询")
@ApiOperation(value = "文档拆分详情-分页列表查询")
@PostMapping("/queryDocumentSplitDetail")
public Result<IPage<Map<String,Object>>> queryDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
return Result.OK(documentSplitService.queryDocumentSplitDetail(parameter));
}
/**
* 文档拆分详情-编辑
* @param parameter
* @return Result<IPage<Map<String,Object>>>
*/
@AutoLog(value = "文档拆分详情-编辑")
@ApiOperation(value = "文档拆分详情-编辑")
@PostMapping("/editDocumentSplitDetail")
public Result<T> editDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
documentSplitService.editDocumentSplitDetail(parameter);
return Result.OK("删除成功!");
}
/**
* 文档拆分详情-批量编辑
* @param parameter
* @return Result<IPage<Map<String,Object>>>
*/
@AutoLog(value = "文档拆分详情-批量编辑")
@ApiOperation(value = "文档拆分详情-批量编辑")
@PostMapping("/editBatchDocumentSplitDetail")
public Result<T> editBatchDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
documentSplitService.editBatchDocumentSplitDetail(parameter);
return Result.OK("批量删除成功!");
}
/**
* 文档拆分详情-合并条款
* @param parameter
* @return Result<IPage<Map<String,Object>>>
*/
@AutoLog(value = "文档拆分详情-合并条款")
@ApiOperation(value = "文档拆分详情-合并条款")
@PostMapping("/mergeDocumentSplitDetail")
public Result<T> mergeDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
documentSplitService.mergeDocumentSplitDetail(parameter);
return Result.OK("合并成功!");
}
}
@@ -14,7 +14,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class DocumentSplitInfo extends BaseEntity{
public class DocumentSplitInfo extends BaseEntity {
/**标准号*/
@Excel(name = "标准号", width = 15)
@ApiModelProperty(value = "标准号")
@@ -0,0 +1,119 @@
package com.jero.modules.laws.documenttool.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: yjz
* @Date: 2023/10/15/19:34
* @Description:
*/
@Data
@TableName("laws_document_split")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_document_split对象", description="文档拆分")
public class LawsDocumentSplit extends BaseEntity {
/**
* 条文号
*/
private String itemNum;
/**
* 条文标题
*/
private String itemTitle;
/**
* 条文内容
*/
private String itemContent;
/**
* 展示顺序
*/
private String sortNumber;
/**
* 拆分目录id
*/
private String menuId;
/**
* 技术领域
*/
private String technicalField;
/**
* 信息类别
*/
private String infoType;
/**
* 法规要求类型
*/
private String lawsRequireType;
/**
* 功能分类
*/
private String functionClassification;
/**
* 功能专业
*/
private String functionProfessional;
/**
* 功能分组编码
*/
private String functionGroupCode;
/**
* 功能分组名称
*/
private String functionGroupName;
/**
* 新认证实施时间
*/
private String newCerImplementDate;
/**
* 已认证实施时间
*/
private String cerImplementDate;
/**
* 新注册实施时间
*/
private String newRegisterImplementDate;
/**
* 适用车型
*/
private String applications;
/**
* 动力类型
*/
private String dynamicType;
/**
* 适用零部件
*/
private String applicableComponents;
/**
* 条文解读
*/
private String interpretationArticles;
/**
* 拆分信息记录id
*/
private String infoId;
}
@@ -1,6 +1,12 @@
package com.jero.modules.laws.documenttool.handler;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.laws.common.constant.FieldCommon;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author: yjz
@@ -15,7 +21,27 @@ public class AbstractConditionBase {
* @return 拼接完成的sql
*/
public String buildCondition(String fieldName, String value){
log.info("字段名:{} 参数值{}", fieldName, value);
log.info("构建查询条件字段名:{} 参数值{}", fieldName, value);
return "";
}
/**
* 构建修改字段
* @return 拼接完成的sql
*/
public String buildUpdate(String fieldName, String value){
log.info("构建修改字段字段名:{} 参数值{}", fieldName, value);
return "";
}
/**
* 更新人、更新时间填充
* @return
*/
public String getUpdateByAndUpdateTime() {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return " update_by = " + "'" + sysUser.getUsername() + "'" +
"update_time = " + FieldCommon.STR_TO_DATE_PREFIX + dateFormat.format(new Date()) + "','%Y-%m-%d %H:%i:%s')";
}
}
@@ -48,6 +48,11 @@ public class DateManyConditionImpl extends AbstractConditionBase {
return dateMany;
}
@Override
public String buildUpdate(String fieldName, String value){
return fieldName + " = " + "'" + value +"'";
}
/**
* 初始化注册到工厂
*/
@@ -1,5 +1,6 @@
package com.jero.modules.laws.documenttool.handler.impl;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
import com.jero.modules.laws.documenttool.factory.ConditionMapFactory;
import com.jero.modules.laws.documenttool.handler.AbstractConditionBase;
@@ -37,6 +38,11 @@ public class DateSingleConditionImpl extends AbstractConditionBase {
return dateSingle;
}
@Override
public String buildUpdate(String fieldName, String value){
return fieldName + " = " + "'" + FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX +"'";
}
/**
* 初始化注册到工厂
*/
@@ -0,0 +1,22 @@
package com.jero.modules.laws.documenttool.handler.impl;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.documenttool.handler.AbstractConditionBase;
import lombok.extern.slf4j.Slf4j;
/**
* @Author: yjz
* @Date: 2023/10/15/15:19
* @Description: 普通
*/
@Slf4j
public class UniversalImpl extends AbstractConditionBase {
public UniversalImpl(){
log.info("");
}
@Override
public String buildUpdate(String fieldName, String value){
return fieldName + " = " + "'" + FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX +"'";
}
}
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -40,4 +41,40 @@ public interface DocumentSplitMapper {
* @return
*/
IPage<Map<String, Object>> queryDocumentSplitDetail(Page<Map<String, Object>> mapPage, @Param("selectColumn") String selectColumn, @Param("selectCondition") String selectCondition);
/**
* 文档拆分详情-列表查询
* @param selectColumn
* @param selectCondition
* @return
*/
List<Map<String, Object>> queryDocumentSplitDetail(@Param("selectColumn") String selectColumn, @Param("selectCondition") String selectCondition);
/**
* 文档拆分详情-编辑
* @param updateSet
* @param updateCondition
* @return int
*/
int editDocumentSplitDetail(@Param("updateSet") String updateSet,@Param("updateCondition") String updateCondition);
/**
* 条目查询根据itemId集合
* @param itemIdList
* @return
*/
List<SarFileSplitItemsValEO> queryItemsValByItemIds(@Param("itemIdList") List<String> itemIdList);
/**
* 条目查询根据itemId
* @param itemId
* @return
*/
List<SarFileSplitItemsValEO> queryItemsValByItemId(@Param("itemId") String itemId);
/**
* 目录删除根据menuId集合
* @param menuIdList
*/
int sarFileSplitMenudeleteByIdList(@Param("menuIdList") List<String> menuIdList);
}
@@ -0,0 +1,12 @@
package com.jero.modules.laws.documenttool.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
/**
* @Author: yjz
* @Date: 2023/10/15/19:32
* @Description:
*/
public interface LawsDocumentSplitMapper extends BaseMapper<LawsDocumentSplit> {
}
@@ -2,6 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper">
<delete id="sarFileSplitMenudeleteByIdList">
delete from SAR_FILE_SPLIT_MENU
where id in
<foreach collection="menuIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<select id="queryByPage" resultType="com.jero.modules.laws.documenttool.entity.DocumentSplitInfo">
select *
from (select i.id as id,
@@ -32,4 +40,29 @@
left join SAR_FILE_SPLIT_MENU m on s.MENU_ID = m.id
${selectCondition}
</select>
<select id="queryItemsValByItemIds" resultType="com.jero.modules.split.entity.SarFileSplitItemsValEO">
select id, type, item_id, item_content, valid_flag, creation_user,
creation_time, modify_time, modify_user, display_seq,img_name,index_item
from SAR_FILE_SPLIT_ITEMS_VAL
where valid_flag = '0' and ITEM_ID in
<foreach collection="itemIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
order by display_seq
</select>
<select id="queryItemsValByItemId" resultType="com.jero.modules.split.entity.SarFileSplitItemsValEO">
select id, type, item_id, item_content, valid_flag, creation_user,
creation_time, modify_time, modify_user, display_seq,img_name,index_item
from SAR_FILE_SPLIT_ITEMS_VAL
where valid_flag = '0' and ITEM_ID = #{itemId}
order by display_seq
</select>
<update id="editDocumentSplitDetail">
UPDATE laws_document_split
SET ${updateSet}
WHERE #{updateCondition}
</update>
</mapper>
@@ -48,4 +48,22 @@ public interface IDocumentSplitService {
* @param sarFileSplitInfoEO
*/
void add(SarFileSplitInfoEO sarFileSplitInfoEO);
/**
* 文档拆分详情-编辑
* @param parameter
*/
void editDocumentSplitDetail(Map<String, Object> parameter);
/**
* 文档拆分详情-批量编辑
* @param parameter
*/
void editBatchDocumentSplitDetail(Map<String, Object> parameter);
/**
* 文档拆分详情-合并条款
* @param parameter
*/
void mergeDocumentSplitDetail(Map<String, Object> parameter);
}
@@ -13,12 +13,17 @@ import com.jero.modules.laws.common.mapper.LawsCommonMapper;
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
import com.jero.modules.laws.documenttool.factory.ConditionMapFactory;
import com.jero.modules.laws.documenttool.handler.impl.DateManyConditionImpl;
import com.jero.modules.laws.documenttool.handler.impl.UniversalImpl;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper;
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.enums.SplitEnum;
import com.jero.modules.split.enums.SplitFileTypeTypeEnum;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.split.service.impl.FileSpiltService;
@@ -47,20 +52,29 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
private final LawsCommonMapper lawsCommonMapper;
private final FileSpiltService fileSpiltService;
private final ISarFileSplitMenuEOService sarFileSplitMenuEOService;
private static final String INFO_ID = "infoId";
private static final String ITEM_NUM = "itemNum";
private static final String ITEM_TITLE = "itemTitle";
private static final String ITEM_CONTENT = "itemContent";
private static final String MENU_ID = "menuId";
private final LawsDocumentSplitMapper lawsDocumentSplitMapper;
private final SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper;
private static final String INFO_ID = "info_id";
private static final String ID = "id";
private static final String IDS = "ids";
private static final String ITEM_NUM = "item_num";
private static final String ITEM_TITLE = "item_title";
private static final String ITEM_CONTENT = "item_content";
private static final String MENU_ID = "menu_id";
public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper,
ISarFileSplitInfoService sarFileSplitInfoService,
LawsCommonMapper lawsCommonMapper,
FileSpiltService fileSpiltService, ISarFileSplitMenuEOService sarFileSplitMenuEOService) {
FileSpiltService fileSpiltService,
ISarFileSplitMenuEOService sarFileSplitMenuEOService,
LawsDocumentSplitMapper lawsDocumentSplitMapper,
SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper) {
this.documentSplitMapper = documentSplitMapper;
this.sarFileSplitInfoService = sarFileSplitInfoService;
this.lawsCommonMapper = lawsCommonMapper;
this.fileSpiltService = fileSpiltService;
this.sarFileSplitMenuEOService = sarFileSplitMenuEOService;
this.lawsDocumentSplitMapper = lawsDocumentSplitMapper;
this.sarFileSplitItemsValEOMapper = sarFileSplitItemsValEOMapper;
}
@Override
@@ -136,6 +150,141 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
}
@Override
public void editDocumentSplitDetail(Map<String, Object> parameter) {
// 查询全部字段列表
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
// 编辑页展示的字段
fieldList = fieldList.stream().filter(v -> YesOrNoEnum.YES.getInteger()
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
List<LawsTag> finalFieldList = fieldList;
parameter.forEach((k, v) -> {
// 修改字段
String updateSet = getUpdateValue(finalFieldList, k, (String) v);
// where条件
String updateCondition = (String) parameter.get("id");
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
});
}
@NotNull
private static String getUpdateValue(List<LawsTag> finalFieldList, String k, String v) {
// 匹配参数和字段
Optional<LawsTag> lawsTag = finalFieldList.stream().filter(o -> k.equals(o.getDbFieldName())).findFirst();
ArrayList<String> sqlList = new ArrayList<>();
lawsTag.ifPresent(l -> {
// 构建修改字段
if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(l.getFieldShowType())){
// 多日期
sqlList.add(new DateManyConditionImpl().buildUpdate(l.getDbFieldName(), v));
}else {
sqlList.add(new UniversalImpl().buildUpdate(l.getDbFieldName(), v));
}
});
// 修改数据
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
String join = String.join(",", sqlList);
return updateByAndUpdateTime + "," + join;
}
@Override
public void editBatchDocumentSplitDetail(Map<String, Object> parameter) {
// 查询全部字段列表
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
// 编辑页展示的字段
fieldList = fieldList.stream().filter(v -> YesOrNoEnum.YES.getInteger()
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
List<LawsTag> finalFieldList = fieldList;
parameter.forEach((k, v) -> {
// 修改字段
String updateSet = getUpdateValue(finalFieldList, k, (String) v);
// where条件
String updateCondition = "";
if (parameter.containsKey("id")){
String id = (String) parameter.get("id");
updateCondition = "id = " + "'" + id + "'";
}else {
String infoId = (String) parameter.get(INFO_ID);
updateCondition = "info_id = " + "'" + infoId + "'";
}
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
});
}
@Override
public void mergeDocumentSplitDetail(Map<String, Object> parameter) {
// 查询全部字段列表
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());
// sql查询列字段拼接
String selectColumn = getSelectColumn(fieldListSelect);
// 勾选数据ids
String ids = (String) parameter.get(IDS);
List<String> idList = Arrays.asList(ids.split(","));
// sql where条件拼接
String selectCondition = "where del_flag = 0 and s.id in ('" + String.join(",", idList) + "')";
// 排序
orderBy(new StringBuilder(selectCondition));
// 查询数据
List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, selectCondition);
// 第一条数据
Map<String, Object> firstData = listMap.get(0);
listMap.remove(0);
// 合并数据(合并每个key对应的value)
String content = firstData.get(ITEM_CONTENT) + mergeData(listMap);
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
String updateSet = updateByAndUpdateTime + "," + ITEM_CONTENT + " = " + "'" + content + "'";
String updateCondition = "id = " + "'" + firstData.get(ID) + "'";
// 修改数据
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
List<String> otherIds = listMap.stream().map(v -> (String)v.get(ID)).collect(Collectors.toList());
// 删除旧数据
lawsDocumentSplitMapper.deleteBatchIds(otherIds);
// 目录更新
List<String> menuIdList = listMap.stream().map(v -> (String) v.get(MENU_ID)).distinct().collect(Collectors.toList());
// 删除旧数据
documentSplitMapper.sarFileSplitMenudeleteByIdList(menuIdList);
// 修改条目
ArrayList<SarFileSplitItemsValEO> sarFileSplitItemsValEOSList = new ArrayList<>();
// 查询旧数据
for (Map<String, Object> map : listMap) {
String id = (String) map.get(ID);
sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id));
}
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID));
// 第一条数据信息的最大的排序字段值
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst();
sarFileSplitItemsValEOOptional.ifPresent(v ->{
// 排序字段
Integer displaySeq = v.getDisplaySeq();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
for (SarFileSplitItemsValEO fileSplitItemsValEO : sarFileSplitItemsValEOSList) {
displaySeq += 1;
fileSplitItemsValEO.setItemId(v.getItemId());
fileSplitItemsValEO.setDisplaySeq(displaySeq);
fileSplitItemsValEO.setModifyTime(new Date());
fileSplitItemsValEO.setModifyUser(sysUser.getUsername());
// 修改数据
sarFileSplitItemsValEOMapper.updateByPrimaryKeySelective(fileSplitItemsValEO);
}
} );
}
private String mergeData(List<Map<String, Object>> listMap) {
StringBuilder stringBuilder = new StringBuilder();
// 合并数据(合并每个key对应的value)
for (Map<String, Object> map : listMap) {
String num = (String) map.get(ITEM_NUM);
String content = (String) map.get(ITEM_CONTENT);
stringBuilder.append("<p>").append(num).append("<p>").append(content);
}
return stringBuilder.toString();
}
private void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
Date now = new Date();
@@ -213,6 +362,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
private void defaultCondition(Map<String, Object> parameter, StringBuilder selectCondition) {
if (parameter.containsKey(ID)){
selectCondition.append(" and s.id = '").append(parameter.get(ID)).append("'");
parameter.remove(ID);
}
if (parameter.containsKey(INFO_ID)){
selectCondition.append(" and s.info_id = '").append(parameter.get(INFO_ID)).append("'");
parameter.remove(INFO_ID);
@@ -223,12 +376,12 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
if (parameter.containsKey(ITEM_TITLE)){
// 模糊匹配
selectCondition.append(likeCondition("item_title", (String) parameter.get(ITEM_TITLE)));
selectCondition.append(likeCondition(ITEM_TITLE, (String) parameter.get(ITEM_TITLE)));
parameter.remove(ITEM_TITLE);
}
if (parameter.containsKey(ITEM_CONTENT)){
// 模糊匹配
selectCondition.append(likeCondition("item_content", (String) parameter.get(ITEM_CONTENT)));
selectCondition.append(likeCondition(ITEM_CONTENT, (String) parameter.get(ITEM_CONTENT)));
parameter.remove(ITEM_CONTENT);
}
// 树节点搜索
@@ -437,7 +437,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
fieldsBuilder.append("," + key);
}
String mustFields = "id,creation_user,creation_time,modify_user,modify_time,sys_org_code";
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
// String idTemp = UUID.randomUUID().toString().replace("-", "");
String mustValues = getMustValues(id);
String insertField = mustFields + fieldsBuilder.toString();
@@ -1076,7 +1076,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
dao.deleteByItemsIdList(oldItemIdList); // 条款
//同一目录下有多个条款时 如何处理?
// sarFileSplitMenuEOMapper.deleteByIdList(oldMenuIdList);
sarFileSplitMenuEOMapper.deleteByIdList(oldMenuIdList);
// 添加合并后的条款及目录 (新条款和新目录的id为第一条的)
newItemMap.remove("id");
newItemMap.remove("creation_user");