Browse Source

数据采集

邵洋 1 năm trước cách đây
mục cha
commit
84022cbe48

+ 49 - 0
data-service/src/main/java/com/zksy/data/domain/po/XcrAgriculturalSpecializedWebsite.java

@@ -0,0 +1,49 @@
+package com.zksy.data.domain.po;
+
+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 java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * 农专年报网站或网店信息
+ * @TableName xcr_agricultural_specialized_website
+ */
+@TableName(value ="xcr_agricultural_specialized_website")
+@Data
+public class XcrAgriculturalSpecializedWebsite extends BasePo implements Serializable {
+    @TableField("WEBID")
+    @JsonProperty("WEBID")
+    private String WEBID;  // 网站标识
+
+    @TableField("ANCHEID")
+    @JsonProperty("ANCHEID")
+    private String ANCHEID;  // 年报ID
+
+    @TableField("WEBTYPE")
+    @JsonProperty("WEBTYPE")
+    private String WEBTYPE;  // 网站网店类型代码
+
+    @TableField("WEBSITNAME")
+    @JsonProperty("WEBSITNAME")
+    private String WEBSITNAME;  // 网站(网店)名称
+
+    @TableField("WEBSITE")
+    @JsonProperty("WEBSITE")
+    private String WEBSITE;  // 网站(网店)网址
+
+    @TableField("ENTCHEYEAR")
+    @JsonProperty("ENTCHEYEAR")
+    private String ENTCHEYEAR;  // 年报年份
+
+    @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;  // 数据更新时间
+}

+ 2 - 1
data-service/src/main/java/com/zksy/data/domain/po/XcrAgriculturalSupplement.java

@@ -8,6 +8,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 农专补充信息
@@ -63,7 +64,7 @@ public class XcrAgriculturalSupplement extends BasePo implements Serializable {
     @TableField("S_EXT_DATATIME")
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonProperty("S_EXT_DATATIME")
-    private String S_EXT_DATATIME;
+    private Date S_EXT_DATATIME;
 
     @TableField("PROLOC")
     @JsonProperty("PROLOC")

+ 1 - 1
data-service/src/main/java/com/zksy/data/domain/po/XcrInstallmentSubscription.java

@@ -31,7 +31,7 @@ public class XcrInstallmentSubscription extends BasePo implements Serializable {
 
     @JsonProperty("CURSUBCONAMUSD")
     @TableField("CURSUBCONAMUSD")
-    private String CURSUBCONAMUSD;
+    private BigDecimal CURSUBCONAMUSD;
 
     @JsonProperty("CONTO")
     @TableField("CONTO")

+ 125 - 0
data-service/src/main/java/com/zksy/data/domain/po/XcrMajorMembers.java

@@ -0,0 +1,125 @@
+package com.zksy.data.domain.po;
+
+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 java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * 主要成员信息表
+ * @TableName xcr_major_members
+ */
+@TableName(value ="xcr_major_members")
+@Data
+public class XcrMajorMembers extends BasePo implements Serializable {
+    @TableField("ETPS_ID")
+    @JsonProperty("ETPS_ID")
+    private String ETPS_ID;  // 人员ID
+
+    @TableField("PERSONID")
+    @JsonProperty("PERSONID")
+    private String PERSONID;  // 人员ID
+
+    @TableField("PRIPID")
+    @JsonProperty("PRIPID")
+    private String PRIPID;  // 主体身份代码
+
+    @TableField("NAME")
+    @JsonProperty("NAME")
+    private String NAME;  // 姓名
+
+    @TableField("SEX")
+    @JsonProperty("SEX")
+    private String SEX;  // 性别
+
+    @TableField("NATDATE")
+    @JsonProperty("NATDATE")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date NATDATE;  // 出生日期
+
+    @TableField("CERTYPE")
+    @JsonProperty("CERTYPE")
+    private String CERTYPE;  // 证件类型
+
+    @TableField("CERNO")
+    @JsonProperty("CERNO")
+    private String CERNO;  // 证件号码/代表证编号(DB320)
+
+    @TableField("POSITION")
+    @JsonProperty("POSITION")
+    private String POSITION;  // 职务
+
+    @TableField("POSITION_CN")
+    @JsonProperty("POSITION_CN")
+    private String POSITION_CN;  // 职务(中文名称)
+
+    @TableField("POSBRFORM")
+    @JsonProperty("POSBRFORM")
+    private String POSBRFORM;  // 职务产生方式
+
+    @TableField("OCCSTBEAPP")
+    @JsonProperty("OCCSTBEAPP")
+    private String OCCSTBEAPP;  // 申请前职业状况
+
+    @TableField("LEREPSIGN")
+    @JsonProperty("LEREPSIGN")
+    private String LEREPSIGN;  // 法定代表人标志/首席代表标志/负责人标识
+
+    @TableField("APPOUNIT")
+    @JsonProperty("APPOUNIT")
+    private String APPOUNIT;  // 任命单位/委派方
+
+    @TableField("TEL")
+    @JsonProperty("TEL")
+    private String TEL;  // 联系电话
+
+    @TableField("COUNTRY")
+    @JsonProperty("COUNTRY")
+    private String COUNTRY;  // 国别(地区)
+
+    @TableField("TELNUMBER")
+    @JsonProperty("TELNUMBER")
+    private String TELNUMBER;  // 固定电话
+
+    @TableField("MOBTel")
+    @JsonProperty("MOBTel")
+    private String MOBTel;  // 移动电话
+
+    @TableField("EMAIL")
+    @JsonProperty("EMAIL")
+    private String EMAIL;  // 电子邮箱
+
+    @TableField("HOUSEADD")
+    @JsonProperty("HOUSEADD")
+    private String HOUSEADD;  // 住址
+
+    @TableField("ARRCHDATE")
+    @JsonProperty("ARRCHDATE")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date ARRCHDATE;  // 入境时间
+
+    @TableField("REPCARFROM")
+    @JsonProperty("REPCARFROM")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date REPCARFROM;  // 代表证期限自/任职起始日期
+
+    @TableField("REPCARTO")
+    @JsonProperty("REPCARTO")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date REPCARTO;  // 代表证期限至/任职截止日期
+
+    @TableField("POSTALCODE")
+    @JsonProperty("POSTALCODE")
+    private String POSTALCODE;  // 邮政编码
+
+    @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;  // 数据更新时间
+}

+ 13 - 0
data-service/src/main/java/com/zksy/data/domain/response/XcrAgriculturalSpecializedWebsiteResponse.java

@@ -0,0 +1,13 @@
+package com.zksy.data.domain.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.zksy.common.domain.response.BaseResponse;
+import com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite;
+import com.zksy.data.domain.po.XcrAnnualReportExternalInvestment;
+
+import java.util.List;
+
+public class XcrAgriculturalSpecializedWebsiteResponse extends BaseResponse {
+    @JsonProperty("data")
+    private List<XcrAgriculturalSpecializedWebsite> data;
+}

+ 13 - 0
data-service/src/main/java/com/zksy/data/domain/response/XcrMajorMembersResponse.java

@@ -0,0 +1,13 @@
+package com.zksy.data.domain.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.zksy.common.domain.response.BaseResponse;
+import com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite;
+import com.zksy.data.domain.po.XcrMajorMembers;
+
+import java.util.List;
+
+public class XcrMajorMembersResponse extends BaseResponse {
+    @JsonProperty("data")
+    private List<XcrMajorMembers> data;
+}

+ 18 - 0
data-service/src/main/java/com/zksy/data/mapper/XcrAgriculturalSpecializedWebsiteMapper.java

@@ -0,0 +1,18 @@
+package com.zksy.data.mapper;
+
+import com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_agricultural_specialized_website(农专年报网站或网店信息)】的数据库操作Mapper
+* @createDate 2024-10-25 16:59:58
+* @Entity com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite
+*/
+public interface XcrAgriculturalSpecializedWebsiteMapper extends BaseMapper<XcrAgriculturalSpecializedWebsite> {
+
+}
+
+
+
+

+ 18 - 0
data-service/src/main/java/com/zksy/data/mapper/XcrMajorMembersMapper.java

@@ -0,0 +1,18 @@
+package com.zksy.data.mapper;
+
+import com.zksy.data.domain.po.XcrMajorMembers;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_major_members(主要成员信息表)】的数据库操作Mapper
+* @createDate 2024-10-25 17:03:18
+* @Entity com.zksy.data.domain.po.XcrMajorMembers
+*/
+public interface XcrMajorMembersMapper extends BaseMapper<XcrMajorMembers> {
+
+}
+
+
+
+

+ 13 - 0
data-service/src/main/java/com/zksy/data/service/XcrAgriculturalSpecializedWebsiteService.java

@@ -0,0 +1,13 @@
+package com.zksy.data.service;
+
+import com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_agricultural_specialized_website(农专年报网站或网店信息)】的数据库操作Service
+* @createDate 2024-10-25 16:59:58
+*/
+public interface XcrAgriculturalSpecializedWebsiteService extends IService<XcrAgriculturalSpecializedWebsite>,IBaseSaveDataInterface {
+
+}

+ 13 - 0
data-service/src/main/java/com/zksy/data/service/XcrMajorMembersService.java

@@ -0,0 +1,13 @@
+package com.zksy.data.service;
+
+import com.zksy.data.domain.po.XcrMajorMembers;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_major_members(主要成员信息表)】的数据库操作Service
+* @createDate 2024-10-25 17:03:18
+*/
+public interface XcrMajorMembersService extends IService<XcrMajorMembers>,IBaseSaveDataInterface {
+
+}

+ 57 - 0
data-service/src/main/java/com/zksy/data/service/impl/XcrAgriculturalSpecializedWebsiteServiceImpl.java

@@ -0,0 +1,57 @@
+package com.zksy.data.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite;
+import com.zksy.data.domain.po.XcrAgriculturalSupplement;
+import com.zksy.data.domain.response.XcrAgriculturalSpecializedWebsiteResponse;
+import com.zksy.data.domain.response.XcrAgriculturalSupplementResponse;
+import com.zksy.data.service.XcrAgriculturalSpecializedWebsiteService;
+import com.zksy.data.mapper.XcrAgriculturalSpecializedWebsiteMapper;
+import com.zksy.data.utils.RedisService;
+import com.zksy.data.utils.XhRequestUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Vector;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_agricultural_specialized_website(农专年报网站或网店信息)】的数据库操作Service实现
+* @createDate 2024-10-25 16:59:58
+*/
+@Service
+@Slf4j
+public class XcrAgriculturalSpecializedWebsiteServiceImpl extends ServiceImpl<XcrAgriculturalSpecializedWebsiteMapper, XcrAgriculturalSpecializedWebsite>
+    implements XcrAgriculturalSpecializedWebsiteService{
+    @Autowired
+    private XhRequestUtil xhRequestUtil;
+    @Autowired
+    private RedisService redisService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveDataByUniCode(String address) {
+        //模拟从数据库中取数据大约为3000-4000条
+        List<String> creditCodes = (List<String>) redisService.getList("creditCodes").get(0);
+        Vector<XcrAgriculturalSpecializedWebsite> toDatabaseList = new Vector<>();
+        creditCodes.parallelStream().forEach(creditCode -> {
+            List<XcrAgriculturalSpecializedWebsite> list = xhRequestUtil.httpRequestByUniCode(creditCode, address,
+                    XcrAgriculturalSpecializedWebsiteResponse.class,
+                    XcrAgriculturalSpecializedWebsite.class
+            );
+            if(list != null){
+                toDatabaseList.addAll(list);
+            }
+        });
+        this.remove(null);
+        this.saveBatch(toDatabaseList);
+        log.info("农专年报网站或网店信息同步完成");
+    }
+}
+
+
+
+

+ 57 - 0
data-service/src/main/java/com/zksy/data/service/impl/XcrMajorMembersServiceImpl.java

@@ -0,0 +1,57 @@
+package com.zksy.data.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.data.domain.po.XcrMajorMembers;
+import com.zksy.data.domain.po.XcrMinorEnterprises;
+import com.zksy.data.domain.response.XcrMajorMembersResponse;
+import com.zksy.data.domain.response.XcrMinorEnterprisesResponse;
+import com.zksy.data.service.XcrMajorMembersService;
+import com.zksy.data.mapper.XcrMajorMembersMapper;
+import com.zksy.data.utils.RedisService;
+import com.zksy.data.utils.XhRequestUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Vector;
+
+/**
+* @author 邵洋
+* @description 针对表【xcr_major_members(主要成员信息表)】的数据库操作Service实现
+* @createDate 2024-10-25 17:03:18
+*/
+@Service
+@Slf4j
+public class XcrMajorMembersServiceImpl extends ServiceImpl<XcrMajorMembersMapper, XcrMajorMembers>
+    implements XcrMajorMembersService{
+    @Autowired
+    private XhRequestUtil xhRequestUtil;
+    @Autowired
+    private RedisService redisService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveDataByUniCode(String address) {
+        //模拟从数据库中取数据大约为3000-4000条
+        List<String> creditCodes = (List<String>) redisService.getList("creditCodes").get(0);
+        Vector<XcrMajorMembers> toDatabaseList = new Vector<>();
+        creditCodes.parallelStream().forEach(creditCode -> {
+            List<XcrMajorMembers> list = xhRequestUtil.httpRequestByUniCode(creditCode, address,
+                    XcrMajorMembersResponse.class,
+                    XcrMajorMembers.class
+            );
+            if(list != null){
+                toDatabaseList.addAll(list);
+            }
+        });
+        this.remove(null);
+        this.saveBatch(toDatabaseList);
+        log.info("主要人员信息同步完成");
+    }
+}
+
+
+
+

+ 24 - 0
data-service/src/main/resources/mapper/XcrAgriculturalSpecializedWebsiteMapper.xml

@@ -0,0 +1,24 @@
+<?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.zksy.data.mapper.XcrAgriculturalSpecializedWebsiteMapper">
+
+    <resultMap id="BaseResultMap" type="com.zksy.data.domain.po.XcrAgriculturalSpecializedWebsite">
+            <id property="xhCodeId" column="xh_code_id" jdbcType="BIGINT"/>
+            <result property="webid" column="WEBID" jdbcType="VARCHAR"/>
+            <result property="ancheid" column="ANCHEID" jdbcType="VARCHAR"/>
+            <result property="webtype" column="WEBTYPE" jdbcType="VARCHAR"/>
+            <result property="websitename" column="WEBSITENAME" jdbcType="VARCHAR"/>
+            <result property="website" column="WEBSITE" jdbcType="VARCHAR"/>
+            <result property="entcheyear" column="ENTCHEYEAR" jdbcType="OTHER"/>
+            <result property="sExtDatatime" column="S_EXT_DATATIME" jdbcType="TIMESTAMP"/>
+            <result property="uniCode" column="uni_code" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        xh_code_id,WEBID,ANCHEID,
+        WEBTYPE,WEBSITENAME,WEBSITE,
+        ENTCHEYEAR,S_EXT_DATATIME,uni_code
+    </sql>
+</mapper>

+ 48 - 0
data-service/src/main/resources/mapper/XcrMajorMembersMapper.xml

@@ -0,0 +1,48 @@
+<?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.zksy.data.mapper.XcrMajorMembersMapper">
+
+    <resultMap id="BaseResultMap" type="com.zksy.data.domain.po.XcrMajorMembers">
+            <id property="xhCodeId" column="xh_code_id" jdbcType="BIGINT"/>
+            <result property="etpsId" column="ETPS_ID" jdbcType="VARCHAR"/>
+            <result property="personid" column="PERSONID" jdbcType="VARCHAR"/>
+            <result property="pripid" column="PRIPID" jdbcType="VARCHAR"/>
+            <result property="name" column="NAME" jdbcType="VARCHAR"/>
+            <result property="sex" column="SEX" jdbcType="VARCHAR"/>
+            <result property="natdate" column="NATDATE" jdbcType="DATE"/>
+            <result property="certype" column="CERTYPE" jdbcType="VARCHAR"/>
+            <result property="cerno" column="CERNO" jdbcType="VARCHAR"/>
+            <result property="position" column="POSITION" jdbcType="VARCHAR"/>
+            <result property="positionCn" column="POSITION_CN" jdbcType="VARCHAR"/>
+            <result property="posbrform" column="POSBRFORM" jdbcType="VARCHAR"/>
+            <result property="occstbeapp" column="OCCSTBEAPP" jdbcType="VARCHAR"/>
+            <result property="lerepsign" column="LEREPSIGN" jdbcType="VARCHAR"/>
+            <result property="appounit" column="APPOUNIT" jdbcType="VARCHAR"/>
+            <result property="tel" column="TEL" jdbcType="VARCHAR"/>
+            <result property="country" column="COUNTRY" jdbcType="VARCHAR"/>
+            <result property="telnumber" column="TELNUMBER" jdbcType="VARCHAR"/>
+            <result property="mobtel" column="MOBTel" jdbcType="VARCHAR"/>
+            <result property="email" column="EMAIL" jdbcType="VARCHAR"/>
+            <result property="houseadd" column="HOUSEADD" jdbcType="VARCHAR"/>
+            <result property="arrchdate" column="ARRCHDATE" jdbcType="DATE"/>
+            <result property="repcarfrom" column="REPCARFROM" jdbcType="DATE"/>
+            <result property="repcarto" column="REPCARTO" jdbcType="DATE"/>
+            <result property="postalcode" column="POSTALCODE" jdbcType="VARCHAR"/>
+            <result property="sExtDatatime" column="S_EXT_DATATIME" jdbcType="TIMESTAMP"/>
+            <result property="uniCode" column="uni_code" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        xh_code_id,ETPS_ID,PERSONID,
+        PRIPID,NAME,SEX,
+        NATDATE,CERTYPE,CERNO,
+        POSITION,POSITION_CN,POSBRFORM,
+        OCCSTBEAPP,LEREPSIGN,APPOUNIT,
+        TEL,COUNTRY,TELNUMBER,
+        MOBTel,EMAIL,HOUSEADD,
+        ARRCHDATE,REPCARFROM,REPCARTO,
+        POSTALCODE,S_EXT_DATATIME,uni_code
+    </sql>
+</mapper>