Merge remote-tracking branch 'origin/addTitleTranslation'

# Conflicts:
#	db/update/测试阶段.sql
This commit is contained in:
梁琦涛
2024-09-06 16:51:23 +08:00
20 changed files with 196 additions and 75 deletions
+45
View File
@@ -282,6 +282,51 @@ UPDATE laws_tag SET `db_length` = 200,`field_show_type` = '4' WHERE `id` = '1695
ALTER TABLE `laws_domestic_standard`
MODIFY COLUMN `implementation_date` varchar(200) NULL DEFAULT NULL COMMENT '实施日期';
-- 2024-09-04 条款添加标题译文
ALTER TABLE laws_document_split ADD title_translation longtext NULL DEFAULT NULL COMMENT '标题译文';
INSERT INTO `laws_tag`(`id`, `table_name`, `db_field_name`, `db_field_en_name`, `db_field_txt`, `order_num`, `db_field_name_old`, `db_is_key`, `db_is_null`, `db_type`, `db_length`, `db_point_length`, `db_default_val`, `dict_field`, `dict_table`, `dict_text`, `field_show_type`, `field_href`, `field_length`, `field_valid_type`, `field_must_input`, `field_extend_json`, `field_default_value`, `is_show_form_create`, `is_query`, `is_show_form`, `is_show_list`, `is_read_only`, `query_mode`, `main_table`, `main_field`, `update_by`, `update_time`, `create_time`, `create_by`, `converter`, `query_def_val`, `query_dict_text`, `query_dict_field`, `query_dict_table`, `query_show_type`, `query_config_flag`, `query_valid_type`, `query_must_input`, `sort_flag`, `show_area`, `is_show_laws_list`, `is_show_search`, `del_flag`, `is_model`, `dict_id`, `home_search_context_order`, `home_search_file_order`, `dict_field_search`, `dict_table_search`, `dict_text_search`, `usable_range`, `tree_first_href`, `import_sort`) VALUES ('1701142687771348923', 'laws_document_split', 'title_translation', 'Title Translation', '标题译文', 3, 'title_translation', 0, 1, 'String', 500, NULL, NULL, NULL, NULL, NULL, '9', NULL, NULL, NULL, '0', NULL, NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, 'admin', '2023-10-30 13:36:07', '2023-09-11 15:56:37', 'admin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, '4', NULL, NULL, NULL, NULL, NULL, NULL, '1,3', NULL, 2);
UPDATE `laws_tag` SET `order_num` = 1 WHERE `id` = '1701135939543060481';
UPDATE `laws_tag` SET `order_num` = 3 WHERE `id` = '1701142687771348923';
UPDATE `laws_tag` SET `order_num` = 2 WHERE `id` = '1701142687771348993';
UPDATE `laws_tag` SET `order_num` = 4 WHERE `id` = '1701142955053371394';
UPDATE `laws_tag` SET `order_num` = 37 WHERE `id` = '1701143354573410306';
UPDATE `laws_tag` SET `order_num` = 6 WHERE `id` = '1701143354573410307';
UPDATE `laws_tag` SET `order_num` = 36 WHERE `id` = '1701143547972767745';
UPDATE `laws_tag` SET `order_num` = 8 WHERE `id` = '1701143773534048258';
UPDATE `laws_tag` SET `order_num` = 10 WHERE `id` = '1701144097372065792';
UPDATE `laws_tag` SET `order_num` = 11 WHERE `id` = '1701144097372065793';
UPDATE `laws_tag` SET `order_num` = 9 WHERE `id` = '1702535708790255617';
UPDATE `laws_tag` SET `order_num` = 12 WHERE `id` = '1702536307267104770';
UPDATE `laws_tag` SET `order_num` = 13 WHERE `id` = '1702557948281909249';
UPDATE `laws_tag` SET `order_num` = 7 WHERE `id` = '1702557948281909251';
UPDATE `laws_tag` SET `order_num` = 14 WHERE `id` = '1702559481136443393';
UPDATE `laws_tag` SET `order_num` = 15 WHERE `id` = '1702559711416315906';
UPDATE `laws_tag` SET `order_num` = 29 WHERE `id` = '1702562405354860546';
UPDATE `laws_tag` SET `order_num` = 30 WHERE `id` = '1702562652072210433';
UPDATE `laws_tag` SET `order_num` = 31 WHERE `id` = '1702563066486222849';
UPDATE `laws_tag` SET `order_num` = 32 WHERE `id` = '1702564129947807745';
UPDATE `laws_tag` SET `order_num` = 33 WHERE `id` = '1702565972367142914';
UPDATE `laws_tag` SET `order_num` = 5 WHERE `id` = '1702566560811216898';
UPDATE `laws_tag` SET `order_num` = 28 WHERE `id` = '1714171694923517953';
UPDATE `laws_tag` SET `order_num` = 38 WHERE `id` = '1714171694923517954';
UPDATE `laws_tag` SET `order_num` = 34 WHERE `id` = '1803335200562876416';
UPDATE `laws_tag` SET `order_num` = 16 WHERE `id` = '1803335200567070720';
UPDATE `laws_tag` SET `order_num` = 17 WHERE `id` = '1803335200567070721';
UPDATE `laws_tag` SET `order_num` = 18 WHERE `id` = '1803335200567070722';
UPDATE `laws_tag` SET `order_num` = 19 WHERE `id` = '1803335200567070723';
UPDATE `laws_tag` SET `order_num` = 20 WHERE `id` = '1803335200571265024';
UPDATE `laws_tag` SET `order_num` = 21 WHERE `id` = '1803335200571265025';
UPDATE `laws_tag` SET `order_num` = 22 WHERE `id` = '1803335200571265026';
UPDATE `laws_tag` SET `order_num` = 23 WHERE `id` = '1803335200571265027';
UPDATE `laws_tag` SET `order_num` = 24 WHERE `id` = '1803335200571265028';
UPDATE `laws_tag` SET `order_num` = 25 WHERE `id` = '1803335200571265029';
UPDATE `laws_tag` SET `order_num` = 26 WHERE `id` = '1803335200571265030';
UPDATE `laws_tag` SET `order_num` = 27 WHERE `id` = '1803335200571265031';
UPDATE `laws_tag` SET `order_num` = 35 WHERE `id` = '1803335200571265032';
-- 2024-09-05 修改条款拆分表字段长度
ALTER TABLE laws_document_split MODIFY COLUMN regulatory_notes longtext NULL DEFAULT NULL COMMENT '法规注释';
-- 2024-09-05 修改字段名称
UPDATE `laws_tag` SET `db_field_en_name` = 'DEFMA', `db_field_txt` = 'DEFMA' WHERE `id` = '1803335200571265026';
-- 2024-09-05 法规符合性排查流程节点名称更改
@@ -0,0 +1,24 @@
package com.jero.config;
import org.apache.poi.ss.SpreadsheetVersion;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
/**
* 解决导出excel单元格长度过长问题
* @version 1.0
* @date 2024/9/5 15:16
*/
@Component
public class ApplicationCommandLine implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
SpreadsheetVersion spreadsheetVersion = SpreadsheetVersion.EXCEL2007;
Field maxTextLength = spreadsheetVersion.getClass().getDeclaredField("_maxTextLength");
maxTextLength.setAccessible(true);
maxTextLength.set(spreadsheetVersion, Integer.MAX_VALUE);
}
}
@@ -20,7 +20,7 @@ public class SqlFilter {
return null;
}
if (str.contains("itemContent") || str.contains("item_content")) {
if (str.contains("itemContent") || str.contains("item_content") || str.contains("detailInfoList")) {
return str;
}
@@ -39,6 +39,12 @@ public class ProcessStandardInterpretClause extends BaseEntity {
@TableField(exist = false)
@Excel(name = "标准名称/条款标题", width = 18)
private String itemTitle;
/**标题译文*/
@ApiModelProperty(value = "标题译文")
@TableField(exist = false)
@Excel(name = "标题译文", width = 18)
private String titleTranslation;
/**条款内容*/
@ApiModelProperty(value = "条款内容")
@TableField(exist = false)
@@ -39,6 +39,11 @@ public class ProcessStandardInterpretClauseSublist extends BaseEntity {
@TableField(exist = false)
@Excel(name = "标准名称/条款标题", width = 18)
private String itemTitle;
/**标题译文*/
@ApiModelProperty(value = "标题译文")
@TableField(exist = false)
@Excel(name = "标题译文", width = 18)
private String titleTranslation;
/**条款内容*/
@ApiModelProperty(value = "条款内容")
@TableField(exist = false)
@@ -7,6 +7,7 @@
select * from (select psic.id,
IF(lds.id is not null, lds.standard_number, lds2.item_num) itemNum,
IF(lds.id is not null, lds.standard_name, lds2.item_title) itemTitle,
lds2.title_translation titleTranslation,
IF(lds.id is not null, null, lds2.item_content) itemContent,
lds2.translation,
standard_interpret_id,
@@ -49,6 +49,7 @@
left join (select psic.id interpret_clause_id,
IF(lds.id is not null, lds.standard_number, lds2.item_num) itemNum,
IF(lds.id is not null, lds.standard_name, lds2.item_title) itemTitle,
lds2.title_translation titleTranslation,
IF(lds.id is not null, null, lds2.item_content) itemContent,
lds2.translation,
standard_interpret_id
@@ -79,6 +79,7 @@ import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -1083,7 +1084,6 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
exportList = BeanCopyUtils.copyBeanList(exportList2, ProcessStandardInterpretClauseSublist.class);
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
try {
@@ -24,6 +24,9 @@ public class LawsDocumentSplit extends BaseEntity {
// 条文标题
@ApiModelProperty("条文标题")
private String itemTitle;
// 条文标题
@ApiModelProperty("标题译文")
private String titleTranslation;
// 条文内容
@ApiModelProperty("条文内容")
private String itemContent;
@@ -50,7 +50,7 @@
<insert id="insertBatchLawsDocumentSplit">
INSERT INTO laws_document_split (id, create_by, create_time, update_by, update_time, sys_org_code,
is_same_as_prev_version, item_num, info_id, menu_id, item_title, item_content, translation,
is_same_as_prev_version, item_num, info_id, menu_id, item_title, title_translation, item_content, translation,
change_description,regulatory_notes,part_name,key_controller,applicable_components,responsible_department,responsible_module,
related_department,related_module,applications,power_type,domain_area,configuration_requirements,new_cer_implement_date,
new_production_implementation,registration_date,enterprise_standard,technical_specification_design_guide,drawing_template,
@@ -59,7 +59,7 @@
values
<foreach collection="entity" item="item" index="index" separator=",">
(#{item.id}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.sysOrgCode},
#{item.isSameAsPrevVersion},#{item.itemNum},#{item.infoId},#{item.menuId},#{item.itemTitle},#{item.itemContent},
#{item.isSameAsPrevVersion},#{item.itemNum},#{item.infoId},#{item.menuId},#{item.itemTitle},#{item.titleTranslation},#{item.itemContent},
#{item.translation},#{item.changeDescription},#{item.regulatoryNotes},
#{item.partName},#{item.keyController},#{item.applicableComponents},#{item.responsibleDepartment},
#{item.responsibleModule},#{item.relatedDepartment},#{item.relatedModule},#{item.applications},#{item.powerType},
@@ -285,7 +285,7 @@
<select id="selectClauseList"
resultType="com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClause">
SELECT s.id clauseId,item_num,item_title,item_content,standard_id
SELECT s.id clauseId,item_num,item_title,title_translation,item_content,translation,standard_id
FROM laws_document_split s
LEFT JOIN SAR_FILE_SPLIT_MENU m ON s.MENU_ID = m.id
WHERE del_flag = 0
@@ -156,6 +156,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
private static final String IDS = "ids";
private static final String ITEM_NUM = "item_num";
private static final String ITEM_TITLE = "item_title";
private static final String TITLE_TRANSLATION = "title_translation";
private static final String ITEM_CONTENT = "item_content";
private static final String TRANSLATION = "translation";
private static final String IS_SAME_AS_PREV_VERSION = "is_same_as_prev_version";
@@ -682,8 +683,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// 条文内容拼接
if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) {
if (StringUtils.isNotBlank(translation)){
sarFileSplitItemsValEO.setTranslation(translation
.replace("<", "&lt;").replace(">", "&gt;"));
sarFileSplitItemsValEO.setTranslation(translation);
//sarFileSplitItemsValEO.setTranslation(translation
// .replace("<", "&lt;").replace(">", "&gt;"));
}
valContent.append("<p>").append(translation).append("</p>");
} else if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType())) {
@@ -717,8 +719,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// 条文内容拼接
if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) {
if (StringUtils.isNotBlank(sarFileSplitItemsValEO.getItemContent())){
sarFileSplitItemsValEO.setItemContent(sarFileSplitItemsValEO.getItemContent()
.replace("<", "&lt;").replace(">", "&gt;"));
sarFileSplitItemsValEO.setItemContent(sarFileSplitItemsValEO.getItemContent());
//sarFileSplitItemsValEO.setItemContent(sarFileSplitItemsValEO.getItemContent()
// .replace("<", "&lt;").replace(">", "&gt;"));
}
valContent.append("<p>").append(sarFileSplitItemsValEO.getItemContent()).append("</p>");
} else if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType())) {
@@ -847,6 +850,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
listMap.remove(0);
// 合并数据(条文标题、条文内容、等全部字段)
String title = firstData.get(ITEM_TITLE) + " " + mergeData(listMap, ITEM_TITLE, false);
String titleTranslation = firstData.get(TITLE_TRANSLATION) + " " + mergeData(listMap, TITLE_TRANSLATION, false);
String content = firstData.get(ITEM_CONTENT) + mergeData(listMap, ITEM_CONTENT, false);
listMap.add(0, firstData);
String translation = firstData.get(TRANSLATION) + mergeData(listMap, TRANSLATION, false);
@@ -882,6 +886,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
String updateSet = updateByAndUpdateTime +
"," + ITEM_TITLE + " = " + "' "+ title + "'" +
"," + TITLE_TRANSLATION + " = " + "' "+ titleTranslation + "'" +
"," + ITEM_CONTENT + " = " + "'" + content + "'" +
"," + TRANSLATION + " = " + "'" + translation + "'" +
"," + CHANGE_DESCRIPTION + " = " + "'" + changeDescription + "'" +
@@ -72,8 +72,9 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
@GetMapping("/updateMenuLevel")
// @RequiresPermissions("split:sarFileSplitMenu:updateMenuLevel")
public Result<SarFileSplitMenuEO> updateMenuLevel(@ApiParam(value = "要移动的节点id")String sourceId,
@ApiParam(value = "要移动到的节点id")String targetId) {
sarFileSplitMenuEOService.updateMenuLevel(sourceId, targetId);
@ApiParam(value = "要移动到的节点id")String targetId,
@ApiParam(value = "序号")Long displaySeq) {
sarFileSplitMenuEOService.updateMenuLevel(sourceId, targetId, displaySeq);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@@ -1,5 +1,6 @@
package com.jero.modules.split.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,6 +17,7 @@ import java.util.List;
* <b>版权所有:<b>版权归北京卡达克数据技术中心所有。<br>
*/
@Data
@TableName("SAR_FILE_SPLIT_MENU")
public class SarFileSplitMenuEO implements Serializable {
private static final long serialVersionUID = 1L;
/**
@@ -74,7 +74,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper<SarFileSplitMenuEO>
SarFileSplitMenuEO findById(String id);
SarFileSplitMenuEO findLastByParentId(String parentId);
List<SarFileSplitMenuEO> findLastByParentId(@Param("parentId") String parentId, @Param("displaySeq") Long displaySeq);
List<SarFileSplitMenuEO> queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq);
@@ -373,9 +373,10 @@
<select id="findLastByParentId" resultMap="BaseResultMap">
select * from SAR_FILE_SPLIT_MENU
where parent_id = #{parentId} AND valid_flag = '0'
where parent_id = #{parentId}
AND valid_flag = '0'
and display_seq > #{displaySeq}
order by display_seq desc
limit 1
</select>
<select id="queryByGTDisplaySeq" resultMap="BaseResultMap">
@@ -58,5 +58,5 @@ public interface ISarFileSplitMenuEOService extends IService<SarFileSplitMenuEO>
Result moveUpOrDown(JSONObject json);
void updateMenuLevel(String sourceId, String targetId);
void updateMenuLevel(String sourceId, String targetId, Long displaySeq);
}
@@ -1023,13 +1023,20 @@ public class FileSpiltService {
XWPFPictureData pictureData = p.getDocument().getPictureDataByID(pictureId);
String imageName = UUIDUtils.randomUUID10() + pictureData.getFileName();
byte[] bytev = pictureData.getData();
String filepathandname = filePathCos + "/" + imageName;
//String filepathandname = filePathCos + "/" + imageName;
try {
String path = splitUrl+imageName;
//String path = splitUrl+imageName;
// MinioUtil.uploadByte(bytev, filepathandname);
ObsBootUtil.upload(new ByteArrayInputStream(bytev), filepathandname);
String imgCon = path;
String imgConVal = "<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"" + path + "\">";
InputStream inputStream = new ByteArrayInputStream(bytev);
MultipartFile file = new MockMultipartFile(imageName, imageName,ContentType.APPLICATION_OCTET_STREAM.toString(),inputStream);
String upload = ObsBootUtil.upload(file, "temp");
OSSFile ossFile = new OSSFile();
ossFile.setId(String.valueOf(SnowflakeUtils.snowflake()));
ossFile.setFileName(file.getName());
ossFile.setUrl(upload);
ossFileService.save(ossFile);
String imgCon = splitUrl+upload.replace("temp\\", "");
String imgConVal = "<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"" + imgCon + "\">";
stringBuilder.append(imgConVal);
} catch (Exception e) {
e.printStackTrace();
@@ -647,9 +647,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){
continue;
} else {
if ("item_content".equals(key)) {
value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
}
//if ("item_content".equals(key)) {
// value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
//}
valuesList.add(String.valueOf(value));
valuesBuilder.append("," + "'" + value + "'");
}
@@ -790,9 +790,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} else if(fieldPersonIdList.contains(key) || standardIdList.contains(key)){
continue;
} else {
if ("item_content".equals(key)) {
value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
}
//if ("item_content".equals(key)) {
// value = value.toString().replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'");
//}
// valuesList.add(String.valueOf(value));
// valuesBuilder.append("," + "'" + value + "'");
}
@@ -812,6 +812,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
case "item_title":
lawsDocumentSplit1.setItemTitle(valueOf);
break;
case "title_translation":
lawsDocumentSplit1.setTitleTranslation(valueOf);
break;
case "item_content":
lawsDocumentSplit1.setItemContent(valueOf);
break;
@@ -3478,10 +3481,10 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
sarFileSplitItemsEO.remove("itemList");
sarFileSplitItemsEO = filterMap(sarFileSplitItemsEO);
Map<String, Object> finalSarFileSplitItemsEO = sarFileSplitItemsEO;
sarFileSplitItemsEO.forEach((k, v) -> {
String str = String.valueOf(v);
finalSarFileSplitItemsEO.put(k, str.replace("'", "\\'"));
});
//sarFileSplitItemsEO.forEach((k, v) -> {
// String str = String.valueOf(v);
// finalSarFileSplitItemsEO.put(k, str.replace("'", "\\'"));
//});
insertInfo3(finalSarFileSplitItemsEO,id,"import", fieldListSelect, lawsDocumentSplit); // 添加条款
}
@@ -374,50 +374,67 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
}
@Override
public void updateMenuLevel(String sourceId, String targetId) {
// 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findById(sourceId);
public void updateMenuLevel(String sourceIds, String parentId, Long displaySeq) {
// 要移动到的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO2 = baseMapper.findById(targetId);
SarFileSplitMenuEO parentMenu = baseMapper.findById(parentId);
// 获取要移动到的层级的最后一个 的排序值
SarFileSplitMenuEO lastMenu = getLastMenu(sarFileSplitMenuEO2.getId());
if (Objects.isNull(lastMenu)){
lastMenu = sarFileSplitMenuEO2;
}
// 要移动的节点所有子集(包括本身)
List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1);
List<SarFileSplitMenuEO> allList = new ArrayList<>();
getChildren(allList, sarFileSplitMenuEO1List);
List<String> idlist = new ArrayList<>();
// 更新要移动节点及其子集的排序
for (int i = 0; i <allList.size(); i++) {
SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i);
if (!Objects.equals(sarFileSplitMenuEO.getId(), lastMenu.getId())){
sarFileSplitMenuEO.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
}
idlist.add(sarFileSplitMenuEO.getId());
List<SarFileSplitMenuEO> lastMenuList = getLastMenu(parentMenu.getId(),displaySeq);
List<String> sourceIdList = Arrays.asList(sourceIds.split(","));
int size = sourceIdList.size();
for (SarFileSplitMenuEO sarFileSplitMenuEO : lastMenuList) {
Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq();
sarFileSplitMenuEO.setDisplaySeq(displaySeq1+size);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
Long displaySeq = allList.get(allList.size() - 1).getDisplaySeq();
// 更新 大于 要移动到节点最后节点 的节点排序值
List<SarFileSplitMenuEO> sarFileSplitMenuEOList =
baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq());
sarFileSplitMenuEOList = sarFileSplitMenuEOList.stream()
.filter(v -> !idlist.contains(v.getId())).collect(Collectors.toList());
for (int i = 0; i < sarFileSplitMenuEOList.size(); i++) {
// 更新排序
SarFileSplitMenuEO fileSplitMenuEO = sarFileSplitMenuEOList.get(i);
fileSplitMenuEO.setDisplaySeq(displaySeq + i + 1);
baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO);
if(displaySeq == 0){
displaySeq = parentMenu.getDisplaySeq();
}
// 更新要移动节点的parentId
sarFileSplitMenuEO1.setParentId(targetId);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO1);
//this.updateBatchById(lastMenuList);
List<SarFileSplitMenuEO> updateList = new ArrayList<>();
for (int i = 0; i < sourceIdList.size(); i++) {
String sourceId = sourceIdList.get(i);
// 要移动的节点信息
SarFileSplitMenuEO sarFileSplitMenuEO = baseMapper.findById(sourceId);
sarFileSplitMenuEO.setParentId(parentId);
sarFileSplitMenuEO.setDisplaySeq(displaySeq+i+1);
updateList.add(sarFileSplitMenuEO);
baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
}
//this.updateBatchById(updateList);
// 要移动的节点所有子集(包括本身)
//List<SarFileSplitMenuEO> sarFileSplitMenuEO1List = new ArrayList<>();
//sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1);
//List<SarFileSplitMenuEO> allList = new ArrayList<>();
//getChildren(allList, sarFileSplitMenuEO1List);
//List<String> idlist = new ArrayList<>();
//
//// 更新要移动节点及其子集的排序
//for (int i = 0; i <allList.size(); i++) {
// SarFileSplitMenuEO sarFileSplitMenuEO = allList.get(i);
// if (!Objects.equals(sarFileSplitMenuEO.getId(), lastMenu.getId())){
// sarFileSplitMenuEO.setDisplaySeq(lastMenu.getDisplaySeq() + i + 1);
// }
// idlist.add(sarFileSplitMenuEO.getId());
// baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO);
//}
//Long displaySeq = allList.get(allList.size() - 1).getDisplaySeq();
//
//// 更新 大于 要移动到节点最后节点 的节点排序值
//List<SarFileSplitMenuEO> sarFileSplitMenuEOList =
// baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq());
//sarFileSplitMenuEOList = sarFileSplitMenuEOList.stream()
// .filter(v -> !idlist.contains(v.getId())).collect(Collectors.toList());
//for (int i = 0; i < sarFileSplitMenuEOList.size(); i++) {
// // 更新排序
// SarFileSplitMenuEO fileSplitMenuEO = sarFileSplitMenuEOList.get(i);
// fileSplitMenuEO.setDisplaySeq(displaySeq + i + 1);
// baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO);
//}
//
//// 更新要移动节点的parentId
//sarFileSplitMenuEO1.setParentId(parentId);
//baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO1);
}
private void getChildren(List<SarFileSplitMenuEO> allList, List<SarFileSplitMenuEO> sarFileSplitMenuEOList) {
@@ -430,11 +447,11 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
}
}
public SarFileSplitMenuEO getLastMenu(String parentId) {
SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findLastByParentId(parentId);
if(sarFileSplitMenuEO1 != null){
getLastMenu(sarFileSplitMenuEO1.getId());
}
return sarFileSplitMenuEO1;
public List<SarFileSplitMenuEO> getLastMenu(String parentId, Long displaySeq) {
List<SarFileSplitMenuEO> lastByParentId = baseMapper.findLastByParentId(parentId, displaySeq);
//if(sarFileSplitMenuEO1 != null){
// getLastMenu(sarFileSplitMenuEO1.getId());
//}
return lastByParentId;
}
}