@@ -46,7 +46,7 @@ public abstract class AbstractMatterCacheHelper implements InitializingBean { | |||
@Autowired | |||
private ComponentsMatterEliminateService componentsMatterEliminateService; | |||
private final String KQ_ZZS_BASE_URL = "https://www.zjzwfw.gov.cn/zjservice-fe/#/workguide?localInnerCode=&siteCode=330000000000"; | |||
private static final String KQ_ZZS_BASE_URL = "https://www.zjzwfw.gov.cn/zjservice-fe/#/workguide?localInnerCode=&siteCode=330000000000"; | |||
private Boolean initMatterCache() { | |||
// 首先,查询ComponentsMatterEliminateEntity中isDelete不为1的qlName列表, 未被剔除 | |||
@@ -64,11 +64,11 @@ public abstract class AbstractMatterCacheHelper implements InitializingBean { | |||
DscSxAdsShareItemQltQlsxCommonIDVKq::getQlState, | |||
DscSxAdsShareItemQltQlsxCommonIDVKq::getQlInnerCode, | |||
DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl) | |||
// .eq(DscSxAdsShareItemQltQlsxCommonIDVKq::getQlState, "1") | |||
.isNotNull(DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl) | |||
.isNotNull(DscSxAdsShareItemQltQlsxCommonIDVKq::getQlInnerCode) | |||
.ne(DscSxAdsShareItemQltQlsxCommonIDVKq::getQlInnerCode, "") | |||
.notIn(!eliminatedQlNames.isEmpty(), DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName, eliminatedQlNames) // 过滤掉那些在eliminatedQlNames中的记录 | |||
.notIn(!eliminatedQlNames.isEmpty(), DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName, eliminatedQlNames) | |||
// 过滤掉那些在eliminatedQlNames中的记录 | |||
.orderByDesc(DscSxAdsShareItemQltQlsxCommonIDVKq::getUpdateDate)); | |||
if (allMatters.isEmpty()) { | |||
log.warn("事项数据未初始化"); | |||
@@ -76,22 +76,22 @@ public abstract class AbstractMatterCacheHelper implements InitializingBean { | |||
} | |||
allMatters.forEach(m -> { | |||
// 3-14日修改新的url匹配规则,取事项状态为1且qlInnerCode不为空的进行拼接,新的url规则如下 | |||
String kq_url = KQ_ZZS_BASE_URL.replace("localInnerCode=", "localInnerCode=" + m.getQlInnerCode()); | |||
MatterKey key = MatterKey.of(m.getQlName(),kq_url); | |||
if(!mattersUrlCache.asMap().containsKey(m.getQlName())){ | |||
mattersUrlCache.put(m.getQlName(),kq_url); | |||
}else{ | |||
String kqUrl = KQ_ZZS_BASE_URL.replace("localInnerCode=", "localInnerCode=" + m.getQlInnerCode()); | |||
MatterKey key = MatterKey.of(m.getQlName(), kqUrl); | |||
if (!mattersUrlCache.asMap().containsKey(m.getQlName())) { | |||
mattersUrlCache.put(m.getQlName(), kqUrl); | |||
} else { | |||
String url = mattersUrlCache.get(m.getQlName()); | |||
if(StringUtils.isNotBlank(url) && !url.equals(kq_url)){ | |||
if (StringUtils.isNotBlank(url) && !url.equals(kqUrl)) { | |||
return; | |||
} | |||
} | |||
if(mattersDupCache.asMap().containsKey(key)){ | |||
if (mattersDupCache.asMap().containsKey(key)) { | |||
KqZzsfwMattersDeduplicate dup = mattersDupCache.get(key); | |||
dup.setCountNum(dup.getCountNum() + 1); | |||
mattersDupCache.put(key,dup); | |||
}else{ | |||
mattersDupCache.put(key, KqZzsfwMattersDeduplicate.of(m.getQlName(),kq_url)); | |||
mattersDupCache.put(key, dup); | |||
} else { | |||
mattersDupCache.put(key, KqZzsfwMattersDeduplicate.of(m.getQlName(), kqUrl)); | |||
} | |||
}); | |||
return Boolean.TRUE; | |||
@@ -30,6 +30,7 @@ import com.ningdatech.kqapi.zzsfw.service.IKqZzsfwMatterDeduplicateService; | |||
import com.ningdatech.kqapi.zzsfw.service.IKqZzsfwMenuService; | |||
import lombok.RequiredArgsConstructor; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.apache.commons.compress.utils.Lists; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.apache.poi.ss.usermodel.CellType; | |||
import org.apache.poi.ss.usermodel.Row; | |||
@@ -113,20 +114,50 @@ public class MatterManage { | |||
if (zones.isEmpty()) { | |||
return Collections.emptyList(); | |||
} | |||
Map<Long, Integer> fileIdMap = new HashMap<>(); | |||
zones.forEach(zone -> { | |||
Map<Long, Integer> iconFileIdMap = new HashMap<>(); | |||
Map<Long, Integer> specialFeatureFileIdMap = new HashMap<>(); | |||
for (Zone zone : zones) { | |||
if (StrUtil.isNotBlank(zone.getZoneIcon())) { | |||
List<AttachFileVo> files = JSONUtil.toList(zone.getZoneIcon(), AttachFileVo.class); | |||
if (files != null && !files.isEmpty()) { | |||
fileIdMap.put(files.get(0).getFileId(), zone.getId()); | |||
if (CollUtil.isNotEmpty(files)) { | |||
iconFileIdMap.put(files.get(0).getFileId(), zone.getId()); | |||
} | |||
} | |||
}); | |||
if (StrUtil.isNotBlank(zone.getSpecialFeature())) { | |||
List<AttachFileVo> files = JSONUtil.toList(zone.getSpecialFeature(), AttachFileVo.class); | |||
if (CollUtil.isNotEmpty(files)) { | |||
for (AttachFileVo file : files) { | |||
specialFeatureFileIdMap.put(file.getFileId(), zone.getId()); | |||
} | |||
} | |||
} | |||
} | |||
Map<Integer, String> iconUrlMap = new HashMap<>(); | |||
if (!fileIdMap.isEmpty()) { | |||
for (File file : fileService.listByIds(fileIdMap.keySet())) { | |||
Map<Integer, List<FileResultVO>> specialFeatureUrlMap = new HashMap<>(); | |||
if (!iconFileIdMap.isEmpty() || !specialFeatureFileIdMap.isEmpty()) { | |||
List<Long> tmpFileIds = new ArrayList<>(); | |||
tmpFileIds.addAll(iconFileIdMap.keySet()); | |||
tmpFileIds.addAll(specialFeatureFileIdMap.keySet()); | |||
for (File file : fileService.listByIds(tmpFileIds)) { | |||
String fileUrl = fileService.findUrlByFile(file, Duration.ofDays(30)); | |||
iconUrlMap.put(fileIdMap.get(file.getId()), fileUrl); | |||
if (iconFileIdMap.containsKey(file.getId())) { | |||
iconUrlMap.put(iconFileIdMap.get(file.getId()), fileUrl); | |||
} else if (specialFeatureFileIdMap.containsKey(file.getId())) { | |||
FileResultVO retFile = FileResultVO.builder() | |||
.id(file.getId()) | |||
.url(fileUrl) | |||
.contentType(file.getContentType()) | |||
.fileType(file.getFileType()) | |||
.originalFileName(file.getOriginalFileName()) | |||
.size(file.getSize()) | |||
.suffix(file.getSuffix()) | |||
.build(); | |||
specialFeatureUrlMap.merge(specialFeatureFileIdMap.get(file.getId()), | |||
CollUtil.newArrayList(retFile), (v1, v2) -> { | |||
v1.addAll(v2); | |||
return v1; | |||
}); | |||
} | |||
} | |||
} | |||
@@ -134,6 +165,7 @@ public class MatterManage { | |||
.name(w.getZoneName()) | |||
.zoneIcon(iconUrlMap.get(w.getId())) | |||
.specialFeature(w.getSpecialFeature()) | |||
.specialFeatureFiles(specialFeatureUrlMap.get(w.getId())) | |||
.type(ZzsfwMenuConstant.MENU_TYPE_ZONE) | |||
.build()); | |||
} | |||
@@ -1,5 +1,6 @@ | |||
package com.ningdatech.kqapi.zzsfw.model.vo; | |||
import com.ningdatech.file.entity.vo.result.FileResultVO; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Builder; | |||
@@ -21,7 +22,12 @@ import java.util.List; | |||
@ApiModel(value = "TreeVO", description = "树结构") | |||
public class TreeVO { | |||
@ApiModelProperty("rowid") | |||
@Tolerate | |||
public TreeVO() { | |||
// 无参构造 | |||
} | |||
@ApiModelProperty("rowId") | |||
private String id; | |||
@ApiModelProperty("名称") | |||
@@ -62,9 +68,7 @@ public class TreeVO { | |||
@ApiModelProperty("特色场景") | |||
private String specialFeature; | |||
@Tolerate | |||
public TreeVO() { | |||
// 无参构造 | |||
} | |||
@ApiModelProperty("特色场景文件信息") | |||
private List<FileResultVO> specialFeatureFiles; | |||
} |