|
|
@ -1,10 +1,20 @@ |
|
|
|
package com.kms.statistics.service; |
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.jianwei.common.core.domain.SearchParam; |
|
|
|
import com.kms.build.domain.BsSgcJsjdBuiSalaryPayable; |
|
|
|
import com.kms.build.mapper.BsSgcJsjdBuiSalaryPayableMapper; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import com.jianwei.common.core.service.BaseService; |
|
|
|
import com.kms.statistics.mapper.BsSgcJsjdBuiSalaryStatisticsMapper; |
|
|
|
import com.kms.statistics.domain.BsSgcJsjdBuiSalaryStatistics; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* 工资统计Service接口 |
|
|
|
* |
|
|
@ -13,5 +23,73 @@ import com.kms.statistics.domain.BsSgcJsjdBuiSalaryStatistics; |
|
|
|
*/ |
|
|
|
@Service |
|
|
|
public class BsSgcJsjdBuiSalaryStatisticsService extends BaseService<BsSgcJsjdBuiSalaryStatisticsMapper, BsSgcJsjdBuiSalaryStatistics>{ |
|
|
|
@Autowired |
|
|
|
BsSgcJsjdBuiSalaryStatisticsMapper bsSgcJsjdBuiSalaryStatisticsMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
BsSgcJsjdBuiSalaryPayableMapper bsSgcJsjdBuiSalaryPayableMapper; |
|
|
|
|
|
|
|
public Page<BsSgcJsjdBuiSalaryStatistics> select(SearchParam<BsSgcJsjdBuiSalaryStatistics> sp){ |
|
|
|
String proCode=sp.getData().getProCode(); |
|
|
|
String proNo=sp.getData().getProNo(); |
|
|
|
Page<BsSgcJsjdBuiSalaryStatistics>page=new Page<>(sp.getPageNum(),sp.getPageSize()); |
|
|
|
QueryWrapper<BsSgcJsjdBuiSalaryPayable>qw=new QueryWrapper<>(); |
|
|
|
List<BsSgcJsjdBuiSalaryPayable> bsSgcJsjdBuiSalaryPayables = bsSgcJsjdBuiSalaryPayableMapper |
|
|
|
.selectList(qw.eq("pro_no", proNo) |
|
|
|
.eq("pro_code", proCode)); |
|
|
|
List<BsSgcJsjdBuiSalaryStatistics>bsSgcJsjdBuiSalaryStatistics=new ArrayList<>(); |
|
|
|
Map<String,String>map=new HashMap<>(); |
|
|
|
for (BsSgcJsjdBuiSalaryPayable bsSgcJsjdBuiSalaryPayable:bsSgcJsjdBuiSalaryPayables){ |
|
|
|
String date= DateUtil.format(bsSgcJsjdBuiSalaryPayable.getSalaryTime(),"yyyy-MM"); |
|
|
|
map.put(date,""); |
|
|
|
} |
|
|
|
|
|
|
|
map.forEach((key,value)->{ |
|
|
|
BsSgcJsjdBuiSalaryStatistics bsSgcJsjdBuiSalaryStatistics1=new BsSgcJsjdBuiSalaryStatistics(); |
|
|
|
bsSgcJsjdBuiSalaryStatistics1.setStatisticsDate(key); |
|
|
|
bsSgcJsjdBuiSalaryStatistics1.setCurrentArrears("0"); |
|
|
|
bsSgcJsjdBuiSalaryStatistics1.setCurrentNetPay("0"); |
|
|
|
bsSgcJsjdBuiSalaryStatistics1.setCurrentPayable("0"); |
|
|
|
bsSgcJsjdBuiSalaryStatistics1.setCumulativeArrears("0"); |
|
|
|
bsSgcJsjdBuiSalaryStatistics.add(bsSgcJsjdBuiSalaryStatistics1); |
|
|
|
}); |
|
|
|
Integer num=0; |
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiSalaryStatistics)){ |
|
|
|
for (BsSgcJsjdBuiSalaryPayable bsSgcJsjdBuiSalaryPayable:bsSgcJsjdBuiSalaryPayables){ |
|
|
|
String date= DateUtil.format(bsSgcJsjdBuiSalaryPayable.getSalaryTime(),"yyyy-MM"); |
|
|
|
for (BsSgcJsjdBuiSalaryStatistics item:bsSgcJsjdBuiSalaryStatistics){ |
|
|
|
if (ObjectUtil.isNotEmpty(date)){ |
|
|
|
if (item.getStatisticsDate().equals(date)){ |
|
|
|
if (ObjectUtil.isNotEmpty(item.getCurrentPayable())&&ObjectUtil.isNotEmpty(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryPayable())) { |
|
|
|
item.setCurrentPayable(String.valueOf(Integer.parseInt(item.getCurrentPayable()) + Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryPayable()))); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(item.getCurrentNetPay())&&ObjectUtil.isNotEmpty(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent())){ |
|
|
|
item.setCurrentNetPay(String.valueOf(Integer.parseInt(item.getCurrentNetPay()) + Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryCurrent()))); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(item.getCurrentArrears())&&ObjectUtil.isNotEmpty(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryDeduct())) { |
|
|
|
item.setCurrentArrears(String.valueOf(Integer.parseInt(item.getCurrentArrears()) + Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryDeduct()))); |
|
|
|
num+=Integer.parseInt(bsSgcJsjdBuiSalaryPayable.getMonthlySalaryDeduct()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
for (BsSgcJsjdBuiSalaryStatistics bs:bsSgcJsjdBuiSalaryStatistics){ |
|
|
|
bs.setCumulativeArrears(String.valueOf(num)); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(sp.getData().getStatisticsDate())&&ObjectUtil.isNotEmpty(bsSgcJsjdBuiSalaryStatistics)){ |
|
|
|
List<BsSgcJsjdBuiSalaryStatistics>list=new ArrayList<>(); |
|
|
|
for (BsSgcJsjdBuiSalaryStatistics bsSgcJsjdBuiSalaryStatistics1:bsSgcJsjdBuiSalaryStatistics){ |
|
|
|
if (bsSgcJsjdBuiSalaryStatistics1.getStatisticsDate().equals(sp.getData().getStatisticsDate())){ |
|
|
|
list.add(bsSgcJsjdBuiSalaryStatistics1); |
|
|
|
} } |
|
|
|
Page<BsSgcJsjdBuiSalaryStatistics>iPage=new Page<>(); |
|
|
|
iPage.setRecords(list); |
|
|
|
return iPage; |
|
|
|
} |
|
|
|
Page<BsSgcJsjdBuiSalaryStatistics>iPage=new Page<>(); |
|
|
|
iPage.setRecords(bsSgcJsjdBuiSalaryStatistics); |
|
|
|
return iPage; |
|
|
|
} |
|
|
|
} |
|
|
|