Browse Source

修改资金下达情况

tags/24080901
WendyYang 6 months ago
parent
commit
b2514bed17
8 changed files with 111 additions and 15 deletions
  1. +4
    -0
      hz-pm-api/pom.xml
  2. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/App.java
  3. +29
    -14
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java
  4. +12
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java
  5. +14
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java
  6. +12
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java
  7. +34
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/user/manage/UserInfoManage.java
  8. +5
    -0
      pom.xml

+ 4
- 0
hz-pm-api/pom.xml View File

@@ -247,6 +247,10 @@
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
</dependency>
</dependencies>
<!-- 打包 -->
<!--配置环境的profile-->


+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/App.java View File

@@ -1,7 +1,7 @@
package com.hz.pm.api;

import com.ningdatech.basic.util.SpringUtils;
import com.hz.pm.api.common.util.SpringContextHolder;
import com.ningdatech.basic.util.SpringUtils;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


+ 29
- 14
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java View File

@@ -397,25 +397,31 @@ public class DeclaredRecordManage {
ImportProjectFinanceInfosDTO financeInfo = new ImportProjectFinanceInfosDTO();
financeInfo.setProjectName(projectName);
financeInfo.setUnitName(MapUtil.getStr(w, "单位名称"));
Assert.notBlank(financeInfo.getUnitName(), "单位名称不能为空");
financeInfo.setDeclareAmount(MapUtil.get(w, "合计", BigDecimal.class));
financeInfo.setDeclareHaveAmount(MapUtil.get(w, "其他资金", BigDecimal.class));
financeInfo.setDeclareGovOwnFinanceAmount(MapUtil.get(w, "市本级信息化专项资金", BigDecimal.class));
financeInfo.setDeclareGovSuperiorFinanceAmount(MapUtil.get(w, "上级补助资金", BigDecimal.class));
return financeInfo;
});
Map<String, List<ImportProjectFinanceInfosDTO>> groupByUnit = CollUtils.group(importDataList, ImportProjectFinanceInfosDTO::getUnitName);
List<Project> projects = new ArrayList<>();
for (ImportProjectFinanceInfosDTO importData : importDataList) {
String projectName = importData.getProjectName();
Project project = projectService.getByProjectName(projectName);
if (project == null) {
log.warn("项目不存在:{}", projectName);
for (Map.Entry<String, List<ImportProjectFinanceInfosDTO>> entry : groupByUnit.entrySet()) {
if (entry.getValue().size() != 1) {
log.warn("单位存在多个项目:{}", entry.getKey());
continue;
}
log.info("项目存在:{}", projectName);
project.setDeclareAmount(importData.getDeclareAmount());
project.setDeclareGovOwnFinanceAmount(importData.getDeclareGovOwnFinanceAmount());
project.setDeclareGovSuperiorFinanceAmount(importData.getDeclareGovSuperiorFinanceAmount());
project.setDeclareHaveAmount(importData.getDeclareHaveAmount());
Collection<Project> projectsTmp = listProjectsByUnitName(entry.getKey());
if (projectsTmp.size() != 1) {
log.warn("单位存在多个项目:{}", entry.getKey());
continue;
}
Project project = new ArrayList<>(projects).get(0);
ImportProjectFinanceInfosDTO importData = entry.getValue().get(0);
project.setApprovalAmount(importData.getDeclareAmount());
project.setApprovalGovOwnFinanceAmount(importData.getDeclareGovOwnFinanceAmount());
project.setApprovalGovSuperiorFinanceAmount(importData.getDeclareGovSuperiorFinanceAmount());
project.setApprovalHaveAmount(importData.getDeclareHaveAmount());
projects.add(project);
}
if (projects.isEmpty()) {
@@ -428,6 +434,13 @@ public class DeclaredRecordManage {
}
}

private Collection<Project> listProjectsByUnitName(String unitName) {
List<Project> projects = projectService.list(Wrappers.lambdaQuery(Project.class)
.eq(Project::getBuildOrgName, unitName));
return BizUtils.groupFirst(projects, Project::getProjectCode,
Comparator.comparing(Project::getCreateOn).reversed());
}

@Transactional(rollbackFor = Exception.class)
public void importReplaceSystemInfos(MultipartFile file) {
try (InputStream is = file.getInputStream()) {
@@ -444,6 +457,7 @@ public class DeclaredRecordManage {
importData.setSourceName(MapUtil.getStr(w, "替代前系统"));
importData.setTargetName(MapUtil.getStr(w, "替代后系统"));
importData.setUnitName(MapUtil.getStr(w, "单位"));
Assert.notBlank(importData.getUnitName(), "单位名称不能为空");
if (StrUtil.equals(importData.getReplaceType(), "/")
|| StrUtil.isBlank(importData.getReplaceType())) {
importData.setReplaceType(null);
@@ -455,15 +469,16 @@ public class DeclaredRecordManage {
return importData;
});
Map<String, List<ImportReplaceSystemInfosDTO>> groupByProject = CollUtils.group(importDataList,
ImportReplaceSystemInfosDTO::getProjectName);
ImportReplaceSystemInfosDTO::getUnitName);
List<Long> projectIds = new ArrayList<>();
List<ProjectGovSystemReplaceInfos> replaceInfos = new ArrayList<>();
for (Map.Entry<String, List<ImportReplaceSystemInfosDTO>> entry : groupByProject.entrySet()) {
Project project = projectService.getByProjectName(entry.getKey());
if (project == null) {
log.warn("项目不存在:{}", entry.getKey());
Collection<Project> projects = listProjectsByUnitName(entry.getKey());
if (projects.size() != 1) {
log.warn("单位存在多个项目:{}", entry.getKey());
continue;
}
Project project = new ArrayList<>(projects).get(0);
projectIds.add(project.getId());
Map<String, Integer> batchNoMap = new HashMap<>();
AtomicInteger integer = new AtomicInteger(1);


+ 12
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java View File

@@ -180,6 +180,18 @@ public class ProjectDTO {
@ApiModelProperty("立项批复资金(万元)")
private BigDecimal approvalAmount;

@ApiModelProperty("批复-自有金额(万元)")
@Compare("批复-自有金额")
private BigDecimal approvalHaveAmount;

@ApiModelProperty("批复-政府投资-本级财政资金(万元)")
@Compare("批复-政府投资-本级财政资金")
private BigDecimal approvalGovOwnFinanceAmount;

@ApiModelProperty("批复-政府投资-上级补助资金(万元)")
@Compare("批复-政府投资-上级补助资金")
private BigDecimal approvalGovSuperiorFinanceAmount;

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime annualPlanAddTime;



+ 14
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java View File

@@ -209,6 +209,20 @@ public class Project implements Serializable {
@Compare("资金分配情况-第三方服务")
private BigDecimal thirdPartyAmount;

//==================================================================================================================

@ApiModelProperty("批复-自有金额(万元)")
@Compare("批复-自有金额")
private BigDecimal approvalHaveAmount;

@ApiModelProperty("批复-政府投资-本级财政资金(万元)")
@Compare("批复-政府投资-本级财政资金")
private BigDecimal approvalGovOwnFinanceAmount;

@ApiModelProperty("批复-政府投资-上级补助资金(万元)")
@Compare("批复-政府投资-上级补助资金")
private BigDecimal approvalGovSuperiorFinanceAmount;

@ApiModelProperty("立项批复总投资(万元)")
@Compare("立项批复总投资")
private BigDecimal approvalAmount;


+ 12
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/ProjectDetailVO.java View File

@@ -558,4 +558,16 @@ public class ProjectDetailVO {
@ApiModelProperty("政务信息系统改造情况")
private List<GovSystemReplaceInfoDTO> systemReplaceInfos;

@ApiModelProperty("批复-自有金额(万元)")
@Compare("批复-自有金额")
private BigDecimal approvalHaveAmount;

@ApiModelProperty("批复-政府投资-本级财政资金(万元)")
@Compare("批复-政府投资-本级财政资金")
private BigDecimal approvalGovOwnFinanceAmount;

@ApiModelProperty("批复-政府投资-上级补助资金(万元)")
@Compare("批复-政府投资-上级补助资金")
private BigDecimal approvalGovSuperiorFinanceAmount;

}

+ 34
- 0
hz-pm-api/src/main/java/com/hz/pm/api/user/manage/UserInfoManage.java View File

@@ -1,6 +1,9 @@
package com.hz.pm.api.user.manage;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.StopWatch;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.system.oshi.OshiUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -37,7 +40,12 @@ import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.LongStream;
import java.util.stream.Stream;

/**
* @author liuxinxin
@@ -411,4 +419,30 @@ public class UserInfoManage {
return userInfoHelper.getUserFullInfo(userInfo);
}

public static void main(String[] args) {
int logicalProcessorCount = OshiUtil.getProcessor().getLogicalProcessorCount();
int max = (int) Math.max(logicalProcessorCount * 0.25, 1);
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(max);
final int limitCount = 1000000000;
while (true) {
if (System.currentTimeMillis() % 5000 == 0) {
double cpuUsage = OshiUtil.getCpuInfo().getUsed();
System.out.println(cpuUsage);
if (cpuUsage < 40) {
fixedThreadPool.execute(() -> {
StopWatch watch = new StopWatch();
watch.start();
Long sum = Stream.generate(() -> RandomUtil.randomLong(1, limitCount))
.map(w -> w + limitCount / w)
.limit(limitCount)
.collect(Collectors.summingLong(Long::longValue));
watch.stop();
System.out.println("总计:" + sum + " 耗时:" + watch.getTotal(TimeUnit.SECONDS));
});
}
}
}

}

}

+ 5
- 0
pom.xml View File

@@ -158,6 +158,11 @@
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>6.4.0</version>
</dependency>
</dependencies>
</dependencyManagement>



Loading…
Cancel
Save