feat(文档拆分): 条文解读多个、条纹解读列表
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
+16
-4
@@ -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 = "批量删除成功!";
|
||||
}
|
||||
}
|
||||
+11
@@ -148,6 +148,17 @@ public class DocumentSplitController {
|
||||
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
|
||||
* @return
|
||||
*/
|
||||
List<SarFileSplitItemsValEO> queryItemsValByItemId(@Param("itemId") String itemId);
|
||||
List<SarFileSplitItemsValEO> 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集合
|
||||
|
||||
+19
@@ -44,6 +44,17 @@
|
||||
<delete id="deleteItemsValByItemId">
|
||||
delete from sar_file_split_items_val
|
||||
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>
|
||||
|
||||
<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
|
||||
from SAR_FILE_SPLIT_ITEMS_VAL
|
||||
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
|
||||
</select>
|
||||
|
||||
|
||||
+7
@@ -114,4 +114,11 @@ public interface IDocumentSplitService {
|
||||
* @param 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_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<LawsTag> finalFieldList = fieldList;
|
||||
StringBuilder updateSet = new StringBuilder();
|
||||
// 条目信息
|
||||
List<SarFileSplitItemsValEO> valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class);
|
||||
parameter.remove("itemValEOList");
|
||||
// 条文解读
|
||||
List<SarFileSplitItemsValEO> 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<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) {
|
||||
StringBuilder valContent = new StringBuilder();
|
||||
if (!Objects.isNull(valList) && !valList.isEmpty()){
|
||||
@@ -326,9 +364,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
// 查询旧数据
|
||||
for (Map<String, Object> map : listMap) {
|
||||
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();
|
||||
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
||||
@@ -402,7 +440,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
|
||||
@Override
|
||||
public List<SarFileSplitItemsValEO> queryItemsValList(String itemId) {
|
||||
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId);
|
||||
List<SarFileSplitItemsValEO> 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<SarFileSplitItemsValEO> queryInterpretationArticlesList(String itemId) {
|
||||
return documentSplitMapper.queryItemsValByItemId(itemId, INTERPRETATION_ARTICLES);
|
||||
}
|
||||
|
||||
private void manageData(Map<String, Object> 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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user