审批列表
This commit is contained in:
parent
d92d80ca55
commit
b55b87df8e
@ -2,6 +2,7 @@ package com.pusong.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.pusong.business.domain.vo.PsRefundVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
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.service.IPsContractPayService;
|
||||
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")
|
||||
// @Log(title = "合同回款记录", businessType = BusinessType.UPDATE)
|
||||
// @RepeatSubmit()
|
||||
// @PutMapping()
|
||||
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) {
|
||||
// return toAjax(psContractPayService.updateById(bo));
|
||||
// }
|
||||
|
||||
@SaCheckPermission("business:contractPay:edit")
|
||||
@Log(title = "合同回款记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo 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();
|
||||
}
|
||||
/**
|
||||
* 导出合同回款记录列表
|
||||
*//*
|
||||
|
@ -34,6 +34,10 @@ public class PsApproverRecord extends TenantEntity {
|
||||
* 关联业务id
|
||||
*/
|
||||
private String businessId;
|
||||
/**
|
||||
* 客户来源
|
||||
*/
|
||||
private String customSource;
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ -51,7 +55,7 @@ public class PsApproverRecord extends TenantEntity {
|
||||
/**
|
||||
* 审批日期
|
||||
*/
|
||||
private String approverType;
|
||||
private Date approverDate;
|
||||
|
||||
/**
|
||||
* 审批状态(1待审批,2成功,3失败)
|
||||
|
@ -32,7 +32,7 @@ public class PsApproverRecordBo {
|
||||
* 关联业务id
|
||||
*/
|
||||
@NotNull(message = "关联业务id不能为空")
|
||||
private Long businessId;
|
||||
private String businessId;
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
@ -53,7 +53,7 @@ public class PsApproverRecordBo {
|
||||
* 审批日期
|
||||
*/
|
||||
@NotBlank(message = "审批日期不能为空")
|
||||
private String approverType;
|
||||
private Date approverDate;
|
||||
|
||||
/**
|
||||
* 审批状态(1待审批,2成功,3失败)
|
||||
|
@ -78,5 +78,10 @@ public class PsContractPayBo {
|
||||
*/
|
||||
private String payDesc;
|
||||
|
||||
/**
|
||||
* 回款备注
|
||||
*/
|
||||
private String updateDesc;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,12 +1,19 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
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.pusong.business.domain.PsApproverRecord;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.pusong.common.excel.annotation.ExcelDictFormat;
|
||||
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 jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
@ -14,7 +21,7 @@ import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -31,21 +38,16 @@ public class PsApproverRecordVo implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 客户id
|
||||
*/
|
||||
private Long customId;
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键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;
|
||||
|
||||
/**
|
||||
* 审批日期
|
||||
*/
|
||||
@ExcelProperty(value = "审批日期")
|
||||
private String approverType;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date approverDate;
|
||||
|
||||
/**
|
||||
* 审批状态(1待审批,2成功,3失败)
|
||||
@ -87,4 +89,92 @@ public class PsApproverRecordVo implements Serializable {
|
||||
* 修改后数据
|
||||
*/
|
||||
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;
|
||||
|
||||
}
|
||||
|
@ -87,6 +87,10 @@ public class PsContractPayVo implements Serializable {
|
||||
*/
|
||||
private String payDesc;
|
||||
|
||||
/**
|
||||
* 支付状态 PayStatusEnum
|
||||
*/
|
||||
private String payStatus;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
@ -12,8 +12,6 @@ import java.util.List;
|
||||
@AllArgsConstructor
|
||||
public enum PayStatusEnum {
|
||||
PAYAPPO("3","退款支付审批中"),
|
||||
PAYAPPOSUCC("4","退款支付审批成功"),
|
||||
PAYAPPOFIL("5","退款支付审批失败"),
|
||||
PAYING("0","支付中"),
|
||||
SUCCESS("1","成功"),
|
||||
FILE("2","失败");
|
||||
@ -25,6 +23,6 @@ public enum PayStatusEnum {
|
||||
* @return
|
||||
*/
|
||||
public static List<String> getStatus() {
|
||||
return List.of(PAYAPPO.getCode(),PAYAPPOSUCC.getCode(),PAYAPPOFIL.getCode());
|
||||
return List.of(PAYAPPO.getCode(),FILE.getCode());
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,14 @@
|
||||
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.PsContractInfo;
|
||||
import com.pusong.business.domain.vo.PsApproverRecordVo;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 审批记录Mapper接口
|
||||
@ -12,4 +18,7 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
@ -1,8 +1,16 @@
|
||||
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.vo.PsContractPayVo;
|
||||
import com.pusong.business.domain.vo.PsRefundVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同回款记录Mapper接口
|
||||
@ -11,5 +19,5 @@ import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
* @date 2024-08-01
|
||||
*/
|
||||
public interface PsContractPayMapper extends BaseMapperPlus<PsContractPay, PsContractPayVo> {
|
||||
|
||||
Page<PsRefundVo> queryRefundList(@Param("page") Page<PsContractPay> page, @Param(Constants.WRAPPER) Wrapper<PsContractPay> queryWrapper);
|
||||
}
|
||||
|
@ -3,9 +3,12 @@ package com.pusong.business.service;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
import com.pusong.business.domain.vo.PsContractPayVo;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
import com.pusong.business.domain.vo.PsRefundVo;
|
||||
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.PageQuery;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -57,6 +60,31 @@ public interface IPsContractPayService {
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
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);
|
||||
|
||||
/* *//**
|
||||
* 查询合同回款记录
|
||||
*
|
||||
|
@ -1,7 +1,11 @@
|
||||
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.bo.PsApproverRecordBo;
|
||||
import com.pusong.business.domain.vo.PsApproverRecordVo;
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
|
||||
public interface ApproverService {
|
||||
/**
|
||||
@ -21,5 +25,9 @@ public interface ApproverService {
|
||||
* 失败
|
||||
*/
|
||||
public void fail(PsApproverRecord psApproverRecord);
|
||||
/**
|
||||
* 查询列表
|
||||
*/
|
||||
public Page<PsApproverRecordVo> queryList(PsApproverRecordBo bo, PageQuery pageQuery);
|
||||
|
||||
}
|
||||
|
@ -1,19 +1,31 @@
|
||||
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.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.ApproverTypeEnum;
|
||||
import com.pusong.business.enums.PayStatusEnum;
|
||||
import com.pusong.business.mapper.PsApproverRecordMapper;
|
||||
import com.pusong.business.mapper.PsContractPayMapper;
|
||||
import com.pusong.business.service.IPsApproverRecordService;
|
||||
import com.pusong.business.service.approver.ApproverContainer;
|
||||
import com.pusong.business.service.approver.ApproverService;
|
||||
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.Resource;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -28,6 +40,10 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
|
||||
private PsApproverRecordMapper approverRecordMapper;
|
||||
@Resource
|
||||
private ApproverContainer approverContainer;
|
||||
@Resource
|
||||
private PsApproverRecordMapper recordMapper;
|
||||
@Resource
|
||||
private PsContractPayMapper baseMapper;
|
||||
/**
|
||||
* 通用申请方法
|
||||
* @param bussinessId
|
||||
@ -59,4 +75,42 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
|
||||
public void register() {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,19 @@
|
||||
package com.pusong.business.service.approver.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.pusong.business.domain.PsApproverRecord;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
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.PsContractPayVo;
|
||||
import com.pusong.business.enums.*;
|
||||
import com.pusong.business.service.IPsContractInfoService;
|
||||
import com.pusong.business.service.IPsContractPayService;
|
||||
import com.pusong.business.service.IPsTaskService;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -45,6 +48,10 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
|
||||
PsContractInfoVo info = psContractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
||||
//修改回款记录状态
|
||||
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.setPayStatus(PayStatusEnum.SUCCESS.getCode());
|
||||
payService.updateById(update);
|
||||
@ -70,10 +77,15 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
|
||||
|
||||
@Override
|
||||
public void fail(PsApproverRecord psApproverRecord) {
|
||||
//修改回款记录状态
|
||||
PsContractPay update = new PsContractPay();
|
||||
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
|
||||
update.setPayStatus(PayStatusEnum.FILE.getCode());
|
||||
payService.updateById(update);
|
||||
//如果是修改不做处理
|
||||
if(StringUtils.isNotBlank(psApproverRecord.getUpdateData())){
|
||||
|
||||
}else {//如果是新增则修改状态
|
||||
//修改回款记录状态
|
||||
PsContractPay update = new PsContractPay();
|
||||
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
|
||||
update.setPayStatus(PayStatusEnum.FILE.getCode());
|
||||
payService.updateById(update);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,38 @@
|
||||
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.PsCompanyInfo;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
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.CustomerStatusEnum;
|
||||
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.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.extern.slf4j.Slf4j;
|
||||
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();
|
||||
}
|
||||
private final PsCustomInfoMapper customInfoMapper;
|
||||
|
||||
@Resource
|
||||
private PsApproverRecordMapper recordMapper;
|
||||
@Resource
|
||||
private final PsCompanyInfoMapper companyInfoMapper;
|
||||
/**
|
||||
* 1 审批成功 退款审批成功
|
||||
* @param psApproverRecord 神瀑类
|
||||
@ -44,4 +68,46 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
@Override
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
@Override
|
||||
public void success(PsApproverRecord psApproverRecord) {
|
||||
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
|
||||
info.setPayStatus(PayStatusEnum.PAYAPPOSUCC.getCode());
|
||||
info.setPayStatus(PayStatusEnum.PAYING.getCode());
|
||||
baseMapper.updateById(info);
|
||||
|
||||
}
|
||||
@ -44,7 +44,7 @@ public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
@Override
|
||||
public void fail(PsApproverRecord psApproverRecord) {
|
||||
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
|
||||
info.setPayStatus(PayStatusEnum.PAYAPPOFIL.getCode());
|
||||
info.setPayStatus(PayStatusEnum.FILE.getCode());
|
||||
baseMapper.updateById(info);
|
||||
}
|
||||
}
|
||||
|
@ -1,18 +1,26 @@
|
||||
package com.pusong.business.service.approver.impl;
|
||||
|
||||
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.PsContractInfo;
|
||||
import com.pusong.business.domain.bo.PsApproverRecordBo;
|
||||
import com.pusong.business.domain.bo.PsContractBusinessBo;
|
||||
import com.pusong.business.domain.bo.PsContractBusinessDetailBo;
|
||||
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.enums.ApproverTypeEnum;
|
||||
import com.pusong.business.enums.CommonStatusEnum;
|
||||
import com.pusong.business.mapper.PsApproverRecordMapper;
|
||||
import com.pusong.business.service.IPsContractBusinessService;
|
||||
import com.pusong.business.service.IPsContractInfoService;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@ -35,6 +43,7 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
private final IPsContractBusinessService businessService;
|
||||
private final IPsContractInfoService contractInfoService;
|
||||
|
||||
|
||||
/**
|
||||
* 1 审批成功生成签章合同 修改签章状态
|
||||
* @param psApproverRecord 神瀑类
|
||||
@ -77,4 +86,8 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
info.setSignStatus(CommonStatusEnum.FAIL.getCode());
|
||||
contractInfoService.updateByCode(info);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import com.pusong.business.domain.PsApproverRecord;
|
||||
import com.pusong.business.mapper.PsApproverRecordMapper;
|
||||
import com.pusong.business.service.IPsApproverRecordService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@ -58,8 +59,8 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<PsApproverRecordVo> queryPageList(PsApproverRecordBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PsApproverRecord> lqw = buildQueryWrapper(bo);
|
||||
Page<PsApproverRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
ApproverService service = container.getService(bo.getBusinessType());
|
||||
Page<PsApproverRecordVo> result = service.queryList(bo, pageQuery);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -80,7 +81,6 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
|
||||
lqw.eq(bo.getBusinessId() != null, PsApproverRecord::getBusinessId, bo.getBusinessId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessType()), PsApproverRecord::getBusinessType, bo.getBusinessType());
|
||||
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.getApplyDesc()), PsApproverRecord::getApplyDesc, bo.getApplyDesc());
|
||||
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())){
|
||||
throw new ServiceException("操作失败:该审批状态已变更");
|
||||
}
|
||||
ApproverService service = container.getService(info.getApproverType());
|
||||
ApproverService service = container.getService(info.getBusinessType());
|
||||
if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){
|
||||
service.success(info);
|
||||
info.setApproverStatus(ApproverStatusEnum.SUCCESS.getCode());
|
||||
}else if (StringUtils.equals(ApproverStatusEnum.FAIL.getCode(),operate)){
|
||||
service.fail(info);
|
||||
info.setApproverStatus(ApproverStatusEnum.FAIL.getCode());
|
||||
}else{
|
||||
throw new ServiceException("操作失败:不支持的操作类型");
|
||||
}
|
||||
info.setApproverStatus(ApproverStatusEnum.SUCCESS.getCode());
|
||||
info.setApproverDate(new Date());
|
||||
info.setApproverDesc(desc);
|
||||
baseMapper.insert(info);
|
||||
}
|
||||
|
@ -261,6 +261,26 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
info.setContractCode(bo.getContractCode());
|
||||
info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode());
|
||||
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;
|
||||
}
|
||||
@ -411,6 +431,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
//删除标志
|
||||
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.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"info.contract_status", bo.getInContractStatus());
|
||||
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.getCustomManagerName()),"us.nick_name", bo.getCustomManagerName());
|
||||
qw.orderByDesc("info.create_time");
|
||||
return qw;
|
||||
}
|
||||
private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.PayBuinessStatusEnum;
|
||||
import com.pusong.business.enums.PayStatusEnum;
|
||||
import com.pusong.business.service.approver.ApproverContainer;
|
||||
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.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 合同回款记录Service业务层处理
|
||||
@ -140,12 +141,56 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
|
||||
* @param bo 合同回款记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
// @Override
|
||||
// public Boolean updateByBo(PsContractPayBo bo) {
|
||||
// PsContractPay update = MapstructUtils.convert(bo, PsContractPay.class);
|
||||
// validEntityBeforeSave(update);
|
||||
// return baseMapper.updateById(update) > 0;
|
||||
// }
|
||||
@Override
|
||||
public void updateByBo(PsContractPayBo bo) {
|
||||
PsContractPay info = baseMapper.selectById(bo.getId());
|
||||
//发起审批
|
||||
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);
|
||||
}
|
||||
|
||||
/* *//**
|
||||
* 查询合同回款记录
|
||||
|
@ -3,5 +3,37 @@
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<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>
|
||||
|
@ -13,12 +13,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<sql id="queryContractList" >
|
||||
|
||||
select info.*,
|
||||
com.id com_id,
|
||||
com.company_name com_company_name,
|
||||
com.company_adress com_company_adress,
|
||||
com.company_account_bank com_company_account_bank,
|
||||
com.legal_person_name com_legal_person_name,
|
||||
com.legal_person_idcard com_legal_person_idcard,
|
||||
com.legal_person_phone com_legal_person_phone,
|
||||
cus.id cus_id,
|
||||
cus.custom_name cus_custom_name ,
|
||||
cus.custom_mobile cus_custom_mobile,
|
||||
us.nick_name custom_manager_name
|
||||
|
@ -4,4 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<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>
|
||||
|
Loading…
Reference in New Issue
Block a user