diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java index 6cc912e..45b267f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractInfoVo.java @@ -238,4 +238,9 @@ public class PsContractInfoVo implements Serializable { */ @JsonFormat(pattern = "yyyy-MM-dd") private Date renewalDate; + /** + * 合同完成时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date finishDate; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsSalaryVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsSalaryVo.java index d0a0195..3fdd36e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsSalaryVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsSalaryVo.java @@ -1,6 +1,8 @@ package com.pusong.business.domain.vo; import java.math.BigDecimal; + +import com.fasterxml.jackson.annotation.JsonFormat; import com.pusong.business.domain.PsSalary; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; 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; /** * 合同数量 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index 45d1f73..c944038 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java @@ -44,7 +44,7 @@ public interface IPsContractInfoService { * @return 合同基本信息 */ PsContractInfoVo queryInfoByCustomId(Long customerId); - + void fillMoney(PsContractInfoVo vo); List queryByCode(Long customId, String code, String status); /** * 分页查询合同基本信息列表 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java index e35166d..54fc816 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java @@ -1,17 +1,26 @@ package com.pusong.business.service.approver.impl; -import com.pusong.business.domain.PsApproverRecord; -import com.pusong.business.domain.PsContractPay; -import com.pusong.business.domain.PsTaskMain; +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.PsContractInfoVo; import com.pusong.business.enums.ApproverTypeEnum; +import com.pusong.business.enums.ContractStatusEnum; import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.enums.TaskStatusEnum; +import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.mapper.PsContractPayMapper; +import com.pusong.business.mapper.PsTaskAppointMapper; import com.pusong.business.mapper.PsTaskMainMapper; +import com.pusong.business.service.IPsContractInfoService; +import com.pusong.business.service.IPsTaskService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; 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() { return ApproverTypeEnum.RETURN.getCode(); } + private final PsApproverRecordMapper recordMapper; private final PsContractPayMapper baseMapper; + private final IPsContractInfoService contractInfoService; + private final PsTaskMainMapper taskMainMapper; + private final PsTaskAppointMapper taskAppointMapper; /** * 1 审批成功 退款审批成功 @@ -32,9 +45,32 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl { @Override public void success(PsApproverRecord psApproverRecord) { 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.lambdaUpdate().set(PsTaskMain::getTaskStatus,TaskStatusEnum.CANCEL.getCode()).eq(PsTaskMain::getContractCode, contract.getContractCode())); + //子任务作废 + List list = taskAppointMapper.selectList(Wrappers.lambdaQuery().select(PsTaskAppoint::getId).eq(PsTaskAppoint::getContractCode, contract.getContractCode())); + if(CollectionUtils.isNotEmpty(list)){ + List ids = list.stream().map(PsTaskAppoint::getId).map(Objects::toString).toList(); + taskAppointMapper.update(Wrappers.lambdaUpdate().set(PsTaskAppoint::getAppointStatus,TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).eq(PsTaskAppoint::getContractCode, contract.getContractCode())); + //子任务审批删除 + recordMapper.delete(Wrappers.lambdaQuery().in(PsApproverRecord::getBusinessId, ids)); + } + } info.setPayStatus(PayStatusEnum.PAYING.getCode()); baseMapper.updateById(info); - } /** 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 9eb5070..91f63a5 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 @@ -511,6 +511,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { //支付金额 PsContractInfoVo vo = new PsContractInfoVo(); vo.setContractCode(contractCode); + vo.setContractAmount(contractInfo.getContractAmount()); this.fillMoney(vo); List payVoList = vo.getContractPayVoList().stream() .filter(item -> StringUtils.equals("1", item.getBusinessType())).toList(); @@ -655,7 +656,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } return vo; } - private void fillMoney(PsContractInfoVo vo){ + public void fillMoney(PsContractInfoVo vo){ //装填回款记录 List payList = contractPayService.queryListByContractCode(vo.getContractCode(),null,PayStatusEnum.SUCCESS); vo.setContractPayVoList(payList);