feat(文档拆分): 编辑、批量编辑、合并条款
This commit is contained in:
+45
@@ -29,6 +29,7 @@ import java.util.Map;
|
||||
@RequestMapping("/laws/DocumentTool/documentSplit")
|
||||
@Slf4j
|
||||
public class DocumentSplitController {
|
||||
|
||||
private final IDocumentSplitService documentSplitService;
|
||||
private final ISarFileSplitInfoService sarFileSplitInfoService;
|
||||
|
||||
@@ -106,10 +107,54 @@ public class DocumentSplitController {
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 文档拆分详情-分页列表查询
|
||||
* @param parameter
|
||||
* @return Result<IPage<Map<String,Object>>>
|
||||
*/
|
||||
@AutoLog(value = "文档拆分详情-分页列表查询")
|
||||
@ApiOperation(value = "文档拆分详情-分页列表查询")
|
||||
@PostMapping("/queryDocumentSplitDetail")
|
||||
public Result<IPage<Map<String,Object>>> queryDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
|
||||
return Result.OK(documentSplitService.queryDocumentSplitDetail(parameter));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文档拆分详情-编辑
|
||||
* @param parameter
|
||||
* @return Result<IPage<Map<String,Object>>>
|
||||
*/
|
||||
@AutoLog(value = "文档拆分详情-编辑")
|
||||
@ApiOperation(value = "文档拆分详情-编辑")
|
||||
@PostMapping("/editDocumentSplitDetail")
|
||||
public Result<T> editDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
|
||||
documentSplitService.editDocumentSplitDetail(parameter);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 文档拆分详情-批量编辑
|
||||
* @param parameter
|
||||
* @return Result<IPage<Map<String,Object>>>
|
||||
*/
|
||||
@AutoLog(value = "文档拆分详情-批量编辑")
|
||||
@ApiOperation(value = "文档拆分详情-批量编辑")
|
||||
@PostMapping("/editBatchDocumentSplitDetail")
|
||||
public Result<T> editBatchDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
|
||||
documentSplitService.editBatchDocumentSplitDetail(parameter);
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 文档拆分详情-合并条款
|
||||
* @param parameter
|
||||
* @return Result<IPage<Map<String,Object>>>
|
||||
*/
|
||||
@AutoLog(value = "文档拆分详情-合并条款")
|
||||
@ApiOperation(value = "文档拆分详情-合并条款")
|
||||
@PostMapping("/mergeDocumentSplitDetail")
|
||||
public Result<T> mergeDocumentSplitDetail(@RequestBody Map<String, Object> parameter) {
|
||||
documentSplitService.mergeDocumentSplitDetail(parameter);
|
||||
return Result.OK("合并成功!");
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class DocumentSplitInfo extends BaseEntity{
|
||||
public class DocumentSplitInfo extends BaseEntity {
|
||||
/**标准号*/
|
||||
@Excel(name = "标准号", width = 15)
|
||||
@ApiModelProperty(value = "标准号")
|
||||
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package com.jero.modules.laws.documenttool.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @Author: yjz
|
||||
* @Date: 2023/10/15/19:34
|
||||
* @Description:
|
||||
*/
|
||||
@Data
|
||||
@TableName("laws_document_split")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="laws_document_split对象", description="文档拆分")
|
||||
public class LawsDocumentSplit extends BaseEntity {
|
||||
/**
|
||||
* 条文号
|
||||
*/
|
||||
private String itemNum;
|
||||
|
||||
/**
|
||||
* 条文标题
|
||||
*/
|
||||
private String itemTitle;
|
||||
|
||||
/**
|
||||
* 条文内容
|
||||
*/
|
||||
private String itemContent;
|
||||
|
||||
/**
|
||||
* 展示顺序
|
||||
*/
|
||||
private String sortNumber;
|
||||
|
||||
/**
|
||||
* 拆分目录id
|
||||
*/
|
||||
private String menuId;
|
||||
|
||||
/**
|
||||
* 技术领域
|
||||
*/
|
||||
private String technicalField;
|
||||
|
||||
/**
|
||||
* 信息类别
|
||||
*/
|
||||
private String infoType;
|
||||
|
||||
/**
|
||||
* 法规要求类型
|
||||
*/
|
||||
private String lawsRequireType;
|
||||
|
||||
/**
|
||||
* 功能分类
|
||||
*/
|
||||
private String functionClassification;
|
||||
|
||||
/**
|
||||
* 功能专业
|
||||
*/
|
||||
private String functionProfessional;
|
||||
|
||||
/**
|
||||
* 功能分组编码
|
||||
*/
|
||||
private String functionGroupCode;
|
||||
|
||||
/**
|
||||
* 功能分组名称
|
||||
*/
|
||||
private String functionGroupName;
|
||||
|
||||
/**
|
||||
* 新认证实施时间
|
||||
*/
|
||||
private String newCerImplementDate;
|
||||
|
||||
/**
|
||||
* 已认证实施时间
|
||||
*/
|
||||
private String cerImplementDate;
|
||||
|
||||
/**
|
||||
* 新注册实施时间
|
||||
*/
|
||||
private String newRegisterImplementDate;
|
||||
|
||||
/**
|
||||
* 适用车型
|
||||
*/
|
||||
private String applications;
|
||||
|
||||
/**
|
||||
* 动力类型
|
||||
*/
|
||||
private String dynamicType;
|
||||
|
||||
/**
|
||||
* 适用零部件
|
||||
*/
|
||||
private String applicableComponents;
|
||||
|
||||
/**
|
||||
* 条文解读
|
||||
*/
|
||||
private String interpretationArticles;
|
||||
|
||||
/**
|
||||
* 拆分信息记录id
|
||||
*/
|
||||
private String infoId;
|
||||
}
|
||||
+27
-1
@@ -1,6 +1,12 @@
|
||||
package com.jero.modules.laws.documenttool.handler;
|
||||
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author: yjz
|
||||
@@ -15,7 +21,27 @@ public class AbstractConditionBase {
|
||||
* @return 拼接完成的sql
|
||||
*/
|
||||
public String buildCondition(String fieldName, String value){
|
||||
log.info("字段名:{}, 参数值{}", fieldName, value);
|
||||
log.info("构建查询条件字段名:{}, 参数值{}", fieldName, value);
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建修改字段
|
||||
* @return 拼接完成的sql
|
||||
*/
|
||||
public String buildUpdate(String fieldName, String value){
|
||||
log.info("构建修改字段字段名:{}, 参数值{}", fieldName, value);
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新人、更新时间填充
|
||||
* @return
|
||||
*/
|
||||
public String getUpdateByAndUpdateTime() {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
return " update_by = " + "'" + sysUser.getUsername() + "'" +
|
||||
"update_time = " + FieldCommon.STR_TO_DATE_PREFIX + dateFormat.format(new Date()) + "','%Y-%m-%d %H:%i:%s')";
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -48,6 +48,11 @@ public class DateManyConditionImpl extends AbstractConditionBase {
|
||||
return dateMany;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String buildUpdate(String fieldName, String value){
|
||||
return fieldName + " = " + "'" + value +"'";
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化注册到工厂
|
||||
*/
|
||||
|
||||
+6
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.laws.documenttool.handler.impl;
|
||||
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
|
||||
import com.jero.modules.laws.documenttool.factory.ConditionMapFactory;
|
||||
import com.jero.modules.laws.documenttool.handler.AbstractConditionBase;
|
||||
@@ -37,6 +38,11 @@ public class DateSingleConditionImpl extends AbstractConditionBase {
|
||||
return dateSingle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String buildUpdate(String fieldName, String value){
|
||||
return fieldName + " = " + "'" + FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX +"'";
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化注册到工厂
|
||||
*/
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* @Author: yjz
|
||||
* @Date: 2023/10/15/15:19
|
||||
* @Description: 普通
|
||||
*/
|
||||
@Slf4j
|
||||
public class UniversalImpl extends AbstractConditionBase {
|
||||
public UniversalImpl(){
|
||||
log.info("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String buildUpdate(String fieldName, String value){
|
||||
return fieldName + " = " + "'" + FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX +"'";
|
||||
}
|
||||
}
|
||||
+37
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
|
||||
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -40,4 +41,40 @@ public interface DocumentSplitMapper {
|
||||
* @return
|
||||
*/
|
||||
IPage<Map<String, Object>> queryDocumentSplitDetail(Page<Map<String, Object>> mapPage, @Param("selectColumn") String selectColumn, @Param("selectCondition") String selectCondition);
|
||||
|
||||
/**
|
||||
* 文档拆分详情-列表查询
|
||||
* @param selectColumn
|
||||
* @param selectCondition
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> queryDocumentSplitDetail(@Param("selectColumn") String selectColumn, @Param("selectCondition") String selectCondition);
|
||||
|
||||
/**
|
||||
* 文档拆分详情-编辑
|
||||
* @param updateSet
|
||||
* @param updateCondition
|
||||
* @return int
|
||||
*/
|
||||
int editDocumentSplitDetail(@Param("updateSet") String updateSet,@Param("updateCondition") String updateCondition);
|
||||
|
||||
/**
|
||||
* 条目查询根据itemId集合
|
||||
* @param itemIdList
|
||||
* @return
|
||||
*/
|
||||
List<SarFileSplitItemsValEO> queryItemsValByItemIds(@Param("itemIdList") List<String> itemIdList);
|
||||
|
||||
/**
|
||||
* 条目查询根据itemId
|
||||
* @param itemId
|
||||
* @return
|
||||
*/
|
||||
List<SarFileSplitItemsValEO> queryItemsValByItemId(@Param("itemId") String itemId);
|
||||
|
||||
/**
|
||||
* 目录删除根据menuId集合
|
||||
* @param menuIdList
|
||||
*/
|
||||
int sarFileSplitMenudeleteByIdList(@Param("menuIdList") List<String> menuIdList);
|
||||
}
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.jero.modules.laws.documenttool.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
|
||||
|
||||
/**
|
||||
* @Author: yjz
|
||||
* @Date: 2023/10/15/19:32
|
||||
* @Description:
|
||||
*/
|
||||
public interface LawsDocumentSplitMapper extends BaseMapper<LawsDocumentSplit> {
|
||||
}
|
||||
+33
@@ -2,6 +2,14 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper">
|
||||
|
||||
<delete id="sarFileSplitMenudeleteByIdList">
|
||||
delete from SAR_FILE_SPLIT_MENU
|
||||
where id in
|
||||
<foreach collection="menuIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="queryByPage" resultType="com.jero.modules.laws.documenttool.entity.DocumentSplitInfo">
|
||||
select *
|
||||
from (select i.id as id,
|
||||
@@ -32,4 +40,29 @@
|
||||
left join SAR_FILE_SPLIT_MENU m on s.MENU_ID = m.id
|
||||
${selectCondition}
|
||||
</select>
|
||||
|
||||
<select id="queryItemsValByItemIds" resultType="com.jero.modules.split.entity.SarFileSplitItemsValEO">
|
||||
select id, type, item_id, item_content, valid_flag, creation_user,
|
||||
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 in
|
||||
<foreach collection="itemIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by display_seq
|
||||
</select>
|
||||
|
||||
<select id="queryItemsValByItemId" resultType="com.jero.modules.split.entity.SarFileSplitItemsValEO">
|
||||
select id, type, item_id, item_content, valid_flag, creation_user,
|
||||
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}
|
||||
order by display_seq
|
||||
</select>
|
||||
|
||||
<update id="editDocumentSplitDetail">
|
||||
UPDATE laws_document_split
|
||||
SET ${updateSet}
|
||||
WHERE #{updateCondition}
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
+18
@@ -48,4 +48,22 @@ public interface IDocumentSplitService {
|
||||
* @param sarFileSplitInfoEO
|
||||
*/
|
||||
void add(SarFileSplitInfoEO sarFileSplitInfoEO);
|
||||
|
||||
/**
|
||||
* 文档拆分详情-编辑
|
||||
* @param parameter
|
||||
*/
|
||||
void editDocumentSplitDetail(Map<String, Object> parameter);
|
||||
|
||||
/**
|
||||
* 文档拆分详情-批量编辑
|
||||
* @param parameter
|
||||
*/
|
||||
void editBatchDocumentSplitDetail(Map<String, Object> parameter);
|
||||
|
||||
/**
|
||||
* 文档拆分详情-合并条款
|
||||
* @param parameter
|
||||
*/
|
||||
void mergeDocumentSplitDetail(Map<String, Object> parameter);
|
||||
}
|
||||
|
||||
+161
-8
@@ -13,12 +13,17 @@ import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
|
||||
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
|
||||
import com.jero.modules.laws.documenttool.factory.ConditionMapFactory;
|
||||
import com.jero.modules.laws.documenttool.handler.impl.DateManyConditionImpl;
|
||||
import com.jero.modules.laws.documenttool.handler.impl.UniversalImpl;
|
||||
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||
import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper;
|
||||
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.entity.SarFileSplitMenuEO;
|
||||
import com.jero.modules.split.enums.SplitEnum;
|
||||
import com.jero.modules.split.enums.SplitFileTypeTypeEnum;
|
||||
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
||||
import com.jero.modules.split.service.impl.FileSpiltService;
|
||||
@@ -47,20 +52,29 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
private final LawsCommonMapper lawsCommonMapper;
|
||||
private final FileSpiltService fileSpiltService;
|
||||
private final ISarFileSplitMenuEOService sarFileSplitMenuEOService;
|
||||
private static final String INFO_ID = "infoId";
|
||||
private static final String ITEM_NUM = "itemNum";
|
||||
private static final String ITEM_TITLE = "itemTitle";
|
||||
private static final String ITEM_CONTENT = "itemContent";
|
||||
private static final String MENU_ID = "menuId";
|
||||
private final LawsDocumentSplitMapper lawsDocumentSplitMapper;
|
||||
private final SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper;
|
||||
private static final String INFO_ID = "info_id";
|
||||
private static final String ID = "id";
|
||||
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 ITEM_CONTENT = "item_content";
|
||||
private static final String MENU_ID = "menu_id";
|
||||
public DocumentSplitServiceImpl(DocumentSplitMapper documentSplitMapper,
|
||||
ISarFileSplitInfoService sarFileSplitInfoService,
|
||||
LawsCommonMapper lawsCommonMapper,
|
||||
FileSpiltService fileSpiltService, ISarFileSplitMenuEOService sarFileSplitMenuEOService) {
|
||||
FileSpiltService fileSpiltService,
|
||||
ISarFileSplitMenuEOService sarFileSplitMenuEOService,
|
||||
LawsDocumentSplitMapper lawsDocumentSplitMapper,
|
||||
SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper) {
|
||||
this.documentSplitMapper = documentSplitMapper;
|
||||
this.sarFileSplitInfoService = sarFileSplitInfoService;
|
||||
this.lawsCommonMapper = lawsCommonMapper;
|
||||
this.fileSpiltService = fileSpiltService;
|
||||
this.sarFileSplitMenuEOService = sarFileSplitMenuEOService;
|
||||
this.lawsDocumentSplitMapper = lawsDocumentSplitMapper;
|
||||
this.sarFileSplitItemsValEOMapper = sarFileSplitItemsValEOMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,6 +150,141 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editDocumentSplitDetail(Map<String, Object> parameter) {
|
||||
// 查询全部字段列表
|
||||
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
|
||||
// 编辑页展示的字段
|
||||
fieldList = fieldList.stream().filter(v -> YesOrNoEnum.YES.getInteger()
|
||||
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
|
||||
List<LawsTag> finalFieldList = fieldList;
|
||||
parameter.forEach((k, v) -> {
|
||||
// 修改字段
|
||||
String updateSet = getUpdateValue(finalFieldList, k, (String) v);
|
||||
// where条件
|
||||
String updateCondition = (String) parameter.get("id");
|
||||
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String getUpdateValue(List<LawsTag> finalFieldList, String k, String v) {
|
||||
// 匹配参数和字段
|
||||
Optional<LawsTag> lawsTag = finalFieldList.stream().filter(o -> k.equals(o.getDbFieldName())).findFirst();
|
||||
ArrayList<String> sqlList = new ArrayList<>();
|
||||
lawsTag.ifPresent(l -> {
|
||||
// 构建修改字段
|
||||
if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(l.getFieldShowType())){
|
||||
// 多日期
|
||||
sqlList.add(new DateManyConditionImpl().buildUpdate(l.getDbFieldName(), v));
|
||||
}else {
|
||||
sqlList.add(new UniversalImpl().buildUpdate(l.getDbFieldName(), v));
|
||||
}
|
||||
});
|
||||
// 修改数据
|
||||
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
|
||||
String join = String.join(",", sqlList);
|
||||
return updateByAndUpdateTime + "," + join;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editBatchDocumentSplitDetail(Map<String, Object> parameter) {
|
||||
// 查询全部字段列表
|
||||
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
|
||||
// 编辑页展示的字段
|
||||
fieldList = fieldList.stream().filter(v -> YesOrNoEnum.YES.getInteger()
|
||||
.equals(v.getIsShowFormCreate())).collect(Collectors.toList());
|
||||
List<LawsTag> finalFieldList = fieldList;
|
||||
parameter.forEach((k, v) -> {
|
||||
// 修改字段
|
||||
String updateSet = getUpdateValue(finalFieldList, k, (String) v);
|
||||
// where条件
|
||||
String updateCondition = "";
|
||||
if (parameter.containsKey("id")){
|
||||
String id = (String) parameter.get("id");
|
||||
updateCondition = "id = " + "'" + id + "'";
|
||||
}else {
|
||||
String infoId = (String) parameter.get(INFO_ID);
|
||||
updateCondition = "info_id = " + "'" + infoId + "'";
|
||||
}
|
||||
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mergeDocumentSplitDetail(Map<String, Object> parameter) {
|
||||
// 查询全部字段列表
|
||||
List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName());
|
||||
// 列表展示字段
|
||||
List<LawsTag> fieldListSelect = fieldList.stream().filter(v -> YesOrNoEnum.YES.getValue()
|
||||
.equals(String.valueOf(v.getIsShowList()))).collect(Collectors.toList());
|
||||
// sql查询列字段拼接
|
||||
String selectColumn = getSelectColumn(fieldListSelect);
|
||||
// 勾选数据ids
|
||||
String ids = (String) parameter.get(IDS);
|
||||
List<String> idList = Arrays.asList(ids.split(","));
|
||||
// sql where条件拼接
|
||||
String selectCondition = "where del_flag = 0 and s.id in ('" + String.join(",", idList) + "')";
|
||||
// 排序
|
||||
orderBy(new StringBuilder(selectCondition));
|
||||
// 查询数据
|
||||
List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, selectCondition);
|
||||
// 第一条数据
|
||||
Map<String, Object> firstData = listMap.get(0);
|
||||
listMap.remove(0);
|
||||
// 合并数据(合并每个key对应的value)
|
||||
String content = firstData.get(ITEM_CONTENT) + mergeData(listMap);
|
||||
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
|
||||
String updateSet = updateByAndUpdateTime + "," + ITEM_CONTENT + " = " + "'" + content + "'";
|
||||
String updateCondition = "id = " + "'" + firstData.get(ID) + "'";
|
||||
// 修改数据
|
||||
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
|
||||
List<String> otherIds = listMap.stream().map(v -> (String)v.get(ID)).collect(Collectors.toList());
|
||||
// 删除旧数据
|
||||
lawsDocumentSplitMapper.deleteBatchIds(otherIds);
|
||||
|
||||
// 目录更新
|
||||
List<String> menuIdList = listMap.stream().map(v -> (String) v.get(MENU_ID)).distinct().collect(Collectors.toList());
|
||||
// 删除旧数据
|
||||
documentSplitMapper.sarFileSplitMenudeleteByIdList(menuIdList);
|
||||
|
||||
// 修改条目
|
||||
ArrayList<SarFileSplitItemsValEO> sarFileSplitItemsValEOSList = new ArrayList<>();
|
||||
// 查询旧数据
|
||||
for (Map<String, Object> map : listMap) {
|
||||
String id = (String) map.get(ID);
|
||||
sarFileSplitItemsValEOSList.addAll(documentSplitMapper.queryItemsValByItemId(id));
|
||||
}
|
||||
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID));
|
||||
// 第一条数据信息的最大的排序字段值
|
||||
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst();
|
||||
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
||||
// 排序字段
|
||||
Integer displaySeq = v.getDisplaySeq();
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
for (SarFileSplitItemsValEO fileSplitItemsValEO : sarFileSplitItemsValEOSList) {
|
||||
displaySeq += 1;
|
||||
fileSplitItemsValEO.setItemId(v.getItemId());
|
||||
fileSplitItemsValEO.setDisplaySeq(displaySeq);
|
||||
fileSplitItemsValEO.setModifyTime(new Date());
|
||||
fileSplitItemsValEO.setModifyUser(sysUser.getUsername());
|
||||
// 修改数据
|
||||
sarFileSplitItemsValEOMapper.updateByPrimaryKeySelective(fileSplitItemsValEO);
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
private String mergeData(List<Map<String, Object>> listMap) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
// 合并数据(合并每个key对应的value)
|
||||
for (Map<String, Object> map : listMap) {
|
||||
String num = (String) map.get(ITEM_NUM);
|
||||
String content = (String) map.get(ITEM_CONTENT);
|
||||
stringBuilder.append("<p>").append(num).append("<p>").append(content);
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
private void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
Date now = new Date();
|
||||
@@ -213,6 +362,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
|
||||
private void defaultCondition(Map<String, Object> parameter, StringBuilder selectCondition) {
|
||||
if (parameter.containsKey(ID)){
|
||||
selectCondition.append(" and s.id = '").append(parameter.get(ID)).append("'");
|
||||
parameter.remove(ID);
|
||||
}
|
||||
if (parameter.containsKey(INFO_ID)){
|
||||
selectCondition.append(" and s.info_id = '").append(parameter.get(INFO_ID)).append("'");
|
||||
parameter.remove(INFO_ID);
|
||||
@@ -223,12 +376,12 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
if (parameter.containsKey(ITEM_TITLE)){
|
||||
// 模糊匹配
|
||||
selectCondition.append(likeCondition("item_title", (String) parameter.get(ITEM_TITLE)));
|
||||
selectCondition.append(likeCondition(ITEM_TITLE, (String) parameter.get(ITEM_TITLE)));
|
||||
parameter.remove(ITEM_TITLE);
|
||||
}
|
||||
if (parameter.containsKey(ITEM_CONTENT)){
|
||||
// 模糊匹配
|
||||
selectCondition.append(likeCondition("item_content", (String) parameter.get(ITEM_CONTENT)));
|
||||
selectCondition.append(likeCondition(ITEM_CONTENT, (String) parameter.get(ITEM_CONTENT)));
|
||||
parameter.remove(ITEM_CONTENT);
|
||||
}
|
||||
// 树节点搜索
|
||||
|
||||
+2
-2
@@ -437,7 +437,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
|
||||
fieldsBuilder.append("," + key);
|
||||
}
|
||||
String mustFields = "id,creation_user,creation_time,modify_user,modify_time,sys_org_code";
|
||||
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
|
||||
// String idTemp = UUID.randomUUID().toString().replace("-", "");
|
||||
String mustValues = getMustValues(id);
|
||||
String insertField = mustFields + fieldsBuilder.toString();
|
||||
@@ -1076,7 +1076,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
dao.deleteByItemsIdList(oldItemIdList); // 条款
|
||||
|
||||
//同一目录下有多个条款时 如何处理?
|
||||
// sarFileSplitMenuEOMapper.deleteByIdList(oldMenuIdList);
|
||||
sarFileSplitMenuEOMapper.deleteByIdList(oldMenuIdList);
|
||||
// 添加合并后的条款及目录 (新条款和新目录的id为第一条的)
|
||||
newItemMap.remove("id");
|
||||
newItemMap.remove("creation_user");
|
||||
|
||||
Reference in New Issue
Block a user