文档拆分模块。

This commit is contained in:
wangzhijiang
2024-02-21 17:53:47 +08:00
parent f2cf14f3a8
commit 083d49b7d6
10 changed files with 209 additions and 208 deletions
@@ -176,11 +176,12 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
// 将文件上传至腾讯云 cos // 将文件上传至腾讯云 cos
String upload = MinioUtil.upload(mf, "/" + uploadCospath); String upload = MinioUtil.upload(mf, "/" + uploadCospath);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = "";
//存入文件表 //存入文件表
oSSFile.setFileName(orgName); oSSFile.setFileName(orgName);
oSSFile.setId(UuidUtils.getUUID()); oSSFile.setId(UuidUtils.getUUID());
oSSFile.setCreateBy(loginUser.getUsername()); oSSFile.setCreateBy(userId);
oSSFile.setCreateTime(new Date()); oSSFile.setCreateTime(new Date());
this.save(oSSFile); this.save(oSSFile);
// 文件路径做特殊处理 // 文件路径做特殊处理
@@ -206,8 +206,8 @@ public class DocumentSplitController {
return Result.error("请选择数据!"); return Result.error("请选择数据!");
} }
List<String> list = Arrays.asList(map.getIds().split(",")); List<String> list = Arrays.asList(map.getIds().split(","));
documentSplitService.isHorizontalOverstep(map.getIds()); // documentSplitService.isHorizontalOverstep(map.getIds());
documentSplitService.checkOutOperation(list); // documentSplitService.checkOutOperation(list);
sarFileSplitInfoService.deleteByIds(list); sarFileSplitInfoService.deleteByIds(list);
return Result.OK(MessageUtils.getMessage(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK)); return Result.OK(MessageUtils.getMessage(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK));
} }
@@ -40,9 +40,9 @@ public abstract class AbstractConditionBase {
*/ */
public String getUpdateByAndUpdateTime() { public String getUpdateByAndUpdateTime() {
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String userId = "";
// return " update_by = " + "'" + sysUser.getUsername() + "'" + "," + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// "update_time = " + FieldCommon.STR_TO_DATE_PREFIX + dateFormat.format(new Date()) + "','%Y-%m-%d %H:%i:%s')"; return " update_by = " + "'" + userId + "'" + "," +
return ""; "update_time = " + "str_to_date('" + dateFormat.format(new Date()) + "','%Y-%m-%d %H:%i:%s')";
} }
} }
@@ -45,10 +45,10 @@ public interface DocumentSplitMapper {
/** /**
* 文档拆分详情-列表查询 * 文档拆分详情-列表查询
* @param selectColumn * @param selectColumn
* @param selectCondition * @param params
* @return * @return
*/ */
List<Map<String, Object>> queryDocumentSplitDetail(@Param("selectColumn") String selectColumn, @Param("selectCondition") String selectCondition); List<Map<String, Object>> queryDocumentSplitDetail(@Param("selectColumn") String selectColumn, @Param("params") Map<String,Object> params);
/** /**
* 文档拆分详情-编辑 * 文档拆分详情-编辑
@@ -184,50 +184,27 @@
<if test="params.menu_id != null" > <if test="params.menu_id != null" >
and lds.menu_id = #{params.menu_id} and lds.menu_id = #{params.menu_id}
</if> </if>
<!--<if test="standNumber != null" > <if test="params.item_num != null" >
and ncl.STAND_NUMBER like concat(concat('%', #{standNumber}),'%') and lds.item_num like concat(concat('%', #{params.item_num}),'%')
</if> </if>
<if test="standName != null" > <if test="params.item_title != null" >
and ncl.STAND_NAME like concat(concat('%', #{standName}),'%') and lds.item_title like concat(concat('%', #{params.item_title}),'%')
</if> </if>
<if test="suitabilityResult != null" > <if test="params.item_content != null" >
and ncl.SUITABILITY_RESULT = #{suitabilityResult} and lds.item_content like concat(concat('%', #{params.item_content}),'%')
</if> </if>
<if test="suitabilityCategory != null" > <if test="params.ids != null" >
and ncl.SUITABILITY_CATEGORY = #{suitabilityCategory} and lds.id in
</if> <foreach collection="params.ids.split(',')" index="index" item="item" open="(" separator="," close=")">
<if test="whetherAuthenticationCorresponding != null" > #{item}
and ncl.WHETHER_AUTHENTICATION_CORRESPONDING = #{whetherAuthenticationCorresponding}
</if>
<if test="authenticationCorrespondingType != null" >
and (
ncl.AUTHENTICATION_CORRESPONDING_TYPE = #{authenticationCorrespondingType}
<foreach item="item" index="index" collection="authenticationCorrespondingType.split(',')">
or ncl.AUTHENTICATION_CORRESPONDING_TYPE like concat(concat('%',#{item}),'%')
</foreach>
)
</if>
<if test="closedState != null" >
and ncl.CLOSED_STATE = #{closedState}
</if>
<if test="ids != null and ids.size != 0">
and ncl.ID in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach> </foreach>
</if> </if>
<if test="standId != null" > <if test="params.menuIds != null" >
and ncl.STAND_ID = #{standId} and lds.menu_id in
</if> <foreach collection="params.menuIds.split(',')" index="index" item="item" open="(" separator="," close=")">
<if test="standIdList != null and standIdList.size != 0" > #{item}
and sl.STAND_ID in
<foreach collection="standIdList" item="standId" open="(" separator="," close=")">
#{standId}
</foreach> </foreach>
</if> </if>
<if test="projectLibraryId != null" >
and ncl.PROJECT_LIBRARY_ID = #{projectLibraryId}
</if>-->
</trim> </trim>
</sql> </sql>
@@ -16,6 +16,7 @@ import com.jero.common.util.FileUtils;
import com.jero.common.util.MessageUtils; import com.jero.common.util.MessageUtils;
import com.jero.common.util.UUIDUtils; import com.jero.common.util.UUIDUtils;
import com.jero.common.util.ZipUtil; import com.jero.common.util.ZipUtil;
import com.jero.modules.documenttool.common.DirectoryComparator;
import com.jero.modules.documenttool.common.DocumentSplitCommon; import com.jero.modules.documenttool.common.DocumentSplitCommon;
import com.jero.modules.documenttool.entity.*; import com.jero.modules.documenttool.entity.*;
import com.jero.modules.documenttool.factory.ConditionMapFactory; import com.jero.modules.documenttool.factory.ConditionMapFactory;
@@ -25,10 +26,12 @@ import com.jero.modules.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.documenttool.mapper.LawsDocumentSplitMapper; import com.jero.modules.documenttool.mapper.LawsDocumentSplitMapper;
import com.jero.modules.documenttool.service.IDocumentSplitService; import com.jero.modules.documenttool.service.IDocumentSplitService;
import com.jero.modules.split.entity.SarFileSplitInfoEO; import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO; import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.enums.SplitEnum; import com.jero.modules.split.enums.SplitEnum;
import com.jero.modules.split.enums.SplitFileTypeTypeEnum; import com.jero.modules.split.enums.SplitFileTypeTypeEnum;
import com.jero.modules.split.mapper.FileSplitItemsEOMapper;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper; import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
import com.jero.modules.split.page.SarFileSplitMenuEOPage; import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.split.service.ISarFileSplitInfoService;
@@ -61,6 +64,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -138,6 +142,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Value("#{'${adminRoleCode}'.split(',')}") @Value("#{'${adminRoleCode}'.split(',')}")
private List<String> adminRoleCodeList; private List<String> adminRoleCodeList;
@Autowired
private FileSplitItemsEOMapper fileSplitItemsEOMapper;
@Override @Override
public IPage<DocumentSplitInfo> queryByPage(DocumentSplitInfo documentSplitInfo, Integer pageNo, Integer pageSize) { public IPage<DocumentSplitInfo> queryByPage(DocumentSplitInfo documentSplitInfo, Integer pageNo, Integer pageSize) {
// 构建查询条件 // 构建查询条件
@@ -204,7 +211,20 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// 分页参数 // 分页参数
int pageNo = Integer.parseInt((String) parameter.get("pageNo")); int pageNo = Integer.parseInt((String) parameter.get("pageNo"));
int pageSize = Integer.parseInt((String) parameter.get("pageSize")); int pageSize = Integer.parseInt((String) parameter.get("pageSize"));
// String selectCondition = "order by create_time desc"; // 树节点搜索
if (parameter.containsKey(MENU_ID)){
// 查询此节点下的所有子节点
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setId( (String) parameter.get(MENU_ID));
List<SarFileSplitMenuEO> sarFileSplitMenuEOS = sarFileSplitMenuEOService.queryAllChildrenById(sarFileSplitMenuEO);
if (!sarFileSplitMenuEOS.isEmpty()){
String menuIds= sarFileSplitMenuEOS.stream()
.map(SarFileSplitMenuEO::getId)
.collect(Collectors.joining(","));
parameter.put("menuIds",menuIds);
parameter.remove(MENU_ID);
}
}
// 查询数据 // 查询数据
IPage<Map<String, Object>> mapIPage = documentSplitMapper.queryDocumentSplitDetail(new Page<>(pageNo, pageSize), parameter); IPage<Map<String, Object>> mapIPage = documentSplitMapper.queryDocumentSplitDetail(new Page<>(pageNo, pageSize), parameter);
// // 翻译 // // 翻译
@@ -239,27 +259,11 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public List<Map<String, Object>> queryDocumentSplitDetailByList(Map<String, Object> parameter) { public List<Map<String, Object>> queryDocumentSplitDetailByList(Map<String, Object> parameter) {
// // 查询全部字段列表 // sql查询列字段拼接
// List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName()); String selectColumn = "*";
// // 列表展示字段 // 查询数据
// List<LawsTag> fieldListSelect = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue() List<Map<String, Object>> list = documentSplitMapper.queryDocumentSplitDetail(selectColumn, parameter);
// .equals(String.valueOf(v.getIsShowList()))).collect(Collectors.toList()); return list;
// // 搜索条件展示字段
// List<LawsTag> fieldListCondition = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue()
// .equals(String.valueOf(v.getIsQuery()))).collect(Collectors.toList());
//
// // sql查询列字段拼接
// String selectColumn = getSelectColumn(fieldListSelect);
// // sql where条件拼接
// String selectCondition = getSelectCondition(parameter, fieldListCondition);
// // 排序
// selectCondition = orderBy(parameter, selectCondition, fieldListSelect);
// // 查询数据
// List<Map<String, Object>> list = documentSplitMapper.queryDocumentSplitDetail(selectColumn, selectCondition);
// // 翻译
// dicTranslate(list, fieldListSelect);
// return list;
return null;
} }
@@ -292,10 +296,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public void add(SarFileSplitInfoEO sarFileSplitInfoEO) { public void add(SarFileSplitInfoEO sarFileSplitInfoEO) {
// 企标权限校验 // // 企标权限校验
enterpriseCheck(sarFileSplitInfoEO); // enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验 // // 唯一校验
uniqueCheck(sarFileSplitInfoEO); // uniqueCheck(sarFileSplitInfoEO);
// 保存文本拆分数据 // 保存文本拆分数据
saveDocumentSplitInfo(sarFileSplitInfoEO); saveDocumentSplitInfo(sarFileSplitInfoEO);
//拆分 //拆分
@@ -444,8 +448,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public void editDocumentSplitDetail(Map<String, Object> parameter) { public void editDocumentSplitDetail(Map<String, Object> parameter) {
// // 水平越权
// isHorizontalOverstep((String) parameter.get(INFO_ID));
// // 处理map参数null值转为“” // // 处理map参数null值转为“”
// mapValueNullToString(parameter); // mapValueNullToString(parameter);
// // 查询全部字段列表 // // 查询全部字段列表
@@ -477,14 +479,26 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// updateSet.append(updateValue).append(","); // updateSet.append(updateValue).append(",");
// } // }
// }); // });
// // 更新人和更新时间 // 更新人和更新时间
// String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime(); // String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
// updateSet.insert(0, updateByAndUpdateTime + ","); // updateSet.insert(0, updateByAndUpdateTime + ",");
// updateSet.deleteCharAt(updateSet.length() - 1); // updateSet.deleteCharAt(updateSet.length() - 1);
// // where条件 // // where条件
// String updateCondition = "id = '" + parameter.get(ID) + "'"; // String updateCondition = "id = '" + parameter.get(ID) + "'";
// documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition); // documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition);
//
// 条目信息
List<SarFileSplitItemsValEO> valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class);
String itemContent = itemContentJoin(valList, (String) parameter.get(ID));
SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO();
sarFileSplitItemsEO.setId(parameter.get(ID).toString());
sarFileSplitItemsEO.setItemNum(parameter.get(ITEM_NUM).toString());
sarFileSplitItemsEO.setItemTitle(parameter.get(ITEM_TITLE).toString());
sarFileSplitItemsEO.setModifyTime(new Date());
sarFileSplitItemsEO.setItemContent(itemContent);
this.fileSplitItemsEOMapper.updateSarFileSplitItemsInfo(sarFileSplitItemsEO);
// //条文解读更新 // //条文解读更新
// // 删除旧数据 // // 删除旧数据
// documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), DocumentSplitCommon.INTERPRETATION); // documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), DocumentSplitCommon.INTERPRETATION);
@@ -493,13 +507,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// documentSplitMapper.addBatchItemsVal(articlesList); // documentSplitMapper.addBatchItemsVal(articlesList);
// } // }
// //
// // 条目信息更新 // 条目信息更新
// // 删除旧数据 // 删除旧数据
// documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), ""); documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), "");
// if (!Objects.isNull(valList) && !valList.isEmpty()){ if (!Objects.isNull(valList) && !valList.isEmpty()){
// // 添加新数据 // 添加新数据
// documentSplitMapper.addBatchItemsVal(valList); documentSplitMapper.addBatchItemsVal(valList);
// } }
} }
private void mapValueNullToString(Map<String, Object> parameter) { private void mapValueNullToString(Map<String, Object> parameter) {
@@ -538,7 +552,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
StringBuilder valContent = new StringBuilder(); StringBuilder valContent = new StringBuilder();
if (!Objects.isNull(valList) && !valList.isEmpty()){ if (!Objects.isNull(valList) && !valList.isEmpty()){
int index = 0; int index = 0;
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = "";
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : valList) { for (SarFileSplitItemsValEO sarFileSplitItemsValEO : valList) {
// 条文内容拼接 // 条文内容拼接
if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) { if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) {
@@ -558,8 +573,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
sarFileSplitItemsValEO.setValidFlag(0); sarFileSplitItemsValEO.setValidFlag(0);
sarFileSplitItemsValEO.setCreationTime(new Date()); sarFileSplitItemsValEO.setCreationTime(new Date());
sarFileSplitItemsValEO.setModifyTime(new Date()); sarFileSplitItemsValEO.setModifyTime(new Date());
sarFileSplitItemsValEO.setCreationUser(sysUser.getId()); sarFileSplitItemsValEO.setCreationUser(userId);
sarFileSplitItemsValEO.setModifyUser(sysUser.getId()); sarFileSplitItemsValEO.setModifyUser(userId);
} }
} }
return valContent.toString(); return valContent.toString();
@@ -640,91 +655,74 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public void mergeDocumentSplitDetail(Map<String, Object> parameter) { public void mergeDocumentSplitDetail(Map<String, Object> parameter) {
// // 查询全部字段列表 String selectColumn = "*";
// List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName()); // 查询数据
// // 列表展示字段 List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, parameter);
// List<LawsTag> fieldListSelect = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue()
// .equals(String.valueOf(v.getIsShowList()))).collect(Collectors.toList()); // 排序(根据条文号)
// // sql查询列字段拼接 listMap.sort(new DirectoryComparator());
// String selectColumn = getSelectColumn(fieldListSelect); // 第一条数据
// // 勾选数据ids Map<String, Object> firstData = listMap.get(0);
// String ids = (String) parameter.get(IDS); listMap.remove(0);
// List<String> idList = Arrays.asList(ids.split(",")); // 合并数据(条文标题、条文内容)
// // sql where条件拼接 String title = firstData.get(ITEM_TITLE) + " " + mergeData(listMap, ITEM_TITLE);
// String selectCondition = "where del_flag = 0 and s.id in ('" + String.join("','", idList) + "')"; String content = firstData.get(ITEM_CONTENT) + mergeData(listMap, ITEM_CONTENT);
// // 排序 String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
// StringBuilder strSelectCondition = new StringBuilder(selectCondition); String updateSet = updateByAndUpdateTime +
// // 查询数据 "," + ITEM_TITLE + " = " + "' "+ title + "'" +
// List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, strSelectCondition.toString()); "," + ITEM_CONTENT + " = " + "'" + content + "'";
// String updateCondition = "id = " + "'" + firstData.get(ID) + "'";
// // 水平越权 // 修改数据
// List<String> listMapIdList = listMap.stream().map(v -> v.get(ID).toString()).collect(Collectors.toList()); documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
// List<LawsDocumentSplit> lawsDocumentSplitList = documentSplitMapper.queryLawsDocumentSplitInIds(listMapIdList); List<String> otherIds = listMap.stream().map(v -> (String)v.get(ID)).collect(Collectors.toList());
// isHorizontalOverstep(lawsDocumentSplitList.get(0).getInfoId()); // 删除旧数据
// lawsDocumentSplitMapper.deleteBatchIds(otherIds);
// // 排序(根据条文号)
// listMap.sort(new DirectoryComparator()); // 目录更新
// // 第一条数据 List<String> menuIdList = listMap.stream()
// Map<String, Object> firstData = listMap.get(0); .filter(v -> !Objects.equals(v.get(MENU_ID), firstData.get(MENU_ID)))
// listMap.remove(0); .map(v -> (String) v.get(MENU_ID))
// // 合并数据(条文标题、条文内容) .distinct()
// String title = firstData.get(ITEM_TITLE) + " " + mergeData(listMap, ITEM_TITLE); .collect(Collectors.toList());
// String content = firstData.get(ITEM_CONTENT) + mergeData(listMap, ITEM_CONTENT);
// String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime(); if (!menuIdList.isEmpty()){
// String updateSet = updateByAndUpdateTime + // 判断被合并条款之前有没有复制过,复制过则不删除相关目录
// "," + ITEM_TITLE + " = " + "' "+ title + "'" + List<LawsDocumentSplit> lawsDocumentSplits = documentSplitMapper.queryLawsDocumentSplitInIds(Collections.singletonList((String) firstData.get(ID)));
// "," + ITEM_CONTENT + " = " + "'" + content + "'"; List<String> menuIds = documentSplitMapper.queryLawsDocumentSplitGroupByMenuId(lawsDocumentSplits.get(0).getInfoId());
// String updateCondition = "id = " + "'" + firstData.get(ID) + "'"; if (CollectionUtils.isNotEmpty(menuIds)){
// // 修改数据 menuIdList = menuIdList.stream().filter(v -> !menuIds.contains(v)).collect(Collectors.toList());
// documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition); }
// List<String> otherIds = listMap.stream().map(v -> (String)v.get(ID)).collect(Collectors.toList()); if (!menuIdList.isEmpty()){
// // 删除旧数据 // 删除旧数据
// lawsDocumentSplitMapper.deleteBatchIds(otherIds); documentSplitMapper.sarFileSplitMenuDeleteByIdList(menuIdList);
// }
// // 目录更新 }
// List<String> menuIdList = listMap.stream()
// .filter(v -> !Objects.equals(v.get(MENU_ID), firstData.get(MENU_ID))) // 修改条目
// .map(v -> (String) v.get(MENU_ID)) ArrayList<SarFileSplitItemsValEO> sarFileSplitItemsValEOSList = new ArrayList<>();
// .distinct() // 查询旧数据
// .collect(Collectors.toList()); for (Map<String, Object> map : listMap) {
// String id = (String) map.get(ID);
// if (!menuIdList.isEmpty()){ sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id, ""));
// // 判断被合并条款之前有没有复制过,复制过则不删除相关目录 }
// List<LawsDocumentSplit> lawsDocumentSplits = documentSplitMapper.queryLawsDocumentSplitInIds(Collections.singletonList((String) firstData.get(ID))); List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID), "");
// List<String> menuIds = documentSplitMapper.queryLawsDocumentSplitGroupByMenuId(lawsDocumentSplits.get(0).getInfoId()); // 第一条数据信息的最大的排序字段值
// if (CollectionUtils.isNotEmpty(menuIds)){ Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted(Comparator.comparing(v -> Integer.valueOf(String.valueOf(v.getDisplaySeq())))).findFirst();
// menuIdList = menuIdList.stream().filter(v -> !menuIds.contains(v)).collect(Collectors.toList()); sarFileSplitItemsValEOOptional.ifPresent(v ->{
// } // 排序字段
// if (!menuIdList.isEmpty()){ Integer displaySeq = v.getDisplaySeq();
// // 删除旧数据
// 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(Comparator.comparing(v -> Integer.valueOf(String.valueOf(v.getDisplaySeq())))).findFirst();
// sarFileSplitItemsValEOOptional.ifPresent(v ->{
// // 排序字段
// Integer displaySeq = v.getDisplaySeq();
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// for (SarFileSplitItemsValEO fileSplitItemsValEO : sarFileSplitItemsValEOSList) { String userId = "";
// displaySeq += 1; for (SarFileSplitItemsValEO fileSplitItemsValEO : sarFileSplitItemsValEOSList) {
// fileSplitItemsValEO.setItemId(v.getItemId()); displaySeq += 1;
// fileSplitItemsValEO.setDisplaySeq(displaySeq); fileSplitItemsValEO.setItemId(v.getItemId());
// fileSplitItemsValEO.setModifyTime(new Date()); fileSplitItemsValEO.setDisplaySeq(displaySeq);
// fileSplitItemsValEO.setModifyUser(sysUser.getUsername()); fileSplitItemsValEO.setModifyTime(new Date());
// // 修改数据 fileSplitItemsValEO.setModifyUser(userId);
// sarFileSplitItemsValEOMapper.updateByPrimaryKeySelective(fileSplitItemsValEO); // 修改数据
// } sarFileSplitItemsValEOMapper.updateByPrimaryKeySelective(fileSplitItemsValEO);
// } ); }
} );
} }
@Override @Override
@@ -763,11 +761,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public void copyDocumentSplitDetail(String id) { public void copyDocumentSplitDetail(String id) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查询数据 // 查询数据
Map<String, Object> resultMap = documentSplitMapper.queryLawsDocumentSplitById(id); Map<String, Object> resultMap = documentSplitMapper.queryLawsDocumentSplitById(id);
// 水平越权
isHorizontalOverstep(resultMap.get(INFO_ID).toString());
// 字段名 // 字段名
StringBuilder fieldsBuilder = new StringBuilder(); StringBuilder fieldsBuilder = new StringBuilder();
// 字段值 // 字段值
@@ -777,9 +772,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
String format = dateFormat.format(date); String format = dateFormat.format(date);
String newItemValId = UUID.randomUUID().toString().replace("-", ""); String newItemValId = UUID.randomUUID().toString().replace("-", "");
resultMap.put(ID, newItemValId); resultMap.put(ID, newItemValId);
resultMap.put("create_by", loginUser.getUsername()); resultMap.put("create_by", "");
resultMap.put(CREATE_TIME, format); resultMap.put(CREATE_TIME, format);
resultMap.put("update_by", loginUser.getUsername()); resultMap.put("update_by", "");
resultMap.put("update_time", format); resultMap.put("update_time", format);
// 字段名和值 // 字段名和值
manageData(resultMap, fieldsBuilder, valuesList); manageData(resultMap, fieldsBuilder, valuesList);
@@ -931,8 +926,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
public LawsDocumentSplitView queryView(Map<String, Object> parameter) { public LawsDocumentSplitView queryView(Map<String, Object> parameter) {
LawsDocumentSplitView lawsDocumentSplitView = new LawsDocumentSplitView(); LawsDocumentSplitView lawsDocumentSplitView = new LawsDocumentSplitView();
String id = (String) parameter.get(ID); String id = (String) parameter.get(ID);
// 水平越权 // // 水平越权
isHorizontalOverstep(id); // isHorizontalOverstep(id);
// 文档拆分信息 // 文档拆分信息
DocumentSplitInfo documentSplitInfo = new DocumentSplitInfo(); DocumentSplitInfo documentSplitInfo = new DocumentSplitInfo();
documentSplitInfo.setId(id); documentSplitInfo.setId(id);
@@ -1198,12 +1193,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override @Override
public void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO) { public void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = "";
Date now = new Date(); Date now = new Date();
String infoId = UUID.randomUUID().toString().replace("-", ""); String infoId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitInfoEO.setId(infoId); sarFileSplitInfoEO.setId(infoId);
sarFileSplitInfoEO.setSplitResult("成功"); sarFileSplitInfoEO.setSplitResult("成功");
sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS1.getValue()); sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS1.getValue());
sarFileSplitInfoEO.setAuthor(sysUser.getId()); sarFileSplitInfoEO.setAuthor(userId);
sarFileSplitInfoEO.setCreateTime(now); sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now); sarFileSplitInfoEO.setUpdateTime(now);
sarFileSplitInfoService.save(sarFileSplitInfoEO); sarFileSplitInfoService.save(sarFileSplitInfoEO);
@@ -112,7 +112,7 @@
insert into laws_document_split insert into laws_document_split
(id, info_id, item_num, item_title, menu_id, (id, info_id, item_num, item_title, menu_id,
create_by, create_time, update_time, create_by, create_time, update_time,
update_by, item_content,sort_number,applicable_components) update_by, item_content,sort_number)
values values
<foreach collection="list" item="item" index="index" separator=",">( <foreach collection="list" item="item" index="index" separator=",">(
#{item.id, jdbcType=VARCHAR}, #{item.infoId, jdbcType=VARCHAR}, #{item.itemNum, jdbcType=VARCHAR}, #{item.id, jdbcType=VARCHAR}, #{item.infoId, jdbcType=VARCHAR}, #{item.itemNum, jdbcType=VARCHAR},
@@ -120,8 +120,7 @@
#{item.menuId, jdbcType=VARCHAR}, #{item.menuId, jdbcType=VARCHAR},
#{item.creationUser, jdbcType=VARCHAR}, #{item.creationUser, jdbcType=VARCHAR},
#{item.creationTime, jdbcType=TIMESTAMP}, #{item.modifyTime, jdbcType=TIMESTAMP}, #{item.creationTime, jdbcType=TIMESTAMP}, #{item.modifyTime, jdbcType=TIMESTAMP},
#{item.modifyUser, jdbcType=VARCHAR}, #{item.itemContent, jdbcType=CLOB},#{item.zhan3Shi4Shun4Xu4, jdbcType=VARCHAR}, #{item.modifyUser, jdbcType=VARCHAR}, #{item.itemContent, jdbcType=CLOB},#{item.zhan3Shi4Shun4Xu4, jdbcType=VARCHAR}
#{item.applicableComponents, jdbcType=VARCHAR}
) )
</foreach> </foreach>
</insert> </insert>
@@ -139,8 +138,17 @@
<if test="sarFileSplitItemsEO.zhan3Shi4Shun4Xu4 != null" > <if test="sarFileSplitItemsEO.zhan3Shi4Shun4Xu4 != null" >
zhan3_shi4_shun4_xu4 = #{sarFileSplitItemsEO.zhan3Shi4Shun4Xu4}, zhan3_shi4_shun4_xu4 = #{sarFileSplitItemsEO.zhan3Shi4Shun4Xu4},
</if> </if>
modify_user = #{sarFileSplitItemsEO.modifyUser, jdbcType=VARCHAR}, <if test="sarFileSplitItemsEO.itemNum != null" >
modify_time = #{sarFileSplitItemsEO.modifyTime, jdbcType=TIMESTAMP} item_num = #{sarFileSplitItemsEO.itemNum},
</if>
<if test="sarFileSplitItemsEO.itemTitle != null" >
item_title = #{sarFileSplitItemsEO.itemTitle},
</if>
<if test="sarFileSplitItemsEO.itemContent != null" >
item_content = #{sarFileSplitItemsEO.itemContent},
</if>
update_by = #{sarFileSplitItemsEO.modifyUser, jdbcType=VARCHAR},
update_time = #{sarFileSplitItemsEO.modifyTime, jdbcType=TIMESTAMP}
</set> </set>
where id = #{sarFileSplitItemsEO.id, jdbcType=VARCHAR} where id = #{sarFileSplitItemsEO.id, jdbcType=VARCHAR}
</update> </update>
@@ -838,10 +838,11 @@ public class FileSpiltService {
sarFileSplitItemsEO.setId(UUIDUtils.randomUUID20()); sarFileSplitItemsEO.setId(UUIDUtils.randomUUID20());
sarFileSplitItemsEO.setValidFlag(0); sarFileSplitItemsEO.setValidFlag(0);
sarFileSplitItemsEO.setCreationTime(new Date()); sarFileSplitItemsEO.setCreationTime(new Date());
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 // LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户
sarFileSplitItemsEO.setCreationUser(loginUser.getUsername()); String userId = "";
sarFileSplitItemsEO.setCreationUser(userId);
sarFileSplitItemsEO.setModifyTime(new Date()); sarFileSplitItemsEO.setModifyTime(new Date());
sarFileSplitItemsEO.setModifyUser(loginUser.getUsername()); sarFileSplitItemsEO.setModifyUser(userId);
return sarFileSplitItemsEO; return sarFileSplitItemsEO;
} }
@@ -1186,10 +1187,11 @@ public class FileSpiltService {
sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20()); sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20());
sarFileSplitItemsValEO.setValidFlag(0); sarFileSplitItemsValEO.setValidFlag(0);
sarFileSplitItemsValEO.setCreationTime(new Date()); sarFileSplitItemsValEO.setCreationTime(new Date());
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户 // LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户
sarFileSplitItemsValEO.setCreationUser(loginUser.getUsername()); String userId = "";
sarFileSplitItemsValEO.setCreationUser(userId);
sarFileSplitItemsValEO.setModifyTime(new Date()); sarFileSplitItemsValEO.setModifyTime(new Date());
sarFileSplitItemsValEO.setModifyUser(loginUser.getUsername()); sarFileSplitItemsValEO.setModifyUser(userId);
sarFileSplitItemsValEO.setItemId(itemId); sarFileSplitItemsValEO.setItemId(itemId);
sarFileSplitItemsValEO.setType(type); sarFileSplitItemsValEO.setType(type);
sarFileSplitItemsValEO.setDisplaySeq(disPlaySql); sarFileSplitItemsValEO.setDisplaySeq(disPlaySql);
@@ -1681,20 +1681,21 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override @Override
public Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException { public Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException {
// 企标权限校验 // // 企标权限校验
documentSplitService.enterpriseCheck(sarFileSplitInfoEO); // documentSplitService.enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验 // // 唯一校验
documentSplitService.uniqueCheck(sarFileSplitInfoEO); // documentSplitService.uniqueCheck(sarFileSplitInfoEO);
// MultipartFile mFile = createMfileByPath(url); // MultipartFile mFile = createMfileByPath(url);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = "";
Date now = new Date(); Date now = new Date();
String infoId = UUID.randomUUID().toString().replace("-", ""); String infoId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitInfoEO.setId(infoId); sarFileSplitInfoEO.setId(infoId);
sarFileSplitInfoEO.setSplitResult("成功"); sarFileSplitInfoEO.setSplitResult("成功");
sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS1.getValue()); sarFileSplitInfoEO.setSplitStatus(SplitEnum.SPLIT_STATUS1.getValue());
sarFileSplitInfoEO.setAuthor(sysUser.getId()); sarFileSplitInfoEO.setAuthor(userId);
sarFileSplitInfoEO.setCreateTime(now); sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now); sarFileSplitInfoEO.setUpdateTime(now);
sarFileSplitInfoService.save(sarFileSplitInfoEO); sarFileSplitInfoService.save(sarFileSplitInfoEO);
@@ -3457,9 +3458,6 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override @Override
public void exportSplitInfo(String cut, String idList, Map<String, Object> parameter,String exportName, HttpServletResponse response, HttpServletRequest request) { public void exportSplitInfo(String cut, String idList, Map<String, Object> parameter,String exportName, HttpServletResponse response, HttpServletRequest request) {
// 水平越权
documentSplitService.isHorizontalOverstep(String.valueOf(parameter.get("info_id")));
OutputStream os = null; OutputStream os = null;
OutputStream excelOS = null; OutputStream excelOS = null;
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFWorkbook workbook = new HSSFWorkbook();
@@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.modules.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.FileSplitItemsEOMapper;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper; import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper; import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.page.SarFileSplitMenuEOPage; import com.jero.modules.split.page.SarFileSplitMenuEOPage;
@@ -46,6 +48,9 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
@Autowired @Autowired
private IFileSplitItemsEOService fileSplitItemsEOService; private IFileSplitItemsEOService fileSplitItemsEOService;
@Autowired
private FileSplitItemsEOMapper fileSplitItemsEOMapper;
// 通过ID查询该结点及结点下所有的节点排序的最大值 // 通过ID查询该结点及结点下所有的节点排序的最大值
public int getMaxDisplayByid(String menuID) { public int getMaxDisplayByid(String menuID) {
return dao.getMaxDisplayByid(menuID); return dao.getMaxDisplayByid(menuID);
@@ -59,15 +64,29 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
sarFileSplitMenuEO.setModifyTime(new Date()); sarFileSplitMenuEO.setModifyTime(new Date());
int count = dao.insertSelective(sarFileSplitMenuEO); int count = dao.insertSelective(sarFileSplitMenuEO);
// 新增对应条款 // 新增对应条款
Map<String, Object> parameter = new HashMap<>(); // Map<String, Object> parameter = new HashMap<>();
if (StringUtils.isNotEmpty(sarFileSplitMenuEO.getName())) { // if (StringUtils.isNotEmpty(sarFileSplitMenuEO.getName())) {
parameter.put("item_num", sarFileSplitMenuEO.getName()); // parameter.put("item_num", sarFileSplitMenuEO.getName());
} // }
parameter.put("item_title", sarFileSplitMenuEO.getItemName()); // parameter.put("item_title", sarFileSplitMenuEO.getItemName());
parameter.put("info_id", sarFileSplitMenuEO.getInfoId()); // parameter.put("info_id", sarFileSplitMenuEO.getInfoId());
parameter.put("menu_id", sarFileSplitMenuEO.getId()); // parameter.put("menu_id", sarFileSplitMenuEO.getId());
String itemId = UUID.randomUUID().toString().replace("-", ""); // String itemId = UUID.randomUUID().toString().replace("-", "");
fileSplitItemsEOService.insertInfo(parameter, itemId,"add"); // fileSplitItemsEOService.insertInfo(parameter, itemId,"add");
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
lawsDocumentSplit.setId(UUID.randomUUID().toString().replace("-", ""));
lawsDocumentSplit.setItemNum(sarFileSplitMenuEO.getName());
lawsDocumentSplit.setItemTitle(sarFileSplitMenuEO.getItemName());
lawsDocumentSplit.setInterpretationArticles("");
lawsDocumentSplit.setSortNumber(String.valueOf(sarFileSplitMenuEO.getDisplaySeq()));
lawsDocumentSplit.setMenuId(sarFileSplitMenuEO.getId());
lawsDocumentSplit.setInfoId(sarFileSplitMenuEO.getInfoId());
lawsDocumentSplit.setDelFlag(0);
lawsDocumentSplit.setCreateTime(new Date());
lawsDocumentSplit.setUpdateTime(new Date());
this.fileSplitItemsEOMapper.insertLawsDocumentSplit(lawsDocumentSplit);
// 之后的所有节点序号增加 // 之后的所有节点序号增加
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
// page.setPId(sarFileSplitMenuEO.getPId()); // page.setPId(sarFileSplitMenuEO.getPId());