fix(文档拆分): ;79531

This commit is contained in:
yjz
2024-01-10 21:59:43 +08:00
parent ed8c717125
commit 8f9488664b
8 changed files with 85 additions and 6 deletions
@@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.laws.documenttool.entity.SarFileSplitItemsVal;
import com.jero.modules.laws.documenttool.entity.SarFileSplitMenu;
import com.jero.modules.laws.documenttool.entity.SplitFileInfo;
import com.jero.modules.laws.documenttool.entity.*;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import org.apache.ibatis.annotations.Param;
@@ -193,4 +191,16 @@ public interface DocumentSplitMapper {
* @return
*/
IPage<SplitFileInfo> querySplitFileInfoByPage(@Param(Constants.WRAPPER) QueryWrapper<SplitFileInfo> queryWrapper, IPage<SplitFileInfo> page);
/**
* 条文表-根据id集合查询
* @param listMapIdList
*/
List<SarFileSplitItemsEO> querySarFileSplitItemsByIds(@Param("idList") List<String> listMapIdList);
/**
* 文档拆分详情通过idList范围查询
* @param idList
*/
List<LawsDocumentSplit> queryLawsDocumentSplitInIds(List<String> idList);
}
@@ -227,6 +227,36 @@
${ew.customSqlSegment}
</select>
<select id="querySarFileSplitItemsByIds" resultType="com.jero.modules.split.entity.SarFileSplitItemsEO">
SELECT id,
creation_user,
creation_time,
modify_user,
modify_time,
sys_org_code,
info_id,
items_num,
items_name,
iterms_conditions,
menu_id
FROM sar_file_split_items
WHERE id IN
<foreach collection="idList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="queryLawsDocumentSplitInIds"
resultType="com.jero.modules.laws.documenttool.entity.LawsDocumentSplit">
select *
from laws_document_split
where id in
<foreach collection="idList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<update id="editDocumentSplitDetail">
UPDATE laws_document_split
SET ${updateSet}
@@ -482,6 +482,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override
public void editDocumentSplitDetail(Map<String, Object> parameter) {
// 水平越权
isHorizontalOverstep(INFO_ID);
// 处理map参数null值转为“”
mapValueNullToString(parameter);
// 查询全部字段列表
@@ -621,6 +623,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override
public void editBatchDocumentSplitDetail(Map<String, Object> parameter) {
// 水平越权
List<LawsDocumentSplit> lawsDocumentSplitList = documentSplitMapper.queryLawsDocumentSplitInIds(Arrays.asList(((String) parameter.get("ids")).split(",")));
isHorizontalOverstep(lawsDocumentSplitList.get(0).getInfoId());
mapValueNullToString(parameter);
// 查询全部字段列表
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
@@ -688,9 +694,12 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
StringBuilder strSelectCondition = new StringBuilder(selectCondition);
// 查询数据
List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, strSelectCondition.toString());
// 水平越权
String infoIds = listMap.stream().map(v -> v.get(INFO_ID).toString()).collect(Collectors.joining(","));
isHorizontalOverstep(infoIds);
List<String> listMapIdList = listMap.stream().map(v -> v.get(ID).toString()).collect(Collectors.toList());
List<LawsDocumentSplit> lawsDocumentSplitList = documentSplitMapper.queryLawsDocumentSplitInIds(listMapIdList);
isHorizontalOverstep(lawsDocumentSplitList.get(0).getInfoId());
// 排序(根据条文号)
listMap.sort(new DirectoryComparator());
// 第一条数据
@@ -951,6 +960,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
public LawsDocumentSplitView queryView(Map<String, Object> parameter) {
LawsDocumentSplitView lawsDocumentSplitView = new LawsDocumentSplitView();
String id = (String) parameter.get(ID);
// 水平越权
isHorizontalOverstep(id);
// 文档拆分信息
DocumentSplitInfo documentSplitInfo = new DocumentSplitInfo();
documentSplitInfo.setId(id);
@@ -135,6 +135,8 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
try {
Map<String, Object> parameterMap = JSONObject.parseObject(parameter);
fileSplitItemsEOService.exportSplitInfo(cut, idList, parameterMap, exportName, response, request);
}catch (JeroBootException e){
throw new JeroBootException(e.getMessage());
}catch (Exception e){
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.ERROR));
}
@@ -70,4 +70,5 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper<SarFileSplitMenuEO>
List<SarFileSplitMenuEO> selectBatchIds(@Param("idList") List<String> idList);
SarFileSplitMenuEO findById(String id);
}
@@ -355,4 +355,9 @@
where info_id = #{infoId} and parent_id is null
</select>
<select id="findById" resultType="com.jero.modules.split.entity.SarFileSplitMenuEO">
select * from SAR_FILE_SPLIT_MENU
where id = #{id}
</select>
</mapper>
@@ -1522,6 +1522,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override
public Result<?> importSplitItems(MultipartFile file, String cut, String menuId, String infoId) throws IOException {
// 水平越权
documentSplitService.isHorizontalOverstep(infoId);
//验证文件名是否合格
/* 截取后缀名 */
int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -3454,6 +3457,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override
public void exportSplitInfo(String cut, String idList, Map<String, Object> parameter,String exportName, HttpServletResponse response, HttpServletRequest request) {
// 水平越权
documentSplitService.isHorizontalOverstep(request.getParameter("infoId"));
OutputStream os = null;
OutputStream excelOS = null;
HSSFWorkbook workbook = new HSSFWorkbook();
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
@@ -46,12 +47,17 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
@Autowired
private IFileSplitItemsEOService fileSplitItemsEOService;
@Autowired
private IDocumentSplitService documentSplitService;
// 通过ID查询该结点及结点下所有的节点排序的最大值
public int getMaxDisplayByid(String menuID) {
return dao.getMaxDisplayByid(menuID);
}
public int addMenu(SarFileSplitMenuEO sarFileSplitMenuEO){
// 水平越权
documentSplitService.isHorizontalOverstep(sarFileSplitMenuEO.getInfoId());
sarFileSplitMenuEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarFileSplitMenuEO.setValidFlag(0);
sarFileSplitMenuEO.setCreationTime(new Date());
@@ -118,6 +124,10 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
}
public void deleteMenu(String id){
// 水平越权
SarFileSplitMenuEO sarFileSplitMenuEO = dao.findById(id);
documentSplitService.isHorizontalOverstep(sarFileSplitMenuEO.getInfoId());
List<String> menuIds = new ArrayList<>();
SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO();
sarMenuEO.setId(id);
@@ -154,6 +164,8 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
@Override
public int updateByPrimaryKeySelective(SarFileSplitMenuEO sarFileSplitMenuEO) {
// 水平越权
documentSplitService.isHorizontalOverstep(sarFileSplitMenuEO.getInfoId());
return dao.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
@@ -259,6 +271,8 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
Long displaySeq = sarFileSplitMenuEO.getDisplaySeq();
String moveFlag = json.getString("moveFlag");
String infoId = json.getString("infoId");
// 水平越权
documentSplitService.isHorizontalOverstep(infoId);
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
page.setInfoId(infoId);