提交 2f0acdd3 作者: ZhangJingKun

修改配置信息

上级 9e3c991a
......@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
......@@ -124,4 +125,19 @@ public class CharacterBasicInfoController {
return characterBasicInfoService.correlationEdit(characterBasicInfo);
}
/**
* 企业查询
* @param socialCreditCode 社会信用代码
* @param department
* @return
*/
@GetMapping("/getDepartment")
public Result<?> getDepartment(@RequestParam(name="socialCreditCode",required=false) String socialCreditCode,
@RequestParam(name="department",required=false) String department,
@RequestParam(name="keyword",required=false) String keyword) {
log.info("查询企业名称:{}---{}---{}", socialCreditCode,department,keyword);
List<Map<String, String>> list = characterBasicInfoService.getDepartment(socialCreditCode, department, keyword);
return Result.OK(list);
}
}
package com.zzsn.leaderbase.controller;
import com.alibaba.fastjson2.JSON;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.Executive;
import com.zzsn.leaderbase.service.CharacterBasicInfoService;
import com.zzsn.leaderbase.service.IGeneratorIdService;
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.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
* 企业相关数据同步接口
*/
@Slf4j
@RestController
@RequestMapping("/sync")
public class SyncEnterpriseDataController {
// @Autowired
// private ExecutiveService executiveService;
// @Autowired
// private EnterpriseShareholderService enterpriseShareholderService;
@Autowired
CharacterBasicInfoService characterBasicInfoService;
//生成id
@Autowired
IGeneratorIdService generatorIdService;
/**
* 同步企业股东信息
*
* @param jsonString json字符串
*/
/*
@PostMapping("/shareHolder")
public Result<?> syncShareHolder(@RequestBody String jsonString) {
CompletableFuture.runAsync(() -> {
List<EnterpriseShareHolder> list = JSON.parseArray(jsonString, EnterpriseShareHolder.class);
Date date = new Date();
List<EnterpriseShareHolder> addList = new ArrayList<>();
for (EnterpriseShareHolder enterpriseShareHolder : list) {
String socialCreditCode = enterpriseShareHolder.getSocialCreditCode();
LambdaQueryWrapper<EnterpriseShareHolder> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(EnterpriseShareHolder::getSocialCreditCode, socialCreditCode)
.eq(EnterpriseShareHolder::getName, enterpriseShareHolder.getName());
Integer year = enterpriseShareHolder.getYear();
if (year != null) {
queryWrapper.eq(EnterpriseShareHolder::getYear, year);
}
int count = enterpriseShareholderService.count(queryWrapper);
if (count == 0) {
enterpriseShareHolder.setCreateTime(date);
addList.add(enterpriseShareHolder);
}
}
enterpriseShareholderService.saveBatch(addList);
});
return Result.OK();
}
*/
/**
* 同步企业核心人员数据信息
* @param jsonString json字符串
*/
@PostMapping("/executive")
public Result<?> synExecutive(@RequestBody String jsonString) {
log.info(jsonString);
CompletableFuture.runAsync(() -> {
//zui新采集数据
List<Executive> listExecutive = JSON.parseArray(jsonString, Executive.class);
log.info("list:{}", listExecutive.size());
Map<String, Executive> mapExecutive = listExecutive.stream()
.collect(Collectors.toMap(Executive::getName, e -> e));
//社会信用代码和公司名称
String socialCreditCode = listExecutive.get(0).getSocialCreditCode();
log.info("社会信用代码:{}",socialCreditCode);
String department = characterBasicInfoService.getDepartmentCreditCode(socialCreditCode);//查询公司名称
//库中已有数据
List<CharacterBasicInfo> creditList = characterBasicInfoService.getBasicInfoByCreditCode(socialCreditCode);//查询已入库数据
Map<String, CharacterBasicInfo> mapCredit = creditList.stream()
.collect(Collectors.toMap(CharacterBasicInfo::getName, e -> e));
//处理库中已有数据
Set<String> creditLSet = mapCredit.keySet();
for (String name : creditLSet) {
Executive executive = mapExecutive.get(name);
if(executive == null){//最新数据中无此人,改为历任
CharacterBasicInfo basicInfo = mapCredit.get(name);
basicInfo.setTakeOfficeStatus("历任");
characterBasicInfoService.updateById(basicInfo);
}
}
//处理新采集数据
Set<String> executiveSet = mapExecutive.keySet();
for (String name : executiveSet) {
CharacterBasicInfo basicInfo = mapCredit.get(name);
Executive executive = mapExecutive.get(name);
if(basicInfo == null){//新增人员
CharacterBasicInfo newInfo = convert(executive);
newInfo.setDepartment(department);
newInfo.setUid(generatorIdService.getIdNo());
newInfo.setCategory("3");
newInfo.setMainEntry(1);
newInfo.setStatus(1L);
characterBasicInfoService.save(newInfo);
} else {//已有人员
//判断职务是否变动//职务变动则追加职务变更记录,职务未变动则不做处理
String duty = basicInfo.getDuty() == null ? "" : basicInfo.getDuty();
if(!duty.equals(executive.getPosition())){
basicInfo.setTakeOfficeStatus("历任");
basicInfo.setMainEntry(0);
characterBasicInfoService.updateById(basicInfo);
CharacterBasicInfo newInfo = convert(executive);
newInfo.setDepartment(department);
newInfo.setUid(generatorIdService.getIdNo());
newInfo.setCategory("3");
newInfo.setMainEntry(1);
newInfo.setStatus(1L);
characterBasicInfoService.save(newInfo);
}
}
}
});
return Result.OK();
}
private CharacterBasicInfo convert(Executive executive){
CharacterBasicInfo basicInfo = new CharacterBasicInfo();
basicInfo.setSocialCreditCode(executive.getSocialCreditCode());
basicInfo.setName(executive.getName());
basicInfo.setSex(executive.getSex());
basicInfo.setEducation(executive.getEducation());
basicInfo.setDuty(executive.getPosition());
basicInfo.setBirthday(executive.getBirthYear() + "");
basicInfo.setTakeOfficeTime(executive.getCurrentTerm());
basicInfo.setBiographicalNotes(executive.getPersonInfo());
basicInfo.setSort(executive.getSort());
basicInfo.setCreateTime(new Date());
// private String id;
// /**持股数*/
// private String shareNum;
// /**持股比例*/
// private String shareRatio;
// /**最终受益股份*/
// private String benefitShare;
return basicInfo;
}
@GetMapping("/get")
public Result<?> get(){
String socialCreditCode = "91110000400882778L";
String department = characterBasicInfoService.getDepartmentCreditCode(socialCreditCode);
return Result.OK();
}
}
......@@ -81,7 +81,7 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
//标签名称
private String tagName;
//统一社会信用代码
private String social_credit_code;
private String socialCreditCode;
//排序
private Integer sort;
//是否主条目(1-主条目;0-非主条目)
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @author lkg
* @description: 企业高管表
* @date 2023/1/9
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Executive implements Serializable {
private String id;
/**企业统一社会信用代码*/
private String socialCreditCode;
/**高管姓名*/
private String name;
/**性别*/
private String sex;
/**学历*/
private String education;
/**职位*/
private String position;
/**薪资*/
private String salary;
/**出生年份*/
private Integer birthYear;
/**持股数*/
private String shareNum;
/**持股比例*/
private String shareRatio;
/**最终受益股份*/
private String benefitShare;
/**本届任期*/
private String currentTerm;
/**个人简介*/
private String personInfo;
/**排序*/
private Integer sort;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
......@@ -51,7 +51,7 @@ public class PersonOfJobChangeKafkaConsumer {
//log.info(message);
InfoExtractionParam record = JSON.parseObject(message, InfoExtractionParam.class);
BaseData baseData = JSON.parseObject(message, BaseData.class);
log.info("create_date:{}---title:{}",baseData.getCreateDate(),baseData.getTitle());
log.info("职务变更抽取资讯---create_date:{}---title:{}",baseData.getCreateDate(),baseData.getTitle());
if(StringUtils.isEmpty(baseData.getId())){
String id = String.valueOf(generatorIdService.getId());
baseData.setId(id);
......@@ -63,17 +63,30 @@ public class PersonOfJobChangeKafkaConsumer {
JSONObject jsonObjectParam = new JSONObject();
jsonObjectParam.put("data", map);
JSONArray dataResultList = null;
boolean flag = false;//diao接口成功标识
while(true){
try {
log.info("request");
String result = HttpUtil.doPost(relationEntityUrl, jsonObjectParam, 40000);
log.info("response:{}", result);
if(flag)
break;
String result = HttpUtil.doPost(relationEntityUrl, jsonObjectParam, 300000);
log.info("职务变更抽取响应结果:{}", result);
Object objectResult = parseResult(result);
if (null != objectResult) {
dataResultList = (JSONArray) JSONArray.parse(objectResult.toString());
}
flag = true;//接口调用成功结束循环,防止数据漏掉
}catch (Exception e){
log.error("异常:{}",e.getMessage());
log.error("职务变更抽取接口调用异常:{}",e.getMessage());
//调用失败休眠5分钟
try {
Thread.sleep(300000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
if (dataResultList != null && dataResultList.size() > 0) {
esUtil.docSaveByEntity(USERSERVER_BASEDATA, baseData.getId(), baseData);
for (Object dataResultObject : dataResultList) {
......
......@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* @Version 1.0
......@@ -96,4 +97,33 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
"and b.original_id = #{id} " +
"order by create_time desc ")
List<CharacterVo> getByOriginalId(String id);
@Select("select name from sys_base_enterprise " +
"where 1=1 " +
"and social_credit_code = #{socialCreditCode} " +
"limit 1")
String getDepartmentCreditCode(String socialCreditCode);
@Select("select * from character_basic_info " +
"where 1=1 " +
"and category = 3 " +
"and main_entry = 1 " +
"and social_credit_code = #{socialCreditCode} ")
List<CharacterBasicInfo> getBasicInfoByCreditCode(String socialCreditCode);
@Select("<script> " +
"select social_credit_code socialCreditCode,name department from sys_base_enterprise " +
"where 1=1 " +
"<if test='socialCreditCode != null and socialCreditCode != &apos;&apos;'> " +
" and social_credit_code = #{socialCreditCode} " +
"</if>" +
"<if test='department != null and department != &apos;&apos;'> " +
" and name like '%${department}%' " +
"</if>" +
"<if test='keyword != null and keyword != &apos;&apos;'> " +
" AND CONCAT_WS(',',social_credit_code,name) like '%${keyword}%' " +
"</if>" +
"limit 20 " +
"</script>")
List<Map<String, String>> getDepartment(String socialCreditCode, String department, String keyword);
}
......@@ -9,6 +9,7 @@ import com.zzsn.leaderbase.vo.CharacterVo;
import com.zzsn.leaderbase.vo.Result;
import java.util.List;
import java.util.Map;
/**
* @Version 1.0
......@@ -47,4 +48,10 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo>
Result<?> correlation(CharacterBasicInfo characterBasicInfo);
Result<?> correlationEdit(CharacterBasicInfo characterBasicInfo);
String getDepartmentCreditCode(String socialCreditCode);
List<CharacterBasicInfo> getBasicInfoByCreditCode(String socialCreditCode);
List<Map<String, String>> getDepartment(String socialCreditCode, String department, String keyword);
}
......@@ -210,5 +210,37 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
return Result.OK(res);
}
/**
* 根据社会信用代码查询公司名称
* @param socialCreditCode
* @return
*/
@Override
public String getDepartmentCreditCode(String socialCreditCode) {
return baseMapper.getDepartmentCreditCode(socialCreditCode);
}
/**
* 根据社会信用代码查询相关联高管人员
* @param socialCreditCode
* @return
*/
@Override
public List<CharacterBasicInfo> getBasicInfoByCreditCode(String socialCreditCode) {
return baseMapper.getBasicInfoByCreditCode(socialCreditCode);
}
@Override
public List<Map<String, String>> getDepartment(String socialCreditCode, String department, String keyword) {
if(keyword != null && keyword.length() > 0){
if((keyword.length() == 18 || keyword.length() == 19) && keyword.matches("[0-9].*|[Zz].*")){
socialCreditCode = keyword;
} else {
department = keyword;
}
keyword = null;
}
return baseMapper.getDepartment(socialCreditCode, department, keyword);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论