diff --git a/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/FinanceApi.java b/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/FinanceApi.java index 7ca3a4505..08489a6d5 100644 --- a/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/FinanceApi.java +++ b/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/FinanceApi.java @@ -4,6 +4,7 @@ package org.sk.module.data.api.finance; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.sk.module.data.api.finance.dto.FinanceRespDTO; import org.sk.module.data.enums.ApiConstants; @@ -15,13 +16,16 @@ import org.springframework.web.bind.annotation.RequestParam; @Tag(name = "RPC 服务:财务数据") public interface FinanceApi { - String PREFIX = ApiConstants.PREFIX + "/finance"; - @GetMapping(PREFIX + "/get") + @GetMapping(PREFIX + "/getInfo") @Operation(summary = "获取财务信息") - @Parameter(name = "creditCode", description = "统一身份认证编码", example = "91340104MA2TK61Q1R", required = true) - CommonResult getDept(@RequestParam("creditCode") String creditCode); + @Parameters({ + @Parameter(name = "creditCode", description = "统一身份认证编码", example = "SEX", required = true), + @Parameter(name = "year", description = "年份", example = "2022", required = true) + }) + CommonResult getFinanceInfo(@RequestParam("creditCode") String creditCode, + @RequestParam("year") String year); } diff --git a/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/dto/FinanceRespDTO.java b/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/dto/FinanceRespDTO.java index 14780db01..d116f53f9 100644 --- a/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/dto/FinanceRespDTO.java +++ b/sk-module-data/sk-module-data-api/src/main/java/org/sk/module/data/api/finance/dto/FinanceRespDTO.java @@ -4,17 +4,25 @@ package org.sk.module.data.api.finance.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; + @Schema(description = "RPC 服务 - 财务数据 Response DTO") @Data public class FinanceRespDTO { + @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "企业") + private String comName; - @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Long id; - - + @Schema(description = "社会统一信用代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "008x") + private String creditCode; + @Schema(description = "营收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "23.10") + private BigDecimal Income; + @Schema(description = "税收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private BigDecimal tax; + @Schema(description = "年份", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022") + private String year; } diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/api/finance/FinanceApiImpl.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/api/finance/FinanceApiImpl.java index 4fc3f9aab..707fe885e 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/api/finance/FinanceApiImpl.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/api/finance/FinanceApiImpl.java @@ -1,23 +1,27 @@ package org.sk.module.data.api.finance; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import org.sk.module.data.api.finance.dto.FinanceRespDTO; +import org.sk.module.data.dal.bo.finance.FinanceBO; import org.sk.module.data.service.finance.FinanceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + @RestController // 提供 RESTful API 接口,给 Feign 调用 @Validated public class FinanceApiImpl implements FinanceApi { - @Autowired private FinanceService financeService; @Override - public CommonResult getDept(String creditCode) { - return null; + public CommonResult getFinanceInfo(String creditCode, String deptCode) { + FinanceBO result = financeService.getFinanceByCreditCodeAndYear(creditCode, deptCode); + return success(BeanUtils.toBean(result, FinanceRespDTO.class)); } } diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java index 0e73bf7e4..28f27ae7a 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/controller/finance/FinanceController.java @@ -1,18 +1,40 @@ package org.sk.module.data.controller.finance; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import org.sk.module.data.dal.bo.finance.FinanceBO; +import org.sk.module.data.dal.param.finance.FinanceParam; +import org.sk.module.data.dal.vo.FinanceVO; +import org.sk.module.data.service.finance.FinanceService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.validation.Valid; + @RestController @RequestMapping("/finance") public class FinanceController { + @Autowired + private FinanceService financeService; + @GetMapping("/get") public String get() { return "hello wzc"; } + + @GetMapping("/getFinanceInfo") + public CommonResult getFinanceInfo(@Valid @RequestBody FinanceParam financeParam) { + + FinanceBO result = financeService.getFinanceByCreditCodeAndYear(financeParam.getCreditCode(), + financeParam.getYear()); + + return CommonResult.success(BeanUtils.toBean(result, FinanceVO.class)); + } } diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/bo/finance/FinanceBO.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/bo/finance/FinanceBO.java new file mode 100644 index 000000000..6b904c923 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/bo/finance/FinanceBO.java @@ -0,0 +1,27 @@ +package org.sk.module.data.dal.bo.finance; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class FinanceBO { + + @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "企业") + private String comName; + + @Schema(description = "社会统一信用代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "008x") + private String creditCode; + + @Schema(description = "营收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "23.10") + private BigDecimal Income; + + @Schema(description = "税收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private BigDecimal tax; + + @Schema(description = "年份", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022") + private String year; + +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/finance/FinanceMapper.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/finance/FinanceMapper.java new file mode 100644 index 000000000..16615c4d3 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/mapper/finance/FinanceMapper.java @@ -0,0 +1,17 @@ +package org.sk.module.data.dal.mapper.finance; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.sk.module.data.dal.bo.finance.FinanceBO; + +@Mapper +public interface FinanceMapper { + + /** + * 根据社会统一信用代码和年份查下企业营收和税收 + * @param creditCode 社会统一信用代码 + * @param year 年份 + * @return FinanceBO + */ + FinanceBO getFinanceByCreditCodeAndYear(@Param("creditCode") String creditCode, @Param("year") String year); +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/param/finance/FinanceParam.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/param/finance/FinanceParam.java new file mode 100644 index 000000000..e227e2c97 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/param/finance/FinanceParam.java @@ -0,0 +1,18 @@ +package org.sk.module.data.dal.param.finance; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Schema(description = "财务数据 Request VO") +@Data +public class FinanceParam { + + @NotBlank(message = "社会统一代码不能为空") + private String creditCode; + + @NotBlank(message = "年份不能为空") + private String year; +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/vo/FinanceVO.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/vo/FinanceVO.java new file mode 100644 index 000000000..558b21694 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/dal/vo/FinanceVO.java @@ -0,0 +1,25 @@ +package org.sk.module.data.dal.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class FinanceVO { + + @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "企业") + private String comName; + + @Schema(description = "社会统一信用代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "008x") + private String creditCode; + + @Schema(description = "营收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "23.10") + private BigDecimal Income; + + @Schema(description = "税收(万)", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private BigDecimal tax; + + @Schema(description = "年份", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022") + private String year; +} diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceService.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceService.java index 677a688b4..e0dafe831 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceService.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceService.java @@ -1,10 +1,11 @@ package org.sk.module.data.service.finance; +import org.sk.module.data.dal.bo.finance.FinanceBO; + public interface FinanceService { - - + FinanceBO getFinanceByCreditCodeAndYear(String creditCode, String year); } diff --git a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java index ecf7e5e01..ca34a1fd1 100644 --- a/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java +++ b/sk-module-data/sk-module-data-biz/src/main/java/org/sk/module/data/service/finance/FinanceServiceImpl.java @@ -1,12 +1,24 @@ package org.sk.module.data.service.finance; +import org.apache.commons.lang3.StringUtils; +import org.sk.module.data.dal.bo.finance.FinanceBO; +import org.sk.module.data.dal.mapper.finance.FinanceMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class FinanceServiceImpl implements FinanceService { + @Autowired + private FinanceMapper financeMapper; - + @Override + public FinanceBO getFinanceByCreditCodeAndYear(String creditCode, String year) { + if (StringUtils.isBlank(creditCode) || StringUtils.isBlank(year)) { + return new FinanceBO(); + } + return financeMapper.getFinanceByCreditCodeAndYear(creditCode, year); + } } diff --git a/sk-module-data/sk-module-data-biz/src/main/resources/mappers/finance/FinanceMapper.xml b/sk-module-data/sk-module-data-biz/src/main/resources/mappers/finance/FinanceMapper.xml new file mode 100644 index 000000000..28dead882 --- /dev/null +++ b/sk-module-data/sk-module-data-biz/src/main/resources/mappers/finance/FinanceMapper.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file