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 39bf6689..b90d92f8 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 @@ -7,6 +7,7 @@ import com.jero.modules.laws.documenttool.common.DocumentSplitCommon; import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.split.entity.SarFileSplitInfoEO; +import com.jero.modules.split.entity.SarFileSplitItemsValEO; import com.jero.modules.split.service.ISarFileSplitInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -17,6 +18,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; import java.util.Map; /** @@ -120,6 +122,19 @@ public class DocumentSplitController { return Result.OK(documentSplitService.queryDocumentSplitDetail(parameter)); } + /** + * 文档拆分详情-条目信息列表 + * @param id + * @return Result>> + */ + @AutoLog(value = "文档拆分详情-条目信息列表") + @ApiOperation(value = "文档拆分详情-条目信息列表") + @GetMapping("/queryItemsValList") + public Result> queryItemsValList(String id) { + return Result.OK(documentSplitService.queryItemsValList(id)); + } + + /** * 文档拆分详情-编辑 * @param parameter @@ -184,4 +199,31 @@ public class DocumentSplitController { documentSplitService.mergeDocumentSplitDetail(parameter); return Result.OK("合并成功!"); } + + /** + * 文档拆分详情-复制 + * @param id + * @return + */ + @AutoLog(value = "文档拆分详情-复制") + @ApiOperation(value = "文档拆分详情-复制") + @GetMapping("/copyDocumentSplitDetail") + public Result copyDocumentSplitDetail(String id) { + documentSplitService.copyDocumentSplitDetail(id); + return Result.OK("复制成功!"); + } + + /** + * 文档拆分详情-批量复制 + * @param ids + * @return + */ + @AutoLog(value = "文档拆分详情-批量复制") + @ApiOperation(value = "文档拆分详情-批量复制") + @GetMapping("/copyBatchDocumentSplitDetail") + public Result copyBatchDocumentSplitDetail(String ids) { + documentSplitService.copyBatchDocumentSplitDetail(ids); + return Result.OK("批量复制成功!"); + } + } 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 80875db0..9afcebb1 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 @@ -103,4 +103,18 @@ public interface DocumentSplitMapper { * @return */ int addBatchItemsVal(@Param("valList") List valList); + + /** + * 文档拆分详情通过id查询 + * @param id + */ + Map queryLawsDocumentSplitById(@Param("id") String id); + + /** + * 文档拆分详情-新增 + * @param insertField + * @param insertValue + * @return + */ + int insertLawsDocumentSplit(@Param("insertField") String insertField, @Param("insertValue") String insertValue); } 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 62ed8780..7309c1e0 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 @@ -18,6 +18,11 @@ + + insert into laws_document_split(${insertField}) + values (${insertValue}) + + delete from SAR_FILE_SPLIT_MENU where id in @@ -91,6 +96,12 @@ order by display_seq + + UPDATE laws_document_split SET ${updateSet} 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 d67fc0fd..da947cf4 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 @@ -3,6 +3,7 @@ package com.jero.modules.laws.documenttool.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo; import com.jero.modules.split.entity.SarFileSplitInfoEO; +import com.jero.modules.split.entity.SarFileSplitItemsValEO; import java.util.List; import java.util.Map; @@ -78,4 +79,23 @@ public interface IDocumentSplitService { * @param parameter */ void deleteBatchDocumentSplitDetail(Map parameter); + + /** + * 文档拆分详情-复制 + * @param id + */ + void copyDocumentSplitDetail(String id); + + /** + * 文档拆分详情-批量复制 + * @param ids + */ + void copyBatchDocumentSplitDetail(String ids); + + /** + * 文档拆分详情-条目信息列表 + * @param itemId + * @return + */ + List queryItemsValList(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 5ad4e269..c5dc17c4 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 @@ -38,6 +38,7 @@ import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -181,12 +182,12 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { updateSet.insert(0, updateByAndUpdateTime + ","); updateSet.deleteCharAt(updateSet.length() - 1); // where条件 - String updateCondition = "id = '" + parameter.get("id") + "'"; + String updateCondition = "id = '" + parameter.get(ID) + "'"; documentSplitMapper.editDocumentSplitDetail(updateSet.toString(), updateCondition); // 条目信息更新 // 删除旧数据 - documentSplitMapper.deleteItemsValByItemId((String) parameter.get("id")); + documentSplitMapper.deleteItemsValByItemId((String) parameter.get(ID)); // 添加新数据 documentSplitMapper.addBatchItemsVal(valList); } @@ -357,13 +358,69 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { documentSplitMapper.deleteBatchDocumentSplitDetail(updateCondition); } + @Override + public void copyDocumentSplitDetail(String id) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // 查询数据 + Map resultMap = documentSplitMapper.queryLawsDocumentSplitById(id); + // 字段名 + StringBuilder fieldsBuilder = new StringBuilder(); + // 字段值 + StringBuilder valuesBuilder = new StringBuilder(); + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format = dateFormat.format(date); + String newItemValId = UUID.randomUUID().toString().replace("-", ""); + resultMap.put(ID, newItemValId); + resultMap.put("create_by", loginUser.getUsername()); + resultMap.put("create_time", format); + resultMap.put("update_by", loginUser.getUsername()); + resultMap.put("update_time", format); + // 字段名和值 + manageData(resultMap, fieldsBuilder, valuesBuilder); + documentSplitMapper.insertLawsDocumentSplit(fieldsBuilder.toString(), valuesBuilder.toString()); + } + + @Override + public void copyBatchDocumentSplitDetail(String ids) { + String[] idsArr = ids.split(","); + for (String id : idsArr) { + copyDocumentSplitDetail(id); + } + } + + @Override + public List queryItemsValList(String itemId) { + List sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId(itemId); + if (!Objects.isNull(sarFileSplitItemsValEOS) && !sarFileSplitItemsValEOS.isEmpty()){ + for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOS) { + String imgPath = sarFileSplitItemsValEO.getItemContent(); + if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType()) && org.apache.commons.lang.StringUtils.isNotEmpty(imgPath)) { + String imgName = imgPath.substring(imgPath.lastIndexOf("/") + 1); + sarFileSplitItemsValEO.setImgName(imgName); + } + } + } + return sarFileSplitItemsValEOS; + } + + private void manageData(Map resultMap, StringBuilder fieldsBuilder, StringBuilder valuesBuilder) { + // 所有key(字段名) + resultMap.forEach((k, v) -> { + fieldsBuilder.append(k).append(","); + valuesBuilder.append("'").append(v).append("'").append(","); + }); + fieldsBuilder.deleteCharAt(fieldsBuilder.length() - 1); + valuesBuilder.deleteCharAt(valuesBuilder.length() - 1); + } + + private String mergeData(List> listMap) { StringBuilder stringBuilder = new StringBuilder(); // 合并数据(合并每个key对应的value) for (Map map : listMap) { - String num = (String) map.get(ITEM_NUM); String content = (String) map.get(ITEM_CONTENT); - stringBuilder.append("

").append(num).append("

").append(content); + stringBuilder.append(content); } return stringBuilder.toString(); }