This commit is contained in:
1073413548 2024-09-10 16:47:26 +08:00
parent 3f4b903f89
commit c6337044ba
7 changed files with 44 additions and 41 deletions

View File

@ -4,6 +4,7 @@ import java.util.List;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import com.pusong.business.domain.vo.PsRefundVo; import com.pusong.business.domain.vo.PsRefundVo;
import com.pusong.business.service.IPsContractInfoService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
@ -40,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile;
public class PsContractPayController extends BaseController { public class PsContractPayController extends BaseController {
private final IPsContractPayService psContractPayService; private final IPsContractPayService psContractPayService;
private final IPsContractInfoService contractInfoService;
/** /**
* 查询合同回款记录列表 * 查询合同回款记录列表
@ -87,7 +89,7 @@ public class PsContractPayController extends BaseController {
@SaCheckPermission("business:contractPay:query") @SaCheckPermission("business:contractPay:query")
@PostMapping(value = "/refundFinish",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/refundFinish",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> refundFinish(@RequestPart("files") List<MultipartFile> files, @NotNull Long id) { public R<Void> refundFinish(@RequestPart("files") List<MultipartFile> files, @NotNull Long id) {
psContractPayService.refundFinish(files,id); contractInfoService.dealReturn(psContractPayService.refundFinish(files,id));
return R.ok(); return R.ok();
} }

View File

@ -126,6 +126,11 @@ public interface IPsContractInfoService {
*/ */
ServiceScheduleVo queryScheduleByCode(String contractCode); ServiceScheduleVo queryScheduleByCode(String contractCode);
/**
* 全部退款回退合同状态
* @param contractCode
*/
void dealReturn(String contractCode);
/** /**
* 查询符合条件的合同基本信息列表 * 查询符合条件的合同基本信息列表

View File

@ -83,7 +83,7 @@ public interface IPsContractPayService {
* @param id 任务id * @param id 任务id
* @return * @return
*/ */
void refundFinish(List<MultipartFile> files, Long id); String refundFinish(List<MultipartFile> files, Long id);
/* *//** /* *//**
* 查询合同回款记录 * 查询合同回款记录

View File

@ -32,11 +32,8 @@ 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 审批成功 退款审批成功
@ -45,30 +42,6 @@ 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

@ -9,9 +9,7 @@ import com.pusong.business.domain.bo.*;
import com.pusong.business.domain.vo.*; import com.pusong.business.domain.vo.*;
import com.pusong.business.enums.*; import com.pusong.business.enums.*;
import com.pusong.business.enums.TaskStatusEnum.*; import com.pusong.business.enums.TaskStatusEnum.*;
import com.pusong.business.mapper.PsContractBusinessMapper; import com.pusong.business.mapper.*;
import com.pusong.business.mapper.PsTaskAppointMapper;
import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.*; import com.pusong.business.service.*;
import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverContainer;
import com.pusong.business.service.approver.ApproverService; import com.pusong.business.service.approver.ApproverService;
@ -38,7 +36,6 @@ import jodd.util.StringUtil;
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 com.pusong.business.mapper.PsContractInfoMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
@ -77,6 +74,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
private final IPsTaskService taskMainService; private final IPsTaskService taskMainService;
private final PsTaskMainMapper taskMainMapper; private final PsTaskMainMapper taskMainMapper;
private final PsTaskAppointMapper taskAppointMapper; private final PsTaskAppointMapper taskAppointMapper;
private final PsApproverRecordMapper recordMapper;
private final ISysDictDataService dictDataService; private final ISysDictDataService dictDataService;
private final IPsApproverRecordService approverRecordService; private final IPsApproverRecordService approverRecordService;
@ -750,7 +748,32 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
} }
public void dealReturn(String contractCode){
PsContractInfo contract = this.queryByCode(null, contractCode, null).get(0);
//装填金额
PsContractInfoVo vo = new PsContractInfoVo();
vo.setContractCode(contract.getContractCode());
vo.setContractAmount(contract.getContractAmount());
this.fillMoney(vo);
//退款后金额小于0的话合同状态变为带回款
if(vo.getPayMoney().compareTo(BigDecimal.ZERO) <= 0){
//合同回退到待回款
PsContractInfo con = new PsContractInfo();
con.setContractCode(contract.getContractCode());
con.setContractStatus(ContractStatusEnum.CREATE.getCode());
this.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));
}
}
}
/** /**
* 查询合同基本信息 * 查询合同基本信息

View File

@ -2,10 +2,10 @@ package com.pusong.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.pusong.business.domain.*;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.domain.vo.PsRefundVo; import com.pusong.business.domain.vo.PsRefundVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.*;
import com.pusong.business.enums.PayBuinessStatusEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.service.IPsApproverRecordService; import com.pusong.business.service.IPsApproverRecordService;
import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverContainer;
import com.pusong.business.service.approver.ApproverService; import com.pusong.business.service.approver.ApproverService;
@ -24,7 +24,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pusong.business.domain.bo.PsContractPayBo; import com.pusong.business.domain.bo.PsContractPayBo;
import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.domain.PsContractPay;
import com.pusong.business.mapper.PsContractPayMapper; import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.service.IPsContractPayService; import com.pusong.business.service.IPsContractPayService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -199,7 +198,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
* @param id 任务id * @param id 任务id
* @return * @return
*/ */
public void refundFinish(List<MultipartFile> files, Long id){ public String refundFinish(List<MultipartFile> files, Long id){
PsContractPay info = baseMapper.selectById(id); PsContractPay info = baseMapper.selectById(id);
List<String> payCertifications = new ArrayList<>(); List<String> payCertifications = new ArrayList<>();
for(MultipartFile file : files){ for(MultipartFile file : files){
@ -210,6 +209,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
info.setPayCertification(StringUtils.join(payCertifications,",")); info.setPayCertification(StringUtils.join(payCertifications,","));
info.setPayStatus(PayStatusEnum.SUCCESS.getCode()); info.setPayStatus(PayStatusEnum.SUCCESS.getCode());
baseMapper.updateById(info); baseMapper.updateById(info);
return info.getContractCode();
} }
/* *//** /* *//**

View File

@ -77,7 +77,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
public List<Map<String,Object>> listByLoginUser() { public List<Map<String,Object>> listByLoginUser() {
//查询客户基本信息 //查询客户基本信息
List<PsCustomInfo> list = baseMapper.selectList(new QueryWrapper<PsCustomInfo>().select("id", "custom_name") List<PsCustomInfo> list = baseMapper.selectList(new QueryWrapper<PsCustomInfo>().select("id", "custom_name")
.lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName)); .lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName).ne(PsCustomInfo::getCustomName,"").ne(PsCustomInfo::getCustomName,""));
List<Map<String,Object>> listmap = new ArrayList<>(); List<Map<String,Object>> listmap = new ArrayList<>();
list.forEach(item->{ list.forEach(item->{
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();