fix(文档拆分): 批量编辑问题修复

This commit is contained in:
yjz
2023-10-18 09:10:47 +08:00
parent 2069decf44
commit f76f8f4418
3 changed files with 53 additions and 8 deletions
@@ -117,4 +117,10 @@ public interface DocumentSplitMapper {
* @return
*/
int insertLawsDocumentSplit(@Param("insertField") String insertField, @Param("insertValue") String insertValue);
/**
* 条目批量删除根据itemId
* @param itemIds
*/
int deleteItemsValByItemIds(@Param("itemIds") String itemIds, @Param("type") String type);
}
@@ -57,6 +57,23 @@
</if>
</delete>
<delete id="deleteItemsValByItemIds">
delete from sar_file_split_items_val
where item_id in
<foreach collection="itemIds.split(',')" item="item" separator="or" open="(" close=")">
#{item}
</foreach>
<choose>
<when test="type != null and type != ''">
and type = #{type}
</when>
<otherwise>
and type <![CDATA[<>]]> 'interpretation'
</otherwise>
</choose>
</delete>
<select id="queryByPage" resultType="com.jero.modules.laws.documenttool.entity.DocumentSplitInfo">
select *
from (select i.id as id,
@@ -76,6 +76,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
private static final String ITEM_TITLE = "item_title";
private static final String ITEM_CONTENT = "item_content";
private static final String INTERPRETATION_ARTICLES = "interpretation_articles";
private static final String INTERPRETATION_ARTICLES_LIST = "interpretationArticlesList";
private static final String MENU_ID = "menu_id";
public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper,
ISarFileSplitInfoService sarFileSplitInfoService,
@@ -179,10 +180,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
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");
List<SarFileSplitItemsValEO> articlesList = JSON.parseArray(JSON.toJSONString(parameter.get(INTERPRETATION_ARTICLES_LIST)), SarFileSplitItemsValEO.class);
parameter.remove(INTERPRETATION_ARTICLES_LIST);
// 计数
parameter.forEach((k, v) ->{
// 条文内容拼接
if (ITEM_CONTENT.equals(k)){
@@ -209,14 +209,19 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
//条文解读更新
// 删除旧数据
documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), DocumentSplitCommon.INTERPRETATION);
// 添加新数据
documentSplitMapper.addBatchItemsVal(articlesList);
if (!Objects.isNull(articlesList) && !articlesList.isEmpty()){
// 添加新数据
documentSplitMapper.addBatchItemsVal(articlesList);
}
// 条目信息更新
// 删除旧数据
documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID), "");
// 添加新数据
documentSplitMapper.addBatchItemsVal(valList);
if (!Objects.isNull(valList) && !valList.isEmpty()){
// 添加新数据
documentSplitMapper.addBatchItemsVal(valList);
}
}
private String articlesJoin(List<SarFileSplitItemsValEO> articlesList, String itemId) {
@@ -298,7 +303,16 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
List<LawsTag> finalFieldList = fieldList;
StringBuilder updateSet = new StringBuilder();
// 条文解读
List<SarFileSplitItemsValEO> articlesList = JSON.parseArray(JSON.toJSONString(parameter.get(INTERPRETATION_ARTICLES_LIST)), SarFileSplitItemsValEO.class);
parameter.remove(INTERPRETATION_ARTICLES_LIST);
parameter.forEach((k, v) -> {
// 条文解读
if (INTERPRETATION_ARTICLES.equals(k)){
v = articlesJoin(articlesList, (String) parameter.get(ID));
}
// 修改字段
String updateValue = getUpdateValue(finalFieldList, k, (String) v);
if (StringUtils.isNotBlank(updateValue)){
@@ -314,12 +328,20 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
if (parameter.containsKey("ids")){
String ids = (String) parameter.get("ids");
List<String> list = Arrays.asList(ids.split(","));
updateCondition = "id in " + "'" + String.join(",", list) + "'";
updateCondition = "id in ('" + String.join(",", list) + "')";
}else {
String infoId = (String) parameter.get(INFO_ID);
updateCondition = "info_id = " + "'" + infoId + "'";
}
documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition);
// 条文解读更新
// 删除旧数据
documentSplitMapper.deleteItemsValByItemIds((String) parameter.get(ID), DocumentSplitCommon.INTERPRETATION);
if (!Objects.isNull(articlesList) && !articlesList.isEmpty()){
// 添加新数据
documentSplitMapper.addBatchItemsVal(articlesList);
}
}
@Override