薪酬列表分页问题
This commit is contained in:
parent
eab0fb95dd
commit
c2df4242ce
@ -60,7 +60,7 @@ public class MybatisPlusConfig {
|
||||
public PaginationInnerInterceptor paginationInnerInterceptor() {
|
||||
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
|
||||
// 分页合理化
|
||||
paginationInnerInterceptor.setOverflow(true);
|
||||
paginationInnerInterceptor.setOverflow(false);
|
||||
return paginationInnerInterceptor;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,10 @@ public class TableDataInfo<T> implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 当前页
|
||||
*/
|
||||
private long current;
|
||||
/**
|
||||
* 总记录数
|
||||
*/
|
||||
@ -59,6 +62,7 @@ public class TableDataInfo<T> implements Serializable {
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(page.getRecords());
|
||||
rspData.setTotal(page.getTotal());
|
||||
rspData.setCurrent(page.getCurrent());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
@ -5,15 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.pusong.business.domain.*;
|
||||
import com.pusong.business.domain.vo.PsContractBusinessDetailVo;
|
||||
import com.pusong.business.domain.vo.PsContractBusinessVo;
|
||||
import com.pusong.business.domain.vo.PsContractPayVo;
|
||||
import com.pusong.business.domain.vo.*;
|
||||
import com.pusong.business.enums.CommonStatusEnum;
|
||||
import com.pusong.business.enums.ContractStatusEnum;
|
||||
import com.pusong.business.enums.PayStatusEnum;
|
||||
import com.pusong.business.mapper.*;
|
||||
import com.pusong.business.service.IPsContractBusinessService;
|
||||
import com.pusong.common.core.utils.DateUtils;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.system.domain.SysUser;
|
||||
import com.pusong.system.domain.SysUserPost;
|
||||
@ -81,18 +80,18 @@ public class CalSalaryBatch {
|
||||
calcData(deadline, thisMonth, true);
|
||||
}
|
||||
|
||||
public List<PsSalary> calcData(Temporal deadline, LocalDate thisMonth, boolean save){
|
||||
public List<PsSalaryVo> calcData(Temporal deadline, LocalDate thisMonth, boolean save){
|
||||
|
||||
List<PsSalary> psSalaryList = new ArrayList<>();
|
||||
List<PsSalaryVo> psSalaryList = new ArrayList<>();
|
||||
//删除该月历史数据
|
||||
psSalaryMapper.delete(Wrappers.<PsSalary>lambdaQuery().eq(PsSalary::getSalaryMonth, DateUtils.toString(thisMonth,"yyyy-MM")));
|
||||
log.info("查询所有员工");
|
||||
List<SysUser> list = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery().select(SysUser::getUserId).eq(SysUser::getStatus, 0));
|
||||
List<SysUser> list = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery().select(SysUser::getUserId, SysUser::getNickName).eq(SysUser::getStatus, 0));
|
||||
log.info("查询所有员工{}", list.size());
|
||||
|
||||
log.info("查询符合条件的合同");
|
||||
//当月新签+当月之前未完成合同数 = 全部合同 - 完成时间在当月之前的
|
||||
List<PsContractInfo> contractInfos = psContractInfoMapper.selectList(Wrappers.<PsContractInfo>lambdaQuery()
|
||||
List<PsSalaryContractVo> contractInfos = psContractInfoMapper.querySalaryListByCodes(Wrappers.<PsContractInfo>lambdaQuery()
|
||||
.ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode())
|
||||
.and(wq -> wq.le(PsContractInfo::getFinishDate, deadline).or().isNull(PsContractInfo::getFinishDate)));
|
||||
|
||||
@ -100,13 +99,14 @@ public class CalSalaryBatch {
|
||||
// .ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode())
|
||||
// .between(PsContractInfo::getFinishDate, firstDayOfLastMonth, lastDayOfLastMonth));
|
||||
log.info("查询本月所有的合同{}", contractInfos.size());
|
||||
List<PsContractInfo> finists = contractInfos.stream().filter(item -> StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList();
|
||||
List<PsContractInfo> unfinists = contractInfos.stream().filter(item -> !StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList();
|
||||
List<PsSalaryContractVo> finists = contractInfos.stream().filter(item -> StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList();
|
||||
List<PsSalaryContractVo> unfinists = contractInfos.stream().filter(item -> !StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList();
|
||||
log.info("本月已完成合同数量{},未完成数量{}", finists.size(),unfinists.size());
|
||||
|
||||
//转换 客户经理有的合同编码
|
||||
Map<Long, List<PsContractInfo>> finistMap = finists.stream().collect(Collectors.groupingBy(PsContractInfo::getCustomManager,Collectors.toList()));
|
||||
Map<Long, List<PsContractInfo>> unfinistMap = unfinists.stream().collect(Collectors.groupingBy(PsContractInfo::getCustomManager,Collectors.toList()));;
|
||||
Map<Long, List<PsSalaryContractVo>> finistMap = finists.stream().collect(Collectors.groupingBy(PsSalaryContractVo::getCustomManager, Collectors.toList()));
|
||||
Map<Long, List<PsSalaryContractVo>> unfinistMap = unfinists.stream().collect(Collectors.groupingBy(PsSalaryContractVo::getCustomManager, Collectors.toList()));;
|
||||
|
||||
//查询所有岗位配置信息
|
||||
List<PsSalaryConfig> configs = psSalaryConfigMapper.selectList();
|
||||
Map<Long, Map<String, BigDecimal>> configMap = configs.stream().collect(Collectors.groupingBy(PsSalaryConfig::getPostId,
|
||||
@ -117,12 +117,12 @@ public class CalSalaryBatch {
|
||||
for (SysUser user : list){
|
||||
Long userId = user.getUserId();
|
||||
//默认员工仅有一个岗位
|
||||
log.info("查询员工岗位{}",userId);
|
||||
log.info("查询员工岗位{}", userId);
|
||||
SysUserPost post = sysUserPostMapper.selectOne(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId).last("limit 1"));
|
||||
if(post == null){continue;}
|
||||
log.info("查询员工岗位{}",post.getPostId());
|
||||
log.info("查询员工岗位{}", post.getPostId());
|
||||
//已完成合同的合同编码
|
||||
List<String> codeList = new ArrayList<>(finistMap.get(userId) == null ? new ArrayList<>() : finistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList());
|
||||
List<String> codeList = new ArrayList<>(finistMap.get(userId) == null ? new ArrayList<>() : finistMap.get(userId).stream().map(PsSalaryContractVo::getContractCode).toList());
|
||||
//服务列表
|
||||
List<PsContractBusinessVo> busin = businessService.selectBusinessList(codeList);
|
||||
//所有合同的退款列表
|
||||
@ -157,52 +157,74 @@ public class CalSalaryBatch {
|
||||
psSalary.setUnfinistContractNum(unFinishNum);
|
||||
//已完成合同金额
|
||||
BigDecimal finishMoney = CollectionUtils.isEmpty(finistMap.get(userId))?BigDecimal.ZERO:
|
||||
finistMap.get(userId).stream().map(PsContractInfo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
finistMap.get(userId).stream().map(PsSalaryContractVo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
//未完成合同金额
|
||||
BigDecimal unFinishMoney = CollectionUtils.isEmpty(unfinistMap.get(userId))?BigDecimal.ZERO:
|
||||
unfinistMap.get(userId).stream().map(PsContractInfo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);;
|
||||
unfinistMap.get(userId).stream().map(PsSalaryContractVo::getContractAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);;
|
||||
psSalary.setContractMoney(finishMoney.add(unFinishMoney));
|
||||
psSalary.setFinistContractMoney(finishMoney);
|
||||
psSalary.setUnfinistContractMoney(unFinishMoney);
|
||||
|
||||
if (!save){
|
||||
psSalaryList.add(psSalary);
|
||||
PsSalaryVo convert = MapstructUtils.convert(psSalary, PsSalaryVo.class);
|
||||
convert.setNickName(user.getNickName());
|
||||
psSalaryList.add(convert);
|
||||
continue;
|
||||
}
|
||||
|
||||
//已完成合同编码
|
||||
List<String> finCode = new ArrayList<>();
|
||||
List<PsSalaryContractVo> finCode = new ArrayList<>();
|
||||
//未完成合同编码
|
||||
List<String> unfinCode = new ArrayList<>();
|
||||
List<PsSalaryContractVo> unfinCode = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(finistMap.get(userId))){
|
||||
finCode = finistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList();
|
||||
finCode = finistMap.get(userId);
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(unfinistMap.get(userId))){
|
||||
unfinCode = unfinistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList();
|
||||
unfinCode = unfinistMap.get(userId);
|
||||
}
|
||||
// psSalary.setFinishContractCode(String.join(",",finCode));
|
||||
// psSalary.setUnfinishContractCode(String.join(",",unfinCode));
|
||||
|
||||
psSalaryMapper.insert(psSalary);
|
||||
List<PsSalaryContract> lis = new ArrayList<>();
|
||||
|
||||
if(CollectionUtils.isNotEmpty(finCode)) {
|
||||
List<PsSalaryContract> fin = psContractInfoMapper.querySalaryListByCodes(new QueryWrapper<PsContractInfo>().in("info.contract_code", finCode));
|
||||
if(CollectionUtils.isNotEmpty(fin)) {
|
||||
fin.forEach(item->{item.setStatus("1");item.setSalaryId(psSalary.getId());});
|
||||
lis.addAll(fin);
|
||||
PsSalaryContract psSalaryContract;
|
||||
for (PsSalaryContractVo psContractInfo : finCode) {
|
||||
psSalaryContract = MapstructUtils.convert(psContractInfo, PsSalaryContract.class);
|
||||
|
||||
psSalaryContract.setStatus("1");
|
||||
psSalaryContract.setSalaryId(psSalary.getId());
|
||||
psSalaryContract.setUserId(user.getUserId());
|
||||
psSalaryContract.setSalaryRatioDate(DateUtils.toDate(thisMonth));
|
||||
|
||||
lis.add(psSalaryContract);
|
||||
}
|
||||
|
||||
// List<PsSalaryContract> fin = psContractInfoMapper.querySalaryListByCodes(new QueryWrapper<PsContractInfo>().in("info.contract_code", finCode));
|
||||
// if(CollectionUtils.isNotEmpty(fin)) {
|
||||
// fin.forEach(item->{item.setStatus("1");item.setSalaryId(psSalary.getId());});
|
||||
// lis.addAll(fin);
|
||||
// }
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(unfinCode)) {
|
||||
List<PsSalaryContract> unfin = psContractInfoMapper.querySalaryListByCodes(new QueryWrapper<PsContractInfo>().in("info.contract_code", unfinCode));
|
||||
if(CollectionUtils.isNotEmpty(unfin)) {
|
||||
unfin.forEach(item->{item.setStatus("2");item.setSalaryId(psSalary.getId());});
|
||||
lis.addAll(unfin);
|
||||
// List<PsSalaryContract> unfin = psContractInfoMapper.querySalaryListByCodes(new QueryWrapper<PsContractInfo>().in("info.contract_code", unfinCode));
|
||||
// if(CollectionUtils.isNotEmpty(unfin)) {
|
||||
// unfin.forEach(item->{item.setStatus("2");item.setSalaryId(psSalary.getId());});
|
||||
// lis.addAll(unfin);
|
||||
// }
|
||||
PsSalaryContract psSalaryContract;
|
||||
for (PsSalaryContractVo psContractInfo : unfinCode) {
|
||||
psSalaryContract = MapstructUtils.convert(psContractInfo, PsSalaryContract.class);
|
||||
psSalaryContract.setStatus("2");
|
||||
psSalaryContract.setSalaryId(psSalary.getId());
|
||||
psSalaryContract.setUserId(user.getUserId());
|
||||
psSalaryContract.setSalaryRatioDate(DateUtils.toDate(thisMonth));
|
||||
|
||||
lis.add(psSalaryContract);
|
||||
}
|
||||
}
|
||||
lis.forEach(item -> {
|
||||
item.setUserId(user.getUserId());
|
||||
item.setSalaryRatioDate(DateUtils.toDate(thisMonth));
|
||||
});
|
||||
|
||||
salaryContractMapper.insertBatch(lis);
|
||||
}
|
||||
log.info("员工提成批处理结束");
|
||||
|
@ -60,8 +60,8 @@ public class PsSalaryController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/queryContractPageList")
|
||||
public TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, String status, PageQuery pageQuery) {
|
||||
return psSalaryService.queryContractPageList(id, status, pageQuery);
|
||||
public TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, Long userId, String status, PageQuery pageQuery) {
|
||||
return psSalaryService.queryContractPageList(id, userId, status, pageQuery);
|
||||
}
|
||||
|
||||
// /**
|
||||
|
@ -2,6 +2,8 @@ package com.pusong.business.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsSalaryContract;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
@ -90,4 +92,8 @@ public class PsSalaryContractVo implements Serializable {
|
||||
*/
|
||||
private String status;
|
||||
|
||||
|
||||
private String contractStatus;
|
||||
|
||||
|
||||
}
|
||||
|
@ -41,8 +41,13 @@ public class PsSalaryVo implements Serializable {
|
||||
/**
|
||||
* 员工id
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 员工id
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 员工岗位
|
||||
*/
|
||||
|
@ -50,7 +50,9 @@ public interface PsContractInfoMapper extends BaseMapperPlus<PsContractInfo, PsC
|
||||
List<PsContractInfoVo> selectContractList(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
||||
|
||||
List<PsSalaryContract> querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
Page<PsSalaryContractVo> querySalaryListByCodes(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
||||
List<PsSalaryContractVo> querySalaryListByCodes(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
||||
List<Map<String,Object>> homePageReturnMoneyInfo(@Param("queryParam") Map<String, Object> queryParam);
|
||||
List<UserContractAmountInfo> getUserContractSourceAmountsByDeptId(@Param("queryParam") Map<String, Object> queryParam, @Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
@ -1,8 +1,14 @@
|
||||
package com.pusong.business.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsSalary;
|
||||
import com.pusong.business.domain.vo.PsSalaryContractVo;
|
||||
import com.pusong.business.domain.vo.PsSalaryVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 员工提成提成Mapper接口
|
||||
@ -11,5 +17,6 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
* @date 2024-08-23
|
||||
*/
|
||||
public interface PsSalaryMapper extends BaseMapperPlus<PsSalary, PsSalaryVo> {
|
||||
Page<PsSalaryVo> querySalaryList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsSalary> queryWrapper);
|
||||
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ public interface IPsSalaryService {
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, String status, PageQuery pageQuery);
|
||||
TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, Long customManagerId, String status, PageQuery pageQuery);
|
||||
|
||||
// /**
|
||||
// * 查询员工提成提成
|
||||
|
@ -1,9 +1,13 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.pusong.business.batch.CalSalaryBatch;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsCustomPrice;
|
||||
import com.pusong.business.domain.PsSalaryContract;
|
||||
import com.pusong.business.domain.vo.PsSalaryContractVo;
|
||||
import com.pusong.business.enums.CommonStatusEnum;
|
||||
import com.pusong.business.mapper.PsContractInfoMapper;
|
||||
import com.pusong.business.mapper.PsSalaryContractMapper;
|
||||
import com.pusong.common.core.utils.DateUtils;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
@ -24,10 +28,7 @@ import com.pusong.business.service.IPsSalaryService;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 员工提成提成Service业务层处理
|
||||
@ -42,7 +43,11 @@ public class PsSalaryServiceImpl implements IPsSalaryService {
|
||||
private final PsSalaryMapper baseMapper;
|
||||
private final PsSalaryContractMapper salaryContractMapper;
|
||||
|
||||
private final PsContractInfoMapper psContractInfoMapper;
|
||||
|
||||
private final CalSalaryBatch calSalaryBatch;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询员工提成提成列表
|
||||
*
|
||||
@ -52,29 +57,54 @@ public class PsSalaryServiceImpl implements IPsSalaryService {
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<PsSalaryVo> queryPageList(PsSalaryBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PsSalary> lqw = buildQueryWrapper(bo);
|
||||
Page<PsSalaryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
QueryWrapper<PsSalary> lqw = buildQueryWrapper(bo);
|
||||
lqw.eq("salary.del_flag", 0);
|
||||
Page<PsSalaryVo> result = baseMapper.querySalaryList(pageQuery.build(), lqw);
|
||||
|
||||
|
||||
if (bo.getStartDate().getTime() <= DateUtils.getFirstDayZeroTimeByMonth().getTime() && bo.getEndDate().getTime() >= DateUtils.getFirstDayZeroTimeByMonth().getTime()){
|
||||
LocalDateTime deadline = bo.getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDate thisMonth = LocalDate.now();
|
||||
List<PsSalary> psSalaries = calSalaryBatch.calcData(deadline, thisMonth, false);
|
||||
List<PsSalaryVo> adds = MapstructUtils.convert(psSalaries, PsSalaryVo.class);
|
||||
|
||||
List<PsSalaryVo> adds = calSalaryBatch.calcData(deadline, thisMonth, false);
|
||||
List<PsSalaryVo> records= new ArrayList<>();
|
||||
records.addAll(result.getRecords());
|
||||
records.addAll(adds);
|
||||
result.setRecords(records);
|
||||
result.setTotal(result.getTotal() + adds.size());
|
||||
}
|
||||
|
||||
// long diffNum = result.getSize() - result.getRecords().size();
|
||||
// diffNum = diffNum > adds.size() ? adds.size() : diffNum;
|
||||
//
|
||||
// long remainder = result.getTotal() % result.getPages();
|
||||
// long replenishment = result.getPages() - remainder;
|
||||
// long maxPage = result.getTotal() / result.getPages() + 1;
|
||||
|
||||
|
||||
if (result.getTotal() < pageQuery.getPageNum() * result.getSize()){
|
||||
//需要补本月的
|
||||
long diffNum = pageQuery.getPageNum() * result.getSize() - result.getTotal();//到该页结尾总共需要补多少
|
||||
|
||||
int startIndex;
|
||||
int endIndex;
|
||||
if (diffNum >= result.getSize()){
|
||||
startIndex = (int)(diffNum - result.getSize());
|
||||
endIndex = startIndex + (int)result.getSize();
|
||||
}else{
|
||||
startIndex = 0;
|
||||
endIndex = (int)diffNum;
|
||||
}
|
||||
endIndex = endIndex > adds.size() ? adds.size() : endIndex;
|
||||
|
||||
records.addAll(adds.subList(startIndex, endIndex));
|
||||
result.setRecords(records);
|
||||
}
|
||||
result.setTotal(result.getTotal() + adds.size());
|
||||
|
||||
}
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
private LambdaQueryWrapper<PsSalary> buildQueryWrapper(PsSalaryBo bo) {
|
||||
LambdaQueryWrapper<PsSalary> lqw = Wrappers.lambdaQuery();
|
||||
lqw.le(bo.getEndDate() != null,PsSalary::getSalaryDate,bo.getEndDate());
|
||||
lqw.ge(bo.getStartDate() != null,PsSalary::getSalaryDate,bo.getStartDate());
|
||||
private QueryWrapper<PsSalary> buildQueryWrapper(PsSalaryBo bo) {
|
||||
QueryWrapper<PsSalary> lqw = new QueryWrapper<PsSalary>();
|
||||
lqw.le(bo.getEndDate() != null, "salary_date", bo.getEndDate());
|
||||
lqw.ge(bo.getStartDate() != null, "salary_date", bo.getStartDate());
|
||||
lqw.exists(StringUtils.isNotBlank(bo.getName()),"select 1 from sys_user su where su.user_id = ps_salary.user_id and su.nick_name like %"+bo.getName()+"%");
|
||||
return lqw;
|
||||
}
|
||||
@ -85,10 +115,23 @@ public class PsSalaryServiceImpl implements IPsSalaryService {
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
public TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, String status, PageQuery pageQuery){
|
||||
Page<PsSalaryContractVo> result = salaryContractMapper.selectVoPage( pageQuery.build(),Wrappers.<PsSalaryContract>lambdaQuery()
|
||||
.eq(PsSalaryContract::getSalaryId ,id)
|
||||
.eq(StringUtils.isNotBlank(status),PsSalaryContract::getStatus,status));
|
||||
public TableDataInfo<PsSalaryContractVo> queryContractPageList(Long id, Long customManagerId, String status, PageQuery pageQuery){
|
||||
Page<PsSalaryContractVo> result;
|
||||
if (id == null){
|
||||
LocalDateTime deadline = DateUtils.getEndTimeByMonth(new Date()).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
|
||||
QueryWrapper<PsContractInfo> wrapper = new QueryWrapper<PsContractInfo>()
|
||||
.ne("is_cancel", CommonStatusEnum.SUCCESS.getCode())
|
||||
.and(wq -> wq.le("finish_date", deadline).or().isNull("finish_date"))
|
||||
.eq("info.custom_manager", customManagerId);
|
||||
|
||||
result = psContractInfoMapper.querySalaryListByCodes(pageQuery.build(), wrapper);
|
||||
} else{
|
||||
result = salaryContractMapper.selectVoPage(pageQuery.build(), Wrappers.<PsSalaryContract>lambdaQuery()
|
||||
.eq(PsSalaryContract::getSalaryId, id)
|
||||
.eq(StringUtils.isNotBlank(status), PsSalaryContract::getStatus, status));
|
||||
}
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="querySalaryListByCodes" resultType="com.pusong.business.domain.PsSalaryContract">
|
||||
<select id="querySalaryListByCodes" resultType="com.pusong.business.domain.vo.PsSalaryContractVo">
|
||||
select
|
||||
info.contract_code
|
||||
,info.custom_manager
|
||||
@ -66,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
,com.company_name
|
||||
,info.contract_amount
|
||||
,info.start_service_date service_start_date
|
||||
,info.contract_status
|
||||
from ps_contract_info info
|
||||
left join ps_custom_info cus on info.custom_id = cus.id
|
||||
left join ps_company_info com on info.company_id = com.id
|
||||
|
@ -3,5 +3,13 @@
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.pusong.business.mapper.PsSalaryMapper">
|
||||
<select id="querySalaryList" resultType="com.pusong.business.domain.vo.PsSalaryVo">
|
||||
select
|
||||
salary.*, usr.nick_name
|
||||
from ps_salary salary
|
||||
left join sys_user usr on usr.user_id = salary.user_id
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user