Browse Source

已注册应用接口

master
PoffyZhang 1 year ago
parent
commit
b416d89f7f
8 changed files with 95 additions and 40 deletions
  1. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/irs/controller/ApplicationController.java
  2. +20
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java
  3. +33
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/IrsManage.java
  4. +21
    -36
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java
  5. +1
    -0
      pmapi/src/main/resources/application-dev.yml
  6. +1
    -0
      pmapi/src/main/resources/application-prod.yml
  7. +9
    -0
      pmapi/src/test/resources/application-dev.yml
  8. +5
    -0
      pmapi/src/test/resources/application-prod.yml

+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/irs/controller/ApplicationController.java View File

@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.List;


/** /**
* @Classname ApplicationController * @Classname ApplicationController
@@ -37,4 +38,8 @@ public class ApplicationController {
return appIrsManage.searchApp(apply); return appIrsManage.searchApp(apply);
} }


@GetMapping("/sreach-apps")
public List<ApiApplySearchResult> searchApps(ApiApplyDTO apply) throws NoSuchAlgorithmException {
return appIrsManage.searchApps(apply);
}
} }

+ 20
- 0
pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java View File

@@ -27,6 +27,7 @@ import org.springframework.web.client.RestTemplate;


import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -169,4 +170,23 @@ public class AppIrsManage {
} }
return null; return null;
} }

public List<ApiApplySearchResult> searchApps(ApiApplyDTO apply) throws NoSuchAlgorithmException {
long timestamp = System.currentTimeMillis();

String requestSecret = RefreshKeyUtil.getRequestSecret(searchAppKey, searchAppScret);
String sign = CryptUtils.MD5Encode(searchAppKey + requestSecret + timestamp);
String url = searchUrl + "?requestTime=" + timestamp + "&sign=" + sign +
"&appKey=" + searchAppKey + "&" +
"pageSize=100&pageNum=1";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<ApiSearchResult> forEntity = restTemplate.getForEntity(url, ApiSearchResult.class);

log.info("查询应用目录 : {}",JSON.toJSONString(forEntity));

if(Objects.nonNull(forEntity.getBody()) && CollUtil.isNotEmpty(forEntity.getBody().getApiApplySearchResult())){
return forEntity.getBody().getApiApplySearchResult();
}
return Collections.emptyList();
}
} }

+ 33
- 4
pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/IrsManage.java View File

@@ -3,6 +3,9 @@ package com.ningdatech.pmapi.projectdeclared.manage;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.pmapi.irs.manage.AppIrsManage;
import com.ningdatech.pmapi.irs.model.dto.ApiApplyDTO;
import com.ningdatech.pmapi.irs.model.dto.ApiApplySearchResult;
import com.ningdatech.pmapi.projectdeclared.model.entity.IrsApplication; import com.ningdatech.pmapi.projectdeclared.model.entity.IrsApplication;
import com.ningdatech.pmapi.projectdeclared.model.entity.NdPiotTasks; import com.ningdatech.pmapi.projectdeclared.model.entity.NdPiotTasks;
import com.ningdatech.pmapi.projectdeclared.model.vo.IrsApplicationVO; import com.ningdatech.pmapi.projectdeclared.model.vo.IrsApplicationVO;
@@ -11,8 +14,10 @@ import com.ningdatech.pmapi.projectdeclared.service.INdPiotTasksService;
import com.ningdatech.pmapi.projectdeclared.service.IrsApplicationService; import com.ningdatech.pmapi.projectdeclared.service.IrsApplicationService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;


import java.security.NoSuchAlgorithmException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -28,10 +33,15 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class IrsManage { public class IrsManage {


@Value("${irs.is-piot-tasks}")
private Boolean isPiotTasks;

private final IrsApplicationService irsApplicationService; private final IrsApplicationService irsApplicationService;


private final INdPiotTasksService piotTasksService; private final INdPiotTasksService piotTasksService;


private final AppIrsManage appIrsManage;



public List<IrsApplicationVO> applicationList() { public List<IrsApplicationVO> applicationList() {
List<IrsApplication> list = irsApplicationService.list(); List<IrsApplication> list = irsApplicationService.list();
@@ -42,10 +52,29 @@ public class IrsManage {
} }


public List<PiotTasksVO> listPiotTasks() { public List<PiotTasksVO> listPiotTasks() {
List<NdPiotTasks> list = piotTasksService.list();
if(CollUtil.isEmpty(list)){
return Collections.emptyList();
//不请求IRS
if(!isPiotTasks){
List<NdPiotTasks> list = piotTasksService.list();
if(CollUtil.isEmpty(list)){
return Collections.emptyList();
}
return CollUtils.convert(list,task -> BeanUtil.copyProperties(task,PiotTasksVO.class));
}
try {
List<ApiApplySearchResult> apiApplySearchResults = appIrsManage.searchApps(new ApiApplyDTO());
if(CollUtil.isNotEmpty(apiApplySearchResults)){
return apiApplySearchResults.stream().map(apply -> {
PiotTasksVO vo = new PiotTasksVO();
vo.setTaskCode(apply.getAppId());
vo.setTaskName(apply.getName());
vo.setImportantTaskName(apply.getName());
vo.setSubSceneApplicationName(apply.getName());
return vo;
}).collect(Collectors.toList());
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} }
return CollUtils.convert(list,task -> BeanUtil.copyProperties(task,PiotTasksVO.class));
return Collections.emptyList();
} }
} }

+ 21
- 36
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java View File

@@ -239,6 +239,8 @@ public class ProjectLibManage {
//采取批量删除 批量添加的方式 //采取批量删除 批量添加的方式
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,project.getId())); .eq(ProjectApplication::getProjectId,project.getId()));
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectCode,project.getProjectCode()));
if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) {
Project finalProject = project; Project finalProject = project;
List<ProjectApplication> applications = projectDto.getApplicationList().stream().map(application -> { List<ProjectApplication> applications = projectDto.getApplicationList().stream().map(application -> {
@@ -246,6 +248,7 @@ public class ProjectLibManage {
BeanUtils.copyProperties(application, projectApplication); BeanUtils.copyProperties(application, projectApplication);
projectApplication.setId(null); projectApplication.setId(null);
projectApplication.setProjectId(finalProject.getId()); projectApplication.setProjectId(finalProject.getId());
projectApplication.setProjectCode(finalProject.getProjectCode());
projectApplication.setBuildOrgCode(finalProject.getBuildOrgCode()); projectApplication.setBuildOrgCode(finalProject.getBuildOrgCode());
projectApplication.setBuildOrgName(finalProject.getBuildOrgName()); projectApplication.setBuildOrgName(finalProject.getBuildOrgName());
return projectApplication; return projectApplication;
@@ -275,6 +278,8 @@ public class ProjectLibManage {
//采取批量删除 批量添加的方式 //采取批量删除 批量添加的方式
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,project.getId())); .eq(ProjectApplication::getProjectId,project.getId()));
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectCode,project.getProjectCode()));
if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) {
Project finalProject = project; Project finalProject = project;
List<ProjectApplication> applications = projectDto.getApplicationList().stream().map(application -> { List<ProjectApplication> applications = projectDto.getApplicationList().stream().map(application -> {
@@ -282,6 +287,7 @@ public class ProjectLibManage {
BeanUtils.copyProperties(application, projectApplication); BeanUtils.copyProperties(application, projectApplication);
projectApplication.setId(null); projectApplication.setId(null);
projectApplication.setProjectId(finalProject.getId()); projectApplication.setProjectId(finalProject.getId());
projectApplication.setProjectCode(finalProject.getProjectCode());
return projectApplication; return projectApplication;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
projectApplicationService.saveOrUpdateBatch(applications); projectApplicationService.saveOrUpdateBatch(applications);
@@ -347,6 +353,12 @@ public class ProjectLibManage {
.ne(Project::getId,project.getId()) .ne(Project::getId,project.getId())
.eq(Project::getProjectCode,project.getProjectCode())); .eq(Project::getProjectCode,project.getProjectCode()));


//采取批量删除 批量添加的方式
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,project.getId()));
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectCode,project.getProjectCode()));

//app //app
List<ProjectApplicationDTO> applicationList = projecDto.getApplicationList(); List<ProjectApplicationDTO> applicationList = projecDto.getApplicationList();
if(CollUtil.isNotEmpty(applicationList)){ if(CollUtil.isNotEmpty(applicationList)){
@@ -398,6 +410,12 @@ public class ProjectLibManage {
.eq(Project::getProjectCode,project.getProjectCode())); .eq(Project::getProjectCode,project.getProjectCode()));


//app //app
//采取批量删除 批量添加的方式
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,project.getId()));
projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectCode,project.getProjectCode()));

List<ProjectApplicationDTO> applicationList = projecDto.getApplicationList(); List<ProjectApplicationDTO> applicationList = projecDto.getApplicationList();
if(CollUtil.isNotEmpty(applicationList)){ if(CollUtil.isNotEmpty(applicationList)){
List<ProjectApplication> apps = applicationList.stream() List<ProjectApplication> apps = applicationList.stream()
@@ -405,6 +423,7 @@ public class ProjectLibManage {
ProjectApplication app = BeanUtil.copyProperties(a,ProjectApplication.class); ProjectApplication app = BeanUtil.copyProperties(a,ProjectApplication.class);
app.setId(null); app.setId(null);
app.setProjectId(project.getId()); app.setProjectId(project.getId());
app.setProjectCode(project.getProjectCode());
app.setBuildOrgName(project.getBuildOrgName()); app.setBuildOrgName(project.getBuildOrgName());
app.setBuildOrgCode(project.getBuildOrgCode()); app.setBuildOrgCode(project.getBuildOrgCode());
return app; return app;
@@ -442,23 +461,6 @@ public class ProjectLibManage {
.set(Project::getNewest,Boolean.FALSE) .set(Project::getNewest,Boolean.FALSE)
.ne(Project::getId,project.getId()) .ne(Project::getId,project.getId())
.eq(Project::getProjectCode,project.getProjectCode())); .eq(Project::getProjectCode,project.getProjectCode()));

//app
List<ProjectApplication> applicationList = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,oldProject.getId()));
if(CollUtil.isNotEmpty(applicationList)){
List<ProjectApplication> apps = applicationList.stream()
.map(a -> {
ProjectApplication app = BeanUtil.copyProperties(a,ProjectApplication.class);
app.setId(null);
app.setProjectId(project.getId());
app.setBuildOrgName(project.getBuildOrgName());
app.setBuildOrgCode(project.getBuildOrgCode());
return app;
})
.collect(Collectors.toList());
projectApplicationService.saveBatch(apps);
}
} }


return project; return project;
@@ -490,23 +492,6 @@ public class ProjectLibManage {
.set(Project::getNewest,Boolean.FALSE) .set(Project::getNewest,Boolean.FALSE)
.ne(Project::getId,project.getId()) .ne(Project::getId,project.getId())
.eq(Project::getProjectCode,project.getProjectCode())); .eq(Project::getProjectCode,project.getProjectCode()));

//app
List<ProjectApplication> applicationList = projectApplicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId,oldProject.getId()));
if(CollUtil.isNotEmpty(applicationList)){
List<ProjectApplication> apps = applicationList.stream()
.map(a -> {
ProjectApplication app = BeanUtil.copyProperties(a,ProjectApplication.class);
app.setId(null);
app.setProjectId(project.getId());
app.setBuildOrgName(project.getBuildOrgName());
app.setBuildOrgCode(project.getBuildOrgCode());
return app;
})
.collect(Collectors.toList());
projectApplicationService.saveBatch(apps);
}
} }


return project; return project;
@@ -529,7 +514,7 @@ public class ProjectLibManage {
vo.buildDynamicForm(projectInfo.getDynamicForm()); vo.buildDynamicForm(projectInfo.getDynamicForm());
// 查询应用 // 查询应用
List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.eq(ProjectApplication::getProjectId, vo.getId()));
.eq(ProjectApplication::getProjectCode, vo.getProjectCode()));
Optional.ofNullable(applications).ifPresent(apps -> Optional.ofNullable(applications).ifPresent(apps ->
vo.setProjectApplications(CollUtils.convert(apps, vo.setProjectApplications(CollUtils.convert(apps,
ProjectHelper::convertVO) ProjectHelper::convertVO)
@@ -839,7 +824,7 @@ public class ProjectLibManage {
} }


return historyProjects.stream() return historyProjects.stream()
.map(p -> BeanUtil.copyProperties(p,ProjectDetailVO.class))
.map(p -> this.getProjectDetail(p.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
} }

+ 1
- 0
pmapi/src/main/resources/application-dev.yml View File

@@ -204,6 +204,7 @@ provincial:


#天印服务器接口信息 #天印服务器接口信息
irs: irs:
is-piot-tasks: false
seal-platform: seal-platform:
project-id: 330001110 project-id: 330001110
project-secret: 70e512d40c8f440484db4acab181570a project-secret: 70e512d40c8f440484db4acab181570a


+ 1
- 0
pmapi/src/main/resources/application-prod.yml View File

@@ -207,6 +207,7 @@ provincial:


#天印服务器接口信息 #天印服务器接口信息
irs: irs:
is-piot-tasks: true
seal-platform: seal-platform:
project-id: 330001110 project-id: 330001110
project-secret: 70e512d40c8f440484db4acab181570a project-secret: 70e512d40c8f440484db4acab181570a


+ 9
- 0
pmapi/src/test/resources/application-dev.yml View File

@@ -203,6 +203,7 @@ provincial:


#天印服务器接口信息 #天印服务器接口信息
irs: irs:
is-piot-tasks: false
seal-platform: seal-platform:
project-id: 330001110 project-id: 330001110
project-secret: 70e512d40c8f440484db4acab181570a project-secret: 70e512d40c8f440484db4acab181570a
@@ -213,6 +214,14 @@ irs:
url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl
appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c
appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b
push-app:
url: https://interface.zjzwfw.gov.cn/gateway/api/proxy/001003001029/dataSharing/94wbaL1I1Pbz0648.htm
appScret: 496f0f2a19994f76b4fd9dae087366c7
appKey: A331101453557202109017383
search-app:
url: https://interface.zjzwfw.gov.cn/gateway/api/001003001029/dataSharing/XS8daav3bcemZ3Ra.htm
appScret: 496f0f2a19994f76b4fd9dae087366c7
appKey: A331101453557202109017383
hostname: iZbp13nwyvib53j4j1p2xoZ hostname: iZbp13nwyvib53j4j1p2xoZ


login: login:


+ 5
- 0
pmapi/src/test/resources/application-prod.yml View File

@@ -202,6 +202,7 @@ provincial:


#天印服务器接口信息 #天印服务器接口信息
irs: irs:
is-piot-tasks: true
seal-platform: seal-platform:
project-id: 330001110 project-id: 330001110
project-secret: 70e512d40c8f440484db4acab181570a project-secret: 70e512d40c8f440484db4acab181570a
@@ -212,6 +213,10 @@ irs:
url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl
appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c
appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b
push-app:
url: https://interface.zjzwfw.gov.cn/gateway/api/proxy/001003001029/dataSharing/94wbaL1I1Pbz0648.htm
appScret: 496f0f2a19994f76b4fd9dae087366c7
appKey: A331101453557202109017383
hostname: iZ6mx01gyeodd80imxd2gbZ hostname: iZ6mx01gyeodd80imxd2gbZ
login: login:
phone-verify-code: phone-verify-code:


Loading…
Cancel
Save