提交 9f8e25bd 作者: zgz

人物查询新增筛选条件

上级 866e3409
......@@ -157,7 +157,7 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
//历史职务
private String historyWork;
//审核状态 -1: 黑名单 0:未审核 1:暂定 2:通过 3:需合并 4:被合并
//审核状态 -1: 黑名单 0:未审核 1:暂定 2:通过
private String auditStatus;
//数据等级
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
......@@ -12,5 +17,12 @@ public class CharacterTagMap {
private long id;
private String tagId;
private String characterUid;
private String tagName;
private String tagType;
private BigDecimal score;
private String createBy;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
......@@ -16,13 +16,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.CharacterCategoryStructure;
import com.zzsn.leaderbase.entity.CharacterTagMap;
import com.zzsn.leaderbase.feign.api.RemoteSystemService;
import com.zzsn.leaderbase.feign.entity.SysDictItem;
import com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.CharacterTagService;
import com.zzsn.leaderbase.service.IGeneratorIdService;
import com.zzsn.leaderbase.service.LeaderCategoryService;
import com.zzsn.leaderbase.service.*;
import com.zzsn.leaderbase.util.ExcelUtil;
import com.zzsn.leaderbase.vo.*;
import lombok.extern.slf4j.Slf4j;
......@@ -41,6 +39,7 @@ import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
......@@ -66,6 +65,9 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
CharacterTagService characterTagService;
@Autowired
CharacterTagMapService characterTagMapService;
@Autowired
LeaderCategoryService leaderCategoryService;
@Autowired(required = false)
......@@ -272,6 +274,16 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
String uid = generatorIdService.getIdNo();
characterBasicInfo.setUid(uid);
characterBasicInfo.setMainEntry(1);
try{
log.info("新增专家===开始====主题标签、领域标签关联character_tag_map表");
//新增专家时,主题标签、领域标签关联character_tag_map表
List<CharacterTagMap> mapList = getTagMap(characterBasicInfo);
if(mapList!=null && mapList.size()>0){
characterTagMapService.saveBatch(mapList);
}
}catch (Exception e){
log.error("新增专家===主题标签、领域标签关联character_tag_map表失败,异常:{}",e.toString());
}
Boolean res = this.save(characterBasicInfo);
return Result.OK(res);
......@@ -280,10 +292,87 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
@Override
public Result<?> edit(CharacterBasicInfo characterBasicInfo) {
characterBasicInfo.setUpdateTime(new Date());
try{
log.info("编辑专家===开始====主题标签、领域标签关联character_tag_map表");
//编辑专家时,主题标签、领域标签关联character_tag_map表
List<CharacterTagMap> sourceList = getTagMap(characterBasicInfo);
if(sourceList!=null && sourceList.size()>0){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("character_uid",characterBasicInfo.getUid());
List<CharacterTagMap> targetList = characterTagMapService.list(queryWrapper);
syncCharacterTagMaps(sourceList,targetList);
log.info("编辑专家===开始====targetList数量:{}}",targetList.size());
if(targetList!=null && targetList.size()>0){
characterTagMapService.saveOrUpdateBatch(targetList);
}
}
}catch (Exception e){
log.error("编辑专家===主题标签、领域标签关联character_tag_map表失败,异常:{}",e.toString());
}
Boolean res = this.updateById(characterBasicInfo);
return Result.OK(res);
}
public List<CharacterTagMap> getTagMap(CharacterBasicInfo characterBasicInfo) {
List<SysDictItem> sysDictItemsKeyword = JSON.parseArray(remoteSystemService.sysDictItemList("ai_character_keyword"),SysDictItem.class);
List<SysDictItem> sysDictItemsArea = JSON.parseArray(remoteSystemService.sysDictItemList("ai_character_area"),SysDictItem.class);
log.info("ai_character_keyword数量:{}",sysDictItemsKeyword.size());
log.info("ai_character_area数量:{}",sysDictItemsArea.size());
List<CharacterTagMap> mapList = new ArrayList<>();
if(StringUtils.isNotBlank(characterBasicInfo.getTagId())){
for(String tagId:Arrays.asList(characterBasicInfo.getTagId().split(","))){
SysDictItem targetItemKeyword = sysDictItemsKeyword.stream()
.filter(item -> Objects.equals(item.getId(), tagId))
.findFirst()
.orElse(null);
if (targetItemKeyword != null) {
CharacterTagMap map = new CharacterTagMap();
map.setCharacterUid(characterBasicInfo.getUid());
map.setTagId(targetItemKeyword.getId());
map.setTagName(targetItemKeyword.getItemText());
map.setTagType("ai_character_keyword");
map.setScore(new BigDecimal("10.0"));//默认分数
map.setCreateTime(new Date());
mapList.add(map);
}
SysDictItem targetItemArea = sysDictItemsArea.stream()
.filter(item -> Objects.equals(item.getId(), tagId))
.findFirst()
.orElse(null);
if (targetItemArea != null) {
CharacterTagMap map = new CharacterTagMap();
map.setCharacterUid(characterBasicInfo.getUid());
map.setTagId(targetItemArea.getId());
map.setTagName(targetItemArea.getItemText());
map.setTagType("ai_character_area");
map.setScore(new BigDecimal("10.0"));//默认分数
map.setCreateTime(new Date());
mapList.add(map);
}
}
log.info("mapList数量:{}",mapList.size());
}
return mapList;
}
public static void syncCharacterTagMaps(List<CharacterTagMap> source, List<CharacterTagMap> target) {
// 1. 将source集合转换为以tagId为键的Map,便于快速查找
Map<String, CharacterTagMap> sourceMap = source.stream()
.collect(Collectors.toMap(CharacterTagMap::getTagId, item -> item));
// 2. 遍历target集合,删除source中不存在的记录
target.removeIf(item -> !sourceMap.containsKey(item.getTagId()));
// 3. 遍历source集合,将target中不存在的记录添加进去
for (CharacterTagMap item : source) {
boolean exists = target.stream()
.anyMatch(t -> t.getTagId().equals(item.getTagId()));
if (!exists) {
target.add(item);
}
}
}
@Override
public Boolean del(String id) {
List<String> ids = Arrays.asList(id.split(","));
......
......@@ -52,4 +52,9 @@ public class BasicInfoListVo {
* 标签信息集合
*/
private List<LabelVO> labelList;
//启停状态 1启 0停
private Long status;
//审核状态 -1: 黑名单 0:未审核 1:暂定 2:通过
private String auditStatus;
}
......@@ -84,6 +84,12 @@
AND a.tag_id like '%${item}%'
</foreach>
</if>
<if test="status != null">
AND a.status = #{status}
</if>
<if test="auditStatus != null and auditStatus != ''">
AND a.audit_status = #{auditStatus}
</if>
</sql>
<select id="getListHasChild" resultType="com.zzsn.leaderbase.entity.CharacterBasicInfo">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论