fix(文档拆分): 发布时间优化
This commit is contained in:
+7
@@ -176,6 +176,13 @@ public interface DocumentSplitMapper extends BaseMapper<LawsDocumentSplit> {
|
||||
*/
|
||||
List<SarFileSplitItemsVal> querySarFileSplitItemsValByItemId(@Param("itemId") String itemId);
|
||||
|
||||
/**
|
||||
* 条目信息根据itemIds查询
|
||||
* @param itemIds
|
||||
* @return
|
||||
*/
|
||||
List<SarFileSplitItemsVal> querySarFileSplitItemsValByItemIds(@Param("itemIds") String itemIds);
|
||||
|
||||
/**
|
||||
* 条目信息批量新增
|
||||
* @param sarFileSplitItemsVal
|
||||
|
||||
+14
@@ -200,6 +200,20 @@
|
||||
where valid_flag = 0 and item_id = #{itemId}
|
||||
</select>
|
||||
|
||||
<select id="querySarFileSplitItemsValByItemIds"
|
||||
resultType="com.jero.modules.laws.documenttool.entity.SarFileSplitItemsVal">
|
||||
select id, sys_org_code, item_id, type, item_content, display_seq, valid_flag,
|
||||
img_name, index_item, creation_time, modify_user, modify_time, creation_user
|
||||
from sar_file_split_items_val
|
||||
where valid_flag = 0
|
||||
<if test="itemIds != null and itemIds != ''">
|
||||
and item_id in
|
||||
<foreach collection="itemIds.split(',')" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="queryLawsDocumentSplitInId" resultType="java.util.Map">
|
||||
select *
|
||||
from laws_document_split
|
||||
|
||||
+29
-21
@@ -186,6 +186,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
private static final String CREATE_TIME = "create_time";
|
||||
private static final String SPLIT_STATUS = "split_status";
|
||||
|
||||
private static final int NUMBER = 500;
|
||||
|
||||
@Autowired
|
||||
private PlatformTransactionManager dataSourceTransactionManager;
|
||||
|
||||
@@ -1046,6 +1048,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
|
||||
private void publishs(Map<String, Object> parameter, boolean b) {
|
||||
long l = System.currentTimeMillis();
|
||||
String id = (String) parameter.get(ID);
|
||||
if (b){
|
||||
// 水平越权
|
||||
@@ -1103,22 +1106,16 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
|
||||
// 文档拆分详情(旧)
|
||||
List<Map<String, Object>> oldLawsDocumentSplitList = documentSplitMapper.queryLawsDocumentSplitByInfoId(id);
|
||||
/**
|
||||
* List<String> oldLawsDocumentSplitIdList = new ArrayList<>();
|
||||
* List<String> newLawsDocumentSplitIdList = new ArrayList<>();
|
||||
*/
|
||||
|
||||
// 旧新id映射(k:旧id v:新id)
|
||||
HashMap<String, String> oldNewMap = new HashMap<>();
|
||||
for (Map<String, Object> map : oldLawsDocumentSplitList) {
|
||||
String oldId = (String) map.get(ID);
|
||||
/**
|
||||
* oldLawsDocumentSplitIdList.add(oldId);
|
||||
*/
|
||||
String newId = UUID.randomUUID().toString().replace("-", "");
|
||||
map.put(ID, newId);
|
||||
/**
|
||||
* newLawsDocumentSplitIdList.add(newId);
|
||||
*/
|
||||
map.put(INFO_ID, newInfo.getId());
|
||||
|
||||
// 记录映射关系
|
||||
oldNewMap.put(oldId, newId);
|
||||
// 旧目录id替换
|
||||
Optional<String> optionalS = oldMenuIdList.stream().filter(v -> v.equals(map.get(MENU_ID))).findFirst();
|
||||
optionalS.ifPresent(v -> {
|
||||
@@ -1135,17 +1132,28 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
String insertField = String.join(",", keyList);
|
||||
documentSplitMapper.insertLawsDocumentSplit(insertField, valueList);
|
||||
}
|
||||
// 条目信息 批量新增
|
||||
Set<String> oldIdList = oldNewMap.keySet();
|
||||
List<SarFileSplitItemsVal> sarFileSplitItemsVal =
|
||||
documentSplitMapper.querySarFileSplitItemsValByItemIds(String.join(",", oldIdList));
|
||||
for (SarFileSplitItemsVal fileSplitItemsVal : sarFileSplitItemsVal) {
|
||||
fileSplitItemsVal.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
fileSplitItemsVal.setItemId(oldNewMap.get(fileSplitItemsVal.getItemId()));
|
||||
}
|
||||
batchSaveItemsVal(sarFileSplitItemsVal);
|
||||
log.info("===================================耗时:"+(System.currentTimeMillis() - l));
|
||||
}
|
||||
|
||||
// 条目信息(旧)
|
||||
List<SarFileSplitItemsVal> sarFileSplitItemsVal = documentSplitMapper.querySarFileSplitItemsValByItemId(oldId);
|
||||
for (SarFileSplitItemsVal fileSplitItemsVal : sarFileSplitItemsVal) {
|
||||
fileSplitItemsVal.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
fileSplitItemsVal.setItemId(newId);
|
||||
}
|
||||
// 新增数据
|
||||
if (!sarFileSplitItemsVal.isEmpty()){
|
||||
documentSplitMapper.insertSarFileSplitItemsVal(sarFileSplitItemsVal);
|
||||
}
|
||||
private void batchSaveItemsVal(List<SarFileSplitItemsVal> allvItemsValList) {
|
||||
int size = allvItemsValList.size();
|
||||
int count = (int)Math.ceil((double) size / NUMBER);
|
||||
for (int i = 1; i <= count; i++) {
|
||||
List<SarFileSplitItemsVal> list = allvItemsValList.stream()
|
||||
.skip((long) (Math.max(i, 1) - 1) * NUMBER)
|
||||
.limit(NUMBER)
|
||||
.collect(Collectors.toList());
|
||||
documentSplitMapper.insertSarFileSplitItemsVal(list);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user