Преглед на файлове

添加企业报告接口

邵洋 преди 1 година
родител
ревизия
521fac2bdd

+ 43 - 0
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/InformationController.java

@@ -0,0 +1,43 @@
+package com.zksy.web.controller.basicData;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zksy.basicData.domain.XcrAbnormalBusinessOperations;
+import com.zksy.basicData.service.IXcrAbnormalBusinessOperationsService;
+import com.zksy.basicData.service.InformationService;
+import com.zksy.common.annotation.Log;
+import com.zksy.common.core.controller.BaseController;
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.enums.BusinessType;
+import com.zksy.common.utils.SearchUtil;
+import com.zksy.common.utils.poi.ExcelUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 经营异常名录信息Controller
+ *
+ * @author nahida
+ * @date 2024-11-04
+ */
+@RestController
+@RequestMapping("/basicData/information")
+@Api(tags = "企业汇总", description = "企业汇总desc")
+public class InformationController extends BaseController{
+
+    @Autowired
+    private InformationService service;
+    @Log(title = "企业信用报告")
+    @GetMapping("/report")
+    @ApiOperation(value = "企业信用报告", notes = "企业信用报告")
+    public AjaxResult report(String creditCode)
+    {
+        creditCode = "91431227MA4LY5GC2Y";
+        return service.queryByCreditCode(creditCode);
+    }
+}

+ 1 - 1
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrEnterpriseBasicInformationController.java

@@ -27,7 +27,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/basicData/xcrEnterpriseBasicInformation")
-@Api(tags = "企业基本信息", description = "企业基本信息desc")
+@Api(tags = "企业基本信息(弃用)", description = "企业基本信息desc")
 public class XcrEnterpriseBasicInformationController extends BaseController{
 
     @Autowired

+ 1 - 1
background-service/zksy-system/src/main/java/com/zksy/basicData/domain/XcrEnterpriseBasicInformation.java

@@ -28,7 +28,7 @@ import com.zksy.common.core.domain.BasePo;
 @TableName("xcr_enterprise_basic_information")
 @AllArgsConstructor
 @NoArgsConstructor
-@ApiModel(value = "企业基本信息")
+@ApiModel(value = "企业基本信息(弃用)")
 public class XcrEnterpriseBasicInformation extends BasePo {
 
 private static final long serialVersionUID=1L;

+ 6 - 0
background-service/zksy-system/src/main/java/com/zksy/basicData/mapper/BaseTableMapper.java

@@ -0,0 +1,6 @@
+package com.zksy.basicData.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface BaseTableMapper<T> extends BaseMapper<T> {
+}

+ 90 - 0
background-service/zksy-system/src/main/java/com/zksy/basicData/service/InformationService.java

@@ -0,0 +1,90 @@
+package com.zksy.basicData.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zksy.basicData.mapper.BaseTableMapper;
+import com.zksy.basicData.mapper.XcrAbnormalBusinessOperationsMapper;
+import com.zksy.basicData.mapper.XcrEBaseinfoMapper;
+import com.zksy.basicData.mapper.XcrOtherInfo36Mapper;
+import com.zksy.common.core.domain.AjaxResult;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class InformationService {
+
+    @Autowired
+    private XcrAbnormalBusinessOperationsMapper xcrAbnormalBusinessOperationsMapper;
+    @Autowired
+    private XcrEBaseinfoMapper xcrEBaseinfoMapper;
+    @Autowired
+    private XcrOtherInfo36Mapper xcrOtherInfo36Mapper;
+
+    @Autowired
+    private ThreadPoolTaskExecutor taskExecutor;
+    private List<BaseMapper<?>> mappers;
+    @PostConstruct
+    public void init() {
+        this.mappers = Arrays.asList(xcrAbnormalBusinessOperationsMapper, xcrEBaseinfoMapper,xcrOtherInfo36Mapper);
+    }
+    public AjaxResult queryByCreditCode(String creditCode) {
+        Map<String, List<?>> resultMap = new ConcurrentHashMap<>();
+
+        List<CompletableFuture<Void>> futures = mappers.stream()
+                .map(mapper -> CompletableFuture.runAsync(() -> {
+                    try {
+                        List<?> result = queryFromMapper(mapper, creditCode);
+                            String mapperName = getOriginalClassName(mapper);
+                            resultMap.put(mapperName, result);
+
+                    } catch (Exception e) {
+                        // 记录异常日志
+                        log.error("查询失败: " + mapper.getClass().getName(), e);
+                    }
+                }, taskExecutor))
+                .collect(Collectors.toList());
+
+        // 等待所有异步任务完成
+        CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
+
+        return AjaxResult.success("查询成功", resultMap);
+    }
+
+    private <T> List<T> queryFromMapper(BaseMapper<T> mapper, String creditCode) {
+        try {
+            QueryWrapper<T> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("uni_code", creditCode);
+            List<T> ts = mapper.selectList(queryWrapper);
+            return ts;
+        } catch (Exception e) {
+            // 记录异常日志
+            log.error("查询失败: " + mapper.getClass().getName(), e);
+            return null;
+        }
+    }
+    private String getOriginalClassName(Object obj) {
+        Class<?>[] interfaces = obj.getClass().getInterfaces();
+        for (Class<?> iface : interfaces) {
+            String className = iface.getSimpleName();
+            // 去掉前缀 "Xcr" 和后缀 "Mapper"
+            if (className.startsWith("Xcr") && className.endsWith("Mapper")) {
+                return className.substring(3, className.length() - 5);
+            }
+        }
+        return obj.getClass().getSimpleName();
+    }
+}