审批列表

This commit is contained in:
1073413548 2024-08-15 17:53:31 +08:00
parent d92d80ca55
commit b55b87df8e
23 changed files with 571 additions and 51 deletions

View File

@ -2,6 +2,7 @@ package com.pusong.business.controller;
import java.util.List; import java.util.List;
import com.pusong.business.domain.vo.PsRefundVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
@ -21,6 +22,7 @@ import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.domain.bo.PsContractPayBo; import com.pusong.business.domain.bo.PsContractPayBo;
import com.pusong.business.service.IPsContractPayService; import com.pusong.business.service.IPsContractPayService;
import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 合同回款记录 * 合同回款记录
@ -59,15 +61,38 @@ public class PsContractPayController extends BaseController {
/** /**
* 修改合同回款记录 * 修改合同回款记录
*/ */
// @SaCheckPermission("business:contractPay:edit") @SaCheckPermission("business:contractPay:edit")
// @Log(title = "合同回款记录", businessType = BusinessType.UPDATE) @Log(title = "合同回款记录", businessType = BusinessType.UPDATE)
// @RepeatSubmit() @RepeatSubmit()
// @PutMapping() @PutMapping()
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) { public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) {
// return toAjax(psContractPayService.updateById(bo)); psContractPayService.updateByBo(bo);
// } return R.ok();
}
/**
* 退款列表查询
* @param payStatus 支付状态
* @param pageQuery
* @return
*/
@SaCheckPermission("business:contractPay:query")
@GetMapping("/queryRefundList")
public TableDataInfo<PsRefundVo> queryRefundList( String payStatus,PageQuery pageQuery) {
return psContractPayService.queryRefundList(pageQuery,payStatus);
}
/**
* 完成退款
* @param files 附件图片
* @param id 任务id
* @return
*/
@SaCheckPermission("business:contractPay:query")
@GetMapping("/refundFinish")
public R<Void> refundFinish(@RequestPart("files") List<MultipartFile> files, @NotNull Long id) {
psContractPayService.refundFinish(files,id);
return R.ok();
}
/** /**
* 导出合同回款记录列表 * 导出合同回款记录列表
*//* *//*

View File

@ -34,6 +34,10 @@ public class PsApproverRecord extends TenantEntity {
* 关联业务id * 关联业务id
*/ */
private String businessId; private String businessId;
/**
* 客户来源
*/
private String customSource;
/** /**
* 合同编码 * 合同编码
*/ */
@ -51,7 +55,7 @@ public class PsApproverRecord extends TenantEntity {
/** /**
* 审批日期 * 审批日期
*/ */
private String approverType; private Date approverDate;
/** /**
* 审批状态1待审批2成功3失败 * 审批状态1待审批2成功3失败

View File

@ -32,7 +32,7 @@ public class PsApproverRecordBo {
* 关联业务id * 关联业务id
*/ */
@NotNull(message = "关联业务id不能为空") @NotNull(message = "关联业务id不能为空")
private Long businessId; private String businessId;
/** /**
* 合同编码 * 合同编码
*/ */
@ -53,7 +53,7 @@ public class PsApproverRecordBo {
* 审批日期 * 审批日期
*/ */
@NotBlank(message = "审批日期不能为空") @NotBlank(message = "审批日期不能为空")
private String approverType; private Date approverDate;
/** /**
* 审批状态1待审批2成功3失败 * 审批状态1待审批2成功3失败

View File

@ -78,5 +78,10 @@ public class PsContractPayBo {
*/ */
private String payDesc; private String payDesc;
/**
* 回款备注
*/
private String updateDesc;
} }

View File

@ -1,12 +1,19 @@
package com.pusong.business.domain.vo; package com.pusong.business.domain.vo;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.pusong.common.excel.annotation.ExcelDictFormat; import com.pusong.common.excel.annotation.ExcelDictFormat;
import com.pusong.common.excel.convert.ExcelDictConvert; import com.pusong.common.excel.convert.ExcelDictConvert;
import com.pusong.common.translation.annotation.Translation;
import com.pusong.common.translation.constant.TransConstant;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
@ -14,7 +21,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -31,21 +38,16 @@ public class PsApproverRecordVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private Long customId;
/** /**
* 主键id * 主键id
*/ */
@ExcelProperty(value = "主键id") @ExcelProperty(value = "主键id")
private Long id; private Long id;
/**
* 关联业务id
*/
@ExcelProperty(value = "关联业务id")
private Long businessId;
/**
* 合同编码
*/
private String contractCode;
/** /**
* 审批业务类型 * 审批业务类型
*/ */
@ -55,14 +57,14 @@ public class PsApproverRecordVo implements Serializable {
/** /**
* 申请日期 * 申请日期
*/ */
@ExcelProperty(value = "申请日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date applyDate; private Date applyDate;
/** /**
* 审批日期 * 审批日期
*/ */
@ExcelProperty(value = "审批日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String approverType; private Date approverDate;
/** /**
* 审批状态1待审批2成功3失败 * 审批状态1待审批2成功3失败
@ -87,4 +89,92 @@ public class PsApproverRecordVo implements Serializable {
* 修改后数据 * 修改后数据
*/ */
private String updateData; private String updateData;
/**
* 修改后数据(object类型)
*/
private JSONObject updateDataObject;
/**
* 创建者
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
private Long createBy;
/**
* 更新者
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
private Long updateBy;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 合同文件id
*/
private String pdfId;
/**
* 合同所属销售经理
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
private Long customManager;
/**
* 公司名
*/
private String companyName;
/**
* 客户名
*/
private String customName;
/**
* 客户电话
*/
private String customMobile;
/**
* 回传合同文件id
*/
private String rollBackPdf;
/**
* 服务类别名多个是用逗号分隔
*/
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type")
private String businessTypeName;
/**
* 合同总金额
*/
private BigDecimal contractAmount;
/**
* 已付金额
*/
private BigDecimal payMoney;
/**
* 未付金额
*/
private BigDecimal residualMoney;
/**
* 回款周期
*/
private Integer period;
/**
* 介绍人
*/
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
private Long customIntroducer;
/**
* 客户来源
*/
private String customSource;
/**
* 公司集合公海审批使用
*/
private List<PsCompanyInfoVo> companyInfoList;
/**
* 公司数量
*/
private Integer companyNum;
} }

View File

@ -87,6 +87,10 @@ public class PsContractPayVo implements Serializable {
*/ */
private String payDesc; private String payDesc;
/**
* 支付状态 PayStatusEnum
*/
private String payStatus;
/** /**
* 创建时间 * 创建时间
*/ */

View File

@ -0,0 +1,82 @@
package com.pusong.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.pusong.business.domain.PsCustomPrice;
import com.pusong.common.translation.annotation.Translation;
import com.pusong.common.translation.constant.TransConstant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.math.BigDecimal;
/**
* 退款列表查询vo
*/
@Data
public class PsRefundVo {
private Long id;
/**
* 合同编码
*/
private String contractCode;
/**
* 服务类别名多个是用逗号分隔
*/
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type")
private String businessTypeName;
/**
* 所属客户经理
*/
private String customManager;
/**
* 客户姓名
*/
private String customName;
/**
* 客户电话客户电话(多个用英文逗号分割)
*/
private String customMobile;
/**
* 公司名称
*/
private String companyName;
/**
* 支付方式1扫码2对公3现金4对私
*/
private String payMode;
/**
* 已付金额
*/
private BigDecimal payMoney;
/**
* 合同总金额
*/
private BigDecimal contractAmount;
/**
* 退款金额
*/
private BigDecimal returnMoney;
/**
* 账号信息
*/
private String gathMain;
/**
* 支付状态 PayStatusEnum
*/
private String payStatus;
/**
* 凭证(多个时用逗号分隔)
*/
private String payCertification;
/**
* 合同文件id
*/
private String pdfid;
}

View File

@ -12,8 +12,6 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public enum PayStatusEnum { public enum PayStatusEnum {
PAYAPPO("3","退款支付审批中"), PAYAPPO("3","退款支付审批中"),
PAYAPPOSUCC("4","退款支付审批成功"),
PAYAPPOFIL("5","退款支付审批失败"),
PAYING("0","支付中"), PAYING("0","支付中"),
SUCCESS("1","成功"), SUCCESS("1","成功"),
FILE("2","失败"); FILE("2","失败");
@ -25,6 +23,6 @@ public enum PayStatusEnum {
* @return * @return
*/ */
public static List<String> getStatus() { public static List<String> getStatus() {
return List.of(PAYAPPO.getCode(),PAYAPPOSUCC.getCode(),PAYAPPOFIL.getCode()); return List.of(PAYAPPO.getCode(),FILE.getCode());
} }
} }

View File

@ -1,8 +1,14 @@
package com.pusong.business.mapper; 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.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.vo.PsApproverRecordVo; import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/** /**
* 审批记录Mapper接口 * 审批记录Mapper接口
@ -12,4 +18,7 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
*/ */
public interface PsApproverRecordMapper extends BaseMapperPlus<PsApproverRecord, PsApproverRecordVo> { public interface PsApproverRecordMapper extends BaseMapperPlus<PsApproverRecord, PsApproverRecordVo> {
Page<PsApproverRecordVo> selectPageApproverList(@Param("page") Page<PsApproverRecord> page, @Param(Constants.WRAPPER) Wrapper<PsApproverRecord> queryWrapper);
Page<PsApproverRecordVo> selectPagePublicList(@Param("page") Page<PsApproverRecord> page, @Param(Constants.WRAPPER) Wrapper<PsApproverRecord> queryWrapper);
} }

View File

@ -1,8 +1,16 @@
package com.pusong.business.mapper; 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.PsContractPay; import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.domain.vo.PsRefundVo;
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 合同回款记录Mapper接口 * 合同回款记录Mapper接口
@ -11,5 +19,5 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
* @date 2024-08-01 * @date 2024-08-01
*/ */
public interface PsContractPayMapper extends BaseMapperPlus<PsContractPay, PsContractPayVo> { public interface PsContractPayMapper extends BaseMapperPlus<PsContractPay, PsContractPayVo> {
Page<PsRefundVo> queryRefundList(@Param("page") Page<PsContractPay> page, @Param(Constants.WRAPPER) Wrapper<PsContractPay> queryWrapper);
} }

View File

@ -3,9 +3,12 @@ package com.pusong.business.service;
import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.domain.bo.PsContractPayBo; import com.pusong.business.domain.bo.PsContractPayBo;
import com.pusong.business.domain.vo.PsRefundVo;
import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.enums.PayStatusEnum;
import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.TableDataInfo;
import com.pusong.common.mybatis.core.page.PageQuery; import com.pusong.common.mybatis.core.page.PageQuery;
import jakarta.validation.constraints.NotNull;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Collection; import java.util.Collection;
@ -57,6 +60,31 @@ public interface IPsContractPayService {
* @return 是否修改成功 * @return 是否修改成功
*/ */
Boolean updateById(PsContractPay pay); Boolean updateById(PsContractPay pay);
/**
* 修改合同回款记录
*
* @param bo 合同回款记录
* @return 是否修改成功
*/
void updateByBo(PsContractPayBo bo);
/**
* 退款列表查询
*
* @return 合同回款记录列表
*/
TableDataInfo<PsRefundVo> queryRefundList(PageQuery pageQuery,String payStatus);
/**
* 完成退款
* @param files 附件图片
* @param id 任务id
* @return
*/
void refundFinish(List<MultipartFile> files, Long id);
/* *//** /* *//**
* 查询合同回款记录 * 查询合同回款记录
* *

View File

@ -1,7 +1,11 @@
package com.pusong.business.service.approver; package com.pusong.business.service.approver;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.bo.PsApproverRecordBo;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.common.mybatis.core.page.PageQuery;
public interface ApproverService { public interface ApproverService {
/** /**
@ -21,5 +25,9 @@ public interface ApproverService {
* 失败 * 失败
*/ */
public void fail(PsApproverRecord psApproverRecord); public void fail(PsApproverRecord psApproverRecord);
/**
* 查询列表
*/
public Page<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery);
} }

View File

@ -1,19 +1,31 @@
package com.pusong.business.service.approver.impl; package com.pusong.business.service.approver.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.bo.PsApproverRecordBo;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.enums.ApproverStatusEnum; import com.pusong.business.enums.ApproverStatusEnum;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsContractPayMapper;
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;
import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.exception.ServiceException;
import com.pusong.common.core.utils.DateUtils;
import com.pusong.common.core.utils.StringUtils;
import com.pusong.common.mybatis.core.page.PageQuery;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -28,6 +40,10 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
private PsApproverRecordMapper approverRecordMapper; private PsApproverRecordMapper approverRecordMapper;
@Resource @Resource
private ApproverContainer approverContainer; private ApproverContainer approverContainer;
@Resource
private PsApproverRecordMapper recordMapper;
@Resource
private PsContractPayMapper baseMapper;
/** /**
* 通用申请方法 * 通用申请方法
* @param bussinessId * @param bussinessId
@ -59,4 +75,42 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
public void register() { public void register() {
approverContainer.registerService(approverType(), this); approverContainer.registerService(approverType(), this);
} }
/**
* 查询列表
*/
@Override
public Page<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery){
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType());
Page<PsApproverRecordVo> res = recordMapper.selectPageApproverList(pageQuery.build(), lqw);
if(CollectionUtils.isNotEmpty(res.getRecords())){
res.getRecords().forEach(item->{
item.setResidualMoney(item.getContractAmount().subtract(item.getPayMoney()));
//装填回款记录
List<PsContractPayVo> payList = queryListByContractCode(bo.getBusinessId(),null, PayStatusEnum.SUCCESS);
item.setPeriod(DateUtils.calWorkDate(payList.get(0).getPayDate(),payList.get(payList.size()-1).getPayDate()) + 1);
item.setUpdateDataObject(JSON.parseObject(item.getUpdateData()));
});
}
return res;
}
/**
* 查询合同回款记录列表
*
* @param contractCode 合同编码
* @return
*/
public List<PsContractPayVo> queryListByContractCode(String contractCode,String business,PayStatusEnum enu){
if(StringUtils.isBlank(contractCode)){return new ArrayList<>();}
List<PsContractPayVo> list = baseMapper.selectVoList(Wrappers.<PsContractPay>lambdaQuery().
eq(PsContractPay::getContractCode, contractCode).eq(PsContractPay::getDelFlag,0)
.eq(StringUtils.isNotBlank(business),PsContractPay::getBusinessType,business)
.eq(enu != null ,PsContractPay::getPayStatus, enu.getCode())
.notIn(PsContractPay::getPayStatus, PayStatusEnum.getStatus())//去掉无用的状态
.orderByAsc(PsContractPay::getPayDate));
return list == null?new ArrayList<>():list;
}
} }

View File

@ -1,16 +1,19 @@
package com.pusong.business.service.approver.impl; package com.pusong.business.service.approver.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.PsTaskMain; import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.domain.bo.PsContractPayBo;
import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.domain.vo.PsContractPayVo; import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.enums.*; import com.pusong.business.enums.*;
import com.pusong.business.service.IPsContractInfoService; import com.pusong.business.service.IPsContractInfoService;
import com.pusong.business.service.IPsContractPayService; import com.pusong.business.service.IPsContractPayService;
import com.pusong.business.service.IPsTaskService; import com.pusong.business.service.IPsTaskService;
import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils; import com.pusong.common.core.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -45,6 +48,10 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
PsContractInfoVo info = psContractInfoService.queryContractByCode(psApproverRecord.getContractCode()); PsContractInfoVo info = psContractInfoService.queryContractByCode(psApproverRecord.getContractCode());
//修改回款记录状态 //修改回款记录状态
PsContractPay update = new PsContractPay(); PsContractPay update = new PsContractPay();
if(StringUtils.isNotBlank(psApproverRecord.getUpdateData())){
PsContractPayBo upda = JSON.parseObject(psApproverRecord.getUpdateData(), PsContractPayBo.class);
MapstructUtils.convert(upda,update);
}
update.setId(Long.valueOf(psApproverRecord.getBusinessId())); update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
update.setPayStatus(PayStatusEnum.SUCCESS.getCode()); update.setPayStatus(PayStatusEnum.SUCCESS.getCode());
payService.updateById(update); payService.updateById(update);
@ -70,10 +77,15 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
@Override @Override
public void fail(PsApproverRecord psApproverRecord) { public void fail(PsApproverRecord psApproverRecord) {
//修改回款记录状态 //如果是修改不做处理
PsContractPay update = new PsContractPay(); if(StringUtils.isNotBlank(psApproverRecord.getUpdateData())){
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
update.setPayStatus(PayStatusEnum.FILE.getCode()); }else {//如果是新增则修改状态
payService.updateById(update); //修改回款记录状态
PsContractPay update = new PsContractPay();
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
update.setPayStatus(PayStatusEnum.FILE.getCode());
payService.updateById(update);
}
} }
} }

View File

@ -1,17 +1,38 @@
package com.pusong.business.service.approver.impl; package com.pusong.business.service.approver.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsCompanyInfo;
import com.pusong.business.domain.PsContractPay; import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.PsCustomInfo; import com.pusong.business.domain.PsCustomInfo;
import com.pusong.business.domain.bo.PsApproverRecordBo;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.vo.PsCompanyInfoVo;
import com.pusong.business.domain.vo.PsContractPayVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.CustomerStatusEnum; import com.pusong.business.enums.CustomerStatusEnum;
import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.mapper.PsCompanyInfoMapper;
import com.pusong.business.mapper.PsContractPayMapper; import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.mapper.PsCustomInfoMapper; import com.pusong.business.mapper.PsCustomInfoMapper;
import com.pusong.common.core.utils.DateUtils;
import com.pusong.common.mybatis.core.page.PageQuery;
import jakarta.annotation.Resource;
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.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 公海认领审批 * 公海认领审批
*/ */
@ -24,7 +45,10 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
return ApproverTypeEnum.PUBLIC.getCode(); return ApproverTypeEnum.PUBLIC.getCode();
} }
private final PsCustomInfoMapper customInfoMapper; private final PsCustomInfoMapper customInfoMapper;
@Resource
private PsApproverRecordMapper recordMapper;
@Resource
private final PsCompanyInfoMapper companyInfoMapper;
/** /**
* 1 审批成功 退款审批成功 * 1 审批成功 退款审批成功
* @param psApproverRecord 神瀑类 * @param psApproverRecord 神瀑类
@ -44,4 +68,46 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override @Override
public void fail(PsApproverRecord psApproverRecord) { public void fail(PsApproverRecord psApproverRecord) {
} }
/**
* 查询列表
* @param bo
* @param pageQuery
* @return
*/
@Override
public Page<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery){
QueryWrapper<PsApproverRecord> lqw = Wrappers.<PsApproverRecord>query().eq("app.business_type",approverType());
Page<PsApproverRecordVo> res = recordMapper.selectPagePublicList(pageQuery.build(), lqw);
if(CollectionUtils.isEmpty(res.getRecords())){
return res;
}
//装填公司信息
List<Long> ids = res.getRecords().stream().map(PsApproverRecordVo::getCustomId).collect(Collectors.toList());
List<PsCompanyInfoVo> companyInfoVos = companyInfoMapper.selectVoList(Wrappers.<PsCompanyInfo>lambdaQuery()
.in(PsCompanyInfo::getCustomId, ids)
.eq(PsCompanyInfo::getDelFlag, 0));
Map<Long, List<PsCompanyInfoVo>> id_companyMap = new HashMap<>();
if(CollectionUtils.isNotEmpty(companyInfoVos)){
//分组
id_companyMap = companyInfoVos.stream().collect((Collectors.groupingBy(PsCompanyInfoVo::getCustomId)));
//排序
id_companyMap.entrySet().forEach(entry->{
entry.setValue(entry.getValue().stream().sorted(Comparator.comparingLong(PsCompanyInfoVo::getId)).collect(Collectors.toList()));
});
}
for (PsApproverRecordVo info : res.getRecords()) {
info.setCompanyInfoList(id_companyMap.get(info.getCompanyInfoList()));
//最早的公司名称
if(CollectionUtils.isNotEmpty(info.getCompanyInfoList())){
//找到最近修改的公司名称
info.setCompanyName(info.getCompanyInfoList().stream().max(Comparator.comparingLong(item -> item.getUpdateTime().getTime()))
.orElse(new PsCompanyInfoVo()).getCompanyName());
info.setCompanyNum(info.getCompanyInfoList().size());
}else{
info.setCompanyNum(0);
}
}
return res;
}
} }

View File

@ -32,7 +32,7 @@ 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());
info.setPayStatus(PayStatusEnum.PAYAPPOSUCC.getCode()); info.setPayStatus(PayStatusEnum.PAYING.getCode());
baseMapper.updateById(info); baseMapper.updateById(info);
} }
@ -44,7 +44,7 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override @Override
public void fail(PsApproverRecord psApproverRecord) { public void fail(PsApproverRecord psApproverRecord) {
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId()); PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
info.setPayStatus(PayStatusEnum.PAYAPPOFIL.getCode()); info.setPayStatus(PayStatusEnum.FILE.getCode());
baseMapper.updateById(info); baseMapper.updateById(info);
} }
} }

View File

@ -1,18 +1,26 @@
package com.pusong.business.service.approver.impl; package com.pusong.business.service.approver.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo; import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.bo.PsApproverRecordBo;
import com.pusong.business.domain.bo.PsContractBusinessBo; import com.pusong.business.domain.bo.PsContractBusinessBo;
import com.pusong.business.domain.bo.PsContractBusinessDetailBo; import com.pusong.business.domain.bo.PsContractBusinessDetailBo;
import com.pusong.business.domain.bo.PsContractInfoBo; import com.pusong.business.domain.bo.PsContractInfoBo;
import com.pusong.business.domain.vo.PsApproverRecordVo;
import com.pusong.business.domain.vo.PsContractInfoVo; import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.CommonStatusEnum; import com.pusong.business.enums.CommonStatusEnum;
import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.service.IPsContractBusinessService; import com.pusong.business.service.IPsContractBusinessService;
import com.pusong.business.service.IPsContractInfoService; import com.pusong.business.service.IPsContractInfoService;
import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils; import com.pusong.common.core.utils.StringUtils;
import com.pusong.common.mybatis.core.page.PageQuery;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -35,6 +43,7 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
private final IPsContractBusinessService businessService; private final IPsContractBusinessService businessService;
private final IPsContractInfoService contractInfoService; private final IPsContractInfoService contractInfoService;
/** /**
* 1 审批成功生成签章合同 修改签章状态 * 1 审批成功生成签章合同 修改签章状态
* @param psApproverRecord 神瀑类 * @param psApproverRecord 神瀑类
@ -77,4 +86,8 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
info.setSignStatus(CommonStatusEnum.FAIL.getCode()); info.setSignStatus(CommonStatusEnum.FAIL.getCode());
contractInfoService.updateByCode(info); contractInfoService.updateByCode(info);
} }
} }

View File

@ -21,6 +21,7 @@ import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.mapper.PsApproverRecordMapper;
import com.pusong.business.service.IPsApproverRecordService; import com.pusong.business.service.IPsApproverRecordService;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
@ -58,8 +59,8 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
*/ */
@Override @Override
public TableDataInfo<PsApproverRecordVo> queryPageList(PsApproverRecordBo bo, PageQuery pageQuery) { public TableDataInfo<PsApproverRecordVo> queryPageList(PsApproverRecordBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<PsApproverRecord> lqw = buildQueryWrapper(bo); ApproverService service = container.getService(bo.getBusinessType());
Page<PsApproverRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<PsApproverRecordVo> result = service.queryList(bo, pageQuery);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -80,7 +81,6 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
lqw.eq(bo.getBusinessId() != null, PsApproverRecord::getBusinessId, bo.getBusinessId()); lqw.eq(bo.getBusinessId() != null, PsApproverRecord::getBusinessId, bo.getBusinessId());
lqw.eq(StringUtils.isNotBlank(bo.getBusinessType()), PsApproverRecord::getBusinessType, bo.getBusinessType()); lqw.eq(StringUtils.isNotBlank(bo.getBusinessType()), PsApproverRecord::getBusinessType, bo.getBusinessType());
lqw.eq(bo.getApplyDate() != null, PsApproverRecord::getApplyDate, bo.getApplyDate()); lqw.eq(bo.getApplyDate() != null, PsApproverRecord::getApplyDate, bo.getApplyDate());
lqw.eq(StringUtils.isNotBlank(bo.getApproverType()), PsApproverRecord::getApproverType, bo.getApproverType());
lqw.eq(StringUtils.isNotBlank(bo.getApproverStatus()), PsApproverRecord::getApproverStatus, bo.getApproverStatus()); lqw.eq(StringUtils.isNotBlank(bo.getApproverStatus()), PsApproverRecord::getApproverStatus, bo.getApproverStatus());
lqw.eq(StringUtils.isNotBlank(bo.getApplyDesc()), PsApproverRecord::getApplyDesc, bo.getApplyDesc()); lqw.eq(StringUtils.isNotBlank(bo.getApplyDesc()), PsApproverRecord::getApplyDesc, bo.getApplyDesc());
lqw.eq(StringUtils.isNotBlank(bo.getApproverDesc()), PsApproverRecord::getApproverDesc, bo.getApproverDesc()); lqw.eq(StringUtils.isNotBlank(bo.getApproverDesc()), PsApproverRecord::getApproverDesc, bo.getApproverDesc());
@ -99,15 +99,17 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(),info.getApproverStatus())){ if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(),info.getApproverStatus())){
throw new ServiceException("操作失败:该审批状态已变更"); throw new ServiceException("操作失败:该审批状态已变更");
} }
ApproverService service = container.getService(info.getApproverType()); ApproverService service = container.getService(info.getBusinessType());
if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){ if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){
service.success(info); service.success(info);
info.setApproverStatus(ApproverStatusEnum.SUCCESS.getCode());
}else if (StringUtils.equals(ApproverStatusEnum.FAIL.getCode(),operate)){ }else if (StringUtils.equals(ApproverStatusEnum.FAIL.getCode(),operate)){
service.fail(info); service.fail(info);
info.setApproverStatus(ApproverStatusEnum.FAIL.getCode());
}else{ }else{
throw new ServiceException("操作失败:不支持的操作类型"); throw new ServiceException("操作失败:不支持的操作类型");
} }
info.setApproverStatus(ApproverStatusEnum.SUCCESS.getCode()); info.setApproverDate(new Date());
info.setApproverDesc(desc); info.setApproverDesc(desc);
baseMapper.insert(info); baseMapper.insert(info);
} }

View File

@ -261,6 +261,26 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
info.setContractCode(bo.getContractCode()); info.setContractCode(bo.getContractCode());
info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode()); info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode());
updateByCode(info); updateByCode(info);
}else{
//修改合同
PsContractInfo add = new PsContractInfo();
MapstructUtils.convert(bo,add);
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
bo.getBusinessList().forEach(item->{
BigDecimal mony = BigDecimal.ZERO;
if(CollectionUtils.isNotEmpty(item.getDetailBos())){
mony = item.getDetailBos().stream().map(PsContractBusinessDetailBo::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
}
//服务类别填了才会修改服务项目的金额
if(mony.compareTo(BigDecimal.ZERO) > 0){
item.setBusinessAmount(mony);
}
});
add.setContractAmount(sum);//合同总金额
this.updateByCode(add);
//4.删除所有服务类型和服务项目,.插入服务类型
businessService.saveList(bo.getBusinessList(),add.getContractCode());
} }
return true; return true;
} }
@ -411,6 +431,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//删除标志 //删除标志
qw.eq( "info.del_flag", 0);//删除标志 qw.eq( "info.del_flag", 0);//删除标志
//合同表条件 //合同表条件
qw.ne( "info.contract_status", ContractStatusEnum.INIT.getCode());
qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"info.contract_status", bo.getContractStatus()); qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"info.contract_status", bo.getContractStatus());
qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"info.contract_status", bo.getInContractStatus()); qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"info.contract_status", bo.getInContractStatus());
qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"info.contract_status", bo.getNotInContractStatus()); qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"info.contract_status", bo.getNotInContractStatus());
@ -422,6 +443,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
qw.like( StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name", bo.getCompanyName()); qw.like( StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name", bo.getCompanyName());
//用户表条件 //用户表条件
qw.like( StringUtils.isNotBlank(bo.getCustomManagerName()),"us.nick_name", bo.getCustomManagerName()); qw.like( StringUtils.isNotBlank(bo.getCustomManagerName()),"us.nick_name", bo.getCustomManagerName());
qw.orderByDesc("info.create_time");
return qw; return qw;
} }
private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){ private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){

View File

@ -1,7 +1,10 @@
package com.pusong.business.service.impl; package com.pusong.business.service.impl;
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.vo.PsRefundVo;
import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.PayBuinessStatusEnum;
import com.pusong.business.enums.PayStatusEnum; import com.pusong.business.enums.PayStatusEnum;
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;
@ -26,10 +29,8 @@ import com.pusong.business.service.IPsContractPayService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Collection;
/** /**
* 合同回款记录Service业务层处理 * 合同回款记录Service业务层处理
@ -140,12 +141,56 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
* @param bo 合同回款记录 * @param bo 合同回款记录
* @return 是否修改成功 * @return 是否修改成功
*/ */
// @Override @Override
// public Boolean updateByBo(PsContractPayBo bo) { public void updateByBo(PsContractPayBo bo) {
// PsContractPay update = MapstructUtils.convert(bo, PsContractPay.class); PsContractPay info = baseMapper.selectById(bo.getId());
// validEntityBeforeSave(update); //发起审批
// return baseMapper.updateById(update) > 0; ApproverService service = container.getService(ApproverTypeEnum.PAY.getCode());
// } service.apply(bo.getId()+"",info.getContractCode(),bo.getUpdateDesc(), bo);
}
/**
* 退款列表查询
*
* @return 合同回款记录列表
*/
@Override
public TableDataInfo<PsRefundVo> queryRefundList(PageQuery pageQuery,String payStatus){
QueryWrapper<PsContractPay> qw = new QueryWrapper<PsContractPay>().eq(StringUtils.isNotBlank(payStatus), "pay.pay_stauts", payStatus);
Page<PsRefundVo> list = baseMapper.queryRefundList(pageQuery.build(), qw);
list.getRecords().forEach(info->{
List<PsContractPayVo> payList = queryListByContractCode(info.getContractCode(),null,PayStatusEnum.SUCCESS);
//退款金额
BigDecimal returnMoney = payList.stream().filter(item -> StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.RETURN.getCode()))
.map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
//收款金额
BigDecimal netPay = payList.stream().filter(item -> StringUtils.equals(item.getBusinessType(), PayBuinessStatusEnum.PAY.getCode()))
.map(PsContractPayVo::getMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal pay = netPay.subtract(returnMoney);
//已付金额(收款-退款)
info.setPayMoney(pay.compareTo(BigDecimal.ZERO)>=0?pay:BigDecimal.ZERO);
});
return TableDataInfo.build(list);
}
/**
* 完成退款
* @param files 附件图片
* @param id 任务id
* @return
*/
public void refundFinish(List<MultipartFile> files, Long id){
PsContractPay info = baseMapper.selectById(id);
List<String> payCertifications = new ArrayList<>();
for(MultipartFile file : files){
SysOssVo vo = ossService.upload(file);
payCertifications.add(vo.getOssId()+"");
}
info.setPayCertification(StringUtils.join(payCertifications,","));
info.setPayStatus(PayStatusEnum.SUCCESS.getCode());
baseMapper.insert(info);
}
/* *//** /* *//**
* 查询合同回款记录 * 查询合同回款记录

View File

@ -3,5 +3,37 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pusong.business.mapper.PsApproverRecordMapper"> <mapper namespace="com.pusong.business.mapper.PsApproverRecordMapper">
<select id="selectPageApproverList" resultType="com.pusong.business.domain.vo.PsApproverRecordVo">
select app.*
, info.pdf_id
, info.custom_manager
, com.company_name
, cus.custom_name
, cus.custom_mobile
, info.roll_back_pdf
, (select GROUP_CONCAT(business.business_type SEPARATOR ',')
from ps_contract_business business where business.contract_code = info.contract_code) as business_type_name
, info.contract_amount
, (select IFNULL(sum(pa.money),0) from ps_contract_pay pa where pa.pay_status = 1 and pa.business_type = 1 and pa.contract_code = info.contract_code
)-(select IFNULL(sum(pay.money),0) from ps_contract_pay pay where pay.pay_status = 1 and pay.business_type = 2 and pay.contract_code = info.contract_code)
as pay_money,
from ps_approver_record app
left join ps_contract_info info on app.contract_code = info.contract_code and app.del_flag = 0
left join ps_company_info com on info.company_id = com.id
left join ps_custom_info cus on cus.id = info.custom_id
${ew.getCustomSqlSegment}
</select>
<select id="selectPagePublicList" resultType="com.pusong.business.domain.vo.PsApproverRecordVo">
select app.*
, cus.custom_source
, cus.custom_introducer
, cus.custom_name
, cus.custom_mobile
, cus.custom_id
from ps_approver_record app
left join ps_custom_info cus on app.business_id = info.custom_id
${ew.getCustomSqlSegment}
</select>
</mapper> </mapper>

View File

@ -13,12 +13,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="queryContractList" > <sql id="queryContractList" >
select info.*, select info.*,
com.id com_id,
com.company_name com_company_name, com.company_name com_company_name,
com.company_adress com_company_adress, com.company_adress com_company_adress,
com.company_account_bank com_company_account_bank, com.company_account_bank com_company_account_bank,
com.legal_person_name com_legal_person_name, com.legal_person_name com_legal_person_name,
com.legal_person_idcard com_legal_person_idcard, com.legal_person_idcard com_legal_person_idcard,
com.legal_person_phone com_legal_person_phone, com.legal_person_phone com_legal_person_phone,
cus.id cus_id,
cus.custom_name cus_custom_name , cus.custom_name cus_custom_name ,
cus.custom_mobile cus_custom_mobile, cus.custom_mobile cus_custom_mobile,
us.nick_name custom_manager_name us.nick_name custom_manager_name

View File

@ -4,4 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pusong.business.mapper.PsContractPayMapper"> <mapper namespace="com.pusong.business.mapper.PsContractPayMapper">
<select id="queryRefundList" resultType="com.pusong.business.domain.vo.PsRefundVo">
select pay.id,pay.money return_money,pay.pay_mode,pay.gath_main,pay.pay_status,pay.pay_certification,
com.company_name,cus.custom_name,cus.custom_mobile,cus.custom_manager,info.contract_code,info.pdf_id,
(select GROUP_CONCAT(business.business_type SEPARATOR ',')
from ps_contract_business business where business.contract_code = info.contract_code) as business_type_name
from ps_contract_pay pay
left join ps_contract_info info on pay.contract_code = info.contract_code and pay.pay_status in (1,2,3) and pay.business_type = 2
left join ps_company_info com on com.id = info.company_id
left join ps_custom_info cus on cus.id = info.custom_id
${ew.getCustomSqlSegment}
</select>
</mapper> </mapper>