This commit is contained in:
1073413548 2024-09-06 13:27:33 +08:00
parent 5e82848c2d
commit d7781e355f
5 changed files with 52 additions and 7 deletions

View File

@ -238,4 +238,9 @@ public class PsContractInfoVo implements Serializable {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date renewalDate; private Date renewalDate;
/**
* 合同完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date finishDate;
} }

View File

@ -1,6 +1,8 @@
package com.pusong.business.domain.vo; package com.pusong.business.domain.vo;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pusong.business.domain.PsSalary; import com.pusong.business.domain.PsSalary;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
@ -55,7 +57,8 @@ public class PsSalaryVo implements Serializable {
/** /**
* 提成日期 * 提成日期
*/ */
private String salaryDate; @JsonFormat(pattern = "yyyy-MM")
private Date salaryDate;
/** /**
* 合同数量 * 合同数量

View File

@ -44,7 +44,7 @@ public interface IPsContractInfoService {
* @return 合同基本信息 * @return 合同基本信息
*/ */
PsContractInfoVo queryInfoByCustomId(Long customerId); PsContractInfoVo queryInfoByCustomId(Long customerId);
void fillMoney(PsContractInfoVo vo);
List<PsContractInfo> queryByCode(Long customId, String code, String status); List<PsContractInfo> queryByCode(Long customId, String code, String status);
/** /**
* 分页查询合同基本信息列表 * 分页查询合同基本信息列表

View File

@ -1,17 +1,26 @@
package com.pusong.business.service.approver.impl; package com.pusong.business.service.approver.impl;
import com.pusong.business.domain.PsApproverRecord; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.pusong.business.domain.PsContractPay; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pusong.business.domain.PsTaskMain; import com.pusong.business.domain.*;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.ContractStatusEnum;
import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.enums.TaskStatusEnum; import com.pusong.business.enums.TaskStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsContractPayMapper; import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.mapper.PsTaskAppointMapper;
import com.pusong.business.mapper.PsTaskMainMapper; import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.IPsContractInfoService;
import com.pusong.business.service.IPsTaskService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/** /**
* 退款审批() * 退款审批()
*/ */
@ -23,7 +32,11 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
public String approverType() { public String approverType() {
return ApproverTypeEnum.RETURN.getCode(); return ApproverTypeEnum.RETURN.getCode();
} }
private final PsApproverRecordMapper recordMapper;
private final PsContractPayMapper baseMapper; private final PsContractPayMapper baseMapper;
private final IPsContractInfoService contractInfoService;
private final PsTaskMainMapper taskMainMapper;
private final PsTaskAppointMapper taskAppointMapper;
/** /**
* 1 审批成功 退款审批成功 * 1 审批成功 退款审批成功
@ -32,9 +45,32 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override @Override
public void success(PsApproverRecord psApproverRecord) { public void success(PsApproverRecord psApproverRecord) {
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId()); PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
PsContractInfo contract = contractInfoService.queryByCode(null, info.getContractCode(), null).get(0);
//装填金额
PsContractInfoVo vo = new PsContractInfoVo();
vo.setContractCode(contract.getContractCode());
vo.setContractAmount(contract.getContractAmount());
contractInfoService.fillMoney(vo);
//退款后金额小于0的话合同状态变为带回款
if(vo.getResidualMoney().compareTo(info.getMoney()) <= 0){
//合同回退到待回款
PsContractInfo con = new PsContractInfo();
con.setContractCode(contract.getContractCode());
con.setContractStatus(ContractStatusEnum.CREATE.getCode());
contractInfoService.updateByCode(con);
//主任务作废
taskMainMapper.update(Wrappers.<PsTaskMain>lambdaUpdate().set(PsTaskMain::getTaskStatus,TaskStatusEnum.CANCEL.getCode()).eq(PsTaskMain::getContractCode, contract.getContractCode()));
//子任务作废
List<PsTaskAppoint> list = taskAppointMapper.selectList(Wrappers.<PsTaskAppoint>lambdaQuery().select(PsTaskAppoint::getId).eq(PsTaskAppoint::getContractCode, contract.getContractCode()));
if(CollectionUtils.isNotEmpty(list)){
List<String> ids = list.stream().map(PsTaskAppoint::getId).map(Objects::toString).toList();
taskAppointMapper.update(Wrappers.<PsTaskAppoint>lambdaUpdate().set(PsTaskAppoint::getAppointStatus,TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).eq(PsTaskAppoint::getContractCode, contract.getContractCode()));
//子任务审批删除
recordMapper.delete(Wrappers.<PsApproverRecord>lambdaQuery().in(PsApproverRecord::getBusinessId, ids));
}
}
info.setPayStatus(PayStatusEnum.PAYING.getCode()); info.setPayStatus(PayStatusEnum.PAYING.getCode());
baseMapper.updateById(info); baseMapper.updateById(info);
} }
/** /**

View File

@ -511,6 +511,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//支付金额 //支付金额
PsContractInfoVo vo = new PsContractInfoVo(); PsContractInfoVo vo = new PsContractInfoVo();
vo.setContractCode(contractCode); vo.setContractCode(contractCode);
vo.setContractAmount(contractInfo.getContractAmount());
this.fillMoney(vo); this.fillMoney(vo);
List<PsContractPayVo> payVoList = vo.getContractPayVoList().stream() List<PsContractPayVo> payVoList = vo.getContractPayVoList().stream()
.filter(item -> StringUtils.equals("1", item.getBusinessType())).toList(); .filter(item -> StringUtils.equals("1", item.getBusinessType())).toList();
@ -655,7 +656,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
} }
return vo; return vo;
} }
private void fillMoney(PsContractInfoVo vo){ public void fillMoney(PsContractInfoVo vo){
//装填回款记录 //装填回款记录
List<PsContractPayVo> payList = contractPayService.queryListByContractCode(vo.getContractCode(),null,PayStatusEnum.SUCCESS); List<PsContractPayVo> payList = contractPayService.queryListByContractCode(vo.getContractCode(),null,PayStatusEnum.SUCCESS);
vo.setContractPayVoList(payList); vo.setContractPayVoList(payList);