ソースを参照

修正定时任务为并行流以及信用报告推进

nahida 1 年間 前
コミット
ab3f2b2e38

+ 11 - 0
background-service/zksy-admin/src/main/java/com/zksy/web/controller/report/CreditReportController.java

@@ -1,5 +1,9 @@
 package com.zksy.web.controller.report;
 
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.report.service.CreditReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -7,4 +11,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/report")
 public class CreditReportController {
 
+    @Autowired
+    private CreditReportService creditReportService;
+
+    @GetMapping("/queryByUniCode")
+    public AjaxResult queryByUniCode(String uniCode) {
+        return creditReportService.queryByUniCode(uniCode);
+    }
 }

+ 20 - 0
background-service/zksy-admin/src/test/java/com/zksy/web/controller/report/CreditReportControllerTest.java

@@ -0,0 +1,20 @@
+package com.zksy.web.controller.report;
+
+import com.zksy.report.service.CreditReportService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@SpringBootTest
+class CreditReportControllerTest {
+
+    @Autowired
+    private CreditReportService creditReportService;
+
+    @Test
+    public void queryByUniCode() {
+        System.out.println(creditReportService.queryByUniCode("91431227MA4LY5GC2Y"));
+    }
+}

+ 5 - 0
background-service/zksy-common/pom.xml

@@ -128,6 +128,11 @@
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 17 - 0
background-service/zksy-system/pom.xml

@@ -7,6 +7,18 @@
         <groupId>com.zksy</groupId>
         <version>3.8.8</version>
     </parent>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>9</source>
+                    <target>9</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>zksy-system</artifactId>
@@ -22,6 +34,11 @@
             <groupId>com.zksy</groupId>
             <artifactId>zksy-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
 
     </dependencies>
 

+ 52 - 0
background-service/zksy-system/src/main/java/com/zksy/report/domain/CreditReportVo.java

@@ -0,0 +1,52 @@
+package com.zksy.report.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CreditReportVo {
+    private List<A> a;
+    private B b;
+    private C c;
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class A{
+        private String position;
+        private String name;
+        private String phone;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class B{
+        private String addr;
+        private String site;
+        private String weixin;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class C{
+        private String enterpriseName;
+        private String uniCode;
+        private String addr;
+        private String registeredCapital;
+        private String paidInCapital;
+        private String legalRepresentative;
+        private String companyType;
+        private String establishedTime;
+        private String businessTerm;
+        private String sector;
+        private String industryCode;
+        private String compantStatus;
+        private String registrationAuthority;
+        private String businessScope;
+    }
+}

+ 9 - 0
background-service/zksy-system/src/main/java/com/zksy/report/service/CreditReportService.java

@@ -0,0 +1,9 @@
+package com.zksy.report.service;
+
+import com.zksy.common.core.domain.AjaxResult;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface CreditReportService {
+    AjaxResult queryByUniCode(String uniCode);
+}

+ 155 - 0
background-service/zksy-system/src/main/java/com/zksy/report/service/Impl/CreditReportServiceImpl.java

@@ -0,0 +1,155 @@
+package com.zksy.report.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zksy.basicData.domain.XcrAnnualReportBaseInfo;
+import com.zksy.basicData.domain.XcrEBaseinfo;
+import com.zksy.basicData.domain.XcrEnterpriseAnnualReportWebsite;
+import com.zksy.basicData.mapper.XcrAnnualReportBaseInfoMapper;
+import com.zksy.basicData.mapper.XcrEBaseinfoMapper;
+import com.zksy.basicData.mapper.XcrEnterpriseAnnualReportWebsiteMapper;
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.report.domain.CreditReportVo;
+import com.zksy.report.service.CreditReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class CreditReportServiceImpl implements CreditReportService {
+    
+    private final String DEFAULT_VALUE = "暂无";
+    private String uniCode;
+    @Override
+    public AjaxResult queryByUniCode(String uniCode) {
+        this.uniCode = uniCode;
+        CreditReportVo creditReportVo = new CreditReportVo();
+        processCreditReportVoA(creditReportVo);
+        processCreditReportVoB(creditReportVo);
+        processCreditReportVoC(creditReportVo);
+        return AjaxResult.success(creditReportVo);
+    }
+    @Autowired
+    private XcrEBaseinfoMapper xcrEBaseinfoMapper;
+    @Autowired
+    private XcrAnnualReportBaseInfoMapper xcrAnnualReportBaseInfoMapper;
+    @Autowired
+    private XcrEnterpriseAnnualReportWebsiteMapper xcrEnterpriseAnnualReportWebsiteMapper;
+    private void processCreditReportVoA(CreditReportVo vo) {
+        LambdaQueryWrapper<XcrEBaseinfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrEBaseinfo::getUniCode, uniCode);
+        XcrEBaseinfo one = xcrEBaseinfoMapper.selectOne(wrapper);
+        CreditReportVo.A a1 = new CreditReportVo.A("法定代表人", DEFAULT_VALUE, DEFAULT_VALUE);
+        CreditReportVo.A a2 = new CreditReportVo.A("董事长", DEFAULT_VALUE, DEFAULT_VALUE);
+        CreditReportVo.A a3 = new CreditReportVo.A("总经理", DEFAULT_VALUE, DEFAULT_VALUE);
+        CreditReportVo.A a4 = new CreditReportVo.A("财务负责人", DEFAULT_VALUE, DEFAULT_VALUE);
+        CreditReportVo.A a5 = new CreditReportVo.A("信用专干", DEFAULT_VALUE, DEFAULT_VALUE);
+        a1 = Optional.ofNullable(one)
+                .map(q -> new CreditReportVo.A("法定代表人", Optional.ofNullable(q.getNAME()).orElse(DEFAULT_VALUE), DEFAULT_VALUE))
+                .orElse(a1);
+        vo.setA(List.of(a1, a2, a3, a4, a5));
+    }
+
+    private void processCreditReportVoB(CreditReportVo vo) {
+        CreditReportVo.B b = new CreditReportVo.B();
+        //设置地址
+        LambdaQueryWrapper<XcrAnnualReportBaseInfo> w1 = new LambdaQueryWrapper<>();
+        w1.eq(XcrAnnualReportBaseInfo::getUniCode, uniCode);
+        XcrAnnualReportBaseInfo one = xcrAnnualReportBaseInfoMapper.selectOne(w1);
+        String addr = Optional.ofNullable(one)
+                .map(XcrAnnualReportBaseInfo::getADDR)
+                .orElse(DEFAULT_VALUE);
+        b.setAddr(addr);
+        //设置网站
+        LambdaQueryWrapper<XcrEnterpriseAnnualReportWebsite> w2 = new LambdaQueryWrapper<>();
+        w2.eq(XcrEnterpriseAnnualReportWebsite::getUniCode, uniCode);
+        XcrEnterpriseAnnualReportWebsite one1 = xcrEnterpriseAnnualReportWebsiteMapper.selectOne(w2);
+        String site = Optional.ofNullable(one1)
+                .map(XcrEnterpriseAnnualReportWebsite::getWEBSITE)
+                .orElse(DEFAULT_VALUE);
+        b.setSite(site);
+        //设置微信公众号
+        b.setWeixin(DEFAULT_VALUE);
+        vo.setB(b);
+    }
+
+    private void processCreditReportVoC(CreditReportVo creditReportVo) {
+        CreditReportVo.C c = new CreditReportVo.C();
+        LambdaQueryWrapper<XcrEBaseinfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrEBaseinfo::getUniCode, uniCode);
+        XcrEBaseinfo one = xcrEBaseinfoMapper.selectOne(wrapper);
+        //设置企业名称
+        c.setEnterpriseName(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getENTNAME)
+                .orElse(DEFAULT_VALUE));
+        //设置统一社会信用代码
+        c.setUniCode(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getUNISCID)
+                .orElse(DEFAULT_VALUE));
+        //设置住所
+        c.setAddr(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getDOM)
+                .orElse(DEFAULT_VALUE));
+        // 设置注册资本
+        c.setRegisteredCapital(Optional.ofNullable(one)
+                .map(q -> Optional.ofNullable(q.getREGCAP())
+                        .map(regCap -> regCap + Optional.ofNullable(q.getRegcapcurCn()).orElse(""))
+                        .orElse(DEFAULT_VALUE))
+                .orElse(DEFAULT_VALUE));
+        // 设置实缴资本
+        c.setPaidInCapital(Optional.ofNullable(one)
+                .map(q -> Optional.ofNullable(q.getREGCAP())
+                        .map(regCap -> regCap + Optional.ofNullable(q.getRegcapcurCn()).orElse(""))
+                        .orElse(DEFAULT_VALUE))
+                .orElse(DEFAULT_VALUE));
+        //设置法定代表人姓名
+        c.setLegalRepresentative(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getNAME)
+                .orElse(DEFAULT_VALUE));
+        //设置公司类型
+        c.setCompanyType(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getENTTYPE)
+                .orElse(DEFAULT_VALUE));
+        // 设置成立日期
+        c.setEstablishedTime(Optional.ofNullable(one)
+                .map(q -> Optional.ofNullable(q.getESTDATE())
+                        .map(w->{
+                            SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+                            return f.format(w);
+                        })
+                        .orElse(DEFAULT_VALUE))
+                .orElse(DEFAULT_VALUE));
+        // 设置营业期限
+        c.setBusinessTerm(Optional.ofNullable(one)
+                .map(q -> Optional.ofNullable(q.getOPTO())
+                        .map(w->{
+                            SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+                            return f.format(w);
+                        })
+                        .orElse(DEFAULT_VALUE))
+                .orElse(DEFAULT_VALUE));
+        //设置所属行业
+        c.setSector(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getINDUSTRYPHY)
+                .orElse(DEFAULT_VALUE));
+        //设置行业代码
+        c.setIndustryCode(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getINDUSTRYCO)
+                .orElse(DEFAULT_VALUE));
+        //设置企业状态
+        c.setCompantStatus(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getRegstateCn)
+                .orElse(DEFAULT_VALUE));
+        //设置登记机关
+        c.setRegistrationAuthority(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getREGORG)
+                .orElse(DEFAULT_VALUE));
+        //设置经营范围
+        c.setBusinessScope(Optional.ofNullable(one)
+                .map(XcrEBaseinfo::getOPSCOPE)
+                .orElse(DEFAULT_VALUE));
+        creditReportVo.setC(c);
+    }
+}

+ 1 - 5
data-service/src/main/java/com/zksy/data/schedule/SyncTimeTaskSchedule.java

@@ -1,10 +1,8 @@
 package com.zksy.data.schedule;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zksy.data.domain.dto.TimeTaskDto;
 import com.zksy.data.domain.po.XhTimeTask;
 import com.zksy.data.mapper.XhTimeTaskMapper;
-import com.zksy.data.service.IBaseSaveDataInterface;
 import com.zksy.data.utils.TaskManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
@@ -13,8 +11,6 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
 
 @Component
 @EnableScheduling
@@ -40,7 +36,7 @@ public class SyncTimeTaskSchedule {
         //判断list的长度和taskManager.getTaskMap()的长度是否一致,如果不一致就进行同步
         taskManager.stopAllTasks();
         if(list.size()!=taskManager.getTaskMap().size()){
-            list.forEach(task->{
+            list.parallelStream().forEach(task->{
                 if(!taskManager.getTaskMap().containsKey(task.getTaskName())){
                     taskManager.addTask(task.getTaskName(),() -> {
                         //暂时先打印