diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/Oauth.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/Oauth.java index c4fecff8..cbe3a747 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/entity/Oauth.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/Oauth.java @@ -5,8 +5,6 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; -import javax.validation.constraints.NotBlank; - /** * @Author: 31318 * @Date: 2023/09/26/10:07 @@ -38,14 +36,12 @@ public class Oauth { * 必需参数。授权码 */ @ApiModelProperty(value = "必需参数。授权码") - @NotBlank(message = "授权码不能为空!") private String code; /** * 重定向URI */ @ApiModelProperty(value = "重定向URI") - @NotBlank(message = "重定向URI不能为空!") private String redirectUri; /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java index a54e761d..b5e9e41b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java @@ -8,6 +8,14 @@ package com.jero.modules.laws.documenttool.common; public class DocumentSplitCommon { private DocumentSplitCommon(){ } + /** + * 是否null + */ + public static final String IF_NULL_BEGIN = " IFNULL( "; + /** + * 是否null + */ + public static final String IF_NULL_END = " ,'') "; /** * 日期格式化 */ @@ -49,18 +57,22 @@ public class DocumentSplitCommon { */ public static final String LT = " <= "; /** - * 条目类型 TEXT:文本, IMG:图片, TABLE:表格 + * 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读 */ public static final String TEXT = "TEXT"; /** - * 条目类型 + * 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读 */ public static final String IMG = "IMG"; /** - * 条目类型 + * 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读 */ public static final String TABLE = "TABLE"; + /** + * 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读 + */ + public static final String INTERPRETATION = "interpretation"; public static final String MEG_DEL = "删除成功!"; public static final String MEG_DEL_BATCH = "批量删除成功!"; -} +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java index 904e4d4e..f023229b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java @@ -148,6 +148,17 @@ public class DocumentSplitController { return Result.OK(documentSplitService.queryItemsValList(id)); } + /** + * 文档拆分详情-条文解读列表 + * @param id + * @return + */ + @AutoLog(value = "文档拆分详情-条文解读列表") + @ApiOperation(value = "文档拆分详情-条文解读列表") + @GetMapping("/queryInterpretationArticlesList") + public Result> queryInterpretationArticlesList(String id) { + return Result.OK(documentSplitService.queryInterpretationArticlesList(id)); + } /** * 文档拆分详情-编辑 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java index 9afcebb1..94f31c0b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java @@ -70,14 +70,14 @@ public interface DocumentSplitMapper { * @param itemId * @return */ - List queryItemsValByItemId(@Param("itemId") String itemId); + List queryItemsValByItemId(@Param("itemId") String itemId, @Param("type") String type); /** * 条目删除根据itemId * @param itemId * @return */ - int deleteItemsValByItemId(@Param("itemId") String itemId); + int deleteItemsValByItemId(@Param("itemId") String itemId, @Param("type") String type); /** * 目录删除根据menuId集合 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml index 7309c1e0..62ca58ef 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml @@ -44,6 +44,17 @@ delete from sar_file_split_items_val where item_id = #{itemId} + + + and type = #{type} + + + and type ]]> 'interpretation' + + + + and type = #{type} + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java index 5b69bafb..229735f2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java @@ -114,4 +114,11 @@ public interface IDocumentSplitService { * @param response */ void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response); + + /** + * 文档拆分详情-条文解读列表 + * @param itemId + * @return + */ + List queryInterpretationArticlesList(String itemId); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index 626491df..e3341a42 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -75,6 +75,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { 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 INTERPRETATION_ARTICLES = "interpretationArticles"; private static final String MENU_ID = "menu_id"; public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper, ISarFileSplitInfoService sarFileSplitInfoService, @@ -174,14 +175,23 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { .equals(v.getIsShowFormCreate())).collect(Collectors.toList()); List finalFieldList = fieldList; StringBuilder updateSet = new StringBuilder(); + // 条目信息 List valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class); parameter.remove("itemValEOList"); + // 条文解读 + List articlesList = JSON.parseArray(JSON.toJSONString(parameter.get("interpretationArticlesList")), SarFileSplitItemsValEO.class); + parameter.remove("interpretationArticlesList"); + // 计数 parameter.forEach((k, v) ->{ // 条文内容拼接 if (ITEM_CONTENT.equals(k)){ v = itemContentJoin(valList, (String) parameter.get(ID)); } + // 条文解读 + if (INTERPRETATION_ARTICLES.equals(k)){ + v = articlesJoin(articlesList, (String) parameter.get(ID)); + } // 修改字段 String updateValue = getUpdateValue(finalFieldList, k, (String) v); if (StringUtils.isNotBlank(updateValue)){ @@ -196,13 +206,41 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { String updateCondition = "id = '" + parameter.get(ID) + "'"; documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition); + //条文解读更新 + // 删除旧数据 + documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), DocumentSplitCommon.INTERPRETATION); + // 添加新数据 + documentSplitMapper.addBatchItemsVal(articlesList); + // 条目信息更新 // 删除旧数据 - documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID)); + documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), ""); // 添加新数据 documentSplitMapper.addBatchItemsVal(valList); } + private String articlesJoin(List articlesList, String itemId) { + StringBuilder valContent = new StringBuilder(); + int index = 0; + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!Objects.isNull(articlesList) && !articlesList.isEmpty()){ + for (SarFileSplitItemsValEO sarFileSplitItemsValEO : articlesList) { + index ++; + valContent.append("

").append(sarFileSplitItemsValEO.getItemContent()).append("

"); + sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20()); + sarFileSplitItemsValEO.setItemId(itemId); + sarFileSplitItemsValEO.setType(DocumentSplitCommon.INTERPRETATION); + sarFileSplitItemsValEO.setDisplaySeq(index); + sarFileSplitItemsValEO.setValidFlag(0); + sarFileSplitItemsValEO.setCreationTime(new Date()); + sarFileSplitItemsValEO.setModifyTime(new Date()); + sarFileSplitItemsValEO.setCreationUser(sysUser.getId()); + sarFileSplitItemsValEO.setModifyUser(sysUser.getId()); + } + } + return valContent.toString(); + } + private String itemContentJoin(List valList, String itemId) { StringBuilder valContent = new StringBuilder(); if (!Objects.isNull(valList) && !valList.isEmpty()){ @@ -326,9 +364,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 查询旧数据 for (Map map : listMap) { String id = (String) map.get(ID); - sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id)); + sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id, "")); } - List sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID)); + List sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID), ""); // 第一条数据信息的最大的排序字段值 Optional sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst(); sarFileSplitItemsValEOOptional.ifPresent(v ->{ @@ -402,7 +440,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { @Override public List queryItemsValList(String itemId) { - List sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId); + List sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId, ""); if (!Objects.isNull(sarFileSplitItemsValEOS) && !sarFileSplitItemsValEOS.isEmpty()){ for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOS) { String imgPath = sarFileSplitItemsValEO.getItemContent(); @@ -479,6 +517,11 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { } } + @Override + public List queryInterpretationArticlesList(String itemId) { + return documentSplitMapper.queryItemsValByItemId(itemId, INTERPRETATION_ARTICLES); + } + private void manageData(Map resultMap, StringBuilder fieldsBuilder, StringBuilder valuesBuilder) { // 所有key(字段名) resultMap.forEach((k, v) -> { @@ -533,6 +576,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { selectColumn.append("s.id"); for (LawsTag lawsTag : fieldListSelect) { selectColumn.append(","); + selectColumn.append(DocumentSplitCommon.IF_NULL_BEGIN); // 日期字段需要格式化 if (LawsFieldTypeEnum.DATE_SINGLE.getValue().equals(lawsTag.getDbFieldName())){ selectColumn.append(DocumentSplitCommon.DATE_FORMAT_BEGIN) @@ -542,6 +586,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 普通字段直接拼接 selectColumn.append(lawsTag.getDbFieldName()); } + selectColumn.append(DocumentSplitCommon.IF_NULL_END); // 别名 selectColumn.append(" as ").append(lawsTag.getDbFieldName()); }