md
This commit is contained in:
parent
befe309816
commit
6c4af74f31
@ -125,7 +125,7 @@ public class EmisCommonController extends EmisBaseController
|
|||||||
* 在线支付回调
|
* 在线支付回调
|
||||||
* @param method
|
* @param method
|
||||||
* @param data
|
* @param data
|
||||||
* @param signType
|
* @param sign_type
|
||||||
* @param sign
|
* @param sign
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -60,7 +60,7 @@ public interface IEmisSettlePayRecordService
|
|||||||
* @param emisSettlePayRecord 账单收退款记录
|
* @param emisSettlePayRecord 账单收退款记录
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError;
|
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord,String payId) throws EmisBizError;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改账单收退款记录
|
* 修改账单收退款记录
|
||||||
|
|||||||
@ -12,6 +12,7 @@ package com.xdadan.erp.emis.service.impl;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -23,17 +24,20 @@ import com.xdadan.erp.common.core.pay.vitepay.sdk.ApiRes;
|
|||||||
import com.xdadan.erp.common.core.pay.vitepay.sdk.Config;
|
import com.xdadan.erp.common.core.pay.vitepay.sdk.Config;
|
||||||
import com.xdadan.erp.common.core.pay.vitepay.sdk.VitePayOnlineSdk;
|
import com.xdadan.erp.common.core.pay.vitepay.sdk.VitePayOnlineSdk;
|
||||||
import com.xdadan.erp.common.utils.idgen.SnowflakeIdUtils;
|
import com.xdadan.erp.common.utils.idgen.SnowflakeIdUtils;
|
||||||
import com.xdadan.erp.emis.domain.EmisSettleBill;
|
import com.xdadan.erp.emis.domain.*;
|
||||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||||
import com.xdadan.erp.emis.mapper.EmisSettleBillMapper;
|
import com.xdadan.erp.emis.mapper.EmisSettleBillMapper;
|
||||||
|
import com.xdadan.erp.emis.mapper.EmisSettlePayRelMapper;
|
||||||
|
import com.xdadan.erp.emis.mapper.EmisSettleSubBillMapper;
|
||||||
|
import com.xdadan.erp.emis.service.IEmisSettlePayRecordService;
|
||||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||||
import com.xdadan.erp.system.domain.SysAccount;
|
import com.xdadan.erp.system.domain.SysAccount;
|
||||||
import com.xdadan.erp.system.domain.SysPayOrder;
|
import com.xdadan.erp.system.domain.SysPayOrder;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.xdadan.erp.emis.domain.EmisSettleBillPayLog;
|
|
||||||
import com.xdadan.erp.emis.mapper.EmisSettleBillPayLogMapper;
|
import com.xdadan.erp.emis.mapper.EmisSettleBillPayLogMapper;
|
||||||
import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService;
|
import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService;
|
||||||
|
|
||||||
@ -53,6 +57,16 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EmisSettleBillMapper emisSettleBillMapper;
|
private EmisSettleBillMapper emisSettleBillMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IEmisSettlePayRecordService emisSettlePayRecordService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisSettlePayRelMapper emisSettlePayRelMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisSettleSubBillMapper emisSettleSubBillMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询支付订单表
|
* 查询支付订单表
|
||||||
*
|
*
|
||||||
@ -224,6 +238,7 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
|||||||
|
|
||||||
EmisSettleBillPayLog emisSettleBillPayLog=emisSettleBillPayLogMapper.selectEmisSettleBillPayLogByPayId(payId);
|
EmisSettleBillPayLog emisSettleBillPayLog=emisSettleBillPayLogMapper.selectEmisSettleBillPayLogByPayId(payId);
|
||||||
|
|
||||||
|
|
||||||
if(emisSettleBillPayLog == null){
|
if(emisSettleBillPayLog == null){
|
||||||
throw new EmisBizError(EmisBizErrorType.FAIL,"支付单不存在");
|
throw new EmisBizError(EmisBizErrorType.FAIL,"支付单不存在");
|
||||||
}
|
}
|
||||||
@ -241,6 +256,19 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
|||||||
String status=rstObj.getString("status");
|
String status=rstObj.getString("status");
|
||||||
String errMsg=rstObj.getString("err_msg");
|
String errMsg=rstObj.getString("err_msg");
|
||||||
if("20".equals(status)){
|
if("20".equals(status)){
|
||||||
|
EmisSettleBill oldSettleBill=emisSettleBillMapper.selectSettleBillBySettleBillNo(emisSettleBillPayLog.getSettleBillNo());
|
||||||
|
if(oldSettleBill==null){
|
||||||
|
throw new EmisBizError(EmisBizErrorType.FAIL,"账单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
String payMan="";
|
||||||
|
// 现金账单支付人为寄件公司,月结账单支付人为客户
|
||||||
|
if("1".equals(oldSettleBill.getSettleType())){
|
||||||
|
payMan=oldSettleBill.getCustomerName();
|
||||||
|
}else{
|
||||||
|
payMan=oldSettleBill.getCustName();
|
||||||
|
}
|
||||||
|
|
||||||
// 更新状态
|
// 更新状态
|
||||||
emisSettleBillPayLog.setPaid(1);
|
emisSettleBillPayLog.setPaid(1);
|
||||||
emisSettleBillPayLog.setStatus(20);
|
emisSettleBillPayLog.setStatus(20);
|
||||||
@ -248,8 +276,49 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
|||||||
emisSettleBillPayLog.setPaySuccTime(new Date());
|
emisSettleBillPayLog.setPaySuccTime(new Date());
|
||||||
emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLog);
|
emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLog);
|
||||||
|
|
||||||
// 获取支付账单,核销账单
|
// 获取支付账单,转为为真实支付单
|
||||||
emisSettleBillPayLogMapper.selectEmisSettleBillPayLogByPayId(payId);
|
EmisSettlePayRecord emisSettlePayRecord=new EmisSettlePayRecord();
|
||||||
|
emisSettlePayRecord.setSettleBillNo(emisSettleBillPayLog.getSettleBillNo());
|
||||||
|
emisSettlePayRecord.setPayId(emisSettleBillPayLog.getPayId());
|
||||||
|
emisSettlePayRecord.setPayType("7"); // 在线支付(微信)
|
||||||
|
emisSettlePayRecord.setPayMan(payMan);
|
||||||
|
emisSettlePayRecord.setPayMoney(new BigDecimal(emisSettleBillPayLog.getAmount()).divide(new BigDecimal(100)));
|
||||||
|
emisSettlePayRecord.setTradeDate(emisSettleBillPayLog.getPaySuccTime());
|
||||||
|
emisSettlePayRecord.setRecType("1");
|
||||||
|
emisSettlePayRecord.setPayStatus("2");
|
||||||
|
emisSettlePayRecord.setSettleType(oldSettleBill.getSettleType());
|
||||||
|
emisSettlePayRecord.setRecManCode("1");
|
||||||
|
emisSettlePayRecord.setCustomerCode(oldSettleBill.getCustomerCode());
|
||||||
|
emisSettlePayRecord.setCustomerName(oldSettleBill.getCustomerName());
|
||||||
|
emisSettlePayRecord.setCreateBy("1");
|
||||||
|
emisSettlePayRecord.setCreateTime(new Date());
|
||||||
|
|
||||||
|
// 设置为支付的单子
|
||||||
|
List<EmisSettlePayRel> payRelList=new ArrayList<EmisSettlePayRel>();
|
||||||
|
|
||||||
|
EmisSettleSubBill qParam = new EmisSettleSubBill();
|
||||||
|
qParam.setSettleBillNo(emisSettleBillPayLog.getSettleBillNo());
|
||||||
|
List<EmisSettleSubBill> listSubBill=emisSettleSubBillMapper.selectEmisSettleSubBillList(qParam);
|
||||||
|
if(!CollectionUtils.isEmpty(listSubBill)){
|
||||||
|
for (EmisSettleSubBill itemSubBill:listSubBill) {
|
||||||
|
BigDecimal hasPayMoney = itemSubBill.getRecedMoney();
|
||||||
|
if(hasPayMoney==null){
|
||||||
|
hasPayMoney=BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal noPayMoney=itemSubBill.getBillFee().subtract(hasPayMoney);
|
||||||
|
if(noPayMoney.compareTo(BigDecimal.ZERO)>0){
|
||||||
|
EmisSettlePayRel payRel = new EmisSettlePayRel();
|
||||||
|
payRel.setPayId(emisSettleBillPayLog.getPayId());
|
||||||
|
payRel.setBillNo(itemSubBill.getBillNo());
|
||||||
|
payRel.setPayMoney(noPayMoney);
|
||||||
|
payRelList.add(payRel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
emisSettlePayRecord.setPayRelList(payRelList);
|
||||||
|
|
||||||
|
emisSettlePayRecordService.insertEmisSettlePayRecord(emisSettlePayRecord,emisSettleBillPayLog.getPayId());
|
||||||
|
|
||||||
}else if("10".equals(status)){
|
}else if("10".equals(status)){
|
||||||
emisSettleBillPayLog.setPaid(0);
|
emisSettleBillPayLog.setPaid(0);
|
||||||
|
|||||||
@ -130,7 +130,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
|
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord,String payId) throws EmisBizError {
|
||||||
|
|
||||||
if(StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){
|
if(StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){
|
||||||
throw new EmisBizError(EmisBizErrorType.FAIL,"账单编号不能为空");
|
throw new EmisBizError(EmisBizErrorType.FAIL,"账单编号不能为空");
|
||||||
@ -165,7 +165,11 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 不重复的 id流水号
|
// 不重复的 id流水号
|
||||||
String payId= WaybillHelper.genPayId();
|
// 如果支付单是空的则生成新的支付单
|
||||||
|
if(StringUtils.isEmpty(payId)) {
|
||||||
|
payId = WaybillHelper.genPayId();
|
||||||
|
}
|
||||||
|
|
||||||
emisSettlePayRecord.setPayId(payId);
|
emisSettlePayRecord.setPayId(payId);
|
||||||
|
|
||||||
// 退款时支付金额记录负值
|
// 退款时支付金额记录负值
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user