提交 d881eb78 作者: ZhangJingKun

人物服务2.0开发

上级 5b76a2e0
...@@ -7,9 +7,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -7,9 +7,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.kafka.annotation.EnableKafka; import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication @SpringBootApplication
@EnableAsync @EnableAsync
@EnableScheduling
@MapperScan(value = {"com.zzsn.leaderbase.mapper*"}) @MapperScan(value = {"com.zzsn.leaderbase.mapper*"})
@EnableKafka @EnableKafka
public class LeaderBaseApplication { public class LeaderBaseApplication {
......
package com.zzsn.leaderbase.config;
import com.zzsn.leaderbase.service.DealLeaderDataService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
@Slf4j
@Component
public class JobExecutor {
@Autowired
DealLeaderDataService dealLeaderDataService;
@Async
@Scheduled(cron = "0 43 17 * * ? ")
public void task(){
log.info("------数据抽取定时任务启动------");
try {
dealLeaderDataService.getData();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.zzsn.leaderbase.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Service
@Slf4j
public class MyApplicationRunner {
@PostConstruct
public void pot(){
log.info("----------- PostConstruct is running ---------------");
}
@Bean
public ApplicationRunner applicationRunner(){
return (ApplicationArguments args)->{
log.info("-----------------------ApplicationRunner is running-------------------------");
// detailChongFu.group();
};
}
@Bean
public ApplicationRunner applicationRunner2(){
return new ApplicationRunner() {
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("-----------------------ApplicationRunner2 is running-------------------------");
}
};
}
/**所有的ApplicationRunner运行完毕之后才会开始运行CommandLineRunner*/
@Bean
public CommandLineRunner commandLineRunner(){
return (String... args)->{
log.info("-----------------------CommandLineRunner is end-------------------------");
};
}
@Bean
public ApplicationRunner applicationRunner3(){
return (ApplicationArguments args)->{
log.info("-----------------------ApplicationRunner3 is running-------------------------");
};
}
}
...@@ -22,14 +22,14 @@ public class TaskExecutor implements CommandLineRunner { ...@@ -22,14 +22,14 @@ public class TaskExecutor implements CommandLineRunner {
private DealLeaderDataService dealLeaderDataService; private DealLeaderDataService dealLeaderDataService;
@Override @Override
public void run(String... args)throws Exception { public void run(String... args)throws Exception {
scheduledExecutorService.scheduleAtFixedRate(()->{ // scheduledExecutorService.scheduleAtFixedRate(()->{
try { // try {
dealLeaderDataService.getData(); // dealLeaderDataService.getData();
} catch (IOException e) { // } catch (IOException e) {
e.printStackTrace(); // e.printStackTrace();
} // }
},5,PERIOD, TimeUnit.SECONDS); // },5,PERIOD, TimeUnit.SECONDS);
//
log.info("采集资讯抽取定时任务启动成功!{}---{}执行一次",PERIOD,TimeUnit.SECONDS); // log.info("采集资讯抽取定时任务启动成功!{}---{}执行一次",PERIOD,TimeUnit.SECONDS);
} }
} }
package com.zzsn.leaderbase.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.util.SortUtil;
import com.zzsn.leaderbase.vo.BasicInfoListVo;
import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/api/character/basic")
public class CharacterBasicInfoController {
@Autowired
CharacterBasicInfoService characterBasicInfoService;
/**
* 资讯抽取人物信息分页查询
* 人物审核列表
* @param
* @return
*/
@PostMapping("/list")
public Result<?> getList(@RequestBody BasicInfoListVo basicInfoListVo){
log.info("人物管理列表:{}", basicInfoListVo);
Integer office = basicInfoListVo.getPageSize() * (basicInfoListVo.getPageNo() - 1);
basicInfoListVo.setOffset(office);
basicInfoListVo.setColumn(SortUtil.humpToLine(basicInfoListVo.getColumn()));
IPage page = characterBasicInfoService.getList(basicInfoListVo);
return Result.OK(page);
}
@GetMapping("/getById")
public Result<?> getById(@RequestParam(name="id",required=true) String id){
log.info("人物审核根据人物id查询:{}", id);
CharacterBasicInfo info = characterBasicInfoService.getOneById(id);
return Result.OK(info);
}
/**
* 根据姓名查询 疑似人物查询
* @param name
* @return
*/
@GetMapping("/getListByName")
public Result<?> getListByName(@RequestParam(name="name",required=true) String name){
log.info("根据人物名称查询疑似人物:{}", name);
List<CharacterBasicInfo> list = characterBasicInfoService.getListByName(name);
return Result.OK(list);
}
/**
* 新增人物
*/
@PostMapping("/add")
public Result<?> add(@RequestBody CharacterBasicInfo characterBasicInfo){
log.info("新增人物:{}",characterBasicInfo);
return characterBasicInfoService.add(characterBasicInfo);
}
/**
* 修改人物
*/
@PostMapping("/edit")
public Result<?> edit(@RequestBody CharacterBasicInfo characterBasicInfo){
log.info("新增人物:{}",characterBasicInfo);
String id = characterBasicInfo.getId();
if(id == null || id.length() == 0)
return Result.error("人物id不能为空");
return characterBasicInfoService.edit(characterBasicInfo);
}
/**
* 根据id删除人物
* @param id
* @return
*/
@GetMapping("/del")
public Result<?> del(@RequestParam(name="id",required=true) String id){
log.info("根据id删除人物:{}", id);
Boolean res = characterBasicInfoService.del(id);
return Result.OK(res);
}
/**
* 根据uid查询人物的历任职务
* @param uid
* @return
*/
@GetMapping("/getPreviousDuty")
public Result<?> getPreviousDuty(@RequestParam(name="uid",required=true) String uid){
log.info("根据uid查询人物的历任职务:{}",uid);
List<CharacterBasicInfo> list = characterBasicInfoService.getPreviousDuty(uid);
return Result.OK(list);
}
/**
* 关联
* @param characterBasicInfo
* @return
*/
@PostMapping("/correlation")
public Result<?> correlation(@RequestBody CharacterBasicInfo characterBasicInfo){
log.info("关联:{}", characterBasicInfo.getId());
return characterBasicInfoService.correlation(characterBasicInfo);
}
/**
* 修改关联人物
* @param characterBasicInfo
* @return
*/
@PostMapping("/correlationEdit")
public Result<?> correlationEdit(@RequestBody CharacterBasicInfo characterBasicInfo){
log.info("修改关联人物:{}", characterBasicInfo.getId());
return characterBasicInfoService.correlationEdit(characterBasicInfo);
}
}
package com.zzsn.leaderbase.controller;
import com.zzsn.leaderbase.entity.CharacterExtractInfo;
import com.zzsn.leaderbase.service.CharacterExtractInfoService;
import com.zzsn.leaderbase.util.SortUtil;
import com.zzsn.leaderbase.vo.CheckVo;
import com.zzsn.leaderbase.vo.ExtractListVo;
import com.zzsn.leaderbase.vo.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 审核
*/
@RestController
@RequestMapping("/api/extract")
@Slf4j
public class CharacterExtractInfoController {
@Autowired
CharacterExtractInfoService characterExtractInfoService;
/**
* 资讯抽取人物信息分页查询
* 人物审核列表
* @param
* @return
*/
@PostMapping("/list")
public Result<?> getList(@RequestBody ExtractListVo extractListVo){
log.info("人物审核列表:{}", extractListVo);
Integer office = extractListVo.getPageSize() * (extractListVo.getPageNo() - 1);
extractListVo.setOffset(office);
extractListVo.setColumn(SortUtil.humpToLine(extractListVo.getColumn()));
return characterExtractInfoService.getList(extractListVo);
}
/**
* 根据人物id主键删除
* @param id
* @return
*/
@GetMapping("/del")
public Result<?> del(@RequestParam(name="id",required=true) String id){
log.info("人物审核根据人物id删除:{}", id);
return characterExtractInfoService.del(id);
}
/**
* 根据id 查询
* @param id
* @return
*/
@GetMapping("/getById")
public Result<?> getById(@RequestParam(name="id",required=true) String id){
log.info("人物审核根据人物id查询:{}", id);
CharacterExtractInfo info = characterExtractInfoService.getById(id);
return Result.OK(info);
}
/**
* 新增 + 审核
* @param checkVo
* @return
*/
@PostMapping("/checkNewlyAdded")
public Result<?> checkNewlyAdded(@RequestBody CheckVo checkVo){
log.info("新增 + 审核 {}",checkVo);
//参数校验
if(StringUtils.isEmpty(checkVo.getExtractId())){
return Result.error("extractId 不能为空!");
}
Result<?> result = characterExtractInfoService.checkNewlyAdded(checkVo);
return result;
}
/**
* 合并 + 审核
* @param checkVo
* @return
*/
@PostMapping("/checkMerge")
public Result<?> checkMerge(@RequestBody CheckVo checkVo){
log.info("合并 + 审核 {}",checkVo);
//参数校验
if(StringUtils.isEmpty(checkVo.getExtractId())){
return Result.error("extractId 不能为空!");
}
if(StringUtils.isEmpty(checkVo.getSuspectedId())){
return Result.error("suspectedId 不能为空!");
}
Result<?> result = characterExtractInfoService.checkMerge(checkVo);
return result;
}
}
package com.zzsn.leaderbase.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/6 11:06
* @Content:
*/
@RestController
@RequestMapping("/api")
@Slf4j
public class LeaderBaseController {
@GetMapping("/test")
public String test(){
log.info("hello!");
return "hello!";
}
}
...@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; ...@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 人物基本信息表 * 人物基本信息表
...@@ -45,27 +46,51 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> { ...@@ -45,27 +46,51 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
private String headSculpture; private String headSculpture;
//个人简历 简介 //个人简历 简介
private String biographicalNotes; private String biographicalNotes;
//分类类型:领导人、专家、企业高管 //分类类型(1-领导人、2-专家、3-企业高管)
private String category; private String category;
//任职经历,每一条任职经历用 \n(换行)分割 //类别id 和左侧树进行关联
private String awardRecords; private String typeId;
//社会兼职,每一条用 \n(换行) 分割 //部门 单位 企业
private String partTimeJob; private String department;
//研究领域 //职务
private String researchField; private String duty;
//荣誉评价 //部门 单位 企业(原)
private String evaluate; private String departmentOriginal;
//职务(原)
private String dutyOriginal;
//任职时间
private String takeOfficeTime;
//任职结束时间
private String takeOfficeTimeEnd;
//任职状态 历任 现任
private String takeOfficeStatus;
//变更描述
private String updateDesc;
//关联资讯索引名称
private String articleIndex;
//关联资讯id
private String articleId;
//资讯标题
private String articleTitle;
//资讯来源
private String articleOrigin;
//关联资讯抽取表id
private String extractId;
//标签id
private String tagId;
//标签名称
private String tagName;
//是否主条目(1-主条目;0-非主条目)
private Integer mainEntry;
//创建人 //创建人
private String createBy; private String createBy;
//创建时间 //创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
//更新人 //更新人
private String updateBy; private String updateBy;
//更新时间 //更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 人物基本信息修改历史记录表
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("character_basic_info_history")
public class CharacterBasicInfoHistory extends Model<CharacterBasicInfoHistory> {
private static final long serialVersionUID = 1L;
//主键
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
//人物id
private String uid;
//人物名称
private String name;
//性别
private String sex;
//出生地
private String birthplace;
//出生日期
private String birthday;
//籍贯
private String nativePlace;
//毕业院校
private String school;
//专业
private String speciality;
//学历
private String education;
//职业
private String expertOccupation;
//头像
private String headSculpture;
//个人简历 简介
private String biographicalNotes;
// 分类类型:领导人、专家、企业高管
private String category;
// 任职经历,每一条任职经历用 (换行)分割
private String awardRecords;
// 社会兼职,每一条用 (换行) 分割
private String partTimeJob;
//研究领域
private String researchField;
//荣誉评价
private String evaluate;
//创建人
private String createBy;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
//启停状态 1启 0停
private Long status;
}
...@@ -91,7 +91,7 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure ...@@ -91,7 +91,7 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure
private String hasChild; private String hasChild;
/** /**
* 分类类型: 领导人 专家 企业高管 * 分类类型(1-领导人、2-专家、3-企业高管
*/ */
@TableField("category") @TableField("category")
private String category; private String category;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@Builder
@TableName("character_extract_info")
public class CharacterExtractInfo {
//主键
private String id;
//人物名称
private String name;
//性别
private String sex;
//部门 单位 企业(现)
private String department;
//职务(现)
private String duty;
//部门 单位 企业(原)
private String departmentOriginal;
//职务(原)
private String dutyOriginal;
//变更描述
private String updateDesc;
//关联资讯索引名称
private String articleIndex;
//关联资讯id
private String articleId;
//资讯标题
private String articleTitle;
//资讯来源
private String articleOrigin;
//审核状态 1已审核 0未审核
private Integer checkStatus;
//创建时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory;
import org.apache.ibatis.annotations.Mapper;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:01
* @Content:
*/
@Mapper
public interface CharacterBasicInfoHistoryMapper extends BaseMapper<CharacterBasicInfoHistory> {
}
...@@ -2,6 +2,7 @@ package com.zzsn.leaderbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterBasicInfo; import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.vo.BasicInfoListVo;
import com.zzsn.leaderbase.vo.CharacterListVo; import com.zzsn.leaderbase.vo.CharacterListVo;
import com.zzsn.leaderbase.vo.CharacterVo; import com.zzsn.leaderbase.vo.CharacterVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -40,28 +41,18 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo> ...@@ -40,28 +41,18 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
"where a.id = #{id}") "where a.id = #{id}")
CharacterVo getById(String id); CharacterVo getById(String id);
List<CharacterVo> getList(CharacterListVo characterListVo); List<CharacterBasicInfo> getList(BasicInfoListVo basicInfoListVo);
Integer getCount(CharacterListVo characterListVo); Integer getListCount(BasicInfoListVo basicInfoListVo);
List<CharacterVo> checkList(String articleId,String checkResult); List<CharacterVo> checkList(String articleId,String checkResult);
@Select("select " + @Select("select * " +
"a.id,a.uid,a.name,a.sex,a.birthplace,a.birthday,a.native_place,a.school,a.speciality,a.education,a.expert_occupation,a.head_sculpture,a.biographical_notes,a.category,a.award_records,a.part_time_job,a.research_field,a.evaluate,a.status," + "from character_basic_info a " +
"b.type_id,c.type_name,b.company_original,b.department_original,b.duty_original,b.company,b.department,b.duty,b.take_office_time,b.take_office_time_end,b.take_office_status,b.change_url,b.duties_update_time,b.duties_update_reason,b.check_status,b.check_result,b.article_id,b.article_index,b.update_desc,b.original_id,b.new_id,b.merge_status,a.create_by,a.create_time,a.update_by,a.update_time " +
"from character_basic_info a " +
"LEFT JOIN character_change_info b " +
"on a.id = b.id " +
"LEFT JOIN character_category_structure c " +
"ON b.type_id = c.id " +
"where 1=1 " + "where 1=1 " +
"and (b.status = 1 or b.status IS NULL)" + "and main_entry = 1 " +
"and b.check_result = 1 " + "and a.name = #{name} ")
"and a.name = #{name} " + List<CharacterBasicInfo> getListByName(String name);
"and a.id != #{id} " +
"and b.article_id != #{articleId} " +
"and a.uid IS NOT NULL and a.uid != '' ")
List<CharacterVo> getListByName(String id, String name, String articleId);
@Select("select count(1) " + @Select("select count(1) " +
"from character_basic_info a " + "from character_basic_info a " +
...@@ -75,19 +66,13 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo> ...@@ -75,19 +66,13 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
Integer deduplication(String duty, String company, String name); Integer deduplication(String duty, String company, String name);
@Select("select " + @Select("select " +
"a.id,a.uid,a.name,a.sex,a.birthplace,a.birthday,a.native_place,a.school,a.speciality,a.education,a.expert_occupation,a.head_sculpture,a.biographical_notes,a.category,a.award_records,a.part_time_job,a.research_field,a.evaluate,a.status," + "*" +
"b.type_id,c.type_name,b.company_original,b.department_original,b.duty_original,b.company,b.department,b.duty,b.take_office_time,b.take_office_time_end,b.take_office_status,b.change_url,b.duties_update_time,b.duties_update_reason,b.check_status,b.check_result,b.article_id,b.article_index,b.update_desc,b.original_id,b.new_id,b.merge_status,a.create_by,a.create_time,a.update_by,a.update_time, " + "from character_basic_info " +
"COALESCE(b.take_office_time, b.create_time) AS order_time " +
"from character_basic_info a " +
"LEFT JOIN character_change_info b " +
"on a.id = b.id " +
"LEFT JOIN character_category_structure c " +
"ON b.type_id = c.id " +
"where 1=1 " + "where 1=1 " +
"and b.status in (0,2) " + "and uid = #{uid} " +
"and a.uid = #{uid} " + "and main_entry = 0 " +
"order by FIELD(b.take_office_status, '现任', '历任') ASC, order_time desc") "order by FIELD(take_office_status, '现任', '历任') ASC, create_time desc")
List<CharacterVo> getPreviousDuty(String uid); List<CharacterBasicInfo> getPreviousDuty(String uid);
@Select("select " + @Select("select " +
"id " + "id " +
......
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterExtractInfo;
import com.zzsn.leaderbase.vo.ExtractListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface CharacterExtractInfoMapper extends BaseMapper<CharacterExtractInfo> {
@Select("select count(1) " +
"from character_extract_info a " +
"where 1=1 " +
"and a.duty = #{duty} " +
"and a.department = #{department} " +
"and a.name = #{name}"
)
Integer deduplication(String duty, String department, String name);
List<CharacterExtractInfo> getList(ExtractListVo extractListVo);
Integer getListCount(ExtractListVo extractListVo);
}
package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 16:59
* @Content:
*/
public interface CharacterBasicInfoHistoryService extends IService<CharacterBasicInfoHistory> {
}
package com.zzsn.leaderbase.service; package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterBasicInfo; import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.vo.BasicInfoListVo;
import com.zzsn.leaderbase.vo.CharacterListVo; import com.zzsn.leaderbase.vo.CharacterListVo;
import com.zzsn.leaderbase.vo.CharacterVo; import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.Result;
import java.util.List; import java.util.List;
...@@ -17,23 +20,31 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo> ...@@ -17,23 +20,31 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo>
CharacterVo getByUid(String uid); CharacterVo getByUid(String uid);
CharacterVo getById(String id); CharacterBasicInfo getOneById(String id);
List<CharacterVo> getList(CharacterListVo characterListVo); IPage<CharacterBasicInfo> getList(BasicInfoListVo basicInfoListVo);
Integer getCount(CharacterListVo characterListVo);
List<CharacterVo> checkList(String articleId,String checkResult); List<CharacterVo> checkList(String articleId,String checkResult);
List<CharacterVo> getListByName(String id, String name, String articleId); List<CharacterBasicInfo> getListByName(String name);
Integer deduplication(String duty, String company, String name); Integer deduplication(String duty, String company, String name);
List<CharacterBasicInfo> getData(String time); List<CharacterBasicInfo> getData(String time);
List<CharacterVo> getPreviousDuty(String uid); List<CharacterBasicInfo> getPreviousDuty(String uid);
List<String> getCorrelationByUid(String uid); List<String> getCorrelationByUid(String uid);
List<CharacterVo> getByOriginalId(String id); List<CharacterVo> getByOriginalId(String id);
Result<?> add(CharacterBasicInfo characterBasicInfo);
Result<?> edit(CharacterBasicInfo characterBasicInfo);
Boolean del(String id);
Result<?> correlation(CharacterBasicInfo characterBasicInfo);
Result<?> correlationEdit(CharacterBasicInfo characterBasicInfo);
} }
package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterExtractInfo;
import com.zzsn.leaderbase.vo.CheckVo;
import com.zzsn.leaderbase.vo.ExtractListVo;
import com.zzsn.leaderbase.vo.Result;
import java.util.List;
public interface CharacterExtractInfoService extends IService<CharacterExtractInfo> {
/**
* 根据 根据职位 工作单位 姓名去重
* curStation, curWorkPlace, person
* duty, company, name
*
* 有重复数据时返回true
* 没有重复数据时返回false
* @param curStation
* @param curWorkPlace
* @param person
* @return
*/
boolean deduplication(String curStation, String curWorkPlace, String person);
Result<?> addBulk (List<CharacterExtractInfo> list);
Result<?> getList(ExtractListVo extractListVo);
Result<?> del(String id);
Result<?> checkNewlyAdded(CheckVo checkVo);
Result<?> checkMerge(CheckVo checkVo);
}
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory;
import com.zzsn.leaderbase.mapper.CharacterBasicInfoHistoryMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoHistoryService;
import org.springframework.stereotype.Service;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 16:59
* @Content: 人物基本信息历史修改记录表
* 新增和所有修改都记录
*/
@Service
public class CharacterBasicInfoHistoryServiceImpl extends ServiceImpl<CharacterBasicInfoHistoryMapper, CharacterBasicInfoHistory> implements CharacterBasicInfoHistoryService {
}
package com.zzsn.leaderbase.service.impl; package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterBasicInfo; import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper; import com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoService; import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.IGeneratorIdService;
import com.zzsn.leaderbase.vo.BasicInfoListVo;
import com.zzsn.leaderbase.vo.CharacterListVo; import com.zzsn.leaderbase.vo.CharacterListVo;
import com.zzsn.leaderbase.vo.CharacterVo; import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.Result;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -22,44 +29,51 @@ import java.util.List; ...@@ -22,44 +29,51 @@ import java.util.List;
@Service @Service
public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInfoMapper, CharacterBasicInfo> implements CharacterBasicInfoService { public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInfoMapper, CharacterBasicInfo> implements CharacterBasicInfoService {
//生成id
@Autowired @Autowired
CharacterBasicInfoMapper characterBasicInfoMapper; IGeneratorIdService generatorIdService;
@Override @Override
public CharacterVo getByUid(String uid) { public CharacterVo getByUid(String uid) {
return baseMapper.getByUid(uid);
return characterBasicInfoMapper.getByUid(uid);
} }
@Override @Override
public CharacterVo getById(String id) { public CharacterBasicInfo getOneById(String id) {
return characterBasicInfoMapper.getById(id); CharacterBasicInfo basicInfo = this.getById(id);
return basicInfo;
} }
@Override @Override
public List<CharacterVo> getList(CharacterListVo characterListVo) { public IPage<CharacterBasicInfo> getList(BasicInfoListVo basicInfoListVo) {
List<CharacterVo> list = characterBasicInfoMapper.getList(characterListVo); List<CharacterBasicInfo> list = baseMapper.getList(basicInfoListVo);
return list; Integer total = baseMapper.getListCount(basicInfoListVo);
}
IPage page = new Page();
page.setRecords(list);
page.setTotal(total);
Integer pageNo = basicInfoListVo.getPageNo();
Integer pageSize= basicInfoListVo.getPageSize();
page.setCurrent(pageNo);
page.setSize(pageSize);
return page;
@Override
public Integer getCount(CharacterListVo characterListVo) {
return characterBasicInfoMapper.getCount(characterListVo);
} }
@Override @Override
public List<CharacterVo> checkList(String articleId, String checkResult) { public List<CharacterVo> checkList(String articleId, String checkResult) {
return characterBasicInfoMapper.checkList(articleId,checkResult); return baseMapper.checkList(articleId,checkResult);
} }
@Override @Override
public List<CharacterVo> getListByName(String id, String name, String articleId) { public List<CharacterBasicInfo> getListByName(String name) {
return characterBasicInfoMapper.getListByName(id, name, articleId); return baseMapper.getListByName(name);
} }
@Override @Override
public Integer deduplication(String duty, String company, String name) { public Integer deduplication(String duty, String company, String name) {
Integer count = characterBasicInfoMapper.deduplication(duty, company, name); Integer count = baseMapper.deduplication(duty, company, name);
return count; return count;
} }
...@@ -71,22 +85,74 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf ...@@ -71,22 +85,74 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
} }
lambdaQuery.orderByAsc(CharacterBasicInfo::getCreateTime); lambdaQuery.orderByAsc(CharacterBasicInfo::getCreateTime);
lambdaQuery.select(CharacterBasicInfo::getUid,CharacterBasicInfo::getName); lambdaQuery.select(CharacterBasicInfo::getUid,CharacterBasicInfo::getName);
List<CharacterBasicInfo> list = characterBasicInfoMapper.selectList(lambdaQuery); List<CharacterBasicInfo> list = baseMapper.selectList(lambdaQuery);
return list; return list;
} }
@Override @Override
public List<CharacterVo> getPreviousDuty(String uid) { public List<CharacterBasicInfo> getPreviousDuty(String uid) {
return characterBasicInfoMapper.getPreviousDuty(uid); return baseMapper.getPreviousDuty(uid);
} }
@Override @Override
public List<String> getCorrelationByUid(String uid) { public List<String> getCorrelationByUid(String uid) {
return characterBasicInfoMapper.getCorrelationByUid(uid); return baseMapper.getCorrelationByUid(uid);
} }
@Override @Override
public List<CharacterVo> getByOriginalId(String id) { public List<CharacterVo> getByOriginalId(String id) {
return characterBasicInfoMapper.getByOriginalId(id); return baseMapper.getByOriginalId(id);
}
@Override
public Result<?> add(CharacterBasicInfo characterBasicInfo) {
String id = Long.toString(generatorIdService.getOrderId());
characterBasicInfo.setId(id);
characterBasicInfo.setCreateTime(new Date());
String uid = generatorIdService.getIdNo();
characterBasicInfo.setUid(uid);
characterBasicInfo.setMainEntry(1);
Boolean res = this.save(characterBasicInfo);
return Result.OK(res);
}
@Override
public Result<?> edit(CharacterBasicInfo characterBasicInfo) {
characterBasicInfo.setUpdateTime(new Date());
Boolean res = this.updateById(characterBasicInfo);
return Result.OK(res);
}
@Override
public Boolean del(String id) {
List<String> ids = Arrays.asList(id.split(","));
return this.removeByIds(ids);
}
@Override
public Result<?> correlation(CharacterBasicInfo characterBasicInfo) {
//传过来的id是操作的数据id
String id = characterBasicInfo.getId();
if(id == null || "".equals(id))
return Result.error("id不能为空!");
String newId = Long.toString(generatorIdService.getOrderId());
characterBasicInfo.setId(newId);
characterBasicInfo.setMainEntry(0);
characterBasicInfo.setCategory("1");
characterBasicInfo.setCreateTime(new Date());
Boolean res = this.save(characterBasicInfo);
return Result.OK(res);
}
@Override
public Result<?> correlationEdit(CharacterBasicInfo characterBasicInfo) {
characterBasicInfo.setUpdateTime(new Date());
Boolean res = this.updateById(characterBasicInfo);
return Result.OK(res);
} }
} }
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.CharacterExtractInfo;
import com.zzsn.leaderbase.mapper.CharacterExtractInfoMapper;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.CharacterExtractInfoService;
import com.zzsn.leaderbase.service.IGeneratorIdService;
import com.zzsn.leaderbase.vo.CheckVo;
import com.zzsn.leaderbase.vo.ExtractListVo;
import com.zzsn.leaderbase.vo.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Service
public class CharacterExtractInfoServiceImpl extends ServiceImpl<CharacterExtractInfoMapper, CharacterExtractInfo> implements CharacterExtractInfoService {
//生成id
@Autowired
IGeneratorIdService generatorIdService;
@Autowired
CharacterBasicInfoService characterBasicInfoService;
/**
* 数据重复返回true 数据不重复,返回false
* @param curStation
* @param department
* @param person
* @return
*/
@Override
public boolean deduplication(String curStation, String department, String person) {
Integer count = baseMapper.deduplication(curStation, department, person);
if(count == 0){ return false; }
else { return true; }
}
@Override
public Result<?> addBulk(List<CharacterExtractInfo> list) {
this.saveBatch(list);
return Result.OK();
}
@Override
public Result<?> getList(ExtractListVo extractListVo) {
List<CharacterExtractInfo> list = baseMapper.getList(extractListVo);
Integer total = baseMapper.getListCount(extractListVo);
IPage page = new Page();
page.setRecords(list);
page.setTotal(total);
Integer pageNo = extractListVo.getPageNo();
Integer pageSize= extractListVo.getPageSize();
page.setCurrent(pageNo);
page.setSize(pageSize);
return Result.OK(page);
}
@Override
public Result<?> del(String id) {
List<String> ids = Arrays.asList(id.split(","));
return Result.OK(this.removeByIds(ids));
}
@Override
public Result<?> checkNewlyAdded(CheckVo checkVo) {
//查询审核人物信息
String extractId = checkVo.getExtractId();
CharacterExtractInfo extractInfo = this.getById(extractId);
//保存人物信息
CharacterBasicInfo character = checkVo.getCharacter();
String id = Long.toString(generatorIdService.getOrderId());
character.setId(id);
character.setCreateTime(new Date());
String uid = generatorIdService.getIdNo();
character.setUid(uid);
character.setCategory("1");//审核人物默认入领导人
character.setMainEntry(1);
character.setArticleId(extractInfo.getArticleId());
character.setArticleIndex(extractInfo.getArticleIndex());
character.setArticleTitle(extractInfo.getArticleTitle());
character.setArticleOrigin(extractInfo.getArticleOrigin());
character.setUpdateDesc(extractInfo.getUpdateDesc());
Boolean characterRes = characterBasicInfoService.save(character);
if(!characterRes)
return Result.error("人物信息保存失败");
//修改审核状态
UpdateWrapper<CharacterExtractInfo> extractWrapper = new UpdateWrapper<>();
extractWrapper.eq("id", extractId)
.set("check_status", 1);
Boolean updateCheck = this.update(extractWrapper);
if(!updateCheck)
return Result.error("审核状态更改失败!");
return Result.OK();
}
@Override
public Result<?> checkMerge(CheckVo checkVo) {
//查询审核人物信息
String extractId = checkVo.getExtractId();
CharacterExtractInfo extractInfo = this.getById(extractId);
//查询疑似人物信息
String suspectedId = checkVo.getSuspectedId();
CharacterBasicInfo suspectedInfo = characterBasicInfoService.getById(suspectedId);
//保存人物信息
CharacterBasicInfo character = checkVo.getCharacter();
String id = Long.toString(generatorIdService.getOrderId());
character.setId(id);
character.setCreateTime(new Date());
String uid = suspectedInfo.getUid();
character.setUid(uid);
character.setCategory("1");//审核人物默认入领导人
character.setMainEntry(1);
character.setArticleId(extractInfo.getArticleId());
character.setArticleIndex(extractInfo.getArticleIndex());
character.setArticleTitle(extractInfo.getArticleTitle());
character.setArticleOrigin(extractInfo.getArticleOrigin());
character.setUpdateDesc(extractInfo.getUpdateDesc());
Boolean characterRes = characterBasicInfoService.save(character);
if(!characterRes)
return Result.error("人物信息保存失败");
//修改审核状态
UpdateWrapper<CharacterExtractInfo> extractWrapper = new UpdateWrapper<>();
extractWrapper.eq("id", extractId)
.set("check_status", 1);
Boolean updateCheck = this.update(extractWrapper);
if(!updateCheck)
return Result.error("审核状态更改失败!");
//人物信息为现任,则将该人物的原现任信息修改为历任
if("在职".equals(character.getTakeOfficeStatus())){
UpdateWrapper<CharacterBasicInfo> suspectedWrapper = new UpdateWrapper<>();
suspectedWrapper.eq("id", suspectedId)
.set("take_office_status", "历任")
.set("main_entry",0);
Boolean updateTask = characterBasicInfoService.update(suspectedWrapper);
if(!updateTask)
return Result.error("疑似人物任职状态更改失败!");
}
//批量修改同一人物的基本信息
UpdateWrapper<CharacterBasicInfo> uidWrapper = new UpdateWrapper<>();
uidWrapper.eq("uid", uid);
if(StringUtils.isNotEmpty(character.getName()))
uidWrapper.set("name", character.getName());
if(StringUtils.isNotEmpty(character.getSex()))
uidWrapper.set("sex", character.getSex());
if(StringUtils.isNotEmpty(character.getBirthplace()))
uidWrapper.set("birthplace", character.getBirthplace());
if(StringUtils.isNotEmpty(character.getBirthday()))
uidWrapper.set("birthday", character.getBirthday());
if(StringUtils.isNotEmpty(character.getNativePlace()))
uidWrapper.set("native_place", character.getNativePlace());
if(StringUtils.isNotEmpty(character.getSchool()))
uidWrapper.set("school", character.getSchool());
if(StringUtils.isNotEmpty(character.getSpeciality()))
uidWrapper.set("speciality", character.getSpeciality());
if(StringUtils.isNotEmpty(character.getEducation()))
uidWrapper.set("education", character.getEducation());
if(StringUtils.isNotEmpty(character.getExpertOccupation()))
uidWrapper.set("expert_occupation", character.getExpertOccupation());
if(StringUtils.isNotEmpty(character.getHeadSculpture()))
uidWrapper.set("head_sculpture", character.getHeadSculpture());
if(StringUtils.isNotEmpty(character.getBiographicalNotes()))
uidWrapper.set("biographical_notes", character.getBiographicalNotes());
Boolean updateUid = characterBasicInfoService.update(uidWrapper);
if(!updateUid)
return Result.error("人物基本信息修改失败!");
return Result.OK();
}
}
...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; ...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.leaderbase.entity.CharacterBasicInfo; import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.CharacterBasicInfoHistory;
import com.zzsn.leaderbase.entity.CharacterChangeInfo; import com.zzsn.leaderbase.entity.CharacterChangeInfo;
import com.zzsn.leaderbase.entity.CharacterTagMap; import com.zzsn.leaderbase.entity.CharacterTagMap;
import com.zzsn.leaderbase.service.*; import com.zzsn.leaderbase.service.*;
...@@ -102,7 +101,6 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -102,7 +101,6 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
List<CharacterBasicInfo> characterBasicInfoList = new ArrayList<>(); List<CharacterBasicInfo> characterBasicInfoList = new ArrayList<>();
List<CharacterChangeInfo> characterChangeInfoList = new ArrayList<>(); List<CharacterChangeInfo> characterChangeInfoList = new ArrayList<>();
List<CharacterBasicInfoHistory> characterBasicInfoHistoryList = new ArrayList<>();
for (CharacterVo characterVo : list) { for (CharacterVo characterVo : list) {
String id = Long.toString(generatorIdService.getOrderId()); String id = Long.toString(generatorIdService.getOrderId());
characterVo.setId(id); characterVo.setId(id);
...@@ -118,10 +116,6 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -118,10 +116,6 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
BeanUtils.copyProperties(characterVo, characterChangeInfo); BeanUtils.copyProperties(characterVo, characterChangeInfo);
characterChangeInfoList.add(characterChangeInfo); characterChangeInfoList.add(characterChangeInfo);
// CharacterBasicInfoHistory characterBasicInfoHistory = new CharacterBasicInfoHistory();
// BeanUtils.copyProperties(characterBasicInfo, characterBasicInfoHistory);
// characterBasicInfoHistory.setId(null);
// characterBasicInfoHistoryList.add(characterBasicInfoHistory);
} }
characterBasicInfoService.saveBatch(characterBasicInfoList); characterBasicInfoService.saveBatch(characterBasicInfoList);
...@@ -138,7 +132,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -138,7 +132,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
@Override @Override
public Result<?> getById(String id) { public Result<?> getById(String id) {
CharacterVo characterVo = characterBasicInfoService.getById(id); CharacterVo characterVo = new CharacterVo();//characterBasicInfoService.getById(id);
if(characterVo == null) if(characterVo == null)
return Result.OK("未查询到人物信息",null); return Result.OK("未查询到人物信息",null);
...@@ -213,7 +207,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -213,7 +207,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
public Result<?> del(String id) { public Result<?> del(String id) {
//删除关联标签信息 //删除关联标签信息
CharacterVo vo = characterBasicInfoService.getById(id); CharacterVo vo = new CharacterVo();//characterBasicInfoService.getById(id);
if(vo != null && vo.getUid() != null){ if(vo != null && vo.getUid() != null){
characterTagMapService.delByUid(vo.getUid()); characterTagMapService.delByUid(vo.getUid());
} }
...@@ -228,11 +222,11 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -228,11 +222,11 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
IPage page = new Page(); IPage page = new Page();
//根据条件查询数据 //根据条件查询数据
List<CharacterVo> list = characterBasicInfoService.getList(characterListVo); List<CharacterVo> list = null; //characterBasicInfoService.getList(characterListVo);
page.setRecords(list); page.setRecords(list);
//查询总数 //查询总数
Integer total = characterBasicInfoService.getCount(characterListVo); Integer total = 0;//characterBasicInfoService.getCount(characterListVo);
page.setTotal(total); page.setTotal(total);
Integer pageNo = characterListVo.getPageNo(); Integer pageNo = characterListVo.getPageNo();
Integer pageSize= characterListVo.getPageSize(); Integer pageSize= characterListVo.getPageSize();
...@@ -289,7 +283,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -289,7 +283,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
@Override @Override
public Result<?> getListByName(String id, String name, String articleId) { public Result<?> getListByName(String id, String name, String articleId) {
List<CharacterVo> list = characterBasicInfoService.getListByName(id, name, articleId); List<CharacterVo> list = null; //characterBasicInfoService.getListByName(id, name, articleId);
return Result.OK(list); return Result.OK(list);
...@@ -333,7 +327,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -333,7 +327,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
if(mergeStatus == 4L){ if(mergeStatus == 4L){
this.del(vo.getId()); this.del(vo.getId());
CharacterVo cvo = characterBasicInfoService.getById(id); CharacterVo cvo = new CharacterVo();//characterBasicInfoService.getById(id);
if(list.size() <= 1 && StringUtils.isEmpty(cvo.getOriginalId())){ if(list.size() <= 1 && StringUtils.isEmpty(cvo.getOriginalId())){
cvo.setMergeStatus(0L); cvo.setMergeStatus(0L);
CharacterChangeInfo info = new CharacterChangeInfo(); CharacterChangeInfo info = new CharacterChangeInfo();
...@@ -357,7 +351,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -357,7 +351,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
.eq("id", vo.getId()); // 设置更新条件,这里以id作为更新条件 .eq("id", vo.getId()); // 设置更新条件,这里以id作为更新条件
characterChangeInfoService.update(updateWrapper); characterChangeInfoService.update(updateWrapper);
CharacterVo cvo = characterBasicInfoService.getById(id); CharacterVo cvo = new CharacterVo();//characterBasicInfoService.getById(id);
if(list.size() <= 1){ if(list.size() <= 1){
cvo.setMergeStatus(0L); cvo.setMergeStatus(0L);
CharacterChangeInfo info = new CharacterChangeInfo(); CharacterChangeInfo info = new CharacterChangeInfo();
...@@ -368,7 +362,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -368,7 +362,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
} }
} else { } else {
//根据id查询数据 //根据id查询数据
CharacterVo characterVo = characterBasicInfoService.getById(id); CharacterVo characterVo = new CharacterVo();//characterBasicInfoService.getById(id);
if(characterVo == null){ if(characterVo == null){
return Result.error("根据id未查询到人物信息"); return Result.error("根据id未查询到人物信息");
} }
...@@ -419,7 +413,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -419,7 +413,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
String id = characterVo.getId(); String id = characterVo.getId();
if(id == null || "".equals(id)) if(id == null || "".equals(id))
return Result.error("id不能为空!"); return Result.error("id不能为空!");
CharacterVo vo = characterBasicInfoService.getById(id); CharacterVo vo = new CharacterVo();//characterBasicInfoService.getById(id);
if(characterVo == null) if(characterVo == null)
return Result.error("人物不存在!"); return Result.error("人物不存在!");
...@@ -478,7 +472,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -478,7 +472,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
//合并人物,若uid为空则从数据库查询 //合并人物,若uid为空则从数据库查询
String uid = characterVo.getUid(); String uid = characterVo.getUid();
if(uid == null || uid.length() == 0){ if(uid == null || uid.length() == 0){
CharacterVo originalCharacter = characterBasicInfoService.getById(originalId); CharacterVo originalCharacter = new CharacterVo();//characterBasicInfoService.getById(originalId);
characterVo.setUid(originalCharacter.getUid()); characterVo.setUid(originalCharacter.getUid());
} }
characterVo.setOriginalId(originalId); characterVo.setOriginalId(originalId);
...@@ -554,7 +548,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -554,7 +548,7 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
private Result<?> mergeType3(String originalId, CharacterVo characterVo){ private Result<?> mergeType3(String originalId, CharacterVo characterVo){
//uid //uid
String uid = characterVo.getUid(); String uid = characterVo.getUid();
CharacterVo originalCharacter = characterBasicInfoService.getById(originalId); CharacterVo originalCharacter = new CharacterVo();//characterBasicInfoService.getById(originalId);
if(uid == null || uid.length() == 0){ if(uid == null || uid.length() == 0){
characterVo.setUid(originalCharacter.getUid()); characterVo.setUid(originalCharacter.getUid());
} }
......
package com.zzsn.leaderbase.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SortUtil {
/**
* 下划线转驼峰
* @param str
* @return
*/
public static String lineToHump(String str) {
if(str == null || str.length() == 0)
return "";
Pattern linePattern = Pattern.compile("_(\\w)");
str = str.toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* 驼峰转下划线
* @param str
* @return
*/
public static String humpToLine(String str) {
if(str == null || str.length() == 0)
return "";
Pattern humpPattern = Pattern.compile("[A-Z]");
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
}
package com.zzsn.leaderbase.vo;
import lombok.Data;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:54
* @Content:
*/
@Data
public class BasicInfoListVo {
//当前页码,默认值为1
private Integer pageNo = 1;
//分页偏移量 根据 pageNo 和 pageSize 计算得到
private Integer offset;
//每页数量,默认值为10
private Integer pageSize = 10;
//排序字段,多个排序字段用逗号分隔
private String column = "id";
//降序DESC 升序 ASC 默认为DESC
private String order = "DESC";
//关键词
private String keyword;
//人物名称
private String name;
//单位(现)
private String department;
//职务(现)
private String duty;
//分类类型(1-领导人、2-专家、3-企业高管)
private String category;
//类别 左侧树id
private String typeId;
//标签
private String tagId;
}
package com.zzsn.leaderbase.vo;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 人物基本信息表
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class CheckVo {
//人物信息
private CharacterBasicInfo character;
//审核的抽取人物id
private String extractId;
//疑似人物id
private String suspectedId;
}
package com.zzsn.leaderbase.vo;
import lombok.Data;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:54
* @Content:
*/
@Data
public class ExtractListVo {
//当前页码,默认值为1
private Integer pageNo = 1;
//分页偏移量 根据 pageNo 和 pageSize 计算得到
private Integer offset;
//每页数量,默认值为10
private Integer pageSize = 10;
//排序字段,多个排序字段用逗号分隔
private String column = "id";
//降序DESC 升序 ASC 默认为DESC
private String order = "DESC";
//关键词
private String keyword;
//人物名称
private String name;
//单位(现)
private String company;
//职务(现)
private String duty;
//是否审核 1是 0否
private Long checkStatus;
}
...@@ -4,104 +4,51 @@ ...@@ -4,104 +4,51 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper"> <mapper namespace="com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper">
<select id="getList" resultType="com.zzsn.leaderbase.vo.CharacterVo"> <select id="getList" resultType="com.zzsn.leaderbase.entity.CharacterBasicInfo">
select * from ( select
select a.id,a.uid,a.name,a.sex,a.birthplace,a.birthday,a.native_place,a.school,a.speciality,a.education,a.expert_occupation,a.head_sculpture,a.biographical_notes,a.category,a.award_records,a.part_time_job,a.research_field,a.evaluate,a.status,d.tag_id,d.tag_name, *
b.type_id,c.type_name,b.company_original,b.department_original,b.duty_original,b.company,b.department,b.duty,b.take_office_time,b.take_office_time_end,b.take_office_status,b.change_url,b.duties_update_time,b.duties_update_reason,b.check_status,b.check_result,b.article_id,b.article_index,b.update_desc,b.original_id,b.new_id,b.merge_status,a.create_by,a.create_time,a.update_by,a.update_time from character_basic_info
from character_basic_info a
LEFT JOIN character_change_info b
on a.id = b.id
LEFT JOIN character_category_structure c
ON b.type_id = c.id
left join (
select GROUP_CONCAT(a1.tag_id SEPARATOR ',') as tag_id,a1.character_uid,GROUP_CONCAT(b1.name SEPARATOR ',') as tag_name
from character_tag_map a1
LEFT JOIN label_entity b1
on a1.tag_id = b1.id
where 1=1
group by a1.character_uid
) d
on d.character_uid = a.uid
where 1 = 1 where 1 = 1
and (b.status = 1 or b.status IS NULL) <include refid="getListWhere"/>
<if test="name != null and name != ''"> ORDER BY CONVERT (${column} USING gbk) ${order}
AND a.name like '%${name}%'
</if>
<if test="company != null and company != ''">
AND b.company like '%${company}%'
</if>
<if test="duty != null and duty != ''">
AND b.duty like '%${duty}%'
</if>
<if test="checkStatus != null">
AND b.check_status = #{checkStatus}
</if>
<if test="checkResult != null">
AND b.check_result = #{checkResult}
</if>
<if test="category != null and category != ''">
AND a.category = #{category}
</if>
<if test="typeId != null and typeId != ''">
AND b.type_id = #{typeId}
</if>
<if test="tagName != null and tagName != ''">
<foreach item="item" index="index" collection="tagName.split(',')">
AND d.tag_name like '%${item}%'
</foreach>
</if>
)t1
<if test="order != null and order != ''">
ORDER BY ${column} ${order}
</if>
limit #{offset}, #{pageSize} limit #{offset}, #{pageSize}
</select> </select>
<select id="getCount" resultType="int"> <select id="getListCount" resultType="int">
SELECT count(1) SELECT count(1)
from character_basic_info a from character_basic_info
LEFT JOIN character_change_info b
on a.id = b.id
left join (
select GROUP_CONCAT(a1.tag_id SEPARATOR ',') as tag_id,a1.character_uid,GROUP_CONCAT(b1.name SEPARATOR ',') as tag_name
from character_tag_map a1
LEFT JOIN label_entity b1
on a1.tag_id = b1.id
where 1=1
group by a1.character_uid
) d
on d.character_uid = a.uid
where 1 = 1 where 1 = 1
and (b.status = 1 or b.status IS NULL) <include refid="getListWhere"/>
</select>
<sql id="getListWhere">
AND main_entry =1
<if test="keyword != null and keyword != ''">
AND CONCAT_WS(',',name,biographical_notes,department,duty,update_desc,article_title,article_origin,tag_name)
like '%${keyword}%'
</if>
<if test="name != null and name != ''"> <if test="name != null and name != ''">
AND a.name like '%${name}%' AND name like '%${name}%'
</if> </if>
<if test="company != null and company != ''"> <if test="department != null and department != ''">
AND b.company like '%${company}%' AND department like '%${department}%'
</if> </if>
<if test="duty != null and duty != ''"> <if test="duty != null and duty != ''">
AND b.duty like '%${duty}%' AND duty like '%${duty}%'
</if>
<if test="checkStatus != null">
AND b.check_status = #{checkStatus}
</if>
<if test="checkResult != null">
AND b.check_result = #{checkResult}
</if> </if>
<if test="category != null and category != ''"> <if test="category != null and category != ''">
AND a.category = #{category} AND category = #{category}
</if> </if>
<if test="typeId != null and typeId != ''"> <if test="typeId != null and typeId != ''">
AND b.type_id = #{typeId} AND type_id = #{typeId}
</if> </if>
<if test="tagName != null and tagName != ''"> <if test="tagId != null and tagId != ''">
<foreach item="item" index="index" collection="tagName.split(',')"> <foreach item="item" index="index" collection="tagName.split(',')">
AND d.tag_name like '%${item}%' AND tag_id like '%${item}%'
</foreach> </foreach>
</if> </if>
</select> </sql>
<select id="checkList" resultType="com.zzsn.leaderbase.vo.CharacterVo"> <select id="checkList" resultType="com.zzsn.leaderbase.vo.CharacterVo">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzsn.leaderbase.mapper.CharacterExtractInfoMapper">
<select id="getList" resultType="com.zzsn.leaderbase.entity.CharacterExtractInfo">
select *
from character_extract_info
where 1 = 1
<include refid="getListWhere"/>
ORDER BY CONVERT (${column} USING gbk) ${order}
limit #{offset}, #{pageSize}
</select>
<select id="getListCount" resultType="int">
select count(1)
from character_extract_info
where 1 = 1
<include refid="getListWhere"/>
</select>
<sql id="getListWhere">
<if test="keyword != null and keyword != ''">
AND CONCAT_WS(',',name,department,duty,article_title,article_origin)
like '%${keyword}%'
</if>
<if test="name != null and name != ''">
AND name like '%${name}%'
</if>
<if test="duty != null and duty != ''">
AND duty like '%${duty}%'
</if>
<if test="checkStatus != null and checkStatus != ''">
AND check_status = #{checkStatus}
</if>
</sql>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论