feat(文档拆分): 条文解读多个、条纹解读列表
This commit is contained in:
@@ -5,8 +5,6 @@ import lombok.Data;
|
|||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: 31318
|
* @Author: 31318
|
||||||
* @Date: 2023/09/26/10:07
|
* @Date: 2023/09/26/10:07
|
||||||
@@ -38,14 +36,12 @@ public class Oauth {
|
|||||||
* 必需参数。授权码
|
* 必需参数。授权码
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "必需参数。授权码")
|
@ApiModelProperty(value = "必需参数。授权码")
|
||||||
@NotBlank(message = "授权码不能为空!")
|
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重定向URI
|
* 重定向URI
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "重定向URI")
|
@ApiModelProperty(value = "重定向URI")
|
||||||
@NotBlank(message = "重定向URI不能为空!")
|
|
||||||
private String redirectUri;
|
private String redirectUri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+16
-4
@@ -8,6 +8,14 @@ package com.jero.modules.laws.documenttool.common;
|
|||||||
public class DocumentSplitCommon {
|
public class DocumentSplitCommon {
|
||||||
private 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 = " <= ";
|
public static final String LT = " <= ";
|
||||||
/**
|
/**
|
||||||
* 条目类型 TEXT:文本, IMG:图片, TABLE:表格
|
* 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读
|
||||||
*/
|
*/
|
||||||
public static final String TEXT = "TEXT";
|
public static final String TEXT = "TEXT";
|
||||||
/**
|
/**
|
||||||
* 条目类型
|
* 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读
|
||||||
*/
|
*/
|
||||||
public static final String IMG = "IMG";
|
public static final String IMG = "IMG";
|
||||||
/**
|
/**
|
||||||
* 条目类型
|
* 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读
|
||||||
*/
|
*/
|
||||||
public static final String TABLE = "TABLE";
|
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 = "删除成功!";
|
||||||
public static final String MEG_DEL_BATCH = "批量删除成功!";
|
public static final String MEG_DEL_BATCH = "批量删除成功!";
|
||||||
}
|
}
|
||||||
+11
@@ -148,6 +148,17 @@ public class DocumentSplitController {
|
|||||||
return Result.OK(documentSplitService.queryItemsValList(id));
|
return Result.OK(documentSplitService.queryItemsValList(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文档拆分详情-条文解读列表
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "文档拆分详情-条文解读列表")
|
||||||
|
@ApiOperation(value = "文档拆分详情-条文解读列表")
|
||||||
|
@GetMapping("/queryInterpretationArticlesList")
|
||||||
|
public Result<List<SarFileSplitItemsValEO>> queryInterpretationArticlesList(String id) {
|
||||||
|
return Result.OK(documentSplitService.queryInterpretationArticlesList(id));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文档拆分详情-编辑
|
* 文档拆分详情-编辑
|
||||||
|
|||||||
+2
-2
@@ -70,14 +70,14 @@ public interface DocumentSplitMapper {
|
|||||||
* @param itemId
|
* @param itemId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<SarFileSplitItemsValEO> queryItemsValByItemId(@Param("itemId") String itemId);
|
List<SarFileSplitItemsValEO> queryItemsValByItemId(@Param("itemId") String itemId, @Param("type") String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 条目删除根据itemId
|
* 条目删除根据itemId
|
||||||
* @param itemId
|
* @param itemId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
int deleteItemsValByItemId(@Param("itemId") String itemId);
|
int deleteItemsValByItemId(@Param("itemId") String itemId, @Param("type") String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 目录删除根据menuId集合
|
* 目录删除根据menuId集合
|
||||||
|
|||||||
+19
@@ -44,6 +44,17 @@
|
|||||||
<delete id="deleteItemsValByItemId">
|
<delete id="deleteItemsValByItemId">
|
||||||
delete from sar_file_split_items_val
|
delete from sar_file_split_items_val
|
||||||
where item_id = #{itemId}
|
where item_id = #{itemId}
|
||||||
|
<choose>
|
||||||
|
<when test="type != null and type != ''">
|
||||||
|
and type = #{type}
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
and type <![CDATA[<>]]> 'interpretation'
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
<if test="type != null and type != ''">
|
||||||
|
and type = #{type}
|
||||||
|
</if>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="queryByPage" resultType="com.jero.modules.laws.documenttool.entity.DocumentSplitInfo">
|
<select id="queryByPage" resultType="com.jero.modules.laws.documenttool.entity.DocumentSplitInfo">
|
||||||
@@ -93,6 +104,14 @@
|
|||||||
creation_time, modify_time, modify_user, display_seq,img_name,index_item
|
creation_time, modify_time, modify_user, display_seq,img_name,index_item
|
||||||
from SAR_FILE_SPLIT_ITEMS_VAL
|
from SAR_FILE_SPLIT_ITEMS_VAL
|
||||||
where valid_flag = '0' and ITEM_ID = #{itemId}
|
where valid_flag = '0' and ITEM_ID = #{itemId}
|
||||||
|
<choose>
|
||||||
|
<when test="type != null and type != ''">
|
||||||
|
and type = #{type}
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
and type <![CDATA[<>]]> 'interpretation'
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
order by display_seq
|
order by display_seq
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
+7
@@ -114,4 +114,11 @@ public interface IDocumentSplitService {
|
|||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response);
|
void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文档拆分详情-条文解读列表
|
||||||
|
* @param itemId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<SarFileSplitItemsValEO> queryInterpretationArticlesList(String itemId);
|
||||||
}
|
}
|
||||||
|
|||||||
+49
-4
@@ -75,6 +75,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
private static final String ITEM_NUM = "item_num";
|
private static final String ITEM_NUM = "item_num";
|
||||||
private static final String ITEM_TITLE = "item_title";
|
private static final String ITEM_TITLE = "item_title";
|
||||||
private static final String ITEM_CONTENT = "item_content";
|
private static final String ITEM_CONTENT = "item_content";
|
||||||
|
private static final String INTERPRETATION_ARTICLES = "interpretationArticles";
|
||||||
private static final String MENU_ID = "menu_id";
|
private static final String MENU_ID = "menu_id";
|
||||||
public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper,
|
public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper,
|
||||||
ISarFileSplitInfoService sarFileSplitInfoService,
|
ISarFileSplitInfoService sarFileSplitInfoService,
|
||||||
@@ -174,14 +175,23 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
|
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
|
||||||
List<LawsTag> finalFieldList = fieldList;
|
List<LawsTag> finalFieldList = fieldList;
|
||||||
StringBuilder updateSet = new StringBuilder();
|
StringBuilder updateSet = new StringBuilder();
|
||||||
|
// 条目信息
|
||||||
List<SarFileSplitItemsValEO> valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class);
|
List<SarFileSplitItemsValEO> valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class);
|
||||||
parameter.remove("itemValEOList");
|
parameter.remove("itemValEOList");
|
||||||
|
// 条文解读
|
||||||
|
List<SarFileSplitItemsValEO> articlesList = JSON.parseArray(JSON.toJSONString(parameter.get("interpretationArticlesList")), SarFileSplitItemsValEO.class);
|
||||||
|
parameter.remove("interpretationArticlesList");
|
||||||
|
|
||||||
// 计数
|
// 计数
|
||||||
parameter.forEach((k, v) ->{
|
parameter.forEach((k, v) ->{
|
||||||
// 条文内容拼接
|
// 条文内容拼接
|
||||||
if (ITEM_CONTENT.equals(k)){
|
if (ITEM_CONTENT.equals(k)){
|
||||||
v = itemContentJoin(valList, (String) parameter.get(ID));
|
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);
|
String updateValue = getUpdateValue(finalFieldList, k, (String) v);
|
||||||
if (StringUtils.isNotBlank(updateValue)){
|
if (StringUtils.isNotBlank(updateValue)){
|
||||||
@@ -196,13 +206,41 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
String updateCondition = "id = '" + parameter.get(ID) + "'";
|
String updateCondition = "id = '" + parameter.get(ID) + "'";
|
||||||
documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition);
|
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);
|
documentSplitMapper.addBatchItemsVal(valList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String articlesJoin(List<SarFileSplitItemsValEO> 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("<p>").append(sarFileSplitItemsValEO.getItemContent()).append("</p>");
|
||||||
|
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<SarFileSplitItemsValEO> valList, String itemId) {
|
private String itemContentJoin(List<SarFileSplitItemsValEO> valList, String itemId) {
|
||||||
StringBuilder valContent = new StringBuilder();
|
StringBuilder valContent = new StringBuilder();
|
||||||
if (!Objects.isNull(valList) && !valList.isEmpty()){
|
if (!Objects.isNull(valList) && !valList.isEmpty()){
|
||||||
@@ -326,9 +364,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
// 查询旧数据
|
// 查询旧数据
|
||||||
for (Map<String, Object> map : listMap) {
|
for (Map<String, Object> map : listMap) {
|
||||||
String id = (String) map.get(ID);
|
String id = (String) map.get(ID);
|
||||||
sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id));
|
sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id, ""));
|
||||||
}
|
}
|
||||||
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID));
|
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID), "");
|
||||||
// 第一条数据信息的最大的排序字段值
|
// 第一条数据信息的最大的排序字段值
|
||||||
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst();
|
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst();
|
||||||
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
||||||
@@ -402,7 +440,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SarFileSplitItemsValEO> queryItemsValList(String itemId) {
|
public List<SarFileSplitItemsValEO> queryItemsValList(String itemId) {
|
||||||
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId);
|
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId, "");
|
||||||
if (!Objects.isNull(sarFileSplitItemsValEOS) && !sarFileSplitItemsValEOS.isEmpty()){
|
if (!Objects.isNull(sarFileSplitItemsValEOS) && !sarFileSplitItemsValEOS.isEmpty()){
|
||||||
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOS) {
|
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOS) {
|
||||||
String imgPath = sarFileSplitItemsValEO.getItemContent();
|
String imgPath = sarFileSplitItemsValEO.getItemContent();
|
||||||
@@ -479,6 +517,11 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SarFileSplitItemsValEO> queryInterpretationArticlesList(String itemId) {
|
||||||
|
return documentSplitMapper.queryItemsValByItemId(itemId, INTERPRETATION_ARTICLES);
|
||||||
|
}
|
||||||
|
|
||||||
private void manageData(Map<String, Object> resultMap, StringBuilder fieldsBuilder, StringBuilder valuesBuilder) {
|
private void manageData(Map<String, Object> resultMap, StringBuilder fieldsBuilder, StringBuilder valuesBuilder) {
|
||||||
// 所有key(字段名)
|
// 所有key(字段名)
|
||||||
resultMap.forEach((k, v) -> {
|
resultMap.forEach((k, v) -> {
|
||||||
@@ -533,6 +576,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
selectColumn.append("s.id");
|
selectColumn.append("s.id");
|
||||||
for (LawsTag lawsTag : fieldListSelect) {
|
for (LawsTag lawsTag : fieldListSelect) {
|
||||||
selectColumn.append(",");
|
selectColumn.append(",");
|
||||||
|
selectColumn.append(DocumentSplitCommon.IF_NULL_BEGIN);
|
||||||
// 日期字段需要格式化
|
// 日期字段需要格式化
|
||||||
if (LawsFieldTypeEnum.DATE_SINGLE.getValue().equals(lawsTag.getDbFieldName())){
|
if (LawsFieldTypeEnum.DATE_SINGLE.getValue().equals(lawsTag.getDbFieldName())){
|
||||||
selectColumn.append(DocumentSplitCommon.DATE_FORMAT_BEGIN)
|
selectColumn.append(DocumentSplitCommon.DATE_FORMAT_BEGIN)
|
||||||
@@ -542,6 +586,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
// 普通字段直接拼接
|
// 普通字段直接拼接
|
||||||
selectColumn.append(lawsTag.getDbFieldName());
|
selectColumn.append(lawsTag.getDbFieldName());
|
||||||
}
|
}
|
||||||
|
selectColumn.append(DocumentSplitCommon.IF_NULL_END);
|
||||||
// 别名
|
// 别名
|
||||||
selectColumn.append(" as ").append(lawsTag.getDbFieldName());
|
selectColumn.append(" as ").append(lawsTag.getDbFieldName());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user