|
@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
|
|
|
import java.time.Month; |
|
|
import java.time.ZoneId; |
|
|
import java.time.ZoneId; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.HashMap; |
|
|
import java.util.HashMap; |
|
@ -53,11 +54,16 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
.eq(BsSgcJsjdBuiSalaryPayable::getProCode, bs.getProCode())); |
|
|
.eq(BsSgcJsjdBuiSalaryPayable::getProCode, bs.getProCode())); |
|
|
|
|
|
|
|
|
Map<String,Object>map=new HashMap<>(); |
|
|
Map<String,Object>map=new HashMap<>(); |
|
|
|
|
|
Map<String,Object>childrenMap=new HashMap<>(); |
|
|
for (BsSgcJsjdBuiRealName bsSgcJsjdBuiRealName:bsSgcJsjdBuiRealNames){ |
|
|
for (BsSgcJsjdBuiRealName bsSgcJsjdBuiRealName:bsSgcJsjdBuiRealNames){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
LocalDate localDate = bsSgcJsjdBuiRealName.getAdmissionTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
LocalDate localDate = bsSgcJsjdBuiRealName.getAdmissionTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
String year= String.valueOf(localDate.getYear()); |
|
|
String year= String.valueOf(localDate.getYear()); |
|
|
|
|
|
String yearMonth=localDate.getYear()+"-"+localDate.getMonth(); |
|
|
|
|
|
String month= String.valueOf(localDate.getMonthValue()); |
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo1=new BsSgcJsjdNmgStatisticVo(); |
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo1=new BsSgcJsjdNmgStatisticVo(); |
|
|
|
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo2=new BsSgcJsjdNmgStatisticVo(); |
|
|
|
|
|
//年统计
|
|
|
if (map.containsKey(year)){ |
|
|
if (map.containsKey(year)){ |
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(year); |
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(year); |
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
@ -83,13 +89,45 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
bsSgcJsjdNmgStatisticVo1.setPresentNum("0"); |
|
|
bsSgcJsjdNmgStatisticVo1.setPresentNum("0"); |
|
|
} |
|
|
} |
|
|
map.put(year,bsSgcJsjdNmgStatisticVo1); |
|
|
map.put(year,bsSgcJsjdNmgStatisticVo1); |
|
|
|
|
|
|
|
|
|
|
|
//月统计
|
|
|
|
|
|
if (map.containsKey(yearMonth)){ |
|
|
|
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(yearMonth); |
|
|
|
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
|
|
o.setExitNum(String.valueOf(Integer.parseInt(o.getExitNum())+1)); |
|
|
|
|
|
} |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
|
|
o.setPresentNum(String.valueOf(Integer.parseInt(o.getPresentNum()+1))); |
|
|
|
|
|
} |
|
|
|
|
|
map.put(yearMonth,o); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setProjectName(bs.getProjectName()); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setTotalNum("1"); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setCurrentTime(yearMonth); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setExitNum("1"); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setExitNum("0"); |
|
|
|
|
|
} |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setPresentNum("1"); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setPresentNum("0"); |
|
|
|
|
|
} |
|
|
|
|
|
childrenMap.put(yearMonth,bsSgcJsjdNmgStatisticVo2); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//年农民工递增统计
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
long l = DateUtil.betweenYear(bsSgcJsjdBuiRealName.getAdmissionTime(), bsSgcJsjdBuiRealName.getExitTime(), true); |
|
|
long l = DateUtil.betweenYear(bsSgcJsjdBuiRealName.getAdmissionTime(), bsSgcJsjdBuiRealName.getExitTime(), true); |
|
|
|
|
|
Integer yearValue=Integer.valueOf(year); |
|
|
for (int i=1;l>i;i++){ |
|
|
for (int i=1;l>i;i++){ |
|
|
year=year+1; |
|
|
yearValue=yearValue+1; |
|
|
if (map.containsKey(year)){ |
|
|
if (map.containsKey(String.valueOf(yearValue))){ |
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(year); |
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(String.valueOf(yearValue)); |
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
o.setExitNum(String.valueOf(Integer.parseInt(o.getExitNum())+1)); |
|
|
o.setExitNum(String.valueOf(Integer.parseInt(o.getExitNum())+1)); |
|
@ -97,11 +135,11 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
o.setPresentNum(String.valueOf(Integer.parseInt(o.getPresentNum()+1))); |
|
|
o.setPresentNum(String.valueOf(Integer.parseInt(o.getPresentNum()+1))); |
|
|
} |
|
|
} |
|
|
map.put(year,o); |
|
|
map.put(String.valueOf(yearValue),o); |
|
|
}else { |
|
|
}else { |
|
|
bsSgcJsjdNmgStatisticVo1.setProjectName(bs.getProjectName()); |
|
|
bsSgcJsjdNmgStatisticVo1.setProjectName(bs.getProjectName()); |
|
|
bsSgcJsjdNmgStatisticVo1.setTotalNum("1"); |
|
|
bsSgcJsjdNmgStatisticVo1.setTotalNum("1"); |
|
|
bsSgcJsjdNmgStatisticVo1.setCurrentTime(year); |
|
|
bsSgcJsjdNmgStatisticVo1.setCurrentTime(String.valueOf(yearValue)); |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
bsSgcJsjdNmgStatisticVo1.setExitNum("1"); |
|
|
bsSgcJsjdNmgStatisticVo1.setExitNum("1"); |
|
|
}else { |
|
|
}else { |
|
@ -116,6 +154,46 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//月农民工递增统计
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
|
|
long l = DateUtil.betweenMonth(bsSgcJsjdBuiRealName.getAdmissionTime(), bsSgcJsjdBuiRealName.getExitTime(), true); |
|
|
|
|
|
int monthValue=Integer.parseInt(month); |
|
|
|
|
|
Integer yearValue=Integer.valueOf(year); |
|
|
|
|
|
for (int i=1;l>i;i++){ |
|
|
|
|
|
monthValue=monthValue+1; |
|
|
|
|
|
if (monthValue>12){ |
|
|
|
|
|
yearValue=yearValue+1; |
|
|
|
|
|
} |
|
|
|
|
|
yearMonth=yearValue+"-"+monthValue; |
|
|
|
|
|
if (map.containsKey(yearMonth)){ |
|
|
|
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(yearMonth); |
|
|
|
|
|
o.setTotalNum(String.valueOf(Integer.parseInt(o.getTotalNum())+1)); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
|
|
o.setExitNum(String.valueOf(Integer.parseInt(o.getExitNum())+1)); |
|
|
|
|
|
} |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
|
|
o.setPresentNum(String.valueOf(Integer.parseInt(o.getPresentNum()+1))); |
|
|
|
|
|
} |
|
|
|
|
|
childrenMap.put(yearMonth,o); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setProjectName(bs.getProjectName()); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setTotalNum("1"); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setCurrentTime(yearMonth); |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setExitNum("1"); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setExitNum("0"); |
|
|
|
|
|
} |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setPresentNum("1"); |
|
|
|
|
|
}else { |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo2.setPresentNum("0"); |
|
|
|
|
|
} |
|
|
|
|
|
childrenMap.put(year,bsSgcJsjdNmgStatisticVo2); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -123,9 +201,10 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
for (BsSgcJsjdBuiSalaryPayable bsSgcJsjdBuiSalaryPayable:bsSgcJsjdBuiSalaryPayables){ |
|
|
for (BsSgcJsjdBuiSalaryPayable bsSgcJsjdBuiSalaryPayable:bsSgcJsjdBuiSalaryPayables){ |
|
|
LocalDate localDate = bsSgcJsjdBuiSalaryPayable.getSalaryTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
LocalDate localDate = bsSgcJsjdBuiSalaryPayable.getSalaryTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
String year= String.valueOf(localDate.getYear()); |
|
|
String year= String.valueOf(localDate.getYear()); |
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo1=new BsSgcJsjdNmgStatisticVo(); |
|
|
String month = String.valueOf(localDate.getMonthValue()); |
|
|
if (map.containsKey(year)){ |
|
|
String yearMonth=year+"-"+month; |
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(year); |
|
|
if (map.containsKey(yearMonth)){ |
|
|
|
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(yearMonth); |
|
|
if (ObjectUtil.isNotEmpty(o.getTotalSalary())){ |
|
|
if (ObjectUtil.isNotEmpty(o.getTotalSalary())){ |
|
|
o.setTotalSalary(String.valueOf(Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent())+Integer.parseInt(o.getTotalSalary()))); |
|
|
o.setTotalSalary(String.valueOf(Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent())+Integer.parseInt(o.getTotalSalary()))); |
|
|
}else { |
|
|
}else { |
|
@ -142,8 +221,9 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
o.setUnpaidWages("1"); |
|
|
o.setUnpaidWages("1"); |
|
|
} |
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
|
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo1=new BsSgcJsjdNmgStatisticVo(); |
|
|
bsSgcJsjdNmgStatisticVo1.setProjectName(bs.getProjectName()); |
|
|
bsSgcJsjdNmgStatisticVo1.setProjectName(bs.getProjectName()); |
|
|
bsSgcJsjdNmgStatisticVo1.setCurrentTime(year); |
|
|
bsSgcJsjdNmgStatisticVo1.setCurrentTime(yearMonth); |
|
|
bsSgcJsjdNmgStatisticVo1.setTotalSalary(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent()); |
|
|
bsSgcJsjdNmgStatisticVo1.setTotalSalary(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent()); |
|
|
bsSgcJsjdNmgStatisticVo1.setUnpaidWagesAmount(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryDeduct()); |
|
|
bsSgcJsjdNmgStatisticVo1.setUnpaidWagesAmount(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryDeduct()); |
|
|
if (!bsSgcJsjdNmgStatisticVo1.getUnpaidWagesAmount().equals("0")){ |
|
|
if (!bsSgcJsjdNmgStatisticVo1.getUnpaidWagesAmount().equals("0")){ |
|
@ -155,10 +235,15 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
List<BsSgcJsjdNmgStatisticVo>list1=new ArrayList<>(); |
|
|
List<BsSgcJsjdNmgStatisticVo>list1=new ArrayList<>(); |
|
|
|
|
|
List<BsSgcJsjdNmgStatisticVo>list2=new ArrayList<>(); |
|
|
map.forEach((key,value)->{ |
|
|
map.forEach((key,value)->{ |
|
|
list1.add((BsSgcJsjdNmgStatisticVo) value); |
|
|
list1.add((BsSgcJsjdNmgStatisticVo) value); |
|
|
}); |
|
|
}); |
|
|
bsSgcJsjdNmgStatisticVo.setChildren(list1); |
|
|
childrenMap.forEach((key,value)->{ |
|
|
|
|
|
list2.add((BsSgcJsjdNmgStatisticVo) value); |
|
|
|
|
|
}); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo.setChildrenYear(list1); |
|
|
|
|
|
bsSgcJsjdNmgStatisticVo.setChildrenMonth(list2); |
|
|
list.add(bsSgcJsjdNmgStatisticVo); |
|
|
list.add(bsSgcJsjdNmgStatisticVo); |
|
|
} |
|
|
} |
|
|
Page<BsSgcJsjdNmgStatisticVo> page1=new Page<>(); |
|
|
Page<BsSgcJsjdNmgStatisticVo> page1=new Page<>(); |
|
|