|
|
@@ -312,7 +312,29 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
if (StringUtils.isBlank(salary.getTenantId())){
|
|
|
salary.setTenantId(SecureUtil.getTenantId());
|
|
|
}
|
|
|
- return baseMapper.SalaryStatistics(salary);
|
|
|
+ List<SalaryStatistics> salaryStatistics = baseMapper.SalaryStatistics(salary);
|
|
|
+ if (CollectionUtils.isNotEmpty(salaryStatistics)){
|
|
|
+ for (int i = 0; i<salaryStatistics.size(); i++ ){
|
|
|
+ if (i == 0){
|
|
|
+ salaryStatistics.get(i).setFSalaryContrast(BigDecimal.ZERO);
|
|
|
+ salaryStatistics.get(i).setStudentNumberContrast(BigDecimal.ZERO);
|
|
|
+ }else {
|
|
|
+ BigDecimal subtract = salaryStatistics.get(i).getFSalary().subtract(salaryStatistics.get(i - 1).getFSalary());
|
|
|
+ if (salaryStatistics.get(i-1).getFSalary().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryStatistics.get(i).setFSalaryContrast(subtract.divide(salaryStatistics.get(i-1).getFSalary(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryStatistics.get(i).setFSalaryContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ BigDecimal studentNumber = salaryStatistics.get(i).getStudentNumber().subtract(salaryStatistics.get(i - 1).getStudentNumber());
|
|
|
+ if (salaryStatistics.get(i-1).getStudentNumber().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryStatistics.get(i).setStudentNumberContrast(studentNumber.divide(salaryStatistics.get(i-1).getStudentNumber(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryStatistics.get(i).setStudentNumberContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return salaryStatistics;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -389,15 +411,6 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
if (StringUtils.isBlank(salary.getTenantId())){
|
|
|
salary.setTenantId(SecureUtil.getTenantId());
|
|
|
}
|
|
|
- //选中年的工资和人数
|
|
|
- SalaryDataChain salarySix = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual()),salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
- if (salarySix !=null){
|
|
|
- salaryDataChain.setFSalaryFive(salarySix.getFSalary());
|
|
|
- salaryDataChain.setStudentNumberFive(salarySix.getStudentNumber());
|
|
|
- }else {
|
|
|
- salaryDataChain.setFSalaryFive(BigDecimal.ZERO);
|
|
|
- salaryDataChain.setStudentNumberFive(BigDecimal.ZERO);
|
|
|
- }
|
|
|
//前六年的工资和人数
|
|
|
SalaryDataChain salaryOne = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual())-5,salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
if (salaryOne !=null){
|
|
|
@@ -407,6 +420,9 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
salaryDataChain.setFSalary(BigDecimal.ZERO);
|
|
|
salaryDataChain.setStudentNumber(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //人数和工资百分比
|
|
|
+ salaryDataChain.setFSalaryContrast(BigDecimal.ZERO);
|
|
|
+ salaryDataChain.setStudentNumberContrast(BigDecimal.ZERO);
|
|
|
//前五年的工资和人数
|
|
|
SalaryDataChain salaryTwo = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual())-4,salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
if (salaryTwo !=null){
|
|
|
@@ -416,6 +432,17 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
salaryDataChain.setFSalaryOne(BigDecimal.ZERO);
|
|
|
salaryDataChain.setStudentNumberOne(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //对比前年人数百分比
|
|
|
+ if (salaryDataChain.getFSalary().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setFSalaryOneContrast((salaryDataChain.getFSalaryOne().subtract(salaryDataChain.getFSalary())).divide(salaryDataChain.getFSalary(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryOneContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (salaryDataChain.getStudentNumber().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setStudentNumberOneContrast((salaryDataChain.getStudentNumberOne().subtract(salaryDataChain.getStudentNumber())).divide(salaryDataChain.getStudentNumber(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setStudentNumberOneContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
//前四年的工资和人数
|
|
|
SalaryDataChain salaryThree = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual())-3,salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
if (salaryThree !=null){
|
|
|
@@ -425,6 +452,17 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
salaryDataChain.setFSalaryTwo(BigDecimal.ZERO);
|
|
|
salaryDataChain.setStudentNumberTwo(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //对比前年人数百分比
|
|
|
+ if (salaryDataChain.getFSalaryOne().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setFSalaryTwoContrast((salaryDataChain.getFSalaryTwo().subtract(salaryDataChain.getFSalaryOne())).divide(salaryDataChain.getFSalaryOne(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryTwoContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (salaryDataChain.getStudentNumberOne().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setStudentNumberTwoContrast((salaryDataChain.getStudentNumberTwo().subtract(salaryDataChain.getStudentNumberOne())).divide(salaryDataChain.getStudentNumberOne(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setStudentNumberTwoContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
//前三年的工资和人数
|
|
|
SalaryDataChain salaryFour = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual())-2,salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
if (salaryFour !=null){
|
|
|
@@ -434,6 +472,17 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
salaryDataChain.setFSalaryThree(BigDecimal.ZERO);
|
|
|
salaryDataChain.setStudentNumberThree(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //对比前年人数百分比
|
|
|
+ if (salaryDataChain.getFSalaryTwo().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setFSalaryThreeContrast((salaryDataChain.getFSalaryThree().subtract(salaryDataChain.getFSalaryTwo())).divide(salaryDataChain.getFSalaryTwo(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryThreeContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (salaryDataChain.getStudentNumberTwo().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setStudentNumberThreeContrast((salaryDataChain.getStudentNumberThree().subtract(salaryDataChain.getStudentNumberTwo())).divide(salaryDataChain.getStudentNumberTwo(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setStudentNumberThreeContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
//前二年的工资和人数
|
|
|
SalaryDataChain salaryFive = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual())-1,salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
if (salaryFive !=null){
|
|
|
@@ -443,6 +492,37 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
|
|
|
salaryDataChain.setFSalaryFour(BigDecimal.ZERO);
|
|
|
salaryDataChain.setStudentNumberFour(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //对比前年人数百分比
|
|
|
+ if (salaryDataChain.getFSalaryThree().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setFSalaryFourContrast((salaryDataChain.getFSalaryFour().subtract(salaryDataChain.getFSalaryThree())).divide(salaryDataChain.getFSalaryThree(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryFourContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (salaryDataChain.getStudentNumberThree().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setStudentNumberFourContrast((salaryDataChain.getStudentNumberFour().subtract(salaryDataChain.getStudentNumberThree())).divide(salaryDataChain.getStudentNumberThree(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setStudentNumberFourContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ //选中年的工资和人数
|
|
|
+ SalaryDataChain salarySix = baseMapper.salaryDataChain(Long.valueOf(salary.getAnnual()),salary.getMoon(),salary.getSemester(),salary.getSalaryType(),salary.getTenantId());
|
|
|
+ if (salarySix !=null){
|
|
|
+ salaryDataChain.setFSalaryFive(salarySix.getFSalary());
|
|
|
+ salaryDataChain.setStudentNumberFive(salarySix.getStudentNumber());
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryFive(BigDecimal.ZERO);
|
|
|
+ salaryDataChain.setStudentNumberFive(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ //对比前年人数百分比
|
|
|
+ if (salaryDataChain.getFSalaryFour().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setFSalaryFiveContrast((salaryDataChain.getFSalaryFive().subtract(salaryDataChain.getFSalaryFour())).divide(salaryDataChain.getFSalaryFour(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setFSalaryFiveContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (salaryDataChain.getStudentNumberFour().compareTo(BigDecimal.ZERO) >0){
|
|
|
+ salaryDataChain.setStudentNumberFiveContrast((salaryDataChain.getStudentNumberFive().subtract(salaryDataChain.getStudentNumberFour())).divide(salaryDataChain.getStudentNumberFour(),5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
+ }else {
|
|
|
+ salaryDataChain.setStudentNumberFiveContrast(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
return salaryDataChain;
|
|
|
}
|
|
|
|