From 83679f2da64ef982ee51fdc854ed182a8df57f42 Mon Sep 17 00:00:00 2001 From: ZZM <1105966949@qq.com> Date: Tue, 12 Aug 2025 10:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=B7=A5=E5=95=86=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=E5=BC=80=E4=B8=9A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crm/constant/CrmTaxServiceIdEnum.java | 1 + .../CrmGetV3SysRiskDataController.java | 9 + .../crm/controller/CrmGsdjxxController.java | 33 ++++ .../crm/entity/DTO/CrmQueryGsdjxxDTO.java | 29 +++ .../com/kakarote/crm/entity/PO/CrmGsdjxx.java | 172 ++++++++++++++++++ .../crm/entity/VO/CrmQueryGsdjxxVO.java | 121 ++++++++++++ .../kakarote/crm/mapper/CrmGsdjxxMapper.java | 15 ++ .../crm/mapper/xml/CrmGsdjxxMapper .xml | 69 +++++++ .../crm/service/ICrmGsdjxxService.java | 17 ++ .../crm/service/ICrmUserAnalyseService.java | 15 +- .../service/impl/CrmGsdjxxServiceImpl.java | 119 ++++++++++++ .../impl/CrmUserAnalyseServiceImpl.java | 38 +++- 12 files changed, 626 insertions(+), 12 deletions(-) create mode 100644 crm/src/main/java/com/kakarote/crm/controller/CrmGsdjxxController.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/DTO/CrmQueryGsdjxxDTO.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/PO/CrmGsdjxx.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryGsdjxxVO.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/CrmGsdjxxMapper.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/xml/CrmGsdjxxMapper .xml create mode 100644 crm/src/main/java/com/kakarote/crm/service/ICrmGsdjxxService.java create mode 100644 crm/src/main/java/com/kakarote/crm/service/impl/CrmGsdjxxServiceImpl.java diff --git a/crm/src/main/java/com/kakarote/crm/constant/CrmTaxServiceIdEnum.java b/crm/src/main/java/com/kakarote/crm/constant/CrmTaxServiceIdEnum.java index 530cecf..ee8093e 100644 --- a/crm/src/main/java/com/kakarote/crm/constant/CrmTaxServiceIdEnum.java +++ b/crm/src/main/java/com/kakarote/crm/constant/CrmTaxServiceIdEnum.java @@ -17,6 +17,7 @@ public enum CrmTaxServiceIdEnum { ENTERPRISE_INSURED_COUNT("JXSW.DZSWJ.CSXT.QYCBRSCX", "查询企业参保人数"), ENTERPRISE_INCOME_TAX_ANNUAL("JXSW.DZSWJ.CSXT.QYSDSNDSBXXCX", "查询企业所得税年度申报信息"), THREE_YEAR_INVOICE_SUMMARY("JXSW.DZSWJ.CSXT.CXFPHZXX", "查询近三年发票汇总"), + INDUSTRIAL_COMMERCIAL_REGISTRATION("JXSW.DZSWJ.CSXT.GSDJKYXXCX","查询工商登记信息"), ; private final String id; diff --git a/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java b/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java index 42fb942..c25c1b4 100644 --- a/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java +++ b/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java @@ -1,12 +1,15 @@ package com.kakarote.crm.controller; import com.kakarote.core.common.Result; +import com.kakarote.crm.entity.PO.CrmUserAnalyse; import com.kakarote.crm.entity.VO.CrmV3SysRiskDataExposedVo; import com.kakarote.crm.service.ICrmQyfxjcjgService; import com.kakarote.crm.service.ICrmUserAnalyseService; import com.kakarote.crm.service.ICrmQyfxjcjgZbmxService; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; +import java.util.List; @RestController @RequestMapping("/crmGetV3Data") @@ -35,5 +38,11 @@ public class CrmGetV3SysRiskDataController { public Result getTaxPreCheckUsage() throws IOException { return Result.ok(iCrmUserAnalyseService.addUserAnalyse()); } + + @PostMapping("/syncTaxPreCheckUsageByMonth/{month}") + @ApiOperation("根据月份同步税务预检使用情况信息") + public Result> syncTaxPreCheckUsageByMonth(@PathVariable String month){ + return Result.ok(iCrmUserAnalyseService.syncTaxPreCheckUsageByMonth(month)); + } } diff --git a/crm/src/main/java/com/kakarote/crm/controller/CrmGsdjxxController.java b/crm/src/main/java/com/kakarote/crm/controller/CrmGsdjxxController.java new file mode 100644 index 0000000..361e89e --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/controller/CrmGsdjxxController.java @@ -0,0 +1,33 @@ +package com.kakarote.crm.controller; + + +import com.kakarote.core.common.R; +import com.kakarote.core.common.Result; +import com.kakarote.crm.entity.DTO.CrmQueryGsdjxxDTO; +import com.kakarote.crm.entity.PO.CrmGsdjxx; +import com.kakarote.crm.entity.VO.CrmQueryGsdjxxVO; +import com.kakarote.crm.service.ICrmGsdjxxService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +import java.util.List; + +@RestController +@RequestMapping("/crmGsdjxx") +public class CrmGsdjxxController { + + @Autowired + private ICrmGsdjxxService iCrmGsdjxxService; + + @PostMapping("/queryByMonthAndXzqhDm") + @ApiOperation("根据月份和行政区划代码查询工商登记信息") + public Result> queryByMonthAndXzqhDm(@RequestBody CrmQueryGsdjxxDTO crmQueryGsdjxxDTO) throws Exception { + List crmQueryGsdjxxVOList = iCrmGsdjxxService.queryByMonthAndXzqhDm(crmQueryGsdjxxDTO); + return R.ok(crmQueryGsdjxxVOList); + } +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmQueryGsdjxxDTO.java b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmQueryGsdjxxDTO.java new file mode 100644 index 0000000..1fabf2f --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmQueryGsdjxxDTO.java @@ -0,0 +1,29 @@ +package com.kakarote.crm.entity.DTO; + +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Getter +@Setter +@Accessors(chain = true) +public class CrmQueryGsdjxxDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + // 登记序号 + private String yf; + + // 评价年度 + private String xzqhDm; + + @Override + public String toString() { + return "{" + + "yf:'" + yf + '\'' + + ", xzqhDm:'" + xzqhDm + '\'' + + '}'; + } +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/PO/CrmGsdjxx.java b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmGsdjxx.java new file mode 100644 index 0000000..cf218c3 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmGsdjxx.java @@ -0,0 +1,172 @@ +package com.kakarote.crm.entity.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 com.kakarote.core.security.converter.SensitiveDataConverter; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.apache.ibatis.type.JdbcType; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("wk_crm_gsdjxx") +@ApiModel(value="CrmGsdjxx对象", description="工商登记开业信息") +public class CrmGsdjxx implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 工商登记信息ID(主键) + */ + @TableId(value = "gxdjxx_id", type = IdType.AUTO) + private Integer gxdjxxId; // 对应SQL: gxdjxx_id + + /** + * 行政区划代码 + */ + private String xzqhDm; // 对应SQL: xzqh_dm + + /** + * 月份(格式:yyyy-MM) + */ + private String yf; // 对应SQL: yf + + /** + * 统一社会信用代码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String tyshxydm; // 对应SQL: tyshxydm + + /** + * 企业名称 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String nsrmc; // 对应SQL: nsrmc + + /** + * 登记注册类型代码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String djzclxDm; // 对应SQL: djzclx_dm + + /** + * 开业日期(格式:yyyy-MM-dd) + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String kyrq; // 对应SQL: kyrq + + /** + * 证照号码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String zzhm; // 对应SQL: zzhm + + /** + * 法人姓名 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String fddbrxm; // 对应SQL: fddbrxm + + /** + * 法人证件类型代码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String fddbrsfzjlxDm; // 对应SQL: fddbrsfzjlx_dm + + /** + * 法人证件号码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String fddbrsfzjhm; // 对应SQL: fddbrsfzjhm + + /** + * 法人固定电话 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String fddbrgddh; // 对应SQL: fddbrgddh + + /** + * 法人移动电话 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String fddbryddh; // 对应SQL: fddbryddh + + /** + * 财务负责人姓名 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String cwfzrxm; // 对应SQL: cwfzrxm + + /** + * 财务负责人证件号码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String cwfzrsfzjhm; // 对应SQL: cwfzrsfzjhm + + /** + * 财务固定电话 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String cwfzrgddh; // 对应SQL: cwfzrgddh + + /** + * 财务移动电话 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String cwfzryddh; // 对应SQL: cwfzryddh + + /** + * 生产经营地址 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String scjydz; // 对应SQL: scjydz + + /** + * 生产经营地区划代码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String scjydzxzqhszDm; // 对应SQL: scjydzxzqhsz_dm + + /** + * 生产经营地联系电话 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String scjydlxdh; // 对应SQL: scjydlxdh + + /** + * 生产经营地邮政编码 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String scjydyzbm; // 对应SQL: scjydyzbm + + /** + * 国标行业代码(GB/T 4754) + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String hyDm; // 对应SQL: hy_dm + + /** + * 从业人数 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String cyrs; // 对应SQL: cyrs + + /** + * 批准设立机构名称 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String pzsljgmc; // 对应SQL: pzsljgmc + + /** + * 经营范围 + */ + @TableField(typeHandler = SensitiveDataConverter.class, jdbcType = JdbcType.VARCHAR) + private String jyfw; // 对应SQL: jyfw +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryGsdjxxVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryGsdjxxVO.java new file mode 100644 index 0000000..0067849 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryGsdjxxVO.java @@ -0,0 +1,121 @@ +package com.kakarote.crm.entity.VO; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CrmQueryGsdjxxVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 统一社会信用代码 + */ + private String tyshxydm; // 对应SQL: tyshxydm + + /** + * 企业名称 + */ + private String nsrmc; // 对应SQL: nsrmc + + /** + * 登记注册类型代码 + */ + private String djzclxDm; // 对应SQL: djzclx_dm + + /** + * 开业日期(格式:yyyy-MM-dd) + */ + private String kyrq; // 对应SQL: kyrq + + /** + * 证照号码 + */ + private String zzhm; // 对应SQL: zzhm + + /** + * 法人姓名 + */ + private String fddbrxm; // 对应SQL: fddbrxm + + /** + * 法人证件类型代码 + */ + private String fddbrsfzjlxDm; // 对应SQL: fddbrsfzjlx_dm + + /** + * 法人证件号码 + */ + private String fddbrsfzjhm; // 对应SQL: fddbrsfzjhm + + /** + * 法人固定电话 + */ + private String fddbrgddh; // 对应SQL: fddbrgddh + + /** + * 法人移动电话 + */ + private String fddbryddh; // 对应SQL: fddbryddh + + /** + * 财务负责人姓名 + */ + private String cwfzrxm; // 对应SQL: cwfzrxm + + /** + * 财务负责人证件号码 + */ + private String cwfzrsfzjhm; // 对应SQL: cwfzrsfzjhm + + /** + * 财务固定电话 + */ + private String cwfzrgddh; // 对应SQL: cwfzrgddh + + /** + * 财务移动电话 + */ + private String cwfzryddh; // 对应SQL: cwfzryddh + + /** + * 生产经营地址 + */ + private String scjydz; // 对应SQL: scjydz + + /** + * 生产经营地区划代码 + */ + private String scjydzxzqhszDm; // 对应SQL: scjydzxzqhsz_dm + + /** + * 生产经营地联系电话 + */ + private String scjydlxdh; // 对应SQL: scjydlxdh + + /** + * 生产经营地邮政编码 + */ + private String scjydyzbm; // 对应SQL: scjydyzbm + + /** + * 国标行业代码(GB/T 4754) + */ + private String hyDm; // 对应SQL: hy_dm + + /** + * 从业人数 + */ + private String cyrs; // 对应SQL: cyrs + + /** + * 批准设立机构名称 + */ + private String pzsljgmc; // 对应SQL: pzsljgmc + + /** + * 经营范围 + */ + private String jyfw; // 对应SQL: jyfw +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/CrmGsdjxxMapper.java b/crm/src/main/java/com/kakarote/crm/mapper/CrmGsdjxxMapper.java new file mode 100644 index 0000000..fd92278 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/CrmGsdjxxMapper.java @@ -0,0 +1,15 @@ +package com.kakarote.crm.mapper; + +import com.kakarote.core.servlet.BaseMapper; +import com.kakarote.crm.entity.PO.CrmGsdjxx; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + + +@Repository +public interface CrmGsdjxxMapper extends BaseMapper { + + int insertBatch(@Param("list") List list); +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmGsdjxxMapper .xml b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmGsdjxxMapper .xml new file mode 100644 index 0000000..0994b09 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmGsdjxxMapper .xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO wk_crm_gsdjxx ( + xzqh_dm, yf, tyshxydm, nsrmc, djzclx_dm, kyrq, zzhm, + fddbrxm, fddbrsfzjlx_dm, fddbrsfzjhm, fddbrgddh, fddbryddh, + cwfzrxm, cwfzrsfzjhm, cwfzrgddh, cwfzryddh, + scjydz, scjydzxzqhsz_dm, scjydlxdh, scjydyzbm, + hy_dm, cyrs, pzsljgmc, jyfw + ) VALUES + + ( + #{item.xzqhDm}, #{item.yf}, + #{item.tyshxydm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.nsrmc, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.djzclxDm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.kyrq, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.zzhm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.fddbrxm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.fddbrsfzjlxDm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.fddbrsfzjhm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.fddbrgddh, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.fddbryddh, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.cwfzrxm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.cwfzrsfzjhm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.cwfzrgddh, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.cwfzryddh, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.scjydz, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.scjydzxzqhszDm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.scjydlxdh, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.scjydyzbm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.hyDm, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.cyrs, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.pzsljgmc, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter}, + #{item.jyfw, typeHandler=com.kakarote.core.security.converter.SensitiveDataConverter} + ) + + + + diff --git a/crm/src/main/java/com/kakarote/crm/service/ICrmGsdjxxService.java b/crm/src/main/java/com/kakarote/crm/service/ICrmGsdjxxService.java new file mode 100644 index 0000000..e9cd706 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/ICrmGsdjxxService.java @@ -0,0 +1,17 @@ +package com.kakarote.crm.service; + +import com.kakarote.core.servlet.BaseService; +import com.kakarote.crm.entity.DTO.CrmQueryGsdjxxDTO; +import com.kakarote.crm.entity.PO.CrmGsdjxx; +import com.kakarote.crm.entity.PO.CrmQyxxfp; +import com.kakarote.crm.entity.VO.CrmQueryGsdjxxVO; + +import java.util.List; + +public interface ICrmGsdjxxService extends BaseService { + + /** + * 根据月份、行政区划代码,查询工商登记信息 + */ + List queryByMonthAndXzqhDm(CrmQueryGsdjxxDTO crmQueryGsdjxxDTO) throws Exception; +} diff --git a/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java b/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java index e7a34a5..38d95d5 100644 --- a/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java +++ b/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java @@ -1,22 +1,23 @@ package com.kakarote.crm.service; - -import com.alibaba.fastjson.JSONObject; -import com.kakarote.core.feign.crm.entity.BiParams; import com.kakarote.core.servlet.BaseService; import com.kakarote.crm.entity.PO.CrmUserAnalyse; - import java.io.IOException; -import java.util.Map; - +import java.util.List; public interface ICrmUserAnalyseService extends BaseService { - /** * 添加CrmUserAnalyse * @return */ int addUserAnalyse() throws IOException; + /** + * 根据月份同步税务预检使用情况信息 + * @param month + * @return + */ + List syncTaxPreCheckUsageByMonth(String month); + } diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmGsdjxxServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmGsdjxxServiceImpl.java new file mode 100644 index 0000000..215093b --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmGsdjxxServiceImpl.java @@ -0,0 +1,119 @@ +package com.kakarote.crm.service.impl; + +import cn.hutool.log.Log; +import cn.hutool.log.LogFactory; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.fasterxml.jackson.core.type.TypeReference; +import com.kakarote.core.servlet.BaseServiceImpl; + +import com.kakarote.crm.constant.CrmTaxServiceIdEnum; +import com.kakarote.crm.entity.DTO.CrmQueryGsdjxxDTO; +import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO; +import com.kakarote.crm.entity.PO.CrmGsdjxx; +import com.kakarote.crm.entity.VO.CrmQueryGsdjxxVO; +import com.kakarote.crm.mapper.CrmGsdjxxMapper; +import com.kakarote.crm.service.ICrmGsdjxxService; +import com.kakarote.crm.util.JsonUtil; +import com.kakarote.crm.util.WebServiceHandlerUtil; +import com.kakarote.crm.webService.config.TaxWebServiceConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +import java.util.stream.Collectors; + +@Service +public class CrmGsdjxxServiceImpl extends BaseServiceImpl implements ICrmGsdjxxService { + + @Autowired + private CrmGsdjxxMapper crmGsdjxxMapper; + + @Autowired + private TaxWebServiceConfig config; + + private static final Log log = LogFactory.get(); + + @Override + public List queryByMonthAndXzqhDm(CrmQueryGsdjxxDTO crmQueryGsdjxxDTO) throws Exception { + + QueryWrapper wrapper = new QueryWrapper().eq("yf", crmQueryGsdjxxDTO.getYf()) + .eq("xzqh_dm", crmQueryGsdjxxDTO.getXzqhDm()); + + List crmGsdjxxes = crmGsdjxxMapper.selectList(wrapper); + + if (crmGsdjxxes != null && !crmGsdjxxes.isEmpty()) { + return convertListToVO(crmGsdjxxes); + } + + String respJson = WebServiceHandlerUtil.connect( + CrmTaxServiceIdEnum.INDUSTRIAL_COMMERCIAL_REGISTRATION.getId(), + crmQueryGsdjxxDTO.toString(), + config + ); + + CrmWebServiceResponseDTO> responseDTO = JsonUtil.toObject( + respJson, + new TypeReference>>() {} + ); + + List crmGsdjxxList = responseDTO.getData(); + + return processAndSaveData(crmGsdjxxList, crmQueryGsdjxxDTO); + } + + private CrmQueryGsdjxxVO convertToVO(CrmGsdjxx source) { + + if (source == null) { + return null; + } + + CrmQueryGsdjxxVO target = new CrmQueryGsdjxxVO(); + // 同名字段直接赋值(需严格匹配类型) + target.setTyshxydm(source.getTyshxydm()); + target.setNsrmc(source.getNsrmc()); + target.setDjzclxDm(source.getDjzclxDm()); + target.setKyrq(source.getKyrq()); + target.setZzhm(source.getZzhm()); + target.setFddbrxm(source.getFddbrxm()); + target.setFddbrsfzjlxDm(source.getFddbrsfzjlxDm()); + target.setFddbrsfzjhm(source.getFddbrsfzjhm()); + target.setFddbrgddh(source.getFddbrgddh()); + target.setFddbryddh(source.getFddbryddh()); + target.setCwfzrxm(source.getCwfzrxm()); + target.setCwfzrsfzjhm(source.getCwfzrsfzjhm()); + target.setCwfzrgddh(source.getCwfzrgddh()); + target.setCwfzryddh(source.getCwfzryddh()); + target.setScjydz(source.getScjydz()); + target.setScjydzxzqhszDm(source.getScjydzxzqhszDm()); + target.setScjydlxdh(source.getScjydlxdh()); + target.setScjydyzbm(source.getScjydyzbm()); + target.setHyDm(source.getHyDm()); + target.setCyrs(source.getCyrs()); + target.setPzsljgmc(source.getPzsljgmc()); + target.setJyfw(source.getJyfw()); + + return target; + } + + private List convertListToVO(List crmGsdjxxList) { + return crmGsdjxxList.stream() + .map(this::convertToVO) + .collect(Collectors.toList()); + } + + private List processAndSaveData(List crmGsdjxxList,CrmQueryGsdjxxDTO crmQueryGsdjxxDTO) { + + crmGsdjxxList.forEach(crmGsdjxx -> { + crmGsdjxx.setYf(crmQueryGsdjxxDTO.getYf()); + crmGsdjxx.setXzqhDm(crmQueryGsdjxxDTO.getXzqhDm()); + }); + + int inserted = crmGsdjxxMapper.insertBatch(crmGsdjxxList); + + log.info("成功插入了" + inserted + "条数据"); + + return convertListToVO(crmGsdjxxList); + } + +} diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java index a75ce40..ed3dab9 100644 --- a/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java @@ -17,10 +17,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.Month; -import java.time.ZoneId; +import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; @@ -54,6 +51,37 @@ public class CrmUserAnalyseServiceImpl extends BaseServiceImpl syncTaxPreCheckUsageByMonth(String month) { + + DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyyMM"); + + YearMonth yearMonth = YearMonth.parse(month, MONTH_FORMATTER); + + List dates = new ArrayList<>(); + + for (int day = 1; day <= yearMonth.lengthOfMonth(); day++) { + dates.add(yearMonth.atDay(day)); + } + + List crmUserAnalyses = new ArrayList<>(); + + dates.forEach(date->{ + try { + CrmUserAnalyse analyse = getCrmUserAnalyse(date); + if (analyse != null) { + crmUserAnalyses.add(analyse); + crmUserAnalyseMapper.insert(analyse); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + return crmUserAnalyses; + } + public CrmUserAnalyse getCrmUserAnalyse(LocalDate queryDate) throws IOException { String url = getUrl(); @@ -70,7 +98,7 @@ public class CrmUserAnalyseServiceImpl extends BaseServiceImpl