md
This commit is contained in:
parent
1b6cf5b65a
commit
e2fb5a93dc
@ -83,6 +83,11 @@ public class EmisCommonController extends EmisBaseController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IEmisSettleInvoiceRecordService emisSettleInvoiceRecordService;
|
private IEmisSettleInvoiceRecordService emisSettleInvoiceRecordService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IEmisSettlePayRecordService emisSettlePayRecordService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
RedissonService redissonService;
|
RedissonService redissonService;
|
||||||
|
|
||||||
@ -696,5 +701,20 @@ public class EmisCommonController extends EmisBaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新计算账单开票状态
|
||||||
|
* @param settleBillNo
|
||||||
|
*/
|
||||||
|
@Log(title = "重新计算收款状态", businessType = BusinessType.UPDATE)
|
||||||
|
@RequestMapping("/reCalcSettleBillPayStatus")
|
||||||
|
public void reCalcSettleBillPayStatus(String settleBillNo) {
|
||||||
|
try{
|
||||||
|
emisSettlePayRecordService.reCalcSettleBillPayStatus(settleBillNo);
|
||||||
|
}
|
||||||
|
catch (Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -76,4 +76,12 @@ public interface IEmisSettlePayRecordService
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteEmisSettlePayRecordById(Long id);
|
public int deleteEmisSettlePayRecordById(Long id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新计算收款状态
|
||||||
|
* @param settleBillNo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int reCalcSettleBillPayStatus(String settleBillNo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ package com.xdadan.erp.emis.service.impl;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.xdadan.erp.emis.domain.*;
|
import com.xdadan.erp.emis.domain.*;
|
||||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||||
@ -23,6 +24,7 @@ import com.xdadan.erp.emis.service.EmisBaseService;
|
|||||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -143,7 +145,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
emisSettlePayRecordMapper.insertEmisSettlePayRecord(emisSettlePayRecord);
|
emisSettlePayRecordMapper.insertEmisSettlePayRecord(emisSettlePayRecord);
|
||||||
|
|
||||||
// 重新计算账单收款信息
|
// 重新计算账单收款信息
|
||||||
reCalcSettleBillPayrecordInfo(emisSettlePayRecord.getSettleBillNo());
|
reCalcSettleBillPayStatus(emisSettlePayRecord.getSettleBillNo());
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -153,7 +155,8 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
* @param settleBillNo
|
* @param settleBillNo
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private int reCalcSettleBillPayrecordInfo(String settleBillNo){
|
@Override
|
||||||
|
public int reCalcSettleBillPayStatus(String settleBillNo){
|
||||||
|
|
||||||
EmisSettleBill oldBill =getSettleBillBySettleBillNo(settleBillNo);
|
EmisSettleBill oldBill =getSettleBillBySettleBillNo(settleBillNo);
|
||||||
// 获取收款记录
|
// 获取收款记录
|
||||||
@ -162,12 +165,9 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
// 全部收款金额
|
// 全部收款金额
|
||||||
BigDecimal totalAllPayMoney = BigDecimal.ZERO;
|
BigDecimal totalAllPayMoney = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
|
||||||
// 计算已收款金额
|
// 计算已收款金额
|
||||||
BigDecimal totalPayMoney = BigDecimal.ZERO;
|
BigDecimal totalPayMoney = BigDecimal.ZERO;
|
||||||
|
|
||||||
BigDecimal totalRefundMoney = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
// 抵扣金额
|
// 抵扣金额
|
||||||
BigDecimal satisfyMoney = BigDecimal.ZERO;
|
BigDecimal satisfyMoney = BigDecimal.ZERO;
|
||||||
/* allowance_money */
|
/* allowance_money */
|
||||||
@ -180,7 +180,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
// refund_money
|
// refund_money
|
||||||
BigDecimal refundMoney = BigDecimal.ZERO;
|
BigDecimal refundMoney = BigDecimal.ZERO;
|
||||||
|
|
||||||
log.debug("收款状态更新===>应收:{}",oldBill.getRecMoney());
|
log.debug("reCalcSettleBillPayStatus===>应收:{}",oldBill.getRecMoney());
|
||||||
|
|
||||||
for(EmisSettlePayRecord item:payRecordList){
|
for(EmisSettlePayRecord item:payRecordList){
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 总应收金额
|
// 总应收金额
|
||||||
log.debug("收款状态更新===>totalPayMoney:{},satisfyMoney:{},allowanceMoney:{},deductionMoney:{},otherMoney:{}"
|
log.debug("reCalcSettleBillPayStatus===>totalPayMoney:{},satisfyMoney:{},allowanceMoney:{},deductionMoney:{},otherMoney:{}"
|
||||||
,totalPayMoney,satisfyMoney,allowanceMoney,allowanceMoney,deductionMoney,otherMoney);
|
,totalPayMoney,satisfyMoney,allowanceMoney,allowanceMoney,deductionMoney,otherMoney);
|
||||||
|
|
||||||
// 收款金额-退款金额
|
// 收款金额-退款金额
|
||||||
@ -207,10 +207,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
.add(allowanceMoney)
|
.add(allowanceMoney)
|
||||||
.add(deductionMoney)
|
.add(deductionMoney)
|
||||||
.add(otherMoney)
|
.add(otherMoney)
|
||||||
.subtract(refundMoney)
|
.subtract(refundMoney);
|
||||||
;
|
|
||||||
|
|
||||||
totalRefundMoney=totalRefundMoney.add(refundMoney);
|
|
||||||
|
|
||||||
EmisSettleBill newBill = new EmisSettleBill();
|
EmisSettleBill newBill = new EmisSettleBill();
|
||||||
newBill.setId(oldBill.getId());
|
newBill.setId(oldBill.getId());
|
||||||
@ -218,34 +215,53 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
newBill.setSatisfyMoney(satisfyMoney);
|
newBill.setSatisfyMoney(satisfyMoney);
|
||||||
newBill.setAllowanceMoney(allowanceMoney);
|
newBill.setAllowanceMoney(allowanceMoney);
|
||||||
newBill.setOtherMoney(otherMoney);
|
newBill.setOtherMoney(otherMoney);
|
||||||
|
|
||||||
// 退款金额
|
// 退款金额
|
||||||
newBill.setRefundMoney(refundMoney);
|
newBill.setRefundMoney(refundMoney);
|
||||||
|
|
||||||
// 判断收款状态 收款金额
|
// 更新账单收款状态 收款金额
|
||||||
int rstDif=totalAllPayMoney.compareTo(oldBill.getRecMoney());
|
int rstDif=totalAllPayMoney.compareTo(oldBill.getRecMoney());
|
||||||
log.debug("收款状态更新===>收款总金额:{},应收:{},rsDif:{}",totalAllPayMoney,oldBill.getRecMoney(),rstDif);
|
log.debug("reCalcSettleBillPayStatus===>收款金额:{},应收:{}",totalAllPayMoney,oldBill.getRecMoney());
|
||||||
if( rstDif >= 0 ){
|
if( totalAllPayMoney.compareTo(BigDecimal.ZERO) == 0 ){
|
||||||
// 已收款
|
newBill.setPaymentStatus("0");
|
||||||
newBill.setPaymentStatus("1");
|
}else{
|
||||||
|
if( rstDif >= 0 ){
|
||||||
|
// 已收款
|
||||||
|
newBill.setPaymentStatus("1");
|
||||||
|
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// 部分收款
|
||||||
|
newBill.setPaymentStatus("2");
|
||||||
|
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
// 部分收款
|
|
||||||
newBill.setPaymentStatus("2");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新账单收款状态
|
|
||||||
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||||
|
|
||||||
// 更新子账单的收款状态
|
// 更新运单的收款状态
|
||||||
// 如果全部付款则更新运单的付款状态
|
if(totalAllPayMoney.compareTo(BigDecimal.ZERO) > 0){
|
||||||
if(rstDif>=0){
|
BigDecimal totalMoney = BigDecimal.ZERO;
|
||||||
List<EmisSettleSubBill> listSubBill=emisSettleSubBillMapper.selectSubBillListBySettleBillNo(settleBillNo);
|
// 更新运单收款记录
|
||||||
for (EmisSettleSubBill subBill:listSubBill) {
|
List<Map> listRel=emisSettlePayRelMapper.selectHasPayMapList(settleBillNo);
|
||||||
EmisWaybill emisWaybill = new EmisWaybill();
|
if(!CollectionUtils.isEmpty(listRel)) {
|
||||||
emisWaybill.setBillCode(subBill.getBillCode());
|
for(Map item:listRel){
|
||||||
emisWaybill.setPaymentStatus(newBill.getPaymentStatus());
|
|
||||||
emisWaybillMapper.updatePayedStatus(emisWaybill);
|
String billNo= MapUtils.getString(item,"billNo",null);
|
||||||
|
if(StringUtils.isEmpty(billNo)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
EmisSettleSubBill subBill = emisSettleSubBillMapper.selectSettleSubBillBySubBillNo(billNo);
|
||||||
|
BigDecimal sumMoney = BigDecimal.valueOf(Double.valueOf(item.get("sumMoney").toString()));
|
||||||
|
totalMoney = totalMoney.add(sumMoney);
|
||||||
|
|
||||||
|
EmisWaybill emisWaybill = new EmisWaybill();
|
||||||
|
emisWaybill.setBillCode(subBill.getBillCode());
|
||||||
|
if(totalMoney.compareTo(subBill.getBillFee())>=0) {
|
||||||
|
emisWaybill.setPaymentStatus("1");
|
||||||
|
}else{
|
||||||
|
emisWaybill.setPaymentStatus("2");
|
||||||
|
}
|
||||||
|
emisWaybillMapper.updatePayedStatus(emisWaybill);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user