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 8a8bad24..a54e761d 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 @@ -48,6 +48,18 @@ public class DocumentSplitCommon { * <= */ public static final String LT = " <= "; + /** + * 条目类型 TEXT:文本, IMG:图片, TABLE:表格 + */ + public static final String TEXT = "TEXT"; + /** + * 条目类型 + */ + public static final String IMG = "IMG"; + /** + * 条目类型 + */ + public static final String TABLE = "TABLE"; public static final String MEG_DEL = "删除成功!"; public static final String MEG_DEL_BATCH = "批量删除成功!"; 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 a3d7d2e0..39bf6689 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 @@ -130,7 +130,7 @@ public class DocumentSplitController { @PostMapping("/editDocumentSplitDetail") public Result editDocumentSplitDetail(@RequestBody Map parameter) { documentSplitService.editDocumentSplitDetail(parameter); - return Result.OK("删除成功!"); + return Result.OK("编辑成功!"); } /** @@ -146,6 +146,19 @@ public class DocumentSplitController { return Result.OK(DocumentSplitCommon.MEG_DEL_BATCH); } + /** + * 文档拆分详情-删除 + * + * @return Result + */ + @AutoLog(value = "文档拆分详情-删除") + @ApiOperation(value="文档拆分详情-删除", notes="文档拆分详情-删除") + @PostMapping(value = "/deleteDocumentSplitDetail") + public Result deleteDocumentSplitDetail(@RequestBody Map parameter) { + documentSplitService.deleteDocumentSplitDetail(parameter); + return Result.OK("删除成功!"); + } + /** * 文档拆分详情-批量删除 * @@ -153,9 +166,9 @@ public class DocumentSplitController { */ @AutoLog(value = "文档拆分详情-批量删除") @ApiOperation(value="文档拆分详情-批量删除", notes="文档拆分详情-批量删除") - @PostMapping(value = "/deleteBatchBatchDocumentSplitDetail") - public Result deleteBatchBatchDocumentSplitDetail(@RequestBody Map parameter) { - documentSplitService.deleteBatchBatchDocumentSplitDetail(parameter); + @PostMapping(value = "/deleteBatchDocumentSplitDetail") + public Result deleteBatchDocumentSplitDetail(@RequestBody Map parameter) { + documentSplitService.deleteBatchDocumentSplitDetail(parameter); return Result.OK("批量删除成功!"); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/AbstractConditionBase.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/AbstractConditionBase.java index 2b488b30..de722d02 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/AbstractConditionBase.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/AbstractConditionBase.java @@ -41,7 +41,7 @@ public class AbstractConditionBase { public String getUpdateByAndUpdateTime() { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - return " update_by = " + "'" + sysUser.getUsername() + "'" + + return " update_by = " + "'" + sysUser.getUsername() + "'" + "," + "update_time = " + FieldCommon.STR_TO_DATE_PREFIX + dateFormat.format(new Date()) + "','%Y-%m-%d %H:%i:%s')"; } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/UniversalImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/UniversalImpl.java index 3eb93512..8f946bb2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/UniversalImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/UniversalImpl.java @@ -1,6 +1,5 @@ package com.jero.modules.laws.documenttool.handler.impl; -import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.documenttool.handler.AbstractConditionBase; import lombok.extern.slf4j.Slf4j; @@ -17,6 +16,6 @@ public class UniversalImpl extends AbstractConditionBase { @Override public String buildUpdate(String fieldName, String value){ - return fieldName + " = " + "'" + FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX +"'"; + return fieldName + " = " + "'" + value + "'"; } } 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 2481c1e5..80875db0 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 @@ -56,7 +56,7 @@ public interface DocumentSplitMapper { * @param updateCondition * @return int */ - int editDocumentSplitDetail(@Param("updateSet") String updateSet,@Param("updateCondition") String updateCondition); + int editDocumentSplitDetail(@Param("updateSet") String updateSet, @Param("updateCondition") String updateCondition); /** * 条目查询根据itemId集合 @@ -83,11 +83,24 @@ public interface DocumentSplitMapper { * 目录删除根据menuId集合 * @param menuIdList */ - int sarFileSplitMenudeleteByIdList(@Param("menuIdList") List menuIdList); + int sarFileSplitMenuDeleteByIdList(@Param("menuIdList") List menuIdList); + + /** + * 文档拆分详情-删除 + * @param id + */ + int deleteDocumentSplitDetail(@Param("id") String id); /** * 文档拆分详情-批量删除 * @param updateCondition */ - int deleteBatchBatchDocumentSplitDetail(@Param("updateCondition") String updateCondition); + int deleteBatchDocumentSplitDetail(@Param("updateCondition") String updateCondition); + + /** + * 条目批量新增 + * @param valList + * @return + */ + int addBatchItemsVal(@Param("valList") List valList); } 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 e2355013..62ed8780 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 @@ -2,7 +2,23 @@ - + + insert into SAR_FILE_SPLIT_ITEMS_VAL + (id, type, item_id, valid_flag, creation_user, creation_time, modify_time, modify_user, display_seq, img_name, item_content, index_item) + values + ( + #{item.id, jdbcType=VARCHAR}, #{item.type, jdbcType=VARCHAR}, + #{item.itemId, jdbcType=VARCHAR}, + #{item.validFlag, jdbcType=INTEGER}, #{item.creationUser, jdbcType=VARCHAR}, + #{item.creationTime, jdbcType=TIMESTAMP}, #{item.modifyTime, jdbcType=TIMESTAMP}, + #{item.modifyUser, jdbcType=VARCHAR}, #{item.displaySeq, jdbcType=INTEGER}, + #{item.imgName, jdbcType=INTEGER}, + #{item.itemContent, jdbcType=CLOB}, + #{item.indexItem, jdbcType=INTEGER}) + + + + delete from SAR_FILE_SPLIT_MENU where id in @@ -10,7 +26,12 @@ - + + delete from laws_document_split + where id = #{id} + + + delete from laws_document_split where #{updateCondition} @@ -73,6 +94,6 @@ UPDATE laws_document_split SET ${updateSet} - WHERE #{updateCondition} + WHERE ${updateCondition} 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 1de7c7a5..d67fc0fd 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 @@ -67,9 +67,15 @@ public interface IDocumentSplitService { */ void mergeDocumentSplitDetail(Map parameter); + /** + * 文档拆分详情-删除 + * @param parameter + */ + void deleteDocumentSplitDetail(Map parameter); + /** * 文档拆分详情-批量删除 * @param parameter */ - void deleteBatchBatchDocumentSplitDetail(Map parameter); + void deleteBatchDocumentSplitDetail(Map parameter); } 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 0ead8cad..5ad4e269 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 @@ -1,5 +1,6 @@ package com.jero.modules.laws.documenttool.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -9,6 +10,7 @@ import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.MessageUtils; +import com.jero.common.util.UUIDUtils; import com.jero.modules.laws.common.mapper.LawsCommonMapper; import com.jero.modules.laws.documenttool.common.DocumentSplitCommon; import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo; @@ -37,6 +39,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -159,34 +162,81 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { .equals(v.getIsShowFormCreate())).collect(Collectors.toList()); List finalFieldList = fieldList; StringBuilder updateSet = new StringBuilder(); - parameter.forEach((k, v) -> + List valList = JSON.parseArray(JSON.toJSONString(parameter.get("itemValEOList")), SarFileSplitItemsValEO.class); + parameter.remove("itemValEOList"); + // 计数 + parameter.forEach((k, v) ->{ + // 条文内容拼接 + if (ITEM_CONTENT.equals(k)){ + v = itemContentJoin(valList, (String) parameter.get(ID)); + } // 修改字段 - updateSet.append(getUpdateValue(finalFieldList, k, (String) v)) - ); + String updateValue = getUpdateValue(finalFieldList, k, (String) v); + if (StringUtils.isNotBlank(updateValue)){ + updateSet.append(updateValue).append(","); + } + }); // 更新人和更新时间 String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime(); updateSet.insert(0, updateByAndUpdateTime + ","); + updateSet.deleteCharAt(updateSet.length() - 1); // where条件 String updateCondition = "id = '" + parameter.get("id") + "'"; documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition); + + // 条目信息更新 + // 删除旧数据 + documentSplitMapper.deleteItemsValByItemId((String) parameter.get("id")); + // 添加新数据 + documentSplitMapper.addBatchItemsVal(valList); + } + + private String itemContentJoin(List valList, String itemId) { + StringBuilder valContent = new StringBuilder(); + if (!Objects.isNull(valList) && !valList.isEmpty()){ + int index = 0; + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + for (SarFileSplitItemsValEO sarFileSplitItemsValEO : valList) { + // 条文内容拼接 + if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) { + valContent.append("

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

"); + } else if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType())) { + valContent.append(""); + } else if (DocumentSplitCommon.TABLE.equals(sarFileSplitItemsValEO.getType())) { + valContent.append(sarFileSplitItemsValEO.getItemContent()); + } + + // 条目信息 + index += 1; + sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20()); + sarFileSplitItemsValEO.setItemId(itemId); + 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(); } @NotNull private static String getUpdateValue(List finalFieldList, String k, String v) { // 匹配参数和字段 Optional lawsTag = finalFieldList.stream().filter(o -> k.equals(o.getDbFieldName())).findFirst(); - ArrayList sqlList = new ArrayList<>(); + AtomicReference sql = new AtomicReference<>(""); lawsTag.ifPresent(l -> { // 构建修改字段 if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(l.getFieldShowType())){ // 多日期 - sqlList.add(new DateManyConditionImpl().buildUpdate(l.getDbFieldName(), v)); + sql.set(new DateManyConditionImpl().buildUpdate(l.getDbFieldName(), v)); }else { - sqlList.add(new UniversalImpl().buildUpdate(l.getDbFieldName(), v)); + sql.set(new UniversalImpl().buildUpdate(l.getDbFieldName(), v)); } }); // 修改数据 - return String.join(",", sqlList); + return sql.get(); } @Override @@ -198,13 +248,17 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { .equals(v.getIsShowFormCreate())).collect(Collectors.toList()); List finalFieldList = fieldList; StringBuilder updateSet = new StringBuilder(); - parameter.forEach((k, v) -> + parameter.forEach((k, v) -> { // 修改字段 - updateSet.append(getUpdateValue(finalFieldList, k, (String) v)) - ); + String updateValue = getUpdateValue(finalFieldList, k, (String) v); + if (StringUtils.isNotBlank(updateValue)){ + updateSet.append(updateValue).append(","); + } + }); // 更新人和更新时间 String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime(); updateSet.insert(0, updateByAndUpdateTime + ","); + updateSet.deleteCharAt(updateSet.length() - 1); // where条件 String updateCondition = ""; if (parameter.containsKey("ids")){ @@ -253,7 +307,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 目录更新 List menuIdList = listMap.stream().map(v -> (String) v.get(MENU_ID)).distinct().collect(Collectors.toList()); // 删除旧数据 - documentSplitMapper.sarFileSplitMenudeleteByIdList(menuIdList); + documentSplitMapper.sarFileSplitMenuDeleteByIdList(menuIdList); // 修改条目 ArrayList sarFileSplitItemsValEOSList = new ArrayList<>(); @@ -282,7 +336,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { } @Override - public void deleteBatchBatchDocumentSplitDetail(Map parameter) { + public void deleteDocumentSplitDetail(Map parameter) { + // 删除数据 + documentSplitMapper.deleteDocumentSplitDetail((String) parameter.get(ID)); + } + + @Override + public void deleteBatchDocumentSplitDetail(Map parameter) { // where条件 String updateCondition = ""; if (parameter.containsKey(ID)){ @@ -294,7 +354,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { updateCondition = "info_id = " + "'" + infoId + "'"; } // 删除数据 - documentSplitMapper.deleteBatchBatchDocumentSplitDetail(updateCondition); + documentSplitMapper.deleteBatchDocumentSplitDetail(updateCondition); } private String mergeData(List> listMap) {