|
|
@ -3,18 +3,28 @@ package com.kms.statistics.service; |
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.jianwei.common.core.domain.SearchParam; |
|
|
|
import com.jwtech.util.StringUtil; |
|
|
|
import com.kms.build.domain.BsSgcJsjdBuiDedicatedAccount; |
|
|
|
import com.kms.build.domain.BsSgcJsjdBuiRealName; |
|
|
|
import com.kms.build.domain.BsSgcJsjdBuiRealNamePro; |
|
|
|
import com.kms.build.domain.BsSgcJsjdBuiSalaryPayable; |
|
|
|
import com.kms.build.mapper.BsSgcJsjdBuiRealNameMapper; |
|
|
|
import com.kms.build.mapper.BsSgcJsjdBuiRealNameProMapper; |
|
|
|
import com.kms.build.mapper.BsSgcJsjdBuiSalaryPayableMapper; |
|
|
|
import com.kms.statistics.domain.BsSgcJsjdNmgStatisticVo; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.ZoneId; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
@Service |
|
|
@ -25,13 +35,62 @@ public class BsSgcJsjdBuiNmgStatisticsService { |
|
|
|
@Autowired |
|
|
|
BsSgcJsjdBuiRealNameMapper bsSgcJsjdBuiRealNameMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
BsSgcJsjdBuiSalaryPayableMapper bsSgcJsjdBuiSalaryPayableMapper; |
|
|
|
public IPage<BsSgcJsjdNmgStatisticVo> selectPage(SearchParam<BsSgcJsjdBuiRealNamePro> sp){ |
|
|
|
Page<BsSgcJsjdBuiRealNamePro>page=new Page<>(sp.getPageNum(),sp.getPageSize()); |
|
|
|
LambdaQueryWrapper<BsSgcJsjdBuiRealNamePro>lw=new LambdaQueryWrapper<>(); |
|
|
|
Page<BsSgcJsjdBuiRealNamePro> bsSgcJsjdBuiRealNameProPage = bsSgcJsjdBuiRealNameProMapper.selectPage(page, null); |
|
|
|
List<BsSgcJsjdBuiRealNamePro> records = bsSgcJsjdBuiRealNameProPage.getRecords(); |
|
|
|
List<BsSgcJsjdBuiRealNamePro>list=new ArrayList<>(); |
|
|
|
for (BsSgcJsjdBuiRealNamePro bs:records){ |
|
|
|
|
|
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo=new BsSgcJsjdNmgStatisticVo(); |
|
|
|
LambdaQueryWrapper<BsSgcJsjdBuiRealName>rnlw=new LambdaQueryWrapper<>(); |
|
|
|
List<BsSgcJsjdBuiRealName> bsSgcJsjdBuiRealNames = bsSgcJsjdBuiRealNameMapper.selectList(rnlw.eq(BsSgcJsjdBuiRealName::getProNo, bs.getProNo()) |
|
|
|
.eq(BsSgcJsjdBuiRealName::getProCode, bs.getProCode())); |
|
|
|
bsSgcJsjdNmgStatisticVo.setProjectName(bs.getProjectName()); |
|
|
|
|
|
|
|
LambdaQueryWrapper<BsSgcJsjdBuiSalaryPayable>splw=new LambdaQueryWrapper<>(); |
|
|
|
List<BsSgcJsjdBuiSalaryPayable> bsSgcJsjdBuiSalaryPayables = bsSgcJsjdBuiSalaryPayableMapper.selectList(splw.eq(BsSgcJsjdBuiSalaryPayable::getProNo, bs.getProNo()) |
|
|
|
.eq(BsSgcJsjdBuiSalaryPayable::getProCode, bs.getProCode())); |
|
|
|
|
|
|
|
Map<String,Object>map=new HashMap<>(); |
|
|
|
for (BsSgcJsjdBuiRealName bsSgcJsjdBuiRealName:bsSgcJsjdBuiRealNames){ |
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
LocalDate localDate = bsSgcJsjdBuiRealName.getAdmissionTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
|
String year= String.valueOf(localDate.getYear()); |
|
|
|
BsSgcJsjdNmgStatisticVo bsSgcJsjdNmgStatisticVo1=new BsSgcJsjdNmgStatisticVo(); |
|
|
|
if (map.containsKey(year)){ |
|
|
|
BsSgcJsjdNmgStatisticVo o = (BsSgcJsjdNmgStatisticVo) map.get(year); |
|
|
|
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(year,o); |
|
|
|
}else { |
|
|
|
bsSgcJsjdNmgStatisticVo1.setProjectName(bs.getProjectName()); |
|
|
|
bsSgcJsjdNmgStatisticVo1.setTotalNum("1"); |
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getExitTime())){ |
|
|
|
bsSgcJsjdNmgStatisticVo1.setExitNum("1"); |
|
|
|
}else { |
|
|
|
bsSgcJsjdNmgStatisticVo1.setExitNum("0"); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotEmpty(bsSgcJsjdBuiRealName.getAdmissionTime())){ |
|
|
|
bsSgcJsjdNmgStatisticVo1.setPresentNum("1"); |
|
|
|
}else { |
|
|
|
bsSgcJsjdNmgStatisticVo1.setPresentNum("0"); |
|
|
|
} |
|
|
|
map.put(year,bsSgcJsjdNmgStatisticVo1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for (BsSgcJsjdBuiSalaryPayable bsSgcJsjdBuiSalaryPayable:bsSgcJsjdBuiSalaryPayables){ |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|