@@ -0,0 +1,200 @@ | |||||
# | |||||
# There is insufficient memory for the Java Runtime Environment to continue. | |||||
# Native memory allocation (mmap) failed to map 532676608 bytes for Failed to commit area from 0x0000000604400000 to 0x0000000624000000 of length 532676608. | |||||
# Possible reasons: | |||||
# The system is out of physical RAM or swap space | |||||
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap | |||||
# Possible solutions: | |||||
# Reduce memory load on the system | |||||
# Increase physical memory or swap space | |||||
# Check if swap backing store is full | |||||
# Decrease Java heap size (-Xmx/-Xms) | |||||
# Decrease number of Java threads | |||||
# Decrease Java thread stack sizes (-Xss) | |||||
# Set larger code cache with -XX:ReservedCodeCacheSize= | |||||
# This output file may be truncated or incomplete. | |||||
# | |||||
# Out of Memory Error (src/hotspot/os/windows/os_windows.cpp:3627), pid=50732, tid=468 | |||||
# | |||||
# JRE version: (11.0.15+10) (build ) | |||||
# Java VM: OpenJDK 64-Bit Server VM (11.0.15+10-b2043.56, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) | |||||
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows | |||||
# | |||||
--------------- S U M M A R Y ------------ | |||||
Command Line: git4idea.http.GitAskPassApp Username for 'http://git.ningdatech.com': | |||||
Host: 12th Gen Intel(R) Core(TM) i9-12900H, 20 cores, 31G, Windows 11 , 64 bit Build 22621 (10.0.22621.1928) | |||||
Time: Mon Aug 7 10:27:38 2023 Windows 11 , 64 bit Build 22621 (10.0.22621.1928) elapsed time: 0.022779 seconds (0d 0h 0m 0s) | |||||
--------------- T H R E A D --------------- | |||||
Current thread (0x000002df0ddfd800): JavaThread "Unknown thread" [_thread_in_vm, id=468, stack(0x000000e5e2300000,0x000000e5e2400000)] | |||||
Stack: [0x000000e5e2300000,0x000000e5e2400000] | |||||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |||||
V [jvm.dll+0x61612a] | |||||
V [jvm.dll+0x79c450] | |||||
V [jvm.dll+0x79da6d] | |||||
V [jvm.dll+0x79e143] | |||||
V [jvm.dll+0x24cc18] | |||||
V [jvm.dll+0x613174] | |||||
V [jvm.dll+0x607e55] | |||||
V [jvm.dll+0x30b1cb] | |||||
V [jvm.dll+0x30b13a] | |||||
V [jvm.dll+0x30b012] | |||||
V [jvm.dll+0x30ff76] | |||||
V [jvm.dll+0x35b4c3] | |||||
V [jvm.dll+0x35bbc6] | |||||
V [jvm.dll+0x35b5c3] | |||||
V [jvm.dll+0x2e5918] | |||||
V [jvm.dll+0x2e6ab7] | |||||
V [jvm.dll+0x7794f7] | |||||
V [jvm.dll+0x77acec] | |||||
V [jvm.dll+0x368a59] | |||||
V [jvm.dll+0x75ce8e] | |||||
V [jvm.dll+0x3d6a33] | |||||
V [jvm.dll+0x3d9001] | |||||
C [jli.dll+0x536b] | |||||
C [ucrtbase.dll+0x29363] | |||||
C [KERNEL32.DLL+0x126ad] | |||||
C [ntdll.dll+0x5aa68] | |||||
--------------- P R O C E S S --------------- | |||||
Threads class SMR info: | |||||
_java_thread_list=0x000002df0ba385e0, length=0, elements={ | |||||
} | |||||
Java Threads: ( => current thread ) | |||||
Other Threads: | |||||
0x000002df0de18000 GCTaskThread "GC Thread#0" [stack: 0x000000e5e2400000,0x000000e5e2500000] [id=2344] | |||||
0x000002df0de98000 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000e5e2500000,0x000000e5e2600000] [id=43216] | |||||
0x000002df0de9a800 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000e5e2600000,0x000000e5e2700000] [id=30344] | |||||
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe70616017] | |||||
VM state:not at safepoint (not fully initialized) | |||||
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |||||
[0x000002df0ddfad60] Heap_lock - owner thread: 0x000002df0ddfd800 | |||||
Heap address: 0x0000000604400000, size: 8124 MB, Compressed Oops mode: Non-zero based: 0x0000000604400000 | |||||
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0 | |||||
GC Heap History (0 events): | |||||
No events | |||||
Deoptimization events (0 events): | |||||
No events | |||||
Classes redefined (0 events): | |||||
No events | |||||
Internal exceptions (0 events): | |||||
No events | |||||
Events (1 events): | |||||
Event: 0.016 Loaded shared library C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\zip.dll | |||||
Dynamic libraries: | |||||
0x00007ff796130000 - 0x00007ff79613a000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\java.exe | |||||
0x00007fff205f0000 - 0x00007fff20804000 C:\WINDOWS\SYSTEM32\ntdll.dll | |||||
0x00007fff1f640000 - 0x00007fff1f702000 C:\WINDOWS\System32\KERNEL32.DLL | |||||
0x00007fff1d9f0000 - 0x00007fff1dd93000 C:\WINDOWS\System32\KERNELBASE.dll | |||||
0x00007fff1e0f0000 - 0x00007fff1e201000 C:\WINDOWS\System32\ucrtbase.dll | |||||
0x00007fff035a0000 - 0x00007fff035b9000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\jli.dll | |||||
0x00007ffef11a0000 - 0x00007ffef11b6000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\VCRUNTIME140.dll | |||||
0x00007fff1f000000 - 0x00007fff1f1aa000 C:\WINDOWS\System32\USER32.dll | |||||
0x00007fff1de60000 - 0x00007fff1de86000 C:\WINDOWS\System32\win32u.dll | |||||
0x00007fff1ed90000 - 0x00007fff1edb9000 C:\WINDOWS\System32\GDI32.dll | |||||
0x00007fff07f70000 - 0x00007fff081fe000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.1635_none_270f70857386168e\COMCTL32.dll | |||||
0x00007fff1e2b0000 - 0x00007fff1e3c9000 C:\WINDOWS\System32\gdi32full.dll | |||||
0x00007fff1edc0000 - 0x00007fff1ee67000 C:\WINDOWS\System32\msvcrt.dll | |||||
0x00007fff1e210000 - 0x00007fff1e2aa000 C:\WINDOWS\System32\msvcp_win.dll | |||||
0x00007fff1e440000 - 0x00007fff1e471000 C:\WINDOWS\System32\IMM32.DLL | |||||
0x00007ffea1c40000 - 0x00007ffea1cea000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\msvcp140.dll | |||||
0x00007ffe70320000 - 0x00007ffe70e9b000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\server\jvm.dll | |||||
0x00007fff20390000 - 0x00007fff2043e000 C:\WINDOWS\System32\ADVAPI32.dll | |||||
0x00007fff1fea0000 - 0x00007fff1ff44000 C:\WINDOWS\System32\sechost.dll | |||||
0x00007fff1eee0000 - 0x00007fff1eff7000 C:\WINDOWS\System32\RPCRT4.dll | |||||
0x00007fff1f1b0000 - 0x00007fff1f1b8000 C:\WINDOWS\System32\PSAPI.DLL | |||||
0x00007fff168f0000 - 0x00007fff168f9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |||||
0x00007fff20440000 - 0x00007fff204b1000 C:\WINDOWS\System32\WS2_32.dll | |||||
0x00007fff0ea00000 - 0x00007fff0ea34000 C:\WINDOWS\SYSTEM32\WINMM.dll | |||||
0x00007fff1a930000 - 0x00007fff1a93a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |||||
0x00007fff1ca90000 - 0x00007fff1caa8000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll | |||||
0x00007fff10140000 - 0x00007fff10151000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\verify.dll | |||||
0x00007fff1b360000 - 0x00007fff1b58e000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL | |||||
0x00007fff1f8d0000 - 0x00007fff1fc59000 C:\WINDOWS\System32\combase.dll | |||||
0x00007fff1ff90000 - 0x00007fff20067000 C:\WINDOWS\System32\OLEAUT32.dll | |||||
0x00007ffefbaa0000 - 0x00007ffefbad2000 C:\WINDOWS\SYSTEM32\dbgcore.DLL | |||||
0x00007fff1df00000 - 0x00007fff1df7a000 C:\WINDOWS\System32\bcryptPrimitives.dll | |||||
0x00007fff10110000 - 0x00007fff10139000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\java.dll | |||||
0x00007fff17290000 - 0x00007fff1729b000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\jimage.dll | |||||
0x00007fff03580000 - 0x00007fff03599000 C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\zip.dll | |||||
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none | |||||
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.1635_none_270f70857386168e;C:\IDEA\IntelliJ IDEA 2022.1.4\jbr\bin\server | |||||
VM Arguments: | |||||
java_command: git4idea.http.GitAskPassApp Username for 'http://git.ningdatech.com': | |||||
java_class_path (initial): C:/IDEA/IntelliJ IDEA 2022.1.4/plugins/git4idea/lib/git4idea-rt.jar;C:/IDEA/IntelliJ IDEA 2022.1.4/lib/externalProcess-rt.jar;C:/IDEA/IntelliJ IDEA 2022.1.4/lib/app.jar;C:/IDEA/IntelliJ IDEA 2022.1.4/lib/3rd-party-rt.jar | |||||
Launcher Type: SUN_STANDARD | |||||
[Global flags] | |||||
intx CICompilerCount = 12 {product} {ergonomic} | |||||
uint ConcGCThreads = 4 {product} {ergonomic} | |||||
uint G1ConcRefinementThreads = 15 {product} {ergonomic} | |||||
size_t G1HeapRegionSize = 2097152 {product} {ergonomic} | |||||
uintx GCDrainStackTargetSize = 64 {product} {ergonomic} | |||||
size_t InitialHeapSize = 532676608 {product} {ergonomic} | |||||
size_t MarkStackSize = 4194304 {product} {ergonomic} | |||||
size_t MaxHeapSize = 8518631424 {product} {ergonomic} | |||||
size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} | |||||
uintx NonNMethodCodeHeapSize = 7594288 {pd product} {ergonomic} | |||||
uintx NonProfiledCodeHeapSize = 122031976 {pd product} {ergonomic} | |||||
uintx ProfiledCodeHeapSize = 122031976 {pd product} {ergonomic} | |||||
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} | |||||
bool SegmentedCodeCache = true {product} {ergonomic} | |||||
bool UseCompressedClassPointers = true {lp64_product} {ergonomic} | |||||
bool UseCompressedOops = true {lp64_product} {ergonomic} | |||||
bool UseG1GC = true {product} {ergonomic} | |||||
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} | |||||
Logging: | |||||
Log output configuration: | |||||
#0: stdout all=warning uptime,level,tags | |||||
#1: stderr all=off uptime,level,tags | |||||
Environment Variables: | |||||
JAVA_HOME=C:\IDEA\jdk\jdk-11.0.17 | |||||
CLASSPATH=.;C:\IDEA\jdk\jdk-11.0.17\lib\dt.jar;C:\IDEA\jdk\jdk-11.0.17\lib\tools.jar; | |||||
PATH=D:\soft\Git\Git\mingw64\libexec\git-core;D:\soft\Git\Git\mingw64\libexec\git-core;D:\soft\Git\Git\mingw64\bin;D:\soft\Git\Git\usr\bin;C:\Users\CMM\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\IDEA\jdk\jdk-11.0.17\bi;C:\IDEA\jdk\jdk-11.0.17\jre\bin";D:\soft\Git\Git\cmd;D:\soft\Git\Git\usr\bin;D:\soft\Maven\apache-maven-3.8.6-bin\apache-maven-3.8.6\bin;D:\soft\MySQL Installer\MySQL8.0\bin;D:\soft\Nodejs;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;D:\soft\putty;C:\Users\CMM\AppData\Local\Microsoft\WindowsApps;C:\Users\CMM\AppData\Roaming\npm;D:\soft\GoLand\GoLand 2019.3.3\bin;D:\soft\Pycharm\PyCharm Community Edition 2022.3.3\bin | |||||
USERNAME=CMM | |||||
DISPLAY=:0.0 | |||||
LC_ALL=en_US.UTF-8 | |||||
OS=Windows_NT | |||||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 154 Stepping 3, GenuineIntel | |||||
--------------- S Y S T E M --------------- | |||||
OS: Windows 11 , 64 bit Build 22621 (10.0.22621.1928) | |||||
OS uptime: 11 days 17:18 hours | |||||
CPU:total 20 (initial active 20) (10 cores per cpu, 2 threads per core) family 6 model 154 stepping 3 microcode 0x41c, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, sha, fma | |||||
Memory: 4k page, system-wide physical 32492M (784M free) | |||||
TotalPageFile size 58070M (AvailPageFile size 32M) | |||||
current process WorkingSet (physical memory assigned to process): 11M, peak: 11M | |||||
current process commit charge ("private bytes"): 76M, peak: 584M | |||||
vm_info: OpenJDK 64-Bit Server VM (11.0.15+10-b2043.56) for windows-amd64 JRE (11.0.15+10-b2043.56), built on May 16 2022 02:28:12 by "" with MS VC++ 14.0 (VS2015) | |||||
END. |
@@ -0,0 +1,34 @@ | |||||
package com.ningdatech.pmapi.performance.constant; | |||||
/** | |||||
* 常量 | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/08/08 17:53 | |||||
*/ | |||||
public interface BizConst { | |||||
/** | |||||
* 500万 | |||||
*/ | |||||
Integer FIVE_MILLION = 5000000; | |||||
/** | |||||
* 2000万 | |||||
*/ | |||||
Integer TWENTY_MILLION = 20000000; | |||||
/** | |||||
* 立项批复金额在500万以下 | |||||
*/ | |||||
Integer AMOUNT_RANGE_ONE = 1; | |||||
/** | |||||
* 立项批复金额在500万-2000万之间 | |||||
*/ | |||||
Integer AMOUNT_RANGE_TWO = 2; | |||||
/** | |||||
* 立项批复金额大于2000万 | |||||
*/ | |||||
Integer AMOUNT_RANGE_THREE = 3; | |||||
} |
@@ -0,0 +1,42 @@ | |||||
package com.ningdatech.pmapi.performance.enumration; | |||||
import java.util.Objects; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import lombok.AllArgsConstructor; | |||||
import lombok.Getter; | |||||
import lombok.NoArgsConstructor; | |||||
/** | |||||
* AppraisalTypeEnum | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/07/26 16:44 | |||||
*/ | |||||
@Getter | |||||
@AllArgsConstructor | |||||
@NoArgsConstructor | |||||
public enum AppraisalTypeEnum { | |||||
/** | |||||
* 评价类型 | |||||
*/ | |||||
SELF_APPRAISAL(1, "单位自评"), | |||||
RE_APPRAISAL(2, "人工复评"), | |||||
EXPERT_VERIFY(3, "专家核查"); | |||||
private Integer code; | |||||
private String desc; | |||||
public static String getDesc(Integer code) { | |||||
if (Objects.isNull(code)) { | |||||
return StringUtils.EMPTY; | |||||
} | |||||
for (AppraisalTypeEnum t : AppraisalTypeEnum.values()) { | |||||
if (code.equals(t.getCode())) { | |||||
return t.desc; | |||||
} | |||||
} | |||||
return StringUtils.EMPTY; | |||||
} | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package com.ningdatech.pmapi.performance.helper; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceIndicatorProjectTemplateDetail; | |||||
import com.ningdatech.pmapi.performance.model.vo.ProjectTemplateDetailVO; | |||||
import java.util.List; | |||||
/** | |||||
* 模板详情构建helper | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/08/09 22:28 | |||||
*/ | |||||
public interface TemplateDetailBuildHelper { | |||||
/** | |||||
* 构建评价模板详情信息 | |||||
* @param templateDetails | |||||
* @return | |||||
*/ | |||||
List<ProjectTemplateDetailVO> buildTemplateDetail(List<PerformanceIndicatorProjectTemplateDetail> templateDetails); | |||||
} |
@@ -0,0 +1,90 @@ | |||||
package com.ningdatech.pmapi.performance.helper.impl; | |||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.google.common.collect.Lists; | |||||
import com.ningdatech.pmapi.performance.enumration.AppraisalTypeEnum; | |||||
import com.ningdatech.pmapi.performance.enumration.PerformanceTemplateTypeEnum; | |||||
import com.ningdatech.pmapi.performance.helper.TemplateDetailBuildHelper; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalScoreInfo; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceIndicatorProjectTemplateDetail; | |||||
import com.ningdatech.pmapi.performance.model.vo.ProjectTemplateDetailVO; | |||||
import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalScoreInfoService; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.stream.Collectors; | |||||
/** | |||||
* @author CMM | |||||
* @since 2023/08/09 22:31 | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class TemplateDetailBuildHelperImpl implements TemplateDetailBuildHelper { | |||||
private final IPerformanceAppraisalScoreInfoService performanceAppraisalScoreInfoService; | |||||
@Override | |||||
public List<ProjectTemplateDetailVO> buildTemplateDetail(List<PerformanceIndicatorProjectTemplateDetail> templateDetails) { | |||||
List<ProjectTemplateDetailVO> res = Lists.newArrayList(); | |||||
//第一层是 一级的 | |||||
for (PerformanceIndicatorProjectTemplateDetail templateDetailFirst : templateDetails) { | |||||
if (PerformanceTemplateTypeEnum.FIRST_INDEX.getCode().equals(templateDetailFirst.getType())) { | |||||
ProjectTemplateDetailVO detailFirstVo = BeanUtil.copyProperties(templateDetailFirst, ProjectTemplateDetailVO.class); | |||||
List<ProjectTemplateDetailVO> firstList = Lists.newArrayList(); | |||||
// 该层循环筛选出第二 指标 | |||||
for (PerformanceIndicatorProjectTemplateDetail templateDetailSecond : templateDetails) { | |||||
if (Objects.nonNull(templateDetailSecond.getParentId()) && | |||||
templateDetailSecond.getParentId().equals(templateDetailFirst.getId())) { | |||||
ProjectTemplateDetailVO detailSecondVo = BeanUtil.copyProperties(templateDetailSecond, ProjectTemplateDetailVO.class); | |||||
List<ProjectTemplateDetailVO> secondList = Lists.newArrayList(); | |||||
// 该层循环筛选出第三 指标 | |||||
for (PerformanceIndicatorProjectTemplateDetail templateDetailThird : templateDetails) { | |||||
if (Objects.nonNull(templateDetailThird.getParentId()) && | |||||
templateDetailThird.getParentId().equals(templateDetailSecond.getId())) { | |||||
ProjectTemplateDetailVO detailThirdVo = BeanUtil.copyProperties(templateDetailThird, ProjectTemplateDetailVO.class); | |||||
// 如果有单位自评、复评、核查分数信息,各自装配信息 | |||||
// 获取自评分数信息 | |||||
List<PerformanceAppraisalScoreInfo> selfAppraisalScoreInfo = performanceAppraisalScoreInfoService.list(Wrappers.lambdaQuery(PerformanceAppraisalScoreInfo.class) | |||||
.eq(PerformanceAppraisalScoreInfo::getTemplateDetailId, templateDetailThird.getId()) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalType, AppraisalTypeEnum.SELF_APPRAISAL.getCode())); | |||||
if (CollUtil.isNotEmpty(selfAppraisalScoreInfo)) { | |||||
detailThirdVo.setSelfAppraisalScoreInfo(selfAppraisalScoreInfo); | |||||
} | |||||
// 按照复评人员分组 获取复评分数信息 | |||||
List<PerformanceAppraisalScoreInfo> reAppraisalScoreInfo = performanceAppraisalScoreInfoService.list(Wrappers.lambdaQuery(PerformanceAppraisalScoreInfo.class) | |||||
.eq(PerformanceAppraisalScoreInfo::getTemplateDetailId, templateDetailThird.getId()) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalType, AppraisalTypeEnum.RE_APPRAISAL.getCode())); | |||||
if (CollUtil.isNotEmpty(reAppraisalScoreInfo)) { | |||||
Map<String, List<PerformanceAppraisalScoreInfo>> reAppScoreInfoMap = reAppraisalScoreInfo.stream().collect(Collectors.groupingBy(PerformanceAppraisalScoreInfo::getAppraisalEmployeeName)); | |||||
detailThirdVo.setReAppraisalScoreInfo(reAppScoreInfoMap); | |||||
} | |||||
// 按照核查人员分组 获取核查分数信息 | |||||
List<PerformanceAppraisalScoreInfo> verifyScoreInfo = performanceAppraisalScoreInfoService.list(Wrappers.lambdaQuery(PerformanceAppraisalScoreInfo.class) | |||||
.eq(PerformanceAppraisalScoreInfo::getTemplateDetailId, templateDetailThird.getId()) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalType, AppraisalTypeEnum.EXPERT_VERIFY.getCode())); | |||||
if (CollUtil.isNotEmpty(verifyScoreInfo)) { | |||||
Map<String, List<PerformanceAppraisalScoreInfo>> verifyScoreInfoMap = verifyScoreInfo.stream().collect(Collectors.groupingBy(PerformanceAppraisalScoreInfo::getAppraisalEmployeeName)); | |||||
detailThirdVo.setVerifyScoreInfo(verifyScoreInfoMap); | |||||
} | |||||
secondList.add(detailThirdVo); | |||||
} | |||||
} | |||||
detailSecondVo.setChildren(secondList); | |||||
firstList.add(detailSecondVo); | |||||
} | |||||
} | |||||
detailFirstVo.setChildren(firstList); | |||||
res.add(detailFirstVo); | |||||
} | |||||
} | |||||
return res; | |||||
} | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.performance.mapper; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalScoreInfo; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
/** | |||||
* <p> | |||||
* Mapper 接口 | |||||
* </p> | |||||
* | |||||
* @author CMM | |||||
* @since 2023-08-09 | |||||
*/ | |||||
public interface PerformanceAppraisalScoreInfoMapper extends BaseMapper<PerformanceAppraisalScoreInfo> { | |||||
} |
@@ -0,0 +1,5 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.ningdatech.pmapi.performance.mapper.PerformanceAppraisalScoreInfoMapper"> | |||||
</mapper> |
@@ -0,0 +1,36 @@ | |||||
package com.ningdatech.pmapi.performance.model.dto; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotNull; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
/** | |||||
* 项目评价信息 | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/08/08 18:46 | |||||
*/ | |||||
@Data | |||||
public class ProjectAppraisalDTO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@ApiModelProperty("评价项目ID") | |||||
private Long appraisalProjectId; | |||||
@ApiModelProperty("评价计划ID") | |||||
private Long appraisalId; | |||||
@ApiModelProperty("项目模板指标详情评价信息集合") | |||||
private List<ProjectAppraisalInfoDTO> appraisalInfoList; | |||||
@ApiModelProperty("项目是否需要整改") | |||||
private Boolean isRectify; | |||||
@ApiModelProperty("整改意见") | |||||
private String rectifyOpinion; | |||||
} |
@@ -0,0 +1,37 @@ | |||||
package com.ningdatech.pmapi.performance.model.dto; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
import javax.validation.constraints.NotNull; | |||||
import javax.validation.constraints.Size; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* 项目评价信息 | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/08/08 18:46 | |||||
*/ | |||||
@Data | |||||
public class ProjectAppraisalInfoDTO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@ApiModelProperty("项目模板指标详情ID") | |||||
private Long projectTemplateDetailId; | |||||
@ApiModelProperty("评价得分") | |||||
@NotNull(message = "得分不能为空!") | |||||
private BigDecimal score; | |||||
@ApiModelProperty("评价依据") | |||||
@Size(max = 500) | |||||
private String appraisalBasis; | |||||
@ApiModelProperty("评价依据附件") | |||||
private String appraisalBasisAppendix; | |||||
} |
@@ -0,0 +1,64 @@ | |||||
package com.ningdatech.pmapi.performance.model.entity; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* <p> | |||||
* | |||||
* </p> | |||||
* | |||||
* @author CMM | |||||
* @since 2023-08-09 | |||||
*/ | |||||
@Data | |||||
@TableName("nd_performance_appraisal_score_info") | |||||
@ApiModel(value = "NdPerformanceAppraisalScoreInfo对象", description = "") | |||||
public class PerformanceAppraisalScoreInfo implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@ApiModelProperty("主键") | |||||
private Long id; | |||||
@ApiModelProperty("创建时间") | |||||
private LocalDateTime createOn; | |||||
@ApiModelProperty("创建人") | |||||
private String createBy; | |||||
@ApiModelProperty("创建时间") | |||||
private LocalDateTime updateOn; | |||||
@ApiModelProperty("更新人") | |||||
private String updateBy; | |||||
@ApiModelProperty("项目评价计划模板ID") | |||||
private Long templateId; | |||||
@ApiModelProperty("项目评价计划模板详情ID") | |||||
private Long templateDetailId; | |||||
@ApiModelProperty("评价得分") | |||||
private BigDecimal appraisalScore; | |||||
@ApiModelProperty("评价依据") | |||||
private String appraisalBasis; | |||||
@ApiModelProperty("评价依据附件") | |||||
private String appraisalBasisAppendix; | |||||
@ApiModelProperty("评价人员code") | |||||
private String appraisalEmployeeCode; | |||||
@ApiModelProperty("评价人员姓名") | |||||
private String appraisalEmployeeName; | |||||
@ApiModelProperty("评价类型 1 单位自评、2 复评人员复评、3 专家核查") | |||||
private Integer appraisalType; | |||||
} |
@@ -0,0 +1,43 @@ | |||||
package com.ningdatech.pmapi.performance.model.vo; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* 项目评价指标 | |||||
* @return | |||||
* @author CMM | |||||
* @since 2023/08/08 8:55 | |||||
*/ | |||||
@Data | |||||
@ApiModel(value = "项目自(复)评项目指标模版详情", description = "项目自(复)评项目指标模版详情") | |||||
public class ProjectAppraisalIndexDetailVO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@ApiModelProperty("项目名称") | |||||
private String projectName; | |||||
@ApiModelProperty("申报单位") | |||||
private String buildOrgName; | |||||
@ApiModelProperty("项目状态") | |||||
private Integer projectStatus; | |||||
@ApiModelProperty("批复金额") | |||||
private BigDecimal approvalAmount; | |||||
@ApiModelProperty("预算年度") | |||||
private Integer projectYear; | |||||
@ApiModelProperty("绩效指标详情") | |||||
private List<ProjectTemplateDetailVO> templateDetails; | |||||
@ApiModelProperty("附加绩效指标详情") | |||||
private List<ProjectTemplateDetailVO> additionalIndexDetails; | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.performance.service; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalScoreInfo; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | |||||
/** | |||||
* <p> | |||||
* 服务类 | |||||
* </p> | |||||
* | |||||
* @author CMM | |||||
* @since 2023-08-09 | |||||
*/ | |||||
public interface IPerformanceAppraisalScoreInfoService extends IService<PerformanceAppraisalScoreInfo> { | |||||
} |
@@ -0,0 +1,20 @@ | |||||
package com.ningdatech.pmapi.performance.service.impl; | |||||
import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalScoreInfo; | |||||
import com.ningdatech.pmapi.performance.mapper.PerformanceAppraisalScoreInfoMapper; | |||||
import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalScoreInfoService; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | |||||
/** | |||||
* <p> | |||||
* 服务实现类 | |||||
* </p> | |||||
* | |||||
* @author CMM | |||||
* @since 2023-08-09 | |||||
*/ | |||||
@Service | |||||
public class PerformanceAppraisalScoreInfoServiceImpl extends ServiceImpl<PerformanceAppraisalScoreInfoMapper, PerformanceAppraisalScoreInfo> implements IPerformanceAppraisalScoreInfoService { | |||||
} |