md
This commit is contained in:
parent
befe309816
commit
6c4af74f31
@ -125,7 +125,7 @@ public class EmisCommonController extends EmisBaseController
|
||||
* 在线支付回调
|
||||
* @param method
|
||||
* @param data
|
||||
* @param signType
|
||||
* @param sign_type
|
||||
* @param sign
|
||||
* @return
|
||||
*/
|
||||
|
||||
@ -60,7 +60,7 @@ public interface IEmisSettlePayRecordService
|
||||
* @param emisSettlePayRecord 账单收退款记录
|
||||
* @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.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
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.VitePayOnlineSdk;
|
||||
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.exception.EmisBizError;
|
||||
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.system.domain.SysAccount;
|
||||
import com.xdadan.erp.system.domain.SysPayOrder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.xdadan.erp.emis.domain.EmisSettleBillPayLog;
|
||||
import com.xdadan.erp.emis.mapper.EmisSettleBillPayLogMapper;
|
||||
import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService;
|
||||
|
||||
@ -53,6 +57,16 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
||||
@Autowired
|
||||
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);
|
||||
|
||||
|
||||
if(emisSettleBillPayLog == null){
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,"支付单不存在");
|
||||
}
|
||||
@ -241,6 +256,19 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
||||
String status=rstObj.getString("status");
|
||||
String errMsg=rstObj.getString("err_msg");
|
||||
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.setStatus(20);
|
||||
@ -248,8 +276,49 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer
|
||||
emisSettleBillPayLog.setPaySuccTime(new Date());
|
||||
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)){
|
||||
emisSettleBillPayLog.setPaid(0);
|
||||
|
||||
@ -130,7 +130,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
|
||||
public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord,String payId) throws EmisBizError {
|
||||
|
||||
if(StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,"账单编号不能为空");
|
||||
@ -165,7 +165,11 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
}
|
||||
|
||||
// 不重复的 id流水号
|
||||
String payId= WaybillHelper.genPayId();
|
||||
// 如果支付单是空的则生成新的支付单
|
||||
if(StringUtils.isEmpty(payId)) {
|
||||
payId = WaybillHelper.genPayId();
|
||||
}
|
||||
|
||||
emisSettlePayRecord.setPayId(payId);
|
||||
|
||||
// 退款时支付金额记录负值
|
||||
|
||||
Loading…
Reference in New Issue
Block a user