Ver Fonte

添加库表接口

邵洋 há 1 ano atrás
pai
commit
369f803584

+ 3 - 1
data-service/src/main/java/com/zksy/data/controller/TestController.java

@@ -492,7 +492,9 @@ public class TestController {
     private XcrEBaseinfoService xcrEBaseinfoService;
     @GetMapping("/testClient")
     public Result testClient(){
-        xcrEBaseinfoService.saveDataByUniCode("");
+        //xcrEBaseinfoService.saveDataByUniCode("123");
+        xcrAnnualReportBaseInfoService.saveDataByUniCode("123");
+        //xcrEnterpriseAnnualReportShareholderService.saveDataByUniCode("123");
         return Result.ok();
     }
 }

+ 28 - 0
data-service/src/main/java/com/zksy/data/domain/po/XcrAnnualReportBaseInfo.java

@@ -221,4 +221,32 @@ public class XcrAnnualReportBaseInfo extends BasePo implements Serializable {
     @JsonProperty("S_EXT_DATATIME")
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date S_EXT_DATATIME;  // 数据更新时间
+
+    @TableField("S_EXT_TIMESTAMP")
+    @JsonProperty("S_EXT_TIMESTAMP")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date S_EXT_TIMESTAMP;  // 数据更新时间戳
+
+    @TableField("I_TIME")
+    @JsonProperty("I_TIME")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date I_TIME;  // 插入时间
+
+    @TableField("S_EXT_FROMNODE")
+    @JsonProperty("S_EXT_FROMNODE")
+    private String S_EXT_FROMNODE;  // 数据来源节点
+
+    @TableField("MOD_FLAG")
+    @JsonProperty("MOD_FLAG")
+    private String MOD_FLAG;  // 修改标志
+
+    @TableField("UP_TIME")
+    @JsonProperty("UP_TIME")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date UP_TIME;  // 修改时间
+
+    @TableField("ID")
+    @JsonProperty("ID")
+    private Long ID;  // id
+
 }

+ 64 - 16
data-service/src/main/java/com/zksy/data/domain/po/XcrEnterpriseAnnualReportShareholder.java

@@ -10,6 +10,7 @@ import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -19,58 +20,105 @@ import lombok.Data;
 @TableName(value ="xcr_enterprise_annual_report_shareholder")
 @Data
 public class XcrEnterpriseAnnualReportShareholder extends BasePo implements Serializable {
+    /** 投资人ID */
+    @ApiModelProperty("投资人ID")
     @TableField("INVID")
     @JsonProperty("INVID")
-    private String INVID;  // 投资人ID
+    private String INVID;
 
+    /** 年报ID */
+    @ApiModelProperty("年报ID")
     @TableField("ANCHEID")
     @JsonProperty("ANCHEID")
-    private String ANCHEID;  // 年报ID
+    private String ANCHEID;
 
+    /** 股东/发起人名称 */
+    @ApiModelProperty("股东/发起人名称")
     @TableField("INVNAME")
     @JsonProperty("INVNAME")
-    private String INVNAME;  // 股东/发起人名称
+    private String INVNAME;
 
+    /** 累计认缴额 */
+    @ApiModelProperty("累计认缴额")
     @TableField("LISUBCONAM")
     @JsonProperty("LISUBCONAM")
-    private BigDecimal LISUBCONAM;  // 累计认缴额
+    private BigDecimal LISUBCONAM;
 
+    /** 认缴出资日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("认缴出资日期")
     @TableField("SUBCONDATE")
     @JsonProperty("SUBCONDATE")
-    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date SUBCONDATE;  // 认缴出资日期
+    private Date SUBCONDATE;
 
+    /** 认缴出资方式 */
+    @ApiModelProperty("认缴出资方式")
     @TableField("SUBCONFORM")
     @JsonProperty("SUBCONFORM")
-    private String SUBCONFORM;  // 认缴出资方式
+    private String SUBCONFORM;
 
+    /** 认缴出资方式(中文名称) */
+    @ApiModelProperty("认缴出资方式")
     @TableField("SUBCONFORM_CN")
     @JsonProperty("SUBCONFORM_CN")
-    private String SUBCONFORM_CN;  // 认缴出资方式(中文名称)
+    private String subconformCn;
 
+    /** 累计实缴额 */
+    @ApiModelProperty("累计实缴额")
     @TableField("LIACCONAM")
     @JsonProperty("LIACCONAM")
-    private BigDecimal LIACCONAM;  // 累计实缴额
+    private BigDecimal LIACCONAM;
 
+    /** 实缴出资日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("实缴出资日期")
     @TableField("ACCONDATE")
     @JsonProperty("ACCONDATE")
-    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date ACCONDATE;  // 实缴出资日期
+    private Date ACCONDATE;
 
+    /** 实缴出资方式 */
+    @ApiModelProperty("实缴出资方式")
     @TableField("ACCONFORM")
     @JsonProperty("ACCONFORM")
-    private String ACCONFORM;  // 实缴出资方式
+    private String ACCONFORM;
 
+    /** 实缴出资方式(中文名称) */
+    @ApiModelProperty("实缴出资方式")
     @TableField("ACCONFORM_CN")
     @JsonProperty("ACCONFORM_CN")
-    private String ACCONFORM_CN;  // 实缴出资方式(中文名称)
+    private String acconformCn;
 
+    /** 企业年报年份 */
+    @ApiModelProperty("企业年报年份")
     @TableField("ENTCHEYEAR")
     @JsonProperty("ENTCHEYEAR")
-    private String ENTCHEYEAR;  // 企业年报年份
+    private String ENTCHEYEAR;
 
+    /** 数据更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("数据更新时间")
     @TableField("S_EXT_DATATIME")
     @JsonProperty("S_EXT_DATATIME")
-    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date S_EXT_DATATIME;  // 数据更新时间
+    private Date sExtDatatime;
+
+    /** 数据更新时间戳 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("数据更新时间戳")
+    @TableField("S_EXT_TIMESTAMP")
+    @JsonProperty("S_EXT_TIMESTAMP")
+    private Date S_EXT_TIMESTAMP;
+
+    /** 数据插入时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("数据插入时间")
+    @TableField("I_TIME")
+    @JsonProperty("I_TIME")
+    private Date I_TIME;
+
+    /** 数据插入时间 */
+    @ApiModelProperty("数据插入时间")
+    @TableField("S_EXT_FROMNODE")
+    @JsonProperty("S_EXT_FROMNODE")
+    private String S_EXT_FROMNODE;
+
 }

+ 17 - 17
data-service/src/main/java/com/zksy/data/service/impl/XcrAnnualReportBaseInfoServiceImpl.java

@@ -1,9 +1,15 @@
 package com.zksy.data.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.api.client.TableDataClient;
+import com.zksy.api.dto.tableData.AnPbBaseinfo;
+import com.zksy.api.dto.tableData.EBaseinfo;
+import com.zksy.common.domain.Result;
 import com.zksy.common.exception.DbException;
 import com.zksy.data.annotation.XhDataLogRecord;
 import com.zksy.data.domain.po.XcrAnnualReportBaseInfo;
+import com.zksy.data.domain.po.XcrEBaseinfo;
 import com.zksy.data.domain.response.XcrAnnualReportBaseInfoResponse;
 import com.zksy.data.mapper.XcrAnnualReportBaseInfoMapper;
 import com.zksy.data.service.XcrAnnualReportBaseInfoService;
@@ -17,6 +23,7 @@ import org.springframework.transaction.support.TransactionTemplate;
 
 import java.util.List;
 import java.util.Vector;
+import java.util.stream.Collectors;
 
 /**
 * @author 邵洋
@@ -27,29 +34,23 @@ import java.util.Vector;
 @Slf4j
 public class XcrAnnualReportBaseInfoServiceImpl extends ServiceImpl<XcrAnnualReportBaseInfoMapper, XcrAnnualReportBaseInfo>
     implements XcrAnnualReportBaseInfoService{
-
-    @Autowired
-    private XhRequestUtil xhRequestUtil;
     @Autowired
-    private RedisService redisService;
+    private TableDataClient tableDataClient;
     @Autowired
     private TransactionTemplate transactionTemplate;
 
     @Override
     @XhDataLogRecord("同步企业年报基本信息")
     public void saveDataByUniCode(String address) {
-        //模拟从数据库中取数据大约为3000-4000条
-        List<String> creditCodes = (List<String>) redisService.getList("creditCodes").get(0);
-        Vector<XcrAnnualReportBaseInfo> toDatabaseList = new Vector<>();
-        creditCodes.parallelStream().forEach(creditCode -> {
-            List<XcrAnnualReportBaseInfo> list = xhRequestUtil.httpRequestByUniCode(creditCode, address,
-                    XcrAnnualReportBaseInfoResponse.class,
-                    XcrAnnualReportBaseInfo.class
-            );
-            if(list != null){
-                toDatabaseList.addAll(list);
-            }
-        });
+        Result<List<AnPbBaseinfo>> baseinfoAll = tableDataClient.getAnBaseinfo();
+        if(baseinfoAll.getCode() != 200){
+            throw new RuntimeException(baseinfoAll.getMsg());
+        }
+        List<XcrAnnualReportBaseInfo> toDatabaseList = BeanUtil.copyToList(baseinfoAll.getData(), XcrAnnualReportBaseInfo.class);
+        toDatabaseList.stream().map(q->{
+            q.setUniCode(q.getUNISCID());
+            return q;
+        }).collect(Collectors.toList());
         transactionTemplate.execute((s)->{
             try {
                 this.remove(null);
@@ -60,7 +61,6 @@ public class XcrAnnualReportBaseInfoServiceImpl extends ServiceImpl<XcrAnnualRep
             }
             return null;
         });
-        log.info("企业年报基本信息同步完成");
     }
 }
 

+ 32 - 16
data-service/src/main/java/com/zksy/data/service/impl/XcrEnterpriseAnnualReportShareholderServiceImpl.java

@@ -1,8 +1,16 @@
 package com.zksy.data.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.api.client.TableDataClient;
+import com.zksy.api.dto.tableData.AnPbBaseinfo;
+import com.zksy.api.dto.tableData.AnSubcapital;
+import com.zksy.api.dto.tableData.EBaseinfo;
+import com.zksy.common.domain.Result;
 import com.zksy.common.exception.DbException;
 import com.zksy.data.annotation.XhDataLogRecord;
+import com.zksy.data.domain.po.XcrAnnualReportBaseInfo;
+import com.zksy.data.domain.po.XcrEBaseinfo;
 import com.zksy.data.domain.po.XcrEnterpriseAnnualReportShareholder;
 import com.zksy.data.domain.po.XcrEnterpriseAnnualReportWebsite;
 import com.zksy.data.domain.response.XcrEnterpriseAnnualReportShareholderResponse;
@@ -18,7 +26,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.TransactionTemplate;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
+import java.util.stream.Collectors;
 
 /**
 * @author 邵洋
@@ -30,26 +40,33 @@ import java.util.Vector;
 public class XcrEnterpriseAnnualReportShareholderServiceImpl extends ServiceImpl<XcrEnterpriseAnnualReportShareholderMapper, XcrEnterpriseAnnualReportShareholder>
     implements XcrEnterpriseAnnualReportShareholderService{
     @Autowired
-    private XhRequestUtil xhRequestUtil;
-    @Autowired
-    private RedisService redisService;
-    @Autowired
     private TransactionTemplate transactionTemplate;
+    @Autowired
+    private TableDataClient tableDataClient;
 
     @Override
-
     @XhDataLogRecord("同步企业年报股东及出资信息")
     public void saveDataByUniCode(String address) {
-        //模拟从数据库中取数据大约为3000-4000条
-        List<String> creditCodes = (List<String>) redisService.getList("creditCodes").get(0);
-        Vector<XcrEnterpriseAnnualReportShareholder> toDatabaseList = new Vector<>();
-        creditCodes.parallelStream().forEach(creditCode -> {
-            List<XcrEnterpriseAnnualReportShareholder> list = xhRequestUtil.httpRequestByUniCode(creditCode, address,
-                    XcrEnterpriseAnnualReportShareholderResponse.class,
-                    XcrEnterpriseAnnualReportShareholder.class
-            );
-            if(list != null){
-                toDatabaseList.addAll(list);
+        Result<List<AnPbBaseinfo>> annualReportAll = tableDataClient.getAnBaseinfo();
+        if(annualReportAll.getCode() != 200){
+            throw new RuntimeException(annualReportAll.getMsg());
+        }
+        Result<List<AnSubcapital>> baseinfoAll = tableDataClient.getAnSubcapital();
+        if(baseinfoAll.getCode() != 200){
+            throw new RuntimeException(baseinfoAll.getMsg());
+        }
+        // 将股东信息转换为实体类对象
+        List<XcrEnterpriseAnnualReportShareholder> toDatabaseList = BeanUtil.copyToList(baseinfoAll.getData(), XcrEnterpriseAnnualReportShareholder.class);
+
+        // 创建一个映射,将 uniscid 映射到年报基本信息对象
+        Map<String, AnPbBaseinfo> annualReportMap = annualReportAll.getData().stream()
+                .collect(Collectors.toMap(AnPbBaseinfo::getAncheid, info -> info));
+
+        // 设置 uniCode 属性
+        toDatabaseList.forEach(q -> {
+            AnPbBaseinfo annualReport = annualReportMap.get(q.getANCHEID());
+            if (annualReport != null) {
+                q.setUniCode(annualReport.getUniscid());
             }
         });
         transactionTemplate.execute((s)->{
@@ -62,7 +79,6 @@ public class XcrEnterpriseAnnualReportShareholderServiceImpl extends ServiceImpl
             }
             return null;
         });
-        log.info("企业年报股东及出资信息同步完成");
     }
 }
 

+ 6 - 4
xh-api/src/main/java/com/zksy/api/client/TableDataClient.java

@@ -1,6 +1,8 @@
 package com.zksy.api.client;
 
 import com.zksy.api.dto.tableData.AnBaseinfo;
+import com.zksy.api.dto.tableData.AnPbBaseinfo;
+import com.zksy.api.dto.tableData.AnSubcapital;
 import com.zksy.api.dto.tableData.EBaseinfo;
 import com.zksy.common.domain.Result;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -32,11 +34,11 @@ public interface TableDataClient {
     @GetMapping("/drRaninsres")
     public Result getDrRaninsres();
 
-    @GetMapping("/anBaseinfo")
-    public Result getAnBaseinfo();
+    @GetMapping("/libraryTable/anBaseinfo")
+    public Result<List<AnPbBaseinfo>> getAnBaseinfo();
 
-    @GetMapping("/anSubcapital")
-    public Result getAnSubcapital();
+    @GetMapping("/libraryTable/anSubcapital")
+    public Result<List<AnSubcapital>> getAnSubcapital();
 
     @GetMapping("/eLicCertificate")
     public Result getELicCertificate();