From 2fa8673bb76043cae8af96725197d5dd961f960b Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Mon, 9 Sep 2024 16:35:27 +0800 Subject: [PATCH] bug --- .../pusong/business/batch/CalSalaryBatch.java | 29 +++++++++++-------- .../business/mapper/PsContractPayMapper.java | 3 ++ .../impl/PsContractInfoServiceImpl.java | 2 +- .../mapper/business/PsContractPayMapper.xml | 10 +++++++ .../mapper/business/PsTaskMainMapper.xml | 1 + 5 files changed, 32 insertions(+), 13 deletions(-) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/batch/CalSalaryBatch.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/batch/CalSalaryBatch.java index fac7cdc..a952d0b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/batch/CalSalaryBatch.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/batch/CalSalaryBatch.java @@ -80,15 +80,16 @@ public class CalSalaryBatch { List list = sysUserMapper.selectList(Wrappers.lambdaQuery().select(SysUser::getUserId).eq(SysUser::getStatus, 0)); log.info("查询所有员工{}", list.size()); - log.info("查询本月所有已完成的合同"); + log.info("查询符合条件的合同"); + //当月新签+当月之前未完成合同数 = 全部合同 - 完成时间在当月之前的 List contractInfos = psContractInfoMapper.selectList(Wrappers.lambdaQuery() .ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode()) - .between(PsContractInfo::getFinishDate, firstDayOfLastMonth, lastDayOfLastMonth)); + .and(wq->wq.lt(PsContractInfo::getFinishDate, firstDayOfLastMonth).or().isNull(PsContractInfo::getFinishDate))); + +// List contractInfos = psContractInfoMapper.selectList(Wrappers.lambdaQuery() +// .ne(PsContractInfo::getIsCancel, CommonStatusEnum.SUCCESS.getCode()) +// .between(PsContractInfo::getFinishDate, firstDayOfLastMonth, lastDayOfLastMonth)); log.info("查询本月所有的合同{}", contractInfos.size()); - if(CollectionUtils.isEmpty(contractInfos)){ - log.info("本月无已完成合同"); - contractInfos = new ArrayList<>(); - } List finists = contractInfos.stream().filter(item -> StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList(); List unfinists = contractInfos.stream().filter(item -> !StringUtils.equals(item.getContractStatus(), ContractStatusEnum.SUCCESS.getCode())).toList(); log.info("本月已完成合同数量{},未完成数量{}", finists.size(),unfinists.size()); @@ -110,18 +111,22 @@ public class CalSalaryBatch { SysUserPost post = sysUserPostMapper.selectOne(new LambdaQueryWrapper().eq(SysUserPost::getUserId, userId).last("limit 1")); if(post == null){continue;} log.info("查询员工岗位{}",post.getPostId()); - //服务列表 + //已完成合同的合同编码 List codeList = new ArrayList<>(finistMap.get(userId) == null ? new ArrayList<>() : finistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList()); + //服务列表 List busin = businessService.selectBusinessList(codeList); //所有合同的退款列表 - codeList.addAll(unfinistMap.get(userId) == null ? new ArrayList<>() : unfinistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList()); +// codeList.addAll(unfinistMap.get(userId) == null ? new ArrayList<>() : unfinistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList()); log.info("进行计算提成计算"); BigDecimal salary = calSalary(busin, configMap.get(post.getPostId()),costMap.get(post.getPostId())); List payList = new ArrayList<>(); + //查询已完成合同的退款列表 if(CollectionUtils.isNotEmpty(codeList)){ - payList = payMapper.selectList(Wrappers.lambdaQuery().in(PsContractPay::getContractCode, codeList). - eq(PsContractPay::getPayStatus, PayStatusEnum.SUCCESS.getCode()).eq(PsContractPay::getBusinessType,"2")); + payList = payMapper.getRefundList(Wrappers.query() + .in("pay.contract_code", codeList).isNotNull("info.finish_date") + .apply("pay.pay_date>info.finish_date") + .eq("pay.business_type","2").eq("pay.pay_status",PayStatusEnum.SUCCESS.getCode())); } //salary- 退费金额*服务项目最高提成 salary = salary.subtract(this.calReturnSalary(payList,configMap.get(post.getPostId()))); @@ -149,15 +154,15 @@ public class CalSalaryBatch { psSalary.setContractMoney(finishMoney.add(unFinishMoney)); psSalary.setFinistContractMoney(finishMoney); psSalary.setUnfinistContractMoney(unFinishMoney); - + //已完成合同编码 List finCode = new ArrayList<>(); + //未完成合同编码 List unfinCode = new ArrayList<>(); if(CollectionUtils.isNotEmpty(finistMap.get(userId))){ finCode = finistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList(); } if(CollectionUtils.isNotEmpty(unfinistMap.get(userId))){ unfinCode = unfinistMap.get(userId).stream().map(PsContractInfo::getContractCode).toList(); - psSalary.setUnfinishContractCode(finistMap.get(userId).stream().map(PsContractInfo::getContractCode).collect(Collectors.joining(","))); } // psSalary.setFinishContractCode(String.join(",",finCode)); // psSalary.setUnfinishContractCode(String.join(",",unfinCode)); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java index cd33b05..2a318b3 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractPayMapper.java @@ -20,4 +20,7 @@ import java.util.List; */ public interface PsContractPayMapper extends BaseMapperPlus { Page queryRefundList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + //查询所有合同完成之后的退款记录 + List getRefundList( @Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 0a8696b..4159148 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -549,7 +549,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { }); } //回传 - serviceScheduleVo.setRollBack(StringUtils.equals(CommonStatusEnum.Y.getCode(),contractInfo.getRollBackStatus())?customer.getCustomManager():null); + serviceScheduleVo.setRollBack(StringUtils.equals(CommonStatusEnum.SUCCESS.getCode(),contractInfo.getRollBackStatus())?customer.getCustomManager():null); if(vo.getResidualMoney().compareTo(BigDecimal.ZERO) <=0 && CollectionUtils.isNotEmpty(payVoList)){ PsContractPayVo pay = payVoList.get(payVoList.size() - 1); //最后一笔回款收款者 diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml index 7ecb7be..3871d1c 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractPayMapper.xml @@ -16,4 +16,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join ps_custom_info cus on cus.id = info.custom_id ${ew.getCustomSqlSegment} + + diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml index d4ff7a7..87e2caa 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml @@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" main.contract_code, main.invoice, con.is_proxy con_is_proxy, + con.contract_amount con_contract_amount, con.custom_scene con_custom_scene, con.custom_manager con_custom_manager, usr.nick_name con_custom_manager_name,